#include "rcs_defs.hh"
#include <sys/types.h>
#include <sys/time.h>
#include <rpc/rpc.h>
#include <rpc/xdr.h>
Include dependency graph for rpcintrf.h:
This graph shows which files directly or indirectly include this file:
Go to the source code of this file.
Typedefs | |
typedef int *RCS_FAR * | PTR_TO_TKDLL_ERRNO (void) |
typedef CLIENT RCS_FAR *RCS_FAR * | PTR_TO_CLNT_CREATE (char *, unsigned long, unsigned long, char *) |
typedef char RCS_FAR *RCS_FAR * | PTR_TO_CLNT_SPCREATEERROR (char RCS_FAR *) |
typedef char RCS_FAR *RCS_FAR * | PTR_TO_CLNT_SPERRNO (enum clnt_stat) |
Enumerations | |
enum | RPC_LIBRARY_TYPE { RPC_INVALID, RPC_UNIX, RPC_DOS, PCNFS_TKDLL_WINDOWS_31, RHAPCD_ONCRPC_WINDOWS_NT, LIBRPC_WINDOWS } |
Functions | |
int | load_rpc_interface () |
void | unload_rpc_interface () |
typedef | int (RCS_FAR *PTR_TO_TKDLL_INIT)(void) |
typedef | long (RCS_FAR *PTR_TO_TKDLL_VERSION)(void) |
enum | clnt_stat (RCS_FAR *PTR_TO_CLNT_CALL)(CLIENT *, u_long, xdrproc_t, caddr_t, xdrproc_t, caddr_t, struct timeval) |
typedef | bool_t (RCS_FAR *PTR_TO_CLNT_CONTROL)(CLIENT *, u_int, char *) |
typedef | void (RCS_FAR *PTR_TO_CLNT_DESTROY)(CLIENT *) |
CLIENT * | dl_clnt_create (char *, unsigned long, unsigned long, char *) |
bool_t | dl_clnt_control (CLIENT *, u_int, char *) |
enum clnt_stat | dl_clnt_call (CLIENT *, u_long, xdrproc_t, caddr_t, xdrproc_t, caddr_t, struct timeval) |
void | dl_clnt_destroy (CLIENT *) |
char * | dl_clnt_spcreateerror (char *) |
char * | dl_clnt_sperrno (enum clnt_stat) |
typedef | void (RCS_PASCAL RCS_FAR *PTR_TO_PASCAL_XDRMEM_CREATE)(XDR RCS_FAR *, char RCS_FAR *, unsigned int, enum xdr_op) |
typedef | u_long (RCS_PASCAL RCS_FAR *PTR_TO_PASCAL_XDR_GETPOS)(XDR *) |
typedef | bool_t (RCS_PASCAL RCS_FAR *PTR_TO_PASCAL_XDR_SETPOS)(XDR *, u_long) |
typedef | u_long (RCS_FAR *PTR_TO_XDR_GETPOS)(XDR *) |
void | dl_xdrmem_create (XDR *, char RCS_FAR *, unsigned int, enum xdr_op) |
void | dl_xdr_destroy (XDR *) |
u_long | dl_xdr_getpos (XDR *) |
bool_t | dl_xdr_setpos (XDR *, u_long) |
Variables | |
PTR_TO_TKDLL_INIT | ptr_to_tkdll_init |
PTR_TO_RPC_NT_INIT | ptr_to_rpc_nt_init |
PTR_TO_TKDLL_CLEANUP | ptr_to_tkdll_cleanup |
PTR_TO_RPC_NT_EXIT | ptr_to_rpc_nt_exit |
PTR_TO_TKDLL_ERRNO | ptr_to_tkdll_errno |
PTR_TO_TKDLL_VERSION | ptr_to_tkdll_version |
PTR_TO_CLNT_CALL | ptr_to_clnt_call |
PTR_TO_CLNT_CONTROL | ptr_to_clnt_control |
PTR_TO_CLNT_DESTROY | ptr_to_clnt_destroy |
PTR_TO_CLNT_CREATE | ptr_to_clnt_create |
PTR_TO_CLNT_SPCREATEERROR | ptr_to_clnt_spcreateerror |
PTR_TO_CLNT_SPERRNO | ptr_to_clnt_sperrno |
PTR_TO_PASCAL_XDRMEM_CREATE | ptr_to_pascal_xdrmem_create |
PTR_TO_PASCAL_XDR_DESTROY | ptr_to_pascal_xdr_destroy |
PTR_TO_PASCAL_XDR_GETPOS | ptr_to_pascal_xdr_getpos |
PTR_TO_PASCAL_XDR_SETPOS | ptr_to_pascal_xdr_setpos |
PTR_TO_PASCAL_XDR_VOID | ptr_to_pascal_xdr_void |
PTR_TO_PASCAL_XDR_INT | ptr_to_pascal_xdr_int |
PTR_TO_PASCAL_XDR_U_INT | ptr_to_pascal_xdr_u_int |
PTR_TO_PASCAL_XDR_SHORT | ptr_to_pascal_xdr_short |
PTR_TO_PASCAL_XDR_U_SHORT | ptr_to_pascal_xdr_u_short |
PTR_TO_PASCAL_XDR_LONG | ptr_to_pascal_xdr_long |
PTR_TO_PASCAL_XDR_U_LONG | ptr_to_pascal_xdr_u_long |
PTR_TO_PASCAL_XDR_CHAR | ptr_to_pascal_xdr_char |
PTR_TO_PASCAL_XDR_U_CHAR | ptr_to_pascal_xdr_u_char |
PTR_TO_PASCAL_XDR_FLOAT | ptr_to_pascal_xdr_float |
PTR_TO_PASCAL_XDR_DOUBLE | ptr_to_pascal_xdr_double |
PTR_TO_PASCAL_XDR_BYTES | ptr_to_pascal_xdr_bytes |
PTR_TO_PASCAL_XDR_OPAQUE | ptr_to_pascal_xdr_opaque |
PTR_TO_PASCAL_XDR_VECTOR | ptr_to_pascal_xdr_vector |
PTR_TO_XDRMEM_CREATE | ptr_to_xdrmem_create |
PTR_TO_XDR_DESTROY | ptr_to_xdr_destroy |
PTR_TO_XDR_GETPOS | ptr_to_xdr_getpos |
PTR_TO_XDR_SETPOS | ptr_to_xdr_setpos |
PTR_TO_XDR_VOID | ptr_to_xdr_void |
PTR_TO_XDR_INT | ptr_to_xdr_int |
PTR_TO_XDR_U_INT | ptr_to_xdr_u_int |
PTR_TO_XDR_SHORT | ptr_to_xdr_short |
PTR_TO_XDR_U_SHORT | ptr_to_xdr_u_short |
PTR_TO_XDR_LONG | ptr_to_xdr_long |
PTR_TO_XDR_U_LONG | ptr_to_xdr_u_long |
PTR_TO_XDR_CHAR | ptr_to_xdr_char |
PTR_TO_XDR_U_CHAR | ptr_to_xdr_u_char |
PTR_TO_XDR_FLOAT | ptr_to_xdr_float |
PTR_TO_XDR_DOUBLE | ptr_to_xdr_double |
PTR_TO_XDR_BYTES | ptr_to_xdr_bytes |
PTR_TO_XDR_OPAQUE | ptr_to_xdr_opaque |
PTR_TO_XDR_VECTOR | ptr_to_xdr_vector |
RPC_LIBRARY_TYPE | rpc_library_type |
|
Definition at line 56 of file rpcintrf.h. |
|
Definition at line 69 of file rpcintrf.h. |
|
Definition at line 75 of file rpcintrf.h. |
|
Definition at line 77 of file rpcintrf.h. |
|
Definition at line 210 of file rpcintrf.h. 00211 { 00212 RPC_INVALID, 00213 RPC_UNIX, /* Sun, LynxOs, VxWorks, SGI etc. */ 00214 RPC_DOS, 00215 PCNFS_TKDLL_WINDOWS_31, 00216 RHAPCD_ONCRPC_WINDOWS_NT, 00217 LIBRPC_WINDOWS 00218 }; |
|
Definition at line 201 of file rpcintrf.cc. 00202 { 00203 rpc_load_count++; 00204 if (rpc_load_count > 1) 00205 { 00206 switch (rpc_availability) 00207 { 00208 case RPC_AVAILABLE: 00209 return 0; 00210 00211 default: 00212 return -1; 00213 } 00214 } 00215 00216 #ifndef _Windows 00217 #ifndef __MSDOS__ 00218 rpc_library_type = RPC_UNIX; 00219 #else 00220 rpc_library_type = RPC_DOS; 00221 #endif 00222 if (rpc_availability == RPC_AVAILABLE) 00223 { 00224 return 0; 00225 } 00226 00227 #if defined(__MSDOS__) && !defined(_Windows) 00228 /* Install the PC-NFS TSR if it is not already running. */ 00229 if (-1 == rtm_install ("tcp")) 00230 { 00231 rcs_print_error ("CMS: PC-NFS RTM install error.\n"); 00232 rcs_print_error ("CMS: errno = %d\n"); 00233 rpc_availability = RPC_NOT_AVAILABLE; 00234 return (-1); 00235 } 00236 /* Check the version of PC-NFS. */ 00237 long version; 00238 version = rtm_version (); 00239 if (version < 400000l) 00240 { 00241 rcs_print_error ("CMS: PC-NFS RTM version must be atleast 4.0\n"); 00242 rcs_print_error ("CMS: version = %lx\n", version); 00243 rpc_availability = RPC_NOT_AVAILABLE; 00244 return (-1); 00245 } 00246 #ifdef _WINDOWS 00247 ptr_to_clnt_call = clnt_call; 00248 ptr_to_clnt_create = clnt_create; 00249 ptr_to_clnt_control = clnt_control; 00250 ptr_to_clnt_destroy = clnt_destroy; 00251 ptr_to_clnt_sperrno = clnt_sperrno; 00252 ptr_to_clnt_spcreateerror = clnt_spcreateerror; 00253 ptr_to_xdrmem_create = xdrmem_create; 00254 ptr_to_xdr_destroy = xdr_destroy; 00255 ptr_to_xdr_getpos = xdr_getpos; 00256 ptr_to_xdr_setpos = xdr_setpos; 00257 #endif 00258 #endif 00259 00260 00261 // ptr_to_clnt_call = clnt_call; 00262 // ptr_to_clnt_create = clnt_create; 00263 // ptr_to_clnt_control = clnt_control; 00264 // ptr_to_clnt_destroy = clnt_destroy; 00265 // ptr_to_clnt_sperrno = clnt_sperrno; 00266 //ptr_to_clnt_spcreateerror = clnt_spcreateerror; 00267 // ptr_to_xdrmem_create = xdrmem_create; 00268 // ptr_to_xdr_destroy = xdr_destroy; 00269 // ptr_to_xdr_getpos = xdr_getpos; 00270 // ptr_to_xdr_setpos = xdr_setpos; 00271 ptr_to_xdr_char = xdr_char; 00272 // The explicit conversion here is neccessary becouse 00273 // under some platforms xdr_u_char is prototyped 00274 // bool_t xdr_u_char(XDR *, char *) 00275 // ^-- missing "unsigned" 00276 ptr_to_xdr_u_char = (PTR_TO_XDR_U_CHAR) xdr_u_char; 00277 ptr_to_xdr_short = xdr_short; 00278 ptr_to_xdr_u_short = xdr_u_short; 00279 ptr_to_xdr_int = xdr_int; 00280 ptr_to_xdr_u_int = xdr_u_int; 00281 ptr_to_xdr_long = xdr_long; 00282 ptr_to_xdr_u_long = xdr_u_long; 00283 ptr_to_xdr_float = xdr_float; 00284 ptr_to_xdr_double = xdr_double; 00285 ptr_to_xdr_bytes = (PTR_TO_XDR_BYTES) xdr_bytes; 00286 ptr_to_xdr_opaque = (PTR_TO_XDR_OPAQUE) xdr_opaque; 00287 ptr_to_xdr_vector = (PTR_TO_XDR_VECTOR) xdr_vector; 00288 rpc_availability = RPC_AVAILABLE; 00289 00290 00291 return 0; 00292 00293 #else 00294 00295 static char windows_system_directory[250]; 00296 if (RPC_AVAILABLE == rpc_availability) 00297 { 00298 return 0; 00299 } 00300 if (RPC_NOT_AVAILABLE == rpc_availability) 00301 { 00302 return -1; 00303 } 00304 GetSystemDirectory (windows_system_directory, 250); 00305 static char rpc_dll_name[256]; 00306 struct stat rpc_dll_stat; 00307 00308 #ifdef __WIN32__ 00309 if (rpc_library_handle == NULL) 00310 { 00311 strcpy (rpc_dll_name, windows_system_directory); 00312 strcat (rpc_dll_name, "\\tirpc.dll"); 00313 if (!stat (rpc_dll_name, &rpc_dll_stat)) 00314 { 00315 use_init_and_cleanup = 0; 00316 rpc_library_type = RHAPCD_ONCRPC_WINDOWS_NT; 00317 rpc_library_handle = LoadLibrary (rpc_dll_name); 00318 #ifdef WIN32 00319 if (rpc_library_handle == NULL) 00320 #else 00321 if (rpc_library_handle < HINSTANCE_ERROR) 00322 #endif 00323 { 00324 rcs_print_error ("Can't load DLL(%s). Error = %d.\n", 00325 rpc_dll_name, rpc_library_handle); 00326 rpc_library_handle = NULL; 00327 } 00328 } 00329 } 00330 #endif 00331 00332 if (rpc_library_handle == NULL) 00333 { 00334 strcpy (rpc_dll_name, windows_system_directory); 00335 strcat (rpc_dll_name, "\\librpc.dll"); 00336 if (!stat (rpc_dll_name, &rpc_dll_stat)) 00337 { 00338 use_init_and_cleanup = 1; 00339 rpc_library_type = LIBRPC_WINDOWS; 00340 rpc_library_handle = LoadLibrary (rpc_dll_name); 00341 #ifdef WIN32 00342 if (rpc_library_handle == NULL) 00343 #else 00344 if (rpc_library_handle < HINSTANCE_ERROR) 00345 #endif 00346 { 00347 rcs_print_error ("LoadLibrary(%s) Error: %d\n", rpc_dll_name, 00348 rpc_library_handle); 00349 rcs_print_error 00350 ("Can not load PC-NFS Toolkit Library. (RPC will not be available.)\n"); 00351 rpc_availability = RPC_NOT_AVAILABLE; 00352 return -1; 00353 } 00354 } 00355 } 00356 00357 if (rpc_library_handle == NULL) 00358 { 00359 strcpy (rpc_dll_name, windows_system_directory); 00360 strcat (rpc_dll_name, "\\tklib.dll"); 00361 if (!stat (rpc_dll_name, &rpc_dll_stat)) 00362 { 00363 rpc_library_type = PCNFS_TKDLL_WINDOWS_31; 00364 use_init_and_cleanup = 1; 00365 rpc_library_handle = LoadLibrary (rpc_dll_name); 00366 #ifdef WIN32 00367 if (rpc_library_handle == NULL) 00368 #else 00369 if (rpc_library_handle < HINSTANCE_ERROR) 00370 #endif 00371 { 00372 rcs_print_error ("LoadLibrary(%s) Error: %d\n", 00373 rpc_dll_name, rpc_library_handle); 00374 rcs_print_error 00375 ("Can not load PC-NFS Toolkit Library. (RPC will not be available.)\n"); 00376 rpc_availability = RPC_NOT_AVAILABLE; 00377 return -1; 00378 } 00379 } 00380 } 00381 00382 if (rpc_library_handle == NULL) 00383 { 00384 rcs_print_error ("Can't find DLL to load rpc interface. \n"); 00385 rcs_print_error 00386 ("Check that tklib.dll or tirpc.dll is in the windows system directory.\n"); 00387 rcs_print_error ("tirpc.dll will only be used in 32-bit mode.\n"); 00388 return -1; 00389 } 00390 00391 rcs_print_debug (PRINT_INTERFACE_LOADING, 00392 "Loading rpc interface with %s\n", rpc_dll_name); 00393 00394 if (use_init_and_cleanup == 1 && rpc_library_type == PCNFS_TKDLL_WINDOWS_31) 00395 { 00396 ptr_to_tkdll_init = (PTR_TO_TKDLL_INIT) GetProc ("_TKDLL_INIT"); 00397 if (NULL == ptr_to_tkdll_init) 00398 { 00399 rcs_print_error ("Can not load function tkdll_init\n"); 00400 rcs_print_error 00401 ("Can not load PC-NFS Toolkit Library. (RPC will not be available.)\n"); 00402 rpc_availability = RPC_NOT_AVAILABLE; 00403 return -1; 00404 } 00405 ptr_to_tkdll_errno = (PTR_TO_TKDLL_ERRNO) GetProc ("_TKDLL_ERRNO"); 00406 if (NULL == ptr_to_tkdll_errno) 00407 { 00408 rcs_print_error ("Can not load function tkdll_errno\n"); 00409 rcs_print_error 00410 ("Can not load PC-NFS Toolkit Library. (RPC will not be available.)\n"); 00411 rpc_availability = RPC_NOT_AVAILABLE; 00412 return -1; 00413 } 00414 ptr_to_tkdll_version = 00415 (PTR_TO_TKDLL_VERSION) GetProc ("_TKDLL_VERSION"); 00416 if (NULL == ptr_to_tkdll_version) 00417 { 00418 rcs_print_error ("Can not load function tkdll_version\n"); 00419 rcs_print_error 00420 ("Can not load PC-NFS Toolkit Library. (RPC will not be available.)\n"); 00421 rpc_availability = RPC_NOT_AVAILABLE; 00422 return -1; 00423 } 00424 ptr_to_tkdll_cleanup = 00425 (PTR_TO_TKDLL_CLEANUP) GetProc ("_TKDLL_CLEANUP"); 00426 if (NULL == ptr_to_tkdll_cleanup) 00427 { 00428 rcs_print_error ("Can not load function tkdll_cleanup\n"); 00429 rcs_print_error 00430 ("Can not load PC-NFS Toolkit Library. (RPC will not be available.)\n"); 00431 rpc_availability = RPC_NOT_AVAILABLE; 00432 return -1; 00433 } 00434 } 00435 00436 if (use_init_and_cleanup == 1 && rpc_library_type == LIBRPC_WINDOWS) 00437 { 00438 ptr_to_rpc_nt_init = (PTR_TO_RPC_NT_INIT) GetProc ("_rpc_nt_init"); 00439 if (NULL == ptr_to_rpc_nt_init) 00440 { 00441 rcs_print_error ("Can not load function rpc_nt_init\n"); 00442 rcs_print_error 00443 ("Can not load PC-NFS Toolkit Library. (RPC will not be available.)\n"); 00444 rpc_availability = RPC_NOT_AVAILABLE; 00445 return -1; 00446 } 00447 ptr_to_tkdll_errno = sim_tkdll_errno; 00448 ptr_to_rpc_nt_exit = (PTR_TO_RPC_NT_EXIT) GetProc ("_RPC_NT_EXIT"); 00449 if (NULL == ptr_to_tkdll_cleanup) 00450 { 00451 rcs_print_error ("Can not load function rpc_nt_exit\n"); 00452 rcs_print_error 00453 ("Can not load PC-NFS Toolkit Library. (RPC will not be available.)\n"); 00454 rpc_availability = RPC_NOT_AVAILABLE; 00455 return -1; 00456 } 00457 } 00458 ptr_to_clnt_create = (PTR_TO_CLNT_CREATE) GetProc ("_CLNT_CREATE"); 00459 if (NULL == ptr_to_clnt_create) 00460 { 00461 rcs_print_error ("Can not load function clnt_create\n"); 00462 rcs_print_error 00463 ("Can not load PC-NFS Toolkit Library. (RPC will not be available.)\n"); 00464 rpc_availability = RPC_NOT_AVAILABLE; 00465 return -1; 00466 } 00467 00468 if (rpc_library_type != LIBRPC_WINDOWS) 00469 { 00470 ptr_to_clnt_call = (PTR_TO_CLNT_CALL) GetProc ("_CLNT_CALL"); 00471 if (NULL == ptr_to_clnt_call) 00472 { 00473 rcs_print_error ("Can not load function clnt_call\n"); 00474 rcs_print_error 00475 ("Can not load PC-NFS Toolkit Library. (RPC will not be available.)\n"); 00476 rpc_availability = RPC_NOT_AVAILABLE; 00477 return -1; 00478 } 00479 ptr_to_clnt_control = (PTR_TO_CLNT_CONTROL) GetProc ("_CLNT_CONTROL"); 00480 if (NULL == ptr_to_clnt_control) 00481 { 00482 rcs_print_error ("Can not load function clnt_control\n"); 00483 rcs_print_error 00484 ("Can not load PC-NFS Toolkit Library. (RPC will not be available.)\n"); 00485 rpc_availability = RPC_NOT_AVAILABLE; 00486 return -1; 00487 } 00488 ptr_to_clnt_destroy = (PTR_TO_CLNT_DESTROY) GetProc ("_CLNT_DESTROY"); 00489 if (NULL == ptr_to_clnt_destroy) 00490 { 00491 rcs_print_error ("Can not load function clnt_destroy\n"); 00492 rcs_print_error 00493 ("Can not load PC-NFS Toolkit Library. (RPC will not be available.)\n"); 00494 rpc_availability = RPC_NOT_AVAILABLE; 00495 return -1; 00496 } 00497 } 00498 ptr_to_clnt_spcreateerror = 00499 (PTR_TO_CLNT_SPCREATEERROR) GetProc ("_CLNT_SPCREATEERROR"); 00500 if (NULL == ptr_to_clnt_spcreateerror) 00501 { 00502 rcs_print_error ("Can not load function clnt_spcreateerror\n"); 00503 rcs_print_error 00504 ("Can not load PC-NFS Toolkit Library. (RPC will not be available.)\n"); 00505 rpc_availability = RPC_NOT_AVAILABLE; 00506 return -1; 00507 } 00508 ptr_to_clnt_sperrno = (PTR_TO_CLNT_SPERRNO) GetProc ("_CLNT_SPERRNO"); 00509 if (NULL == ptr_to_clnt_sperrno) 00510 { 00511 rcs_print_error ("Can not load function clnt_sperrno\n"); 00512 rcs_print_error 00513 ("Can not load PC-NFS Toolkit Library. (RPC will not be available.)\n"); 00514 rpc_availability = RPC_NOT_AVAILABLE; 00515 return -1; 00516 } 00517 00518 if (rpc_library_type == PCNFS_TKDLL_WINDOWS_31) 00519 { 00520 ptr_to_pascal_xdrmem_create = 00521 (PTR_TO_PASCAL_XDRMEM_CREATE) GetProc ("XDRMEM_CREATE"); 00522 if (NULL == ptr_to_pascal_xdrmem_create) 00523 { 00524 rcs_print_error ("Can not load function xdrmem_create\n"); 00525 rcs_print_error 00526 ("Can not load PC-NFS Toolkit Library. (RPC will not be available.)\n"); 00527 rpc_availability = RPC_NOT_AVAILABLE; 00528 return -1; 00529 } 00530 ptr_to_pascal_xdr_destroy = 00531 (PTR_TO_PASCAL_XDR_DESTROY) GetProc ("XDR_DESTROY"); 00532 if (NULL == ptr_to_pascal_xdr_destroy) 00533 { 00534 rcs_print_error ("Can not load function xdr_destroy\n"); 00535 rcs_print_error 00536 ("Can not load PC-NFS Toolkit Library. (RPC will not be available.)\n"); 00537 rpc_availability = RPC_NOT_AVAILABLE; 00538 return -1; 00539 } 00540 ptr_to_pascal_xdr_getpos = 00541 (PTR_TO_PASCAL_XDR_GETPOS) GetProc ("XDR_GETPOS"); 00542 if (NULL == ptr_to_pascal_xdr_getpos) 00543 { 00544 rcs_print_error ("Can not load function xdr_getpos\n"); 00545 rcs_print_error 00546 ("Can not load PC-NFS Toolkit Library. (RPC will not be available.)\n"); 00547 rpc_availability = RPC_NOT_AVAILABLE; 00548 return -1; 00549 } 00550 ptr_to_pascal_xdr_setpos = 00551 (PTR_TO_PASCAL_XDR_SETPOS) GetProc ("XDR_SETPOS"); 00552 if (NULL == ptr_to_pascal_xdr_setpos) 00553 { 00554 rcs_print_error ("Can not load function xdr_setpos\n"); 00555 rcs_print_error 00556 ("Can not load PC-NFS Toolkit Library. (RPC will not be available.)\n"); 00557 rpc_availability = RPC_NOT_AVAILABLE; 00558 return -1; 00559 } 00560 ptr_to_pascal_xdr_void = (PTR_TO_PASCAL_XDR_VOID) GetProc ("XDR_VOID"); 00561 if (NULL == ptr_to_pascal_xdr_void) 00562 { 00563 rcs_print_error ("Can not load function xdr_void\n"); 00564 rcs_print_error 00565 ("Can not load PC-NFS Toolkit Library. (RPC will not be available.)\n"); 00566 rpc_availability = RPC_NOT_AVAILABLE; 00567 return -1; 00568 } 00569 ptr_to_pascal_xdr_char = (PTR_TO_PASCAL_XDR_CHAR) GetProc ("XDR_CHAR"); 00570 if (NULL == ptr_to_pascal_xdr_char) 00571 { 00572 rcs_print_error ("Can not load function xdr_char\n"); 00573 rcs_print_error 00574 ("Can not load PC-NFS Toolkit Library. (RPC will not be available.)\n"); 00575 rpc_availability = RPC_NOT_AVAILABLE; 00576 return -1; 00577 } 00578 ptr_to_pascal_xdr_u_char = 00579 (PTR_TO_PASCAL_XDR_U_CHAR) GetProc ("XDR_U_CHAR"); 00580 if (NULL == ptr_to_pascal_xdr_u_char) 00581 { 00582 rcs_print_error ("Can not load function xdr_u_char\n"); 00583 rcs_print_error 00584 ("Can not load PC-NFS Toolkit Library. (RPC will not be available.)\n"); 00585 rpc_availability = RPC_NOT_AVAILABLE; 00586 return -1; 00587 } 00588 ptr_to_pascal_xdr_short = 00589 (PTR_TO_PASCAL_XDR_SHORT) GetProc ("XDR_SHORT"); 00590 if (NULL == ptr_to_pascal_xdr_short) 00591 { 00592 rcs_print_error ("Can not load function xdr_short\n"); 00593 rcs_print_error 00594 ("Can not load PC-NFS Toolkit Library. (RPC will not be available.)\n"); 00595 rpc_availability = RPC_NOT_AVAILABLE; 00596 return -1; 00597 } 00598 ptr_to_pascal_xdr_u_short = 00599 (PTR_TO_PASCAL_XDR_U_SHORT) GetProc ("XDR_U_SHORT"); 00600 if (NULL == ptr_to_pascal_xdr_u_short) 00601 { 00602 rcs_print_error ("Can not load function xdr_u_short\n"); 00603 rcs_print_error 00604 ("Can not load PC-NFS Toolkit Library. (RPC will not be available.)\n"); 00605 rpc_availability = RPC_NOT_AVAILABLE; 00606 return -1; 00607 } 00608 ptr_to_pascal_xdr_int = (PTR_TO_PASCAL_XDR_INT) GetProc ("XDR_INT"); 00609 if (NULL == ptr_to_pascal_xdr_int) 00610 { 00611 rcs_print_error ("Can not load function xdr_int\n"); 00612 rcs_print_error 00613 ("Can not load PC-NFS Toolkit Library. (RPC will not be available.)\n"); 00614 rpc_availability = RPC_NOT_AVAILABLE; 00615 return -1; 00616 } 00617 ptr_to_pascal_xdr_u_int = 00618 (PTR_TO_PASCAL_XDR_U_INT) GetProc ("XDR_U_INT"); 00619 if (NULL == ptr_to_pascal_xdr_u_int) 00620 { 00621 rcs_print_error ("Can not load function xdr_u_int\n"); 00622 rcs_print_error 00623 ("Can not load PC-NFS Toolkit Library. (RPC will not be available.)\n"); 00624 rpc_availability = RPC_NOT_AVAILABLE; 00625 return -1; 00626 } 00627 ptr_to_pascal_xdr_long = (PTR_TO_PASCAL_XDR_LONG) GetProc ("XDR_LONG"); 00628 if (NULL == ptr_to_pascal_xdr_long) 00629 { 00630 rcs_print_error ("Can not load function xdr_long\n"); 00631 rcs_print_error 00632 ("Can not load PC-NFS Toolkit Library. (RPC will not be available.)\n"); 00633 rpc_availability = RPC_NOT_AVAILABLE; 00634 return -1; 00635 } 00636 ptr_to_pascal_xdr_u_long = 00637 (PTR_TO_PASCAL_XDR_U_LONG) GetProc ("XDR_U_LONG"); 00638 if (NULL == ptr_to_clnt_create) 00639 { 00640 rcs_print_error ("Can not load function xdr_u_long\n"); 00641 rcs_print_error 00642 ("Can not load PC-NFS Toolkit Library. (RPC will not be available.)\n"); 00643 rpc_availability = RPC_NOT_AVAILABLE; 00644 return -1; 00645 } 00646 ptr_to_pascal_xdr_float = 00647 (PTR_TO_PASCAL_XDR_FLOAT) GetProc ("XDR_FLOAT"); 00648 if (NULL == ptr_to_pascal_xdr_float) 00649 { 00650 rcs_print_error ("Can not load function xdr_float\n"); 00651 rcs_print_error 00652 ("Can not load PC-NFS Toolkit Library. (RPC will not be available.)\n"); 00653 rpc_availability = RPC_NOT_AVAILABLE; 00654 return -1; 00655 } 00656 ptr_to_pascal_xdr_double = 00657 (PTR_TO_PASCAL_XDR_DOUBLE) GetProc ("XDR_DOUBLE"); 00658 if (NULL == ptr_to_pascal_xdr_double) 00659 { 00660 rcs_print_error ("Can not load function xdr_double\n"); 00661 rcs_print_error 00662 ("Can not load PC-NFS Toolkit Library. (RPC will not be available.)\n"); 00663 rpc_availability = RPC_NOT_AVAILABLE; 00664 return -1; 00665 } 00666 ptr_to_pascal_xdr_vector = 00667 (PTR_TO_PASCAL_XDR_VECTOR) GetProc ("XDR_VECTOR"); 00668 if (NULL == ptr_to_pascal_xdr_vector) 00669 { 00670 rcs_print_error ("Can not load function xdr_vector\n"); 00671 rcs_print_error 00672 ("Can not load PC-NFS Toolkit Library. (RPC will not be available.)\n"); 00673 rpc_availability = RPC_NOT_AVAILABLE; 00674 return -1; 00675 } 00676 ptr_to_pascal_xdr_bytes = 00677 (PTR_TO_PASCAL_XDR_BYTES) GetProc ("XDR_BYTES"); 00678 if (NULL == ptr_to_pascal_xdr_bytes) 00679 { 00680 rcs_print_error ("Can not load function xdr_bytes\n"); 00681 rcs_print_error 00682 ("Can not load PC-NFS Toolkit Library. (RPC will not be available.)\n"); 00683 rpc_availability = RPC_NOT_AVAILABLE; 00684 return -1; 00685 } 00686 ptr_to_pascal_xdr_opaque = 00687 (PTR_TO_PASCAL_XDR_OPAQUE) GetProc ("XDR_OPAQUE"); 00688 if (NULL == ptr_to_pascal_xdr_opaque) 00689 { 00690 rcs_print_error ("Can not load function xdr_opaque\n"); 00691 rcs_print_error 00692 ("Can not load PC-NFS Toolkit Library. (RPC will not be available.)\n"); 00693 rpc_availability = RPC_NOT_AVAILABLE; 00694 return -1; 00695 } 00696 } 00697 else 00698 { 00699 ptr_to_xdrmem_create = 00700 (PTR_TO_XDRMEM_CREATE) GetProc ("_XDRMEM_CREATE"); 00701 00702 if (NULL == ptr_to_xdrmem_create) 00703 { 00704 rcs_print_error ("Can not load function xdrmem_create\n"); 00705 rcs_print_error 00706 ("Can not load PC-NFS Toolkit Library. (RPC will not be available.)\n"); 00707 rpc_availability = RPC_NOT_AVAILABLE; 00708 return -1; 00709 } 00710 ptr_to_xdr_void = (PTR_TO_XDR_VOID) GetProc ("_XDR_VOID"); 00711 if (NULL == ptr_to_xdr_void) 00712 { 00713 rcs_print_error ("Can not load function xdr_void\n"); 00714 rcs_print_error 00715 ("Can not load PC-NFS Toolkit Library. (RPC will not be available.)\n"); 00716 rpc_availability = RPC_NOT_AVAILABLE; 00717 return -1; 00718 } 00719 ptr_to_xdr_char = (PTR_TO_XDR_CHAR) GetProc ("_XDR_CHAR"); 00720 if (NULL == ptr_to_xdr_char) 00721 { 00722 rcs_print_error ("Can not load function xdr_char\n"); 00723 rcs_print_error 00724 ("Can not load PC-NFS Toolkit Library. (RPC will not be available.)\n"); 00725 rpc_availability = RPC_NOT_AVAILABLE; 00726 return -1; 00727 } 00728 ptr_to_xdr_u_char = (PTR_TO_XDR_U_CHAR) GetProc ("_XDR_U_CHAR"); 00729 if (NULL == ptr_to_xdr_u_char) 00730 { 00731 rcs_print_error ("Can not load function xdr_u_char\n"); 00732 rcs_print_error 00733 ("Can not load PC-NFS Toolkit Library. (RPC will not be available.)\n"); 00734 rpc_availability = RPC_NOT_AVAILABLE; 00735 return -1; 00736 } 00737 ptr_to_xdr_short = (PTR_TO_XDR_SHORT) GetProc ("_XDR_SHORT"); 00738 if (NULL == ptr_to_xdr_short) 00739 { 00740 rcs_print_error ("Can not load function xdr_short\n"); 00741 rcs_print_error 00742 ("Can not load PC-NFS Toolkit Library. (RPC will not be available.)\n"); 00743 rpc_availability = RPC_NOT_AVAILABLE; 00744 return -1; 00745 } 00746 ptr_to_xdr_u_short = (PTR_TO_XDR_U_SHORT) GetProc ("_XDR_U_SHORT"); 00747 if (NULL == ptr_to_xdr_u_short) 00748 { 00749 rcs_print_error ("Can not load function xdr_u_short\n"); 00750 rcs_print_error 00751 ("Can not load PC-NFS Toolkit Library. (RPC will not be available.)\n"); 00752 rpc_availability = RPC_NOT_AVAILABLE; 00753 return -1; 00754 } 00755 ptr_to_xdr_int = (PTR_TO_XDR_INT) GetProc ("_XDR_INT"); 00756 if (NULL == ptr_to_xdr_int) 00757 { 00758 rcs_print_error ("Can not load function xdr_int\n"); 00759 rcs_print_error 00760 ("Can not load PC-NFS Toolkit Library. (RPC will not be available.)\n"); 00761 rpc_availability = RPC_NOT_AVAILABLE; 00762 return -1; 00763 } 00764 ptr_to_xdr_u_int = (PTR_TO_XDR_U_INT) GetProc ("_XDR_U_INT"); 00765 if (NULL == ptr_to_xdr_u_int) 00766 { 00767 rcs_print_error ("Can not load function xdr_u_int\n"); 00768 rcs_print_error 00769 ("Can not load PC-NFS Toolkit Library. (RPC will not be available.)\n"); 00770 rpc_availability = RPC_NOT_AVAILABLE; 00771 return -1; 00772 } 00773 ptr_to_xdr_long = (PTR_TO_XDR_LONG) GetProc ("_XDR_LONG"); 00774 if (NULL == ptr_to_xdr_long) 00775 { 00776 rcs_print_error ("Can not load function xdr_long\n"); 00777 rcs_print_error 00778 ("Can not load PC-NFS Toolkit Library. (RPC will not be available.)\n"); 00779 rpc_availability = RPC_NOT_AVAILABLE; 00780 return -1; 00781 } 00782 ptr_to_xdr_u_long = (PTR_TO_XDR_U_LONG) GetProc ("_XDR_U_LONG"); 00783 if (NULL == ptr_to_clnt_create) 00784 { 00785 rcs_print_error ("Can not load function xdr_u_long\n"); 00786 rcs_print_error 00787 ("Can not load PC-NFS Toolkit Library. (RPC will not be available.)\n"); 00788 rpc_availability = RPC_NOT_AVAILABLE; 00789 return -1; 00790 } 00791 ptr_to_xdr_float = (PTR_TO_XDR_FLOAT) GetProc ("_XDR_FLOAT"); 00792 if (NULL == ptr_to_xdr_float) 00793 { 00794 rcs_print_error ("Can not load function xdr_float\n"); 00795 rcs_print_error 00796 ("Can not load PC-NFS Toolkit Library. (RPC will not be available.)\n"); 00797 rpc_availability = RPC_NOT_AVAILABLE; 00798 return -1; 00799 } 00800 ptr_to_xdr_double = (PTR_TO_XDR_DOUBLE) GetProc ("_XDR_DOUBLE"); 00801 if (NULL == ptr_to_xdr_double) 00802 { 00803 rcs_print_error ("Can not load function xdr_double\n"); 00804 rcs_print_error 00805 ("Can not load PC-NFS Toolkit Library. (RPC will not be available.)\n"); 00806 rpc_availability = RPC_NOT_AVAILABLE; 00807 return -1; 00808 } 00809 ptr_to_xdr_vector = (PTR_TO_XDR_VECTOR) GetProc ("_XDR_VECTOR"); 00810 if (NULL == ptr_to_xdr_vector) 00811 { 00812 rcs_print_error ("Can not load function xdr_vector\n"); 00813 rcs_print_error 00814 ("Can not load PC-NFS Toolkit Library. (RPC will not be available.)\n"); 00815 rpc_availability = RPC_NOT_AVAILABLE; 00816 return -1; 00817 } 00818 ptr_to_xdr_bytes = (PTR_TO_XDR_BYTES) GetProc ("_XDR_BYTES"); 00819 if (NULL == ptr_to_xdr_bytes) 00820 { 00821 rcs_print_error ("Can not load function xdr_bytes\n"); 00822 rcs_print_error 00823 ("Can not load PC-NFS Toolkit Library. (RPC will not be available.)\n"); 00824 rpc_availability = RPC_NOT_AVAILABLE; 00825 return -1; 00826 } 00827 ptr_to_xdr_opaque = (PTR_TO_XDR_OPAQUE) GetProc ("_XDR_OPAQUE"); 00828 if (NULL == ptr_to_xdr_opaque) 00829 { 00830 rcs_print_error ("Can not load function xdr_opaque\n"); 00831 rcs_print_error 00832 ("Can not load PC-NFS Toolkit Library. (RPC will not be available.)\n"); 00833 rpc_availability = RPC_NOT_AVAILABLE; 00834 return -1; 00835 } 00836 } 00837 00838 if (use_init_and_cleanup == 1 && rpc_library_type == PCNFS_TKDLL_WINDOWS_31) 00839 { 00840 int init_ret; 00841 /* Initialize the PC-NFS Toolkit DLL. */ 00842 if (!(init_ret = ptr_to_tkdll_init ())) 00843 { 00844 rcs_print_error 00845 ("CMS: Couldn't initialize PC-NFS Toolkit DLL. (%d)\n", 00846 (*(ptr_to_tkdll_errno ()))); 00847 rcs_print_error 00848 ("For Windows 3.x make sure RTM (a PCNFS TSR) is started before starting Windows.\n"); 00849 rpc_availability = RPC_NOT_AVAILABLE; 00850 return -1; 00851 } 00852 long version; 00853 /* Check the version of PC-NFS. */ 00854 version = ptr_to_tkdll_version (); 00855 if (version < 4000000l) 00856 { 00857 rcs_print_error ("CMS: PC-NFS DLL must be atleast version 4.0.\n"); 00858 rcs_print_error ("CMS: version = %lx\n", version); 00859 rpc_availability = RPC_NOT_AVAILABLE; 00860 return -1; 00861 } 00862 } 00863 00864 if (use_init_and_cleanup == 1 && rpc_library_type == LIBRPC_WINDOWS) 00865 { 00866 int init_ret; 00867 /* Initialize the PC-NFS Toolkit DLL. */ 00868 if (!(init_ret = ptr_to_rpc_nt_init ())) 00869 { 00870 rcs_print_error ("CMS: Couldn't initialize RPC DLL. (%d)\n"); 00871 } 00872 } 00873 rpc_availability = RPC_AVAILABLE; 00874 return 0; 00875 #endif 00876 } |
|
Definition at line 879 of file rpcintrf.cc. 00880 { 00881 rpc_load_count--; 00882 if (rpc_load_count > 0) 00883 { 00884 return; 00885 } 00886 #ifndef _Windows 00887 return; 00888 #else 00889 if (NULL != ptr_to_tkdll_cleanup && use_init_and_cleanup) 00890 { 00891 ptr_to_tkdll_cleanup (); 00892 } 00893 if (NULL != ptr_to_rpc_nt_exit && use_init_and_cleanup) 00894 00895 { 00896 ptr_to_rpc_nt_exit (); 00897 } 00898 #ifdef WIN32 00899 if (rpc_library_handle != NULL) 00900 #else 00901 if (rpc_library_handle > HINSTANCE_ERROR) 00902 #endif 00903 { 00904 FreeLibrary (rpc_library_handle); 00905 } 00906 rpc_library_handle = NULL; 00907 ptr_to_tkdll_init = NULL; 00908 ptr_to_tkdll_cleanup = NULL; 00909 ptr_to_tkdll_version = NULL; 00910 ptr_to_clnt_call = NULL; 00911 ptr_to_clnt_create = NULL; 00912 ptr_to_clnt_control = NULL; 00913 ptr_to_clnt_spcreateerror = NULL; 00914 ptr_to_clnt_sperrno = NULL; 00915 ptr_to_xdrmem_create = NULL; 00916 ptr_to_xdr_destroy = NULL; 00917 ptr_to_xdr_getpos = NULL; 00918 ptr_to_xdr_setpos = NULL; 00919 ptr_to_xdr_char = NULL; 00920 ptr_to_xdr_u_char = NULL; 00921 ptr_to_xdr_int = NULL; 00922 ptr_to_xdr_u_int = NULL; 00923 ptr_to_xdr_long = NULL; 00924 ptr_to_xdr_u_long = NULL; 00925 ptr_to_xdr_float = NULL; 00926 ptr_to_xdr_double = NULL; 00927 rpc_availability = RPC_NOT_CHECKED; 00928 return; 00929 #endif 00930 } |
|
|
|
|
|
Referenced by dl_clnt_call().
|
|
|
|
|
|
Definition at line 933 of file rpcintrf.cc. Referenced by RPCMEM::open().
00935 { 00936 #ifndef _WINDOWS 00937 return clnt_create (host_name, prog, version, nettype); 00938 #else 00939 if (rpc_availability != RPC_AVAILABLE || ptr_to_clnt_create == NULL) 00940 { 00941 rcs_print_error 00942 ("Attempt to call dl_clnt_create when RPC interface is not available.\n"); 00943 return NULL; 00944 } 00945 return ptr_to_clnt_create (host_name, prog, version, nettype); 00946 #endif 00947 } |
|
Definition at line 950 of file rpcintrf.cc. 00951 { 00952 #ifndef _WINDOWS 00953 return clnt_control (clnt, request, info); 00954 #else 00955 if (rpc_availability != RPC_AVAILABLE || ptr_to_clnt_control == NULL) 00956 { 00957 if (rpc_library_type == LIBRPC_WINDOWS) 00958 { 00959 if (clnt != NULL) 00960 { 00961 if (clnt->cl_ops != NULL) 00962 { 00963 if (clnt->cl_ops->cl_call != NULL) 00964 { 00965 return 00966 (*((bool_t (*)(CLIENT *, int, char *)) 00967 clnt->cl_ops->cl_control)) (clnt, request, info); 00968 } 00969 } 00970 } 00971 } 00972 rcs_print_error 00973 ("Attempt to call dl_clnt_control when RPC interface is not available.\n"); 00974 return 0; 00975 } 00976 return ptr_to_clnt_control (clnt, request, info); 00977 #endif 00978 } |
|
Definition at line 981 of file rpcintrf.cc. Referenced by RPCMEM::check_if_read(), RPCMEM::clear(), RPCMEM::close(), RPCMEM::login(), RPCMEM::peek(), RPCMEM::read(), RPCMEM::write(), and RPCMEM::write_if_read().
00984 { 00985 #ifndef _WINDOWS 00986 return clnt_call (clnt, procnum, inproc, in, outproc, out, tv); 00987 #else 00988 if (rpc_availability != RPC_AVAILABLE || ptr_to_clnt_call == NULL) 00989 { 00990 if (rpc_library_type == LIBRPC_WINDOWS) 00991 { 00992 if (clnt != NULL) 00993 { 00994 if (clnt->cl_ops != NULL) 00995 { 00996 if (clnt->cl_ops->cl_call != NULL) 00997 { 00998 return 00999 (* 01000 ((enum 01001 clnt_stat (*)(CLIENT *, u_long, xdrproc_t, char *, 01002 xdrproc_t, char *, 01003 struct timeval)) clnt->cl_ops-> 01004 cl_call)) (clnt, procnum, inproc, in, outproc, out, 01005 tv); 01006 } 01007 } 01008 } 01009 } 01010 rcs_print_error 01011 ("Attempt to call dl_clnt_call when RPC interface is not available.\n"); 01012 return RPC_SYSTEMERROR; 01013 } 01014 return (*ptr_to_clnt_call) (clnt, procnum, inproc, in, outproc, out, tv); 01015 #endif 01016 } |
|
Definition at line 1019 of file rpcintrf.cc. Referenced by RPCMEM::close().
01020 { 01021 #ifndef _WINDOWS 01022 clnt_destroy (clnt); 01023 #else 01024 if (rpc_availability != RPC_AVAILABLE || ptr_to_clnt_destroy == NULL) 01025 { 01026 if (rpc_library_type == LIBRPC_WINDOWS) 01027 { 01028 if (clnt != NULL) 01029 { 01030 if (clnt->cl_ops != NULL) 01031 { 01032 if (clnt->cl_ops->cl_destroy != NULL) 01033 { 01034 (*((void (*)(CLIENT *)) 01035 clnt->cl_ops->cl_destroy)) (clnt); 01036 return; 01037 } 01038 } 01039 } 01040 } 01041 01042 rcs_print_error 01043 ("Attempt to call dl_clnt_destroy when RPC interface is not available.\n"); 01044 return; 01045 } 01046 ptr_to_clnt_destroy (clnt); 01047 #endif 01048 } |
|
Definition at line 1051 of file rpcintrf.cc. Referenced by RPCMEM::open().
01052 { 01053 #ifndef _WINDOWS 01054 return clnt_spcreateerror (prefix); 01055 #else 01056 if (rpc_availability != RPC_AVAILABLE || ptr_to_clnt_spcreateerror == NULL) 01057 { 01058 rcs_print_error 01059 ("Attempt to call dl_clnt_spcreateerror when RPC interface is not available.\n"); 01060 return NULL; 01061 } 01062 return ptr_to_clnt_spcreateerror (prefix); 01063 #endif 01064 } |
|
Definition at line 1067 of file rpcintrf.cc. Referenced by RPCMEM::check_if_read(), RPCMEM::clear(), RPCMEM::login(), RPCMEM::peek(), RPCMEM::read(), RPCMEM::write(), and RPCMEM::write_if_read().
01068 { 01069 #ifndef _WINDOWS 01070 return clnt_sperrno (error_type); 01071 #else 01072 if (rpc_availability != RPC_AVAILABLE || ptr_to_clnt_sperrno == NULL) 01073 { 01074 rcs_print_error 01075 ("Attempt to call dl_clnt_sperrno when RPC interface is not available.\n"); 01076 return NULL; 01077 } 01078 return ptr_to_clnt_sperrno (error_type); 01079 #endif 01080 } |
|
|
|
|
|
|
|
|
|
Definition at line 1083 of file rpcintrf.cc. 01085 { 01086 #ifndef _WINDOWS 01087 xdrmem_create (xdrs, buf, size, type); 01088 #else 01089 if (rpc_library_type != PCNFS_TKDLL_WINDOWS_31) 01090 { 01091 if (rpc_availability != RPC_AVAILABLE || ptr_to_xdrmem_create == NULL) 01092 { 01093 rcs_print_error 01094 ("Attempt to call dl_xdrmem_create when RPC interface is not available.\n"); 01095 return; 01096 } 01097 ptr_to_xdrmem_create (xdrs, buf, size, type); 01098 } 01099 else 01100 { 01101 if (rpc_availability != RPC_AVAILABLE || 01102 ptr_to_pascal_xdrmem_create == NULL) 01103 { 01104 rcs_print_error 01105 ("Attempt to call dl_xdrmem_create when RPC interface is not available.\n"); 01106 return; 01107 } 01108 ptr_to_pascal_xdrmem_create (xdrs, buf, size, type); 01109 } 01110 #endif 01111 } |
|
Definition at line 1114 of file rpcintrf.cc. 01115 { 01116 #ifndef _WINDOWS 01117 xdr_destroy (xdrs); 01118 #else 01119 switch (rpc_library_type) 01120 { 01121 case LIBRPC_WINDOWS: 01122 if (NULL != xdrs) 01123 { 01124 if (NULL != xdrs->x_ops) 01125 { 01126 if (NULL != xdrs->x_ops->x_destroy) 01127 { 01128 ((void (*)(XDR *)) (xdrs->x_ops->x_destroy)) (xdrs); 01129 return; 01130 } 01131 } 01132 } 01133 rcs_print_error 01134 ("Attempt to call dl_xdr_destroy with invalid XDR struct.\n"); 01135 return; 01136 01137 case PCNFS_TKDLL_WINDOWS_31: 01138 if (rpc_availability != RPC_AVAILABLE || 01139 ptr_to_pascal_xdr_destroy == NULL) 01140 { 01141 rcs_print_error 01142 ("Attempt to call dl_xdr_destroy when RPC interface is not available.\n"); 01143 return; 01144 } 01145 ptr_to_pascal_xdr_destroy (xdrs); 01146 return; 01147 01148 default: 01149 if (rpc_availability != RPC_AVAILABLE || ptr_to_xdr_destroy == NULL) 01150 { 01151 rcs_print_error 01152 ("Attempt to call dl_xdr_destroy when RPC interface is not available.\n"); 01153 return; 01154 } 01155 ptr_to_xdr_destroy (xdrs); 01156 return; 01157 } 01158 #endif 01159 } |
|
Definition at line 1162 of file rpcintrf.cc. 01163 { 01164 #ifndef _WINDOWS 01165 return xdr_getpos (xdrs); 01166 #else 01167 switch (rpc_library_type) 01168 { 01169 case LIBRPC_WINDOWS: 01170 if (NULL != xdrs) 01171 { 01172 if (NULL != xdrs->x_ops) 01173 { 01174 if (NULL != xdrs->x_ops->x_getpostn) 01175 { 01176 return ((unsigned int (*)(XDR *)) (xdrs->x_ops->x_getpostn)) 01177 (xdrs); 01178 } 01179 } 01180 } 01181 rcs_print_error 01182 ("Attempt to call dl_xdr_getpos when RPC interface is not available.\n"); 01183 return 0; 01184 01185 case PCNFS_TKDLL_WINDOWS_31: 01186 if (rpc_availability != RPC_AVAILABLE || 01187 ptr_to_pascal_xdr_getpos == NULL) 01188 { 01189 rcs_print_error 01190 ("Attempt to call dl_xdr_getpos when RPC interface is not available.\n"); 01191 return 0; 01192 } 01193 return ptr_to_pascal_xdr_getpos (xdrs); 01194 01195 default: 01196 if (rpc_availability != RPC_AVAILABLE || ptr_to_xdr_getpos == NULL) 01197 { 01198 rcs_print_error 01199 ("Attempt to call dl_xdr_getpos when RPC interface is not available.\n"); 01200 return 0; 01201 } 01202 return ptr_to_xdr_getpos (xdrs); 01203 } 01204 #endif 01205 } |
|
Definition at line 1208 of file rpcintrf.cc. 01209 { 01210 #ifndef _WINDOWS 01211 return xdr_setpos (xdrs, pos); 01212 #else 01213 switch (rpc_library_type) 01214 { 01215 case LIBRPC_WINDOWS: 01216 if (NULL != xdrs) 01217 { 01218 if (NULL != xdrs->x_ops) 01219 { 01220 if (NULL != xdrs->x_ops->x_setpostn) 01221 { 01222 return ((bool_t (*)(XDR *, u_long)) 01223 (xdrs->x_ops->x_setpostn)) (xdrs, pos); 01224 } 01225 } 01226 } 01227 rcs_print_error 01228 ("Attempt to call dl_xdr_setpos when RPC interface is not available.\n"); 01229 return 0; 01230 01231 case PCNFS_TKDLL_WINDOWS_31: 01232 if (rpc_availability != RPC_AVAILABLE || 01233 ptr_to_pascal_xdr_setpos == NULL) 01234 { 01235 rcs_print_error 01236 ("Attempt to call dl_xdr_setpos when RPC interface is not available.\n"); 01237 return 0; 01238 } 01239 return ptr_to_pascal_xdr_setpos (xdrs, pos); 01240 01241 default: 01242 if (rpc_availability != RPC_AVAILABLE || ptr_to_xdr_setpos == NULL) 01243 { 01244 rcs_print_error 01245 ("Attempt to call dl_xdr_setpos when RPC interface is not available.\n"); 01246 return 0; 01247 } 01248 return ptr_to_xdr_setpos (xdrs, pos); 01249 } 01250 #endif 01251 } |
|
Definition at line 48 of file rpcintrf.h. Referenced by load_rpc_interface().
|
|
Definition at line 50 of file rpcintrf.h. Referenced by load_rpc_interface().
|
|
Definition at line 52 of file rpcintrf.h. Referenced by unload_rpc_interface().
|
|
Definition at line 55 of file rpcintrf.h. Referenced by unload_rpc_interface().
|
|
Definition at line 57 of file rpcintrf.h. Referenced by load_rpc_interface().
|
|
Definition at line 59 of file rpcintrf.h. Referenced by load_rpc_interface().
|
|
Definition at line 64 of file rpcintrf.h. |
|
Definition at line 66 of file rpcintrf.h. Referenced by dl_clnt_control().
|
|
Definition at line 68 of file rpcintrf.h. Referenced by dl_clnt_destroy().
|
|
Definition at line 73 of file rpcintrf.h. Referenced by dl_clnt_create().
|
|
Definition at line 76 of file rpcintrf.h. Referenced by dl_clnt_spcreateerror().
|
|
Definition at line 78 of file rpcintrf.h. Referenced by dl_clnt_sperrno().
|
|
Definition at line 97 of file rpcintrf.h. Referenced by dl_xdrmem_create().
|
|
Definition at line 100 of file rpcintrf.h. Referenced by dl_xdr_destroy().
|
|
Definition at line 102 of file rpcintrf.h. Referenced by dl_xdr_getpos().
|
|
Definition at line 105 of file rpcintrf.h. Referenced by dl_xdr_setpos().
|
|
Definition at line 108 of file rpcintrf.h. |
|
Definition at line 111 of file rpcintrf.h. |
|
Definition at line 114 of file rpcintrf.h. |
|
Definition at line 117 of file rpcintrf.h. |
|
Definition at line 121 of file rpcintrf.h. |
|
Definition at line 124 of file rpcintrf.h. |
|
Definition at line 127 of file rpcintrf.h. |
|
Definition at line 130 of file rpcintrf.h. |
|
Definition at line 133 of file rpcintrf.h. |
|
Definition at line 136 of file rpcintrf.h. |
|
Definition at line 139 of file rpcintrf.h. |
|
Definition at line 143 of file rpcintrf.h. |
|
Definition at line 147 of file rpcintrf.h. |
|
Definition at line 152 of file rpcintrf.h. |
|
Definition at line 157 of file rpcintrf.h. Referenced by dl_xdrmem_create().
|
|
Definition at line 159 of file rpcintrf.h. Referenced by dl_xdr_destroy().
|
|
Definition at line 161 of file rpcintrf.h. Referenced by dl_xdr_getpos().
|
|
Definition at line 163 of file rpcintrf.h. Referenced by dl_xdr_setpos().
|
|
Definition at line 165 of file rpcintrf.h. |
|
Definition at line 167 of file rpcintrf.h. |
|
Definition at line 169 of file rpcintrf.h. |
|
Definition at line 171 of file rpcintrf.h. |
|
Definition at line 174 of file rpcintrf.h. |
|
Definition at line 176 of file rpcintrf.h. |
|
Definition at line 179 of file rpcintrf.h. |
|
Definition at line 181 of file rpcintrf.h. |
|
Definition at line 184 of file rpcintrf.h. |
|
Definition at line 186 of file rpcintrf.h. |
|
Definition at line 188 of file rpcintrf.h. |
|
Definition at line 191 of file rpcintrf.h. |
|
Definition at line 194 of file rpcintrf.h. |
|
Definition at line 198 of file rpcintrf.h. |
|
Definition at line 220 of file rpcintrf.h. |