diff options
Diffstat (limited to 'dlperl/dlperl.doc')
-rw-r--r-- | dlperl/dlperl.doc | 264 |
1 files changed, 0 insertions, 264 deletions
diff --git a/dlperl/dlperl.doc b/dlperl/dlperl.doc deleted file mode 100644 index 7da0dfe1d8..0000000000 --- a/dlperl/dlperl.doc +++ /dev/null @@ -1,264 +0,0 @@ - - - -DLPERL(1) USER COMMANDS DLPERL(1) - - - -NAME - dlperl - dynamic link-editor subroutines for perl - -SYNOPSIS - $dl_so = &dl_open($file) - $dl_func = &dl_sym($dl_so, $symbol) - @vals = &dl_call($dl_func, $parms_desc, $return_desc, @parms) - $dl_err = &dl_close($dl_so) - - $DL_VERSION - $DL_WARN - $dl_errno - $dl_errstr - -DESCRIPTION - _D_l_p_e_r_l is _p_e_r_l plus user defined subroutines (_u_s_u_b_s) that - interface to the dynamic link-editor and can call most C and - Fortran functions whose object code has been linked into a - shared object file. - - Subroutines - - All _d_l_p_e_r_l subroutines set the two predefined names - $dl_errno and $dl_errstr. Only partial descriptions of - &dl_open, &dl_sym and &dl_close appear below, see _d_l_o_p_e_n(_3_x) - for a complete description. The following subroutines are - defined by _d_l_p_e_r_l: - - &dl_open($file) - Adds the shared object $_f_i_l_e to _d_l_p_e_r_l's address - space. Returns a descriptor that can be used for - later reference to the object in calls to &dl_sym - and &dl_close. When an error occurs an undef value - is returned. - - &dl_sym($dl_so, $symbol) - Obtains an address binding for the function $_s_y_m_b_o_l - as it occurs in the shared object identified by - $_d_l__s_o. When an error occurs an undef value is - returned. - - &dl_call($dl_func, $parms_desc, $return_desc, @parms) - Calls the function identified by $_d_l__f_u_n_c. The - function's entry parameters are described by - $_p_a_r_m_s__d_e_s_c and assigned values from @_p_a_r_m_s. The - function's exit value is described by $_r_e_t_u_r_n__d_e_s_c. - An array is returned that contains the values of any - result parameters and the return value. When an - error occurs because of a problem parsing the - descriptions or because of an incorrect parameter - count no values are returned (although the underly- - ing function may have been called). - - - -Sun Release 4.1 Last change: 10/16/92 1 - - - - - - -DLPERL(1) USER COMMANDS DLPERL(1) - - - - The descriptions are sequences of characters that - give the order and type of parameters: - - c A signed char value. - C An unsigned char value. - s A signed short value. - S An unsigned short value. - i A signed integer value. - I An unsigned integer value. - l A signed long value. - L An unsigned long value. - f A single-precision float. - d A double-precision float. - a An ascii (null-terminated) string. - p A pointer to <length> buffer. - - Each letter may optionally be preceded by a number - that gives a repeat count. An array is specified by - a preceding [_a_r_r_a_y__s_i_z_e] (or & as a shorthand for - [_1]). (Multi-dimension arrays are not currently - supported.) Each scalar or array element is ini- - tialized from @_p_a_r_m_s. A preceding - leaves the - parameter uninitialized. Type _p expects a preceding - <_b_u_f_f_e_r__l_e_n_g_t_h>. A preceding + specifies that after - the function is called that particular parameter's - value is to be returned (multiple values are - returned for array types, a + with a integral type - like _i returns an undef value). The $_r_e_t_u_r_n__d_e_s_c - contains only one letter with no repeat count, - or - +. - - An undef or zero-length $_p_a_r_m__d_e_s_c means the func- - tion has no parameters. An undef or a zero-length - $_r_e_t_u_r_n__d_e_s_c means the function returns void. - Strings or buffers that must be a specific length - (because the values are overwritten) must be pre- - extended. Although type _f is supported, compilers - typically pass floats as doubles. - - &dl_close($dl_so) - Removes the shared object identified by $_d_l__s_o from - _d_l_p_e_r_l's address space. If successful, a value of - zero is returned. When an error occurs a non-zero - value is returned. - - Predefined Names - - The following names have special meaning to _d_l_p_e_r_l. - - $DL_VERSION - The version of _d_l_p_e_r_l. This variable is read-only. - - - - -Sun Release 4.1 Last change: 10/16/92 2 - - - - - - -DLPERL(1) USER COMMANDS DLPERL(1) - - - - $DL_WARN - The current value of the _d_l_p_e_r_l warning flag. - Default is 1. If non-zero, when errors occur warn- - ings are sent to standard error. The warning is the - same information that is stored in $dl_errstr. - - $dl_errno - The error number for the error that occurred. If a - _d_l_p_e_r_l subroutine completes successfully $dl_errno - is set to zero. This variable is read-only. - - $dl_errstr - The error message for the error that occurred. If a - _d_l_p_e_r_l subroutine completes successfully $dl_errstr - is set to a zero length string. This variable is - read-only. - -EXAMPLES - This is an example of calling a simple C function: - - open(OUT, ">example.c"); - print OUT <<'EOC'; - void - example(a1, a2, i1, d1, a3) - char *a1[2]; - char *a2[2]; - int i1; - double *d1; - char *a3[4]; - { - a3[i1 + (int) *d1] = a1[0]; - a3[i1 * (int) *d1] = a1[1]; - a3[(int) *d1 - i1] = a2[0]; - a3[(int) *d1 - 2 * i1] = a2[1]; - } - EOC - close(OUT); - - system("cc -c example.c;ld -o example.so example.o"); - - $dl_so = &dl_open("example.so"); - die "$0: $dl_errstr" if($dl_errno); - - $dl_func = &dl_sym($dl_so, "example"); - die "$0: $dl_errstr" if($dl_errno); - - $dl_func =~ s/(['\\])/\\$1/g; - eval <<EOC; - sub example { - &dl_call('$dl_func', "2[2]a i &d -+[4]a", undef, @_); - } - EOC - - - -Sun Release 4.1 Last change: 10/16/92 3 - - - - - - -DLPERL(1) USER COMMANDS DLPERL(1) - - - - @vals = &example("hacker,", "Perl", "another", "Just", 1, 2); - print "@vals\n"; - - &dl_close($dl_so); - die "$0: $dl_errstr" if($dl_errno); - - unlink('example.c', 'example.o', 'example.so'); - - If a more complicated interface is needed, the dynamically - linked function can define _u_s_u_b_s by calling internal _p_e_r_l - functions. - -AUTHOR - Eric Fifer <egf@sbi.com> - -SEE ALSO - perl(1), dlopen(3X), ld(1) - -BUGS - Additional parameter types should be implemented to support - structures, multi-dimension arrays, pointers to arrays, - pointers to functions, etc. - - Unlike the _p_a_c_k operator, the repeat count precedes the - letter in the $_p_a_r_m__d_e_s_c syntax. The array size preceding - the parameter letter is also unconventional. - - All errors set $dl_errno to 1. - - - - - - - - - - - - - - - - - - - - - - - - - - - -Sun Release 4.1 Last change: 10/16/92 4 - - - |