1 |
/* $NetBSD: types.h,v 1.13 2000/06/13 01:02:44 thorpej Exp $ */ |
2 |
|
3 |
/* |
4 |
* Sun RPC is a product of Sun Microsystems, Inc. and is provided for |
5 |
* unrestricted use provided that this legend is included on all tape |
6 |
* media and as a part of the software program in whole or part. Users |
7 |
* may copy or modify Sun RPC without charge, but are not authorized |
8 |
* to license or distribute it to anyone else except as part of a product or |
9 |
* program developed by the user. |
10 |
* |
11 |
* SUN RPC IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING THE |
12 |
* WARRANTIES OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR |
13 |
* PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE. |
14 |
* |
15 |
* Sun RPC is provided with no support and without any obligation on the |
16 |
* part of Sun Microsystems, Inc. to assist in its use, correction, |
17 |
* modification or enhancement. |
18 |
* |
19 |
* SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE |
20 |
* INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY SUN RPC |
21 |
* OR ANY PART THEREOF. |
22 |
* |
23 |
* In no event will Sun Microsystems, Inc. be liable for any lost revenue |
24 |
* or profits or other special, indirect and consequential damages, even if |
25 |
* Sun has been advised of the possibility of such damages. |
26 |
* |
27 |
* Sun Microsystems, Inc. |
28 |
* 2550 Garcia Avenue |
29 |
* Mountain View, California 94043 |
30 |
* |
31 |
* from: @(#)types.h 1.18 87/07/24 SMI |
32 |
* from: @(#)types.h 2.3 88/08/15 4.0 RPCSRC |
33 |
* $MidnightBSD$ |
34 |
*/ |
35 |
|
36 |
/* |
37 |
* Rpc additions to <sys/types.h> |
38 |
*/ |
39 |
#ifndef _RPC_TYPES_H |
40 |
#define _RPC_TYPES_H |
41 |
|
42 |
#include <sys/types.h> |
43 |
#include <sys/_null.h> |
44 |
|
45 |
typedef int32_t bool_t; |
46 |
typedef int32_t enum_t; |
47 |
|
48 |
typedef uint32_t rpcprog_t; |
49 |
typedef uint32_t rpcvers_t; |
50 |
typedef uint32_t rpcproc_t; |
51 |
typedef uint32_t rpcprot_t; |
52 |
typedef uint32_t rpcport_t; |
53 |
typedef int32_t rpc_inline_t; |
54 |
|
55 |
#define __dontcare__ -1 |
56 |
|
57 |
#ifndef FALSE |
58 |
# define FALSE (0) |
59 |
#endif |
60 |
#ifndef TRUE |
61 |
# define TRUE (1) |
62 |
#endif |
63 |
|
64 |
#ifdef _KERNEL |
65 |
#ifdef _SYS_MALLOC_H_ |
66 |
MALLOC_DECLARE(M_RPC); |
67 |
#endif |
68 |
#define mem_alloc(bsize) malloc(bsize, M_RPC, M_WAITOK|M_ZERO) |
69 |
#define mem_free(ptr, bsize) free(ptr, M_RPC) |
70 |
#else |
71 |
#define mem_alloc(bsize) calloc(1, bsize) |
72 |
#define mem_free(ptr, bsize) free(ptr) |
73 |
#endif |
74 |
|
75 |
#include <sys/time.h> |
76 |
#ifdef _KERNEL |
77 |
#include <rpc/netconfig.h> |
78 |
#else |
79 |
#include <netconfig.h> |
80 |
#endif |
81 |
|
82 |
/* |
83 |
* The netbuf structure is defined here, because FreeBSD / NetBSD only use |
84 |
* it inside the RPC code. It's in <xti.h> on SVR4, but it would be confusing |
85 |
* to have an xti.h, since FreeBSD / NetBSD does not support XTI/TLI. |
86 |
*/ |
87 |
|
88 |
/* |
89 |
* The netbuf structure is used for transport-independent address storage. |
90 |
*/ |
91 |
struct netbuf { |
92 |
unsigned int maxlen; |
93 |
unsigned int len; |
94 |
void *buf; |
95 |
}; |
96 |
|
97 |
/* |
98 |
* The format of the addres and options arguments of the XTI t_bind call. |
99 |
* Only provided for compatibility, it should not be used. |
100 |
*/ |
101 |
|
102 |
struct t_bind { |
103 |
struct netbuf addr; |
104 |
unsigned int qlen; |
105 |
}; |
106 |
|
107 |
/* |
108 |
* Internal library and rpcbind use. This is not an exported interface, do |
109 |
* not use. |
110 |
*/ |
111 |
struct __rpc_sockinfo { |
112 |
int si_af; |
113 |
int si_proto; |
114 |
int si_socktype; |
115 |
int si_alen; |
116 |
}; |
117 |
|
118 |
#endif /* !_RPC_TYPES_H */ |