]> andersk Git - splint.git/blob - lib/unix.h
Initial revision
[splint.git] / lib / unix.h
1 /*
2 ** unix.h
3 */
4
5 /*@-nextlinemacros@*/
6
7 /*
8 ** Extra stuff in some unixen, not in posix.
9 */
10
11 /*@unchecked@*/ int signgam;
12
13 typedef /*@integraltype@*/ clockid_t;
14
15 extern void bcopy (char *b1, /*@out@*/ char *b2, int length) 
16    /*@modifies *b2@*/ ;  /* Yes, the second parameter is the out param! */
17
18 extern int /*@alt lltX_bool@*/ bcmp (char *b1, char *b2, int length) /*@*/ ;
19    /* Return value is NOT like strcmp! */
20
21 extern void bzero (/*@out@*/ char *b1, int length) /*@modifies *b1@*/ ;
22 extern int ffs (int i) /*@*/ ;
23 extern int symlink (char *name1, char *name2) /*@modifies fileSystem@*/ ;
24
25 extern int 
26   setvbuf_unlocked (FILE *stream, /*@null@*/ /*@exposed@*/ char *buf, 
27                     int mode, size_t size)
28   /*@modifies internalState@*/ ;
29
30 extern void 
31   setbuffer (FILE *stream, /*@null@*/ /*@exposed@*/ char *buf, int size)
32   /*@modifies internalState@*/ ;
33
34 extern void setlinebuf (FILE *stream) /*@modifies internalState@*/ ;
35
36 extern int strerror_r (int errnum, /*@out@*/ char *strerrbuf, int buflen)
37   /*@modifies strerrbuf@*/ ;
38
39 extern size_t 
40   fread_unlocked (/*@out@*/ void *ptr, size_t size, size_t nitems, 
41                   FILE *stream) 
42   /*@modifies *stream, *ptr;@*/ ;
43
44 extern size_t 
45   fwrite_unlocked (void *pointer, size_t size, size_t num_items, FILE *stream)
46   /*@modifies *stream;@*/ ;
47
48 extern void funlockfile (FILE *file) /*@modifies *file;@*/ ;
49 extern void flockfile (FILE *file) /*@modifies *file@*/ ;
50
51 extern void /*@alt void * @*/ 
52   memccpy (/*@returned@*/ /*@out@*/ void *s1, 
53            /*@unique@*/ void *s2, int c, size_t n) 
54   /*@modifies *s1@*/ ;
55
56 extern int strcasecmp (char *s1, char *s2) /*@*/ ;
57 extern int strncasecmp (char *s1, char *s2, int n) /*@*/ ;
58 extern char *strdup (char *s) /*@*/ ;
59
60 extern /*@null@*/ char *tempnam (char *dir, /*@null@*/ char *pfx) 
61    /*@modifies internalState@*/ ;
62
63 extern /*@null@*/ /*@dependent@*/ char *
64   index (/*@returned@*/ char *s, char c) /*@*/ ;
65
66 extern /*@null@*/ /*@dependent@*/ char *
67   rindex (/*@returned@*/ char *s, char c) /*@*/ ;
68
69 extern /*@dependent@*/ /*@null@*/ FILE *popen (char *command, char *ttype)
70    /*@modifies fileSystem, errno@*/ ;
71 extern int pclose (FILE *stream) /*@modifies fileSystem, *stream, errno@*/ ;
72
73 extern double cbrt (double x) /*@modifies errno@*/ ;
74 extern double rint (double x) /*@*/ ;
75 extern double trunc (double x) /*@*/ ; 
76
77 /*@constant int ENOTBLK@*/
78 /*@constant int ETXTBSY@*/
79 /*@constant int EWOULDBLOCK@*/
80 /*@constant int EINPROGRESS@*/
81 /*@constant int EALREADY@*/
82 /*@constant int ENOTSOCK@*/
83 /*@constant int EDESTADDRREQ@*/
84 /*@constant int EMSGSIZE@*/
85 /*@constant int EPROTOTYPE@*/
86 /*@constant int ENOPROTOOPT@*/
87 /*@constant int EPROTONOSUPPORT@*/
88 /*@constant int ESOCKTNOSUPPORT@*/
89 /*@constant int EOPNOTSUPP@*/
90 /*@constant int EPFNOSUPPORT@*/
91 /*@constant int EAFNOSUPPORT@*/
92 /*@constant int EADDRINUSE@*/
93 /*@constant int EADDRNOTAVAIL@*/
94 /*@constant int ENETDOWN@*/
95 /*@constant int ENETUNREACH@*/
96 /*@constant int ENETRESET@*/
97 /*@constant int ECONNABORTED@*/
98 /*@constant int ECONNRESET@*/
99 /*@constant int ENOBUFS@*/
100 /*@constant int EISCONN@*/
101 /*@constant int ENOTCONN@*/
102 /*@constant int ESHUTDOWN@*/
103 /*@constant int ETOOMANYREFS@*/
104 /*@constant int ETIMEDOUT@*/
105 /*@constant int ECONNREFUSED@*/
106 /*@constant int ENAMETOOLONG@*/
107 /*@constant int EHOSTDOWN@*/
108 /*@constant int EHOSTUNREACH@*/
109 /*@constant int ENOTEMPTY@*/
110 /*@constant int EPROCLIM@*/
111 /*@constant int EUSERS@*/
112 /*@constant int EDQUOT@*/
113 /*@constant int ESTALE@*/
114 /*@constant int EREMOTE@*/
115 /*@constant int ENOMSG@*/
116 /*@constant int EIDRM@*/
117 /*@constant int EALIGN@*/
118 /*@constant int EDEADLK@*/
119 /*@constant int ENOLCK@*/
120 /*@constant int ENOSYS@*/
121 /*@constant int EACTIVE@*/
122 /*@constant int ENOACTIVE@*/
123 /*@constant int ENORESOURCES@*/
124 /*@constant int ENOSYSTEM@*/
125 /*@constant int ENODUST@*/
126 /*@constant int EDUPNOCONN@*/
127 /*@constant int EDUPNODISCONN@*/
128 /*@constant int EDUPNOTCNTD@*/
129 /*@constant int EDUPNOTIDLE@*/
130 /*@constant int EDUPNOTWAIT@*/
131 /*@constant int EDUPNOTRUN@*/
132 /*@constant int EDUPBADOPCODE@*/
133 /*@constant int EDUPINTRANSIT@*/
134 /*@constant int EDUPTOOMANYCPUS@*/
135 /*@constant int ELOOP@*/
136
137 /*@constant int LOCK_MAX@*/
138 /*@constant int FCHR_MAX@*/
139 /*@constant int USI_MAX@*/
140 /*@constant int WORD_BIT@*/
141 /*@constant int LONG_BIT@*/
142 /*@constant long NAME_MAX@*/
143 /*@constant long NGROUPS_MAX@*/
144 /*@constant long MAX_INPUT@*/
145 /*@constant long MAX_CANON@*/
146 /*@constant int MAX_CHAR@*/
147 /*@constant long OPEN_MAX@*/
148 /*@constant int PASS_MAX@*/
149 /*@constant int PATH_MAX@*/
150 /*@constant int PID_MAX@*/
151 /*@constant int SYSPID_MAX@*/
152 /*@constant long PIPE_BUF@*/
153 /*@constant int PIPE_MAX@*/
154 /*@constant int PROC_MAX@*/
155 /*@constant int STD_BLK@*/
156 /*@constant int SYS_NMLN@*/
157 /*@constant int SYS_OPEN@*/
158 /*@constant int NZERO@*/
159 /*@constant int UID_MAX@*/
160 /*@constant long MB_LEN_MAX@*/
161 /*@constant int NL_ARGMAX@*/
162 /*@constant int NL_MSGMAX@*/
163 /*@constant int NL_NMAX@*/
164 /*@constant int NL_SETMAX@*/
165 /*@constant int NL_TEXTMAX@*/
166 /*@constant int NL_LBLMAX@*/
167 /*@constant int NL_LANGMAX @*/
168
169 /*@constant double M_E@*/
170 /*@constant double M_LOG2E@*/
171 /*@constant double M_LOG10E@*/
172 /*@constant double M_LN2@*/
173 /*@constant double M_LN10@*/
174 /*@constant double M_PI@*/
175 /*@constant double M_PI_2@*/
176 /*@constant double M_PI_4@*/
177 /*@constant double M_1_PI@*/
178 /*@constant double M_2_PI@*/
179 /*@constant double M_2_SQRTPI@*/
180 /*@constant double M_SQRT2@*/
181 /*@constant double M_SQRT1_2@*/ 
182
183 /*@constant double MAXFLOAT@*/
184 /*@constant double HUGE@*/
185  
186 /*@constant int DOMAIN@*/
187 /*@constant int SING@*/
188 /*@constant int OVERFLOW@*/
189 /*@constant int UNDERFLOW@*/
190 /*@constant int TLOSS@*/
191 /*@constant int PLOSS@*/
192
193 extern /*@unchecked@*/ int daylight;
194 extern /*@unchecked@*/ long timezone;
195 extern /*@unchecked@*/ char *tzname[];
196
197 /*@-incondefs@*/
198 extern void tzset(void) /*@modifies daylight, timezone, tzname@*/ ;
199 /*@=incondefs@*/
200
201 typedef unsigned char uchar_t;
202 typedef unsigned short ushort_t;
203 typedef unsigned int uint_t;
204 typedef unsigned long ulong_t;
205 typedef volatile unsigned char vuchar_t;
206 typedef volatile unsigned short vushort_t;
207 typedef volatile unsigned int vuint_t;
208 typedef volatile unsigned long vulong_t;
209 typedef long label_t;
210 typedef int level_t;
211 typedef /*@integraltype@*/ daddr_t;
212 typedef char *caddr_t;  
213 typedef long *qaddr_t; 
214 typedef char *addr_t;
215 typedef long physadr_t;
216 typedef short cnt_t;
217 typedef int chan_t;     
218 typedef unsigned long rlim_t;
219 typedef int paddr_t;
220 typedef /*@integraltype@*/ key_t;
221 typedef void *mid_t;
222 typedef char slab_t[12];        
223 typedef ulong_t shmatt_t;       
224 typedef ulong_t msgqnum_t;      
225 typedef ulong_t msglen_t;
226 typedef long timer_t;
227 typedef uchar_t uchar;
228 typedef ushort_t ushort;
229 typedef uint_t uint;
230 typedef ulong_t ulong;
231 typedef uchar_t u_char;
232 typedef ushort_t u_short;
233 typedef uint_t u_int;
234 typedef ulong_t u_long;
235 typedef vuchar_t vu_char;
236 typedef vushort_t vu_short;
237 typedef vuint_t vu_int;
238 typedef vulong_t vu_long;
239 typedef long swblk_t;
240 typedef u_long fixpt_t;
241 typedef long segsz_t;
242 typedef /*@abstract@*/ fd_set;
243
244 int ttyname_r (int fg, /*@out@*/ char *buffer, int len) /*@modifies buffer@*/ ;
245 int ioctl (int d, int /*@alt long@*/ request, /*@out@*/ void *arg) 
246    /*@modifies *arg, errno@*/ ;  /* depends on request! */
247
248 int gethostname (/*@out@*/ char *address, int address_len) 
249    /*@modifies address@*/ ;
250
251 pid_t vfork (void) /*@modifies fileSystem@*/ ;
252
253
254  struct iovec {
255         void    *iov_base;
256         size_t   iov_len;
257 };
258
259 /*@constant int UIO_MAXIOV@*/   /* BSD */
260 /*@constant int IOV_MAX@*/      /* supposedly SVR4 */
261
262         extern ssize_t
263 readv (int fd, const struct iovec iov[], int iovcnt)
264         /*@modifies iov[].iov_base, fileSystem, errno@*/;
265
266         extern ssize_t
267 writev (int fd, const struct iovec iov[], int iovcnt)
268         /*@modifies errno@*/;
269
270 /*________________________________________________________________________
271  * poll.h
272  */
273
274  struct poll {
275         int fd;
276         short events;
277         short revents;
278 };
279
280 /*@constant short POLLIN@*/
281 /*@constant short POLLRDNORM@*/
282 /*@constant short POLLRDBAND@*/
283 /*@constant short POLLPRI@*/
284 /*@constant short POLLOUT@*/
285 /*@constant short POLLWRNORM@*/
286 /*@constant short POLLWRBAND@*/
287 /*@constant short POLLERR@*/
288 /*@constant short POLLHUP@*/
289 /*@constant short POLLNVAL@*/
290
291 extern int poll (struct poll pollfd[], unsigned long nfds, int timeout)
292   /*@modifies pollfd[].revents, errno@*/ ;
293
294 /*
295 ** free does not take null
296 */
297
298 /*@-incondefs@*/
299 extern void free (/*@notnull@*/ /*@out@*/ /*@only@*/ void *p) /*@modifies *p@*/ ;
300 /*@=incondefs@*/
301
302 /*________________________________________________________________________
303  * sys/socket.h
304  */
305
306 /*@constant int SOCK_STREAM@*/
307 /*@constant int SOCK_DGRAM@*/
308 /*@constant int SOCK_RAW@*/
309 /*@constant int SOCK_RDM@*/
310 /*@constant int SOCK_SEQPACKET@*/
311 /*@constant int SO_DEBUG@*/
312 /*@constant int SO_ACCEPTCONN@*/
313 /*@constant int SO_REUSEADDR@*/
314 /*@constant int SO_KEEPALIVE@*/
315 /*@constant int SO_DONTROUTE@*/
316 /*@constant int SO_BROADCAST@*/
317 /*@constant int SO_USELOOPBACK@*/
318 /*@constant int SO_LINGER@*/
319 /*@constant int SO_OOBINLINE@*/
320 /*@constant int SO_REUSEPORT@*/
321 /*@constant int SO_SNDBUF@*/
322 /*@constant int SO_RCVBUF@*/
323 /*@constant int SO_SNDLOWAT@*/
324 /*@constant int SO_RCVLOWAT@*/
325 /*@constant int SO_SNDTIMEO@*/
326 /*@constant int SO_RCVTIMEO@*/
327 /*@constant int SO_ERROR@*/
328 /*@constant int SO_TYPE@*/
329 /*@constant int SOL_SOCKET@*/
330 /*@constant int AF_UNSPEC@*/
331 /*@constant int AF_LOCAL@*/
332 /*@constant int AF_UNIX@*/
333 /*@constant int AF_INET@*/
334 /*@constant int AF_IMPLINK@*/
335 /*@constant int AF_PUP@*/
336 /*@constant int AF_CHAOS@*/
337 /*@constant int AF_NS@*/
338 /*@constant int AF_ISO@*/
339 /*@constant int AF_OSI@*/
340 /*@constant int AF_ECMA@*/
341 /*@constant int AF_DATAKIT@*/
342 /*@constant int AF_CCITT@*/
343 /*@constant int AF_SNA@*/
344 /*@constant int AF_DECnet@*/
345 /*@constant int AF_DLI@*/
346 /*@constant int AF_LAT@*/
347 /*@constant int AF_HYLINK@*/
348 /*@constant int AF_APPLETALK@*/
349 /*@constant int AF_ROUTE@*/
350 /*@constant int AF_LINK@*/
351 /*@constant int pseudo_AF_XTP@*/
352 /*@constant int AF_COIP@*/
353 /*@constant int AF_CNT@*/
354 /*@constant int pseudo_AF_RTIP@*/
355 /*@constant int AF_IPX@*/
356 /*@constant int AF_SIP@*/
357 /*@constant int pseudo_AF_PIP@*/
358 /*@constant int AF_ISDN@*/
359 /*@constant int AF_E164@*/
360 /*@constant int AF_MAX@*/
361 /*@constant int MSG_OOB@*/
362 /*@constant int MSG_PEEK@*/
363 /*@constant int MSG_DONTROUTE@*/
364 /*@constant int MSG_EOR@*/
365 /*@constant int MSG_TRUNC@*/
366 /*@constant int MSG_CTRUNC@*/
367 /*@constant int MSG_WAITALL@*/
368 /*@constant int MSG_DONTWAIT@*/
369 /*@constant int MSG_EOF@*/
370 /*@constant int MSG_COMPAT@*/
371 /*@constant int PF_UNSPEC@*/
372 /*@constant int PF_LOCAL@*/
373 /*@constant int PF_UNIX@*/
374 /*@constant int PF_INET@*/
375 /*@constant int PF_IMPLINK@*/
376 /*@constant int PF_PUP@*/
377 /*@constant int PF_CHAOS@*/
378 /*@constant int PF_NS@*/
379 /*@constant int PF_ISO@*/
380 /*@constant int PF_OSI@*/
381 /*@constant int PF_ECMA@*/
382 /*@constant int PF_DATAKIT@*/
383 /*@constant int PF_CCITT@*/
384 /*@constant int PF_SNA@*/
385 /*@constant int PF_DECnet@*/
386 /*@constant int PF_DLI@*/
387 /*@constant int PF_LAT@*/
388 /*@constant int PF_HYLINK@*/
389 /*@constant int PF_APPLETALK@*/
390 /*@constant int PF_ROUTE@*/
391 /*@constant int PF_LINK@*/
392 /*@constant int PF_XTP@*/
393 /*@constant int PF_COIP@*/
394 /*@constant int PF_CNT@*/
395 /*@constant int PF_SIP@*/
396 /*@constant int PF_IPX@*/
397 /*@constant int PF_RTIP@*/
398 /*@constant int PF_PIP@*/
399 /*@constant int PF_ISDN@*/
400 /*@constant int PF_MAX@*/
401 /*@constant int NET_MAXID@*/
402 /*@constant int NET_RT_DUMP@*/
403 /*@constant int NET_RT_FLAGS@*/
404 /*@constant int NET_RT_IFLIST@*/
405 /*@constant int NET_RT_MAXID@*/
406 /*@constant int SOMAXCONN@*/
407 /*@constant int SCM_RIGHTS@*/
408
409  struct sockaddr {
410         u_char  sa_len;                 /* total length */
411         u_char  sa_family;              /* address family */
412         char    sa_data[14];            /* actually longer; address value */
413 };
414
415  struct linger {
416         int     l_onoff;                /* option on/off */
417         int     l_linger;               /* linger time */
418 };
419
420  struct sockproto {
421         u_short sp_family;              /* address family */
422         u_short sp_protocol;            /* protocol */
423 };
424  struct msghdr {
425         caddr_t msg_name;               /* optional address */
426         u_int   msg_namelen;            /* size of address */
427         struct  iovec *msg_iov;         /* scatter/gather array */
428         u_int   msg_iovlen;             /* # elements in msg_iov */
429         caddr_t msg_control;            /* ancillary data, see below */
430         u_int   msg_controllen;         /* ancillary data buffer len */
431         int     msg_flags;              /* flags on received message */
432 };
433
434  struct cmsghdr {
435         u_int   cmsg_len;               /* data byte count, including hdr */
436         int     cmsg_level;             /* originating protocol */
437         int     cmsg_type;              /* protocol-specific type */
438 /* followed by  u_char  cmsg_data[]; */
439 };
440
441         extern int
442 accept (int s, struct sockaddr *addr, int *addrlen)
443         /*@modifies *addrlen, errno@*/;
444
445         extern int
446 bind (int s, struct sockaddr *name, int namelen)
447         /*@modifies errno, fileSystem@*/;
448
449         extern int
450 connect (int s, struct sockaddr *name, int namelen)
451         /*@modifies errno, internalState@*/;
452
453         extern int
454 getpeername (int s, /*@out@*/ struct sockaddr *name, int *namelen)
455         /*@modifies *name, *namelen, errno@*/;
456
457         extern int
458 getsockname (int s, struct sockaddr *name, int *namelen)
459         /*@modifies *name, *namelen, errno@*/;
460
461         extern int
462 getsockopt (int s, int level, int optname, /*@out@*/ void *optval, int *optlen)
463         /*@modifies *optval, *optlen, errno@*/;
464
465         extern int
466 listen (int s, int backlog)
467         /*@modifies errno, internalState@*/;
468
469         extern ssize_t
470 recv (int s, /*@out@*/ void *buf, size_t len, int flags)
471         /*@modifies *buf, errno@*/;
472
473         extern ssize_t
474 recvfrom (int s, void *buf, size_t len, int flags, /*@null@*/ struct sockaddr *from, int *fromlen)
475         /*@modifies *buf, *from, *fromlen, errno@*/;
476
477         extern ssize_t
478 recvmsg (int s, struct msghdr *msg, int flags)
479         /*@modifies msg->msg_iov->iov_base[], errno@*/;
480
481         extern ssize_t
482 send (int s, const void *msg, size_t len, int flags)
483         /*@modifies errno@*/;
484
485         extern ssize_t
486 sendto (int s, const void *msg, size_t len, int flags, const struct sockaddr *to, int tolen)
487         /*@modifies errno@*/;
488
489         extern ssize_t
490 sendmsg (int s, const struct msghdr *msg, int flags)
491         /*@modifies errno@*/;
492
493         extern int
494 setsockopt (int s, int level, int optname, const void *optval, int optlen)
495         /*@modifies internalState, errno@*/;
496
497         extern int
498 shutdown (int s, int how)
499         /*@modifies errno@*/;
500
501         extern int
502 socket (int domain, int type, int protocol)
503         /*@modifies errno@*/;
504
505         extern int
506 socketpair (int d, int type, int protocol, /*@out@*/ int *sv)
507         /*@modifies errno@*/;
508
509 /*@constant int BADSIG@*/
510 /*@constant int SA_ONSTACK@*/
511 /*@constant int SA_RESTART@*/
512 /*@constant int SA_DISABLE@*/
513 /*@constant int SIGBUS@*/
514 /*@constant int SIGEMT@*/
515 /*@constant int SIGINFO@*/
516 /*@constant int SIGIO@*/
517 /*@constant int SIGIOT@*/
518 /*@constant int SIGPOLL@*/
519 /*@constant int SIGPROF@*/
520 /*@constant int SIGPWR@*/
521 /*@constant int SIGSYS@*/
522 /*@constant int SIGTRAP@*/
523 /*@constant int SIGURG@*/
524 /*@constant int SIGVTALRM@*/
525 /*@constant int SIGWINCH@*/
526 /*@constant int SIGXCPU@*/
527 /*@constant int SIGXFSZ@*/
528
529 extern void psignal (int sig, const char *msg)
530    /*@modifies fileSystem@*/;
531
532 /*@unchecked@*/ extern char *optarg;
533 /*@unchecked@*/ extern int optind;
534 /*@unchecked@*/ extern int optopt;
535 /*@unchecked@*/ extern int opterr;
536 /*@unchecked@*/ extern int optreset;
537
538         extern int
539 getopt (int argc, char * const *argv, const char *optstring)
540         /*@globals optarg, optind, optopt, opterr, optreset@*/
541         /*@modifies optarg, optind, optopt@*/;
542
543         extern int
544 setenv (const char *name, const char *value, int overwrite)
545         /*@globals environ@*/
546         /*@modifies *environ, errno@*/;
547
548         extern int
549 putenv (const char *string)
550         /*@globals environ@*/
551         /*@modifies *environ, errno@*/;
552
553         extern void
554 unsetenv (const char *name)
555         /*@globals environ@*/
556         /*@modifies *environ@*/;
557
558 /*________________________________________________________________________
559  * sys/wait.h
560  */
561
562         extern int
563 WCOREDUMP (int x)
564         /*@*/;
565
566         extern int
567 W_EXITCODE (int ret, int sig)
568         /*@*/;
569
570         extern int
571 W_STOPCODE (int sig)
572         /*@*/;
573
574 /*@constant int WAIT_ANY@*/
575 /*@constant int WAIT_MYPGRP@*/
576 /*@constant int WSTOPPED@*/
577
578         extern pid_t
579 wait3 (int *statloc, int options, /*@null@*/ /*@out@*/ struct rusage *rusage)
580         /*@modifies *statloc, *rusage, errno@*/;
581
582         extern pid_t
583 wait4 (pid_t p, int *statloc, int opt, /*@null@*/ /*@out@*/ struct rusage *r)
584         /*@modifies *statloc, *r, errno@*/;
585
586 struct timeval {
587   long  tv_sec;
588   long  tv_usec;
589 } ;
590
591 struct timespec {
592   long  ts_sec;
593   long  ts_nsec;
594 } ;
595
596 struct timezone {
597   int   tz_minuteswest;
598   int   tz_dsttime;
599 } ;
600
601 /*@constant int DST_NONE@*/
602 /*@constant int DST_USA@*/
603 /*@constant int DST_AUST@*/
604 /*@constant int DST_WET@*/
605 /*@constant int DST_MET@*/
606 /*@constant int DST_EET@*/
607 /*@constant int DST_CAN@*/
608
609 /*@constant int ITIMER_PROF@*/
610 /*@constant int ITIMER_REAL@*/
611 /*@constant int ITIMER_VIRTUAL@*/
612
613  struct itimerval {
614         struct  timeval it_interval;
615         struct  timeval it_value;
616 };
617
618  struct clockinfo {
619         int     hz;
620         int     tick;
621         int     stathz;
622         int     profhz;
623 };
624
625         extern int
626 adjtime (const struct timeval *delta, /*@null@*/ /*@out@*/ struct timeval *olddelta)
627         /*@modifies internalState, *olddelta, errno@*/;
628
629         extern int
630 getitimer (int which, /*@out@*/ struct itimerval *value)
631         /*@modifies errno, *value*/;
632
633         extern int
634 gettimeofday (/*@null@*/ /*@out@*/ struct timeval *tp, /*@null@*/ /*@out@*/ struct timezone *tzp)
635         /*@modifies *tp, *tzp, errno@*/;
636
637         extern int
638 setitimer (int which, struct itimerval *val, /*@null@*/ /*@out@*/ struct itimerval *oval)
639         /*@modifies *oval, errno, internalState*/;
640
641         extern int
642 settimeofday (const struct timeval *t, const struct timezone *z)
643         /*@modifies internalState, errno@*/;
644
645         extern int
646 utimes (const char *file, /*@null@*/ const struct timeval *times)
647         /*@modifies fileSystem, errno*/;
648
649 /*________________________________________________________________________
650  * sys/mman.h
651  */
652
653 /*@constant int PROT_READ@*/
654 /*@constant int PROT_WRITE@*/
655 /*@constant int PROT_EXEC@*/
656 /*@constant int MAP_SHARED@*/
657 /*@constant int MAP_PRIVATE@*/
658 /*@constant int MAP_COPY@*/
659 /*@constant int MAP_FIXED@*/
660 /*@constant int MAP_RENAME@*/
661 /*@constant int MAP_NORESERVE@*/
662 /*@constant int MAP_INHERIT@*/
663 /*@constant int MAP_NOEXTEND@*/
664 /*@constant int MAP_HASSEMAPHORE@*/
665 /*@constant int MS_ASYNC@*/
666 /*@constant int MS_INVALIDATE@*/
667 /*@constant int MAP_FILE@*/
668 /*@constant int MAP_ANON@*/
669 /*@constant int MADV_NORMAL@*/
670 /*@constant int MADV_RANDOM@*/
671 /*@constant int MADV_SEQUENTIAL@*/
672 /*@constant int MADV_WILLNEED@*/
673 /*@constant int MADV_DONTNEED@*/
674
675         extern caddr_t
676 mmap (/*@null@*/ /*@returned@*/ caddr_t addr, size_t len, int prot, int flags, int fd, off_t offset)
677         /*@modifies addr@*/;
678
679         extern int
680 madvise (caddr_t addr, int len, int behav)
681         /*@*/;
682
683         extern int
684 mprotect (caddr_t addr, int len, int prot)
685         /*@*/;
686
687         extern int
688 munmap (caddr_t addr, size_t len)
689         /*@*/;
690
691         extern int
692 msync (caddr_t addr, int len, int flags)
693         /*@*/;
694
695         extern int
696 mlock (caddr_t addr, size_t len)
697         /*@*/;
698
699         extern int
700 munlock (caddr_t addr, size_t len)
701         /*@*/;
702
703
704 /*________________________________________________________________________
705  * sys/ioctl.h
706  */
707
708  struct winsize {
709         unsigned short  ws_row;
710         unsigned short  ws_col;
711         unsigned short  ws_xpixel;
712         unsigned short  ws_ypixel;
713 };
714
715 /*@constant int TIOCMODG@*/
716 /*@constant int TIOCMODS@*/
717 /*@constant int TIOCM_LE@*/
718 /*@constant int TIOCM_DTR@*/
719 /*@constant int TIOCM_RTS@*/
720 /*@constant int TIOCM_ST@*/
721 /*@constant int TIOCM_SR@*/
722 /*@constant int TIOCM_CTS@*/
723 /*@constant int TIOCM_CAR@*/
724 /*@constant int TIOCM_CD@*/
725 /*@constant int TIOCM_RNG@*/
726 /*@constant int TIOCM_RI@*/
727 /*@constant int TIOCM_DSR@*/
728 /*@constant int TIOCEXCL@*/
729 /*@constant int TIOCNXCL@*/
730 /*@constant int TIOCFLUSH@*/
731 /*@constant int TIOCGETA@*/
732 /*@constant int TIOCSETA@*/
733 /*@constant int TIOCSETAW@*/
734 /*@constant int TIOCSETAF@*/
735 /*@constant int TIOCGETD@*/
736 /*@constant int TIOCSETD@*/
737 /*@constant int TIOCSBRK@*/
738 /*@constant int TIOCCBRK@*/
739 /*@constant int TIOCSDTR@*/
740 /*@constant int TIOCCDTR@*/
741 /*@constant int TIOCGPGRP@*/
742 /*@constant int TIOCSPGRP@*/
743 /*@constant int TIOCOUTQ@*/
744 /*@constant int TIOCSTI@*/
745 /*@constant int TIOCNOTTY@*/
746 /*@constant int TIOCPKT@*/
747 /*@constant int TIOCPKT_DATA@*/
748 /*@constant int TIOCPKT_FLUSHREAD@*/
749 /*@constant int TIOCPKT_FLUSHWRITE@*/
750 /*@constant int TIOCPKT_STOP@*/
751 /*@constant int TIOCPKT_START@*/
752 /*@constant int TIOCPKT_NOSTOP@*/
753 /*@constant int TIOCPKT_DOSTOP@*/
754 /*@constant int TIOCPKT_IOCTL@*/
755 /*@constant int TIOCSTOP@*/
756 /*@constant int TIOCSTART@*/
757 /*@constant int TIOCMSET@*/
758 /*@constant int TIOCMBIS@*/
759 /*@constant int TIOCMBIC@*/
760 /*@constant int TIOCMGET@*/
761 /*@constant int TIOCREMOTE@*/
762 /*@constant int TIOCGWINSZ@*/
763 /*@constant int TIOCSWINSZ@*/
764 /*@constant int TIOCUCNTL@*/
765 /*@constant int TIOCSTAT@*/
766 /*@constant int TIOCCONS@*/
767 /*@constant int TIOCSCTTY@*/
768 /*@constant int TIOCEXT@*/
769 /*@constant int TIOCSIG@*/
770 /*@constant int TIOCDRAIN@*/
771 /*@constant int TIOCMSDTRWAIT@*/
772 /*@constant int TIOCMGDTRWAIT@*/
773 /*@constant int TIOCTIMESTAMP@*/
774 /*@constant int TIOCSDRAINWAIT@*/
775 /*@constant int TIOCGDRAINWAIT@*/
776 /*@constant int TTYDISC@*/
777 /*@constant int TABLDISC@*/
778 /*@constant int SLIPDISC@*/
779 /*@constant int PPPDISC@*/
780
781 /*@constant int MAXHOSTNAMELEN@*/
782
783         extern void
784 FD_CLR (int n, fd_set *p)
785         /*@modifies *p@*/;
786
787         extern void
788 FD_COPY (fd_set *f, /*@out@*/ fd_set *t)
789         /*@modifies *t@*/;
790
791         extern int /*@alt lltX_bool@*/
792 FD_ISSET (int n, fd_set *p)
793         /*@*/;
794
795         extern void
796 FD_SET (int n, fd_set *p)
797         /*@modifies *p@*/;
798
799         extern void
800 FD_ZERO (fd_set /*@out@*/ *p)
801         /*@modifies *p@*/;
802
803         extern int
804 fchdir (int fd)
805         /*@modifies internalState, errno@*/;
806
807         extern int
808 fchown (int fd, uid_t owner, gid_t group)
809         /*@modifies errno, fileSystem@*/;
810
811         extern int
812 fsync (int fd)
813         /*@modifies errno, fileSystem@*/;
814
815         extern int
816 ftruncate (int fd, off_t length)
817         /*@modifies errno, fileSystem@*/;
818
819         extern int
820 gethostname (/*@out@*/ char *name, int namlen)
821         /*@modifies *name@*/;
822
823         extern int
824 initgroups (const char *name, int basegid)
825         /*@modifies internalState@*/;
826
827         extern int
828 lchown (const char *path, uid_t owner, gid_t group)
829         /*@modifies errno, fileSystem@*/;
830
831         extern int
832 readlink (const char *path, /*@out@*/ char *buf, int size)
833         /*@modifies *buf, errno@*/;
834
835         extern int
836 select (int mfd, fd_set /*@null@*/ *r, fd_set /*@null@*/ *w, fd_set /*@null@*/ *e, struct timeval *t)
837         /*@modifies *r, *w, *e, *t, errno@*/;
838
839         extern int
840 setegid (gid_t egid)
841         /*@modifies errno, internalState@*/;
842
843         extern int
844 seteuid (uid_t euid)
845         /*@modifies errno, internalState@*/;
846
847         extern int
848 setgroups (int ngroups, const gid_t *gidset)
849         /*@modifies errno, internalState@*/;
850
851         extern int
852 setregid (gid_t rgid, gid_t egid)
853         /*@modifies errno, internalState@*/;
854
855         extern int
856 setreuid (gid_t ruid, gid_t euid)
857         /*@modifies errno, internalState@*/;
858
859         extern void
860 sync (void)
861         /*@modifies fileSystem@*/;
862
863         extern int
864 symlink (const char *path, const char *path2)
865         /*@modifies fileSystem@*/;
866
867         extern int
868 truncate (const char *name, off_t length)
869         /*@modifies errno, fileSystem@*/;
870
871 /*@constant int EBADRPC@*/
872 /*@constant int ERPCMISMATCH@*/
873 /*@constant int EPROGUNAVAIL@*/
874 /*@constant int EPROGMISMATCH@*/
875 /*@constant int EPROCUNAVAIL@*/
876 /*@constant int EFTYPE@*/
877 /*@constant int EAUTH@*/
878 /*@constant int ENEEDAUTH@*/
879 /*@constant int ELAST@*/
880
881 /*________________________________________________________________________
882  * tar.h
883  */
884
885 /*@unchecked@*/ extern char *TMAGIC;
886 /*@constant int TMAGLEN@*/
887 /*@unchecked@*/ extern char *TVERSION;
888 /*@constant int TVERSLEN@*/
889
890 /*@constant int REGTYPE@*/
891 /*@constant int AREGTYPE@*/
892 /*@constant int LNKTYPE@*/
893 /*@constant int SYMTYPE@*/
894 /*@constant int CHRTYPE@*/
895 /*@constant int BLKTYPE@*/
896 /*@constant int DIRTYPE@*/
897 /*@constant int FIFOTYPE@*/
898 /*@constant int CONTTYPE@*/
899
900 /*@constant int TSUID@*/
901 /*@constant int TSGID@*/
902 /*@constant int TSVTX@*/
903
904 /*@constant int TUREAD@*/
905 /*@constant int TUWRITE@*/
906 /*@constant int TUEXEC@*/
907 /*@constant int TGREAD@*/
908 /*@constant int TGWRITE@*/
909 /*@constant int TGEXEC@*/
910 /*@constant int TOREAD@*/
911 /*@constant int TOWRITE@*/
912 /*@constant int TOEXEC@*/
913
914 struct ipc_perm {
915   uid_t uid;    /* user id */
916   gid_t gid;    /* group id */
917   uid_t cuid;   /* creator user id */
918   gid_t cgid;   /* creator group id */
919   mode_t        mode;   /* r/w permission */
920   ulong seq;    /* slot usage sequence number */
921   key_t key;    /* user specified msg/sem/shm key */
922 } ;
923
924 /*@constant int IPC_R@*/
925 /*@constant int IPC_W@*/
926 /*@constant int IPC_M@*/
927 /*@constant int IPC_CREAT@*/
928 /*@constant int IPC_EXCL@*/
929 /*@constant int IPC_NOWAIT@*/
930 /*@constant key_t IPC_PRIVATE@*/
931 /*@constant int IPC_RMID@*/
932 /*@constant int IPC_SET@*/
933 /*@constant int IPC_STAT@*/
934
935 /*________________________________________________________________________
936  * sys/msg.h
937  */
938
939  struct msqid_ds {
940         struct  ipc_perm msg_perm;      /* msg queue permission bits */
941         struct  msg *msg_first; /* first message in the queue */
942         struct  msg *msg_last;  /* last message in the queue */
943         u_long  msg_cbytes;     /* number of bytes in use on the queue */
944         u_long  msg_qnum;       /* number of msgs in the queue */
945         u_long  msg_qbytes;     /* max # of bytes on the queue */
946         pid_t   msg_lspid;      /* pid of last msgsnd() */
947         pid_t   msg_lrpid;      /* pid of last msgrcv() */
948         time_t  msg_stime;      /* time of last msgsnd() */
949         time_t  msg_rtime;      /* time of last msgrcv() */
950         time_t  msg_ctime;      /* time of last msgctl() */
951 };
952
953  struct mymesg {
954         long    mtype;          /* message type (+ve integer) */
955         char    mtext[];        /* message body */
956 };
957
958 /*@constant int MSG_NOERROR@*/
959 /*@constant int MSGMAX@*/
960 /*@constant int MSGMNB@*/
961 /*@constant int MSGMNI@*/
962 /*@constant int MSGTQL@*/
963
964         extern int
965 msgctl (int id , int cmd, /*@out@*/ struct msqid_ds *buf)
966         /*@modifies errno, *buf@*/;
967
968         extern int
969 msgget (key_t key, int flag)
970         /*@modifies errno@*/;
971
972         extern int
973 msgrcv (int id, /*@out@*/ void *ptr, size_t nbytes, long type, int flags)
974         /*@modifies errno, *ptr@*/;
975
976         extern int
977 msgsnd (int id, const void *ptr, size_t nbytes, int flag)
978         /*@modifies errno@*/;
979
980 /*________________________________________________________________________
981  * sys/sem.h
982  */
983
984  struct semid_ds {
985         struct ipc_perm sem_perm;
986         struct sem     *sem_base;
987         ushort          sem_nsems;
988         time_t          sem_otime;
989         time_t          sem_ctime;
990 };
991
992  struct sem {
993         ushort semval;
994         pid_t  sempid;
995         ushort semncnt;
996         ushort semzcnt;
997 };
998
999  union semun {
1000         int val;
1001         struct semid_ds *buf;
1002         ushort *array;
1003 };
1004
1005  struct sembuf {
1006         ushort sem_num;
1007         short sem_op;
1008         short sem_flg;
1009 };
1010
1011 /*@constant int SEM_A@*/
1012 /*@constant int SEMAEM@*/
1013 /*@constant int SEMMNI@*/
1014 /*@constant int SEMMNS@*/
1015 /*@constant int SEMMNU@*/
1016 /*@constant int SEMMSL@*/
1017 /*@constant int SEMOPN@*/
1018 /*@constant int SEM_R@*/
1019 /*@constant int SEMUME@*/
1020 /*@constant int SEM_UNDO@*/
1021 /*@constant int SEMVMX@*/
1022 /*@constant int GETVAL@*/
1023 /*@constant int SETVAL@*/
1024 /*@constant int GETPID@*/
1025 /*@constant int GETNCNT@*/
1026 /*@constant int GETZCNT@*/
1027 /*@constant int GETALL@*/
1028 /*@constant int SETALL@*/
1029
1030 /*@constant int ERMID@*/
1031
1032         extern int
1033 semctl (int id, int semnum, int cmd, union semun arg)
1034         /*@modifies errno@*/;
1035
1036         extern int
1037 semget (key_t key, int nsems, int flag)
1038         /*@modifies errno@*/;
1039
1040         extern int
1041 semop (int id, struct sembuf *semoparray, size_t nops)
1042         /*@modifies errno@*/;
1043
1044 /*________________________________________________________________________
1045  * sys/shm.h
1046  */
1047
1048  struct shmid_ds {
1049         struct ipc_perm shm_perm;
1050         int shm_segsz;
1051         ushort shm_lkcnt;
1052         pid_t shm_lpid;
1053         pid_t shm_cpid;
1054         ulong shm_nattch;
1055         ulong shm_cnattch;
1056         time_t shm_atime;
1057         time_t shm_dtime;
1058         time_t shm_ctime;
1059 };
1060
1061 /*@constant int SHMLBA@*/
1062 /*@constant int SHM_LOCK@*/
1063 /*@constant int SHMMAX@*/
1064 /*@constant int SHMMIN@*/
1065 /*@constant int SHMMNI@*/
1066 /*@constant int SHM_R@*/
1067 /*@constant int SHM_RDONLY@*/
1068 /*@constant int SHM_RND@*/
1069 /*@constant int SHMSEG@*/
1070 /*@constant int SHM_W@*/
1071 /*@constant int SHM_UNLOCK@*/
1072
1073         void *
1074 shmat (int id, /*@null@*/ void *addr, int flag)
1075         /*@modifies errno@*/;
1076
1077         extern int
1078 shmctl (int id, int cmd, /*@out@*/ struct shmid_ds *buf)
1079         /*@modifies errno, *buf@*/;
1080
1081         extern int
1082 shmdt (void *addr)
1083         /*@modifies errno@*/;
1084
1085         extern int
1086 shmget (key_t key, int size, int flag)
1087         /*@modifies errno@*/;
1088
1089
1090 /*________________________________________________________________________
1091  * regex.h  --  intended to be POSIX 1003.2 compliant
1092  */
1093
1094  typedef off_t regoff_t;
1095
1096  typedef struct {
1097         int re_magic;
1098         size_t re_nsub;       /* number of parenthesized subexpressions */
1099         char *re_endp;        /* end pointer for REG_PEND */
1100         struct re_guts *re_g; /* none of your business :-) */
1101 } regex_t;
1102
1103  typedef struct {
1104         regoff_t rm_so;         /* start of match */
1105         regoff_t rm_eo;         /* end of match */
1106 } regmatch_t;
1107
1108 /* regcomp() flags */
1109 /*@constant int REG_BASIC@*/
1110 /*@constant int REG_EXTENDED@*/
1111 /*@constant int REG_ICASE@*/
1112 /*@constant int REG_NOSUB@*/
1113 /*@constant int REG_NEWLINE@*/
1114 /*@constant int REG_NOSPEC@*/
1115 /*@constant int REG_PEND@*/
1116 /*@constant int REG_DUMP@*/
1117
1118 /* regerror() flags */
1119 /*@constant int REG_NOMATCH@*/
1120 /*@constant int REG_BADPAT@*/
1121 /*@constant int REG_ECOLLATE@*/
1122 /*@constant int REG_ECTYPE@*/
1123 /*@constant int REG_EESCAPE@*/
1124 /*@constant int REG_ESUBREG@*/
1125 /*@constant int REG_EBRACK@*/
1126 /*@constant int REG_EPAREN@*/
1127 /*@constant int REG_EBRACE@*/
1128 /*@constant int REG_BADBR@*/
1129 /*@constant int REG_ERANGE@*/
1130 /*@constant int REG_ESPACE@*/
1131 /*@constant int REG_BADRPT@*/
1132 /*@constant int REG_EMPTY@*/
1133 /*@constant int REG_ASSERT@*/
1134 /*@constant int REG_INVARG@*/
1135 /*@constant int REG_ATOI@*/ /* non standard */
1136 /*@constant int REG_ITOA@*/ /* non standard */
1137
1138 /* regexec() flags */
1139 /*@constant int REG_NOTBOL@*/
1140 /*@constant int REG_NOTEOL@*/
1141 /*@constant int REG_STARTEND@*/
1142 /*@constant int REG_TRACE@*/
1143 /*@constant int REG_LARGE@*/
1144 /*@constant int REG_BACKR@*/
1145
1146         extern int
1147 regcomp (/*@out@*/ regex_t *preg, const char *pattern, int flags)
1148         /*@modifies *preg@*/;
1149
1150         extern size_t
1151 regerror (int code, const regex_t *re, /*@out@*/ char *errbuf, size_t bufsize)
1152         /*@modifies *errbuf@*/;
1153
1154         extern int
1155 regexec (const regex_t *preg, const char *s, size_t n, /*@out@*/ regmatch_t *m, int f)
1156         /*@modifies *m@*/;
1157
1158         extern void
1159 regfree (regex_t *p)
1160         /*@modifies *p@*/;
1161
1162 /*________________________________________________________________________
1163  * syslog.h
1164  */
1165
1166 /*@constant int LOG_EMERG@*/
1167 /*@constant int LOG_ALERT@*/
1168 /*@constant int LOG_CRIT@*/
1169 /*@constant int LOG_ERR@*/
1170 /*@constant int LOG_WARNING@*/
1171 /*@constant int LOG_NOTICE@*/
1172 /*@constant int LOG_INFO@*/
1173 /*@constant int LOG_DEBUG@*/
1174
1175 /*@constant int LOG_KERN@*/
1176 /*@constant int LOG_USER@*/
1177 /*@constant int LOG_MAIL@*/
1178 /*@constant int LOG_DAEMON@*/
1179 /*@constant int LOG_AUTH@*/
1180 /*@constant int LOG_SYSLOG@*/
1181 /*@constant int LOG_LPR@*/
1182 /*@constant int LOG_NEWS@*/
1183 /*@constant int LOG_UUCP@*/
1184 /*@constant int LOG_CRON@*/
1185 /*@constant int LOG_AUTHPRIV@*/
1186 /*@constant int LOG_FTP@*/
1187 /*@constant int LOG_LOCAL0@*/
1188 /*@constant int LOG_LOCAL1@*/
1189 /*@constant int LOG_LOCAL2@*/
1190 /*@constant int LOG_LOCAL3@*/
1191 /*@constant int LOG_LOCAL4@*/
1192 /*@constant int LOG_LOCAL5@*/
1193 /*@constant int LOG_LOCAL6@*/
1194 /*@constant int LOG_LOCAL7@*/
1195
1196 /*@constant int LOG_PID@*/
1197 /*@constant int LOG_CONS@*/
1198 /*@constant int LOG_ODELAY@*/
1199 /*@constant int LOG_NDELAY@*/
1200 /*@constant int LOG_NOWAIT@*/
1201 /*@constant int LOG_PERROR@*/
1202
1203         extern int
1204 LOG_MASK (int pri)
1205         /*@*/;
1206
1207         extern int
1208 LOG_UPTO (int pri)
1209         /*@*/;
1210
1211         extern void
1212 closelog (void)
1213         /*@modifies fileSystem@*/;
1214
1215         extern void
1216 openlog (const char *ident, int logopt, int facility)
1217         /*@modifies fileSystem@*/;
1218
1219         extern int
1220 setlogmask (int maskpri)
1221         /*@modifies internalState@*/;
1222
1223         extern void /*@printflike@*/
1224 syslog (int priority, const char *message, ...)
1225         /*@modifies fileSystem@*/;
1226
1227         extern void
1228 vsyslog (int priority, const char *message, va_list args)
1229         /*@modifies fileSystem@*/;
1230
1231 /*________________________________________________________________________
1232  * pwd.h
1233  */
1234
1235         extern extern void
1236 endpwent (void)
1237         /*@modifies internalState@*/;
1238
1239         extern /*@null@*/ struct passwd *
1240 getpwent (void)
1241         /*@modifies internalState@*/;
1242
1243         extern int
1244 setpassent (int stayopen)
1245         /*@modifies internalState@*/;
1246
1247         extern int
1248 setpwent (void)
1249         /*@modifies internalState@*/;
1250
1251 /*________________________________________________________________________
1252  * grp.h
1253  */
1254
1255         extern void
1256 endgrent (void)
1257         /*@modifies internalState@*/;
1258
1259         extern /*@null@*/ struct group *
1260 getgrent (void)
1261         /*@modifies internalState@*/;
1262
1263         extern int
1264 setgrent (void)
1265         /*@modifies internalState@*/;
1266
1267         extern void
1268 setgrfile (const char *name)
1269         /*@modifies internalState@*/;
1270
1271         extern int
1272 setgroupent (int stayopen)
1273         /*@modifies internalState@*/;
1274
1275 /*________________________________________________________________________
1276  * sys/stat.h
1277  */
1278
1279 /*@constant int S_ISTXT@*/
1280 /*@constant int S_IREAD@*/
1281 /*@constant int S_IWRITE@*/
1282 /*@constant int S_IEXEC@*/
1283 /*@constant int S_IFMT@*/
1284 /*@constant int S_IFIFO@*/
1285 /*@constant int S_IFCHR@*/
1286 /*@constant int S_IFDIR@*/
1287 /*@constant int S_IFBLK@*/
1288 /*@constant int S_IFREG@*/
1289 /*@constant int S_IFLNK@*/
1290 /*@constant int S_IFSOCK@*/
1291 /*@constant int S_ISVTX@*/
1292 /*@constant int S_ISVTX@*/
1293 /*@constant int SF_SETTABLE@*/
1294 /*@constant int SF_ARCHIVED@*/
1295 /*@constant int ACCESSPERMS@*/
1296 /*@constant int ALLPERMS@*/
1297 /*@constant int DEFFILEMODE@*/
1298 /*@constant int S_BLKSIZE@*/
1299 /*@constant int SF_IMMUTABLE@*/
1300 /*@constant int SF_APPEND@*/
1301 /*@constant int UF_NODUMP@*/
1302 /*@constant int UF_IMMUTABLE@*/
1303 /*@constant int UF_APPEND@*/
1304
1305         extern int /*@alt lltX_bool@*/
1306 S_ISLNK (/*@sef@*/ mode_t m)
1307         /*@*/;
1308
1309         extern int /*@alt lltX_bool@*/
1310 S_ISSOCK (/*@sef@*/ mode_t m)
1311         /*@*/;
1312
1313         extern int
1314 chflags (const char *path, u_long flags)
1315         /*@modifies fileSystem, errno@*/;
1316
1317         extern int
1318 fchflags (int fd, u_long flags)
1319         /*@modifies fileSystem, errno@*/;
1320
1321         extern int
1322 fchmod (int fd, mode_t mode)
1323         /*@modifies fileSystem, errno@*/;
1324
1325         extern int
1326 lstat (const char *path, /*@out@*/ struct stat *buf)
1327         /*@modifies errno, *buf@*/;
1328
1329 /*________________________________________________________________________
1330  * stropts.h
1331  */
1332
1333 /*@constant int FMNAMESZ@*/
1334 /*@constant int MSG_BAND@*/
1335 /*@constant int MSG_HIPRI@*/
1336 /*@constant int RS_HIPRI@*/
1337 /*@constant int S_INPUT@*/
1338 /*@constant int S_RDNORM@*/
1339 /*@constant int S_RDBAND@*/
1340 /*@constant int S_BANDURG@*/
1341 /*@constant int S_HIPRI@*/
1342 /*@constant int S_OUTPUT@*/
1343 /*@constant int S_WRNORM@*/
1344 /*@constant int S_WRBAND@*/
1345 /*@constant int S_MSG@*/
1346 /*@constant int S_ERROR@*/
1347 /*@constant int S_HANGUP@*/
1348
1349  struct strbuf {
1350         int maxlen;
1351         int len;
1352         char *buf;
1353 }
1354
1355  struct str_mlist {
1356         char l_name[];
1357 }
1358
1359  struct str_list {
1360         int sl_nmods;
1361         struct str_mlist *sl_modlist;
1362 }
1363
1364         extern int
1365 getmsg (int fd, /*@out@*/ struct strbuf *c, /*@out@*/ struct strbuf *d, int *f)
1366         /*@modifies *c, *d, errno@*/;
1367
1368         extern int
1369 getpmsg (int fd, /*@out@*/ struct strbuf *c, /*@out@*/ struct strbuf *d, int *b, int *f)
1370         /*@modifies *b, *c, *d, errno@*/;
1371
1372         extern int
1373 putmsg (int fd, const struct strbuf *c, const struct strbuf *d, int *f)
1374         /*@modifies internalState, errno@*/;
1375
1376         extern int
1377 putpmsg (int fd, const struct strbuf *c, const struct strbuf *d, int b, int *f)
1378         /*@modifies internalState, errno@*/;
1379
1380 /*________________________________________________________________________
1381  * sys/resource.h
1382  */
1383
1384 /*@constant int RLIMIT_CPU@*/
1385 /*@constant int RLIMIT_FSIZE@*/
1386 /*@constant int RLIMIT_DATA@*/
1387 /*@constant int RLIMIT_STACK@*/
1388 /*@constant int RLIMIT_CORE@*/
1389 /*@constant int RLIMIT_RSS@*/
1390 /*@constant int RLIMIT_MEMLOCK@*/
1391 /*@constant int RLIMIT_NPROC@*/
1392 /*@constant int RLIMIT_NOFILE@*/
1393 /*@constant int RLIM_NLIMITS@*/
1394 /*@constant int RLIM_INFINITY@*/
1395 /*@constant int PRIO_MIN@*/
1396 /*@constant int PRIO_MAX@*/
1397 /*@constant int PRIO_PROCESS@*/
1398 /*@constant int PRIO_PGRP@*/
1399 /*@constant int PRIO_USER@*/
1400 /*@constant int RUSAGE_SELF@*/
1401 /*@constant int RUSAGE_CHILDREN@*/
1402
1403  struct rusage {
1404         struct timeval ru_utime;        /* user time used */
1405         struct timeval ru_stime;        /* system time used */
1406         long    ru_maxrss;              /* max resident set size */
1407         long    ru_ixrss;               /* integral shared memory size */
1408         long    ru_idrss;               /* integral unshared data " */
1409         long    ru_isrss;               /* integral unshared stack " */
1410         long    ru_minflt;              /* page reclaims */
1411         long    ru_majflt;              /* page faults */
1412         long    ru_nswap;               /* swaps */
1413         long    ru_inblock;             /* block input operations */
1414         long    ru_oublock;             /* block output operations */
1415         long    ru_msgsnd;              /* messages sent */
1416         long    ru_msgrcv;              /* messages received */
1417         long    ru_nsignals;            /* signals received */
1418         long    ru_nvcsw;               /* voluntary context switches */
1419         long    ru_nivcsw;              /* involuntary " */
1420 };
1421
1422  struct rlimit {
1423         long  rlim_cur;
1424         long  rlim_max;
1425 };
1426
1427  struct loadavg {
1428         unsigned long ldavg[3];
1429         long fscale;
1430 };
1431
1432         extern int
1433 getpriority (int which, int who)
1434         /*@modifies errno@*/;
1435
1436         extern int
1437 getrlimit (int res, /*@out@*/ struct rlimit *rlp)
1438         /*@modifies *rlp, errno@*/;
1439
1440         extern int
1441 getrusage (int who, /*@out@*/ struct rusage *rusage)
1442         /*@modifies *rusage, errno@*/;
1443
1444         extern int
1445 setpriority (int which, int who, int prio)
1446         /*@modifies errno, internalState@*/;
1447
1448         extern int
1449 setrlimit (int resource, const struct rlimit *rlp)
1450         /*@modifies errno, internalState@*/;
1451
This page took 0.142981 seconds and 5 git commands to generate.