#ifndef SYS_TYPES_H
#define SYS_TYPES_H
typedef char * caddr_t;
typedef unsigned long u_long;
typedef unsigned int u_int;
typedef unsigned short u_short;
typedef unsigned char u_char;
typedef unsigned short ushort;
typedef unsigned long ulong;
typedef unsigned char uchar;
typedef short dev_t;
typedef long off_t;
typedef short uid_t;
typedef short gid_t;
typedef short mode_t;
typedef unsigned long ino_t;
#define btod(p, t) ((t)(((long)p)<<2))
#define dtob(p) ((BPTR)((long)(p)>>2))
#define MIN(x, y) ((x) < (y) ? (x):(y))
#define MAX(x, y) ((x) > (y) ? (x):(y))
#ifndef min
#define min(x, y) MIN(x, y)
#endif
#ifndef max
#define max(x, y) MAX(x, y)
#endif
#define DOS_TRUE -1
#define DOS_FALSE 0
#ifndef NULL
#define NULL 0L
#endif
/* Unix bstring macros */
#define bzero(a,n) memset(a,'\0',n)
#define bcmp(a,b,n) memcmp(a,b,n)
#define bcopy(from,to,len) memcpy(to,from,len)
/*
* Select mask manipulations from Berkeley Unix.
*/
#define NFDPOW 5
#define NFDBITS (1 << NFDPOW) /* 32 bits/word */
/* There is a max of 128 sockets per process allowed */
#ifndef FD_SETSIZE
#define FD_SETSIZE 128
#endif
typedef struct fd_set {
u_long fds_bits[FD_SETSIZE/NFDBITS];
} fd_set;
#define OFF(bit) ((bit)>>NFDPOW)
#define BIT(bit) ((bit)&(NFDBITS-1))
#define FD_SET(bit, setp) ((setp)->fds_bits[OFF(bit)] |= (1 << BIT(bit)))
#define FD_CLR(bit, setp) ((setp)->fds_bits[OFF(bit)] &= ~(1 << BIT(bit)))
#define FD_ISSET(bit, setp) ((setp)->fds_bits[OFF(bit)] & (1 << BIT(bit)))
#define FD_ZERO(setp) bzero(setp, sizeof(fd_set));
#endif /* SYS_TYPES_H */