United States-English |
|
|
HP-UX Reference > Ddlmodadd(3C)HP-UX 11i Version 3: February 2007 |
|
NAMEdlmodadd() — register information about dynamically generated functions SYNOPSIScc [flag]... file... -ldl [library]... #include <dlfcn.h> void* dlmodadd(void* associate_handle, void *func_start, size_t func_size, void *linkage_ptr, void *unwind_info); DESCRIPTIONdlmodadd() registers information about a dynamically generated function, which can be retrived through dlmodinfo(). The dlmodremove() interface can be used to remove the registered information. associate_handle is the module handle for an existing module with which the new function is associated. When the dynamic loader is called from the new function, it will behave as if it had been called from the associated module. This handle must be a handle returned by dlopen() or dlget(). func_start is the starting address of the generated machine code for the function. It is NOT the address of a function descriptor. func_size is the size, in bytes, of the generated machine code. linkage_ptr is the gp (global pointer) value to be used for the function. It could be the gp of the associated module. It must be set to a valid value, even if the generated code doesn't actually use gp, as it is required at a minimum for following the personality routine pointer in the unwind information. unwind_info is a pointer to the beginning of the unwind info block for the function. The unwind info block contains the header word, unwind descriptors, personality routine pointer, and language-specific data, as described in the Itanium-based system Software Conventions and Runtime Architecture document. When dlmodadd() is invoked to register information about a dynamically generated function, the dynamic loader creates an unwind header and a single-entry unwind table for the function. The unwind header is associated with the address range occupied by the dynamically generated function. The dlmodadd() routine returns a handle as identification of the newly-added function. Handles returned by dlmodadd() share the same namespace as handles returned by dlopen() and dlget(), but they may not be used in calls to dlclose() or dlsym(). If dlmodinfo() is called with an ip_value that belongs to a function that has been registered with dlmodadd(), it returns the associate_handle specified during dlmodadd() invocation. If a library is unloaded by dlclose(), the unwind info for all dynamically generated functions associated with the library being unloaded is also removed. RETURN VALUEIf successful, dlmodadd() returns a handle as identification of the newly-added function. NULL is returned otherwise. ERRORSIf dlmodadd() fails, a subsequent call to dlerrno() returns one of the following values:
SEE ALSOld(1), dlclose(3C), dlerrno(3C), dlerror(3C), dlget(3C), dlmodremove(3C), dlopen(3C), dlsym(3C), a.out(4), dld.so(5). Texts and Tutorials
|
Printable version | ||
|