]> git.ipfire.org Git - thirdparty/valgrind.git/commitdiff
Darwin: add missing necp pieces
authorPaul Floyd <pjfloyd@wanadoo.fr>
Fri, 29 Mar 2024 15:18:41 +0000 (16:18 +0100)
committerPaul Floyd <pjfloyd@wanadoo.fr>
Fri, 29 Mar 2024 15:18:41 +0000 (16:18 +0100)
include/vki/vki-darwin.h

index 4be0f5f97900cd3f65a5fbef150a6e3286696887..f7fcac60c653161f29aea97b3ddf2f60c09b1962 100644 (file)
@@ -1152,6 +1152,67 @@ struct vki_necp_aggregate_result {
 
 // ulock_wait flags
 #define WKI_ULF_WAIT_WORKQ_DATA_CONTENTION     0x00010000
+
+#define VKI_NECP_CLIENT_ACTION_ADD                     1
+#define VKI_NECP_CLIENT_ACTION_REMOVE                  2
+#define VKI_NECP_CLIENT_ACTION_COPY_PARAMETERS         3
+#define VKI_NECP_CLIENT_ACTION_COPY_RESULT             4
+#define VKI_NECP_CLIENT_ACTION_COPY_LIST               5
+#define VKI_NECP_CLIENT_ACTION_AGENT                   7
+#define VKI_NECP_CLIENT_ACTION_COPY_AGENT              8
+#define VKI_NECP_CLIENT_ACTION_COPY_INTERFACE          9
+#define VKI_NECP_CLIENT_ACTION_COPY_ROUTE_STATISTICS  11
+#define VKI_NECP_CLIENT_ACTION_AGENT_USE              12
+#define VKI_NECP_CLIENT_ACTION_UPDATE_CACHE           14
+#define VKI_NECP_CLIENT_ACTION_COPY_CLIENT_UPDATE     15
+#define VKI_NECP_CLIENT_ACTION_COPY_UPDATED_RESULT    16
+#define VKI_NECP_CLIENT_ACTION_CLAIM                  19
+#define VKI_NECP_CLIENT_ACTION_SIGN                   20
+
+#define VKI_NECP_MAX_CLIENT_PARAMETERS_SIZE    1024
+#define VKI_NECP_CLIENT_ACTION_SIGN_TAG_LENGTH   32
+
+#define VKI_IFXNAMSIZ     IFNAMSIZ + 8
+#define VKI_IFNET_SIGNATURELEN      20
+
+struct vki_necp_client_signable {
+       uuid_t client_id;
+       u_int32_t sign_type;
+} __attribute__((__packed__));
+
+struct vki_necp_cache_buffer {
+       u_int8_t                necp_cache_buf_type;    //  NECP_CLIENT_CACHE_TYPE_*
+       u_int8_t                necp_cache_buf_ver;     //  NECP_CLIENT_CACHE_TYPE_*_VER
+       u_int32_t               necp_cache_buf_size;
+       mach_vm_address_t       necp_cache_buf_addr;
+};
+
+struct vki_necp_interface_signature {
+  u_int8_t signature[VKI_IFNET_SIGNATURELEN];
+  u_int8_t signature_len;
+};
+
+struct vki_necp_interface_details_legacy {
+       char name[VKI_IFXNAMSIZ];
+       u_int32_t index;
+       u_int32_t generation;
+       u_int32_t functional_type;
+       u_int32_t delegate_index;
+       u_int32_t flags; // see NECP_INTERFACE_FLAG_*
+       u_int32_t mtu;
+       struct vki_necp_interface_signature ipv4_signature;
+       struct vki_necp_interface_signature ipv6_signature;
+};
+
+struct vki_necp_agent_use_parameters {
+       uuid_t agent_uuid;
+       uint64_t out_use_count;
+};
+
+// Precalculated as the struct are really big
+#define VKI_IFNET_STATS_PER_FLOW_SIZE 96
+#define VKI_NECP_STAT_COUNTS_SIZE 68
+
 #endif /* DARWIN_VERS >= DARWIN_10_12 */
 
 #endif