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)