1
0
mirror of https://github.com/samba-team/samba.git synced 2024-12-22 13:34:15 +03:00

librpc:ndr: Add ‘int64’ type

This type behaves like a signed variant of ‘hyper’. Unlike the existing
‘dlong’ type, which has four byte alignment, ‘int64’ is aligned to eight
bytes.

Bump the NDR version to 3.0.1.

BUG: https://bugzilla.samba.org/show_bug.cgi?id=15452

Signed-off-by: Joseph Sutton <josephsutton@catalyst.net.nz>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>
This commit is contained in:
Joseph Sutton 2023-08-15 12:29:03 +12:00 committed by Andrew Bartlett
parent 631e26e1d6
commit 402bb17693
9 changed files with 324 additions and 3 deletions

272
librpc/ABI/ndr-3.0.1.sigs Normal file
View File

@ -0,0 +1,272 @@
GUID_all_zero: bool (const struct GUID *)
GUID_buf_string: char *(const struct GUID *, struct GUID_txt_buf *)
GUID_compare: int (const struct GUID *, const struct GUID *)
GUID_equal: bool (const struct GUID *, const struct GUID *)
GUID_from_data_blob: NTSTATUS (const DATA_BLOB *, struct GUID *)
GUID_from_ndr_blob: NTSTATUS (const DATA_BLOB *, struct GUID *)
GUID_from_string: NTSTATUS (const char *, struct GUID *)
GUID_hexstring: char *(TALLOC_CTX *, const struct GUID *)
GUID_random: struct GUID (void)
GUID_string: char *(TALLOC_CTX *, const struct GUID *)
GUID_string2: char *(TALLOC_CTX *, const struct GUID *)
GUID_to_ndr_blob: NTSTATUS (const struct GUID *, TALLOC_CTX *, DATA_BLOB *)
GUID_to_ndr_buf: NTSTATUS (const struct GUID *, struct GUID_ndr_buf *)
GUID_zero: struct GUID (void)
_ndr_pull_error: enum ndr_err_code (struct ndr_pull *, enum ndr_err_code, const char *, const char *, const char *, ...)
_ndr_push_error: enum ndr_err_code (struct ndr_push *, enum ndr_err_code, const char *, const char *, const char *, ...)
ndr_align_size: size_t (uint32_t, size_t)
ndr_charset_length: uint32_t (const void *, charset_t)
ndr_check_array_size: enum ndr_err_code (struct ndr_pull *, const void *, uint32_t)
ndr_check_padding: void (struct ndr_pull *, size_t)
ndr_check_pipe_chunk_trailer: enum ndr_err_code (struct ndr_pull *, int, uint32_t)
ndr_check_steal_array_length: enum ndr_err_code (struct ndr_pull *, const void *, uint32_t)
ndr_check_steal_array_size: enum ndr_err_code (struct ndr_pull *, const void *, uint32_t)
ndr_check_string_terminator: enum ndr_err_code (struct ndr_pull *, uint32_t, uint32_t)
ndr_get_array_length: enum ndr_err_code (struct ndr_pull *, const void *, uint32_t *)
ndr_get_array_size: enum ndr_err_code (struct ndr_pull *, const void *, uint32_t *)
ndr_map_error2errno: int (enum ndr_err_code)
ndr_map_error2ntstatus: NTSTATUS (enum ndr_err_code)
ndr_map_error2string: const char *(enum ndr_err_code)
ndr_policy_handle_empty: bool (const struct policy_handle *)
ndr_policy_handle_equal: bool (const struct policy_handle *, const struct policy_handle *)
ndr_print_DATA_BLOB: void (struct ndr_print *, const char *, DATA_BLOB)
ndr_print_GUID: void (struct ndr_print *, const char *, const struct GUID *)
ndr_print_HRESULT: void (struct ndr_print *, const char *, HRESULT)
ndr_print_KRB5_EDATA_NTSTATUS: void (struct ndr_print *, const char *, const struct KRB5_EDATA_NTSTATUS *)
ndr_print_NTSTATUS: void (struct ndr_print *, const char *, NTSTATUS)
ndr_print_NTTIME: void (struct ndr_print *, const char *, NTTIME)
ndr_print_NTTIME_1sec: void (struct ndr_print *, const char *, NTTIME)
ndr_print_NTTIME_hyper: void (struct ndr_print *, const char *, NTTIME)
ndr_print_WERROR: void (struct ndr_print *, const char *, WERROR)
ndr_print_array_uint8: void (struct ndr_print *, const char *, const uint8_t *, uint32_t)
ndr_print_bad_level: void (struct ndr_print *, const char *, uint16_t)
ndr_print_bitmap_flag: void (struct ndr_print *, size_t, const char *, uint32_t, uint32_t)
ndr_print_bool: void (struct ndr_print *, const char *, const bool)
ndr_print_debug: bool (int, ndr_print_fn_t, const char *, void *, const char *, const char *)
ndr_print_debug_helper: void (struct ndr_print *, const char *, ...)
ndr_print_debugc: void (int, ndr_print_fn_t, const char *, void *)
ndr_print_debugc_helper: void (struct ndr_print *, const char *, ...)
ndr_print_dlong: void (struct ndr_print *, const char *, int64_t)
ndr_print_double: void (struct ndr_print *, const char *, double)
ndr_print_enum: void (struct ndr_print *, const char *, const char *, const char *, uint32_t)
ndr_print_function_debug: void (ndr_print_function_t, const char *, int, void *)
ndr_print_function_string: char *(TALLOC_CTX *, ndr_print_function_t, const char *, int, void *)
ndr_print_gid_t: void (struct ndr_print *, const char *, gid_t)
ndr_print_hyper: void (struct ndr_print *, const char *, uint64_t)
ndr_print_int16: void (struct ndr_print *, const char *, int16_t)
ndr_print_int32: void (struct ndr_print *, const char *, int32_t)
ndr_print_int3264: void (struct ndr_print *, const char *, int32_t)
ndr_print_int64: void (struct ndr_print *, const char *, int64_t)
ndr_print_int8: void (struct ndr_print *, const char *, int8_t)
ndr_print_ipv4address: void (struct ndr_print *, const char *, const char *)
ndr_print_ipv6address: void (struct ndr_print *, const char *, const char *)
ndr_print_ndr_syntax_id: void (struct ndr_print *, const char *, const struct ndr_syntax_id *)
ndr_print_netr_SamDatabaseID: void (struct ndr_print *, const char *, enum netr_SamDatabaseID)
ndr_print_netr_SchannelType: void (struct ndr_print *, const char *, enum netr_SchannelType)
ndr_print_null: void (struct ndr_print *)
ndr_print_pointer: void (struct ndr_print *, const char *, void *)
ndr_print_policy_handle: void (struct ndr_print *, const char *, const struct policy_handle *)
ndr_print_printf_helper: void (struct ndr_print *, const char *, ...)
ndr_print_ptr: void (struct ndr_print *, const char *, const void *)
ndr_print_set_switch_value: enum ndr_err_code (struct ndr_print *, const void *, uint32_t)
ndr_print_sockaddr_storage: void (struct ndr_print *, const char *, const struct sockaddr_storage *)
ndr_print_steal_switch_value: uint32_t (struct ndr_print *, const void *)
ndr_print_string: void (struct ndr_print *, const char *, const char *)
ndr_print_string_array: void (struct ndr_print *, const char *, const char **)
ndr_print_string_helper: void (struct ndr_print *, const char *, ...)
ndr_print_struct: void (struct ndr_print *, const char *, const char *)
ndr_print_struct_string: char *(TALLOC_CTX *, ndr_print_fn_t, const char *, void *)
ndr_print_svcctl_ServerType: void (struct ndr_print *, const char *, uint32_t)
ndr_print_time_t: void (struct ndr_print *, const char *, time_t)
ndr_print_timespec: void (struct ndr_print *, const char *, const struct timespec *)
ndr_print_timeval: void (struct ndr_print *, const char *, const struct timeval *)
ndr_print_udlong: void (struct ndr_print *, const char *, uint64_t)
ndr_print_udlongr: void (struct ndr_print *, const char *, uint64_t)
ndr_print_uid_t: void (struct ndr_print *, const char *, uid_t)
ndr_print_uint16: void (struct ndr_print *, const char *, uint16_t)
ndr_print_uint32: void (struct ndr_print *, const char *, uint32_t)
ndr_print_uint3264: void (struct ndr_print *, const char *, uint32_t)
ndr_print_uint8: void (struct ndr_print *, const char *, uint8_t)
ndr_print_union: void (struct ndr_print *, const char *, int, const char *)
ndr_print_union_debug: void (ndr_print_fn_t, const char *, uint32_t, void *)
ndr_print_union_string: char *(TALLOC_CTX *, ndr_print_fn_t, const char *, uint32_t, void *)
ndr_print_winreg_Data: void (struct ndr_print *, const char *, const union winreg_Data *)
ndr_print_winreg_Data_GPO: void (struct ndr_print *, const char *, const union winreg_Data_GPO *)
ndr_print_winreg_Type: void (struct ndr_print *, const char *, enum winreg_Type)
ndr_pull_DATA_BLOB: enum ndr_err_code (struct ndr_pull *, int, DATA_BLOB *)
ndr_pull_GUID: enum ndr_err_code (struct ndr_pull *, int, struct GUID *)
ndr_pull_HRESULT: enum ndr_err_code (struct ndr_pull *, int, HRESULT *)
ndr_pull_KRB5_EDATA_NTSTATUS: enum ndr_err_code (struct ndr_pull *, int, struct KRB5_EDATA_NTSTATUS *)
ndr_pull_NTSTATUS: enum ndr_err_code (struct ndr_pull *, int, NTSTATUS *)
ndr_pull_NTTIME: enum ndr_err_code (struct ndr_pull *, int, NTTIME *)
ndr_pull_NTTIME_1sec: enum ndr_err_code (struct ndr_pull *, int, NTTIME *)
ndr_pull_NTTIME_hyper: enum ndr_err_code (struct ndr_pull *, int, NTTIME *)
ndr_pull_WERROR: enum ndr_err_code (struct ndr_pull *, int, WERROR *)
ndr_pull_advance: enum ndr_err_code (struct ndr_pull *, uint32_t)
ndr_pull_align: enum ndr_err_code (struct ndr_pull *, size_t)
ndr_pull_append: enum ndr_err_code (struct ndr_pull *, DATA_BLOB *)
ndr_pull_array_length: enum ndr_err_code (struct ndr_pull *, const void *)
ndr_pull_array_size: enum ndr_err_code (struct ndr_pull *, const void *)
ndr_pull_array_uint8: enum ndr_err_code (struct ndr_pull *, int, uint8_t *, uint32_t)
ndr_pull_bytes: enum ndr_err_code (struct ndr_pull *, uint8_t *, uint32_t)
ndr_pull_charset: enum ndr_err_code (struct ndr_pull *, int, const char **, uint32_t, uint8_t, charset_t)
ndr_pull_charset_to_null: enum ndr_err_code (struct ndr_pull *, int, const char **, uint32_t, uint8_t, charset_t)
ndr_pull_dlong: enum ndr_err_code (struct ndr_pull *, int, int64_t *)
ndr_pull_double: enum ndr_err_code (struct ndr_pull *, int, double *)
ndr_pull_enum_uint16: enum ndr_err_code (struct ndr_pull *, int, uint16_t *)
ndr_pull_enum_uint1632: enum ndr_err_code (struct ndr_pull *, int, uint16_t *)
ndr_pull_enum_uint32: enum ndr_err_code (struct ndr_pull *, int, uint32_t *)
ndr_pull_enum_uint8: enum ndr_err_code (struct ndr_pull *, int, uint8_t *)
ndr_pull_generic_ptr: enum ndr_err_code (struct ndr_pull *, uint32_t *)
ndr_pull_get_relative_base_offset: uint32_t (struct ndr_pull *)
ndr_pull_gid_t: enum ndr_err_code (struct ndr_pull *, int, gid_t *)
ndr_pull_hyper: enum ndr_err_code (struct ndr_pull *, int, uint64_t *)
ndr_pull_init_blob: struct ndr_pull *(const DATA_BLOB *, TALLOC_CTX *)
ndr_pull_int16: enum ndr_err_code (struct ndr_pull *, int, int16_t *)
ndr_pull_int32: enum ndr_err_code (struct ndr_pull *, int, int32_t *)
ndr_pull_int64: enum ndr_err_code (struct ndr_pull *, int, int64_t *)
ndr_pull_int8: enum ndr_err_code (struct ndr_pull *, int, int8_t *)
ndr_pull_ipv4address: enum ndr_err_code (struct ndr_pull *, int, const char **)
ndr_pull_ipv6address: enum ndr_err_code (struct ndr_pull *, int, const char **)
ndr_pull_ndr_syntax_id: enum ndr_err_code (struct ndr_pull *, int, struct ndr_syntax_id *)
ndr_pull_netr_SamDatabaseID: enum ndr_err_code (struct ndr_pull *, int, enum netr_SamDatabaseID *)
ndr_pull_netr_SchannelType: enum ndr_err_code (struct ndr_pull *, int, enum netr_SchannelType *)
ndr_pull_pointer: enum ndr_err_code (struct ndr_pull *, int, void **)
ndr_pull_policy_handle: enum ndr_err_code (struct ndr_pull *, int, struct policy_handle *)
ndr_pull_pop: enum ndr_err_code (struct ndr_pull *)
ndr_pull_ref_ptr: enum ndr_err_code (struct ndr_pull *, uint32_t *)
ndr_pull_relative_ptr1: enum ndr_err_code (struct ndr_pull *, const void *, uint32_t)
ndr_pull_relative_ptr2: enum ndr_err_code (struct ndr_pull *, const void *)
ndr_pull_relative_ptr_short: enum ndr_err_code (struct ndr_pull *, uint16_t *)
ndr_pull_restore_relative_base_offset: void (struct ndr_pull *, uint32_t)
ndr_pull_set_switch_value: enum ndr_err_code (struct ndr_pull *, const void *, uint32_t)
ndr_pull_setup_relative_base_offset1: enum ndr_err_code (struct ndr_pull *, const void *, uint32_t)
ndr_pull_setup_relative_base_offset2: enum ndr_err_code (struct ndr_pull *, const void *)
ndr_pull_steal_switch_value: enum ndr_err_code (struct ndr_pull *, const void *, uint32_t *)
ndr_pull_string: enum ndr_err_code (struct ndr_pull *, int, const char **)
ndr_pull_string_array: enum ndr_err_code (struct ndr_pull *, int, const char ***)
ndr_pull_struct_blob: enum ndr_err_code (const DATA_BLOB *, TALLOC_CTX *, void *, ndr_pull_flags_fn_t)
ndr_pull_struct_blob_all: enum ndr_err_code (const DATA_BLOB *, TALLOC_CTX *, void *, ndr_pull_flags_fn_t)
ndr_pull_struct_blob_all_noalloc: enum ndr_err_code (const DATA_BLOB *, void *, ndr_pull_flags_fn_t)
ndr_pull_subcontext_end: enum ndr_err_code (struct ndr_pull *, struct ndr_pull *, size_t, ssize_t)
ndr_pull_subcontext_start: enum ndr_err_code (struct ndr_pull *, struct ndr_pull **, size_t, ssize_t)
ndr_pull_svcctl_ServerType: enum ndr_err_code (struct ndr_pull *, int, uint32_t *)
ndr_pull_time_t: enum ndr_err_code (struct ndr_pull *, int, time_t *)
ndr_pull_timespec: enum ndr_err_code (struct ndr_pull *, int, struct timespec *)
ndr_pull_timeval: enum ndr_err_code (struct ndr_pull *, int, struct timeval *)
ndr_pull_trailer_align: enum ndr_err_code (struct ndr_pull *, size_t)
ndr_pull_udlong: enum ndr_err_code (struct ndr_pull *, int, uint64_t *)
ndr_pull_udlongr: enum ndr_err_code (struct ndr_pull *, int, uint64_t *)
ndr_pull_uid_t: enum ndr_err_code (struct ndr_pull *, int, uid_t *)
ndr_pull_uint16: enum ndr_err_code (struct ndr_pull *, int, uint16_t *)
ndr_pull_uint1632: enum ndr_err_code (struct ndr_pull *, int, uint16_t *)
ndr_pull_uint32: enum ndr_err_code (struct ndr_pull *, int, uint32_t *)
ndr_pull_uint3264: enum ndr_err_code (struct ndr_pull *, int, uint32_t *)
ndr_pull_uint8: enum ndr_err_code (struct ndr_pull *, int, uint8_t *)
ndr_pull_union_align: enum ndr_err_code (struct ndr_pull *, size_t)
ndr_pull_union_blob: enum ndr_err_code (const DATA_BLOB *, TALLOC_CTX *, void *, uint32_t, ndr_pull_flags_fn_t)
ndr_pull_union_blob_all: enum ndr_err_code (const DATA_BLOB *, TALLOC_CTX *, void *, uint32_t, ndr_pull_flags_fn_t)
ndr_pull_winreg_Data: enum ndr_err_code (struct ndr_pull *, int, union winreg_Data *)
ndr_pull_winreg_Data_GPO: enum ndr_err_code (struct ndr_pull *, int, union winreg_Data_GPO *)
ndr_pull_winreg_Type: enum ndr_err_code (struct ndr_pull *, int, enum winreg_Type *)
ndr_push_DATA_BLOB: enum ndr_err_code (struct ndr_push *, int, DATA_BLOB)
ndr_push_GUID: enum ndr_err_code (struct ndr_push *, int, const struct GUID *)
ndr_push_HRESULT: enum ndr_err_code (struct ndr_push *, int, HRESULT)
ndr_push_KRB5_EDATA_NTSTATUS: enum ndr_err_code (struct ndr_push *, int, const struct KRB5_EDATA_NTSTATUS *)
ndr_push_NTSTATUS: enum ndr_err_code (struct ndr_push *, int, NTSTATUS)
ndr_push_NTTIME: enum ndr_err_code (struct ndr_push *, int, NTTIME)
ndr_push_NTTIME_1sec: enum ndr_err_code (struct ndr_push *, int, NTTIME)
ndr_push_NTTIME_hyper: enum ndr_err_code (struct ndr_push *, int, NTTIME)
ndr_push_WERROR: enum ndr_err_code (struct ndr_push *, int, WERROR)
ndr_push_align: enum ndr_err_code (struct ndr_push *, size_t)
ndr_push_array_uint8: enum ndr_err_code (struct ndr_push *, int, const uint8_t *, uint32_t)
ndr_push_blob: DATA_BLOB (struct ndr_push *)
ndr_push_bytes: enum ndr_err_code (struct ndr_push *, const uint8_t *, uint32_t)
ndr_push_charset: enum ndr_err_code (struct ndr_push *, int, const char *, uint32_t, uint8_t, charset_t)
ndr_push_charset_to_null: enum ndr_err_code (struct ndr_push *, int, const char *, uint32_t, uint8_t, charset_t)
ndr_push_dlong: enum ndr_err_code (struct ndr_push *, int, int64_t)
ndr_push_double: enum ndr_err_code (struct ndr_push *, int, double)
ndr_push_enum_uint16: enum ndr_err_code (struct ndr_push *, int, uint16_t)
ndr_push_enum_uint1632: enum ndr_err_code (struct ndr_push *, int, uint16_t)
ndr_push_enum_uint32: enum ndr_err_code (struct ndr_push *, int, uint32_t)
ndr_push_enum_uint8: enum ndr_err_code (struct ndr_push *, int, uint8_t)
ndr_push_expand: enum ndr_err_code (struct ndr_push *, uint32_t)
ndr_push_full_ptr: enum ndr_err_code (struct ndr_push *, const void *)
ndr_push_get_relative_base_offset: uint32_t (struct ndr_push *)
ndr_push_gid_t: enum ndr_err_code (struct ndr_push *, int, gid_t)
ndr_push_hyper: enum ndr_err_code (struct ndr_push *, int, uint64_t)
ndr_push_init_ctx: struct ndr_push *(TALLOC_CTX *)
ndr_push_int16: enum ndr_err_code (struct ndr_push *, int, int16_t)
ndr_push_int32: enum ndr_err_code (struct ndr_push *, int, int32_t)
ndr_push_int64: enum ndr_err_code (struct ndr_push *, int, int64_t)
ndr_push_int8: enum ndr_err_code (struct ndr_push *, int, int8_t)
ndr_push_ipv4address: enum ndr_err_code (struct ndr_push *, int, const char *)
ndr_push_ipv6address: enum ndr_err_code (struct ndr_push *, int, const char *)
ndr_push_ndr_syntax_id: enum ndr_err_code (struct ndr_push *, int, const struct ndr_syntax_id *)
ndr_push_netr_SamDatabaseID: enum ndr_err_code (struct ndr_push *, int, enum netr_SamDatabaseID)
ndr_push_netr_SchannelType: enum ndr_err_code (struct ndr_push *, int, enum netr_SchannelType)
ndr_push_pipe_chunk_trailer: enum ndr_err_code (struct ndr_push *, int, uint32_t)
ndr_push_pointer: enum ndr_err_code (struct ndr_push *, int, void *)
ndr_push_policy_handle: enum ndr_err_code (struct ndr_push *, int, const struct policy_handle *)
ndr_push_ref_ptr: enum ndr_err_code (struct ndr_push *)
ndr_push_relative_ptr1: enum ndr_err_code (struct ndr_push *, const void *)
ndr_push_relative_ptr2_end: enum ndr_err_code (struct ndr_push *, const void *)
ndr_push_relative_ptr2_start: enum ndr_err_code (struct ndr_push *, const void *)
ndr_push_restore_relative_base_offset: void (struct ndr_push *, uint32_t)
ndr_push_set_switch_value: enum ndr_err_code (struct ndr_push *, const void *, uint32_t)
ndr_push_setup_relative_base_offset1: enum ndr_err_code (struct ndr_push *, const void *, uint32_t)
ndr_push_setup_relative_base_offset2: enum ndr_err_code (struct ndr_push *, const void *)
ndr_push_short_relative_ptr1: enum ndr_err_code (struct ndr_push *, const void *)
ndr_push_short_relative_ptr2: enum ndr_err_code (struct ndr_push *, const void *)
ndr_push_steal_switch_value: enum ndr_err_code (struct ndr_push *, const void *, uint32_t *)
ndr_push_string: enum ndr_err_code (struct ndr_push *, int, const char *)
ndr_push_string_array: enum ndr_err_code (struct ndr_push *, int, const char **)
ndr_push_struct_blob: enum ndr_err_code (DATA_BLOB *, TALLOC_CTX *, const void *, ndr_push_flags_fn_t)
ndr_push_struct_into_fixed_blob: enum ndr_err_code (DATA_BLOB *, const void *, ndr_push_flags_fn_t)
ndr_push_subcontext_end: enum ndr_err_code (struct ndr_push *, struct ndr_push *, size_t, ssize_t)
ndr_push_subcontext_start: enum ndr_err_code (struct ndr_push *, struct ndr_push **, size_t, ssize_t)
ndr_push_svcctl_ServerType: enum ndr_err_code (struct ndr_push *, int, uint32_t)
ndr_push_time_t: enum ndr_err_code (struct ndr_push *, int, time_t)
ndr_push_timespec: enum ndr_err_code (struct ndr_push *, int, const struct timespec *)
ndr_push_timeval: enum ndr_err_code (struct ndr_push *, int, const struct timeval *)
ndr_push_trailer_align: enum ndr_err_code (struct ndr_push *, size_t)
ndr_push_udlong: enum ndr_err_code (struct ndr_push *, int, uint64_t)
ndr_push_udlongr: enum ndr_err_code (struct ndr_push *, int, uint64_t)
ndr_push_uid_t: enum ndr_err_code (struct ndr_push *, int, uid_t)
ndr_push_uint16: enum ndr_err_code (struct ndr_push *, int, uint16_t)
ndr_push_uint1632: enum ndr_err_code (struct ndr_push *, int, uint16_t)
ndr_push_uint32: enum ndr_err_code (struct ndr_push *, int, uint32_t)
ndr_push_uint3264: enum ndr_err_code (struct ndr_push *, int, uint32_t)
ndr_push_uint8: enum ndr_err_code (struct ndr_push *, int, uint8_t)
ndr_push_union_align: enum ndr_err_code (struct ndr_push *, size_t)
ndr_push_union_blob: enum ndr_err_code (DATA_BLOB *, TALLOC_CTX *, void *, uint32_t, ndr_push_flags_fn_t)
ndr_push_unique_ptr: enum ndr_err_code (struct ndr_push *, const void *)
ndr_push_winreg_Data: enum ndr_err_code (struct ndr_push *, int, const union winreg_Data *)
ndr_push_winreg_Data_GPO: enum ndr_err_code (struct ndr_push *, int, const union winreg_Data_GPO *)
ndr_push_winreg_Type: enum ndr_err_code (struct ndr_push *, int, enum winreg_Type)
ndr_push_zero: enum ndr_err_code (struct ndr_push *, uint32_t)
ndr_set_flags: void (uint32_t *, uint32_t)
ndr_size_DATA_BLOB: uint32_t (int, const DATA_BLOB *, int)
ndr_size_GUID: size_t (const struct GUID *, int)
ndr_size_string: uint32_t (int, const char * const *, int)
ndr_size_string_array: size_t (const char **, uint32_t, int)
ndr_size_struct: size_t (const void *, int, ndr_push_flags_fn_t)
ndr_size_union: size_t (const void *, int, uint32_t, ndr_push_flags_fn_t)
ndr_size_winreg_Data_GPO: size_t (const union winreg_Data_GPO *, uint32_t, int)
ndr_steal_array_length: enum ndr_err_code (struct ndr_pull *, const void *, uint32_t *)
ndr_steal_array_size: enum ndr_err_code (struct ndr_pull *, const void *, uint32_t *)
ndr_string_array_size: size_t (struct ndr_push *, const char *)
ndr_string_length: uint32_t (const void *, uint32_t)
ndr_syntax_id_buf_string: char *(const struct ndr_syntax_id *, struct ndr_syntax_id_buf *)
ndr_syntax_id_equal: bool (const struct ndr_syntax_id *, const struct ndr_syntax_id *)
ndr_syntax_id_from_string: bool (const char *, struct ndr_syntax_id *)
ndr_syntax_id_null: uuid = {time_low = 0, time_mid = 0, time_hi_and_version = 0, clock_seq = "\000", node = "\000\000\000\000\000"}, if_version = 0
ndr_syntax_id_to_string: char *(TALLOC_CTX *, const struct ndr_syntax_id *)
ndr_token_max_list_size: size_t (void)
ndr_token_peek: enum ndr_err_code (struct ndr_token_list *, const void *, uint32_t *)
ndr_token_retrieve: enum ndr_err_code (struct ndr_token_list *, const void *, uint32_t *)
ndr_token_retrieve_cmp_fn: enum ndr_err_code (struct ndr_token_list *, const void *, uint32_t *, comparison_fn_t, bool)
ndr_token_store: enum ndr_err_code (TALLOC_CTX *, struct ndr_token_list *, const void *, uint32_t)
ndr_transfer_syntax_ndr: uuid = {time_low = 2324192516, time_mid = 7403, time_hi_and_version = 4553, clock_seq = "\237\350", node = "\b\000+\020H`"}, if_version = 2
ndr_transfer_syntax_ndr64: uuid = {time_low = 1903232307, time_mid = 48826, time_hi_and_version = 18743, clock_seq = "\203\031", node = "\265\333\357\234\314\066"}, if_version = 1
ndr_zero_memory: void (void *, size_t)

