r16945: Sync trunk -> 3.0 for 3.0.24 code. Still need
[samba.git] / source3 / include / rpc_unixinfo.h
1 /* 
2    Unix SMB/CIFS implementation.
3
4    Unixinfo definitions.
5
6    Copyright (C) Volker Lendecke 2005
7
8    This program is free software; you can redistribute it and/or modify
9    it under the terms of the GNU General Public License as published by
10    the Free Software Foundation; either version 2 of the License, or
11    (at your option) any later version.
12    
13    This program is distributed in the hope that it will be useful, 
14    but WITHOUT ANY WARRANTY; without even the implied warranty of
15    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16    GNU General Public License for more details.
17    
18    You should have received a copy of the GNU General Public License
19    along with this program; if not, write to the Free Software
20    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
21 */
22
23 #ifndef _RPC_UNIXINFO_H
24 #define _RPC_UNIXINFO_H
25
26 #define UNIXINFO_SID_TO_UID     0x00
27 #define UNIXINFO_UID_TO_SID     0x01
28 #define UNIXINFO_SID_TO_GID     0x02
29 #define UNIXINFO_GID_TO_SID     0x03
30 #define UNIXINFO_GETPWUID               0x04
31
32 typedef struct unixinfo_q_sid_to_uid {
33         DOM_SID sid;
34 } UNIXINFO_Q_SID_TO_UID;
35
36 typedef struct unixinfo_r_sid_to_uid {
37         UINT64_S uid;
38         NTSTATUS status;
39 } UNIXINFO_R_SID_TO_UID;
40
41 typedef struct unixinfo_q_uid_to_sid {
42         UINT64_S uid;
43 } UNIXINFO_Q_UID_TO_SID;
44
45 typedef struct unixinfo_r_uid_to_sid {
46         uint32 sidptr;
47         DOM_SID sid;
48         NTSTATUS status;
49 } UNIXINFO_R_UID_TO_SID;
50
51 typedef struct unixinfo_q_sid_to_gid {
52         DOM_SID sid;
53 } UNIXINFO_Q_SID_TO_GID;
54
55 typedef struct unixinfo_r_sid_to_gid {
56         UINT64_S gid;
57         NTSTATUS status;
58 } UNIXINFO_R_SID_TO_GID;
59
60 typedef struct unixinfo_q_gid_to_sid {
61         UINT64_S gid;
62 } UNIXINFO_Q_GID_TO_SID;
63
64 typedef struct unixinfo_r_gid_to_sid {
65         uint32 sidptr;
66         DOM_SID sid;
67         NTSTATUS status;
68 } UNIXINFO_R_GID_TO_SID;
69
70 typedef struct unixinfo_q_getpwuid {
71         uint32 count;
72         UINT64_S *uid;
73 } UNIXINFO_Q_GETPWUID;
74
75 struct unixinfo_getpwuid {
76         /* name, gid and gecos explicitly excluded, these values can be
77            retrieved via other means */
78         NTSTATUS status;
79         const char *homedir;
80         const char *shell;
81 };
82
83 typedef struct unixinfo_r_getpwuid {
84         uint32 count;
85         struct unixinfo_getpwuid *info;
86         NTSTATUS status;
87 } UNIXINFO_R_GETPWUID;
88
89 #endif  
90 /* 
91    Unix SMB/CIFS implementation.
92
93    Unixinfo definitions.
94
95    Copyright (C) Volker Lendecke 2005
96
97    This program is free software; you can redistribute it and/or modify
98    it under the terms of the GNU General Public License as published by
99    the Free Software Foundation; either version 2 of the License, or
100    (at your option) any later version.
101    
102    This program is distributed in the hope that it will be useful, 
103    but WITHOUT ANY WARRANTY; without even the implied warranty of
104    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
105    GNU General Public License for more details.
106    
107    You should have received a copy of the GNU General Public License
108    along with this program; if not, write to the Free Software
109    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
110 */
111
112 #ifndef _RPC_UNIXINFO_H
113 #define _RPC_UNIXINFO_H
114
115 #define UNIXINFO_SID_TO_UID     0x00
116 #define UNIXINFO_UID_TO_SID     0x01
117 #define UNIXINFO_SID_TO_GID     0x02
118 #define UNIXINFO_GID_TO_SID     0x03
119 #define UNIXINFO_GETPWUID               0x04
120
121 typedef struct unixinfo_q_sid_to_uid {
122         DOM_SID sid;
123 } UNIXINFO_Q_SID_TO_UID;
124
125 typedef struct unixinfo_r_sid_to_uid {
126         UINT64_S uid;
127         NTSTATUS status;
128 } UNIXINFO_R_SID_TO_UID;
129
130 typedef struct unixinfo_q_uid_to_sid {
131         UINT64_S uid;
132 } UNIXINFO_Q_UID_TO_SID;
133
134 typedef struct unixinfo_r_uid_to_sid {
135         uint32 sidptr;
136         DOM_SID sid;
137         NTSTATUS status;
138 } UNIXINFO_R_UID_TO_SID;
139
140 typedef struct unixinfo_q_sid_to_gid {
141         DOM_SID sid;
142 } UNIXINFO_Q_SID_TO_GID;
143
144 typedef struct unixinfo_r_sid_to_gid {
145         UINT64_S gid;
146         NTSTATUS status;
147 } UNIXINFO_R_SID_TO_GID;
148
149 typedef struct unixinfo_q_gid_to_sid {
150         UINT64_S gid;
151 } UNIXINFO_Q_GID_TO_SID;
152
153 typedef struct unixinfo_r_gid_to_sid {
154         uint32 sidptr;
155         DOM_SID sid;
156         NTSTATUS status;
157 } UNIXINFO_R_GID_TO_SID;
158
159 typedef struct unixinfo_q_getpwuid {
160         UINT64_S uid;
161 } UNIXINFO_Q_GETPWUID;
162
163 typedef struct unixinfo_r_getpwuid {
164         /* name and gid explicitly excluded, these values can be retrieved via
165            other means */
166         const char *gecos;
167         const char *homedir;
168         const char *shell;
169         NTSTATUS status;
170 } UNIXINFO_R_GETPWUID;
171
172 #endif