static void InitRPC(void) { SFTP_Initializer sftpi; char *cstring; int rc; LWP_Init(LWP_VERSION, LWP_NORMAL_PRIORITY, &ParentPid); PortId.Tag = RPC2_PORTBYINETNUMBER; PortId.Value.InetPortNumber = htons(TESTPORT); SFTP_SetDefaults(&sftpi); SFTP_Activate(&sftpi); rc = RPC2_Init(RPC2_VERSION, 0, &PortId, -1, NULL); if (rc != RPC2_SUCCESS) { printf("RPC2_Init() --> %s\n", RPC2_ErrorMsg(rc)); exit(-1); } if (RPC2_Trace && (RPC2_InitTraceBuffer(TBSIZE) != RPC2_SUCCESS)) exit(-1); SubsysId.Tag = RPC2_SUBSYSBYID; SubsysId.Value.SubsysId = SUBSYS_SRV; RPC2_Export(&SubsysId); cstring = "Listener1"; LWP_CreateProcess(ListenerBody, 16384, LWP_NORMAL_PRIORITY, NULL, cstring, &ListenerPid); }
static void Initialize(void) { RPC2_Options options; PROCESS pid; struct timeval tv; long rc; /* initialize the subsystems LWP/RPC */ rc = LWP_Init(LWP_VERSION, LWP_NORMAL_PRIORITY, &pid); if (rc != LWP_SUCCESS) { printf("LWP_Init() failed\n"); exit(EXIT_FAILURE); } tv.tv_sec = 15; tv.tv_usec = 0; memset(&options, 0, sizeof(options)); options.Flags = RPC2_OPTION_IPV6; rc = RPC2_Init(RPC2_VERSION, &options, NULL, -1, &tv); if (rc != LWP_SUCCESS) { printf("RPC_Init() failed\n"); exit(EXIT_FAILURE); } }
void InitRPC(int VmonPort) { long rc = 0; int RPC2_TimeOut = 30; int RPC2_Retries = 5; /* Initialize LWP. */ PROCESS lwpid; if ((rc = LWP_Init(LWP_VERSION, LWP_NORMAL_PRIORITY, &lwpid)) != LWP_SUCCESS) Die("InitRPC: LWP_Init failed (%d)\n", rc); if ((rc = IOMGR_Initialize()) != LWP_SUCCESS) Die("InitRPC: IOMGR Init failed (%d)\n", rc); RPC2_PortalIdent portal1; portal1.Tag = RPC2_PORTALBYINETNUMBER; portal1.Value.InetPortNumber = htons(VmonPort); RPC2_PortalIdent *portallist[1]; portallist[0] = &portal1; struct timeval tv; tv.tv_sec = RPC2_TimeOut; tv.tv_usec = 0; rc = RPC2_Init(RPC2_VERSION, 0, portallist, 1, RPC2_Retries,&tv); if (rc <= RPC2_ELIMIT) Die("InitRPC: RPC2_Init failed (%d)", rc); if (rc != RPC2_SUCCESS) { LogMsg(0,LogLevel,LogFile, "InitRPC: RPC2_Init warning (%d)", rc); rc = 0; } /* set debug level in lwp */ if (LogLevel >= 1010) lwp_debug = 1; /* Export the mond service. */ RPC2_SubsysIdent server; server.Tag = RPC2_SUBSYSBYID; server.Value.SubsysId = MondSubsysId; if ((rc = RPC2_Export(&server)) != RPC2_SUCCESS) Die("InitRPC: RPC2_Export failed (%d)", rc); /* get our portal number */ if (rpc2_LocalPortal.Tag != RPC2_PORTALBYINETNUMBER) Die("No portal number. Tag value (%d)\n",rpc2_LocalPortal.Tag); LogMsg(0,LogLevel,LogFile, "My portnum is %d",ntohs(rpc2_LocalPortal.Value.InetPortNumber)); }
int main(int argc, char **argv) { struct timeval t1, t2; PROCESS pid, otherpid; long i, count, x; static char c[] = "OtherProcess"; count = argc > 1 ? atoi(argv[1]) : 10000; cont_sw_threshold.tv_sec = 0; cont_sw_threshold.tv_usec = 10000; last_context_switch.tv_sec = 0; last_context_switch.tv_usec = 0; assert(LWP_Init(LWP_VERSION, 0, &pid) == LWP_SUCCESS); assert(LWP_CreateProcess(OtherProcess, 16384, 0, (char *)pid, c, &otherpid) == LWP_SUCCESS); assert(IOMGR_Initialize() == LWP_SUCCESS); gettimeofday(&t1, NULL); for (i = 0; i < count; i++) { #if 0 LWP_DispatchProcess(); #else LWP_QSignal(otherpid); LWP_QWait(); #endif } gettimeofday(&t2, NULL); if (count) { x = (t2.tv_sec - t1.tv_sec) * 1000000 + (t2.tv_usec - t1.tv_usec); printf("%ld milliseconds for %ld Yields (%f usec per Yield)\n", x / 1000, count, (float)(x / count)); } LWP_TerminateProcessSupport(); exit(EXIT_SUCCESS); }
void U_InitRPC() { PROCESS mylpid; int rc; struct timeval tout; RPC2_Options options; CODA_ASSERT(LWP_Init(LWP_VERSION, LWP_MAX_PRIORITY-1, &mylpid) == LWP_SUCCESS); memset(&options, 0, sizeof(options)); options.Flags = RPC2_OPTION_IPV6; tout.tv_sec = 15; tout.tv_usec = 0; rc = RPC2_Init(RPC2_VERSION, &options, NULL, -1, &tout); if ( rc != RPC2_SUCCESS ) { fprintf(stderr, "Cannot initialize RPC2 (error %d). ! Exiting.\n", rc); exit(1); } }