94 lines
2.9 KiB
C
94 lines
2.9 KiB
C
/* $Source: /u/mark/src/pax/RCS/port.h,v $
|
|
*
|
|
* $Revision: 1.2 $
|
|
*
|
|
* port.h - defnitions for portability library
|
|
*
|
|
* DESCRIPTION
|
|
*
|
|
* Header for maintaing portablilty across operating system and
|
|
* version boundries. For the most part, this file contains
|
|
* definitions which map functions which have the same functionality
|
|
* but different names on different systems, to have the same name.
|
|
*
|
|
* AUTHORS
|
|
*
|
|
* Mark H. Colburn, NAPS International (mark@jhereg.mn.org)
|
|
* John Gilmore (gnu@hoptoad)
|
|
*
|
|
* Sponsored by The USENIX Association for public distribution.
|
|
*
|
|
* Copyright (c) 1989 Mark H. Colburn.
|
|
* All rights reserved.
|
|
*
|
|
* Redistribution and use in source and binary forms are permitted
|
|
* provided that the above copyright notice and this paragraph are
|
|
* duplicated in all such forms and that any documentation,
|
|
* advertising materials, and other materials related to such
|
|
* distribution and use acknowledge that the software was developed
|
|
* by Mark H. Colburn and sponsored by The USENIX Association.
|
|
*
|
|
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
|
|
* IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
|
|
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
|
|
*/
|
|
|
|
#ifndef _PAX_PORT_H
|
|
#define _PAX_PORT_H
|
|
|
|
/*
|
|
* Everybody does wait() differently. There seem to be no definitions for
|
|
* this in V7 (e.g. you are supposed to shift and mask things out using
|
|
* constant shifts and masks.) In order to provide the functionality, here
|
|
* are some non standard but portable macros. Don't change to a "union wait"
|
|
* based approach -- the ordering of the elements of the struct depends on the
|
|
* byte-type of the machine.
|
|
*/
|
|
|
|
#define TERM_SIGNAL(status) ((status) & 0x7F)
|
|
#define TERM_COREDUMP(status) (((status) & 0x80) != 0)
|
|
#define TERM_VALUE(status) ((status) >> 8)
|
|
|
|
/*
|
|
* String library emulation definitions for the different variants of UNIX
|
|
*/
|
|
|
|
#if defined(USG)
|
|
|
|
# include <string.h>
|
|
# include <memory.h>
|
|
|
|
#else /* USG */
|
|
|
|
/*
|
|
* The following functions are defined here since func.h has no idea which
|
|
* of the functions will actually be used.
|
|
*/
|
|
# ifdef __STDC__
|
|
extern char *rindex(char *, char);
|
|
extern char *index(char *, char);
|
|
extern char *bcopy(char *, char *, unsigned int);
|
|
extern char *bzero(char *, unsigned int);
|
|
extern char *strcat(char *, char *);
|
|
extern char *strcpy(char *, char *);
|
|
# else /* !__STDC__ */
|
|
extern char *rindex();
|
|
extern char *index();
|
|
extern char *bcopy();
|
|
extern char *bzero();
|
|
extern char *strcat();
|
|
extern char *strcpy();
|
|
# endif /* __STDC__ */
|
|
|
|
/*
|
|
* Map ANSI C compatible functions to V7 functions
|
|
*/
|
|
|
|
# define memcpy(a,b,n) bcopy((b),(a),(n))
|
|
# define memset(a,b,n) bzero((a),(n))
|
|
# define strrchr(s,c) rindex(s,c)
|
|
# define strchr(s,c) index(s,c)
|
|
|
|
#endif /* USG */
|
|
#endif /* _PAX_PORT_H */
|