|
|
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.