1 /*
2  * Please do not edit this file.
3  * It was generated using rpcgen.
4  */
5 
6 #ifndef _RUSERS_H_RPCGEN
7 #define _RUSERS_H_RPCGEN
8 
9 #include <rpc/rpc.h>
10 
11 
12 #ifdef __cplusplus
13 extern "C" {
14 #endif
15 
16 /*
17  * Find out about remote users
18  */
19 #define RUSERS_MAXUSERLEN 32
20 #define RUSERS_MAXLINELEN 32
21 #define RUSERS_MAXHOSTLEN 257
22 
23 struct rusers_utmp {
24 	char *ut_user;
25 	char *ut_line;
26 	char *ut_host;
27 	int ut_type;
28 	int ut_time;
29 	u_int ut_idle;
30 };
31 typedef struct rusers_utmp rusers_utmp;
32 
33 typedef struct {
34 	u_int utmp_array_len;
35 	rusers_utmp *utmp_array_val;
36 } utmp_array;
37 
38 /*
39  * Values for ut_type field above.
40  */
41 #define RUSERS_EMPTY 0
42 #define RUSERS_RUN_LVL 1
43 #define RUSERS_BOOT_TIME 2
44 #define RUSERS_OLD_TIME 3
45 #define RUSERS_NEW_TIME 4
46 #define RUSERS_INIT_PROCESS 5
47 #define RUSERS_LOGIN_PROCESS 6
48 #define RUSERS_USER_PROCESS 7
49 #define RUSERS_DEAD_PROCESS 8
50 #define RUSERS_ACCOUNTING 9
51 
52 
53 #ifdef __cplusplus
54 extern "C" {
55 #endif
56 
57 #include <rpc/xdr.h>
58 
59 /*
60  * The following structures are used by version 2 of the rusersd protocol.
61  * They were not developed with rpcgen, so they do not appear as RPCL.
62  */
63 
64 #define RUSERSVERS_IDLE 2
65 #define RUSERSVERS 3 /* current version */
66 #define MAXUSERS 100
67 
68 /*
69  * This is the structure used in version 2 of the rusersd RPC service.
70  * It corresponds to the utmp structure for BSD systems.
71  */
72 struct ru_utmp {
73  char ut_line[8]; /* tty name */
74  char ut_name[8]; /* user id */
75  char ut_host[16]; /* host name, if remote */
76  long int ut_time; /* time on */
77 };
78 
79 struct utmparr {
80  struct ru_utmp **uta_arr;
81  int uta_cnt;
82 };
83 typedef struct utmparr utmparr;
84 
85 extern bool_t xdr_utmparr (XDR *xdrs, struct utmparr *objp) __THROW;
86 
87 struct utmpidle {
88  struct ru_utmp ui_utmp;
89  unsigned int ui_idle;
90 };
91 
92 struct utmpidlearr {
93  struct utmpidle **uia_arr;
94  int uia_cnt;
95 };
96 
97 extern bool_t xdr_utmpidlearr (XDR *xdrs, struct utmpidlearr *objp) __THROW;
98 
99 #ifdef __cplusplus
100 }
101 #endif
102 
103 #define RUSERSPROG 100002
104 #define RUSERSVERS_3 3
105 
106 #if defined(__STDC__) || defined(__cplusplus)
107 #define RUSERSPROC_NUM 1
108 extern  int * rusersproc_num_3(void *, CLIENT *);
109 extern  int * rusersproc_num_3_svc(void *, struct svc_req *);
110 #define RUSERSPROC_NAMES 2
111 extern  utmp_array * rusersproc_names_3(void *, CLIENT *);
112 extern  utmp_array * rusersproc_names_3_svc(void *, struct svc_req *);
113 #define RUSERSPROC_ALLNAMES 3
114 extern  utmp_array * rusersproc_allnames_3(void *, CLIENT *);
115 extern  utmp_array * rusersproc_allnames_3_svc(void *, struct svc_req *);
116 extern int rusersprog_3_freeresult (SVCXPRT *, xdrproc_t, caddr_t);
117 
118 #else /* K&R C */
119 #define RUSERSPROC_NUM 1
120 extern  int * rusersproc_num_3();
121 extern  int * rusersproc_num_3_svc();
122 #define RUSERSPROC_NAMES 2
123 extern  utmp_array * rusersproc_names_3();
124 extern  utmp_array * rusersproc_names_3_svc();
125 #define RUSERSPROC_ALLNAMES 3
126 extern  utmp_array * rusersproc_allnames_3();
127 extern  utmp_array * rusersproc_allnames_3_svc();
128 extern int rusersprog_3_freeresult ();
129 #endif /* K&R C */
130 
131 /* the xdr functions */
132 
133 #if defined(__STDC__) || defined(__cplusplus)
134 extern  bool_t xdr_rusers_utmp (XDR *, rusers_utmp*);
135 extern  bool_t xdr_utmp_array (XDR *, utmp_array*);
136 
137 #else /* K&R C */
138 extern bool_t xdr_rusers_utmp ();
139 extern bool_t xdr_utmp_array ();
140 
141 #endif /* K&R C */
142 
143 #ifdef __cplusplus
144 }
145 #endif
146 
147 #endif /* !_RUSERS_H_RPCGEN */
148