From: Paul Floyd Date: Fri, 29 Mar 2024 15:18:41 +0000 (+0100) Subject: Darwin: add missing necp pieces X-Git-Tag: VALGRIND_3_23_0~79 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=d9724aa133d8c8423eabcd2a0538c2eb20cf6973;p=thirdparty%2Fvalgrind.git Darwin: add missing necp pieces --- diff --git a/include/vki/vki-darwin.h b/include/vki/vki-darwin.h index 4be0f5f97..f7fcac60c 100644 --- a/include/vki/vki-darwin.h +++ b/include/vki/vki-darwin.h @@ -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