fix eglibc compatibility
[project/librpc-uclibc.git] / rpc / types.h
1 /*
2 * Sun RPC is a product of Sun Microsystems, Inc. and is provided for
3 * unrestricted use provided that this legend is included on all tape
4 * media and as a part of the software program in whole or part. Users
5 * may copy or modify Sun RPC without charge, but are not authorized
6 * to license or distribute it to anyone else except as part of a product or
7 * program developed by the user.
8 *
9 * SUN RPC IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING THE
10 * WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR
11 * PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE.
12 *
13 * Sun RPC is provided with no support and without any obligation on the
14 * part of Sun Microsystems, Inc. to assist in its use, correction,
15 * modification or enhancement.
16 *
17 * SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE
18 * INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY SUN RPC
19 * OR ANY PART THEREOF.
20 *
21 * In no event will Sun Microsystems, Inc. be liable for any lost revenue
22 * or profits or other special, indirect and consequential damages, even if
23 * Sun has been advised of the possibility of such damages.
24 *
25 * Sun Microsystems, Inc.
26 * 2550 Garcia Avenue
27 * Mountain View, California 94043
28 */
29 /* fixincludes should not add extern "C" to this file */
30 /*
31 * Rpc additions to <sys/types.h>
32 */
33 #ifndef _RPC_TYPES_H
34 #define _RPC_TYPES_H 1
35
36 #include "compat.h"
37
38 #ifdef _LIBC
39 /* Some adjustments to make the libc source from glibc
40 * compile more easily with uClibc... */
41 #ifndef __FORCE_GLIBC
42 #define __FORCE_GLIBC
43 #endif
44 #ifndef _GNU_SOURCE
45 #define _GNU_SOURCE
46 #endif
47 #define _(X) X
48 #endif
49 #include <features.h>
50
51 typedef int bool_t;
52 typedef int enum_t;
53 /* This needs to be changed to uint32_t in the future */
54 typedef unsigned long rpcprog_t;
55 typedef unsigned long rpcvers_t;
56 typedef unsigned long rpcproc_t;
57 typedef unsigned long rpcprot_t;
58 typedef unsigned long rpcport_t;
59
60 #define __dontcare__ -1
61
62 #ifndef FALSE
63 # define FALSE (0)
64 #endif
65
66 #ifndef TRUE
67 # define TRUE (1)
68 #endif
69
70 #ifndef NULL
71 # define NULL 0
72 #endif
73
74 #include <stdlib.h> /* For malloc decl. */
75 #define mem_alloc(bsize) malloc(bsize)
76 #define mem_free(ptr, bsize) free(ptr)
77
78 #ifndef makedev /* ie, we haven't already included it */
79 #include <sys/types.h>
80 #endif
81
82 #ifndef __u_char_defined
83 typedef __u_char u_char;
84 typedef __u_short u_short;
85 typedef __u_int u_int;
86 typedef __u_long u_long;
87 typedef __quad_t quad_t;
88 typedef __u_quad_t u_quad_t;
89 typedef __fsid_t fsid_t;
90 # define __u_char_defined
91 #endif
92 #ifndef __daddr_t_defined
93 typedef __daddr_t daddr_t;
94 typedef __caddr_t caddr_t;
95 # define __daddr_t_defined
96 #endif
97
98 #include <sys/time.h>
99 #include <sys/param.h>
100
101 #include <netinet/in.h>
102
103 #ifndef INADDR_LOOPBACK
104 #define INADDR_LOOPBACK (u_long)0x7F000001
105 #endif
106 #ifndef MAXHOSTNAMELEN
107 #define MAXHOSTNAMELEN 64
108 #endif
109
110 #endif /* rpc/types.h */