Annotation of coherent/d/usr/bin/pax/shipping/port.h, revision 1.1.1.1

1.1       root        1: /* $Source: /newbits/usr/bin/pax/shipping/port.h,v $
                      2:  *
                      3:  * $Revision: 1.1 $
                      4:  *
                      5:  * port.h - defnitions for portability library
                      6:  *
                      7:  * DESCRIPTION
                      8:  *
                      9:  *     Header for maintaing portablilty across operating system and
                     10:  *     version boundries.  For the most part, this file contains
                     11:  *     definitions which map functions which have the same functionality
                     12:  *     but different names on different systems, to have the same name.
                     13:  *
                     14:  * AUTHORS
                     15:  *
                     16:  *     Mark H. Colburn, NAPS International ([email protected])
                     17:  *     John Gilmore (gnu@hoptoad)
                     18:  *
                     19:  * Sponsored by The USENIX Association for public distribution. 
                     20:  *
                     21:  * Copyright (c) 1989 Mark H. Colburn.
                     22:  * All rights reserved.
                     23:  *
                     24:  * Redistribution and use in source and binary forms are permitted
                     25:  * provided that the above copyright notice and this paragraph are
                     26:  * duplicated in all such forms and that any documentation,
                     27:  * advertising materials, and other materials related to such
                     28:  * distribution and use acknowledge that the software was developed
                     29:  * by Mark H. Colburn and sponsored by The USENIX Association. 
                     30:  *
                     31:  * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
                     32:  * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
                     33:  * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
                     34:  */
                     35: 
                     36: #ifndef _PAX_PORT_H
                     37: #define _PAX_PORT_H
                     38: 
                     39: /*
                     40:  * Everybody does wait() differently.  There seem to be no definitions for
                     41:  * this in V7 (e.g. you are supposed to shift and mask things out using
                     42:  * constant shifts and masks.)  In order to provide the functionality, here
                     43:  * are some non standard but portable macros.  Don't change to a "union wait" 
                     44:  * based approach -- the ordering of the elements of the struct depends on the 
                     45:  * byte-sex of the machine. 
                     46:  */
                     47: 
                     48: #define        TERM_SIGNAL(status)     ((status) & 0x7F)
                     49: #define TERM_COREDUMP(status)  (((status) & 0x80) != 0)
                     50: #define TERM_VALUE(status)     ((status) >> 8)
                     51: 
                     52: /*
                     53:  * String library emulation definitions for the different variants of UNIX
                     54:  */
                     55: 
                     56: #if defined(USG) 
                     57: 
                     58: #   include <string.h>
                     59: /*#   include <memory.h>*/
                     60: 
                     61: #else /* USG */
                     62: 
                     63: /*
                     64:  * The following functions are defined here since func.h has no idea which
                     65:  * of the functions will actually be used.
                     66:  */
                     67: #  if __STDC__
                     68: extern char *rindex(char *, char);
                     69: extern char *index(char *, char);
                     70: extern char *bcopy(char *, char *, unsigned int);
                     71: extern char *bzero(char *, unsigned int);
                     72: extern char *strcat(char *, char *);
                     73: extern char *strcpy(char *, char *);
                     74: #  else /* !__STDC__ */
                     75: extern char *rindex();
                     76: extern char *index();
                     77: extern char *bcopy();
                     78: extern char *bzero();
                     79: extern char *strcat();
                     80: extern char *strcpy();
                     81: #  endif /* __STDC__ */
                     82: 
                     83: /*
                     84:  * Map ANSI C compatible functions to V7 functions
                     85:  */
                     86: 
                     87: #   define memcpy(a,b,n)       bcopy((b),(a),(n))
                     88: #   define memset(a,b,n)       bzero((a),(n))
                     89: #   define strrchr(s,c)                rindex(s,c)
                     90: #   define strchr(s,c)         index(s,c)
                     91: 
                     92: #endif /* USG */
                     93: #endif /* _PAX_PORT_H */

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.