errno.h
#ifdef __cplusplus
extern "C" {
#endif
#ifndef _POSIX_SOURCE
#ifndef H_SCCSID
#include <sccs.h>
#endif /* ! H_SCCSID */
/*
* 5713-AEQ COPYRIGHT IBM CORP 1989
* LICENSED MATERIAL - PROGRAM PROPERTY OF IBM
*/
H_SCCSID(@(#)errno.h 1.12 LCC) /* Modified: 00:07:54 1/12/90 */
/* H_SCCSIDgen1(@(#)errno.afp.h 1.10 AIX) /* Modified: 11:33:27 2/21/89 */
#endif /* NOT _POSIX_SOURCE */
/* @(#)errno.h 7.1 - 87/06/16 - 00:09:58 */
/*
* Copyright (C) 1989, Locus Computing Corporation
* All Rights Reserved
*/
/*
* (C) Copyright IBM Corp. 1989
* All Rights Reserved
* Licensed Materials - Property of IBM
*/
/*
* Error codes
*/
#include <sys/errno.h>
extern int errno;
#ifdef __cplusplus
}
#endif
sys/errno.h
#ifdef __cplusplus
extern "C" {
#endif
/*
* IX/370
* 5667-126
* LICENSED MATERIALS - PROPERTY OF IBM
* (c) Copyright 1985, 1986, 1989 IBM Corp.
* (c) Copyright 1983, 1984, 1985, 1986, 1989 Locus Computing Corporation
* All Rights Reserved
*/
#ifndef _POSIX_SOURCE
#ifndef H_SCCSID
#include <sccs.h>
#endif /* ~H_SCCSID */
H_SCCSID(@(#)errno.h 16.12 LCC) /* Modified: 15:12:59 1/16/90 */
#endif /* NOT _POSIX_SOURCE */
#ifndef _H_ERRNO
#define _H_ERRNO
#ifndef _POSIX_SOURCE
#include <DOPTIONS.h>
#endif /* NOT _POSIX_SOURCE */
/*
* Error codes
*/
#define EPERM 1 /* Operation not permitted */
#define ENOENT 2 /* No such file or directory */
#define ESRCH 3 /* No such process */
#define EINTR 4 /* Interrupted system call */
#define EIO 5 /* Input/Output error */
#define ENXIO 6 /* No such device or address */
#define E2BIG 7 /* Arg list too long */
#define ENOEXEC 8 /* Exec format error */
#define EBADF 9 /* Bad file number */
#define ECHILD 10 /* No child processes */
#define EAGAIN 11 /* Resource temprarily unavailable */
#ifdef _BSD
#define EWOULDBLOCK EAGAIN /* for BSD compatibility */
#endif /* _BSD */
#define ENOMEM 12 /* Not enough space */
#define EACCES 13 /* Permission denied */
#define EFAULT 14 /* Bad address */
#define ENOTBLK 15 /* Block device required */
#define EBUSY 16 /* Resource busy */
#define EEXIST 17 /* File exists */
#define EXDEV 18 /* Improper link */
#define ENODEV 19 /* No such device */
#define ENOTDIR 20 /* Not a directory */
#define EISDIR 21 /* Is a directory */
#define EINVAL 22 /* Invalid argument */
#define ENFILE 23 /* Too many open files in system */
#define EMFILE 24 /* Too many open files */
#define ENOTTY 25 /* Inappropriate I/O control operation */
#define ETXTBSY 26 /* Text file busy */
#define EFBIG 27 /* File too large */
#define ENOSPC 28 /* No space left on device */
#define ESPIPE 29 /* Invalid seek */
#define EROFS 30 /* Read only file system */
#define EMLINK 31 /* Too many links */
#define EPIPE 32 /* Broken pipe */
/* math software */
#define EDOM 33 /* Domain error */
#define ERANGE 34 /* Result too large */
#define ENOMSG 35 /* No message of desired type */
#define EIDRM 36 /* Identifier removed */
#define ECHRNG 37 /* Channel number out of range */
#define EL2NSYNC 38 /* Level 2 not synchronized */
#define EL3HLT 39 /* Level 3 halted */
#define EL3RST 40 /* Level 3 reset */
#define ELNRNG 41 /* Link number out of range */
#define EUNATCH 42 /* Protocol driver not attached */
#define ENOCSI 43 /* No CSI structure available */
#define EL2HLT 44 /* Level 2 halted */
#define EDEADLK 45 /* Record locking deadlock */
#define ENOTREADY 46 /* Device not ready */
#define EWRPROTECT 47 /* Write-protected media */
#define EFORMAT 48 /* Unformatted or incompatible media */
#define ENOLCK 49 /* No locks available */
#define ENOCONNECT 50 /* Cannot establish connection */
#define EBADCONNECT 51 /* Connection down */
#define ESTALE 52 /* Missing file or filesystem */
#define EDIST 53 /* Requests blocked by Administrator */
/* non-blocking and interrupt i/o */
#ifndef _BSD
#define EWOULDBLOCK 54 /* Operation would block */
#endif /* _BSD */
#define EINPROGRESS 55 /* Operation now in progress */
#define EALREADY 56 /* Operation already in progress */
/* ipc/network software */
/* argument errors */
#define ENOTSOCK 57 /* Socket operation on non-socket */
#define EDESTADDRREQ 58 /* Destination address required */
#define EMSGSIZE 59 /* Message too long */
#define EPROTOTYPE 60 /* Protocol wrong type for socket */
#define ENOPROTOOPT 61 /* Protocol not available */
#define EPROTONOSUPPORT 62 /* Protocol not supported */
#define ESOCKTNOSUPPORT 63 /* Socket type not supported */
#define EOPNOTSUPP 64 /* Operation not supported on socket */
#define EPFNOSUPPORT 65 /* Protocol family not supported */
#define EAFNOSUPPORT 66 /* Address family not supported by protocol */
#define EADDRINUSE 67 /* Address already in use */
#define EADDRNOTAVAIL 68 /* Cannot assign requested address */
/* operational errors */
#define ENETDOWN 69 /* Network is down */
#define ENETUNREACH 70 /* Network is unreachable */
#define ENETRESET 71 /* Network dropped connection on reset */
#define ECONNABORTED 72 /* Software caused connection abort */
#define ECONNRESET 73 /* Connection reset by peer */
#define ENOBUFS 74 /* No buffer space available */
#define EISCONN 75 /* Socket is already connected */
#define ENOTCONN 76 /* Socket is not connected */
#define ESHUTDOWN 77 /* Cannot send after socket shutdown */
#define ETIMEDOUT 78 /* Connection timed out */
#define ECONNREFUSED 79 /* Connection refused */
#define EHOSTDOWN 80 /* Host is down */
#define EHOSTUNREACH 81 /* No route to host */
#define ELOOP 85 /* Symbolic link loop */
#define ENAMETOOLONG 86 /* File name too long */
#ifdef _BSD
#define ENOTEMPTY EEXIST
#else /* NOT _BSD */
#define ENOTEMPTY 87 /* Directory not empty */
#endif /* NOT _BSD */
#define EDQUOT 88 /* Disc quota exceeded */
/* errors for System V shared libraries. */
#define ELIBACC 89 /* Shared library cannot be accessed */
#define ELIBBAD 90 /* Shared library format is bad */
#define ELIBSCN 91 /* .lib section in executable is corrupted */
#define ELIBMAX 92 /* Too many shared libraries */
/* error codes for TCF code */
#define ESITEDN1 94 /* Required site is not available */
#define ESITEDN2 95 /* Operation terminated due to site failure */
#define ENOSTORE 96 /* File or working directory is unavailable */
#define ENLDEV 97 /* Not a local device. */
#define EBADST 98 /* Bad site specification */
#define ELDWRG 99 /* Load module not for this machine */
#define ELOCALONLY 100 /* Operation restricted to local site */
#define ELOCK 101 /* Lock conflict */
#define ETABLE 102 /* Miscellaneous system table full */
#define EXGFS 103 /* Improper mount operation requested */
#ifndef _POSIX_SOURCE
#define EJOURNAL 105 /* Undefined journal operation */
#endif /* NOT _POSIX_SOURCE */
#define EPBUSY 106 /* Pack is busy */
#ifndef _POSIX_SOURCE
#define ENSPEC 107 /* */
#define EDLOCK 108 /* */
#endif /* NOT _POSIX_SOURCE */
#define ENOSYS 109 /* Function not implemented */
#ifdef _KERNEL
/*
* The following codes are used only internally by the kernel as return
* codes, to be consistent with the fact that the return code in netmsg's
* is always the value of u.u_error.
*/
#define RQUOTA 113 /* soft quota limit reached */
#define RIBUSY 114 /* inode busy (used for propagation in) */
#define RNOCFLT 115 /* trying to open a specific version when
* there is no conflict */
#define RILOCK 116 /* inode is ILOCKed, and although we have
* waited, it has not unlocked. */
#define RUNSTABLE 117 /* a configuration change has occurred, and
* the new CSS for this gfs is not yet ready
* to process opens */
#define RNOTCSS 118 /* CSS request made at non-CSS site
* (for topchg) */
#define RRMTFRK 119 /* remote fork problem */
#define RSLEEP 120 /* used for remote sleep wakeup */
#define RRETRY 121 /* return after remote sleep indicating to
* redo operation */
#define RWCMIT 122 /* Not doing ss_commit because IWCOMMIT set */
#define RNOTHERE 123 /* Pid you are looking for is not here and its
* whereabouts are unknown (cf. RTRYSITE) */
#define RTRYSITE 124 /* Your pid's not here; try over yonder */
#define RDELAYED 125 /* Delayed response will follow later */
#define RPIPEMP 126 /* on fifo reads -- tells reader to sleep. */
#define RNFS 127 /* operation failed, NFS requires special att.*/
#define RBNDELAY 128 /* operation w/NDELAY would have blocked */
#define RNFSFLOW 129 /* tcf retry nfs operation later */
#define MAXERR 129 /* Largest currently used error number */
/* old names for temporary compatability */
#define EUNSTABLE RUNSTABLE
#define ENOCFLT RNOCFLT
#define ENOTCSS RNOTCSS
#define EIBUSY RIBUSY
#define EILOCK RILOCK
/* classify error numbers */
#define ERR_NORM 1 /* can occur without any "real" error */
#define ERR_PDEP 2 /* permanent, site dependent error */
#define ERR_TDEP 3 /* temporary, site dependent error */
#define ERR_TIND 4 /* temporary, site independent error */
#define ERR_PIND 5 /* permanent, site independent error */
#define ERR_DEFAULT 6 /* unexpected error, complain */
#define ERR_RETRY 7 /* transient error, retry operation */
#endif /* _KERNEL */
#endif /* NOT _H_ERRNO */
#ifdef __cplusplus
void perror(const char*);
extern int sys_nerr;
extern char *sys_errlist[];
}
#endif
sys/signal.h
#ifdef __cplusplus
extern "C" {
#endif
#ifndef _POSIX_SOURCE
#ifndef H_SCCSID
#include <sccs.h>
#endif /* ! H_SCCSID */
H_SCCSID(@(#)signal.h 16.21 AIX) /* Modified 6/26/91 21:47:02 */
#endif /* NOT _POSIX_SOURCE */
/*
* 5713-AEQ COPYRIGHT IBM CORP 1989
* LICENSED MATERIAL - PROGRAM PROPERTY OF IBM
*/
#ifndef _H_SIGNAL /* else we've already been included */
#define _H_SIGNAL
#include <sys/scontext.h>
/**********************************************************************
SIGNAL NUMBERS
**********************************************************************/
#ifndef _POSIX_SOURCE
#define NSIG _NSIG
#endif /* ! _POSIX_SOURCE */
#define SIGHUP 1 /* hangup */
#define SIGINT 2 /* interrupt (probably user typed intr key) */
#define SIGQUIT 3 /* quit */
#define SIGILL 4 /* illegal instruction */
#define SIGTRAP 5 /* trace trap */
#ifndef _POSIX_SOURCE
#define SIGIOT 6 /* IOT instruction */
#endif /* NOT _POSIX_SOURCE */
#define SIGABRT 6 /* used by abort, replacing old IOT in the future */
#define SIGEMT 7 /* EMT instruction */
#define SIGFPE 8 /* floating point exception */
#define SIGKILL 9 /* kill (may not be caught, blocked, or ignored) */
#define SIGBUS 10 /* bus error */
#define SIGSEGV 11 /* segmentation violation (bad access to data) */
#define SIGSYS 12 /* bad argument to system call */
#define SIGPIPE 13 /* write on a pipe with no one to read it */
#define SIGALRM 14 /* alarm clock */
#define SIGTERM 15 /* software termination signal */
/* signal 16 is also used by BSD in the vtrace system call */
#define SIGURG 16 /* urgent condition on IO channel */
#define SIGSTOP 17 /* stop (may not be caught, blocked, or ignored) */
#define SIGTSTP 18 /* interactive stop signal from TTY */
#define SIGCONT 19 /* continue if stopped (may not be ignored) */
#define SIGCHLD 20 /* A child has stopped or exited */
#ifndef _POSIX_SOURCE
#define SIGCLD 20 /* death of a child, Sys V style */
#endif /* NOT _POSIX_SOURCE */
#define SIGTTIN 21 /* Read of control TTY attempted from background */
#define SIGTTOU 22 /* Write to control TTY attempted from background */
#define SIGIO 23 /* input/output possible or complete */
#ifndef _POSIX_SOURCE
#define SIGPOLL SIGIO /* selectable event pending (like SIGIO) */
#endif /* NOT _POSIX_SOURCE */
#define SIGXCPU 24 /* exceeded CPU time limit */
#define SIGXFSZ 25 /* exceeded file size limit */
/* signal 26 reserved */
#define SIGMSG 27 /* HFT input data pending */
#define SIGWINCH 28 /* window size change */
#define SIGPWR 29 /* power failure imminent (save your data) */
#define SIGUSR1 30 /* user defined signal 1 */
#define SIGUSR2 31 /* user defined signal 2 */
#define SIGPROF 32 /* profiling time alarm */
#define SIGDANGER 33 /* system crash imminent */
#define SIGVTALRM 34 /* virtual time alarm */
#define SIGMIGRATE 35 /* migrate process to another CPU */
#define SIGPRE 36 /* programming error */
/* signals 37-59 reserved */
#define SIGGRANT 60 /* HFT monitor mode granted */
#define SIGRETRACT 61 /* HFT monitor mode retracted */
#define SIGSOUND 62 /* HFT sound sequence has completed */
/* signal 63 reserved */
#ifndef _POSIX_SOURCE
#define SIGAIO SIGIO /* compatibility */
#define SIGIOINT SIGIO
#define SIGPTY SIGIO
#endif /* NOT _POSIX_SOURCE */
/**********************************************************************
COMPATIBILITY ASSISTANCE
**********************************************************************/
#if defined(_BSD) || defined(__RT) || defined(_KERNEL)
#define __SIGVOID int
#else /* new AIX */
#define __SIGVOID void
#endif /* _BSD or __RT or _KERNEL */
/**********************************************************************
SIGACTION STUFF
**********************************************************************/
#ifndef _POSIX_SOURCE
#define SIGSETSZ _SIGSETSZ
#endif
struct sigaction { /* signal handlers are specified thus */
__SIGVOID (*sa_handler)();
int sa_flags;
sigset_t sa_mask;
};
#ifndef _POSIX_SOURCE
/*=== flag bits for sa_flags ===*/
#define SA_ONSTACK 0x1 /* handle signal on alternate stack */
#define SA_OLDSTYLE 0x2 /* reset handler, don't block while handling */
#define SA_RESTART 0x4 /* restart slow syscalls interrupted by sig */
#endif /* NOT _POSIX_SOURCE */
#define SA_NOCLDSTOP 0x8 /* receive SIGCLD only upon a child's death */
/*=== sigprocmask() operation codes ===*/
#ifndef _POSIX_SOURCE
#define SA_SIGSETSTYLE 0x80 /* for the SVR3 compatibility */
#endif /* NOT _POSIX_SOURCE */
#define SIG_BLOCK 0 /* add given signals to list of those blocked */
#define SIG_UNBLOCK 1 /* remove given signals from blocked list */
#define SIG_SETMASK 2 /* block (prevent delivery of) given signals */
#define SIG_ERR ((__SIGVOID(*)())-1) /* error from signal() */
#define SIG_DFL ((__SIGVOID (*)())0) /* default action */
#define SIG_IGN ((__SIGVOID (*)())1) /* ignore signal */
#ifndef _POSIX_SOURCE
#define BADSIG SIG_ERR
#endif /* NOT _POSIX_SOURCE */
#ifndef _KERNEL /* ::::::::::::::::::::::::::::::::::::::::::::::::::: */
extern int sigaction(int, struct sigaction*, struct sigaction*),
sigprocmask(int, const sigset_t*, sigset*),
sigsuspend(sigset_t*);
extern int sigemptyset(sigset_t*),
sigaddset(sigset_t*, int),
sigdelset(sigset_t*, int),
sigfillset(sigset_t*);
extern int sigismember(sigset_t*, int),
sigpending(sigset_t*),
kill(int, int);
#ifndef _POSIX_SOURCE
extern int sigstack(struct sigstack*, struct sigstack*),
sigreturn(); /* applications shouldn't use sigreturn() */
#define siginitset sigemptyset /* grunt */
#define SV_INTERRUPT 0x800 /* used by bsd compatibility routines */
#define SV_ONSTACK SA_ONSTACK
#define SIG_STK SA_ONSTACK
#define SIG_STD SA_OLDSTYLE /* RT compatible */
#define sv_onstack sv_flags /* ditto */
struct sigvec {
__SIGVOID (*sv_handler)(); /* handler routine */
int sv_mask; /* mask while in handler */
int sv_flags; /* control flags #defined above */
};
extern int sigvec(int, struct sigvec*); /* BSD/RT compatible sigvec() */
extern int sigblock(int); /* BSD/RT compatible sigblock() */
extern int sigsetmask(int); /* BSD/RT compatible sigsetmask() */
extern int sigpause(int); /* BSD/RT compatible sigpause() */
extern void (*sigset(int, void(*)()))();/* SVR3 compatible sigset() */
extern int sighold(int); /* SVR3 compatible sighold() */
extern int sigrelse(int); /* SVR3 compatible sigrelse() */
extern int sigignore(int); /* SVR3 compatible sigignore() */
extern void SIG_HOLD(); /* special placeholding library routine used
when blocking a signal in SVR3 compatible way */
extern __SIGVOID (*signal(int,void(*)()))(); /* BSD or SVR3 compatability interface */
extern int siginterrupt(int, int); /* BSD43 compatible siginterrupt() */
#define sigmask(m) (1L << ((m)-1)) /* signal number --> mask for sigblock */
#endif /* NOT _POSIX_SOURCE */
#endif /* NOT _KERNEL ::::::::::::::::::::::::::::::::::::::::::::::::::::: */
/**********************************************************************
SIGNAL STACK AND HANDLER CONTEXT INFO
**********************************************************************/
/* Structure used in sigstack call.
*/
#ifndef _POSIX_SOURCE
struct sigstack {
char *ss_sp; /* signal stack pointer */
int ss_onstack; /* current status */
};
#endif /* NOT _POSIX_SOURCE */
#ifndef _POSIX_SOURCE
/*
* This #define is for programs using the small signal interface
* they only know about the element sc_mask, and only know about
* the first 32 signals
*/
#define sc_mask sc_smask.sigs[0]
typedef struct ksigmask { /* used in u struct */
unsigned long sigs[SIGSETSZ];
} ksigmask_t;
#ifdef _KERNEL
#define SIGNUMMASK 0377 /* to extract pure signal number */
#define SIGSPERLONG 32 /* number of signals represented */
/* in a non-extended signal mask */
#undef sigmask
#define sigmask(m) (1L << ((m)-1)) /* signal number --> mask */
/* u struct doesn't store 'setsize' field of sigset_t, just the mask words;
* so we use this macro to make copying masks in and out of a sigset_t
* easier. ksigmask_t is used in the kernel only.
*
* (The various xxxSIGINMASK macros cleverly work with both sigset_t's
* and ksigmask_t's, thanks to a not-entirely-accidental similarity of
* field names.)
*/
#define MASKPART(x) (*((ksigmask_t*)((x).sigs)))
/***************************** Compatibility stuff soon to disappear... **/
#define xsigmask_t ksigmask_t
#define lowsigs sigs[0]
#define highsigs sigs[1]
struct sigvec {
__SIGVOID (*sv_handler)(); /* handler routine */
long sv_mask; /* mask while in handler */
int sv_flags; /* control flags #defined above */
};
typedef struct xsigvec { /* compatability, will disappear soon */
__SIGVOID (*xsv_handler)();
ksigmask_t xsv_mask;
int xsv_flags;
} xsigvec_t;
extern int signew2old();
extern int masknew2old();
extern int maskold2new();
/**********************************************************************/
#endif /* _KERNEL */
/*
* Macros for testing if a signal is set in an extended signal mask,
* setting a signal in an extended signal mask, and clearing a signal
* from an extended signal mask. 32 signals fit into a single long.
*
* These macros should NOT be used in new application code. Applications
* should use the siginitset(), sigaddset(), sigdelset(), sigfillset(),
* and sigismember() functions.
*
* These SIGIN macros could be faster, but have been recoded this way to
* pass through the metaware compiler without engendering silly and annoying
* diagnostics about negative shift values in code which is never executed
* and which could be elided at compile time in most cases (constant signal
* numbers).
*
* Later... on the 386 the compiler was generating very prolix, slow
* code for these macros, so assembly language kernel library support has
* been added. Perhaps we'll do this for other machines too.
*/
#if defined(_I386) /* || others? */
#define SIGISINMASK(mask,sig) _siginmask(&MASKPART(mask),(sig))
#define SETSIGINMASK(mask,sig) _addinmask(&MASKPART(mask),(sig))
#define CLEARSIGINMASK(mask,sig) _delinmask(&MASKPART(mask),(sig))
#else /* no library support */
#define SIGISINMASK(mask, sig) \
((mask).sigs[(sig) > 32 ? 1 : 0] & \
sigmask((sig) > 32 ? ((sig) - 32) : (sig)))
#define SETSIGINMASK(mask, sig) { \
(mask).sigs[(sig) > 32 ? 1 : 0] |= \
sigmask((sig) > 32 ? (sig)-32 : (sig)); \
}
#define CLEARSIGINMASK(mask, sig) { \
(mask).sigs[(sig) > 32 ? 1 : 0] &= \
~sigmask((sig) > 32 ? (sig)-32 : (sig)); \
}
#endif /* _I386 */
#define INITSIGMASK(mask) { \
(mask).sigs[0] = 0L; \
(mask).sigs[1] = 0L; \
}
#define ALLSIGMASK(mask) { \
(mask).sigs[0]= 0xffffffffL; \
(mask).sigs[1]= 0xffffffffL; \
}
#define COPYSIGMASK(mask1, mask2) { \
(mask1).sigs[0] = (mask2).sigs[0]; \
(mask1).sigs[1] = (mask2).sigs[1]; \
}
#define ANDSIGMASK(mask1, mask2) { \
(mask1).sigs[0] &= (mask2).sigs[0]; \
(mask1).sigs[1] &= (mask2).sigs[1]; \
}
#define AND3SIGMASK(mask0, mask1, mask2) { \
(mask0).sigs[0] = (mask1).sigs[0] & (mask2).sigs[0]; \
(mask0).sigs[1] = (mask1).sigs[1] & (mask2).sigs[1]; \
}
#define ORSIGMASK(mask1, mask2) { \
(mask1).sigs[0] |= (mask2).sigs[0]; \
(mask1).sigs[1] |= (mask2).sigs[1]; \
}
#define OR3SIGMASK(mask0, mask1, mask2) { \
(mask0).sigs[0] = (mask1).sigs[0] | (mask2).sigs[0]; \
(mask0).sigs[1] = (mask1).sigs[1] | (mask2).sigs[1]; \
}
#define ANDNOTSIGMASK(mask1, mask2) { \
(mask1).sigs[0] &= ~((mask2).sigs[0]); \
(mask1).sigs[1] &= ~((mask2).sigs[1]); \
}
#endif /* NOT _POSIX_SOURCE */
#endif /* NOT _H_SIGNAL */
#ifdef __cplusplus
}
#endif
sys/stat.h
#ifdef __cplusplus
extern "C" {
#endif
/*
* IX/370
* 5667-126
* LICENSED MATERIALS - PROPERTY OF IBM
* (c) Copyright 1985, 1986, 1989 IBM Corp.
* (c) Copyright 1983, 1984, 1985, 1986, 1989 Locus Computing Corporation
* All Rights Reserved
*/
#ifndef _POSIX_SOURCE
#ifndef H_SCCSID
#include <sccs.h>
#endif /* ~H_SCCSID */
H_SCCSID(@(#)stat.h 16.7 LCC) /* Modified: 19:52:20 1/11/90 */
#endif /* NOT _POSIX_SOURCE */
#ifndef _H_STAT
#define _H_STAT
#include <sys/types.h>
struct stat
{
dev_t st_dev;
ino_t st_ino;
mode_t st_mode;
nlink_t st_nlink;
u_short_t st_spare0;
uid_t st_uid;
gid_t st_gid;
dev_t st_rdev;
off_t st_size;
time_t st_atime;
u_long_t st_spare1;
time_t st_mtime;
u_long_t st_spare2;
time_t st_ctime;
u_long_t st_spare3;
u_long_t st_blksize;
u_long_t st_blocks;
u_long_t st_gen;
u_long_t st_type;
u_long_t st_vfs;
u_long_t st_flag;
u_long_t st_cmtcnt;
fstore_t st_fstore;
u_long_t st_version;
siteno_t st_css;
siteno_t st_ss;
siteno_t st_rdevsite;
short st_spare4;
long st_nid;
uid_t st_uid_raw;
gid_t st_gid_raw;
u_long_t st_uid_rev_tag;
u_long_t st_gid_rev_tag;
};
#ifndef _POSIX_SOURCE
/*
* Type definitions
*/
#define VNON 0
#define VBAD 1
#define VREG 2
#define VDIR 3
#define VHDIR 4
#define VBLK 5
#define VCHR 6
#define VLNK 7
#define VSOCK 8
#define VFIFO 9
#define VMPC 10
/*
* Defines to tell whether or not a file or directory
* is mounted upon, and whether it is local or remote.
*/
#define FS_NOFLAG 0x0 /* Clear flag */
#define FS_VMP 0x1 /* Virtual mount point */
#define FS_REMOTE 0x2 /* Remote file primary copy
* not local */
#define FS_MOUNT FS_VMP
#define FS_SHORT 0x4000
#define STATSIZE \
(((int)(char *)&(((struct stat *)0)->st_spare4)) + (sizeof(short)))
/*
* Definitions for rev_tags
*/
#define IDTAG_CALLER 1
#define IDTAG_OTHER 2
#define IDTAG_SOMEONE 3
#define IDTAG_NO_ONE 4
#define FULLSTATSIZE \
(((int)(char *)&(((struct stat *)0)->st_gid_rev_tag)) + (sizeof(u_long)))
#define STX_LINK 0x0001
#define STX_MOUNT 0x0002
#define STX_HIDDEN 0x0004
#define STX_TRANS 0x0000
#define STX_TRANS_NONE 0x0008
#define STX_TRANS_OTHER 0x0010
#endif /* ! _POSIX_SOURCE */
#define _S_IFMT 0x3000f000 /* type of file */
#define _S_IFDIR 0x4000 /* directory */
#define S_ISDIR(m) (((m) & (_S_IFMT)) == (_S_IFDIR))
#define _S_IFCHR 0x2000 /* character special */
#define S_ISCHR(m) (((m) & (_S_IFMT)) == (_S_IFCHR))
#define _S_IFBLK 0x6000 /* block special */
#define S_ISBLK(m) (((m) & (_S_IFMT)) == (_S_IFBLK))
#define _S_IFREG 0x8000 /* regular */
#define S_ISREG(m) (((m) & (_S_IFMT)) == (_S_IFREG))
#define _S_IFIFO 0x1000 /* named pipe */
#define S_ISFIFO(m) (((m) & (_S_IFMT)) == (_S_IFIFO))
#ifndef _POSIX_SOURCE
#define S_IFMT _S_IFMT
#define S_IFDIR _S_IFDIR
#define S_IFCHR _S_IFCHR
#define S_IFBLK _S_IFBLK
#define S_IFREG _S_IFREG
#define S_IFIFO _S_IFIFO
#define S_IFLNK 0xa000 /* symbolic link */
#define S_ISLNK(m) (((m) & (S_IFMT)) == (S_IFLNK))
#define S_IFSOCK 0xc000 /* named socket */
#define S_ISSOCK(m) (((m) & (S_IFMT)) == (S_IFSOCK))
#define S_IFMPX (S_IFCHR|S_ISVTX) /* multiplex character special file */
#define S_ISMPX(m) (((m) & (S_IFMT|S_ISVTX)) == (S_IFMPX))
#define S_IHIDDEN 0x8000000 /* hidden directory */
#define S_ISHIDDEN(m) (((m) & (S_IFMT|S_IHIDDEN)) == (S_IFDIR|S_IHIDDEN))
#endif /* ! _POSIX_SOURCE */
#define S_ISUID 04000 /* set user id on execution */
#define S_ISGID 02000 /* set group id on execution */
#ifndef _POSIX_SOURCE
#define S_ENFMT S_ISGID /* record locking enforcement flag */
#define S_ISVTX 01000 /* save swapped text even after use */
#define S_IREAD 00400 /* read permission, owner */
#define S_IWRITE 00200 /* write permission, owner */
#define S_IEXEC 00100 /* execute/search permission, owner */
/* /usr/group definitions */
#define S_PERM 00777 /* all permission fields */
#endif /* ! _POSIX_SOURCE */
#define S_IRWXU 00700 /* read,write,execute permission: owner */
#define S_IRUSR 00400 /* read permission: owner */
#define S_IWUSR 00200 /* write permission: owner */
#define S_IXUSR 00100 /* execute/search permission: owner */
#define S_IRWXG 00070 /* read,write,execute permission: group */
#define S_IRGRP 00040 /* read permission: group */
#define S_IWGRP 00020 /* write permission: group */
#define S_IXGRP 00010 /* execute/search permission: group */
#define S_IRWXO 00007 /* read,write,execute permission: other */
#define S_IROTH 00004 /* read permission: other */
#define S_IWOTH 00002 /* write permission: other */
#define S_IXOTH 00001 /* execute/search permission: other */
#ifndef _KERNEL
extern mode_t umask(mode_t);
extern int mkdir(const char*, mode_t),
mkfifo(const char*, mode_t),
stat(const char*, struct stat*),
fstat(int, struct stat*),
chmod(const char*, mode_t);
#endif /* !_KERNEL */
#endif /* ~_H_STAT */
#ifdef __cplusplus
}
#endif
sys/ioctl.h
#ifdef __cplusplus
extern "C" {
#endif
/*
* IX/370
* 5667-126
* LICENSED MATERIALS - PROPERTY OF IBM
* (c) Copyright 1985, 1986, 1989 IBM Corp.
* (c) Copyright 1983, 1984, 1985, 1986, 1989 Locus Computing Corporation
* All Rights Reserved
*/
#ifndef _POSIX_SOURCE
#ifndef H_SCCSID
#include <sccs.h>
#endif /* !H_SCCSID */
H_SCCSID(@(#)ioctl.h 1.2 IBM AIX) /* Modified: 20:01:56 7/15/92 */
#endif /* ! _POSIX_SOURCE */
#ifndef _H_IOCTL
#define _H_IOCTL
#ifndef _POSIX_SOURCE
#include <sys/ioctlcmd.h>
#include <sys/types.h>
#include <sgtty.h>
/*
** Structures definitions for ioctl args
*/
/* tty control character stuff */
struct tchars {
char t_intrc; /* interrupt */
char t_quitc; /* quit */
char t_startc; /* start output */
char t_stopc; /* stop output */
char t_eofc; /* end-of-file */
char t_brkc; /* input delimiter (like nl) */
};
struct ltchars {
char t_suspc; /* stop process signal */
char t_dsuspc; /* delayed stop process signal */
char t_rprntc; /* reprint line */
char t_flushc; /* flush output (toggles) */
char t_werasc; /* word erase */
char t_lnextc; /* literal next character */
};
struct ttypagestat {
int tps_length; /* screen length (vertical) */
int tps_lpos; /* current vertical position */
char tps_statc; /* show system status info */
char tps_pagec; /* show next screenful */
char tps_pgoffc; /* ignore paging till next input */
char tps_flag; /* page the screen even in cbreak */
};
#ifdef _MBCS
/*
* define a codeset structure template
*/
struct tcset {
u_short tdc_len; /* length of table to be read/written */
charlen_t tdc_codeset[CODESIZE];
};
#endif /* _MBCS */
/*
Default control characters:
Some of these defaults are duplicated in termio.h, namely,
CUNDEF, CINTR, CQUIT, CEOF, CSTART, and CSTOP. If you change any of
these (I really doubt that anyone will want to...), make sure
that termio.h gets exact duplicates, otherwise cpp will complain
about multiple definitions whenever we compile the kernel.
*/
#define CTRL(c) ('c'&037)
#define CUNDEF 0377
#define CINTR 0177 /* DEL */
#define CQUIT 026 /* cntl v */
#define CEOF 04 /* cntl d */
#define CSTART 021 /* cntl q */
#define CSTOP 023 /* cntl s */
#define CEOT CEOF
#define CBRK CUNDEF
#define CSUSP CTRL(z)
#define CDSUSP CTRL(y)
#define CRPRNT CTRL(r)
#define CFLUSH CTRL(o)
#define CWERASE CTRL(w)
#define CLNEXT CUNDEF
#define CSTAT CTRL(t)
#define CPAGE (' ')
#define CPGOFF CTRL(m)
/* disk partition stuff */
struct dkpart {
long dk_numblks; /* number of sectors in partition */
long dk_cyloff; /* cylinder where partition starts */
};
/* disk partition table ioctl commands */
#define DKGETPART _IOR(d, 0, struct dkpart) /* get disk partition entry */
#define DKSETPART _IOW(d, 1, struct dkpart) /* set disk partition entry */
#endif /* ! _POSIX_SOURCE */
/*
** Ioctl commands:
*/
/* Window/terminal size structure.
* This information is stored by the kernel
* in order to provide a consistent interface,
* but is not used by the kernel.
*
* Type are "unsigned short" so that types.h not required.
*/
#ifdef _POSIX_SOURCE
struct _Winsize
#else
struct winsize
#endif
{
unsigned short ws_row; /* rows, in characters */
unsigned short ws_col; /* columns, in characters */
unsigned short ws_xpixel; /* horizontal size, pixels */
unsigned short ws_ypixel; /* vertical size, pixels */
};
#ifndef _POSIX_SOURCE
/*
* Pun for SUN.
*/
struct ttysize {
unsigned short ts_lines;
unsigned short ts_cols;
unsigned short ts_xxx;
unsigned short ts_yyy;
};
#define TIOCGSIZE TIOCGWINSZ
#define TIOCSSIZE TIOCSWINSZ
#ifndef NO_AUSTIN_HOOKS
/* ******************************* AUSTIN HOOK ************************ */
struct hfscreen {
unsigned short screen[25][80];
};
struct hfcurpos {
unsigned short row;
unsigned short column;
};
/* subcodes for HFSKEP ioctl */
#define KEPOPEN 0x01
#define KEPCLOSE 0x02
#define KEPIOCTL 0x03
#define KEPREAD 0x04
#define KEPWRITE 0x05
#define KEPRDSLP 0x06
/* ******************************************************************** */
#endif
/* file control ioctl commands */
#define FIOCLEX _ION(f, 1) /* set exclusive use on fd */
#define FIONCLEX _ION(f, 2) /* remove exclusive use */
#define FIOGETOWN _IOR(f, 123, int) /* 4.2: get owner */
#define FIOSETOWN _IOW(f, 124, int) /* 4.2: set owner */
#define FIOASYNC _IOW(f, 125, int) /* 4.2: set/clr async i/o */
#define FIONBIO _IOW(f, 126, int) /* 4.2: set/clr non-blk i/o */
#define FIONREAD _IOR(f, 127, long) /* get # bytes to read */
/* tty ioctl commands */
#define TIOCGETD _IOR(t, 0, int) /* get line discipline */
#define TIOCSETD _IOW(t, 1, int) /* set line discipline */
#define TIOCHPCL _ION(t, 2) /* hang up on last close */
#define TIOCMODG _IOR(t, 3, int) /* get modem control state */
#define TIOCMODS _IOW(t, 4, int) /* set modem control state */
#define TIOCM_LE 0001 /* line enable */
#define TIOCM_DTR 0002 /* data terminal ready */
#define TIOCM_RTS 0004 /* request to send */
#define TIOCM_ST 0010 /* secondary transmit */
#define TIOCM_SR 0020 /* secondary receive */
#define TIOCM_CTS 0040 /* clear to send */
#define TIOCM_CAR 0100 /* carrier detect */
#define TIOCM_RNG 0200 /* ring */
#define TIOCM_DSR 0400 /* data set ready */
#define TIOCM_RI TIOCM_RNG /* ring (alternate) */
#define TIOCM_CD TIOCM_CAR /* carrier detect (alternate) */
#define TIOCGETP _IOR(t, 8, struct sgttyb) /* get params -- gtty */
#define TIOCSETP _IOW(t, 9, struct sgttyb) /* set params -- stty */
#define TIOCSETN _IOW(t, 10, struct sgttyb) /* set, but no flushtty */
#define TIOCOSM _IOR(t, 11, int) /* osm logging allowed */
#define TIOCNOSM _IOR(t, 12, int) /* osm logging disallowed */
#define TIOCEXCL _ION(t, 13) /* set exclusive use of tty */
#define TIOCNXCL _ION(t, 14) /* reset exclusive use of tty */
#define TIOCFLUSH _IOW(t, 16, int) /* flush buffers */
#define TIOCSETC _IOW(t, 17, struct tchars) /* set special chars */
#define TIOCGETC _IOR(t, 18, struct tchars) /* get special chars */
#ifdef _MBCS
#define TIOCSCLTBL 0x00007417 /* _IOW(t, 23)
set codeset info. */
#define TIOCGCLTBL 0x00007418 /* _IOR(t, 24
get codeset info. */
#endif /* _MBCS */
#if defined(_BSD) && !defined(KERNEL)
#define CRTBS 0x00010000 /* do backspacing for crt */
#define PRTERA 0x00020000 /* \ ... / erase */
#define CRTERA 0x00040000 /* " \b " to wipe out char */
#define TILDE 0x00080000 /* hazeltine tilde kludge */
#define MDMBUF 0x00100000 /* start/stop output on carrier intr */
#define LITOUT 0x00200000 /* literal output */
#define TOSTOP 0x00400000 /* SIGSTOP on background output */
#define FLUSHO 0x00800000 /* flush output to terminal */
#define NOHANG 0x01000000 /* no SIGHUP on carrier drop */
#define L001000 0x02000000
#define CRTKIL 0x04000000 /* kill line with " \b " */
#define PASS8 0x08000000
#define CTLECH 0x10000000 /* echo control chars as ^X */
#define PENDIN 0x20000000 /* tp->t_rawq needs reread */
#define DECCTQ 0x40000000 /* only ^Q starts after ^S */
#define NOFLSH 0x80000000 /* no output flush on signal */
#endif /* _BSD && !KERNEL */
#define TIOCLBIS _IOW(t, 127, int) /* bis local mode bits */
#define TIOCLBIC _IOW(t, 126, int) /* bic local mode bits */
#define TIOCLSET _IOW(t, 125, int) /* set entire local mode word */
#define TIOCLGET _IOR(t, 124, int) /* get local modes */
#define TIOCSBRK _ION(t, 123) /* set break bit */
#define TIOCCBRK _ION(t, 122) /* clear break bit */
#define TIOCSDTR _ION(t, 121) /* set data terminal ready */
#define TIOCCDTR _ION(t, 120) /* clear data terminal ready */
#define TIOCGPGRP _IOR(t, 119, long) /* get pgrp of tty */
#define TIOCSPGRP _IOW(t, 118, long) /* set pgrp of tty */
#define TIOCSLTC _IOW(t, 117, struct ltchars) /* set bsd special chars */
#define TIOCGLTC _IOR(t, 116, struct ltchars) /* get bsd special chars */
#define TIOCOUTQ _IOR(t, 115, int) /* output queue size */
#define TIOCSTI _IOW(t, 114, char) /* simulate terminal input */
#define TIOCNOTTY _ION(t, 113) /* void tty association */
#define TIOCPKT _IOW(t, 112, int) /* 4.2: pty: set/clr pkt mode */
#define TIOCPKT_DATA 0x00 /* data packet */
#define TIOCPKT_FLUSHREAD 0x01 /* flush packet */
#define TIOCPKT_FLUSHWRITE 0x02 /* flush packet */
#define TIOCPKT_STOP 0x04 /* stop output */
#define TIOCPKT_START 0x08 /* start output */
#define TIOCPKT_NOSTOP 0x10 /* no more ^S, ^Q */
#define TIOCPKT_DOSTOP 0x20 /* now do ^S ^Q */
#define TIOCSTOP _ION(t, 111) /* 4.2: stop output, like ^S */
#define TIOCSTART _ION(t, 110) /* 4.2: start output, like ^Q */
#define TIOCMSET _IOW(t, 109, int) /* set all modem bits */
#define TIOCMBIS _IOW(t, 108, int) /* bis modem bits */
#define TIOCMBIC _IOW(t, 107, int) /* bic modem bits */
#define TIOCMGET _IOR(t, 106, int) /* get all modem bits */
#define TIOCREMOTE _IOW(t, 105, int) /* 4.2: remote input editing */
#ifdef _POSIX_SOURCE
#define TIOCGWINSZ _IOR(t, 104, struct _Winsize) /* get window size */
#define TIOCSWINSZ _IOW(t, 103, struct _Winsize) /* set window size */
#else
#define TIOCGWINSZ _IOR(t, 104, struct winsize) /* get window size */
#define TIOCSWINSZ _IOW(t, 103, struct winsize) /* set window size */
#endif
#define TIOCUCNTL _IOW(t, 102, int) /* pty set/clr usr cntrl mode */
#define UIOCCMD(n) _IO(u, n) /* usr cntl op "n" */
#define TIOCRESET _ION(t, 101) /* LCC: reset tty structure */
#define TIOCSCONS _ION(t, 104) /* 4.2: Select console line */
#define TIOCGPAGE _IOR(t, 64, struct ttypagestat) /* get page/stat info */
#define TIOCSPAGE _IOW(t, 65, struct ttypagestat) /* set page/stat info */
#define BBNTTNO (('b'<<8)|1) /* rfg:bbn tty empty? */
#define OTTYDISC 0 /* old, v7 std tty driver */
#define NETLDISC 1 /* line discip for berk net */
#define NTTYDISC 2 /* new tty discipline */
/* SPECIAL BSD/SYSV MERGE IOCTL COMMANDS */
/* the following two values are reserved and noted as such in termio.h */
#define TCSETPSX (TIOC|36)
#define TCGETPSX (TIOC|37)
/*
* Additional tty mode flags for 4.[12] bsd
*/
#define LCRTBS 0000001 /* correct backspacing for crt */
#define LPRTERA 0000002 /* printing terminal \ ... / erase */
#define LCRTERA 0000004 /* do "\b \b" to wipe out character */
#define LTILDE 0000010 /* IIASA - hazeltine tilde kludge */
#define LMDMBUF 0000020 /* IIASA - start/stop output on carrier intr */
#define LLITOUT 0000040 /* IIASA - suppress any output translations */
#define LTOSTOP 0000100 /* send stop for any background tty output */
#define LFLUSHO 0000200 /* flush output sent to terminal */
#define LNOHANG 0000400 /* IIASA - don't send hangup on carrier drop */
#define LETXACK 0001000 /* IIASA - diablo style buffer hacking */
#define LCRTKIL 0002000 /* erase whole line on kill with "\b \b" */
#define LPASS8 0004000 /* allow all 8 bits to pass through on input */
#define LCTLECH 0010000 /* echo control characters as ^X */
#define LPENDIN 0020000 /* tp->t_rawq is waiting to be reread */
#define LDECCTQ 0040000 /* only ^Q starts after ^S */
#define LNOFLSH 0100000 /* disable flush after signal */
#define uclaltchars ttypagestat
#define ut_length tps_length
#define ut_lpos tps_lpos
#define ut_statc tps_statc
#define ut_pagec tps_pagec
#define ut_npagec tps_pgoffc
#define ut_pgcbrk tps_flag
#define TIOGUCLA TIOCGPAGE
#define TIOSUCLA TIOCSPAGE
/*
* Additional flags for terminal paging
*/
#define PGCBRK 0001 /* enable page-stop even in cbreak mode */
#define PGBELL 0002 /* ring bell on full page stop */
#define ERASBELL 0004 /* ring bell on attempted erase-past-prompt */
/* State bits don't really belong here, but shucks .... */
#define PAGESTOP 0010 /* state bit: tty is stopped on a full page */
#define PG0LPOS 0020 /* state bit: last page-start set t_lpos = 0 */
#define PG_ENB 0040 /* paging enabled (if length is also > 0) */
/*
* General device I/O controls
*/
#define DIOCONLINE _ION(D, 0) /* turn device on-line */
#define DIOCOFFLINE _ION(D, 1) /* turn device off-line */
#define DIOCRESET _ION(D, 2) /* reset the device */
#ifdef b370
/*
* 370 device I/O controls
*/
#define DEVADDR _ION(D, 100) /* virtual address of this device */
#endif /* b370 */
/*
* osm device I/O controls
*/
#define OSMIOC_WRITE_ON _ION(O, 0) /* include console writes */
#define OSMIOC_WRITE_OFF _ION(O, 1) /* exclude console writes */
#define OSMIOC_ECHO_ON _ION(O, 2) /* include input echoes */
#define OSMIOC_ECHO_OFF _ION(O, 3) /* exclude input echoes */
/* socket i/o controls */
#define SIOCSHIWAT _IOW(s, 0, int) /* set high watermark */
#define SIOCGHIWAT _IOR(s, 1, int) /* get high watermark */
#define SIOCSLOWAT _IOW(s, 2, int) /* set low watermark */
#define SIOCGLOWAT _IOR(s, 3, int) /* get low watermark */
#define SIOCATMARK _IOR(s, 7, int) /* at oob mark? */
#define SIOCSPGRP _IOW(s, 8, int) /* set process group */
#define SIOCGPGRP _IOR(s, 9, int) /* get process group */
#define SIOCADDRT _IOW(r, 10, struct rtentry) /* add route */
#define SIOCDELRT _IOW(r, 11, struct rtentry) /* delete route */
#define SIOCSIFADDR _IOW(i, 12, struct ifreq) /* set ifnet address */
#define SIOCGIFADDR _IOWR(i,13, struct ifreq) /* get ifnet address */
#define SIOCSIFDSTADDR _IOW(i, 14, struct ifreq) /* set p-p address */
#define SIOCGIFDSTADDR _IOWR(i,15, struct ifreq) /* get p-p address */
#define SIOCSIFFLAGS _IOW(i, 16, struct ifreq) /* set ifnet flags */
#define SIOCGIFFLAGS _IOWR(i,17, struct ifreq) /* get ifnet flags */
#define SIOCGIFBRDADDR _IOWR(i,18, struct ifreq) /* get broadcast addr */
#define SIOCSIFBRDADDR _IOW(i,19, struct ifreq) /* set broadcast addr */
#define SIOCGIFCONF _IOWR(i,20, struct ifconf) /* get ifnet list */
#define SIOCGIFNETMASK _IOWR(i,21, struct ifreq) /* get net addr mask */
#define SIOCSIFNETMASK _IOW(i,22, struct ifreq) /* set net addr mask */
#define SIOCGIFMETRIC _IOWR(i,23, struct ifreq) /* get IF metric */
#define SIOCSIFMETRIC _IOW(i,24, struct ifreq) /* set IF metric */
#define SIOCGIFMTU _IOWR(i,25, struct ifreq) /* get IF mtu */
#define SIOCSIFMTU _IOW(i,26, struct ifreq) /* set IF mtu */
#define SIOCGIFREMMTU _IOWR(i,27, struct ifreq) /* get IF remmtu */
#define SIOCSIFREMMTU _IOW(i,28, struct ifreq) /* set IF remmtu */
#define SIOCSARP _IOW(i, 30, struct arpreq) /* set arp entry */
#define SIOCGARP _IOWR(i,31, struct arpreq) /* get arp entry */
#define SIOCDARP _IOW(i, 32, struct arpreq) /* delete arp entry */
#define SIOCSIFIUCV _IOW(i, 33, struct ifreq) /* set iucv state */
#define SIOCGIFIUCV _IOWR(i,34, struct ifreq) /* get iucv state */
#define SIOCSARP_802_5 _IOW(i, 93, struct ie5_arpreq) /* set arp entry */
#define SIOCGARP_802_5 _IOWR(i,94, struct ie5_arpreq) /* get arp entry */
#define SIOCDARP_802_5 _IOW(i, 95, struct ie5_arpreq) /* delete arp entry */
#define IOCTYPE 0xff00
#define IOCINFO 0xff01
#define IOCCONFIG 0xff02
#define IOCSTATS 0xff03
#ifdef b370
#define HDIORST _ION(F,75) /* reset driver (re-read vtoc) */
#define HDIOPAR _ION(F,76) /* get drive information (fba_dev) */
#endif
#ifdef i386
/* Floppy/Micro diskette control */
#define FDIO ('F' << 8)
#define FDFMTON (FDIO|1) /* formatting on */
#define FDFMTOFF (FDIO|2) /* formatting off */
#define FDVERIFY (FDIO|3) /* enable last byte read back verify */
#define FDNOVERIFY (FDIO|4) /* disable last byte read back verify */
/* Hard disk control */
#define HDIO ('H' << 8)
#define HDIORST (HDIO|1) /* hard disk reset */
#define HDIOPAR (HDIO|2) /* hard disk parameters */
#define HDIOSTAT (HDIO|9) /* hard disk partition open status */
#define HDSETERRSCAN (HDIO|10) /* set "scanning for errors" mode */
#define HDCLRERRSCAN (HDIO|11) /* clear "scanning for errors" mode */
#define HDNUMDISKS _IOR(H,12,int) /* get the max number of disks supported */
#include <sys/i386/crtioctl.h> /* CRT related ioctls in their own module */
#endif /* i386 */
#endif /* !_POSIX_SOURCE */
#ifdef i386
/* ioctl commmands for posdev driver */
#define PIOCMACHINFO _IOR(p,0,struct mach_info)
#endif /* i386 */
int ioctl(int, int, ...);
#endif /* ~_H_IOCTL */
#ifdef __cplusplus
}
#endif
sys/ipc.h
#ifdef __cplusplus
extern "C" {
/* (MRL) USL had prototypes for 'msgget, semget, shmget, and ftok. I have not
included them */
#endif
/*
* IX/370
* 5667-126
* LICENSED MATERIALS - PROPERTY OF IBM
* (c) Copyright 1985, 1986, 1989 IBM Corp.
* (c) Copyright 1983, 1984, 1985, 1986, 1989 Locus Computing Corporation
* All Rights Reserved
*/
#ifndef H_SCCSID
#include <sccs.h>
#endif /* ~H_SCCSID */
H_SCCSID(@(#)ipc.h 16.6 AIX) /* Modified: 18:19:35 9/22/89 */
#ifndef _h_IPC
#define _h_IPC
#ifndef _h_TYPES
#ifdef KERNEL
#include <types.h>
#else /* ~KERNEL */
#include <sys/types.h>
#endif /* ~KERNEL */
#endif /* _h_TYPES */
/* Common IPC Access Structure */
struct ipc_perm {
ushort uid; /* owner's user id */
ushort gid; /* owner's group id */
ushort cuid; /* creator's user id */
ushort cgid; /* creator's group id */
ushort mode; /* access modes */
ushort seq; /* slot usage sequence number */
key_t key; /* key */
};
/* Common ipc_perm mode definitions. */
#define IPC_ALLOC 0100000 /* entry currently allocated */
#define IPC_TYPEDEP 0007000 /* for msg,sem,shm dependent defs */
#define IPC_PERMS 0000777 /* permission mode bits */
/* Common IPC operation flag definitions. */
#define IPC_CREAT 0001000 /* create entry if key doesn't exist */
#define IPC_EXCL 0002000 /* fail if key exists */
#define IPC_NOWAIT 0004000 /* error if request must wait */
/* Keys. */
#define IPC_PRIVATE (key_t)0 /* private key */
/* Control Commands. */
#define IPC_RMID 0 /* remove identifier */
#define IPC_SET 1 /* set options */
#define IPC_STAT 2 /* get options */
#endif /* ~_IPC_ */
#ifdef __cplusplus
}
#endif
sys/acct.h
#ifdef __cplusplus
extern "C" {
#endif
/*
* IX/370
* 5667-126
* LICENSED MATERIALS - PROPERTY OF IBM
* (c) Copyright 1985, 1986, 1989 IBM Corp.
* (c) Copyright 1983, 1984, 1985, 1986, 1989 Locus Computing Corporation
* All Rights Reserved
*/
#ifndef H_SCCSID
#include <sccs.h>
#endif /* ~H_SCCSID */
H_SCCSID(@(#)acct.h 16.5 LCC) /* Modified: 16:01:18 2/4/92 */
/* SCCSIDPUFF(@(#) acct.h 4.1 LM 12:50:31 4/23/85 C 22:11:45 4/23/85); */
#ifndef _h_ACCT
#define _h_ACCT
#ifndef _h_TYPES
#ifdef KERNEL
#include <types.h>
#else /* ~KERNEL */
#include <sys/types.h>
#endif /* ~KERNEL */
#endif /* ~_h_TYPES */
/*
* Accounting structures;
* these use a comp_t type which is a 3 bits base 8
* exponent, 13 bit fraction ``floating point'' number.
*/
typedef u_short comp_t;
struct acct
{
char ac_flag; /* Accounting flag */
char ac_stat; /* Exit status */
u_short ac_uid; /* Accounting user ID */
u_short ac_gid; /* Accounting group ID */
dev_t ac_tty; /* control typewriter */
time_t ac_btime; /* Beginning time */
comp_t ac_utime; /* acctng user time in clock ticks */
comp_t ac_stime; /* acctng system time in clock ticks */
comp_t ac_etime; /* acctng elapsed time in clock ticks */
comp_t ac_mem; /* memory usage */
comp_t ac_io; /* chars transferred */
comp_t ac_rw; /* blocks read or written */
char ac_comm[8]; /* command name */
};
#ifdef KERNEL
extern struct acct acctbuf;
extern struct inode *acctp; /* inode of accounting file */
#endif /* KERNEL */
#define A_get_fsid(X) ((X>>2)&017)
#define A_put_fsid(X) ( X | ( (u.u_procp->p_fair) ? \
((u.u_procp->p_fair->fs_id<<2) & 074) : 0 ) )
#define AFORK 01 /* has executed fork, but no exec */
#define ASU 02 /* used super-user privileges */
#define ACCTF 0300 /* record type: 00 = acct */
#define ACORE 0010 /* dumped core */
#define AXSIG 0020 /* killed by a signal */
#define ACOMPAT 0004 /* used compatibility mode */
#define AHZ HZ /* 1/AHZ is the granularity of the data encoded
in various comp_t fields. This is not
necessarily equal to hz. */
#ifdef b370
#ifdef _c_MACHDEP
#define EXTERN
#else
#define EXTERN extern
#endif /* _c_MACHDEP */
/*
* Calculate the number of sec's and usec's. Allow for the possibility of
* multi second time accumulations. It should be much less than a second
* but just in case we'll do the right thing.
*
*/
#define BUMPTIME(t) { \
register struct timeval *tp = (t); \
unsigned int usec; \
\
usec = getcputime(); \
charge_u->u_delta_time += usec; \
tp->tv_usec += (usec); \
while ( tp->tv_usec >= 1000000 ) \
{ \
tp->tv_usec -= 1000000; \
tp->tv_sec++; \
} \
}
extern long getcputime();
/* The overhead process' user structures. */
EXTERN struct user *ovrhd_u;
#ifdef IO_OVERHEAD
EXTERN struct user *ioovrhd_u;
#endif /* IO_OVERHEAD */
/* Pointer to the user structure that gets charged for system time. */
EXTERN struct user *charge_u;
#endif b370
#ifdef __cplusplus
/* (MRL) I am presuming that this function is available */
int acct(const char *);
#endif
#endif /* ~_h_ACCT */
#ifdef __cplusplus
}
#endif
signal.h
#ifdef __cplusplus
extern "C" {
#endif
/*
* LICENSED MATERIALS - PROPERTY OF IBM
* (c) Copyright 1990 IBM Corporation
* All Rights Reserved
*/
#ifndef _POSIX_SOURCE
#ifndef H_SCCSID
#include <sccs.h>
#endif /* ! H_SCCSID */
H_SCCSID(@(#)signal.h 1.18 LCC) /* Modified: 14:21:04 11/20/90 */
#endif /* NOT _POSIX_SOURCE */
#include<sys/signal.h>
extern int raise(int);
#ifdef __cplusplus
}
#endif
stat.h
#ifdef __cplusplus
extern "C" {
#endif
/*
* IX/370
* 5667-126
* LICENSED MATERIALS - PROPERTY OF IBM
* (c) Copyright 1985, 1986, 1989 IBM Corp.
* (c) Copyright 1983, 1984, 1985, 1986, 1989 Locus Computing Corporation
* All Rights Reserved
*/
#ifndef _POSIX_SOURCE
#ifndef H_SCCSID
#include <sccs.h>
#endif /* ~H_SCCSID */
H_SCCSID(@(#)stat.h 16.7 LCC) /* Modified: 19:52:20 1/11/90 */
#endif /* NOT _POSIX_SOURCE */
#ifndef _H_STAT
#define _H_STAT
#include <sys/types.h>
struct stat
{
dev_t st_dev;
ino_t st_ino;
mode_t st_mode;
nlink_t st_nlink;
u_short_t st_spare0;
uid_t st_uid;
gid_t st_gid;
dev_t st_rdev;
off_t st_size;
time_t st_atime;
u_long_t st_spare1;
time_t st_mtime;
u_long_t st_spare2;
time_t st_ctime;
u_long_t st_spare3;
u_long_t st_blksize;
u_long_t st_blocks;
u_long_t st_gen;
u_long_t st_type;
u_long_t st_vfs;
u_long_t st_flag;
u_long_t st_cmtcnt;
fstore_t st_fstore;
u_long_t st_version;
siteno_t st_css;
siteno_t st_ss;
siteno_t st_rdevsite;
short st_spare4;
long st_nid;
uid_t st_uid_raw;
gid_t st_gid_raw;
u_long_t st_uid_rev_tag;
u_long_t st_gid_rev_tag;
};
#ifndef _POSIX_SOURCE
/*
* Type definitions
*/
#define VNON 0
#define VBAD 1
#define VREG 2
#define VDIR 3
#define VHDIR 4
#define VBLK 5
#define VCHR 6
#define VLNK 7
#define VSOCK 8
#define VFIFO 9
#define VMPC 10
/*
* Defines to tell whether or not a file or directory
* is mounted upon, and whether it is local or remote.
*/
#define FS_NOFLAG 0x0 /* Clear flag */
#define FS_VMP 0x1 /* Virtual mount point */
#define FS_REMOTE 0x2 /* Remote file primary copy
* not local */
#define FS_MOUNT FS_VMP
#define FS_SHORT 0x4000
#define STATSIZE \
(((int)(char *)&(((struct stat *)0)->st_spare4)) + (sizeof(short)))
/*
* Definitions for rev_tags
*/
#define IDTAG_CALLER 1
#define IDTAG_OTHER 2
#define IDTAG_SOMEONE 3
#define IDTAG_NO_ONE 4
#define FULLSTATSIZE \
(((int)(char *)&(((struct stat *)0)->st_gid_rev_tag)) + (sizeof(u_long)))
#define STX_LINK 0x0001
#define STX_MOUNT 0x0002
#define STX_HIDDEN 0x0004
#define STX_TRANS 0x0000
#define STX_TRANS_NONE 0x0008
#define STX_TRANS_OTHER 0x0010
#endif /* ! _POSIX_SOURCE */
#define _S_IFMT 0x3000f000 /* type of file */
#define _S_IFDIR 0x4000 /* directory */
#define S_ISDIR(m) (((m) & (_S_IFMT)) == (_S_IFDIR))
#define _S_IFCHR 0x2000 /* character special */
#define S_ISCHR(m) (((m) & (_S_IFMT)) == (_S_IFCHR))
#define _S_IFBLK 0x6000 /* block special */
#define S_ISBLK(m) (((m) & (_S_IFMT)) == (_S_IFBLK))
#define _S_IFREG 0x8000 /* regular */
#define S_ISREG(m) (((m) & (_S_IFMT)) == (_S_IFREG))
#define _S_IFIFO 0x1000 /* named pipe */
#define S_ISFIFO(m) (((m) & (_S_IFMT)) == (_S_IFIFO))
#ifndef _POSIX_SOURCE
#define S_IFMT _S_IFMT
#define S_IFDIR _S_IFDIR
#define S_IFCHR _S_IFCHR
#define S_IFBLK _S_IFBLK
#define S_IFREG _S_IFREG
#define S_IFIFO _S_IFIFO
#define S_IFLNK 0xa000 /* symbolic link */
#define S_ISLNK(m) (((m) & (S_IFMT)) == (S_IFLNK))
#define S_IFSOCK 0xc000 /* named socket */
#define S_ISSOCK(m) (((m) & (S_IFMT)) == (S_IFSOCK))
#define S_IFMPX (S_IFCHR|S_ISVTX) /* multiplex character special file */
#define S_ISMPX(m) (((m) & (S_IFMT|S_ISVTX)) == (S_IFMPX))
#define S_IHIDDEN 0x8000000 /* hidden directory */
#define S_ISHIDDEN(m) (((m) & (S_IFMT|S_IHIDDEN)) == (S_IFDIR|S_IHIDDEN))
#endif /* ! _POSIX_SOURCE */
#define S_ISUID 04000 /* set user id on execution */
#define S_ISGID 02000 /* set group id on execution */
#ifndef _POSIX_SOURCE
#define S_ENFMT S_ISGID /* record locking enforcement flag */
#define S_ISVTX 01000 /* save swapped text even after use */
#define S_IREAD 00400 /* read permission, owner */
#define S_IWRITE 00200 /* write permission, owner */
#define S_IEXEC 00100 /* execute/search permission, owner */
/* /usr/group definitions */
#define S_PERM 00777 /* all permission fields */
#endif /* ! _POSIX_SOURCE */
#define S_IRWXU 00700 /* read,write,execute permission: owner */
#define S_IRUSR 00400 /* read permission: owner */
#define S_IWUSR 00200 /* write permission: owner */
#define S_IXUSR 00100 /* execute/search permission: owner */
#define S_IRWXG 00070 /* read,write,execute permission: group */
#define S_IRGRP 00040 /* read permission: group */
#define S_IWGRP 00020 /* write permission: group */
#define S_IXGRP 00010 /* execute/search permission: group */
#define S_IRWXO 00007 /* read,write,execute permission: other */
#define S_IROTH 00004 /* read permission: other */
#define S_IWOTH 00002 /* write permission: other */
#define S_IXOTH 00001 /* execute/search permission: other */
#ifndef _KERNEL
extern mode_t umask(mode_t);
extern int mkdir(const char*, mode_t),
mkfifo(const char*, mode_t),
stat(const char*, struct stat*),
fstat(int, struct stat*),
chmod(const char*, mode_t);
#endif /* !_KERNEL */
#endif /* ~_H_STAT */
#ifdef __cplusplus
}
#endif
ctype.h
#ifdef __cplusplus
extern "C" {
#endif
/*
* LICENSED MATERIALS - PROPERTY OF IBM
* (c) Copyright IBM Corp. 1989, 1990
* (c) Copyright Locus Computing Corporation 1989, 1990
* All Rights Reserved
*/
#ifndef _POSIX_SOURCE
#ifndef H_SCCSID
#include <sccs.h>
#endif /* ! H_SCCSID */
H_SCCSID(@(#)ctype.h 1.28 AIX) /* Modified 6/26/91 21:45:52 */
#endif
#ifndef _h_CTYPE
#define _h_CTYPE
#define _U 01 /* upper case */
#define _L 02 /* lower case */
#define _N 04 /* numeric */
#define _S 010 /* space */
#define _P 020 /* punctuation */
#define _C 040 /* control */
#define _B 0100 /* blank */
#define _X 0200 /* hex digit */
#define _J 0400 /* Japanese locale symbol mask */
#define _k 01000 /* Japanese Katakana */
#define _H 02000 /* Japanese Hiragana */
#define _K 04000 /* Japanese Kanji */
#ifdef _MBCS /************************** _MBCS ************************/
/************** These make sense only in the MBCS environment **************/
/***** When _POSIX_SOURCE is defined mbcs.h and NLchar.h are removed **********/
/** for posix compliance, and ctab.h is added which is a portion of NLchar.h **/
#ifdef _POSIX_SOURCE
#ifndef _h_NLCHAR
#include <ctab.h>
#endif
#else /* ! _POSIX_SOURCE */
#ifndef _h_MBCS
#include <mbcs.h>
#endif
#ifndef _h_NLCHAR
#include <NLchar.h>
#endif
#endif
#define _CTYPE _MB_ctab->ct_ctype
#define iswalpha(c) (_CTYPE[__wcindx(c)+1]&(_U|_L))
#define iswupper(c) (_CTYPE[__wcindx(c)+1]&_U)
#define iswlower(c) (_CTYPE[__wcindx(c)+1]&_L)
#define iswdigit(c) (_CTYPE[__wcindx(c)+1]&_N)
#define iswxdigit(c) (_CTYPE[__wcindx(c)+1]&_X)
#define iswalnum(c) (_CTYPE[__wcindx(c)+1]&(_U|_L|_N))
#define iswspace(c) (_CTYPE[__wcindx(c)+1]&_S)
#define iswpunct(c) (_CTYPE[__wcindx(c)+1]&_P)
#define iswprint(c) (_CTYPE[__wcindx(c)+1]&(_P|_U|_L|_N|_B|_J))
#define iswgraph(c) (_CTYPE[__wcindx(c)+1]&(_P|_U|_L|_N))
#define iswcntrl(c) (_CTYPE[__wcindx(c)+1]&_C)
#define iswascii(c) (_CTYPE[__wcindx(c)+1]&(_P|_U|_L|_N|_B|_C))
#define towupper(c) ( _MB_ctab->ct_caseconv[__wcindx(c)+1])
#define towlower(c) ( _MB_ctab->ct_caseconv[__wcindx(c)+1])
#define towascii(c) ((c)&0177)
#define isascii(c) (!((c)&~0177))
#define _toupper(c) ((c)-'a'+'A')
#define _tolower(c) ((c)-'A'+'a')
#define toascii(c) ((c)&0177)
extern int __c_temp;
#define isalpha(c) (isascii(__c_temp=c) && _CTYPE[__c_temp+1]&(_U|_L))
#define isupper(c) (isascii(__c_temp=c) && _CTYPE[__c_temp+1]&_U)
#define islower(c) (isascii(__c_temp=c) && _CTYPE[__c_temp+1]&_L)
#define isdigit(c) (isascii(__c_temp=c) && _CTYPE[__c_temp+1]&_N)
#define isxdigit(c) (isascii(__c_temp=c) && _CTYPE[__c_temp+1]&_X)
#define isalnum(c) (isascii(__c_temp=c) && _CTYPE[__c_temp+1]&(_U|_L|_N))
#define isspace(c) (isascii(__c_temp=c) && _CTYPE[__c_temp+1]&_S)
#define ispunct(c) (isascii(__c_temp=c) && _CTYPE[__c_temp+1]&_P)
#define isprint(c) (isascii(__c_temp=c) && _CTYPE[__c_temp+1]&(_P|_U|_L|_N|_B))
#define isgraph(c) (isascii(__c_temp=c) && _CTYPE[__c_temp+1]&(_P|_U|_L|_N))
#define iscntrl(c) (isascii(__c_temp=c) && _CTYPE[__c_temp+1]&_C)
#define isjsjis(c) (_CTYPE[__wcindx(c)+1]&_J)
#define isjhira(c) (_CTYPE[__wcindx(c)+1]==(_J|_H))
#define isjkata(c) (_CTYPE[__wcindx(c)+1]==(_J|_k))
#define isjkanji(c) (_CTYPE[__wcindx(c)+1]==(_J|_K))
/*#define isj1bytekana(c) (_CTYPE[_wcindx(c)] == (_J|_k) &&
c & 0xffff >= 0x2f20 &&
c & 0xffff <= 0x2f7e)*/
#define isjalpha(c) (_CTYPE[__wcindx(c)+1]&(_J|_U|_L)==(_J|_U|_L))
#define isjupper(c) (_CTYPE[__wcindx(c)+1]&(_J|_U)==(_J|_U))
#define isjlower(c) (_CTYPE[__wcindx(c)+1]&(_J|_L)==(_J|_L))
#define isjpunct(c) (_CTYPE[__wcindx(c)+1]&(_J|_P)==(_J|_P))
#define isjdigit(c) (_CTYPE[__wcindx(c)+1]&(_J|_N)==(_J|_N))
#define isjxdigit(c) (_CTYPE[__wcindx(c)+1]&(_J|_X)==(_J|_X))
#define isjprint(c) (_CTYPE[__wcindx(c)+1]&(_J|_P|_U|_L|_N|_B)==(_J|_P|_U|_L|_N|_B))
#define isjgraph(c) ((_CTYPE[__wcindx(c)+1]&(_J|_P|_U|_L|_N))==(_J|_P|_U|_L|_N))
#define tojupper(c) ( _MB_ctab->ct_caseconv[__wcindx(c)+1])
#define tojlower(c) ( _MB_ctab->ct_caseconv[__wcindx(c)+1])
#define tojhira(c) ( _MB_ctab->ct_caseconv[__wcindx(c)+1])
#define tojkata(c) ( _MB_ctab->ct_caseconv[__wcindx(c)+1])
#else /************************** ! _MBCS **********************/
#ifndef CC4 /************************** ! CC4 & ! _MBCS ***************/
extern char _ctype[];
#ifndef lint
#define isalpha(c) ((_ctype+1)[c]&(_U|_L))
#define isupper(c) ((_ctype+1)[c]&_U)
#define islower(c) ((_ctype+1)[c]&_L)
#define isdigit(c) ((_ctype+1)[c]&_N)
#define isxdigit(c) ((_ctype+1)[c]&_X)
#define isalnum(c) ((_ctype+1)[c]&(_U|_L|_N))
#define isspace(c) ((_ctype+1)[c]&_S)
#define ispunct(c) ((_ctype+1)[c]&_P)
#define isprint(c) ((_ctype+1)[c]&(_P|_U|_L|_N|_B))
#define isgraph(c) ((_ctype+1)[c]&(_P|_U|_L|_N))
#define iscntrl(c) ((_ctype+1)[c]&_C)
#define isascii(c) (!((c)&~0177)) /* ascii if 8th bit is zero */
#define _toupper(c) ((c)-'a'+'A')
#define _tolower(c) ((c)-'A'+'a')
#define toascii(c) ((c)&0177)
#ifdef _BSD
#define toupper(c) _toupper(c)
#define tolower(c) _tolower(c)
#endif /* _BSD */
#endif /* ! lint */
#else /************************** CC4 & ! _MBCS ******************/
extern char _ctype_[];
#define isalpha(c) ((_ctype_+1)[c]&(_U|_L))
#define isupper(c) ((_ctype_+1)[c]&_U)
#define islower(c) ((_ctype_+1)[c]&_L)
#define isdigit(c) ((_ctype_+1)[c]&_N)
#define isxdigit(c) ((_ctype_+1)[c]&(_N|_X))
#define isspace(c) ((_ctype_+1)[c]&_S)
#define ispunct(c) ((_ctype_+1)[c]&_P)
#define isalnum(c) ((_ctype_+1)[c]&(_U|_L|_N))
#define isprint(c) ((_ctype_+1)[c]&(_P|_U|_L|_N))
#define iscntrl(c) ((_ctype_+1)[c]&_C)
#define isascii(c) ((unsigned)(c)<=0177)
#define toupper(c) ((c)-'a'+'A')
#define tolower(c) ((c)-'A'+'a')
#define toascii(c) ((c)&0177)
#endif /************************** ! CC4 *********************/
#endif /************************** ! _MBCS *********************/
#endif /************************** ! _h_CTYPE *********************/
}
a.out.h
#ifdef __cplusplus
extern "C" {
#endif
#ifndef H_SCCSID
#include <sccs.h>
#endif /* ! H_SCCSID */
H_SCCSID(@(#)a.out.h 1.11 AIX) /* Modified 9/16/89 22:38:02 */
/*
* (C) Copyright IBM Corp. 1989, 1989
* All Rights Reserved
* Licensed Materials - Property of IBM
*/
#include <sys/a.out.h>
#ifdef __cplusplus
}
#endif