2 * Author: Jeff Okamoto (okamoto@corp.hp.com)
6 #define magic hpux_magic
7 #define MAGIC HPUX_MAGIC
21 #include "dlutils.c" /* for SaveError() etc */
27 (void)dl_generic_private_init();
30 MODULE = DynaLoader PACKAGE = DynaLoader
33 (void)dl_private_init();
37 dl_load_file(filename)
41 DLDEBUG(1,fprintf(stderr,"dl_load_file(%s): ", filename));
42 obj = shl_load(filename,
43 BIND_IMMEDIATE | BIND_NONFATAL | BIND_NOSTART | BIND_VERBOSE, 0L);
44 DLDEBUG(2,fprintf(stderr," libref=%x\n", obj));
45 ST(0) = sv_newmortal() ;
47 SaveError("%s",Strerror(errno)) ;
49 sv_setiv( ST(0), (IV)obj);
53 dl_find_symbol(libhandle, symbolname)
57 shl_t obj = (shl_t) libhandle;
61 char symbolname_buf[MAXPATHLEN];
62 symbolname = dl_add_underscore(symbolname, symbolname_buf);
64 DLDEBUG(2,fprintf(stderr,"dl_find_symbol(handle=%x, symbol=%s)\n",
65 libhandle, symbolname));
66 status = shl_findsym(&obj, symbolname, TYPE_PROCEDURE, &symaddr);
67 DLDEBUG(2,fprintf(stderr," symbolref = %x\n", symaddr));
68 ST(0) = sv_newmortal() ;
70 SaveError("%s",(errno) ? Strerror(errno) : "Symbol not found") ;
72 sv_setiv( ST(0), (IV)symaddr);
81 # These functions should not need changing on any platform:
84 dl_install_xsub(perl_name, symref, filename="$Package")
89 DLDEBUG(2,fprintf(stderr,"dl_install_xsub(name=%s, symref=%x)\n",
91 ST(0)=sv_2mortal(newRV((SV*)newXS(perl_name, (void(*)())symref, filename)));