blob: e2ad269b3a146444135a7e36021d6940518be62e [file] [log] [blame]
sewardj8eb8bab2015-07-21 14:44:28 +00001/*--------------------------------------------------------------------*/
2/*--- Solaris-specific kernel interface for the repository cache ---*/
3/*--- protocol. vki-solaris-repcache.h ---*/
4/*--------------------------------------------------------------------*/
5
6/*
7 This file is part of Valgrind, a dynamic binary instrumentation
8 framework.
9
Elliott Hughesa0664b92017-04-18 17:46:52 -070010 Copyright (C) 2015-2016 Ivo Raisr
sewardj8eb8bab2015-07-21 14:44:28 +000011 ivosh@ivosh.net
12
13 This program is free software; you can redistribute it and/or
14 modify it under the terms of the GNU General Public License as
15 published by the Free Software Foundation; either version 2 of the
16 License, or (at your option) any later version.
17
18 This program is distributed in the hope that it will be useful, but
19 WITHOUT ANY WARRANTY; without even the implied warranty of
20 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
21 General Public License for more details.
22
23 You should have received a copy of the GNU General Public License
24 along with this program; if not, write to the Free Software
25 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
26 02111-1307, USA.
27
28 The GNU General Public License is contained in the file COPYING.
29*/
30
iraisr03a6b142015-08-11 09:12:40 +000031/* Copyright 2015-2015, Tomas Jedlicka <jedlickat@gmail.com>. */
32
sewardj8eb8bab2015-07-21 14:44:28 +000033#ifndef __VKI_SOLARIS_REPCACHE_H
34#define __VKI_SOLARIS_REPCACHE_H
35
36/* From <repcache_protocol.h> which is consolidation private. */
37#define VKI_REPOSITORY_DOOR_BASEVER (('R' << 24) | ('e' << 16) | ('p' << 8))
38
39#if (SOLARIS_REPCACHE_PROTOCOL_VERSION == 21)
40#define VKI_REPOSITORY_DOOR_VERSION (21 + VKI_REPOSITORY_DOOR_BASEVER)
41enum vki_rep_protocol_requestid {
42 VKI_REP_PROTOCOL_CLOSE = ('C' << 8),
43 VKI_REP_PROTOCOL_ENTITY_SETUP,
44 VKI_REP_PROTOCOL_ENTITY_NAME,
45 VKI_REP_PROTOCOL_ENTITY_PARENT_TYPE,
46 VKI_REP_PROTOCOL_ENTITY_GET_CHILD,
47 VKI_REP_PROTOCOL_ENTITY_GET_PARENT,
48 VKI_REP_PROTOCOL_ENTITY_GET,
49 VKI_REP_PROTOCOL_ENTITY_UPDATE,
50 VKI_REP_PROTOCOL_ENTITY_CREATE_CHILD,
51 VKI_REP_PROTOCOL_ENTITY_CREATE_PG,
52 VKI_REP_PROTOCOL_ENTITY_DELETE,
53 VKI_REP_PROTOCOL_ENTITY_RESET,
54 VKI_REP_PROTOCOL_ENTITY_TEARDOWN,
55 VKI_REP_PROTOCOL_ITER_SETUP,
56 VKI_REP_PROTOCOL_ITER_START,
57 VKI_REP_PROTOCOL_ITER_READ,
58 VKI_REP_PROTOCOL_ITER_READ_VALUE,
59 VKI_REP_PROTOCOL_ITER_RESET,
60 VKI_REP_PROTOCOL_ITER_TEARDOWN,
61 VKI_REP_PROTOCOL_NEXT_SNAPLEVEL,
62 VKI_REP_PROTOCOL_SNAPSHOT_TAKE,
63 VKI_REP_PROTOCOL_SNAPSHOT_TAKE_NAMED,
64 VKI_REP_PROTOCOL_SNAPSHOT_ATTACH,
65 VKI_REP_PROTOCOL_PROPERTY_GET_TYPE,
66 VKI_REP_PROTOCOL_PROPERTY_GET_VALUE,
67 VKI_REP_PROTOCOL_PROPERTYGRP_SETUP_WAIT,
68 VKI_REP_PROTOCOL_PROPERTYGRP_TX_START,
69 VKI_REP_PROTOCOL_PROPERTYGRP_TX_COMMIT,
70 VKI_REP_PROTOCOL_CLIENT_ADD_NOTIFY,
71 VKI_REP_PROTOCOL_CLIENT_WAIT,
72 VKI_REP_PROTOCOL_BACKUP,
73 VKI_REP_PROTOCOL_SET_AUDIT_ANNOTATION,
74 VKI_REP_PROTOCOL_SWITCH,
75};
76#elif (SOLARIS_REPCACHE_PROTOCOL_VERSION == 23)
77#define VKI_REPOSITORY_DOOR_VERSION (23 + VKI_REPOSITORY_DOOR_BASEVER)
78enum vki_rep_protocol_requestid {
79 VKI_REP_PROTOCOL_CLOSE = ('C' << 8),
80 VKI_REP_PROTOCOL_ENTITY_SETUP,
81 VKI_REP_PROTOCOL_ENTITY_NAME,
82 VKI_REP_PROTOCOL_ENTITY_PARENT_TYPE,
83 VKI_REP_PROTOCOL_ENTITY_GET_CHILD,
84 VKI_REP_PROTOCOL_ENTITY_GET_PARENT,
85 VKI_REP_PROTOCOL_ENTITY_GET,
86 VKI_REP_PROTOCOL_ENTITY_UPDATE,
87 VKI_REP_PROTOCOL_ENTITY_CREATE_CHILD,
88 VKI_REP_PROTOCOL_ENTITY_CREATE_PG,
89 VKI_REP_PROTOCOL_ENTITY_DELETE,
90 VKI_REP_PROTOCOL_ENTITY_UNDELETE,
91 VKI_REP_PROTOCOL_ENTITY_REMOVE,
92 VKI_REP_PROTOCOL_ENTITY_DELCUST,
93 VKI_REP_PROTOCOL_BUNDLE_REMOVE,
94 VKI_REP_PROTOCOL_ENTITY_RESET,
95 VKI_REP_PROTOCOL_ENTITY_TEARDOWN,
96 VKI_REP_PROTOCOL_ITER_SETUP,
97 VKI_REP_PROTOCOL_ITER_START,
98 VKI_REP_PROTOCOL_ITER_READ,
99 VKI_REP_PROTOCOL_ITER_READ_VALUE,
100 VKI_REP_PROTOCOL_ITER_RESET,
101 VKI_REP_PROTOCOL_ITER_TEARDOWN,
102 VKI_REP_PROTOCOL_NEXT_SNAPLEVEL,
103 VKI_REP_PROTOCOL_SNAPSHOT_TAKE,
104 VKI_REP_PROTOCOL_SNAPSHOT_TAKE_NAMED,
105 VKI_REP_PROTOCOL_SNAPSHOT_ATTACH,
106 VKI_REP_PROTOCOL_PROPERTY_GET_TYPE,
107 VKI_REP_PROTOCOL_PROPERTY_GET_VALUE,
108 VKI_REP_PROTOCOL_PG_SETUP_WAIT,
109 VKI_REP_PROTOCOL_PG_TX_START,
110 VKI_REP_PROTOCOL_PG_TX_COMMIT,
111 VKI_REP_PROTOCOL_PROP_BUNDLE_REMOVE,
112 VKI_REP_PROTOCOL_CLIENT_ADD_NOTIFY,
113 VKI_REP_PROTOCOL_CLIENT_WAIT,
114 VKI_REP_PROTOCOL_BACKUP,
115 VKI_REP_PROTOCOL_SET_AUDIT_ANNOTATION,
116 VKI_REP_PROTOCOL_UNSET_AUDIT_ANNOTATION,
117 VKI_REP_PROTOCOL_SET_TX_DECORATION,
118 VKI_REP_PROTOCOL_SWITCH,
119 VKI_REP_PROTOCOL_DECORATION_GET_LAYER,
120 VKI_REP_PROTOCOL_DECORATION_GET_TYPE,
121 VKI_REP_PROTOCOL_DECORATION_GET_VALUE,
122 VKI_REP_PROTOCOL_DECORATION_GET_BUNDLE,
123 VKI_REP_PROTOCOL_ENTITY_INCONFLICT,
124 VKI_REP_PROTOCOL_ENTITY_IS_MASKED,
125 VKI_REP_PROTOCOL_CLIENT_REMOVE_NOTIFY,
126};
127#elif (SOLARIS_REPCACHE_PROTOCOL_VERSION == 25)
128#define VKI_REPOSITORY_DOOR_VERSION (25 + VKI_REPOSITORY_DOOR_BASEVER)
129enum vki_rep_protocol_requestid {
130 VKI_REP_PROTOCOL_CLOSE = ('C' << 8),
131 VKI_REP_PROTOCOL_ENTITY_SETUP,
132 VKI_REP_PROTOCOL_ENTITY_NAME,
133 VKI_REP_PROTOCOL_ENTITY_FMRI,
134 VKI_REP_PROTOCOL_ENTITY_PARENT_TYPE,
135 VKI_REP_PROTOCOL_ENTITY_GET_CHILD,
136 VKI_REP_PROTOCOL_ENTITY_GET_PARENT,
137 VKI_REP_PROTOCOL_ENTITY_GET_ROOT,
138 VKI_REP_PROTOCOL_ENTITY_GET,
139 VKI_REP_PROTOCOL_ENTITY_UPDATE,
140 VKI_REP_PROTOCOL_ENTITY_CREATE_CHILD,
141 VKI_REP_PROTOCOL_ENTITY_CREATE_PG,
142 VKI_REP_PROTOCOL_ENTITY_DELETE,
143 VKI_REP_PROTOCOL_ENTITY_UNDELETE,
144 VKI_REP_PROTOCOL_ENTITY_REMOVE,
145 VKI_REP_PROTOCOL_ENTITY_DELCUST,
146 VKI_REP_PROTOCOL_BUNDLE_REMOVE,
147 VKI_REP_PROTOCOL_ENTITY_RESET,
148 VKI_REP_PROTOCOL_ENTITY_TEARDOWN,
149 VKI_REP_PROTOCOL_ITER_SETUP,
150 VKI_REP_PROTOCOL_ITER_START,
151 VKI_REP_PROTOCOL_ITER_READ,
152 VKI_REP_PROTOCOL_ITER_READ_VALUE,
153 VKI_REP_PROTOCOL_ITER_RESET,
154 VKI_REP_PROTOCOL_ITER_TEARDOWN,
155 VKI_REP_PROTOCOL_NEXT_SNAPLEVEL,
156 VKI_REP_PROTOCOL_SNAPSHOT_TAKE,
157 VKI_REP_PROTOCOL_SNAPSHOT_TAKE_NAMED,
158 VKI_REP_PROTOCOL_SNAPSHOT_ATTACH,
159 VKI_REP_PROTOCOL_PROPERTY_GET_TYPE,
160 VKI_REP_PROTOCOL_PROPERTY_GET_VALUE,
161 VKI_REP_PROTOCOL_PG_SETUP_WAIT,
162 VKI_REP_PROTOCOL_PG_TX_START,
163 VKI_REP_PROTOCOL_PG_TX_COMMIT,
164 VKI_REP_PROTOCOL_PROP_BUNDLE_REMOVE,
165 VKI_REP_PROTOCOL_CLIENT_ADD_NOTIFY,
166 VKI_REP_PROTOCOL_CLIENT_WAIT,
167 VKI_REP_PROTOCOL_BACKUP,
168 VKI_REP_PROTOCOL_SET_AUDIT_ANNOTATION,
169 VKI_REP_PROTOCOL_UNSET_AUDIT_ANNOTATION,
170 VKI_REP_PROTOCOL_SET_TX_DECORATION,
171 VKI_REP_PROTOCOL_SWITCH,
172 VKI_REP_PROTOCOL_DECORATION_GET_LAYER,
173 VKI_REP_PROTOCOL_DECORATION_GET_TYPE,
174 VKI_REP_PROTOCOL_DECORATION_GET_VALUE,
175 VKI_REP_PROTOCOL_DECORATION_GET_BUNDLE,
176 VKI_REP_PROTOCOL_ENTITY_INCONFLICT,
177 VKI_REP_PROTOCOL_ENTITY_IS_MASKED,
178 VKI_REP_PROTOCOL_CLIENT_REMOVE_NOTIFY,
179};
iraisr03a6b142015-08-11 09:12:40 +0000180#elif (SOLARIS_REPCACHE_PROTOCOL_VERSION == 26)
181#define VKI_REPOSITORY_DOOR_VERSION (26 + VKI_REPOSITORY_DOOR_BASEVER)
182enum vki_rep_protocol_requestid {
183 VKI_REP_PROTOCOL_CLOSE = ('C' << 8),
184 VKI_REP_PROTOCOL_ENTITY_SETUP,
185 VKI_REP_PROTOCOL_ENTITY_NAME,
186 VKI_REP_PROTOCOL_ENTITY_FMRI,
187 VKI_REP_PROTOCOL_ENTITY_PARENT_TYPE,
188 VKI_REP_PROTOCOL_ENTITY_GET_CHILD,
189 VKI_REP_PROTOCOL_ENTITY_GET_PARENT,
190 VKI_REP_PROTOCOL_ENTITY_GET_ROOT,
191 VKI_REP_PROTOCOL_ENTITY_GET,
192 VKI_REP_PROTOCOL_ENTITY_UPDATE,
193 VKI_REP_PROTOCOL_ENTITY_CREATE_CHILD,
194 VKI_REP_PROTOCOL_ENTITY_CREATE_PG,
195 VKI_REP_PROTOCOL_ENTITY_DELETE,
196 VKI_REP_PROTOCOL_ENTITY_UNDELETE,
197 VKI_REP_PROTOCOL_ENTITY_REMOVE,
198 VKI_REP_PROTOCOL_ENTITY_DELCUST,
199 VKI_REP_PROTOCOL_BUNDLE_REMOVE,
200 VKI_REP_PROTOCOL_ENTITY_RESET,
201 VKI_REP_PROTOCOL_ENTITY_TEARDOWN,
202 VKI_REP_PROTOCOL_ITER_SETUP,
203 VKI_REP_PROTOCOL_ITER_START,
204 VKI_REP_PROTOCOL_ITER_READ,
205 VKI_REP_PROTOCOL_ITER_READ_VALUE,
206 VKI_REP_PROTOCOL_ITER_RESET,
207 VKI_REP_PROTOCOL_ITER_TEARDOWN,
208 VKI_REP_PROTOCOL_NEXT_SNAPLEVEL,
209 VKI_REP_PROTOCOL_SNAPSHOT_TAKE,
210 VKI_REP_PROTOCOL_SNAPSHOT_TAKE_NAMED,
211 VKI_REP_PROTOCOL_SNAPSHOT_ATTACH,
212 VKI_REP_PROTOCOL_PROPERTY_GET_TYPE,
213 VKI_REP_PROTOCOL_PROPERTY_GET_VALUE,
214 VKI_REP_PROTOCOL_PG_SETUP_WAIT,
215 VKI_REP_PROTOCOL_PG_TX_START,
216 VKI_REP_PROTOCOL_PG_TX_COMMIT,
217 VKI_REP_PROTOCOL_PROP_BUNDLE_REMOVE,
218 VKI_REP_PROTOCOL_CLIENT_ADD_NOTIFY,
219 VKI_REP_PROTOCOL_CLIENT_WAIT,
220 VKI_REP_PROTOCOL_BACKUP,
221 VKI_REP_PROTOCOL_SET_AUDIT_ANNOTATION,
222 VKI_REP_PROTOCOL_UNSET_AUDIT_ANNOTATION,
223 VKI_REP_PROTOCOL_SET_TX_DECORATION,
224 VKI_REP_PROTOCOL_SWITCH,
225 VKI_REP_PROTOCOL_DECORATION_GET_LAYER,
226 VKI_REP_PROTOCOL_DECORATION_GET_TYPE,
227 VKI_REP_PROTOCOL_DECORATION_GET_VALUE,
228 VKI_REP_PROTOCOL_DECORATION_GET_BUNDLE,
229 VKI_REP_PROTOCOL_ENTITY_INCONFLICT,
230 VKI_REP_PROTOCOL_ENTITY_IS_MASKED,
231 VKI_REP_PROTOCOL_CLIENT_REMOVE_NOTIFY,
232 VKI_REP_PROTOCOL_MAX_REQUEST
233};
Elliott Hughesa0664b92017-04-18 17:46:52 -0700234#elif (SOLARIS_REPCACHE_PROTOCOL_VERSION == 27)
235#define VKI_REPOSITORY_DOOR_VERSION (27 + VKI_REPOSITORY_DOOR_BASEVER)
236enum vki_rep_protocol_requestid {
237 VKI_REP_PROTOCOL_CLOSE = ('C' << 8),
238 VKI_REP_PROTOCOL_ENTITY_SETUP,
239 VKI_REP_PROTOCOL_ENTITY_NAME,
240 VKI_REP_PROTOCOL_ENTITY_FMRI,
241 VKI_REP_PROTOCOL_ENTITY_PARENT_TYPE,
242 VKI_REP_PROTOCOL_ENTITY_GET_CHILD,
243 VKI_REP_PROTOCOL_ENTITY_GET_PARENT,
244 VKI_REP_PROTOCOL_ENTITY_GET_ROOT,
245 VKI_REP_PROTOCOL_ENTITY_GET,
246 VKI_REP_PROTOCOL_ENTITY_UPDATE,
247 VKI_REP_PROTOCOL_ENTITY_CREATE_CHILD,
248 VKI_REP_PROTOCOL_ENTITY_CREATE_PG,
249 VKI_REP_PROTOCOL_ENTITY_DELETE,
250 VKI_REP_PROTOCOL_ENTITY_UNDELETE,
251 VKI_REP_PROTOCOL_ENTITY_REMOVE,
252 VKI_REP_PROTOCOL_ENTITY_DELCUST,
253 VKI_REP_PROTOCOL_BUNDLE_REMOVE,
254 VKI_REP_PROTOCOL_ENTITY_RESET,
255 VKI_REP_PROTOCOL_ENTITY_TEARDOWN,
256 VKI_REP_PROTOCOL_ITER_SETUP,
257 VKI_REP_PROTOCOL_ITER_START,
258 VKI_REP_PROTOCOL_ITER_READ,
259 VKI_REP_PROTOCOL_ITER_READ_VALUE,
260 VKI_REP_PROTOCOL_ITER_RESET,
261 VKI_REP_PROTOCOL_ITER_TEARDOWN,
262 VKI_REP_PROTOCOL_NEXT_SNAPLEVEL,
263 VKI_REP_PROTOCOL_SNAPSHOT_TAKE,
264 VKI_REP_PROTOCOL_SNAPSHOT_TAKE_NAMED,
265 VKI_REP_PROTOCOL_SNAPSHOT_ATTACH,
266 VKI_REP_PROTOCOL_PROPERTY_GET_TYPE,
267 VKI_REP_PROTOCOL_PROPERTY_GET_VALUE,
268 VKI_REP_PROTOCOL_PG_SETUP_WAIT,
269 VKI_REP_PROTOCOL_PG_TX_START,
270 VKI_REP_PROTOCOL_PG_TX_COMMIT,
271 VKI_REP_PROTOCOL_PROP_BUNDLE_REMOVE,
272 VKI_REP_PROTOCOL_CLIENT_ADD_NOTIFY,
273 VKI_REP_PROTOCOL_CLIENT_WAIT,
274 VKI_REP_PROTOCOL_BACKUP,
275 VKI_REP_PROTOCOL_SET_AUDIT_ANNOTATION,
276 VKI_REP_PROTOCOL_UNSET_AUDIT_ANNOTATION,
277 VKI_REP_PROTOCOL_SET_TX_DECORATION,
278 VKI_REP_PROTOCOL_SWITCH,
279 VKI_REP_PROTOCOL_DECORATION_GET_LAYER,
280 VKI_REP_PROTOCOL_DECORATION_GET_TYPE,
281 VKI_REP_PROTOCOL_DECORATION_GET_VALUE,
282 VKI_REP_PROTOCOL_DECORATION_GET_BUNDLE,
283 VKI_REP_PROTOCOL_ENTITY_INCONFLICT,
284 VKI_REP_PROTOCOL_ENTITY_IS_MASKED,
285 VKI_REP_PROTOCOL_CLIENT_REMOVE_NOTIFY,
286 VKI_REP_PROTOCOL_MAX_REQUEST
287};
288#elif (SOLARIS_REPCACHE_PROTOCOL_VERSION == 31)
289#define VKI_REPOSITORY_DOOR_VERSION (31 + VKI_REPOSITORY_DOOR_BASEVER)
290enum vki_rep_protocol_requestid {
291 VKI_REP_PROTOCOL_CLOSE = ('C' << 8),
292 VKI_REP_PROTOCOL_ENTITY_SETUP,
293 VKI_REP_PROTOCOL_ENTITY_NAME,
294 VKI_REP_PROTOCOL_ENTITY_PARENT_TYPE,
295 VKI_REP_PROTOCOL_ENTITY_GET_CHILD,
296 VKI_REP_PROTOCOL_ENTITY_GET_CHILD_COMPOSED,
297 VKI_REP_PROTOCOL_ENTITY_GET_PARENT,
298 VKI_REP_PROTOCOL_ENTITY_GET_ROOT,
299 VKI_REP_PROTOCOL_ENTITY_GET,
300 VKI_REP_PROTOCOL_ENTITY_UPDATE,
301 VKI_REP_PROTOCOL_ENTITY_CREATE_CHILD,
302 VKI_REP_PROTOCOL_ENTITY_CREATE_PG,
303 VKI_REP_PROTOCOL_ENTITY_DELETE,
304 VKI_REP_PROTOCOL_ENTITY_UNDELETE,
305 VKI_REP_PROTOCOL_ENTITY_REMOVE,
306 VKI_REP_PROTOCOL_ENTITY_DELCUST,
307 VKI_REP_PROTOCOL_BUNDLE_REMOVE,
308 VKI_REP_PROTOCOL_ENTITY_RESET,
309 VKI_REP_PROTOCOL_ENTITY_TEARDOWN,
310 VKI_REP_PROTOCOL_ITER_SETUP,
311 VKI_REP_PROTOCOL_ITER_START,
312 VKI_REP_PROTOCOL_ITER_READ,
313 VKI_REP_PROTOCOL_ITER_READ_VALUE,
314 VKI_REP_PROTOCOL_ITER_RESET,
315 VKI_REP_PROTOCOL_ITER_TEARDOWN,
316 VKI_REP_PROTOCOL_NEXT_SNAPLEVEL,
317 VKI_REP_PROTOCOL_SNAPSHOT_TAKE,
318 VKI_REP_PROTOCOL_SNAPSHOT_TAKE_NAMED,
319 VKI_REP_PROTOCOL_SNAPSHOT_ATTACH,
320 VKI_REP_PROTOCOL_PROPERTY_GET_TYPE,
321 VKI_REP_PROTOCOL_PROPERTY_GET_VALUE,
322 VKI_REP_PROTOCOL_PG_SETUP_WAIT,
323 VKI_REP_PROTOCOL_PG_TX_START,
324 VKI_REP_PROTOCOL_PG_TX_COMMIT,
325 VKI_REP_PROTOCOL_PROP_BUNDLE_REMOVE,
326 VKI_REP_PROTOCOL_CLIENT_ADD_NOTIFY,
327 VKI_REP_PROTOCOL_CLIENT_WAIT,
328 VKI_REP_PROTOCOL_BACKUP,
329 VKI_REP_PROTOCOL_SET_AUDIT_ANNOTATION,
330 VKI_REP_PROTOCOL_UNSET_AUDIT_ANNOTATION,
331 VKI_REP_PROTOCOL_SET_LAYER,
332 VKI_REP_PROTOCOL_SWITCH,
333 VKI_REP_PROTOCOL_DECORATION_GET_LAYER,
334 VKI_REP_PROTOCOL_DECORATION_GET_TYPE,
335 VKI_REP_PROTOCOL_DECORATION_GET_VALUE,
336 VKI_REP_PROTOCOL_DECORATION_GET_BUNDLE,
337 VKI_REP_PROTOCOL_ENTITY_INCONFLICT,
338 VKI_REP_PROTOCOL_ENTITY_IS_MASKED,
339 VKI_REP_PROTOCOL_CLIENT_REMOVE_NOTIFY,
340 VKI_REP_PROTOCOL_MAX_REQUEST
341};
sewardj8eb8bab2015-07-21 14:44:28 +0000342#else
343#error Unsupported repcache protocol version
344#endif
345
Elliott Hughesa0664b92017-04-18 17:46:52 -0700346/* The following definitions are currently stable accross all repcache protocol
347 versions. If there is any change to them, they need to be versioned
348 properly so that Valgrind works on older versions. */
349
sewardj8eb8bab2015-07-21 14:44:28 +0000350#define VKI_REPOSITORY_DOOR_NAME "/system/volatile/repository_door"
351#define VKI_REP_PROTOCOL_NAME_LEN 120
Elliott Hughesa0664b92017-04-18 17:46:52 -0700352typedef vki_uint32_t vki_repcache_entity_id_t;
sewardj8eb8bab2015-07-21 14:44:28 +0000353enum vki_repository_door_requestid {
354 VKI_REPOSITORY_DOOR_REQUEST_CONNECT = (('M' << 8) | 1)
355};
356enum vki_repository_door_statusid {
357 VKI_REPOSITORY_DOOR_SUCCESS = 0,
358 VKI_REPOSITORY_DOOR_FAIL_BAD_REQUEST = 1,
359 VKI_REPOSITORY_DOOR_FAIL_VERSION_MISMATCH = 2,
360 VKI_REPOSITORY_DOOR_FAIL_BAD_FLAG = 3,
361 VKI_REPOSITORY_DOOR_FAIL_NO_RESOURCES = 4,
362 VKI_REPOSITORY_DOOR_FAIL_PERMISSION_DENIED = 5
363};
364typedef struct vki_repository_door_request {
365 vki_uint32_t rdr_version;
366 enum vki_repository_door_requestid rdr_request;
367 vki_uint32_t rdr_flags;
368 vki_uint32_t rdr_debug;
369} vki_repository_door_request_t;
370typedef struct vki_repository_door_response {
371 enum vki_repository_door_statusid rdr_status;
372} vki_repository_door_response_t;
373typedef struct vki_rep_protocol_request {
374 enum vki_rep_protocol_requestid rpr_request;
375} vki_rep_protocol_request_t;
376struct vki_rep_protocol_entity_setup {
377 enum vki_rep_protocol_requestid rpr_request;
Elliott Hughesa0664b92017-04-18 17:46:52 -0700378 vki_repcache_entity_id_t rpr_entityid;
sewardj8eb8bab2015-07-21 14:44:28 +0000379 vki_uint32_t rpr_entitytype;
380};
381struct vki_rep_protocol_entity_name {
382 enum vki_rep_protocol_requestid rpr_request;
Elliott Hughesa0664b92017-04-18 17:46:52 -0700383 vki_repcache_entity_id_t rpr_entityid;
sewardj8eb8bab2015-07-21 14:44:28 +0000384 vki_uint32_t rpr_answertype;
385};
Elliott Hughesa0664b92017-04-18 17:46:52 -0700386struct vki_rep_protocol_entity_fmri {
387 enum vki_rep_protocol_requestid rpr_request;
388 vki_repcache_entity_id_t rpr_entityid;
389};
sewardj8eb8bab2015-07-21 14:44:28 +0000390struct vki_rep_protocol_entity_get {
391 enum vki_rep_protocol_requestid rpr_request;
Elliott Hughesa0664b92017-04-18 17:46:52 -0700392 vki_repcache_entity_id_t rpr_entityid;
sewardj8eb8bab2015-07-21 14:44:28 +0000393 vki_uint32_t rpr_object;
394};
395struct vki_rep_protocol_entity_get_child {
396 enum vki_rep_protocol_requestid rpr_request;
Elliott Hughesa0664b92017-04-18 17:46:52 -0700397 vki_repcache_entity_id_t rpr_entityid;
398 vki_repcache_entity_id_t rpr_childid;
sewardj8eb8bab2015-07-21 14:44:28 +0000399 char rpr_name[VKI_REP_PROTOCOL_NAME_LEN];
400};
401struct vki_rep_protocol_entity_parent {
402 enum vki_rep_protocol_requestid rpr_request;
Elliott Hughesa0664b92017-04-18 17:46:52 -0700403 vki_repcache_entity_id_t rpr_entityid;
404 vki_repcache_entity_id_t rpr_outid;
sewardj8eb8bab2015-07-21 14:44:28 +0000405};
iraisr03a6b142015-08-11 09:12:40 +0000406struct vki_rep_protocol_entity_root {
407 enum vki_rep_protocol_requestid rpr_request;
Elliott Hughesa0664b92017-04-18 17:46:52 -0700408 vki_repcache_entity_id_t rpr_entityid;
409 vki_repcache_entity_id_t rpr_outid;
iraisr03a6b142015-08-11 09:12:40 +0000410};
sewardj8eb8bab2015-07-21 14:44:28 +0000411struct vki_rep_protocol_entity_reset {
412 enum vki_rep_protocol_requestid rpr_request;
Elliott Hughesa0664b92017-04-18 17:46:52 -0700413 vki_repcache_entity_id_t rpr_entityid;
sewardj8eb8bab2015-07-21 14:44:28 +0000414};
415struct vki_rep_protocol_entity_teardown {
416 enum vki_rep_protocol_requestid rpr_request;
Elliott Hughesa0664b92017-04-18 17:46:52 -0700417 vki_repcache_entity_id_t rpr_entityid;
sewardj8eb8bab2015-07-21 14:44:28 +0000418};
419struct vki_rep_protocol_iter_read {
420 enum vki_rep_protocol_requestid rpr_request;
421 vki_uint32_t rpr_iterid;
422 vki_uint32_t rpr_sequence;
Elliott Hughesa0664b92017-04-18 17:46:52 -0700423 vki_repcache_entity_id_t rpr_entityid;
sewardj8eb8bab2015-07-21 14:44:28 +0000424};
425struct vki_rep_protocol_iter_read_value {
426 enum vki_rep_protocol_requestid rpr_request;
427 vki_uint32_t rpr_iterid;
428 vki_uint32_t rpr_sequence;
429};
430struct vki_rep_protocol_iter_request {
431 enum vki_rep_protocol_requestid rpr_request;
432 vki_uint32_t rpr_iterid;
433};
434struct vki_rep_protocol_iter_start {
435 enum vki_rep_protocol_requestid rpr_request;
436 vki_uint32_t rpr_iterid;
Elliott Hughesa0664b92017-04-18 17:46:52 -0700437 vki_repcache_entity_id_t rpr_entity;
sewardj8eb8bab2015-07-21 14:44:28 +0000438 vki_uint32_t rpr_itertype;
439 vki_uint32_t rpr_flags;
440 char rpr_pattern[VKI_REP_PROTOCOL_NAME_LEN];
441};
442struct vki_rep_protocol_property_request {
443 enum vki_rep_protocol_requestid rpr_request;
Elliott Hughesa0664b92017-04-18 17:46:52 -0700444 vki_repcache_entity_id_t rpr_entityid;
sewardj8eb8bab2015-07-21 14:44:28 +0000445};
446
447
448
449
Elliott Hughesa0664b92017-04-18 17:46:52 -0700450#endif /* __VKI_SOLARIS_REPCACHE_H */