|
|
1.1 ! root 1: /* rosapselect.c - ROPM: map descriptors */ ! 2: ! 3: #ifndef lint ! 4: static char *rcsid = "$Header: /f/osi/rosap/RCS/rosapselect.c,v 6.0 89/03/18 23:42:29 mrose Rel $"; ! 5: #endif ! 6: ! 7: /* ! 8: * $Header: /f/osi/rosap/RCS/rosapselect.c,v 6.0 89/03/18 23:42:29 mrose Rel $ ! 9: * ! 10: * Based on an TCP-based implementation by George Michaelson of University ! 11: * College London. ! 12: * ! 13: * ! 14: * $Log: rosapselect.c,v $ ! 15: * Revision 6.0 89/03/18 23:42:29 mrose ! 16: * Release 5.0 ! 17: * ! 18: */ ! 19: ! 20: /* ! 21: * NOTICE ! 22: * ! 23: * Acquisition, use, and distribution of this module and related ! 24: * materials are subject to the restrictions of a license agreement. ! 25: * Consult the Preface in the User's Manual for the full terms of ! 26: * this agreement. ! 27: * ! 28: */ ! 29: ! 30: ! 31: /* LINTLIBRARY */ ! 32: ! 33: #include <stdio.h> ! 34: #include <signal.h> ! 35: #include "ropkt.h" ! 36: ! 37: /* map association descriptors for select() */ ! 38: ! 39: /* ARGSUSED */ ! 40: ! 41: int RoSelectMask (sd, mask, nfds, roi) ! 42: int sd; ! 43: fd_set *mask; ! 44: int *nfds; ! 45: struct RoSAPindication *roi; ! 46: { ! 47: SBV smask; ! 48: int result; ! 49: register struct assocblk *acb; ! 50: ! 51: missingP (mask); ! 52: missingP (nfds); ! 53: missingP (roi); ! 54: ! 55: smask = sigioblock (); ! 56: ! 57: rosapPsig (acb, sd); ! 58: ! 59: if (acb -> acb_apdu || (acb -> acb_flags & ACB_CLOSING)) { ! 60: (void) sigiomask (smask); ! 61: return rosaplose (roi, ROS_WAITING, NULLCP, NULLCP); ! 62: } ! 63: ! 64: result = (*acb -> acb_roselectmask) (acb, mask, nfds, roi); ! 65: ! 66: (void) sigiomask (smask); ! 67: ! 68: return result; ! 69: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.