Mercurial > hg > xemacs-beta
comparison src/sysdll.c @ 4985:358aa3bb603f
Automatic merge
| author | Ben Wing <ben@xemacs.org> |
|---|---|
| date | Fri, 05 Feb 2010 12:12:28 -0600 |
| parents | 4aebb0131297 |
| children | f283b08ff0c9 |
comparison
equal
deleted
inserted
replaced
| 4984:f23cd0184dcf | 4985:358aa3bb603f |
|---|---|
| 75 { | 75 { |
| 76 soname = NULL; | 76 soname = NULL; |
| 77 } | 77 } |
| 78 else | 78 else |
| 79 { | 79 { |
| 80 LISP_STRING_TO_EXTERNAL (fname, soname, Qdll_filename_encoding); | 80 soname = LISP_STRING_TO_EXTERNAL (fname, Qdll_filename_encoding); |
| 81 } | 81 } |
| 82 return (dll_handle) dlopen (soname, RTLD_NOW); | 82 return (dll_handle) dlopen (soname, RTLD_NOW); |
| 83 } | 83 } |
| 84 | 84 |
| 85 int | 85 int |
| 91 dll_func | 91 dll_func |
| 92 dll_function (dll_handle h, const Ibyte *n) | 92 dll_function (dll_handle h, const Ibyte *n) |
| 93 { | 93 { |
| 94 Extbyte *next; | 94 Extbyte *next; |
| 95 MAYBE_PREPEND_UNDERSCORE (n); | 95 MAYBE_PREPEND_UNDERSCORE (n); |
| 96 C_STRING_TO_EXTERNAL (n, next, Qdll_function_name_encoding); | 96 next = ITEXT_TO_EXTERNAL (n, Qdll_function_name_encoding); |
| 97 return (dll_func) dlsym ((void *) h, next); | 97 return (dll_func) dlsym ((void *) h, next); |
| 98 } | 98 } |
| 99 | 99 |
| 100 dll_var | 100 dll_var |
| 101 dll_variable (dll_handle h, const Ibyte *n) | 101 dll_variable (dll_handle h, const Ibyte *n) |
| 102 { | 102 { |
| 103 Extbyte *next; | 103 Extbyte *next; |
| 104 MAYBE_PREPEND_UNDERSCORE (n); | 104 MAYBE_PREPEND_UNDERSCORE (n); |
| 105 C_STRING_TO_EXTERNAL (n, next, Qdll_variable_name_encoding); | 105 next = ITEXT_TO_EXTERNAL (n, Qdll_variable_name_encoding); |
| 106 return (dll_var)dlsym ((void *)h, next); | 106 return (dll_var)dlsym ((void *)h, next); |
| 107 } | 107 } |
| 108 | 108 |
| 109 Lisp_Object | 109 Lisp_Object |
| 110 dll_error () | 110 dll_error () |
| 132 { | 132 { |
| 133 soname = NULL; | 133 soname = NULL; |
| 134 } | 134 } |
| 135 else | 135 else |
| 136 { | 136 { |
| 137 LISP_STRING_TO_EXTERNAL (fname, soname, Qdll_filename_encoding); | 137 soname = LISP_STRING_TO_EXTERNAL (fname, Qdll_filename_encoding); |
| 138 } | 138 } |
| 139 return (dll_handle) shl_load (soname, BIND_DEFERRED, 0L); | 139 return (dll_handle) shl_load (soname, BIND_DEFERRED, 0L); |
| 140 } | 140 } |
| 141 | 141 |
| 142 int | 142 int |
| 203 } | 203 } |
| 204 | 204 |
| 205 dll_func | 205 dll_func |
| 206 dll_function (dll_handle h, const Ibyte *n) | 206 dll_function (dll_handle h, const Ibyte *n) |
| 207 { | 207 { |
| 208 Extbyte *next = NEW_C_STRING_TO_EXTERNAL (n, Qmswindows_multibyte); | 208 Extbyte *next = ITEXT_TO_EXTERNAL (n, Qmswindows_multibyte); |
| 209 return (dll_func) GetProcAddress ((HINSTANCE) h, next); | 209 return (dll_func) GetProcAddress ((HINSTANCE) h, next); |
| 210 } | 210 } |
| 211 | 211 |
| 212 dll_func | 212 dll_func |
| 213 dll_variable (dll_handle h, const Ibyte *n) | 213 dll_variable (dll_handle h, const Ibyte *n) |
| 214 { | 214 { |
| 215 Extbyte *next = NEW_C_STRING_TO_EXTERNAL (n, Qmswindows_multibyte); | 215 Extbyte *next = ITEXT_TO_EXTERNAL (n, Qmswindows_multibyte); |
| 216 return (dll_func) GetProcAddress ((HINSTANCE) h, next); | 216 return (dll_func) GetProcAddress ((HINSTANCE) h, next); |
| 217 } | 217 } |
| 218 | 218 |
| 219 Lisp_Object | 219 Lisp_Object |
| 220 dll_error () | 220 dll_error () |
| 248 { | 248 { |
| 249 return NULL; | 249 return NULL; |
| 250 } | 250 } |
| 251 else | 251 else |
| 252 { | 252 { |
| 253 LISP_STRING_TO_EXTERNAL (fname, soname, Qdll_filename_encoding); | 253 soname = LISP_STRING_TO_EXTERNAL (fname, Qdll_filename_encoding); |
| 254 } | 254 } |
| 255 ret = NSCreateObjectFileImageFromFile (soname, &file); | 255 ret = NSCreateObjectFileImageFromFile (soname, &file); |
| 256 if (ret != NSObjectFileImageSuccess) | 256 if (ret != NSObjectFileImageSuccess) |
| 257 return NULL; | 257 return NULL; |
| 258 out = NSLinkModule (file, soname, | 258 out = NSLinkModule (file, soname, |
| 371 my_find_image((Rawbyte *) | 371 my_find_image((Rawbyte *) |
| 372 (((struct dylib_command *) lc)-> | 372 (((struct dylib_command *) lc)-> |
| 373 dylib.name.offset + (Rawbyte *) lc)))) | 373 dylib.name.offset + (Rawbyte *) lc)))) |
| 374 { | 374 { |
| 375 Extbyte *symext = | 375 Extbyte *symext = |
| 376 NEW_C_STRING_TO_EXTERNAL (symbol, Qdll_symbol_encoding); | 376 ITEXT_TO_EXTERNAL (symbol, Qdll_symbol_encoding); |
| 377 if (NSIsSymbolNameDefinedInImage (wh, symext)) | 377 if (NSIsSymbolNameDefinedInImage (wh, symext)) |
| 378 { | 378 { |
| 379 nssym = | 379 nssym = |
| 380 NSLookupSymbolInImage | 380 NSLookupSymbolInImage |
| 381 (wh, | 381 (wh, |
| 396 { | 396 { |
| 397 NSSymbol sym = 0; | 397 NSSymbol sym = 0; |
| 398 Extbyte *next; | 398 Extbyte *next; |
| 399 | 399 |
| 400 MAYBE_PREPEND_UNDERSCORE (n); | 400 MAYBE_PREPEND_UNDERSCORE (n); |
| 401 C_STRING_TO_EXTERNAL (n, next, Qdll_function_name_encoding); | 401 next = ITEXT_TO_EXTERNAL (n, Qdll_function_name_encoding); |
| 402 | 402 |
| 403 /* NULL means the program image and shared libraries, not bundles. */ | 403 /* NULL means the program image and shared libraries, not bundles. */ |
| 404 | 404 |
| 405 if (h == NULL) | 405 if (h == NULL) |
| 406 { | 406 { |
| 438 { | 438 { |
| 439 NSSymbol sym; | 439 NSSymbol sym; |
| 440 Extbyte *next; | 440 Extbyte *next; |
| 441 | 441 |
| 442 MAYBE_PREPEND_UNDERSCORE (n); | 442 MAYBE_PREPEND_UNDERSCORE (n); |
| 443 C_STRING_TO_EXTERNAL (n, next, Qdll_variable_name_encoding); | 443 next = ITEXT_TO_EXTERNAL (n, Qdll_variable_name_encoding); |
| 444 | 444 |
| 445 sym = NSLookupSymbolInModule ((NSModule) h, n); | 445 sym = NSLookupSymbolInModule ((NSModule) h, n); |
| 446 if (sym == 0) return 0; | 446 if (sym == 0) return 0; |
| 447 return (dll_var) NSAddressOfSymbol (sym); | 447 return (dll_var) NSAddressOfSymbol (sym); |
| 448 } | 448 } |
| 469 { | 469 { |
| 470 soname = NULL; | 470 soname = NULL; |
| 471 } | 471 } |
| 472 else | 472 else |
| 473 { | 473 { |
| 474 LISP_STRING_TO_EXTERNAL (fname, soname, Qdll_filename_encoding); | 474 soname = LISP_STRING_TO_EXTERNAL (fname, Qdll_filename_encoding); |
| 475 } | 475 } |
| 476 return (dll_handle) lt_dlopen (soname); | 476 return (dll_handle) lt_dlopen (soname); |
| 477 } | 477 } |
| 478 | 478 |
| 479 int | 479 int |
| 485 dll_func | 485 dll_func |
| 486 dll_function (dll_handle h, const Ibyte *n) | 486 dll_function (dll_handle h, const Ibyte *n) |
| 487 { | 487 { |
| 488 Extbyte *next; | 488 Extbyte *next; |
| 489 MAYBE_PREPEND_UNDERSCORE (n); | 489 MAYBE_PREPEND_UNDERSCORE (n); |
| 490 C_STRING_TO_EXTERNAL (n, next, Qdll_function_name_encoding); | 490 next = ITEXT_TO_EXTERNAL (n, Qdll_function_name_encoding); |
| 491 return (dll_func) lt_dlsym ((lt_dlhandle) h, next); | 491 return (dll_func) lt_dlsym ((lt_dlhandle) h, next); |
| 492 } | 492 } |
| 493 | 493 |
| 494 dll_var | 494 dll_var |
| 495 dll_variable (dll_handle h, const Ibyte *n) | 495 dll_variable (dll_handle h, const Ibyte *n) |
| 496 { | 496 { |
| 497 Extbyte *next; | 497 Extbyte *next; |
| 498 MAYBE_PREPEND_UNDERSCORE (n); | 498 MAYBE_PREPEND_UNDERSCORE (n); |
| 499 C_STRING_TO_EXTERNAL (n, next, Qdll_variable_name_encoding); | 499 next = ITEXT_TO_EXTERNAL (n, Qdll_variable_name_encoding); |
| 500 return (dll_var) lt_dlsym ((lt_dlhandle) h, next); | 500 return (dll_var) lt_dlsym ((lt_dlhandle) h, next); |
| 501 } | 501 } |
| 502 | 502 |
| 503 Lisp_Object | 503 Lisp_Object |
| 504 dll_error (void) | 504 dll_error (void) |
