BSD 4_3_Net_2 development
[unix-history] / usr / src / contrib / isode / rtsap / rtsapselect.c
CommitLineData
9e8e5516
C
1/* rtsapselect.c - RTPM: map descriptors */
2
3#ifndef lint
4static char *rcsid = "$Header: /f/osi/rtsap/RCS/rtsapselect.c,v 7.1 91/02/22 09:42:42 mrose Interim $";
5#endif
6
7/*
8 * $Header: /f/osi/rtsap/RCS/rtsapselect.c,v 7.1 91/02/22 09:42:42 mrose Interim $
9 *
10 *
11 * $Log: rtsapselect.c,v $
12 * Revision 7.1 91/02/22 09:42:42 mrose
13 * Interim 6.8
14 *
15 * Revision 6.0 89/03/18 23:43:31 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 "rtpkt.h"
36
37/* \f map association descriptors for select() */
38
39int RtSelectMask (sd, mask, nfds, rti)
40int sd;
41fd_set *mask;
42int *nfds;
43struct RtSAPindication *rti;
44{
45 SBV smask;
46 int result;
47 register struct assocblk *acb;
48
49 missingP (mask);
50 missingP (nfds);
51 missingP (rti);
52
53 smask = sigioblock ();
54
55 rtsapPsig (acb, sd);
56
57 if (acb -> acb_flags & ACB_PLEASE) {
58 (void) sigiomask (smask);
59
60 return rtsaplose (rti, RTS_WAITING, NULLCP, NULLCP);
61 }
62
63 result = (*acb -> acb_rtselectmask) (acb, mask, nfds, rti);
64
65 (void) sigiomask (smask);
66
67 return result;
68}