View File

@ -750,6 +750,7 @@ NDR_SCALAR_PROTO(udlong, uint64_t)
NDR_SCALAR_PROTO(udlongr, uint64_t)
NDR_SCALAR_PROTO(dlong, int64_t)
NDR_SCALAR_PROTO(hyper, uint64_t)
NDR_SCALAR_PROTO(int64, int64_t)
NDR_SCALAR_PROTO(pointer, void *)
NDR_SCALAR_PROTO(time_t, time_t)
NDR_SCALAR_PROTO(uid_t, uid_t)

View File

@ -36,6 +36,9 @@
#define NDR_PULL_I32(ndr, ofs) \
(int32_t)(NDR_BE(ndr) ? PULL_BE_U32(ndr->data,ofs) : PULL_LE_U32(ndr->data,ofs))
#define NDR_PULL_I64(ndr, ofs) \
(NDR_BE(ndr) ? PULL_BE_I64((ndr)->data, (ofs)) : PULL_LE_I64((ndr)->data, (ofs)))
#define NDR_PUSH_U16(ndr, ofs, v) \
do { \
if (NDR_BE(ndr)) { \
@ -63,6 +66,15 @@
} \
} while (0)
#define NDR_PUSH_I64(ndr, ofs, v) \
do { \
if (NDR_BE(ndr)) { \
PUSH_BE_I64((ndr)->data, (ofs), (v)); \
} else { \
PUSH_LE_I64((ndr)->data, (ofs), (v)); \
} \
} while (0)
static void ndr_dump_data(struct ndr_print *ndr, const uint8_t *buf, int len);
/*
@ -306,6 +318,19 @@ _PUBLIC_ enum ndr_err_code ndr_pull_hyper(struct ndr_pull *ndr, int ndr_flags, u
return ndr_pull_udlong(ndr, ndr_flags, v);
}
/*
parse an int64
*/
_PUBLIC_ enum ndr_err_code ndr_pull_int64(struct ndr_pull *ndr, int ndr_flags, int64_t *v)
{
NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
NDR_PULL_ALIGN(ndr, 8);
NDR_PULL_NEED_BYTES(ndr, 8);
*v = NDR_PULL_I64(ndr, ndr->offset);
ndr->offset += 8;
return NDR_ERR_SUCCESS;
}
/*
parse a pointer
*/
@ -643,6 +668,19 @@ _PUBLIC_ enum ndr_err_code ndr_push_hyper(struct ndr_push *ndr, int ndr_flags, u
return ndr_push_udlong(ndr, NDR_SCALARS, v);
}
/*
push an int64
*/
_PUBLIC_ enum ndr_err_code ndr_push_int64(struct ndr_push *ndr, int ndr_flags, int64_t v)
{
NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
NDR_PUSH_ALIGN(ndr, 8);
NDR_PUSH_NEED_BYTES(ndr, 8);
NDR_PUSH_I64(ndr, ndr->offset, v);
ndr->offset += 8;
return NDR_ERR_SUCCESS;
}
/*
push a double
*/
@ -1210,6 +1248,11 @@ _PUBLIC_ void ndr_print_hyper(struct ndr_print *ndr, const char *name, uint64_t
ndr_print_dlong(ndr, name, v);
}
_PUBLIC_ void ndr_print_int64(struct ndr_print *ndr, const char *name, int64_t v)
{
ndr_print_dlong(ndr, name, v);
}
_PUBLIC_ void ndr_print_pointer(struct ndr_print *ndr, const char *name, void *v)
{
ndr->print(ndr, "%-25s: %p", name, v);

View File

@ -628,7 +628,7 @@ bld.SAMBA_LIBRARY('ndr',
public_deps='samba-errors talloc samba-util util_str_hex',
public_headers='gen_ndr/misc.h gen_ndr/ndr_misc.h ndr/libndr.h:ndr.h',
header_path= [('*gen_ndr*', 'gen_ndr')],
vnum='3.0.0',
vnum='3.0.1',
abi_directory='ABI',
abi_match='!ndr_table_* ndr_* GUID_* _ndr_pull_error* _ndr_push_error*',
)

View File

@ -58,6 +58,7 @@ my $scalar_alignment = {
'int3264' => 5,
'uint3264' => 5,
'hyper' => 8,
'int64' => 8,
'double' => 8,
'pointer' => 8,
'dlong' => 4,

View File

@ -46,6 +46,7 @@ my %scalars = (
"int3264" => "int32_t",
"uint3264" => "uint32_t",
"hyper" => "uint64_t",
"int64" => "int64_t",
"dlong" => "int64_t",
"udlong" => "uint64_t",
"udlongr" => "uint64_t",

View File

@ -1080,6 +1080,7 @@ sub Initialize($$)
$self->register_type("uint3264", "offset = dissect_ndr_uint3264(tvb, offset, pinfo, tree, di, drep, \@HF\@, NULL);", "FT_UINT32", "BASE_DEC", 0, "NULL", 8);
$self->register_type("hyper", "offset = dissect_ndr_uint64(tvb, offset, pinfo, tree, di, drep, \@HF\@, NULL);", "FT_UINT64", "BASE_DEC", 0, "NULL", 8);
$self->register_type("int64", "offset = dissect_ndr_uint64(tvb, offset, pinfo, tree, di, drep, \@HF\@, NULL);", "FT_INT64", "BASE_DEC", 0, "NULL", 8);
$self->register_type("udlong", "offset = dissect_ndr_duint32(tvb, offset, pinfo, tree, di, drep, \@HF\@, NULL);", "FT_UINT64", "BASE_DEC", 0, "NULL", 4);
$self->register_type("bool8", "offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, \@HF\@, \@PARAM\@);","FT_INT8", "BASE_DEC", 0, "NULL", 1);
$self->register_type("char", "offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, \@HF\@, \@PARAM\@);","FT_INT8", "BASE_DEC", 0, "NULL", 1);

View File

@ -4,7 +4,7 @@
use strict;
use warnings;
use Test::More tests => 47;
use Test::More tests => 48;
use FindBin qw($RealBin);
use lib "$RealBin";
use Util;
@ -480,6 +480,7 @@ $ne = ParseElement($e, undef, 0);
is($ne->{REPRESENTATION_TYPE}, "uint8");
is(align_type("hyper"), 8);
is(align_type("int64"), 8);
is(align_type("double"), 8);
is(align_type("uint32"), 4);
is(align_type("uint16"), 2);

View File

@ -4,7 +4,7 @@
use strict;
use warnings;
use Test::More tests => 56;
use Test::More tests => 57;
use FindBin qw($RealBin);
use lib "$RealBin";
use Util;
@ -21,6 +21,7 @@ is("int32", expandAlias("int32"));
is("uint32_t", mapScalarType("uint32"));
is("void", mapScalarType("void"));
is("uint64_t", mapScalarType("hyper"));
is("int64_t", mapScalarType("int64"));
is("double", mapScalarType("double"));
my $x = { TYPE => "ENUM", NAME => "foo", EXTRADATA => 1 };