|
|
1.1 ! root 1: /* general.c - general utilities for emulation of 4.2BSD */ ! 2: ! 3: #ifndef lint ! 4: static char *rcsid = "$Header: /f/osi/compat/RCS/general.c,v 7.0 89/11/23 21:23:00 mrose Rel $"; ! 5: #endif ! 6: ! 7: /* ! 8: * $Header: /f/osi/compat/RCS/general.c,v 7.0 89/11/23 21:23:00 mrose Rel $ ! 9: * ! 10: * ! 11: * $Log: general.c,v $ ! 12: * Revision 7.0 89/11/23 21:23:00 mrose ! 13: * Release 6.0 ! 14: * ! 15: */ ! 16: ! 17: /* ! 18: * NOTICE ! 19: * ! 20: * Acquisition, use, and distribution of this module and related ! 21: * materials are subject to the restrictions of a license agreement. ! 22: * Consult the Preface in the User's Manual for the full terms of ! 23: * this agreement. ! 24: * ! 25: */ ! 26: ! 27: ! 28: /* LINTLIBRARY */ ! 29: ! 30: #include <stdio.h> ! 31: #include "general.h" ! 32: #include "manifest.h" ! 33: ! 34: /* Berkeley UNIX: 4.2 */ ! 35: ! 36: #ifdef BSD42 ! 37: ! 38: /* Simply including "general.h" is sufficient. */ ! 39: ! 40: #endif ! 41: ! 42: /* non-Berkeley UNIX */ ! 43: ! 44: #ifndef BSDLIBC ! 45: ! 46: #ifndef lint ! 47: ! 48: struct qelem { ! 49: struct qelem *q_forw; ! 50: struct qelem *q_back; ! 51: char q_data[1]; /* extensible */ ! 52: }; ! 53: ! 54: ! 55: insque (elem, pred) ! 56: struct qelem *elem, ! 57: *pred; ! 58: { ! 59: pred -> q_forw -> q_back = elem; ! 60: elem -> q_forw = pred -> q_forw; ! 61: elem -> q_back = pred; ! 62: pred -> q_forw = elem; ! 63: } ! 64: ! 65: ! 66: remque (elem) ! 67: struct qelem *elem; ! 68: { ! 69: elem -> q_forw -> q_back = elem -> q_back; ! 70: elem -> q_back -> q_forw = elem -> q_forw; ! 71: } ! 72: ! 73: #endif ! 74: #endif ! 75: ! 76: /* DUP2 */ ! 77: ! 78: #ifdef SYS5 ! 79: #include <fcntl.h> ! 80: ! 81: ! 82: extern int errno; ! 83: ! 84: ! 85: int dup2 (d1, d2) ! 86: register int d1, ! 87: d2; ! 88: { ! 89: int d; ! 90: ! 91: if (d1 == d2) ! 92: return OK; ! 93: ! 94: (void) close (d2); ! 95: if ((d = fcntl (d1, F_DUPFD, d2)) == NOTOK) ! 96: return NOTOK; ! 97: if (d == d2) ! 98: return OK; ! 99: ! 100: errno = 0; ! 101: return NOTOK; ! 102: } ! 103: #endif ! 104: ! 105: /* BYTEORDER */ ! 106: ! 107: #ifndef SWABLIB ! 108: ! 109: /* ROS and HP-UX don't seem to have these in libc.a */ ! 110: ! 111: #undef ntohs ! 112: u_short ntohs (netshort) u_short netshort; { return netshort; } ! 113: ! 114: #undef htons ! 115: u_short htons (hostshort) u_short hostshort; { return hostshort; } ! 116: ! 117: #undef ntohl ! 118: u_long ntohl (netlong) u_long netlong; { return netlong; } ! 119: ! 120: #undef htonl ! 121: u_long htonl (hostlong) u_long hostlong; { return hostlong; } ! 122: ! 123: #endif
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.