summaryrefslogtreecommitdiff
path: root/connect/mitsock/s_types.h
blob: e194f1e3158361dc95aef17cb9e6fe89495880b6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
/*
 * Copyright (c) 1982 Regents of the University of California.
 * All rights reserved.  The Berkeley software License Agreement
 * specifies the terms and conditions for redistribution.
 *
 *	@(#)types.h	7.11 (Berkeley) 6/25/90
*
*
* RCS Modification History:
* $Log: s_types.h,v $
* Revision 1.2  2005/07/22 15:02:04  rsmith
* treat socklen_t arguments consistently.
*
* Revision 1.1  2001/04/03 20:35:37  juran
* Phil Churchill's MIT-derived OT sockets library.  No changes prior to initial check-in.
*
* Revision 6.0  1997/08/25 18:37:57  madden
* Revision changed to 6.0
*
* Revision 4.0  1995/07/26 13:56:09  ostell
* force revision to 4.0
*
 * Revision 1.3  1995/05/17  17:57:43  epstein
 * add RCS log revision history
 *
 */

#ifndef _TYPES_
#define	_TYPES_

#if !defined(_NCBI_) && !defined(Int4)
#define Int4 long
#endif
 
//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

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 */

#ifdef KERNEL
#include "machine/machtypes.h"
#else
//#include <ma_types.h>
#endif

#ifdef	_CLOCK_T_
typedef	_CLOCK_T_	clock_t;
#undef	_CLOCK_T_
#endif

#ifdef	_TIME_T_
typedef	_TIME_T_	time_t;
#undef	_TIME_T_
#endif

#ifdef	_SIZE_T_
#if !defined(THINK_C) && !defined(COMP_THINKC) && !defined(__MWERKS__) && !defined(COMP_METRO)
typedef	_SIZE_T_	size_t;
#endif
#undef	_SIZE_T_
#endif

#ifndef _POSIX_SOURCE
typedef	struct	_uquad { unsigned long val[2]; } u_quad;
typedef	struct	_quad { long val[2]; } quad;
#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;
/* size of address structures */
typedef UInt32 socklen_t;
#define HAVE_SOCKLEN_T 1

//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 */

/*
 * 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).
 */
#ifndef	FD_SETSIZE
#define	FD_SETSIZE	256
#endif

//typedef long	fd_mask;
//#define NFDBITS	(sizeof(fd_mask) * NBBY)	/* bits per mask */
#define NUMBITSPERBYTE	8		/* 	Number of bits per byte			*/


#ifndef howmany
#define	howmany(x, y)	(((x)+((y)-1))/(y))
#endif

/* structures for select */
typedef long fd_mask;
#define NFDBITS			(sizeof(fd_mask) * NUMBITSPERBYTE)      /* bits per mask */

typedef struct fd_set {
  fd_mask fds_bits[(FD_SETSIZE + NFDBITS - 1) / NFDBITS];
} fd_set;

/* macros for select */
#define FD_SET(fd, fdset)	((fdset)->fds_bits[(fd) / NFDBITS] |= ((unsigned)1 << ((fd) % NFDBITS)))
#define FD_CLR(fd, fdset)	((fdset)->fds_bits[(fd) / NFDBITS] &= ~((unsigned)1 << ((fd) % NFDBITS)))
#define FD_ISSET(fd, fdset)	((fdset)->fds_bits[(fd) / NFDBITS] & ((unsigned)1 << ((fd) % NFDBITS)))
#define FD_ZERO(fdset)		memset((char *)(fdset), 0, sizeof(*(fdset)))


#endif /* !_POSIX_SOURCE */
#endif /* _TYPES_ */