Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-01-30 10:25:33

0001 /*--------------------------------------------------------------------*/
0002 /*--- Solaris-specific kernel interface for the repository cache   ---*/
0003 /*--- protocol.                             vki-solaris-repcache.h ---*/
0004 /*--------------------------------------------------------------------*/
0005 
0006 /*
0007    This file is part of Valgrind, a dynamic binary instrumentation
0008    framework.
0009 
0010    Copyright (C) 2015-2017 Ivo Raisr
0011       ivosh@ivosh.net
0012 
0013    This program is free software; you can redistribute it and/or
0014    modify it under the terms of the GNU General Public License as
0015    published by the Free Software Foundation; either version 2 of the
0016    License, or (at your option) any later version.
0017 
0018    This program is distributed in the hope that it will be useful, but
0019    WITHOUT ANY WARRANTY; without even the implied warranty of
0020    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
0021    General Public License for more details.
0022 
0023    You should have received a copy of the GNU General Public License
0024    along with this program; if not, see <http://www.gnu.org/licenses/>.
0025 
0026    The GNU General Public License is contained in the file COPYING.
0027 */
0028 
0029 /* Copyright 2015-2017, Tomas Jedlicka <jedlickat@gmail.com>. */
0030 
0031 #ifndef __VKI_SOLARIS_REPCACHE_H
0032 #define __VKI_SOLARIS_REPCACHE_H
0033 
0034 /* From <repcache_protocol.h> which is consolidation private. */
0035 #define VKI_REPOSITORY_DOOR_BASEVER (('R' << 24) | ('e' << 16) | ('p' << 8))
0036 
0037 #if (SOLARIS_REPCACHE_PROTOCOL_VERSION == 21)
0038 #define VKI_REPOSITORY_DOOR_VERSION (21 + VKI_REPOSITORY_DOOR_BASEVER)
0039 enum vki_rep_protocol_requestid {
0040    VKI_REP_PROTOCOL_CLOSE = ('C' << 8),
0041    VKI_REP_PROTOCOL_ENTITY_SETUP,
0042    VKI_REP_PROTOCOL_ENTITY_NAME,
0043    VKI_REP_PROTOCOL_ENTITY_PARENT_TYPE,
0044    VKI_REP_PROTOCOL_ENTITY_GET_CHILD,
0045    VKI_REP_PROTOCOL_ENTITY_GET_PARENT,
0046    VKI_REP_PROTOCOL_ENTITY_GET,
0047    VKI_REP_PROTOCOL_ENTITY_UPDATE,
0048    VKI_REP_PROTOCOL_ENTITY_CREATE_CHILD,
0049    VKI_REP_PROTOCOL_ENTITY_CREATE_PG,
0050    VKI_REP_PROTOCOL_ENTITY_DELETE,
0051    VKI_REP_PROTOCOL_ENTITY_RESET,
0052    VKI_REP_PROTOCOL_ENTITY_TEARDOWN,
0053    VKI_REP_PROTOCOL_ITER_SETUP,
0054    VKI_REP_PROTOCOL_ITER_START,
0055    VKI_REP_PROTOCOL_ITER_READ,
0056    VKI_REP_PROTOCOL_ITER_READ_VALUE,
0057    VKI_REP_PROTOCOL_ITER_RESET,
0058    VKI_REP_PROTOCOL_ITER_TEARDOWN,
0059    VKI_REP_PROTOCOL_NEXT_SNAPLEVEL,
0060    VKI_REP_PROTOCOL_SNAPSHOT_TAKE,
0061    VKI_REP_PROTOCOL_SNAPSHOT_TAKE_NAMED,
0062    VKI_REP_PROTOCOL_SNAPSHOT_ATTACH,
0063    VKI_REP_PROTOCOL_PROPERTY_GET_TYPE,
0064    VKI_REP_PROTOCOL_PROPERTY_GET_VALUE,
0065    VKI_REP_PROTOCOL_PROPERTYGRP_SETUP_WAIT,
0066    VKI_REP_PROTOCOL_PROPERTYGRP_TX_START,
0067    VKI_REP_PROTOCOL_PROPERTYGRP_TX_COMMIT,
0068    VKI_REP_PROTOCOL_CLIENT_ADD_NOTIFY,
0069    VKI_REP_PROTOCOL_CLIENT_WAIT,
0070    VKI_REP_PROTOCOL_BACKUP,
0071    VKI_REP_PROTOCOL_SET_AUDIT_ANNOTATION,
0072    VKI_REP_PROTOCOL_SWITCH,
0073 };
0074 #elif (SOLARIS_REPCACHE_PROTOCOL_VERSION == 23)
0075 #define VKI_REPOSITORY_DOOR_VERSION (23 + VKI_REPOSITORY_DOOR_BASEVER)
0076 enum vki_rep_protocol_requestid {
0077    VKI_REP_PROTOCOL_CLOSE = ('C' << 8),
0078    VKI_REP_PROTOCOL_ENTITY_SETUP,
0079    VKI_REP_PROTOCOL_ENTITY_NAME,
0080    VKI_REP_PROTOCOL_ENTITY_PARENT_TYPE,
0081    VKI_REP_PROTOCOL_ENTITY_GET_CHILD,
0082    VKI_REP_PROTOCOL_ENTITY_GET_PARENT,
0083    VKI_REP_PROTOCOL_ENTITY_GET,
0084    VKI_REP_PROTOCOL_ENTITY_UPDATE,
0085    VKI_REP_PROTOCOL_ENTITY_CREATE_CHILD,
0086    VKI_REP_PROTOCOL_ENTITY_CREATE_PG,
0087    VKI_REP_PROTOCOL_ENTITY_DELETE,
0088    VKI_REP_PROTOCOL_ENTITY_UNDELETE,
0089    VKI_REP_PROTOCOL_ENTITY_REMOVE,
0090    VKI_REP_PROTOCOL_ENTITY_DELCUST,
0091    VKI_REP_PROTOCOL_BUNDLE_REMOVE,
0092    VKI_REP_PROTOCOL_ENTITY_RESET,
0093    VKI_REP_PROTOCOL_ENTITY_TEARDOWN,
0094    VKI_REP_PROTOCOL_ITER_SETUP,
0095    VKI_REP_PROTOCOL_ITER_START,
0096    VKI_REP_PROTOCOL_ITER_READ,
0097    VKI_REP_PROTOCOL_ITER_READ_VALUE,
0098    VKI_REP_PROTOCOL_ITER_RESET,
0099    VKI_REP_PROTOCOL_ITER_TEARDOWN,
0100    VKI_REP_PROTOCOL_NEXT_SNAPLEVEL,
0101    VKI_REP_PROTOCOL_SNAPSHOT_TAKE,
0102    VKI_REP_PROTOCOL_SNAPSHOT_TAKE_NAMED,
0103    VKI_REP_PROTOCOL_SNAPSHOT_ATTACH,
0104    VKI_REP_PROTOCOL_PROPERTY_GET_TYPE,
0105    VKI_REP_PROTOCOL_PROPERTY_GET_VALUE,
0106    VKI_REP_PROTOCOL_PG_SETUP_WAIT,
0107    VKI_REP_PROTOCOL_PG_TX_START,
0108    VKI_REP_PROTOCOL_PG_TX_COMMIT,
0109    VKI_REP_PROTOCOL_PROP_BUNDLE_REMOVE,
0110    VKI_REP_PROTOCOL_CLIENT_ADD_NOTIFY,
0111    VKI_REP_PROTOCOL_CLIENT_WAIT,
0112    VKI_REP_PROTOCOL_BACKUP,
0113    VKI_REP_PROTOCOL_SET_AUDIT_ANNOTATION,
0114    VKI_REP_PROTOCOL_UNSET_AUDIT_ANNOTATION,
0115    VKI_REP_PROTOCOL_SET_TX_DECORATION,
0116    VKI_REP_PROTOCOL_SWITCH,
0117    VKI_REP_PROTOCOL_DECORATION_GET_LAYER,
0118    VKI_REP_PROTOCOL_DECORATION_GET_TYPE,
0119    VKI_REP_PROTOCOL_DECORATION_GET_VALUE,
0120    VKI_REP_PROTOCOL_DECORATION_GET_BUNDLE,
0121    VKI_REP_PROTOCOL_ENTITY_INCONFLICT,
0122    VKI_REP_PROTOCOL_ENTITY_IS_MASKED,
0123    VKI_REP_PROTOCOL_CLIENT_REMOVE_NOTIFY,
0124 };
0125 #elif (SOLARIS_REPCACHE_PROTOCOL_VERSION == 25)
0126 #define VKI_REPOSITORY_DOOR_VERSION (25 + VKI_REPOSITORY_DOOR_BASEVER)
0127 enum vki_rep_protocol_requestid {
0128    VKI_REP_PROTOCOL_CLOSE = ('C' << 8),
0129    VKI_REP_PROTOCOL_ENTITY_SETUP,
0130    VKI_REP_PROTOCOL_ENTITY_NAME,
0131    VKI_REP_PROTOCOL_ENTITY_FMRI,
0132    VKI_REP_PROTOCOL_ENTITY_PARENT_TYPE,
0133    VKI_REP_PROTOCOL_ENTITY_GET_CHILD,
0134    VKI_REP_PROTOCOL_ENTITY_GET_PARENT,
0135    VKI_REP_PROTOCOL_ENTITY_GET_ROOT,
0136    VKI_REP_PROTOCOL_ENTITY_GET,
0137    VKI_REP_PROTOCOL_ENTITY_UPDATE,
0138    VKI_REP_PROTOCOL_ENTITY_CREATE_CHILD,
0139    VKI_REP_PROTOCOL_ENTITY_CREATE_PG,
0140    VKI_REP_PROTOCOL_ENTITY_DELETE,
0141    VKI_REP_PROTOCOL_ENTITY_UNDELETE,
0142    VKI_REP_PROTOCOL_ENTITY_REMOVE,
0143    VKI_REP_PROTOCOL_ENTITY_DELCUST,
0144    VKI_REP_PROTOCOL_BUNDLE_REMOVE,
0145    VKI_REP_PROTOCOL_ENTITY_RESET,
0146    VKI_REP_PROTOCOL_ENTITY_TEARDOWN,
0147    VKI_REP_PROTOCOL_ITER_SETUP,
0148    VKI_REP_PROTOCOL_ITER_START,
0149    VKI_REP_PROTOCOL_ITER_READ,
0150    VKI_REP_PROTOCOL_ITER_READ_VALUE,
0151    VKI_REP_PROTOCOL_ITER_RESET,
0152    VKI_REP_PROTOCOL_ITER_TEARDOWN,
0153    VKI_REP_PROTOCOL_NEXT_SNAPLEVEL,
0154    VKI_REP_PROTOCOL_SNAPSHOT_TAKE,
0155    VKI_REP_PROTOCOL_SNAPSHOT_TAKE_NAMED,
0156    VKI_REP_PROTOCOL_SNAPSHOT_ATTACH,
0157    VKI_REP_PROTOCOL_PROPERTY_GET_TYPE,
0158    VKI_REP_PROTOCOL_PROPERTY_GET_VALUE,
0159    VKI_REP_PROTOCOL_PG_SETUP_WAIT,
0160    VKI_REP_PROTOCOL_PG_TX_START,
0161    VKI_REP_PROTOCOL_PG_TX_COMMIT,
0162    VKI_REP_PROTOCOL_PROP_BUNDLE_REMOVE,
0163    VKI_REP_PROTOCOL_CLIENT_ADD_NOTIFY,
0164    VKI_REP_PROTOCOL_CLIENT_WAIT,
0165    VKI_REP_PROTOCOL_BACKUP,
0166    VKI_REP_PROTOCOL_SET_AUDIT_ANNOTATION,
0167    VKI_REP_PROTOCOL_UNSET_AUDIT_ANNOTATION,
0168    VKI_REP_PROTOCOL_SET_TX_DECORATION,
0169    VKI_REP_PROTOCOL_SWITCH,
0170    VKI_REP_PROTOCOL_DECORATION_GET_LAYER,
0171    VKI_REP_PROTOCOL_DECORATION_GET_TYPE,
0172    VKI_REP_PROTOCOL_DECORATION_GET_VALUE,
0173    VKI_REP_PROTOCOL_DECORATION_GET_BUNDLE,
0174    VKI_REP_PROTOCOL_ENTITY_INCONFLICT,
0175    VKI_REP_PROTOCOL_ENTITY_IS_MASKED,
0176    VKI_REP_PROTOCOL_CLIENT_REMOVE_NOTIFY,
0177 };
0178 #elif (SOLARIS_REPCACHE_PROTOCOL_VERSION == 26)
0179 #define VKI_REPOSITORY_DOOR_VERSION (26 + VKI_REPOSITORY_DOOR_BASEVER)
0180 enum vki_rep_protocol_requestid {
0181    VKI_REP_PROTOCOL_CLOSE = ('C' << 8),
0182    VKI_REP_PROTOCOL_ENTITY_SETUP,
0183    VKI_REP_PROTOCOL_ENTITY_NAME,
0184    VKI_REP_PROTOCOL_ENTITY_FMRI,
0185    VKI_REP_PROTOCOL_ENTITY_PARENT_TYPE,
0186    VKI_REP_PROTOCOL_ENTITY_GET_CHILD,
0187    VKI_REP_PROTOCOL_ENTITY_GET_PARENT,
0188    VKI_REP_PROTOCOL_ENTITY_GET_ROOT,
0189    VKI_REP_PROTOCOL_ENTITY_GET,
0190    VKI_REP_PROTOCOL_ENTITY_UPDATE,
0191    VKI_REP_PROTOCOL_ENTITY_CREATE_CHILD,
0192    VKI_REP_PROTOCOL_ENTITY_CREATE_PG,
0193    VKI_REP_PROTOCOL_ENTITY_DELETE,
0194    VKI_REP_PROTOCOL_ENTITY_UNDELETE,
0195    VKI_REP_PROTOCOL_ENTITY_REMOVE,
0196    VKI_REP_PROTOCOL_ENTITY_DELCUST,
0197    VKI_REP_PROTOCOL_BUNDLE_REMOVE,
0198    VKI_REP_PROTOCOL_ENTITY_RESET,
0199    VKI_REP_PROTOCOL_ENTITY_TEARDOWN,
0200    VKI_REP_PROTOCOL_ITER_SETUP,
0201    VKI_REP_PROTOCOL_ITER_START,
0202    VKI_REP_PROTOCOL_ITER_READ,
0203    VKI_REP_PROTOCOL_ITER_READ_VALUE,
0204    VKI_REP_PROTOCOL_ITER_RESET,
0205    VKI_REP_PROTOCOL_ITER_TEARDOWN,
0206    VKI_REP_PROTOCOL_NEXT_SNAPLEVEL,
0207    VKI_REP_PROTOCOL_SNAPSHOT_TAKE,
0208    VKI_REP_PROTOCOL_SNAPSHOT_TAKE_NAMED,
0209    VKI_REP_PROTOCOL_SNAPSHOT_ATTACH,
0210    VKI_REP_PROTOCOL_PROPERTY_GET_TYPE,
0211    VKI_REP_PROTOCOL_PROPERTY_GET_VALUE,
0212    VKI_REP_PROTOCOL_PG_SETUP_WAIT,
0213    VKI_REP_PROTOCOL_PG_TX_START,
0214    VKI_REP_PROTOCOL_PG_TX_COMMIT,
0215    VKI_REP_PROTOCOL_PROP_BUNDLE_REMOVE,
0216    VKI_REP_PROTOCOL_CLIENT_ADD_NOTIFY,
0217    VKI_REP_PROTOCOL_CLIENT_WAIT,
0218    VKI_REP_PROTOCOL_BACKUP,
0219    VKI_REP_PROTOCOL_SET_AUDIT_ANNOTATION,
0220    VKI_REP_PROTOCOL_UNSET_AUDIT_ANNOTATION,
0221    VKI_REP_PROTOCOL_SET_TX_DECORATION,
0222    VKI_REP_PROTOCOL_SWITCH,
0223    VKI_REP_PROTOCOL_DECORATION_GET_LAYER,
0224    VKI_REP_PROTOCOL_DECORATION_GET_TYPE,
0225    VKI_REP_PROTOCOL_DECORATION_GET_VALUE,
0226    VKI_REP_PROTOCOL_DECORATION_GET_BUNDLE,
0227    VKI_REP_PROTOCOL_ENTITY_INCONFLICT,
0228    VKI_REP_PROTOCOL_ENTITY_IS_MASKED,
0229    VKI_REP_PROTOCOL_CLIENT_REMOVE_NOTIFY,
0230    VKI_REP_PROTOCOL_MAX_REQUEST
0231 };
0232 #elif (SOLARIS_REPCACHE_PROTOCOL_VERSION == 27)
0233 #define VKI_REPOSITORY_DOOR_VERSION (27 + VKI_REPOSITORY_DOOR_BASEVER)
0234 enum vki_rep_protocol_requestid {
0235    VKI_REP_PROTOCOL_CLOSE = ('C' << 8),
0236    VKI_REP_PROTOCOL_ENTITY_SETUP,
0237    VKI_REP_PROTOCOL_ENTITY_NAME,
0238    VKI_REP_PROTOCOL_ENTITY_FMRI,
0239    VKI_REP_PROTOCOL_ENTITY_PARENT_TYPE,
0240    VKI_REP_PROTOCOL_ENTITY_GET_CHILD,
0241    VKI_REP_PROTOCOL_ENTITY_GET_PARENT,
0242    VKI_REP_PROTOCOL_ENTITY_GET_ROOT,
0243    VKI_REP_PROTOCOL_ENTITY_GET,
0244    VKI_REP_PROTOCOL_ENTITY_UPDATE,
0245    VKI_REP_PROTOCOL_ENTITY_CREATE_CHILD,
0246    VKI_REP_PROTOCOL_ENTITY_CREATE_PG,
0247    VKI_REP_PROTOCOL_ENTITY_DELETE,
0248    VKI_REP_PROTOCOL_ENTITY_UNDELETE,
0249    VKI_REP_PROTOCOL_ENTITY_REMOVE,
0250    VKI_REP_PROTOCOL_ENTITY_DELCUST,
0251    VKI_REP_PROTOCOL_BUNDLE_REMOVE,
0252    VKI_REP_PROTOCOL_ENTITY_RESET,
0253    VKI_REP_PROTOCOL_ENTITY_TEARDOWN,
0254    VKI_REP_PROTOCOL_ITER_SETUP,
0255    VKI_REP_PROTOCOL_ITER_START,
0256    VKI_REP_PROTOCOL_ITER_READ,
0257    VKI_REP_PROTOCOL_ITER_READ_VALUE,
0258    VKI_REP_PROTOCOL_ITER_RESET,
0259    VKI_REP_PROTOCOL_ITER_TEARDOWN,
0260    VKI_REP_PROTOCOL_NEXT_SNAPLEVEL,
0261    VKI_REP_PROTOCOL_SNAPSHOT_TAKE,
0262    VKI_REP_PROTOCOL_SNAPSHOT_TAKE_NAMED,
0263    VKI_REP_PROTOCOL_SNAPSHOT_ATTACH,
0264    VKI_REP_PROTOCOL_PROPERTY_GET_TYPE,
0265    VKI_REP_PROTOCOL_PROPERTY_GET_VALUE,
0266    VKI_REP_PROTOCOL_PG_SETUP_WAIT,
0267    VKI_REP_PROTOCOL_PG_TX_START,
0268    VKI_REP_PROTOCOL_PG_TX_COMMIT,
0269    VKI_REP_PROTOCOL_PROP_BUNDLE_REMOVE,
0270    VKI_REP_PROTOCOL_CLIENT_ADD_NOTIFY,
0271    VKI_REP_PROTOCOL_CLIENT_WAIT,
0272    VKI_REP_PROTOCOL_BACKUP,
0273    VKI_REP_PROTOCOL_SET_AUDIT_ANNOTATION,
0274    VKI_REP_PROTOCOL_UNSET_AUDIT_ANNOTATION,
0275    VKI_REP_PROTOCOL_SET_TX_DECORATION,
0276    VKI_REP_PROTOCOL_SWITCH,
0277    VKI_REP_PROTOCOL_DECORATION_GET_LAYER,
0278    VKI_REP_PROTOCOL_DECORATION_GET_TYPE,
0279    VKI_REP_PROTOCOL_DECORATION_GET_VALUE,
0280    VKI_REP_PROTOCOL_DECORATION_GET_BUNDLE,
0281    VKI_REP_PROTOCOL_ENTITY_INCONFLICT,
0282    VKI_REP_PROTOCOL_ENTITY_IS_MASKED,
0283    VKI_REP_PROTOCOL_CLIENT_REMOVE_NOTIFY,
0284    VKI_REP_PROTOCOL_MAX_REQUEST
0285 };
0286 #elif (SOLARIS_REPCACHE_PROTOCOL_VERSION == 31)
0287 #define VKI_REPOSITORY_DOOR_VERSION (31 + VKI_REPOSITORY_DOOR_BASEVER)
0288 enum vki_rep_protocol_requestid {
0289    VKI_REP_PROTOCOL_CLOSE = ('C' << 8),
0290    VKI_REP_PROTOCOL_ENTITY_SETUP,
0291    VKI_REP_PROTOCOL_ENTITY_NAME,
0292    VKI_REP_PROTOCOL_ENTITY_PARENT_TYPE,
0293    VKI_REP_PROTOCOL_ENTITY_GET_CHILD,
0294    VKI_REP_PROTOCOL_ENTITY_GET_CHILD_COMPOSED,
0295    VKI_REP_PROTOCOL_ENTITY_GET_PARENT,
0296    VKI_REP_PROTOCOL_ENTITY_GET_ROOT,
0297    VKI_REP_PROTOCOL_ENTITY_GET,
0298    VKI_REP_PROTOCOL_ENTITY_UPDATE,
0299    VKI_REP_PROTOCOL_ENTITY_CREATE_CHILD,
0300    VKI_REP_PROTOCOL_ENTITY_CREATE_PG,
0301    VKI_REP_PROTOCOL_ENTITY_DELETE,
0302    VKI_REP_PROTOCOL_ENTITY_UNDELETE,
0303    VKI_REP_PROTOCOL_ENTITY_REMOVE,
0304    VKI_REP_PROTOCOL_ENTITY_DELCUST,
0305    VKI_REP_PROTOCOL_BUNDLE_REMOVE,
0306    VKI_REP_PROTOCOL_ENTITY_RESET,
0307    VKI_REP_PROTOCOL_ENTITY_TEARDOWN,
0308    VKI_REP_PROTOCOL_ITER_SETUP,
0309    VKI_REP_PROTOCOL_ITER_START,
0310    VKI_REP_PROTOCOL_ITER_READ,
0311    VKI_REP_PROTOCOL_ITER_READ_VALUE,
0312    VKI_REP_PROTOCOL_ITER_RESET,
0313    VKI_REP_PROTOCOL_ITER_TEARDOWN,
0314    VKI_REP_PROTOCOL_NEXT_SNAPLEVEL,
0315    VKI_REP_PROTOCOL_SNAPSHOT_TAKE,
0316    VKI_REP_PROTOCOL_SNAPSHOT_TAKE_NAMED,
0317    VKI_REP_PROTOCOL_SNAPSHOT_ATTACH,
0318    VKI_REP_PROTOCOL_PROPERTY_GET_TYPE,
0319    VKI_REP_PROTOCOL_PROPERTY_GET_VALUE,
0320    VKI_REP_PROTOCOL_PG_SETUP_WAIT,
0321    VKI_REP_PROTOCOL_PG_TX_START,
0322    VKI_REP_PROTOCOL_PG_TX_COMMIT,
0323    VKI_REP_PROTOCOL_PROP_BUNDLE_REMOVE,
0324    VKI_REP_PROTOCOL_CLIENT_ADD_NOTIFY,
0325    VKI_REP_PROTOCOL_CLIENT_WAIT,
0326    VKI_REP_PROTOCOL_BACKUP,
0327    VKI_REP_PROTOCOL_SET_AUDIT_ANNOTATION,
0328    VKI_REP_PROTOCOL_UNSET_AUDIT_ANNOTATION,
0329    VKI_REP_PROTOCOL_SET_LAYER,
0330    VKI_REP_PROTOCOL_SWITCH,
0331    VKI_REP_PROTOCOL_DECORATION_GET_LAYER,
0332    VKI_REP_PROTOCOL_DECORATION_GET_TYPE,
0333    VKI_REP_PROTOCOL_DECORATION_GET_VALUE,
0334    VKI_REP_PROTOCOL_DECORATION_GET_BUNDLE,
0335    VKI_REP_PROTOCOL_ENTITY_INCONFLICT,
0336    VKI_REP_PROTOCOL_ENTITY_IS_MASKED,
0337    VKI_REP_PROTOCOL_CLIENT_REMOVE_NOTIFY,
0338    VKI_REP_PROTOCOL_MAX_REQUEST
0339 };
0340 #else
0341 #error Unsupported repcache protocol version
0342 #endif
0343 
0344 /* The following definitions are currently stable across all repcache protocol
0345    versions. If there is any change to them, they need to be versioned
0346    properly so that Valgrind works on older versions. */
0347 
0348 #define VKI_REPOSITORY_DOOR_NAME "/system/volatile/repository_door"
0349 #define VKI_REP_PROTOCOL_NAME_LEN 120
0350 typedef vki_uint32_t vki_repcache_entity_id_t;
0351 enum vki_repository_door_requestid {
0352    VKI_REPOSITORY_DOOR_REQUEST_CONNECT = (('M' << 8) | 1)
0353 };
0354 enum vki_repository_door_statusid {
0355    VKI_REPOSITORY_DOOR_SUCCESS                = 0,
0356    VKI_REPOSITORY_DOOR_FAIL_BAD_REQUEST       = 1,
0357    VKI_REPOSITORY_DOOR_FAIL_VERSION_MISMATCH  = 2,
0358    VKI_REPOSITORY_DOOR_FAIL_BAD_FLAG          = 3,
0359    VKI_REPOSITORY_DOOR_FAIL_NO_RESOURCES      = 4,
0360    VKI_REPOSITORY_DOOR_FAIL_PERMISSION_DENIED = 5
0361 };
0362 typedef struct vki_repository_door_request {
0363    vki_uint32_t rdr_version;
0364    enum vki_repository_door_requestid rdr_request;
0365    vki_uint32_t rdr_flags;
0366    vki_uint32_t rdr_debug;
0367 } vki_repository_door_request_t;
0368 typedef struct vki_repository_door_response {
0369    enum vki_repository_door_statusid rdr_status;
0370 } vki_repository_door_response_t;
0371 typedef struct vki_rep_protocol_request {
0372    enum vki_rep_protocol_requestid rpr_request;
0373 } vki_rep_protocol_request_t;
0374 struct vki_rep_protocol_entity_setup {
0375    enum vki_rep_protocol_requestid rpr_request;
0376    vki_repcache_entity_id_t rpr_entityid;
0377    vki_uint32_t rpr_entitytype;
0378 };
0379 struct vki_rep_protocol_entity_name {
0380    enum vki_rep_protocol_requestid rpr_request;
0381    vki_repcache_entity_id_t rpr_entityid;
0382    vki_uint32_t rpr_answertype;
0383 };
0384 struct vki_rep_protocol_entity_fmri {
0385    enum vki_rep_protocol_requestid rpr_request;
0386    vki_repcache_entity_id_t rpr_entityid;
0387 };
0388 struct vki_rep_protocol_entity_get {
0389    enum vki_rep_protocol_requestid rpr_request;
0390    vki_repcache_entity_id_t rpr_entityid;
0391    vki_uint32_t rpr_object;
0392 };
0393 struct vki_rep_protocol_entity_get_child {
0394    enum vki_rep_protocol_requestid rpr_request;
0395    vki_repcache_entity_id_t rpr_entityid;
0396    vki_repcache_entity_id_t rpr_childid;
0397    char rpr_name[VKI_REP_PROTOCOL_NAME_LEN];
0398 };
0399 struct vki_rep_protocol_entity_parent {
0400    enum vki_rep_protocol_requestid rpr_request;
0401    vki_repcache_entity_id_t rpr_entityid;
0402    vki_repcache_entity_id_t rpr_outid;
0403 };
0404 struct vki_rep_protocol_entity_root {
0405    enum vki_rep_protocol_requestid rpr_request;
0406    vki_repcache_entity_id_t rpr_entityid;
0407    vki_repcache_entity_id_t rpr_outid;
0408 };
0409 struct vki_rep_protocol_entity_reset {
0410    enum vki_rep_protocol_requestid rpr_request;
0411    vki_repcache_entity_id_t rpr_entityid;
0412 };
0413 struct vki_rep_protocol_entity_teardown {
0414    enum vki_rep_protocol_requestid rpr_request;
0415    vki_repcache_entity_id_t rpr_entityid;
0416 };
0417 struct vki_rep_protocol_iter_read {
0418    enum vki_rep_protocol_requestid rpr_request;
0419    vki_uint32_t rpr_iterid;
0420    vki_uint32_t rpr_sequence;
0421    vki_repcache_entity_id_t rpr_entityid;
0422 };
0423 struct vki_rep_protocol_iter_read_value {
0424    enum vki_rep_protocol_requestid rpr_request;
0425    vki_uint32_t rpr_iterid;
0426    vki_uint32_t rpr_sequence;
0427 };
0428 struct vki_rep_protocol_iter_request {
0429    enum vki_rep_protocol_requestid rpr_request;
0430    vki_uint32_t rpr_iterid;
0431 };
0432 struct vki_rep_protocol_iter_start {
0433    enum vki_rep_protocol_requestid rpr_request;
0434    vki_uint32_t rpr_iterid;
0435    vki_repcache_entity_id_t rpr_entity;
0436    vki_uint32_t rpr_itertype;
0437    vki_uint32_t rpr_flags;
0438    char rpr_pattern[VKI_REP_PROTOCOL_NAME_LEN];
0439 };
0440 struct vki_rep_protocol_property_request {
0441    enum vki_rep_protocol_requestid rpr_request;
0442    vki_repcache_entity_id_t rpr_entityid;
0443 };
0444 
0445 
0446 
0447 
0448 #endif /* __VKI_SOLARIS_REPCACHE_H */