From 68cca29cecc0fd665275b3de1f8690ebba456b33 Mon Sep 17 00:00:00 2001 From: julian Date: Mon, 2 Oct 1995 11:08:51 +0000 Subject: Obtained from: /sys/sys/types.h make types.5 match the actual file.. quite easy really as it just includes it.. --- share/man/man5/types.5 | 125 ++++++++++++++++++++++++++++++++----------------- 1 file changed, 82 insertions(+), 43 deletions(-) (limited to 'share/man/man5') diff --git a/share/man/man5/types.5 b/share/man/man5/types.5 index 8a6b3bf..0c8922c 100644 --- a/share/man/man5/types.5 +++ b/share/man/man5/types.5 @@ -45,63 +45,85 @@ The file contains the defined data types used in the kernel (most are used through out the system). .Bd -literal -#ifndef _TYPES_H_ -#define _TYPES_H_ +#ifndef _SYS_TYPES_H_ +#define _SYS_TYPES_H_ -typedef short dev_t; -#ifndef _POSIX_SOURCE - /* major part of a device */ -#define major(x) ((int)(((unsigned)(x)>>8)&0377)) - /* minor part of a device */ -#define minor(x) ((int)((x)&0377)) - /* make a device number */ -#define makedev(x,y) ((dev_t)(((x)<<8) | (y))) -#endif +#include +#include +/* Machine type dependent parameters. */ +#include + +#ifndef _POSIX_SOURCE typedef unsigned char u_char; typedef unsigned short u_short; typedef unsigned int u_int; typedef unsigned long u_long; typedef unsigned short ushort; /* Sys V compatibility */ +typedef unsigned int uint; /* Sys V compatibility */ +#endif -#include -#if !defined(_ANSI_SOURCE) && !defined(_POSIX_SOURCE) -#include +typedef unsigned long long u_quad_t; /* quads */ +typedef long long quad_t; +typedef quad_t * qaddr_t; + +typedef char * caddr_t; /* core address */ +typedef long daddr_t; /* disk address */ +typedef unsigned long dev_t; /* device number */ +typedef unsigned long fixpt_t; /* fixed point number */ +typedef unsigned long gid_t; /* group id */ +typedef unsigned long ino_t; /* inode number */ +typedef unsigned short mode_t; /* permissions */ +typedef unsigned short nlink_t; /* link count */ +typedef _BSD_OFF_T_ off_t; /* file offset */ +typedef _BSD_PID_T_ pid_t; /* process id */ +typedef long segsz_t; /* segment size */ +typedef long swblk_t; /* swap offset */ +typedef unsigned long uid_t; /* user id */ + +/* + * This belongs in unistd.h, but is placed here to ensure that programs + * casting the second parameter of lseek to off_t will get the correct + * version of lseek. + */ +#ifndef KERNEL +__BEGIN_DECLS +off_t lseek __P((int, off_t, int)); +__END_DECLS #endif -#ifdef _CLOCK_T_ -typedef _CLOCK_T_ clock_t; -#undef _CLOCK_T_ +#ifndef _POSIX_SOURCE +/* + * minor() gives a cookie instead of an index since we don't want to + * change the meanings of bits 0-15 or waste time and space shifting + * bits 16-31 for devices that don't use them. + */ +#define major(x) ((int)(((u_int)(x) >> 8)&0xff)) /* major number */ +#define minor(x) ((int)((x)&0xffff00ff)) /* minor number */ +#define makedev(x,y) ((dev_t)(((x)<<8) | (y))) /* create dev_t */ #endif -#ifdef _SIZE_T_ -typedef _SIZE_T_ size_t; -#undef _SIZE_T_ +#include + +#ifdef _BSD_CLOCK_T_ +typedef _BSD_CLOCK_T_ clock_t; +#undef _BSD_CLOCK_T_ #endif -#ifdef _TIME_T_ -typedef _TIME_T_ time_t; -#undef _TIME_T_ +#ifdef _BSD_SIZE_T_ +typedef _BSD_SIZE_T_ size_t; +#undef _BSD_SIZE_T_ #endif -#ifndef _POSIX_SOURCE -typedef struct _uquad { unsigned long val[2]; } u_quad; -typedef struct _quad { long val[2]; } quad; +#ifdef _BSD_SSIZE_T_ +typedef _BSD_SSIZE_T_ ssize_t; +#undef _BSD_SSIZE_T_ +#endif + +#ifdef _BSD_TIME_T_ +typedef _BSD_TIME_T_ time_t; +#undef _BSD_TIME_T_ #endif -typedef long * qaddr_t; /* should be typedef quad * qaddr_t; */ - -typedef long daddr_t; -typedef char * caddr_t; -typedef u_long ino_t; -typedef long swblk_t; -typedef long segsz_t; -typedef long off_t; -typedef u_short uid_t; -typedef u_short gid_t; -typedef short pid_t; -typedef u_short nlink_t; -typedef u_short mode_t; -typedef u_long fixpt_t; #ifndef _POSIX_SOURCE #define NBBY 8 /* number of bits in a byte */ @@ -110,7 +132,7 @@ typedef u_long fixpt_t; * Select uses bit masks of file descriptors in longs. These macros * manipulate such bit fields (the filesystem macros use chars). * FD_SETSIZE may be defined by the user, but the default here should - * be >= NOFILE (param.h). + * be enough for most uses. */ #ifndef FD_SETSIZE #define FD_SETSIZE 256 @@ -130,10 +152,27 @@ typedef struct fd_set { #define FD_SET(n, p) ((p)->fds_bits[(n)/NFDBITS] |= (1 << ((n) % NFDBITS))) #define FD_CLR(n, p) ((p)->fds_bits[(n)/NFDBITS] &= ~(1 << ((n) % NFDBITS))) #define FD_ISSET(n, p) ((p)->fds_bits[(n)/NFDBITS] & (1 << ((n) % NFDBITS))) -#define FD_ZERO(p) bzero((char *)(p), sizeof(*(p))) +#define FD_COPY(f, t) bcopy(f, t, sizeof(*(f))) +#define FD_ZERO(p) bzero(p, sizeof(*(p))) + +#if defined(__STDC__) && defined(KERNEL) +/* + * Forward structure declarations for function prototypes. We include the + * common structures that cross subsystem boundaries here; others are mostly + * used in the same place that the structure is defined. + */ +struct proc; +struct pgrp; +struct ucred; +struct rusage; +struct file; +struct buf; +struct tty; +struct uio; +#endif #endif /* !_POSIX_SOURCE */ -#endif /* !_TYPES_H_ */ +#endif /* !_SYS_TYPES_H_ */ .Ed .Sh SEE ALSO .Xr fs 5 , -- cgit v1.1