]> git.ipfire.org Git - thirdparty/valgrind.git/commitdiff
Add support for repository cache protocol version 31
authorIvo Raisr <ivosh@ivosh.net>
Wed, 16 Mar 2016 15:08:42 +0000 (15:08 +0000)
committerIvo Raisr <ivosh@ivosh.net>
Wed, 16 Mar 2016 15:08:42 +0000 (15:08 +0000)
n-i-bz

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15831

coregrind/m_syswrap/syswrap-solaris.c
include/vki/vki-solaris-repcache.h

index a307f6c38aa932e6933b748d4ad5958aae933f4c..ca9db129dfa80e6b2c0dc597a1b005f7171b2663 100644 (file)
@@ -8294,6 +8294,9 @@ static void repository_door_pre_mem_door_call_hook(ThreadId tid, Int fd,
          }
          break;
       case VKI_REP_PROTOCOL_ENTITY_GET_CHILD:
+#if (SOLARIS_REPCACHE_PROTOCOL_VERSION >= 31)
+      case VKI_REP_PROTOCOL_ENTITY_GET_CHILD_COMPOSED:
+#endif
          {
             struct vki_rep_protocol_entity_get_child *r =
                (struct vki_rep_protocol_entity_get_child *) p;
index 4ef6808d9d256d52141ffb38fa3dc9331373fe1e..e2ad269b3a146444135a7e36021d6940518be62e 100644 (file)
@@ -7,7 +7,7 @@
    This file is part of Valgrind, a dynamic binary instrumentation
    framework.
 
-   Copyright (C) 2015-2015 Ivo Raisr
+   Copyright (C) 2015-2016 Ivo Raisr
       ivosh@ivosh.net
 
    This program is free software; you can redistribute it and/or
@@ -285,6 +285,60 @@ enum vki_rep_protocol_requestid {
    VKI_REP_PROTOCOL_CLIENT_REMOVE_NOTIFY,
    VKI_REP_PROTOCOL_MAX_REQUEST
 };
+#elif (SOLARIS_REPCACHE_PROTOCOL_VERSION == 31)
+#define VKI_REPOSITORY_DOOR_VERSION (31 + VKI_REPOSITORY_DOOR_BASEVER)
+enum vki_rep_protocol_requestid {
+   VKI_REP_PROTOCOL_CLOSE = ('C' << 8),
+   VKI_REP_PROTOCOL_ENTITY_SETUP,
+   VKI_REP_PROTOCOL_ENTITY_NAME,
+   VKI_REP_PROTOCOL_ENTITY_PARENT_TYPE,
+   VKI_REP_PROTOCOL_ENTITY_GET_CHILD,
+   VKI_REP_PROTOCOL_ENTITY_GET_CHILD_COMPOSED,
+   VKI_REP_PROTOCOL_ENTITY_GET_PARENT,
+   VKI_REP_PROTOCOL_ENTITY_GET_ROOT,
+   VKI_REP_PROTOCOL_ENTITY_GET,
+   VKI_REP_PROTOCOL_ENTITY_UPDATE,
+   VKI_REP_PROTOCOL_ENTITY_CREATE_CHILD,
+   VKI_REP_PROTOCOL_ENTITY_CREATE_PG,
+   VKI_REP_PROTOCOL_ENTITY_DELETE,
+   VKI_REP_PROTOCOL_ENTITY_UNDELETE,
+   VKI_REP_PROTOCOL_ENTITY_REMOVE,
+   VKI_REP_PROTOCOL_ENTITY_DELCUST,
+   VKI_REP_PROTOCOL_BUNDLE_REMOVE,
+   VKI_REP_PROTOCOL_ENTITY_RESET,
+   VKI_REP_PROTOCOL_ENTITY_TEARDOWN,
+   VKI_REP_PROTOCOL_ITER_SETUP,
+   VKI_REP_PROTOCOL_ITER_START,
+   VKI_REP_PROTOCOL_ITER_READ,
+   VKI_REP_PROTOCOL_ITER_READ_VALUE,
+   VKI_REP_PROTOCOL_ITER_RESET,
+   VKI_REP_PROTOCOL_ITER_TEARDOWN,
+   VKI_REP_PROTOCOL_NEXT_SNAPLEVEL,
+   VKI_REP_PROTOCOL_SNAPSHOT_TAKE,
+   VKI_REP_PROTOCOL_SNAPSHOT_TAKE_NAMED,
+   VKI_REP_PROTOCOL_SNAPSHOT_ATTACH,
+   VKI_REP_PROTOCOL_PROPERTY_GET_TYPE,
+   VKI_REP_PROTOCOL_PROPERTY_GET_VALUE,
+   VKI_REP_PROTOCOL_PG_SETUP_WAIT,
+   VKI_REP_PROTOCOL_PG_TX_START,
+   VKI_REP_PROTOCOL_PG_TX_COMMIT,
+   VKI_REP_PROTOCOL_PROP_BUNDLE_REMOVE,
+   VKI_REP_PROTOCOL_CLIENT_ADD_NOTIFY,
+   VKI_REP_PROTOCOL_CLIENT_WAIT,
+   VKI_REP_PROTOCOL_BACKUP,
+   VKI_REP_PROTOCOL_SET_AUDIT_ANNOTATION,
+   VKI_REP_PROTOCOL_UNSET_AUDIT_ANNOTATION,
+   VKI_REP_PROTOCOL_SET_LAYER,
+   VKI_REP_PROTOCOL_SWITCH,
+   VKI_REP_PROTOCOL_DECORATION_GET_LAYER,
+   VKI_REP_PROTOCOL_DECORATION_GET_TYPE,
+   VKI_REP_PROTOCOL_DECORATION_GET_VALUE,
+   VKI_REP_PROTOCOL_DECORATION_GET_BUNDLE,
+   VKI_REP_PROTOCOL_ENTITY_INCONFLICT,
+   VKI_REP_PROTOCOL_ENTITY_IS_MASKED,
+   VKI_REP_PROTOCOL_CLIENT_REMOVE_NOTIFY,
+   VKI_REP_PROTOCOL_MAX_REQUEST
+};
 #else
 #error Unsupported repcache protocol version
 #endif
@@ -295,6 +349,7 @@ enum vki_rep_protocol_requestid {
 
 #define VKI_REPOSITORY_DOOR_NAME "/system/volatile/repository_door"
 #define VKI_REP_PROTOCOL_NAME_LEN 120
+typedef vki_uint32_t vki_repcache_entity_id_t;
 enum vki_repository_door_requestid {
    VKI_REPOSITORY_DOOR_REQUEST_CONNECT = (('M' << 8) | 1)
 };
@@ -320,52 +375,52 @@ typedef struct vki_rep_protocol_request {
 } vki_rep_protocol_request_t;
 struct vki_rep_protocol_entity_setup {
    enum vki_rep_protocol_requestid rpr_request;
-   vki_uint32_t rpr_entityid;
+   vki_repcache_entity_id_t rpr_entityid;
    vki_uint32_t rpr_entitytype;
 };
 struct vki_rep_protocol_entity_name {
    enum vki_rep_protocol_requestid rpr_request;
-   vki_uint32_t rpr_entityid;
+   vki_repcache_entity_id_t rpr_entityid;
    vki_uint32_t rpr_answertype;
 };
 struct vki_rep_protocol_entity_fmri {
    enum vki_rep_protocol_requestid rpr_request;
-   vki_uint32_t rpr_entityid;
+   vki_repcache_entity_id_t rpr_entityid;
 };
 struct vki_rep_protocol_entity_get {
    enum vki_rep_protocol_requestid rpr_request;
-   vki_uint32_t rpr_entityid;
+   vki_repcache_entity_id_t rpr_entityid;
    vki_uint32_t rpr_object;
 };
 struct vki_rep_protocol_entity_get_child {
    enum vki_rep_protocol_requestid rpr_request;
-   vki_uint32_t rpr_entityid;
-   vki_uint32_t rpr_childid;
+   vki_repcache_entity_id_t rpr_entityid;
+   vki_repcache_entity_id_t rpr_childid;
    char rpr_name[VKI_REP_PROTOCOL_NAME_LEN];
 };
 struct vki_rep_protocol_entity_parent {
    enum vki_rep_protocol_requestid rpr_request;
-   vki_uint32_t rpr_entityid;
-   vki_uint32_t rpr_outid;
+   vki_repcache_entity_id_t rpr_entityid;
+   vki_repcache_entity_id_t rpr_outid;
 };
 struct vki_rep_protocol_entity_root {
    enum vki_rep_protocol_requestid rpr_request;
-   vki_uint32_t rpr_entityid;
-   vki_uint32_t rpr_outid;
+   vki_repcache_entity_id_t rpr_entityid;
+   vki_repcache_entity_id_t rpr_outid;
 };
 struct vki_rep_protocol_entity_reset {
    enum vki_rep_protocol_requestid rpr_request;
-   vki_uint32_t rpr_entityid;
+   vki_repcache_entity_id_t rpr_entityid;
 };
 struct vki_rep_protocol_entity_teardown {
    enum vki_rep_protocol_requestid rpr_request;
-   vki_uint32_t rpr_entityid;
+   vki_repcache_entity_id_t rpr_entityid;
 };
 struct vki_rep_protocol_iter_read {
    enum vki_rep_protocol_requestid rpr_request;
    vki_uint32_t rpr_iterid;
    vki_uint32_t rpr_sequence;
-   vki_uint32_t rpr_entityid;
+   vki_repcache_entity_id_t rpr_entityid;
 };
 struct vki_rep_protocol_iter_read_value {
    enum vki_rep_protocol_requestid rpr_request;
@@ -379,17 +434,17 @@ struct vki_rep_protocol_iter_request {
 struct vki_rep_protocol_iter_start {
    enum vki_rep_protocol_requestid rpr_request;
    vki_uint32_t rpr_iterid;
-   vki_uint32_t rpr_entity;
+   vki_repcache_entity_id_t rpr_entity;
    vki_uint32_t rpr_itertype;
    vki_uint32_t rpr_flags;
    char rpr_pattern[VKI_REP_PROTOCOL_NAME_LEN];
 };
 struct vki_rep_protocol_property_request {
    enum vki_rep_protocol_requestid rpr_request;
-   vki_uint32_t rpr_entityid;
+   vki_repcache_entity_id_t rpr_entityid;
 };
 
 
 
 
-#endif /* __VKI_SOLARIS_REPCACHE_21_H */
+#endif /* __VKI_SOLARIS_REPCACHE_H */