short call_sap(SAPpb *pb) { short status; SAPpb sap_pb; char sapDrvrName[10]; sapDrvrName[0] = 0x08; sapDrvrName[1] = '.'; *(long *)&sapDrvrName[2] = 'NVL_'; *(long *)&sapDrvrName[6] = 'SAP '; sap_pb.ioNamePtr = sapDrvrName; sap_pb.csCode = 0; /* We're actually setting the read/write permission here */ status = PBOpen((ParmBlkPtr)&sap_pb, FALSE); if (status) { goto Exit0; } pb->ioCRefNum = sap_pb.ioCRefNum; (void)PBControl((ParmBlkPtr)pb, FALSE); status = pb->ioResult; Exit0: return (status); }
OSErr xOpenDriver() { if (driver == 0) { ParamBlockRec pb; OSErr io; pb.ioParam.ioCompletion = 0L; pb.ioParam.ioNamePtr = "\p.IPP"; pb.ioParam.ioPermssn = fsCurPerm; io = PBOpen(&pb,false); if (io != noErr) return(io); driver = pb.ioParam.ioRefNum; }
/* initialize TCP system */ void NATCPinit(na_tcpinitp *initp) { IOParam *pb; int i; struct tcpstate *ts; pb = (IOParam *) NewPtrClear(sizeof (IOParam)); tcpstate = (struct tcpstate **) NAaddtask(NATCPtask, sizeof (struct tcpstate)); if (!tcpstate || !pb) { (*initp)(NATCP_nomem); } else { pb->ioNamePtr = "\p.IPP"; PBOpen((ParmBlkPtr) pb, true); ts = *tcpstate; for (i = 0; i < MAX_TCPCON; ++i) ts->tcpbufs[i] = NULL; ts->waiticks = 60; /* wait 1 sec for TCP close by default */ ts->win.type = NA_TCPTYPE; ts->win.closep = tcp_closep; ts->win.priority = -1; ts->tcp_initp = initp; ts->open_pb = pb; NATCPsettings(0, 0, 0, 0); } }