Constant simics_api_sys::SIMICS_API_BINDINGS

source ยท
pub const SIMICS_API_BINDINGS: &str = "/* automatically generated by rust-bindgen 0.70.1 */\n\n# [repr (C)] # [derive (Copy , Clone , Debug , Default , Eq , Hash , Ord , PartialEq , PartialOrd)] pub struct __BindgenBitfieldUnit < Storage > { storage : Storage , } impl < Storage > __BindgenBitfieldUnit < Storage > { # [inline] pub const fn new (storage : Storage) -> Self { Self { storage } } } impl < Storage > __BindgenBitfieldUnit < Storage > where Storage : AsRef < [u8] > + AsMut < [u8] >, { # [inline] pub fn get_bit (& self , index : usize) -> bool { debug_assert ! (index / 8 < self . storage . as_ref () . len ()) ; let byte_index = index / 8 ; let byte = self . storage . as_ref () [byte_index] ; let bit_index = if cfg ! (target_endian = \"big\") { 7 - (index % 8) } else { index % 8 } ; let mask = 1 << bit_index ; byte & mask == mask } # [inline] pub fn set_bit (& mut self , index : usize , val : bool) { debug_assert ! (index / 8 < self . storage . as_ref () . len ()) ; let byte_index = index / 8 ; let byte = & mut self . storage . as_mut () [byte_index] ; let bit_index = if cfg ! (target_endian = \"big\") { 7 - (index % 8) } else { index % 8 } ; let mask = 1 << bit_index ; if val { * byte |= mask ; } else { * byte &= ! mask ; } } # [inline] pub fn get (& self , bit_offset : usize , bit_width : u8) -> u64 { debug_assert ! (bit_width <= 64) ; debug_assert ! (bit_offset / 8 < self . storage . as_ref () . len ()) ; debug_assert ! ((bit_offset + (bit_width as usize)) / 8 <= self . storage . as_ref () . len ()) ; let mut val = 0 ; for i in 0 .. (bit_width as usize) { if self . get_bit (i + bit_offset) { let index = if cfg ! (target_endian = \"big\") { bit_width as usize - 1 - i } else { i } ; val |= 1 << index ; } } val } # [inline] pub fn set (& mut self , bit_offset : usize , bit_width : u8 , val : u64) { debug_assert ! (bit_width <= 64) ; debug_assert ! (bit_offset / 8 < self . storage . as_ref () . len ()) ; debug_assert ! ((bit_offset + (bit_width as usize)) / 8 <= self . storage . as_ref () . len ()) ; for i in 0 .. (bit_width as usize) { let mask = 1 << i ; let val_bit_is_set = val & mask == mask ; let index = if cfg ! (target_endian = \"big\") { bit_width as usize - 1 - i } else { i } ; self . set_bit (index + bit_offset , val_bit_is_set) ; } } } pub const _POSIX_C_SOURCE : u32 = 200809 ; pub const HAVE_ALLOCA_H : u32 = 1 ; pub const HAVE_DIRENT_H : u32 = 1 ; pub const HAVE_DLFCN_H : u32 = 1 ; pub const HAVE_FCNTL_H : u32 = 1 ; pub const HAVE_GETLOADAVG : u32 = 1 ; pub const HAVE_INET_ATON : u32 = 1 ; pub const HAVE_MMAP : u32 = 1 ; pub const HAVE_NET_IF_H : u32 = 1 ; pub const HAVE_POLL : u32 = 1 ; pub const HAVE_PTHREAD_H : u32 = 1 ; pub const HAVE_READLINK : u32 = 1 ; pub const HAVE_SIGACTION : u32 = 1 ; pub const HAVE_SYS_FILE_H : u32 = 1 ; pub const HAVE_SYS_IOCTL_H : u32 = 1 ; pub const HAVE_SYS_MMAN_H : u32 = 1 ; pub const HAVE_SYS_POLL_H : u32 = 1 ; pub const HAVE_SYS_RESOURCE_H : u32 = 1 ; pub const HAVE_SYS_SOCKET_H : u32 = 1 ; pub const HAVE_SYS_STATVFS_H : u32 = 1 ; pub const HAVE_SYS_TIMES_H : u32 = 1 ; pub const HAVE_SYS_TIME_H : u32 = 1 ; pub const HAVE_SYS_UN_H : u32 = 1 ; pub const HAVE_SYS_UTSNAME_H : u32 = 1 ; pub const HAVE_SYS_WAIT_H : u32 = 1 ; pub const HAVE_TERMIOS_H : u32 = 1 ; pub const HAVE_UNAME : u32 = 1 ; pub const HAVE_UTIME_H : u32 = 1 ; pub const _LARGEFILE_SOURCE : u32 = 1 ; pub const _XOPEN_SOURCE : u32 = 700 ; pub const BIG_ENDIAN : u32 = 4321 ; pub const PTRDIFF_MAX : u64 = 9223372036854775807 ; pub const S_IRUSR : u32 = 256 ; pub const S_IWUSR : u32 = 128 ; pub const LONG_BIT : u32 = 64 ; pub const Py_TPFLAGS_HAVE_ITER : u32 = 0 ; pub const Py_TPFLAGS_HAVE_RICHCOMPARE : u32 = 0 ; pub const Py_TPFLAGS_HAVE_CLASS : u32 = 0 ; pub const HAVE_VARARG_MACROS : u32 = 1 ; pub const HAVE_INTPTR_T : u32 = 1 ; pub const HAVE_UINTPTR_T : u32 = 1 ; pub const _LARGEFILE64_SOURCE : u32 = 1 ; pub const HAVE_AF_UNIX : u32 = 1 ; pub const HAVE_SYSV_IPC_SUPPORT : u32 = 1 ; pub const HAVE_FCNTL : u32 = 1 ; pub const HAVE_GETRUSAGE : u32 = 1 ; pub const HAVE_GETTIMEOFDAY : u32 = 1 ; pub const HAVE_INET_NTOA : u32 = 1 ; pub const HAVE_INET_NTOP : u32 = 1 ; pub const HAVE_STRTOK_R : u32 = 1 ; pub const HAVE_USLEEP : u32 = 1 ; pub const HAVE_ARPA_INET_H : u32 = 1 ; pub const HAVE_ELF_H : u32 = 1 ; pub const HAVE_NETDB_H : u32 = 1 ; pub const HAVE_NETINET_IF_ETHER_H : u32 = 1 ; pub const HAVE_NETINET_IN_H : u32 = 1 ; pub const HAVE_NETINET_IN_SYSTM_H : u32 = 1 ; pub const HAVE_NETINET_IP_H : u32 = 1 ; pub const HAVE_NETINET_IP_ICMP_H : u32 = 1 ; pub const HAVE_NETINET_TCP_H : u32 = 1 ; pub const HAVE_NETINET_UDP_H : u32 = 1 ; pub const HAVE_PWD_H : u32 = 1 ; pub const HAVE_SEMAPHORE_H : u32 = 1 ; pub const HAVE_SYS_FCNTL_H : u32 = 1 ; pub const HAVE_SYS_IPC_H : u32 = 1 ; pub const HAVE_SYS_SEM_H : u32 = 1 ; pub const HAVE_SYS_SHM_H : u32 = 1 ; pub const HAVE_SYSLOG_H : u32 = 1 ; pub const HAVE_UCONTEXT_H : u32 = 1 ; pub const HAVE_ISINF : u32 = 1 ; pub const HAVE_LIBXPM : u32 = 1 ; pub const HAVE_NET_ETHERNET_H : u32 = 1 ; pub const HAVE_NETINET_ETHER_H : u32 = 1 ; pub const HAVE_STDBOOL_H : u32 = 1 ; pub const SO_SFX : & [u8 ; 3] = b\"so\\0\" ; pub const USE_BINFMT_ELF : u32 = 1 ; pub const HAVE_SYS_VFS_H : u32 = 1 ; pub const HAVE_THREAD_LOCAL_STORAGE : u32 = 1 ; pub const SIMICS_HOST_TYPE : & [u8 ; 8] = b\"linux64\\0\" ; pub const HOST_CACHE_LINE_SIZE : u32 = 64 ; pub const DIR_SEP : & [u8 ; 2] = b\"/\\0\" ; pub const DIR_SEP_CHAR : u8 = 47u8 ; pub const PATH_SEP : & [u8 ; 2] = b\":\\0\" ; pub const PATH_SEP_CHAR : u8 = 58u8 ; pub const SIM_VERSION : u32 = 6275 ; pub const SIM_VERSION_COMPAT : u32 = 5000 ; pub const BUILD_ID_SIM_7 : u32 = 7000 ; pub const BUILD_ID_SIM_6 : u32 = 6000 ; pub const BUILD_ID_SIM_5 : u32 = 5000 ; pub const BUILD_ID_SIM_4_8 : u32 = 4500 ; pub const SIM_VERSION_7 : u32 = 7000 ; pub const SIM_VERSION_6 : u32 = 6000 ; pub const SIM_VERSION_5 : u32 = 5000 ; pub const SIM_VERSION_4_8 : u32 = 4500 ; pub const SIM_MAJOR_VERSION_DIFF : u32 = 1000 ; pub const __bool_true_false_are_defined : u32 = 1 ; pub const HAVE_INT8 : u32 = 1 ; pub const HAVE_UINT8 : u32 = 1 ; pub const HAVE_INT16 : u32 = 1 ; pub const HAVE_UINT16 : u32 = 1 ; pub const HAVE_INT32 : u32 = 1 ; pub const HAVE_UINT32 : u32 = 1 ; pub const HAVE_UINT64 : u32 = 1 ; pub const HAVE_INT64 : u32 = 1 ; pub const HOST_ALLOWS_UNALIGNED_ACCESSES : u32 = 1 ; pub const MAX_FRAGS_FRAGS : u32 = 8 ; pub const VECT_COVERITY : u32 = 0 ; pub const VECT_INITIAL_SIZE : u32 = 64 ; pub const VECT_DEBUG : u32 = 0 ; pub const DURATION_SCALE : u64 = 1000000000000 ; pub const HAVE_NATIVE_INT128 : u32 = 1 ; pub const INT128_STR_MAX_SIZE : u32 = 35 ; pub const BIGTIME_ATTRTYPE : & [u8 ; 7] = b\"[ii]|n\\0\" ; pub const BIGTIME_STR_MAX_SIZE : u32 = 72 ; pub const LOCAL_TIME_ATTRTYPE : & [u8 ; 10] = b\"[o[ii]|n]\\0\" ; pub const LOCAL_TIME_STR_MAX_SIZE : u32 = 72 ; pub const CYCLE_INTERFACE : & [u8 ; 6] = b\"cycle\\0\" ; pub const MIN_LOG_LEVEL : u32 = 1 ; pub const MAX_LOG_LEVEL : u32 = 4 ; pub const BREAKPOINT_HANDLE_INVALID : u32 = 0 ; pub const CONTEXT_HANDLER_INTERFACE : & [u8 ; 16] = b\"context_handler\\0\" ; pub const TAG_GRANULARITY : u32 = 4 ; pub const TAG_BYTE_PACKING : u32 = 3 ; pub const BREAKPOINT_INTERFACE : & [u8 ; 11] = b\"breakpoint\\0\" ; pub const BREAKPOINT_CHANGE_INTERFACE : & [u8 ; 18] = b\"breakpoint_change\\0\" ; pub const BREAKPOINT_QUERY_INTERFACE : & [u8 ; 17] = b\"breakpoint_query\\0\" ; pub const BREAKPOINT_QUERY_V2_INTERFACE : & [u8 ; 20] = b\"breakpoint_query_v2\\0\" ; pub const BREAKPOINT_TRIGGER_INTERFACE : & [u8 ; 19] = b\"breakpoint_trigger\\0\" ; pub const VIRTUAL_DATA_BREAKPOINT_INTERFACE : & [u8 ; 24] = b\"virtual_data_breakpoint\\0\" ; pub const VIRTUAL_INSTRUCTION_BREAKPOINT_INTERFACE : & [u8 ; 31] = b\"virtual_instruction_breakpoint\\0\" ; pub const BRANCH_RECORDER_HANDLER_INTERFACE : & [u8 ; 24] = b\"branch_recorder_handler\\0\" ; pub const TELEMETRY_MANAGER_INTERFACE : & [u8 ; 18] = b\"telemetry_manager\\0\" ; pub const CMD_LINE_FRONTEND_INTERFACE : & [u8 ; 18] = b\"cmd_line_frontend\\0\" ; pub const CMD_LINE_SELECTION_INTERFACE : & [u8 ; 19] = b\"cmd_line_selection\\0\" ; pub const TERMINAL_SERVER_INTERFACE : & [u8 ; 16] = b\"terminal_server\\0\" ; pub const TERMINAL_CLIENT_INTERFACE : & [u8 ; 16] = b\"terminal_client\\0\" ; pub const FRONTEND_SERVER_INTERFACE : & [u8 ; 16] = b\"frontend_server\\0\" ; pub const TCF_CHANNEL_INTERFACE : & [u8 ; 12] = b\"tcf_channel\\0\" ; pub const DESCRIBE_REGISTERS_INTERFACE : & [u8 ; 19] = b\"describe_registers\\0\" ; pub const REGISTER_VIEW_INTERFACE : & [u8 ; 14] = b\"register_view\\0\" ; pub const DEVICE_IDENTIFICATION_INTERFACE : & [u8 ; 22] = b\"device_identification\\0\" ; pub const MEMORY_PROFILER_INTERFACE : & [u8 ; 16] = b\"memory_profiler\\0\" ; pub const INSTRUMENTATION_ORDER_INTERFACE : & [u8 ; 22] = b\"instrumentation_order\\0\" ; pub const CALLBACK_INFO_INTERFACE : & [u8 ; 14] = b\"callback_info\\0\" ; pub const BANK_BEFORE_READ_INTERFACE : & [u8 ; 17] = b\"bank_before_read\\0\" ; pub const BANK_AFTER_READ_INTERFACE : & [u8 ; 16] = b\"bank_after_read\\0\" ; pub const BANK_BEFORE_WRITE_INTERFACE : & [u8 ; 18] = b\"bank_before_write\\0\" ; pub const BANK_AFTER_WRITE_INTERFACE : & [u8 ; 17] = b\"bank_after_write\\0\" ; pub const BANK_INSTRUMENTATION_SUBSCRIBE_INTERFACE : & [u8 ; 31] = b\"bank_instrumentation_subscribe\\0\" ; pub const EVENT_DELTA_INTERFACE : & [u8 ; 12] = b\"event_delta\\0\" ; pub const EVENT_HANDLER_INTERFACE : & [u8 ; 14] = b\"event_handler\\0\" ; pub const MMC_INTERFACE : & [u8 ; 4] = b\"mmc\\0\" ; pub const INSTRUCTION_FETCH_INTERFACE : & [u8 ; 18] = b\"instruction_fetch\\0\" ; pub const FREERUN_INTERFACE : & [u8 ; 8] = b\"freerun\\0\" ; pub const STEP_EVENT_INSTRUMENTATION_INTERFACE : & [u8 ; 27] = b\"step_event_instrumentation\\0\" ; pub const CYCLE_EVENT_INSTRUMENTATION_INTERFACE : & [u8 ; 28] = b\"cycle_event_instrumentation\\0\" ; pub const EXTERNAL_CONNECTION_CTL_INTERFACE : & [u8 ; 24] = b\"external_connection_ctl\\0\" ; pub const EXTERNAL_CONNECTION_EVENTS_INTERFACE : & [u8 ; 27] = b\"external_connection_events\\0\" ; pub const TCP_CONNECTION_INFO_INTERFACE : & [u8 ; 20] = b\"tcp_connection_info\\0\" ; pub const KEYBOARD_INTERFACE : & [u8 ; 9] = b\"keyboard\\0\" ; pub const KEYBOARD_CONSOLE_INTERFACE : & [u8 ; 17] = b\"keyboard_console\\0\" ; pub const MOUSE_INTERFACE : & [u8 ; 6] = b\"mouse\\0\" ; pub const EXCEPTION_INTERFACE : & [u8 ; 10] = b\"exception\\0\" ; pub const HAP_LISTEN_INTERFACE : & [u8 ; 11] = b\"hap_listen\\0\" ; pub const CYCLE_EVENT_INTERFACE : & [u8 ; 12] = b\"cycle_event\\0\" ; pub const CYCLE_CONTROL_INTERFACE : & [u8 ; 14] = b\"cycle_control\\0\" ; pub const GBP_MAGIC : u32 = 3772834016 ; pub const GBP_FMT_VGA_4 : u32 = 1 ; pub const GBP_FMT_V3_8 : u32 = 8 ; pub const GBP_FMT_V3_16 : u32 = 16 ; pub const GBP_FMT_V3_24 : u32 = 24 ; pub const GBP_FMT_V3_32 : u32 = 32 ; pub const GBP_COMMENT_OFFS : u32 = 0 ; pub const GBP_MAGIC_OFFS : u32 = 32 ; pub const GBP_FORMAT_OFFS : u32 = 36 ; pub const GBP_BYTES_OFFS : u32 = 40 ; pub const GBP_MINX_OFFS : u32 = 44 ; pub const GBP_MINY_OFFS : u32 = 48 ; pub const GBP_MAXX_OFFS : u32 = 52 ; pub const GBP_MAXY_OFFS : u32 = 56 ; pub const GBP_HEADER_SIZE : u32 = 60 ; pub const VIDEO_INTERFACE : & [u8 ; 6] = b\"video\\0\" ; pub const CO_EXECUTE_INTERFACE : & [u8 ; 11] = b\"co_execute\\0\" ; pub const SYNCHRONOUS_MODE_INTERFACE : & [u8 ; 17] = b\"synchronous_mode\\0\" ; pub const RAM_INTERFACE : & [u8 ; 4] = b\"ram\\0\" ; pub const ROM_INTERFACE : & [u8 ; 4] = b\"rom\\0\" ; pub const RAM_ACCESS_SUBSCRIBE_INTERFACE : & [u8 ; 21] = b\"ram_access_subscribe\\0\" ; pub const TEMPORAL_STATE_INTERFACE : & [u8 ; 15] = b\"temporal_state\\0\" ; pub const DATA_PROFILER_INTERFACE : & [u8 ; 14] = b\"data_profiler\\0\" ; pub const SAVE_STATE_INTERFACE : & [u8 ; 11] = b\"save_state\\0\" ; pub const VGA_TEXT_INTERFACE : & [u8 ; 9] = b\"vga_text\\0\" ; pub const VGA_TEXT_INFO_INTERFACE : & [u8 ; 14] = b\"vga_text_info\\0\" ; pub const VGA_TEXT_UPDATE_INTERFACE : & [u8 ; 16] = b\"vga_text_update\\0\" ; pub const CACHE_CONTROL_INTERFACE : & [u8 ; 14] = b\"cache_control\\0\" ; pub const STEP_INTERFACE : & [u8 ; 5] = b\"step\\0\" ; pub const STEP_CYCLE_RATIO_INTERFACE : & [u8 ; 17] = b\"step_cycle_ratio\\0\" ; pub const STALL_INTERFACE : & [u8 ; 6] = b\"stall\\0\" ; pub const STEP_INFO_INTERFACE : & [u8 ; 10] = b\"step_info\\0\" ; pub const MOUSE_LEFT_DOWN : u32 = 1 ; pub const MOUSE_RIGHT_DOWN : u32 = 2 ; pub const MOUSE_MIDDLE_DOWN : u32 = 4 ; pub const MOUSE_4_DOWN : u32 = 8 ; pub const MOUSE_5_DOWN : u32 = 16 ; pub const KBD_CAPSLOCK_ON : u32 = 0 ; pub const KBD_CAPSLOCK_OFF : u32 = 1 ; pub const KBD_NUMLOCK_ON : u32 = 2 ; pub const KBD_NUMLOCK_OFF : u32 = 3 ; pub const KBD_SCROLLLOCK_ON : u32 = 4 ; pub const KBD_SCROLLLOCK_OFF : u32 = 5 ; pub const DECODER_INTERFACE : & [u8 ; 8] = b\"decoder\\0\" ; pub const UD_IT_SEQUENTIAL : u32 = 1 ; pub const UD_IT_CONTROL_FLOW : u32 = 2 ; pub const TIMING_MODEL_INTERFACE : & [u8 ; 13] = b\"timing_model\\0\" ; pub const SNOOP_MEMORY_INTERFACE : & [u8 ; 13] = b\"snoop_memory\\0\" ; pub const SIMULATOR_CACHE_INTERFACE : & [u8 ; 16] = b\"simulator_cache\\0\" ; pub const EXECUTE_INTERFACE : & [u8 ; 8] = b\"execute\\0\" ; pub const CELL_INSPECTION_INTERFACE : & [u8 ; 16] = b\"cell_inspection\\0\" ; pub const EXECUTE_CONTROL_INTERFACE : & [u8 ; 16] = b\"execute_control\\0\" ; pub const UINT64_STATE_INTERFACE : & [u8 ; 13] = b\"uint64_state\\0\" ; pub const PROCESSOR_INFO_INTERFACE : & [u8 ; 15] = b\"processor_info\\0\" ; pub const PROCESSOR_INFO_V2_INTERFACE : & [u8 ; 18] = b\"processor_info_v2\\0\" ; pub const PROCESSOR_ENDIAN_INTERFACE : & [u8 ; 17] = b\"processor_endian\\0\" ; pub const PROCESSOR_CLI_INTERFACE : & [u8 ; 14] = b\"processor_cli\\0\" ; pub const OPCODE_INFO_INTERFACE : & [u8 ; 12] = b\"opcode_info\\0\" ; pub const PROCESSOR_GUI_INTERFACE : & [u8 ; 14] = b\"processor_gui\\0\" ; pub const IMAGE_INTERFACE : & [u8 ; 6] = b\"image\\0\" ; pub const LINEAR_IMAGE_INTERFACE : & [u8 ; 13] = b\"linear_image\\0\" ; pub const IMAGE_SNOOP_INTERFACE : & [u8 ; 12] = b\"image_snoop\\0\" ; pub const POOL_PROTECT_INTERFACE : & [u8 ; 13] = b\"pool_protect\\0\" ; pub const DIRECT_MEMORY_INTERFACE : & [u8 ; 14] = b\"direct_memory\\0\" ; pub const DIRECT_MEMORY_LOOKUP_INTERFACE : & [u8 ; 21] = b\"direct_memory_lookup\\0\" ; pub const DIRECT_MEMORY_LOOKUP_V2_INTERFACE : & [u8 ; 24] = b\"direct_memory_lookup_v2\\0\" ; pub const DIRECT_MEMORY_UPDATE_INTERFACE : & [u8 ; 21] = b\"direct_memory_update\\0\" ; pub const DIRECT_MEMORY_FLUSH_INTERFACE : & [u8 ; 20] = b\"direct_memory_flush\\0\" ; pub const DIRECT_MEMORY_TAGS_INTERFACE : & [u8 ; 19] = b\"direct_memory_tags\\0\" ; pub const REGISTER_VIEW_READ_ONLY_INTERFACE : & [u8 ; 24] = b\"register_view_read_only\\0\" ; pub const DUMMY_MEMORY_PAGE_INTERFACE : & [u8 ; 18] = b\"dummy_memory_page\\0\" ; pub const PACKET_INTERFACE : & [u8 ; 7] = b\"packet\\0\" ; pub const INT_REGISTER_INTERFACE : & [u8 ; 13] = b\"int_register\\0\" ; pub const ATTRIBUTE_MONITOR_INTERFACE : & [u8 ; 18] = b\"attribute_monitor\\0\" ; pub const TRANSACTION_INTERFACE : & [u8 ; 12] = b\"transaction\\0\" ; pub const CPU_INSTRUCTION_QUERY_INTERFACE : & [u8 ; 22] = b\"cpu_instruction_query\\0\" ; pub const CPU_MEMORY_QUERY_INTERFACE : & [u8 ; 17] = b\"cpu_memory_query\\0\" ; pub const CPU_EXCEPTION_QUERY_INTERFACE : & [u8 ; 20] = b\"cpu_exception_query\\0\" ; pub const CPU_CACHED_INSTRUCTION_INTERFACE : & [u8 ; 23] = b\"cpu_cached_instruction\\0\" ; pub const CPU_CACHED_INSTRUCTION_ONCE_INTERFACE : & [u8 ; 28] = b\"cpu_cached_instruction_once\\0\" ; pub const CPU_INSTRUCTION_DECODER_INTERFACE : & [u8 ; 24] = b\"cpu_instruction_decoder\\0\" ; pub const CPU_INSTRUMENTATION_SUBSCRIBE_INTERFACE : & [u8 ; 30] = b\"cpu_instrumentation_subscribe\\0\" ; pub const CPU_STREAM_TAG_WIDTH : u32 = 6 ; pub const CPU_STREAM_TAG_MASK : u32 = 63 ; pub const CPU_CACHED_STREAM_INTERFACE : & [u8 ; 18] = b\"cpu_cached_stream\\0\" ; pub const CPU_INSTRUMENTATION_STREAM_INTERFACE : & [u8 ; 37] = b\"cpu_instrumentation_stream_interface\\0\" ; pub const PRE_DECODER_INTERFACE : & [u8 ; 12] = b\"pre_decoder\\0\" ; pub const VGA_UPDATE_INTERFACE : & [u8 ; 11] = b\"vga_update\\0\" ; pub const GFX_CON_INTERFACE : & [u8 ; 8] = b\"gfx_con\\0\" ; pub const ABS_POINTER_INTERFACE : & [u8 ; 12] = b\"abs_pointer\\0\" ; pub const ABS_POINTER_ACTIVATE_INTERFACE : & [u8 ; 21] = b\"abs_pointer_activate\\0\" ; pub const CDROM_MEDIA_INTERFACE : & [u8 ; 12] = b\"cdrom_media\\0\" ; pub const CONCURRENCY_MODE_INTERFACE : & [u8 ; 17] = b\"concurrency_mode\\0\" ; pub const CONCURRENCY_GROUP_INTERFACE : & [u8 ; 18] = b\"concurrency_group\\0\" ; pub const EXEC_TRACE_INTERFACE : & [u8 ; 11] = b\"exec_trace\\0\" ; pub const COMPONENT_INTERFACE : & [u8 ; 10] = b\"component\\0\" ; pub const CONNECTOR_INTERFACE : & [u8 ; 10] = b\"connector\\0\" ; pub const COMPONENT_CONNECTOR_INTERFACE : & [u8 ; 20] = b\"component_connector\\0\" ; pub const DISK_COMPONENT_INTERFACE : & [u8 ; 15] = b\"disk_component\\0\" ; pub const JIT_CONTROL_INTERFACE : & [u8 ; 12] = b\"jit_control\\0\" ; pub const CPU_GROUP_INTERFACE : & [u8 ; 10] = b\"cpu_group\\0\" ; pub const ETH_ALEN : u32 = 6 ; pub const ETHERTYPE_PUP : u32 = 512 ; pub const ETHERTYPE_IP : u32 = 2048 ; pub const ETHERTYPE_ARP : u32 = 2054 ; pub const ETHERTYPE_REVARP : u32 = 32821 ; pub const ETHERTYPE_IPV6 : u32 = 34525 ; pub const ETHER_ADDR_LEN : u32 = 6 ; pub const ETHER_CRC_LEN : u32 = 4 ; pub const ETHER_MIN_LEN : u32 = 64 ; pub const ETHER_MAX_LEN : u32 = 1518 ; pub const RTLD_NOW : u32 = 2 ; pub const RTLD_GLOBAL : u32 = 256 ; pub const RTLD_LOCAL : u32 = 0 ; pub const MAX_ETHER_ADDR_STRLEN : u32 = 18 ; pub const MAX_IPV4_ADDR_STRLEN : u32 = 16 ; pub const ILLEGAL_IP_ADDRESS : u32 = 4294967295 ; pub const OS_DLOPEN_GLOBAL : u32 = 256 ; pub const OS_DLOPEN_LOCAL : u32 = 0 ; pub const OS_DLOPEN_NOW : u32 = 2 ; pub const OS_DLOPEN_LOCAL_SEARCHPATH : u32 = 0 ; pub const O_BINARY : u32 = 0 ; pub const OS_INVALID_SOCKET : i32 = - 1 ; pub const OSA_NODE_PATH_INTERFACE : & [u8 ; 14] = b\"osa_node_path\\0\" ; pub const OSA_COMPONENT_INTERFACE : & [u8 ; 14] = b\"osa_component\\0\" ; pub const OSA_CONTROL_INTERFACE : & [u8 ; 12] = b\"osa_control\\0\" ; pub const OSA_CONTROL_V2_INTERFACE : & [u8 ; 15] = b\"osa_control_v2\\0\" ; pub const OSA_NODE_TREE_QUERY_INTERFACE : & [u8 ; 20] = b\"osa_node_tree_query\\0\" ; pub const OSA_NODE_TREE_NOTIFICATION_INTERFACE : & [u8 ; 27] = b\"osa_node_tree_notification\\0\" ; pub const FOLLOWER_AGENT_INTERFACE : & [u8 ; 15] = b\"follower_agent\\0\" ; pub const LEADER_MESSAGE_INTERFACE : & [u8 ; 15] = b\"leader_message\\0\" ; pub const OSA_PARAMETERS_INTERFACE : & [u8 ; 15] = b\"osa_parameters\\0\" ; pub const LINK_ENDPOINT_INTERFACE : & [u8 ; 14] = b\"link_endpoint\\0\" ; pub const LINK_ENDPOINT_V2_INTERFACE : & [u8 ; 17] = b\"link_endpoint_v2\\0\" ; pub const SCALAR_TIME_INTERFACE : & [u8 ; 12] = b\"scalar_time\\0\" ; pub const OSA_MACHINE_NOTIFICATION_INTERFACE : & [u8 ; 25] = b\"osa_machine_notification\\0\" ; pub const OSA_MACHINE_QUERY_INTERFACE : & [u8 ; 18] = b\"osa_machine_query\\0\" ; pub const OSA_MAPPER_ADMIN_INTERFACE : & [u8 ; 17] = b\"osa_mapper_admin\\0\" ; pub const OSA_MAPPER_CONTROL_INTERFACE : & [u8 ; 19] = b\"osa_mapper_control\\0\" ; pub const OSA_MAPPER_QUERY_INTERFACE : & [u8 ; 17] = b\"osa_mapper_query\\0\" ; pub const OSA_NODE_TREE_ADMIN_INTERFACE : & [u8 ; 20] = b\"osa_node_tree_admin\\0\" ; pub const OSA_TRACKER_COMPONENT_INTERFACE : & [u8 ; 22] = b\"osa_tracker_component\\0\" ; pub const OSA_TRACKER_STATE_ADMIN_INTERFACE : & [u8 ; 24] = b\"osa_tracker_state_admin\\0\" ; pub const OSA_TRACKER_STATE_NOTIFICATION_INTERFACE : & [u8 ; 31] = b\"osa_tracker_state_notification\\0\" ; pub const OSA_TRACKER_STATE_QUERY_INTERFACE : & [u8 ; 24] = b\"osa_tracker_state_query\\0\" ; pub const OSA_TRACKER_CONTROL_INTERFACE : & [u8 ; 20] = b\"osa_tracker_control\\0\" ; pub const OSA_MICRO_CHECKPOINT_INTERFACE : & [u8 ; 21] = b\"osa_micro_checkpoint\\0\" ; pub const SLAVE_AGENT_INTERFACE : & [u8 ; 12] = b\"slave_agent\\0\" ; pub const SLAVER_MESSAGE_INTERFACE : & [u8 ; 15] = b\"slaver_message\\0\" ; pub const RECORDER_INTERFACE : & [u8 ; 9] = b\"recorder\\0\" ; pub const RECORDER_V2_INTERFACE : & [u8 ; 12] = b\"recorder_v2\\0\" ; pub const RECORDED_INTERFACE : & [u8 ; 9] = b\"recorded\\0\" ; pub const DEBUG_NOTIFICATION_INTERFACE : & [u8 ; 19] = b\"debug_notification\\0\" ; pub const DEBUG_SETUP_INTERFACE : & [u8 ; 12] = b\"debug_setup\\0\" ; pub const DEBUG_QUERY_INTERFACE : & [u8 ; 12] = b\"debug_query\\0\" ; pub const DEBUG_STEP_INTERFACE : & [u8 ; 11] = b\"debug_step\\0\" ; pub const DEBUG_SYMBOL_INTERFACE : & [u8 ; 13] = b\"debug_symbol\\0\" ; pub const DEBUG_SYMBOL_FILE_INTERFACE : & [u8 ; 18] = b\"debug_symbol_file\\0\" ; pub const PREFERENCE_INTERFACE : & [u8 ; 11] = b\"preference\\0\" ; pub const ADDRESS_PROFILER_INTERFACE : & [u8 ; 17] = b\"address_profiler\\0\" ; pub const BRANCH_ARC_INTERFACE : & [u8 ; 11] = b\"branch_arc\\0\" ; pub const PROBE_INTERFACE : & [u8 ; 6] = b\"probe\\0\" ; pub const PROBE_INDEX_INTERFACE : & [u8 ; 12] = b\"probe_index\\0\" ; pub const PROBE_ARRAY_INTERFACE : & [u8 ; 12] = b\"probe_array\\0\" ; pub const PROBE_SUBSCRIBE_INTERFACE : & [u8 ; 16] = b\"probe_subscribe\\0\" ; pub const PROBE_SAMPLER_CACHE_INTERFACE : & [u8 ; 20] = b\"probe_sampler_cache\\0\" ; pub const BREAKPOINT_PROP_ENABLED : & [u8 ; 8] = b\"enabled\\0\" ; pub const BREAKPOINT_PROP_TEMPORARY : & [u8 ; 10] = b\"temporary\\0\" ; pub const BREAKPOINT_PROP_IGNORE_COUNT : & [u8 ; 13] = b\"ignore count\\0\" ; pub const BREAKPOINT_PROP_HIT_COUNT : & [u8 ; 10] = b\"hit count\\0\" ; pub const BREAKPOINT_PROP_DESCRIPTION : & [u8 ; 12] = b\"description\\0\" ; pub const BREAKPOINT_REGISTRATION_INTERFACE : & [u8 ; 24] = b\"breakpoint_registration\\0\" ; pub const BREAKPOINT_TYPE_INTERFACE : & [u8 ; 16] = b\"breakpoint_type\\0\" ; pub const BREAKPOINT_TYPE_PROVIDER_INTERFACE : & [u8 ; 25] = b\"breakpoint_type_provider\\0\" ; pub const BREAKPOINT_MANAGER_INTERFACE : & [u8 ; 19] = b\"breakpoint_manager\\0\" ; pub const CHECKPOINT_INTERFACE : & [u8 ; 11] = b\"checkpoint\\0\" ; pub const TABLE_INTERFACE : & [u8 ; 6] = b\"table\\0\" ; pub const INSTRUMENTATION_FILTER_SLAVE_INTERFACE : & [u8 ; 29] = b\"instrumentation_filter_slave\\0\" ; pub const INSTRUMENTATION_FILTER_STATUS_INTERFACE : & [u8 ; 30] = b\"instrumentation_filter_status\\0\" ; pub const INSTRUMENTATION_FILTER_MASTER_INTERFACE : & [u8 ; 30] = b\"instrumentation_filter_master\\0\" ; pub const SERIAL_CONSOLE_FRONTEND_INTERFACE : & [u8 ; 24] = b\"serial_console_frontend\\0\" ; pub const CON_INPUT_INTERFACE : & [u8 ; 10] = b\"con_input\\0\" ; pub const CON_INPUT_CODE_INTERFACE : & [u8 ; 15] = b\"con_input_code\\0\" ; pub const BREAK_STRINGS_INTERFACE : & [u8 ; 14] = b\"break_strings\\0\" ; pub const BREAK_STRINGS_V2_INTERFACE : & [u8 ; 17] = b\"break_strings_v2\\0\" ; pub const GFX_BREAK_INTERFACE : & [u8 ; 10] = b\"gfx_break\\0\" ; pub const TELNET_CONNECTION_INTERFACE : & [u8 ; 18] = b\"telnet_connection\\0\" ; pub const TELNET_CONNECTION_V2_INTERFACE : & [u8 ; 21] = b\"telnet_connection_v2\\0\" ; pub const VNC_SERVER_INTERFACE : & [u8 ; 11] = b\"vnc_server\\0\" ; pub const VNC_SERVER_V2_INTERFACE : & [u8 ; 14] = b\"vnc_server_v2\\0\" ; pub const HOST_SERIAL_INTERFACE : & [u8 ; 12] = b\"host_serial\\0\" ; pub const SCREENSHOT_INTERFACE : & [u8 ; 11] = b\"screenshot\\0\" ; pub const TEXT_CONSOLE_FRONTEND_INTERFACE : & [u8 ; 22] = b\"text_console_frontend\\0\" ; pub const TEXT_CONSOLE_BACKEND_INTERFACE : & [u8 ; 21] = b\"text_console_backend\\0\" ; pub const GFX_CONSOLE_FRONTEND_INTERFACE : & [u8 ; 21] = b\"gfx_console_frontend\\0\" ; pub const GFX_CONSOLE_BACKEND_INTERFACE : & [u8 ; 20] = b\"gfx_console_backend\\0\" ; pub const WINSOME_CONSOLE_INTERFACE : & [u8 ; 16] = b\"winsome_console\\0\" ; pub const GUI_CONSOLE_BACKEND_INTERFACE : & [u8 ; 20] = b\"gui_console_backend\\0\" ; pub const REGISTER_BREAKPOINT_INTERFACE : & [u8 ; 20] = b\"register_breakpoint\\0\" ; pub const DISASSEMBLE_INTERFACE : & [u8 ; 12] = b\"disassemble\\0\" ; pub const INSTRUMENTATION_TOOL_INTERFACE : & [u8 ; 21] = b\"instrumentation_tool\\0\" ; pub const INSTRUMENTATION_CONNECTION_INTERFACE : & [u8 ; 27] = b\"instrumentation_connection\\0\" ; pub const ARM_INTERFACE : & [u8 ; 4] = b\"arm\\0\" ; pub const ARM_INT_IRQ : u32 = 0 ; pub const ARM_INT_FIQ : u32 = 1 ; pub const ARM_INT_VIRQ : u32 = 2 ; pub const ARM_INT_VFIQ : u32 = 3 ; pub const ARM_INT_SEI : u32 = 4 ; pub const ARM_INT_REI : u32 = 5 ; pub const ARM_INT_VSEI : u32 = 6 ; pub const ARM_INT_NMI : u32 = 512 ; pub const ARM_INT_SYSTICK : u32 = 513 ; pub const ARM_COPROCESSOR_INTERFACE : & [u8 ; 16] = b\"arm_coprocessor\\0\" ; pub const ARM_AVIC_INTERFACE : & [u8 ; 9] = b\"arm_avic\\0\" ; pub const ARM_TRUSTZONE_INTERFACE : & [u8 ; 14] = b\"arm_trustzone\\0\" ; pub const ARM_EXTERNAL_DEBUG_INTERFACE : & [u8 ; 19] = b\"arm_external_debug\\0\" ; pub const ARM_GIC_INTERFACE : & [u8 ; 8] = b\"arm_gic\\0\" ; pub const ARM_GIC_CPU_STATE_INTERFACE : & [u8 ; 18] = b\"arm_gic_cpu_state\\0\" ; pub const ARM_CPU_GROUP_EXCLUSIVE_INTERFACE : & [u8 ; 24] = b\"arm_cpu_group_exclusive\\0\" ; pub const ARM_CPU_GROUP_EVENT_INTERFACE : & [u8 ; 20] = b\"arm_cpu_group_event\\0\" ; pub const ARM_CPU_GROUP_TLB_INTERFACE : & [u8 ; 18] = b\"arm_cpu_group_tlb\\0\" ; pub const X86_ACCESS_TYPE_INTERFACE : & [u8 ; 16] = b\"x86_access_type\\0\" ; pub const SIM_DI_PREFIX_F0_BIT : u32 = 1 ; pub const SIM_DI_PREFIX_F2_BIT : u32 = 2 ; pub const SIM_DI_PREFIX_F3_BIT : u32 = 4 ; pub const SIM_DI_PREFIX_CS_BIT : u32 = 8 ; pub const SIM_DI_PREFIX_SS_BIT : u32 = 16 ; pub const SIM_DI_PREFIX_DS_BIT : u32 = 32 ; pub const SIM_DI_PREFIX_ES_BIT : u32 = 64 ; pub const SIM_DI_PREFIX_FS_BIT : u32 = 128 ; pub const SIM_DI_PREFIX_GS_BIT : u32 = 256 ; pub const SIM_DI_PREFIX_OPERAND_SIZE_BIT : u32 = 512 ; pub const SIM_DI_PREFIX_66_BIT : u32 = 512 ; pub const SIM_DI_PREFIX_ADDRESS_SIZE_BIT : u32 = 1024 ; pub const SIM_DI_PREFIX_SSE_BIT : u32 = 2048 ; pub const SIM_DI_PREFIX_REX_BIT : u32 = 4096 ; pub const SIM_DI_PREFIX_REX_POS : u32 = 16 ; pub const SIM_DI_PREFIX_REX_POS_B : u32 = 16 ; pub const SIM_DI_PREFIX_REX_POS_X : u32 = 17 ; pub const SIM_DI_PREFIX_REX_POS_R : u32 = 18 ; pub const SIM_DI_PREFIX_REX_POS_W : u32 = 19 ; pub const X86_TLB_INTERFACE : & [u8 ; 8] = b\"x86_tlb\\0\" ; pub const X86_TLB_PTE_WRITE : u32 = 2 ; pub const X86_TLB_PTE_USER : u32 = 4 ; pub const X86_TLB_PTE_DIRTY : u32 = 64 ; pub const X86_TLB_PTE_GLOBAL : u32 = 256 ; pub const X86_TLB_PTE_PAGE_MASK : u32 = 326 ; pub const X86_TLB_PTE_USER_SHIFT : u32 = 9 ; pub const X86_TLB_PTE_USER_READ : u32 = 512 ; pub const X86_TLB_PTE_USER_WRITE : u32 = 1024 ; pub const X86_TLB_PTE_USER_EXECUTE : u32 = 2048 ; pub const X86_TLB_PTE_USER_MASK : u32 = 3584 ; pub const X86_TLB_PTE_SVISOR_SHIFT : u32 = 60 ; pub const X86_TLB_PTE_SVISOR_READ : u64 = 1152921504606846976 ; pub const X86_TLB_PTE_SVISOR_WRITE : u64 = 2305843009213693952 ; pub const X86_TLB_PTE_SVISOR_EXECUTE : u64 = 4611686018427387904 ; pub const X86_TLB_PTE_SVISOR_MASK : u64 = 8070450532247928832 ; pub const X86_TLB_PTE_MASK : u64 = 8070450532247932416 ; pub const X86_TLB_V3_INTERFACE : & [u8 ; 11] = b\"x86_tlb_v3\\0\" ; pub const X86_TLB_V2_INTERFACE : & [u8 ; 11] = b\"x86_tlb_v2\\0\" ; pub const X86_INTERFACE : & [u8 ; 4] = b\"x86\\0\" ; pub const X86_CPUID_INTERFACE : & [u8 ; 10] = b\"x86_cpuid\\0\" ; pub const X86_CPUID_QUERY_INTERFACE : & [u8 ; 16] = b\"x86_cpuid_query\\0\" ; pub const APIC_CPU_INTERFACE : & [u8 ; 9] = b\"apic_cpu\\0\" ; pub const A20_INTERFACE : & [u8 ; 4] = b\"a20\\0\" ; pub const X86_MSR_INTERFACE : & [u8 ; 8] = b\"x86_msr\\0\" ; pub const X86_CACHE_FLUSH_INTERFACE : & [u8 ; 16] = b\"x86_cache_flush\\0\" ; pub const X86_SMM_STATE_INTERFACE : & [u8 ; 14] = b\"x86_smm_state\\0\" ; pub const X86_SMM_INTERFACE : & [u8 ; 8] = b\"x86_smm\\0\" ; pub const X86_REG_ACCESS_INTERFACE : & [u8 ; 15] = b\"x86_reg_access\\0\" ; pub const X86_EXCEPTION_INTERFACE : & [u8 ; 14] = b\"x86_exception\\0\" ; pub const X86_MEMORY_ACCESS_INTERFACE : & [u8 ; 18] = b\"x86_memory_access\\0\" ; pub const X86_MEMORY_OPERATION_INTERFACE : & [u8 ; 21] = b\"x86_memory_operation\\0\" ; pub const X86_VMP_CONTROL_INTERFACE : & [u8 ; 16] = b\"x86_vmp_control\\0\" ; pub const VMP_INTERFACE : & [u8 ; 4] = b\"vmp\\0\" ; pub const XED_ACCESS_INTERFACE : & [u8 ; 11] = b\"xed_access\\0\" ; pub const X86_EPT_INTERFACE : & [u8 ; 8] = b\"x86_ept\\0\" ; pub const X86_INSTRUCTION_QUERY_INTERFACE : & [u8 ; 22] = b\"x86_instruction_query\\0\" ; pub const X86_MEMORY_QUERY_INTERFACE : & [u8 ; 17] = b\"x86_memory_query\\0\" ; pub const X86_EXCEPTION_QUERY_INTERFACE : & [u8 ; 20] = b\"x86_exception_query\\0\" ; pub const X86_ADDRESS_QUERY_INTERFACE : & [u8 ; 18] = b\"x86_address_query\\0\" ; pub const X86_INSTRUMENTATION_SUBSCRIBE_INTERFACE : & [u8 ; 30] = b\"x86_instrumentation_subscribe\\0\" ; pub const X86_INSTRUMENTATION_SUBSCRIBE_V2_INTERFACE : & [u8 ; 33] = b\"x86_instrumentation_subscribe_v2\\0\" ; pub const VMX_INSTRUMENTATION_SUBSCRIBE_INTERFACE : & [u8 ; 30] = b\"vmx_instrumentation_subscribe\\0\" ; pub const SMM_INSTRUMENTATION_SUBSCRIBE_INTERFACE : & [u8 ; 30] = b\"smm_instrumentation_subscribe\\0\" ; pub const MIPS_INTERFACE : & [u8 ; 5] = b\"mips\\0\" ; pub const MIPS_COPROCESSOR_INTERFACE : & [u8 ; 17] = b\"mips_coprocessor\\0\" ; pub const FMN_STATION_CONTROL_INTERFACE : & [u8 ; 20] = b\"fmn_station_control\\0\" ; pub const FMN_STATION_CONTROL_V2_INTERFACE : & [u8 ; 23] = b\"fmn_station_control_v2\\0\" ; pub const MIPS_CACHE_INSTRUCTION_INTERFACE : & [u8 ; 23] = b\"mips_cache_instruction\\0\" ; pub const MIPS_ITE_INTERFACE : & [u8 ; 9] = b\"mips_ite\\0\" ; pub const MIPS_EIC_INTERFACE : & [u8 ; 9] = b\"mips_eic\\0\" ; pub const MIPS_EXCEPTION_QUERY_INTERFACE : & [u8 ; 21] = b\"mips_exception_query\\0\" ; pub const SPARC_V8_INTERFACE : & [u8 ; 9] = b\"sparc_v8\\0\" ; pub const SPARC_V8_ECC_FAULT_INJECTION_INTERFACE : & [u8 ; 29] = b\"sparc_v8_ecc_fault_injection\\0\" ; pub const NIOS_INTERFACE : & [u8 ; 5] = b\"nios\\0\" ; pub const NIOS_EIC_INTERFACE : & [u8 ; 9] = b\"nios_eic\\0\" ; pub const NIOS_CACHE_INTERFACE : & [u8 ; 11] = b\"nios_cache\\0\" ; pub const NIOS_CUSTOM_INTERFACE : & [u8 ; 12] = b\"nios_custom\\0\" ; pub const PPC_INTERFACE : & [u8 ; 4] = b\"ppc\\0\" ; pub const SPR_INTERFACE : & [u8 ; 4] = b\"spr\\0\" ; pub const PMR_INTERFACE : & [u8 ; 4] = b\"pmr\\0\" ; pub const I8051_INTERRUPT_INTERFACE : & [u8 ; 16] = b\"i8051_interrupt\\0\" ; pub const I8051_TIMER_INTERFACE : & [u8 ; 12] = b\"i8051_timer\\0\" ; pub const SH_INTERRUPT_INTERFACE : & [u8 ; 13] = b\"sh_interrupt\\0\" ; pub const RISCV_COPROCESSOR_INTERFACE : & [u8 ; 18] = b\"riscv_coprocessor\\0\" ; pub const RISCV_IMSIC_INTERFACE : & [u8 ; 12] = b\"riscv_imsic\\0\" ; pub const RISCV_SIGNAL_SGEIP_INTERFACE : & [u8 ; 19] = b\"riscv_signal_sgeip\\0\" ; pub const RISCV_CLIC_INTERRUPT_INTERFACE : & [u8 ; 21] = b\"riscv_clic_interrupt\\0\" ; pub const RISCV_CLIC_INTERFACE : & [u8 ; 11] = b\"riscv_clic\\0\" ; pub const XTENSA_TIE_LOOKUP_INTERFACE : & [u8 ; 18] = b\"xtensa_tie_lookup\\0\" ; pub const XTENSA_TIE_EXPORT_STATE_INTERFACE : & [u8 ; 24] = b\"xtensa_tie_export_state\\0\" ; pub const XTENSA_TIE_OUTPUT_QUEUE_INTERFACE : & [u8 ; 24] = b\"xtensa_tie_output_queue\\0\" ; pub const XTENSA_TIE_INPUT_QUEUE_INTERFACE : & [u8 ; 23] = b\"xtensa_tie_input_queue\\0\" ; pub const XTENSA_TIE_IMPORT_WIRE_INTERFACE : & [u8 ; 23] = b\"xtensa_tie_import_wire\\0\" ; pub const XTENSA_LOOKUP_INTERFACE : & [u8 ; 14] = b\"xtensa_lookup\\0\" ; pub const XTENSA_EXPORT_STATE_INTERFACE : & [u8 ; 20] = b\"xtensa_export_state\\0\" ; pub const XTENSA_OUTPUT_QUEUE_INTERFACE : & [u8 ; 20] = b\"xtensa_output_queue\\0\" ; pub const XTENSA_INPUT_QUEUE_INTERFACE : & [u8 ; 19] = b\"xtensa_input_queue\\0\" ; pub const XTENSA_IMPORT_WIRE_INTERFACE : & [u8 ; 19] = b\"xtensa_import_wire\\0\" ; pub const FREQUENCY_INTERFACE : & [u8 ; 10] = b\"frequency\\0\" ; pub const FREQUENCY_LISTENER_INTERFACE : & [u8 ; 19] = b\"frequency_listener\\0\" ; pub const SCALE_FACTOR_LISTENER_INTERFACE : & [u8 ; 22] = b\"scale_factor_listener\\0\" ; pub const SIMPLE_DISPATCHER_INTERFACE : & [u8 ; 18] = b\"simple_dispatcher\\0\" ; pub const INTERRUPT_ACK_INTERFACE : & [u8 ; 14] = b\"interrupt_ack\\0\" ; pub const INTERRUPT_CPU_INTERFACE : & [u8 ; 14] = b\"interrupt_cpu\\0\" ; pub const IO_MEMORY_INTERFACE : & [u8 ; 10] = b\"io_memory\\0\" ; pub const MAP_DEMAP_INTERFACE : & [u8 ; 10] = b\"map_demap\\0\" ; pub const MEMORY_SPACE_INTERFACE : & [u8 ; 13] = b\"memory_space\\0\" ; pub const PORT_SPACE_INTERFACE : & [u8 ; 11] = b\"port_space\\0\" ; pub const TRANSLATE_INTERFACE : & [u8 ; 10] = b\"translate\\0\" ; pub const BRIDGE_INTERFACE : & [u8 ; 7] = b\"bridge\\0\" ; pub const SIGNAL_INTERFACE : & [u8 ; 7] = b\"signal\\0\" ; pub const MULTI_LEVEL_SIGNAL_INTERFACE : & [u8 ; 19] = b\"multi_level_signal\\0\" ; pub const PULSE_INTERFACE : & [u8 ; 6] = b\"pulse\\0\" ; pub const SATA_INTERFACE : & [u8 ; 5] = b\"sata\\0\" ; pub const GBIC_TRANSCEIVER_INTERFACE : & [u8 ; 17] = b\"gbic_transceiver\\0\" ; pub const TTY_ABORT : u32 = 256 ; pub const SERIAL_DEVICE_INTERFACE : & [u8 ; 14] = b\"serial_device\\0\" ; pub const EXTENDED_SERIAL_INTERFACE : & [u8 ; 16] = b\"extended_serial\\0\" ; pub const RS232_DEVICE_INTERFACE : & [u8 ; 13] = b\"rs232_device\\0\" ; pub const RS232_CONSOLE_INTERFACE : & [u8 ; 14] = b\"rs232_console\\0\" ; pub const TTY_NO_CHAR : u32 = 257 ; pub const FIREWIRE_BUS_INTERFACE : & [u8 ; 13] = b\"firewire_bus\\0\" ; pub const FIREWIRE_DEVICE_INTERFACE : & [u8 ; 16] = b\"firewire_device\\0\" ; pub const COREINT_INTERFACE : & [u8 ; 8] = b\"coreint\\0\" ; pub const APIC_BUS_INTERFACE : & [u8 ; 9] = b\"apic_bus\\0\" ; pub const SERIAL_PERIPHERAL_INTERFACE_MASTER_INTERFACE : & [u8 ; 35] = b\"serial_peripheral_interface_master\\0\" ; pub const SERIAL_PERIPHERAL_INTERFACE_SLAVE_INTERFACE : & [u8 ; 34] = b\"serial_peripheral_interface_slave\\0\" ; pub const ETHERNET_COMMON_INTERFACE : & [u8 ; 16] = b\"ethernet_common\\0\" ; pub const ETHERNET_CABLE_INTERFACE : & [u8 ; 15] = b\"ethernet_cable\\0\" ; pub const ETHERNET_SNOOP_INTERFACE : & [u8 ; 15] = b\"ethernet_snoop\\0\" ; pub const ETHERNET_VLAN_SNOOP_INTERFACE : & [u8 ; 20] = b\"ethernet_vlan_snoop\\0\" ; pub const TRANSLATOR_INTERFACE : & [u8 ; 11] = b\"translator\\0\" ; pub const TRANSACTION_TRANSLATOR_INTERFACE : & [u8 ; 23] = b\"transaction_translator\\0\" ; pub const TRANSLATION_FLUSH_INTERFACE : & [u8 ; 18] = b\"translation_flush\\0\" ; pub const USB_DEVICE_INTERFACE : & [u8 ; 11] = b\"usb_device\\0\" ; pub const USB_INTERFACE : & [u8 ; 4] = b\"usb\\0\" ; pub const PCI_DEVICE_INTERFACE : & [u8 ; 11] = b\"pci_device\\0\" ; pub const PCI_BUS_INTERFACE : & [u8 ; 8] = b\"pci_bus\\0\" ; pub const PCIE_ADAPTER_COMPAT_INTERFACE : & [u8 ; 20] = b\"pcie_adapter_compat\\0\" ; pub const PCI_UPSTREAM_INTERFACE : & [u8 ; 13] = b\"pci_upstream\\0\" ; pub const PCI_UPSTREAM_OPERATION_INTERFACE : & [u8 ; 23] = b\"pci_upstream_operation\\0\" ; pub const PCI_DOWNSTREAM_INTERFACE : & [u8 ; 15] = b\"pci_downstream\\0\" ; pub const PCI_BRIDGE_INTERFACE : & [u8 ; 11] = b\"pci_bridge\\0\" ; pub const PCI_INTERRUPT_INTERFACE : & [u8 ; 14] = b\"pci_interrupt\\0\" ; pub const DEVICE_CONF_FUNC : u32 = 255 ; pub const DEVICE_PCIE_CONF_FUNC : u32 = 254 ; pub const PCI_EXPRESS_INTERFACE : & [u8 ; 12] = b\"pci_express\\0\" ; pub const PCI_EXPRESS_HOTPLUG_INTERFACE : & [u8 ; 20] = b\"pci_express_hotplug\\0\" ; pub const PCI_MULTI_FUNCTION_DEVICE_INTERFACE : & [u8 ; 26] = b\"pci_multi_function_device\\0\" ; pub const PCIE_DEVICE_INTERFACE : & [u8 ; 12] = b\"pcie_device\\0\" ; pub const PCIE_MAP_INTERFACE : & [u8 ; 9] = b\"pcie_map\\0\" ; pub const PCIE_PORT_CONTROL_INTERFACE : & [u8 ; 18] = b\"pcie_port_control\\0\" ; pub const PCIE_HOTPLUG_EVENTS_INTERFACE : & [u8 ; 20] = b\"pcie_hotplug_events\\0\" ; pub const PCIE_LINK_TRAINING_INTERFACE : & [u8 ; 19] = b\"pcie_link_training\\0\" ; pub const IEEE_802_3_PHY_INTERFACE : & [u8 ; 15] = b\"ieee_802_3_phy\\0\" ; pub const IEEE_802_3_PHY_V2_INTERFACE : & [u8 ; 18] = b\"ieee_802_3_phy_v2\\0\" ; pub const IEEE_802_3_PHY_V3_INTERFACE : & [u8 ; 18] = b\"ieee_802_3_phy_v3\\0\" ; pub const IEEE_802_3_MAC_INTERFACE : & [u8 ; 15] = b\"ieee_802_3_mac\\0\" ; pub const IEEE_802_3_MAC_V3_INTERFACE : & [u8 ; 18] = b\"ieee_802_3_mac_v3\\0\" ; pub const NAND_FLASH_INTERFACE : & [u8 ; 11] = b\"nand_flash\\0\" ; pub const I3C_MASTER_INTERFACE : & [u8 ; 11] = b\"i3c_master\\0\" ; pub const I3C_SLAVE_INTERFACE : & [u8 ; 10] = b\"i3c_slave\\0\" ; pub const I3C_DAA_SNOOP_INTERFACE : & [u8 ; 14] = b\"i3c_daa_snoop\\0\" ; pub const MICROWIRE_INTERFACE : & [u8 ; 10] = b\"microwire\\0\" ; pub const X86_CSTATE_INTERFACE : & [u8 ; 11] = b\"x86_cstate\\0\" ; pub const X86_PKG_CSTATE_INTERFACE : & [u8 ; 15] = b\"x86_pkg_cstate\\0\" ; pub const X86_CSTATE_NOTIFICATION_INTERFACE : & [u8 ; 24] = b\"x86_cstate_notification\\0\" ; pub const X86_CSTATE_CHANGE_NOTIFIER : & [u8 ; 18] = b\"x86-cstate-change\\0\" ; pub const ETHERNET_PROBE_INTERFACE : & [u8 ; 15] = b\"ethernet_probe\\0\" ; pub const DATAGRAM_LINK_INTERFACE : & [u8 ; 14] = b\"datagram_link\\0\" ; pub const HPI_INTERFACE : & [u8 ; 4] = b\"hpi\\0\" ; pub const MII_MANAGEMENT_INTERFACE : & [u8 ; 15] = b\"mii_management\\0\" ; pub const MII_INTERFACE : & [u8 ; 4] = b\"mii\\0\" ; pub const MDIO45_BUS_INTERFACE : & [u8 ; 11] = b\"mdio45_bus\\0\" ; pub const MDIO45_PHY_INTERFACE : & [u8 ; 11] = b\"mdio45_phy\\0\" ; pub const VECTORED_INTERRUPT_INTERFACE : & [u8 ; 19] = b\"vectored_interrupt\\0\" ; pub const VECTORED_INTERRUPT_SOURCE_INTERFACE : & [u8 ; 26] = b\"vectored_interrupt_source\\0\" ; pub const INTERRUPT_SUBSCRIBER_INTERFACE : & [u8 ; 21] = b\"interrupt_subscriber\\0\" ; pub const SIMPLE_INTERRUPT_INTERFACE : & [u8 ; 17] = b\"simple_interrupt\\0\" ; pub const INTERRUPT_QUERY_INTERFACE : & [u8 ; 16] = b\"interrupt_query\\0\" ; pub const MS1553_LINK_INTERFACE : & [u8 ; 12] = b\"ms1553_link\\0\" ; pub const MS1553_TERMINAL_INTERFACE : & [u8 ; 16] = b\"ms1553_terminal\\0\" ; pub const RAPIDIO_V3_INTERFACE : & [u8 ; 11] = b\"rapidio_v3\\0\" ; pub const RAPIDIO_V4_INTERFACE : & [u8 ; 11] = b\"rapidio_v4\\0\" ; pub const RAPIDIO_V5_INTERFACE : & [u8 ; 11] = b\"rapidio_v5\\0\" ; pub const I2C_BUS_INTERFACE : & [u8 ; 8] = b\"i2c_bus\\0\" ; pub const I2C_DEVICE_INTERFACE : & [u8 ; 11] = b\"i2c_device\\0\" ; pub const I2C_LINK_INTERFACE : & [u8 ; 9] = b\"i2c_link\\0\" ; pub const I2C_SLAVE_INTERFACE : & [u8 ; 10] = b\"i2c_slave\\0\" ; pub const I2C_MASTER_INTERFACE : & [u8 ; 11] = b\"i2c_master\\0\" ; pub const I2C_BRIDGE_INTERFACE : & [u8 ; 11] = b\"i2c_bridge\\0\" ; pub const I2C_SLAVE_V2_INTERFACE : & [u8 ; 13] = b\"i2c_slave_v2\\0\" ; pub const I2C_MASTER_V2_INTERFACE : & [u8 ; 14] = b\"i2c_master_v2\\0\" ; pub const TELEMETRY_INTERFACE : & [u8 ; 10] = b\"telemetry\\0\" ; pub const ARINC429_BUS_INTERFACE : & [u8 ; 13] = b\"arinc429_bus\\0\" ; pub const ARINC429_RECEIVER_INTERFACE : & [u8 ; 18] = b\"arinc429_receiver\\0\" ; pub const ARINC429_WORD_HAP_NAME : & [u8 ; 14] = b\"Arinc429_Word\\0\" ; pub const CLI_COMMAND_ADDED_HAP_NAME : & [u8 ; 18] = b\"CLI_Command_Added\\0\" ; pub const COMPONENT_CHANGE_HAP_NAME : & [u8 ; 17] = b\"Component_Change\\0\" ; pub const COMPONENT_HIERARCHY_CHANGE_HAP_NAME : & [u8 ; 27] = b\"Component_Hierarchy_Change\\0\" ; pub const CONSOLE_BREAK_STRING_HAP_NAME : & [u8 ; 21] = b\"Console_Break_String\\0\" ; pub const CORE_ADDRESS_NOT_MAPPED_HAP_NAME : & [u8 ; 24] = b\"Core_Address_Not_Mapped\\0\" ; pub const CORE_ASYNCHRONOUS_TRAP_HAP_NAME : & [u8 ; 23] = b\"Core_Asynchronous_Trap\\0\" ; pub const CORE_AT_EXIT_HAP_NAME : & [u8 ; 13] = b\"Core_At_Exit\\0\" ; pub const CORE_BACK_TO_FRONT_HAP_NAME : & [u8 ; 19] = b\"Core_Back_To_Front\\0\" ; pub const CORE_BREAKPOINT_CHANGE_HAP_NAME : & [u8 ; 23] = b\"Core_Breakpoint_Change\\0\" ; pub const CORE_BREAKPOINT_MEMOP_HAP_NAME : & [u8 ; 22] = b\"Core_Breakpoint_Memop\\0\" ; pub const CORE_CLEAN_AT_EXIT_HAP_NAME : & [u8 ; 19] = b\"Core_Clean_At_Exit\\0\" ; pub const CORE_CONF_CLASS_REGISTER_HAP_NAME : & [u8 ; 25] = b\"Core_Conf_Class_Register\\0\" ; pub const CORE_CONF_CLASS_UNREGISTER_HAP_NAME : & [u8 ; 27] = b\"Core_Conf_Class_Unregister\\0\" ; pub const CORE_CONF_CLOCK_CHANGE_CELL_HAP_NAME : & [u8 ; 28] = b\"Core_Conf_Clock_Change_Cell\\0\" ; pub const CORE_CONF_OBJECT_CHANGE_CLOCK_HAP_NAME : & [u8 ; 30] = b\"Core_Conf_Object_Change_Clock\\0\" ; pub const CORE_CONF_OBJECT_CREATE_HAP_NAME : & [u8 ; 24] = b\"Core_Conf_Object_Create\\0\" ; pub const CORE_CONF_OBJECT_CREATED_HAP_NAME : & [u8 ; 25] = b\"Core_Conf_Object_Created\\0\" ; pub const CORE_CONF_OBJECT_DELETE_HAP_NAME : & [u8 ; 24] = b\"Core_Conf_Object_Delete\\0\" ; pub const CORE_CONF_OBJECT_PRE_DELETE_HAP_NAME : & [u8 ; 28] = b\"Core_Conf_Object_Pre_Delete\\0\" ; pub const CORE_CONF_OBJECT_RENAME_HAP_NAME : & [u8 ; 24] = b\"Core_Conf_Object_Rename\\0\" ; pub const CORE_CONF_OBJECTS_CREATED_HAP_NAME : & [u8 ; 26] = b\"Core_Conf_Objects_Created\\0\" ; pub const CORE_CONF_OBJECTS_DELETED_HAP_NAME : & [u8 ; 26] = b\"Core_Conf_Objects_Deleted\\0\" ; pub const CORE_CONFIGURATION_LOADED_HAP_NAME : & [u8 ; 26] = b\"Core_Configuration_Loaded\\0\" ; pub const CORE_CONTEXT_ACTIVATE_HAP_NAME : & [u8 ; 22] = b\"Core_Context_Activate\\0\" ; pub const CORE_CONTEXT_CHANGE_HAP_NAME : & [u8 ; 20] = b\"Core_Context_Change\\0\" ; pub const CORE_CONTEXT_DEACTIVATE_HAP_NAME : & [u8 ; 24] = b\"Core_Context_Deactivate\\0\" ; pub const CORE_CONTEXT_UPDATED_HAP_NAME : & [u8 ; 21] = b\"Core_Context_Updated\\0\" ; pub const CORE_CONTINUATION_HAP_NAME : & [u8 ; 18] = b\"Core_Continuation\\0\" ; pub const CORE_CONTROL_REGISTER_READ_HAP_NAME : & [u8 ; 27] = b\"Core_Control_Register_Read\\0\" ; pub const CORE_CONTROL_REGISTER_WRITE_HAP_NAME : & [u8 ; 28] = b\"Core_Control_Register_Write\\0\" ; pub const CORE_DSTC_FLUSH_COUNTER_HAP_NAME : & [u8 ; 24] = b\"Core_DSTC_Flush_Counter\\0\" ; pub const CORE_DEVICE_ACCESS_MEMOP_HAP_NAME : & [u8 ; 25] = b\"Core_Device_Access_Memop\\0\" ; pub const CORE_DISABLE_BREAKPOINTS_HAP_NAME : & [u8 ; 25] = b\"Core_Disable_Breakpoints\\0\" ; pub const CORE_DISCARD_FUTURE_HAP_NAME : & [u8 ; 20] = b\"Core_Discard_Future\\0\" ; pub const CORE_EXCEPTION_HAP_NAME : & [u8 ; 15] = b\"Core_Exception\\0\" ; pub const CORE_EXCEPTION_RETURN_HAP_NAME : & [u8 ; 22] = b\"Core_Exception_Return\\0\" ; pub const CORE_EXTERNAL_INTERRUPT_HAP_NAME : & [u8 ; 24] = b\"Core_External_Interrupt\\0\" ; pub const CORE_FREQUENCY_CHANGED_HAP_NAME : & [u8 ; 23] = b\"Core_Frequency_Changed\\0\" ; pub const CORE_GLOBAL_MESSAGE_HAP_NAME : & [u8 ; 20] = b\"Core_Global_Message\\0\" ; pub const CORE_HAP_CALLBACK_INSTALLED_HAP_NAME : & [u8 ; 28] = b\"Core_Hap_Callback_Installed\\0\" ; pub const CORE_HAP_CALLBACK_REMOVED_HAP_NAME : & [u8 ; 26] = b\"Core_Hap_Callback_Removed\\0\" ; pub const CORE_HAP_TYPE_ADDED_HAP_NAME : & [u8 ; 20] = b\"Core_Hap_Type_Added\\0\" ; pub const CORE_IMAGE_ACTIVITY_HAP_NAME : & [u8 ; 20] = b\"Core_Image_Activity\\0\" ; pub const CORE_INITIAL_CONFIGURATION_HAP_NAME : & [u8 ; 27] = b\"Core_Initial_Configuration\\0\" ; pub const CORE_LOG_GROUPS_CHANGE_HAP_NAME : & [u8 ; 23] = b\"Core_Log_Groups_Change\\0\" ; pub const CORE_LOG_LEVEL_CHANGE_HAP_NAME : & [u8 ; 22] = b\"Core_Log_Level_Change\\0\" ; pub const CORE_LOG_MESSAGE_HAP_NAME : & [u8 ; 17] = b\"Core_Log_Message\\0\" ; pub const CORE_LOG_MESSAGE_EXTENDED_HAP_NAME : & [u8 ; 26] = b\"Core_Log_Message_Extended\\0\" ; pub const CORE_LOG_MESSAGE_FILTERED_HAP_NAME : & [u8 ; 26] = b\"Core_Log_Message_Filtered\\0\" ; pub const CORE_MAGIC_INSTRUCTION_HAP_NAME : & [u8 ; 23] = b\"Core_Magic_Instruction\\0\" ; pub const CORE_MEMORY_SPACE_MAP_CHANGED_HAP_NAME : & [u8 ; 30] = b\"Core_Memory_Space_Map_Changed\\0\" ; pub const CORE_MODE_CHANGE_HAP_NAME : & [u8 ; 17] = b\"Core_Mode_Change\\0\" ; pub const CORE_MODULE_LOADED_HAP_NAME : & [u8 ; 19] = b\"Core_Module_Loaded\\0\" ; pub const CORE_MULTICORE_ACCELERATION_CHANGED_HAP_NAME : & [u8 ; 36] = b\"Core_Multicore_Acceleration_Changed\\0\" ; pub const CORE_MULTITHREADING_CHANGED_HAP_NAME : & [u8 ; 28] = b\"Core_Multithreading_Changed\\0\" ; pub const CORE_NOT_IMPLEMENTED_HAP_NAME : & [u8 ; 21] = b\"Core_Not_Implemented\\0\" ; pub const CORE_PREFERENCES_CHANGED_HAP_NAME : & [u8 ; 25] = b\"Core_Preferences_Changed\\0\" ; pub const CORE_PROCESSOR_SCHEDULE_CHANGED_HAP_NAME : & [u8 ; 32] = b\"Core_Processor_Schedule_Changed\\0\" ; pub const CORE_PROJECT_CHANGED_HAP_NAME : & [u8 ; 21] = b\"Core_Project_Changed\\0\" ; pub const CORE_RECENT_FILES_CHANGED_HAP_NAME : & [u8 ; 26] = b\"Core_Recent_Files_Changed\\0\" ; pub const CORE_REXEC_ACTIVE_HAP_NAME : & [u8 ; 18] = b\"Core_Rexec_Active\\0\" ; pub const CORE_SIMULATION_MODE_CHANGE_HAP_NAME : & [u8 ; 28] = b\"Core_Simulation_Mode_Change\\0\" ; pub const CORE_SIMULATION_STOPPED_HAP_NAME : & [u8 ; 24] = b\"Core_Simulation_Stopped\\0\" ; pub const CORE_SKIPTO_PROGRESS_HAP_NAME : & [u8 ; 21] = b\"Core_Skipto_Progress\\0\" ; pub const CORE_SYNC_INSTRUCTION_HAP_NAME : & [u8 ; 22] = b\"Core_Sync_Instruction\\0\" ; pub const CORE_TIME_TRANSITION_HAP_NAME : & [u8 ; 21] = b\"Core_Time_Transition\\0\" ; pub const CORE_TIMING_MODEL_CHANGE_HAP_NAME : & [u8 ; 25] = b\"Core_Timing_Model_Change\\0\" ; pub const CORE_USER_COMMENTS_CHANGED_HAP_NAME : & [u8 ; 27] = b\"Core_User_Comments_Changed\\0\" ; pub const CORE_WRITE_CONFIGURATION_HAP_NAME : & [u8 ; 25] = b\"Core_Write_Configuration\\0\" ; pub const ETH_INJECTOR_PCAP_EOF_HAP_NAME : & [u8 ; 22] = b\"Eth_Injector_Pcap_Eof\\0\" ; pub const FIREWIRE_RESET_HAP_NAME : & [u8 ; 15] = b\"Firewire_Reset\\0\" ; pub const FIREWIRE_TRANSFER_HAP_NAME : & [u8 ; 18] = b\"Firewire_Transfer\\0\" ; pub const GFX_BREAK_HAP_NAME : & [u8 ; 10] = b\"Gfx_Break\\0\" ; pub const GFX_BREAK_STRING_HAP_NAME : & [u8 ; 17] = b\"Gfx_Break_String\\0\" ; pub const GRAPHICS_CONSOLE_NEW_TITLE_HAP_NAME : & [u8 ; 27] = b\"Graphics_Console_New_Title\\0\" ; pub const GRAPHICS_CONSOLE_SHOW_HIDE_HAP_NAME : & [u8 ; 27] = b\"Graphics_Console_Show_Hide\\0\" ; pub const INTERNAL_BOOKMARK_LIST_CHANGED_HAP_NAME : & [u8 ; 31] = b\"Internal_Bookmark_List_Changed\\0\" ; pub const INTERNAL_BREAK_IO_HAP_NAME : & [u8 ; 18] = b\"Internal_Break_IO\\0\" ; pub const INTERNAL_DEVICE_REG_ACCESS_HAP_NAME : & [u8 ; 27] = b\"Internal_Device_Reg_Access\\0\" ; pub const INTERNAL_MICRO_CHECKPOINT_LOADED_HAP_NAME : & [u8 ; 33] = b\"Internal_Micro_Checkpoint_Loaded\\0\" ; pub const INTERNAL_SB_WAIT_HAP_NAME : & [u8 ; 17] = b\"Internal_SB_Wait\\0\" ; pub const INTERNAL_TIME_DIRECTION_CHANGED_HAP_NAME : & [u8 ; 32] = b\"Internal_Time_Direction_Changed\\0\" ; pub const INTERNAL_TIME_QUANTUM_CHANGED_HAP_NAME : & [u8 ; 30] = b\"Internal_Time_Quantum_Changed\\0\" ; pub const REC_STATE_CHANGED_HAP_NAME : & [u8 ; 18] = b\"REC_State_Changed\\0\" ; pub const RTC_NVRAM_UPDATE_HAP_NAME : & [u8 ; 17] = b\"RTC_Nvram_Update\\0\" ; pub const REALTIME_ENABLED_HAP_NAME : & [u8 ; 17] = b\"Realtime_Enabled\\0\" ; pub const REXEC_LIMIT_EXCEEDED_HAP_NAME : & [u8 ; 21] = b\"Rexec_Limit_Exceeded\\0\" ; pub const SCSI_DISK_COMMAND_HAP_NAME : & [u8 ; 18] = b\"SCSI_Disk_Command\\0\" ; pub const SN_NAPT_ENABLED_HAP_NAME : & [u8 ; 16] = b\"SN_NAPT_Enabled\\0\" ; pub const TLB_FILL_DATA_HAP_NAME : & [u8 ; 14] = b\"TLB_Fill_Data\\0\" ; pub const TLB_FILL_INSTRUCTION_HAP_NAME : & [u8 ; 21] = b\"TLB_Fill_Instruction\\0\" ; pub const TLB_INVALIDATE_DATA_HAP_NAME : & [u8 ; 20] = b\"TLB_Invalidate_Data\\0\" ; pub const TLB_INVALIDATE_INSTRUCTION_HAP_NAME : & [u8 ; 27] = b\"TLB_Invalidate_Instruction\\0\" ; pub const TLB_MISS_DATA_HAP_NAME : & [u8 ; 14] = b\"TLB_Miss_Data\\0\" ; pub const TLB_MISS_INSTRUCTION_HAP_NAME : & [u8 ; 21] = b\"TLB_Miss_Instruction\\0\" ; pub const TLB_REPLACE_DATA_HAP_NAME : & [u8 ; 17] = b\"TLB_Replace_Data\\0\" ; pub const TLB_REPLACE_INSTRUCTION_HAP_NAME : & [u8 ; 24] = b\"TLB_Replace_Instruction\\0\" ; pub const TEXT_CONSOLE_NEW_TITLE_HAP_NAME : & [u8 ; 23] = b\"Text_Console_New_Title\\0\" ; pub const TEXT_CONSOLE_SHOW_HIDE_HAP_NAME : & [u8 ; 23] = b\"Text_Console_Show_Hide\\0\" ; pub const UI_RECORD_STATE_CHANGED_HAP_NAME : & [u8 ; 24] = b\"UI_Record_State_Changed\\0\" ; pub const UI_RUN_STATE_CHANGED_HAP_NAME : & [u8 ; 21] = b\"UI_Run_State_Changed\\0\" ; pub const VGA_BREAK_STRING_HAP_NAME : & [u8 ; 17] = b\"Vga_Break_String\\0\" ; pub const VGA_REFRESH_TRIGGERED_HAP_NAME : & [u8 ; 22] = b\"Vga_Refresh_Triggered\\0\" ; pub const XTERM_BREAK_STRING_HAP_NAME : & [u8 ; 19] = b\"Xterm_Break_String\\0\" ; pub type va_list = __builtin_va_list ; pub type __dev_t = :: std :: os :: raw :: c_ulong ; pub type __uid_t = :: std :: os :: raw :: c_uint ; pub type __gid_t = :: std :: os :: raw :: c_uint ; pub type __ino_t = :: std :: os :: raw :: c_ulong ; pub type __mode_t = :: std :: os :: raw :: c_uint ; pub type __nlink_t = :: std :: os :: raw :: c_ulong ; pub type __off_t = :: std :: os :: raw :: c_long ; pub type __off64_t = :: std :: os :: raw :: c_long ; pub type __time_t = :: std :: os :: raw :: c_long ; pub type __blksize_t = :: std :: os :: raw :: c_long ; pub type __blkcnt_t = :: std :: os :: raw :: c_long ; pub type __syscall_slong_t = :: std :: os :: raw :: c_long ; # [doc = \" The tag name of this struct is _IO_FILE to preserve historic\\nC++ mangled names for functions taking FILE* arguments.\\nThat name should not be used in new code.\"] pub type __FILE = _IO_FILE ; # [doc = \" The opaque type of streams.  This is the definition used elsewhere.\"] pub type FILE = _IO_FILE ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct _IO_marker { _unused : [u8 ; 0] , } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct _IO_codecvt { _unused : [u8 ; 0] , } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct _IO_wide_data { _unused : [u8 ; 0] , } pub type _IO_lock_t = :: std :: os :: raw :: c_void ; # [doc = \" The tag name of this struct is _IO_FILE to preserve historic\\nC++ mangled names for functions taking FILE* arguments.\\nThat name should not be used in new code.\"] # [repr (C)] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct _IO_FILE { # [doc = \" High-order word is _IO_MAGIC; rest is flags.\"] pub _flags : :: std :: os :: raw :: c_int , # [doc = \" Current read pointer\"] pub _IO_read_ptr : * mut :: std :: os :: raw :: c_char , # [doc = \" End of get area.\"] pub _IO_read_end : * mut :: std :: os :: raw :: c_char , # [doc = \" Start of putback+get area.\"] pub _IO_read_base : * mut :: std :: os :: raw :: c_char , # [doc = \" Start of put area.\"] pub _IO_write_base : * mut :: std :: os :: raw :: c_char , # [doc = \" Current put pointer.\"] pub _IO_write_ptr : * mut :: std :: os :: raw :: c_char , # [doc = \" End of put area.\"] pub _IO_write_end : * mut :: std :: os :: raw :: c_char , # [doc = \" Start of reserve area.\"] pub _IO_buf_base : * mut :: std :: os :: raw :: c_char , # [doc = \" End of reserve area.\"] pub _IO_buf_end : * mut :: std :: os :: raw :: c_char , # [doc = \" Pointer to start of non-current get area.\"] pub _IO_save_base : * mut :: std :: os :: raw :: c_char , # [doc = \" Pointer to first valid character of backup area\"] pub _IO_backup_base : * mut :: std :: os :: raw :: c_char , # [doc = \" Pointer to end of non-current get area.\"] pub _IO_save_end : * mut :: std :: os :: raw :: c_char , pub _markers : * mut _IO_marker , pub _chain : * mut _IO_FILE , pub _fileno : :: std :: os :: raw :: c_int , pub _flags2 : :: std :: os :: raw :: c_int , # [doc = \" This used to be _offset but it\'s too small.\"] pub _old_offset : __off_t , # [doc = \" 1+column number of pbase(); 0 is unknown.\"] pub _cur_column : :: std :: os :: raw :: c_ushort , pub _vtable_offset : :: std :: os :: raw :: c_schar , pub _shortbuf : [:: std :: os :: raw :: c_char ; 1usize] , pub _lock : * mut _IO_lock_t , pub _offset : __off64_t , # [doc = \" Wide character stream stuff.\"] pub _codecvt : * mut _IO_codecvt , pub _wide_data : * mut _IO_wide_data , pub _freeres_list : * mut _IO_FILE , pub _freeres_buf : * mut :: std :: os :: raw :: c_void , pub __pad5 : usize , pub _mode : :: std :: os :: raw :: c_int , # [doc = \" Make sure we don\'t get into trouble again.\"] pub _unused2 : [:: std :: os :: raw :: c_char ; 20usize] , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of _IO_FILE\"] [:: std :: mem :: size_of :: < _IO_FILE > () - 216usize] ; [\"Alignment of _IO_FILE\"] [:: std :: mem :: align_of :: < _IO_FILE > () - 8usize] ; [\"Offset of field: _IO_FILE::_flags\"] [:: std :: mem :: offset_of ! (_IO_FILE , _flags) - 0usize] ; [\"Offset of field: _IO_FILE::_IO_read_ptr\"] [:: std :: mem :: offset_of ! (_IO_FILE , _IO_read_ptr) - 8usize] ; [\"Offset of field: _IO_FILE::_IO_read_end\"] [:: std :: mem :: offset_of ! (_IO_FILE , _IO_read_end) - 16usize] ; [\"Offset of field: _IO_FILE::_IO_read_base\"] [:: std :: mem :: offset_of ! (_IO_FILE , _IO_read_base) - 24usize] ; [\"Offset of field: _IO_FILE::_IO_write_base\"] [:: std :: mem :: offset_of ! (_IO_FILE , _IO_write_base) - 32usize] ; [\"Offset of field: _IO_FILE::_IO_write_ptr\"] [:: std :: mem :: offset_of ! (_IO_FILE , _IO_write_ptr) - 40usize] ; [\"Offset of field: _IO_FILE::_IO_write_end\"] [:: std :: mem :: offset_of ! (_IO_FILE , _IO_write_end) - 48usize] ; [\"Offset of field: _IO_FILE::_IO_buf_base\"] [:: std :: mem :: offset_of ! (_IO_FILE , _IO_buf_base) - 56usize] ; [\"Offset of field: _IO_FILE::_IO_buf_end\"] [:: std :: mem :: offset_of ! (_IO_FILE , _IO_buf_end) - 64usize] ; [\"Offset of field: _IO_FILE::_IO_save_base\"] [:: std :: mem :: offset_of ! (_IO_FILE , _IO_save_base) - 72usize] ; [\"Offset of field: _IO_FILE::_IO_backup_base\"] [:: std :: mem :: offset_of ! (_IO_FILE , _IO_backup_base) - 80usize] ; [\"Offset of field: _IO_FILE::_IO_save_end\"] [:: std :: mem :: offset_of ! (_IO_FILE , _IO_save_end) - 88usize] ; [\"Offset of field: _IO_FILE::_markers\"] [:: std :: mem :: offset_of ! (_IO_FILE , _markers) - 96usize] ; [\"Offset of field: _IO_FILE::_chain\"] [:: std :: mem :: offset_of ! (_IO_FILE , _chain) - 104usize] ; [\"Offset of field: _IO_FILE::_fileno\"] [:: std :: mem :: offset_of ! (_IO_FILE , _fileno) - 112usize] ; [\"Offset of field: _IO_FILE::_flags2\"] [:: std :: mem :: offset_of ! (_IO_FILE , _flags2) - 116usize] ; [\"Offset of field: _IO_FILE::_old_offset\"] [:: std :: mem :: offset_of ! (_IO_FILE , _old_offset) - 120usize] ; [\"Offset of field: _IO_FILE::_cur_column\"] [:: std :: mem :: offset_of ! (_IO_FILE , _cur_column) - 128usize] ; [\"Offset of field: _IO_FILE::_vtable_offset\"] [:: std :: mem :: offset_of ! (_IO_FILE , _vtable_offset) - 130usize] ; [\"Offset of field: _IO_FILE::_shortbuf\"] [:: std :: mem :: offset_of ! (_IO_FILE , _shortbuf) - 131usize] ; [\"Offset of field: _IO_FILE::_lock\"] [:: std :: mem :: offset_of ! (_IO_FILE , _lock) - 136usize] ; [\"Offset of field: _IO_FILE::_offset\"] [:: std :: mem :: offset_of ! (_IO_FILE , _offset) - 144usize] ; [\"Offset of field: _IO_FILE::_codecvt\"] [:: std :: mem :: offset_of ! (_IO_FILE , _codecvt) - 152usize] ; [\"Offset of field: _IO_FILE::_wide_data\"] [:: std :: mem :: offset_of ! (_IO_FILE , _wide_data) - 160usize] ; [\"Offset of field: _IO_FILE::_freeres_list\"] [:: std :: mem :: offset_of ! (_IO_FILE , _freeres_list) - 168usize] ; [\"Offset of field: _IO_FILE::_freeres_buf\"] [:: std :: mem :: offset_of ! (_IO_FILE , _freeres_buf) - 176usize] ; [\"Offset of field: _IO_FILE::__pad5\"] [:: std :: mem :: offset_of ! (_IO_FILE , __pad5) - 184usize] ; [\"Offset of field: _IO_FILE::_mode\"] [:: std :: mem :: offset_of ! (_IO_FILE , _mode) - 192usize] ; [\"Offset of field: _IO_FILE::_unused2\"] [:: std :: mem :: offset_of ! (_IO_FILE , _unused2) - 196usize] ; } ; impl Default for _IO_FILE { fn default () -> Self { let mut s = :: std :: mem :: MaybeUninit :: < Self > :: uninit () ; unsafe { :: std :: ptr :: write_bytes (s . as_mut_ptr () , 0 , 1) ; s . assume_init () } } } extern \"C\" { # [doc = \" Write formatted output to STREAM.\\n\\nThis function is a possible cancellation point and therefore not\\nmarked with __THROW.\"] pub fn fprintf (__stream : * mut FILE , __format : * const :: std :: os :: raw :: c_char , ...) -> :: std :: os :: raw :: c_int ; } extern \"C\" { # [doc = \" Write formatted output to stdout.\\n\\nThis function is a possible cancellation point and therefore not\\nmarked with __THROW.\"] pub fn printf (__format : * const :: std :: os :: raw :: c_char , ...) -> :: std :: os :: raw :: c_int ; } extern \"C\" { # [doc = \" Copy N bytes of SRC to DEST.\"] pub fn memcpy (__dest : * mut :: std :: os :: raw :: c_void , __src : * const :: std :: os :: raw :: c_void , __n : :: std :: os :: raw :: c_ulong) -> * mut :: std :: os :: raw :: c_void ; } extern \"C\" { # [doc = \" Copy N bytes of SRC to DEST, guaranteeing\\ncorrect behavior for overlapping strings.\"] pub fn memmove (__dest : * mut :: std :: os :: raw :: c_void , __src : * const :: std :: os :: raw :: c_void , __n : :: std :: os :: raw :: c_ulong) -> * mut :: std :: os :: raw :: c_void ; } extern \"C\" { # [doc = \" Set N bytes of S to C.\"] pub fn memset (__s : * mut :: std :: os :: raw :: c_void , __c : :: std :: os :: raw :: c_int , __n : :: std :: os :: raw :: c_ulong) -> * mut :: std :: os :: raw :: c_void ; } extern \"C\" { # [doc = \" Duplicate S, returning an identical malloc\'d string.\"] pub fn strdup (__s : * const :: std :: os :: raw :: c_char) -> * mut :: std :: os :: raw :: c_char ; } extern \"C\" { # [doc = \" Return the length of S.\"] pub fn strlen (__s : * const :: std :: os :: raw :: c_char) -> :: std :: os :: raw :: c_ulong ; } pub type uint = :: std :: os :: raw :: c_uint ; # [doc = \" POSIX.1b structure for a time value.  This is like a `struct timeval\' but\\nhas nanoseconds instead of microseconds.\"] # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct timespec { # [doc = \" Seconds.\"] pub tv_sec : __time_t , # [doc = \" Nanoseconds.\"] pub tv_nsec : __syscall_slong_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of timespec\"] [:: std :: mem :: size_of :: < timespec > () - 16usize] ; [\"Alignment of timespec\"] [:: std :: mem :: align_of :: < timespec > () - 8usize] ; [\"Offset of field: timespec::tv_sec\"] [:: std :: mem :: offset_of ! (timespec , tv_sec) - 0usize] ; [\"Offset of field: timespec::tv_nsec\"] [:: std :: mem :: offset_of ! (timespec , tv_nsec) - 8usize] ; } ; extern \"C\" { # [doc = \" Allocate SIZE bytes of memory.\"] pub fn malloc (__size : :: std :: os :: raw :: c_ulong) -> * mut :: std :: os :: raw :: c_void ; } extern \"C\" { # [doc = \" Allocate NMEMB elements of SIZE bytes each, all initialized to 0.\"] pub fn calloc (__nmemb : :: std :: os :: raw :: c_ulong , __size : :: std :: os :: raw :: c_ulong) -> * mut :: std :: os :: raw :: c_void ; } extern \"C\" { # [doc = \" Re-allocate the previously allocated block\\nin PTR, making the new block SIZE bytes long.  */\\n/* __attribute_malloc__ is not used, because if realloc returns\\nthe same pointer that was passed to it, aliasing needs to be allowed\\nbetween objects pointed by the old and new pointers.\"] pub fn realloc (__ptr : * mut :: std :: os :: raw :: c_void , __size : :: std :: os :: raw :: c_ulong) -> * mut :: std :: os :: raw :: c_void ; } extern \"C\" { # [doc = \" Free a block allocated by `malloc\', `realloc\' or `calloc\'.\"] pub fn free (__ptr : * mut :: std :: os :: raw :: c_void) ; } extern \"C\" { # [doc = \" Abort execution and generate a core-dump.\"] pub fn abort () -> ! ; } pub type __compar_fn_t = :: std :: option :: Option < unsafe extern \"C\" fn (arg1 : * const :: std :: os :: raw :: c_void , arg2 : * const :: std :: os :: raw :: c_void) -> :: std :: os :: raw :: c_int > ; extern \"C\" { # [doc = \" Sort NMEMB elements of BASE, of SIZE bytes each,\\nusing COMPAR to perform the comparisons.\"] pub fn qsort (__base : * mut :: std :: os :: raw :: c_void , __nmemb : usize , __size : usize , __compar : __compar_fn_t) ; } pub type Py_ssize_t = isize ; pub type Py_hash_t = Py_ssize_t ; extern \"C\" { pub fn log2 (__x : f64) -> f64 ; } extern \"C\" { pub fn floor (__x : f64) -> f64 ; } # [doc = \" ISO C `broken-down time\' structure.\"] # [repr (C)] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct tm { # [doc = \" Seconds.\\t[0-60] (1 leap second)\"] pub tm_sec : :: std :: os :: raw :: c_int , # [doc = \" Minutes.\\t[0-59]\"] pub tm_min : :: std :: os :: raw :: c_int , # [doc = \" Hours.\\t[0-23]\"] pub tm_hour : :: std :: os :: raw :: c_int , # [doc = \" Day.\\t\\t[1-31]\"] pub tm_mday : :: std :: os :: raw :: c_int , # [doc = \" Month.\\t[0-11]\"] pub tm_mon : :: std :: os :: raw :: c_int , # [doc = \" Year\\t- 1900.\"] pub tm_year : :: std :: os :: raw :: c_int , # [doc = \" Day of week.\\t[0-6]\"] pub tm_wday : :: std :: os :: raw :: c_int , # [doc = \" Days in year.[0-365]\"] pub tm_yday : :: std :: os :: raw :: c_int , # [doc = \" DST.\\t\\t[-1/0/1]\"] pub tm_isdst : :: std :: os :: raw :: c_int , # [doc = \" Seconds east of UTC.\"] pub tm_gmtoff : :: std :: os :: raw :: c_long , # [doc = \" Timezone abbreviation.\"] pub tm_zone : * const :: std :: os :: raw :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of tm\"] [:: std :: mem :: size_of :: < tm > () - 56usize] ; [\"Alignment of tm\"] [:: std :: mem :: align_of :: < tm > () - 8usize] ; [\"Offset of field: tm::tm_sec\"] [:: std :: mem :: offset_of ! (tm , tm_sec) - 0usize] ; [\"Offset of field: tm::tm_min\"] [:: std :: mem :: offset_of ! (tm , tm_min) - 4usize] ; [\"Offset of field: tm::tm_hour\"] [:: std :: mem :: offset_of ! (tm , tm_hour) - 8usize] ; [\"Offset of field: tm::tm_mday\"] [:: std :: mem :: offset_of ! (tm , tm_mday) - 12usize] ; [\"Offset of field: tm::tm_mon\"] [:: std :: mem :: offset_of ! (tm , tm_mon) - 16usize] ; [\"Offset of field: tm::tm_year\"] [:: std :: mem :: offset_of ! (tm , tm_year) - 20usize] ; [\"Offset of field: tm::tm_wday\"] [:: std :: mem :: offset_of ! (tm , tm_wday) - 24usize] ; [\"Offset of field: tm::tm_yday\"] [:: std :: mem :: offset_of ! (tm , tm_yday) - 28usize] ; [\"Offset of field: tm::tm_isdst\"] [:: std :: mem :: offset_of ! (tm , tm_isdst) - 32usize] ; [\"Offset of field: tm::tm_gmtoff\"] [:: std :: mem :: offset_of ! (tm , tm_gmtoff) - 40usize] ; [\"Offset of field: tm::tm_zone\"] [:: std :: mem :: offset_of ! (tm , tm_zone) - 48usize] ; } ; impl Default for tm { fn default () -> Self { let mut s = :: std :: mem :: MaybeUninit :: < Self > :: uninit () ; unsafe { :: std :: ptr :: write_bytes (s . as_mut_ptr () , 0 , 1) ; s . assume_init () } } } # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct stat { # [doc = \" Device.\"] pub st_dev : __dev_t , # [doc = \" File serial number.\"] pub st_ino : __ino_t , # [doc = \" Link count.\"] pub st_nlink : __nlink_t , # [doc = \" File mode.\"] pub st_mode : __mode_t , # [doc = \" User ID of the file\'s owner.\"] pub st_uid : __uid_t , # [doc = \" Group ID of the file\'s group.\"] pub st_gid : __gid_t , pub __pad0 : :: std :: os :: raw :: c_int , # [doc = \" Device number, if device.\"] pub st_rdev : __dev_t , # [doc = \" Size of file, in bytes.\"] pub st_size : __off_t , # [doc = \" Optimal block size for I/O.\"] pub st_blksize : __blksize_t , # [doc = \" Number 512-byte blocks allocated.\"] pub st_blocks : __blkcnt_t , # [doc = \" Time of last access.\"] pub st_atim : timespec , # [doc = \" Time of last modification.\"] pub st_mtim : timespec , # [doc = \" Time of last status change.\"] pub st_ctim : timespec , pub __glibc_reserved : [__syscall_slong_t ; 3usize] , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of stat\"] [:: std :: mem :: size_of :: < stat > () - 144usize] ; [\"Alignment of stat\"] [:: std :: mem :: align_of :: < stat > () - 8usize] ; [\"Offset of field: stat::st_dev\"] [:: std :: mem :: offset_of ! (stat , st_dev) - 0usize] ; [\"Offset of field: stat::st_ino\"] [:: std :: mem :: offset_of ! (stat , st_ino) - 8usize] ; [\"Offset of field: stat::st_nlink\"] [:: std :: mem :: offset_of ! (stat , st_nlink) - 16usize] ; [\"Offset of field: stat::st_mode\"] [:: std :: mem :: offset_of ! (stat , st_mode) - 24usize] ; [\"Offset of field: stat::st_uid\"] [:: std :: mem :: offset_of ! (stat , st_uid) - 28usize] ; [\"Offset of field: stat::st_gid\"] [:: std :: mem :: offset_of ! (stat , st_gid) - 32usize] ; [\"Offset of field: stat::__pad0\"] [:: std :: mem :: offset_of ! (stat , __pad0) - 36usize] ; [\"Offset of field: stat::st_rdev\"] [:: std :: mem :: offset_of ! (stat , st_rdev) - 40usize] ; [\"Offset of field: stat::st_size\"] [:: std :: mem :: offset_of ! (stat , st_size) - 48usize] ; [\"Offset of field: stat::st_blksize\"] [:: std :: mem :: offset_of ! (stat , st_blksize) - 56usize] ; [\"Offset of field: stat::st_blocks\"] [:: std :: mem :: offset_of ! (stat , st_blocks) - 64usize] ; [\"Offset of field: stat::st_atim\"] [:: std :: mem :: offset_of ! (stat , st_atim) - 72usize] ; [\"Offset of field: stat::st_mtim\"] [:: std :: mem :: offset_of ! (stat , st_mtim) - 88usize] ; [\"Offset of field: stat::st_ctim\"] [:: std :: mem :: offset_of ! (stat , st_ctim) - 104usize] ; [\"Offset of field: stat::__glibc_reserved\"] [:: std :: mem :: offset_of ! (stat , __glibc_reserved) - 120usize] ; } ; extern \"C\" { # [doc = \" Get file attributes for FILE and put them in BUF.\"] pub fn stat (__file : * const :: std :: os :: raw :: c_char , __buf : * mut stat) -> :: std :: os :: raw :: c_int ; } # [doc = \" PyTypeObject structure is defined in cpython/object.h.\\nIn Py_LIMITED_API, PyTypeObject is an opaque structure.\"] pub type PyTypeObject = _typeobject ; # [doc = \" Nothing is actually declared to be a PyObject, but every pointer to\\n a Python object can be cast to a PyObject*.  This is inheritance built\\n by hand.  Similarly every pointer to a variable-size Python object can,\\n in addition, be cast to PyVarObject*.\"] # [repr (C)] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct _object { pub ob_refcnt : Py_ssize_t , pub ob_type : * mut PyTypeObject , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of _object\"] [:: std :: mem :: size_of :: < _object > () - 16usize] ; [\"Alignment of _object\"] [:: std :: mem :: align_of :: < _object > () - 8usize] ; [\"Offset of field: _object::ob_refcnt\"] [:: std :: mem :: offset_of ! (_object , ob_refcnt) - 0usize] ; [\"Offset of field: _object::ob_type\"] [:: std :: mem :: offset_of ! (_object , ob_type) - 8usize] ; } ; impl Default for _object { fn default () -> Self { let mut s = :: std :: mem :: MaybeUninit :: < Self > :: uninit () ; unsafe { :: std :: ptr :: write_bytes (s . as_mut_ptr () , 0 , 1) ; s . assume_init () } } } # [doc = \" Nothing is actually declared to be a PyObject, but every pointer to\\n a Python object can be cast to a PyObject*.  This is inheritance built\\n by hand.  Similarly every pointer to a variable-size Python object can,\\n in addition, be cast to PyVarObject*.\"] pub type PyObject = _object ; # [repr (C)] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct PyVarObject { pub ob_base : PyObject , # [doc = \" Number of items in variable part\"] pub ob_size : Py_ssize_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of PyVarObject\"] [:: std :: mem :: size_of :: < PyVarObject > () - 24usize] ; [\"Alignment of PyVarObject\"] [:: std :: mem :: align_of :: < PyVarObject > () - 8usize] ; [\"Offset of field: PyVarObject::ob_base\"] [:: std :: mem :: offset_of ! (PyVarObject , ob_base) - 0usize] ; [\"Offset of field: PyVarObject::ob_size\"] [:: std :: mem :: offset_of ! (PyVarObject , ob_size) - 16usize] ; } ; impl Default for PyVarObject { fn default () -> Self { let mut s = :: std :: mem :: MaybeUninit :: < Self > :: uninit () ; unsafe { :: std :: ptr :: write_bytes (s . as_mut_ptr () , 0 , 1) ; s . assume_init () } } } # [doc = \"Type objects contain a string containing the type name (to help somewhat\\nin debugging), the allocation parameters (see PyObject_New() and\\nPyObject_NewVar()),\\nand methods for accessing objects of the type.  Methods are optional, a\\nnil pointer meaning that particular kind of access is not available for\\nthis type.  The Py_DECREF() macro uses the tp_dealloc method without\\nchecking for a nil pointer; it should always be implemented except if\\nthe implementation can guarantee that the reference count will never\\nreach zero (e.g., for statically allocated type objects).\\n\\nNB: the methods for certain type groups are now contained in separate\\nmethod blocks.\"] pub type unaryfunc = :: std :: option :: Option < unsafe extern \"C\" fn (arg1 : * mut PyObject) -> * mut PyObject > ; pub type binaryfunc = :: std :: option :: Option < unsafe extern \"C\" fn (arg1 : * mut PyObject , arg2 : * mut PyObject) -> * mut PyObject > ; pub type ternaryfunc = :: std :: option :: Option < unsafe extern \"C\" fn (arg1 : * mut PyObject , arg2 : * mut PyObject , arg3 : * mut PyObject) -> * mut PyObject > ; pub type inquiry = :: std :: option :: Option < unsafe extern \"C\" fn (arg1 : * mut PyObject) -> :: std :: os :: raw :: c_int > ; pub type lenfunc = :: std :: option :: Option < unsafe extern \"C\" fn (arg1 : * mut PyObject) -> Py_ssize_t > ; pub type ssizeargfunc = :: std :: option :: Option < unsafe extern \"C\" fn (arg1 : * mut PyObject , arg2 : Py_ssize_t) -> * mut PyObject > ; pub type ssizeobjargproc = :: std :: option :: Option < unsafe extern \"C\" fn (arg1 : * mut PyObject , arg2 : Py_ssize_t , arg3 : * mut PyObject) -> :: std :: os :: raw :: c_int > ; pub type objobjargproc = :: std :: option :: Option < unsafe extern \"C\" fn (arg1 : * mut PyObject , arg2 : * mut PyObject , arg3 : * mut PyObject) -> :: std :: os :: raw :: c_int > ; pub type objobjproc = :: std :: option :: Option < unsafe extern \"C\" fn (arg1 : * mut PyObject , arg2 : * mut PyObject) -> :: std :: os :: raw :: c_int > ; pub type visitproc = :: std :: option :: Option < unsafe extern \"C\" fn (arg1 : * mut PyObject , arg2 : * mut :: std :: os :: raw :: c_void) -> :: std :: os :: raw :: c_int > ; pub type traverseproc = :: std :: option :: Option < unsafe extern \"C\" fn (arg1 : * mut PyObject , arg2 : visitproc , arg3 : * mut :: std :: os :: raw :: c_void) -> :: std :: os :: raw :: c_int > ; pub type freefunc = :: std :: option :: Option < unsafe extern \"C\" fn (arg1 : * mut :: std :: os :: raw :: c_void) > ; pub type destructor = :: std :: option :: Option < unsafe extern \"C\" fn (arg1 : * mut PyObject) > ; pub type getattrfunc = :: std :: option :: Option < unsafe extern \"C\" fn (arg1 : * mut PyObject , arg2 : * mut :: std :: os :: raw :: c_char) -> * mut PyObject > ; pub type getattrofunc = :: std :: option :: Option < unsafe extern \"C\" fn (arg1 : * mut PyObject , arg2 : * mut PyObject) -> * mut PyObject > ; pub type setattrfunc = :: std :: option :: Option < unsafe extern \"C\" fn (arg1 : * mut PyObject , arg2 : * mut :: std :: os :: raw :: c_char , arg3 : * mut PyObject) -> :: std :: os :: raw :: c_int > ; pub type setattrofunc = :: std :: option :: Option < unsafe extern \"C\" fn (arg1 : * mut PyObject , arg2 : * mut PyObject , arg3 : * mut PyObject) -> :: std :: os :: raw :: c_int > ; pub type reprfunc = :: std :: option :: Option < unsafe extern \"C\" fn (arg1 : * mut PyObject) -> * mut PyObject > ; pub type hashfunc = :: std :: option :: Option < unsafe extern \"C\" fn (arg1 : * mut PyObject) -> Py_hash_t > ; pub type richcmpfunc = :: std :: option :: Option < unsafe extern \"C\" fn (arg1 : * mut PyObject , arg2 : * mut PyObject , arg3 : :: std :: os :: raw :: c_int) -> * mut PyObject > ; pub type getiterfunc = :: std :: option :: Option < unsafe extern \"C\" fn (arg1 : * mut PyObject) -> * mut PyObject > ; pub type iternextfunc = :: std :: option :: Option < unsafe extern \"C\" fn (arg1 : * mut PyObject) -> * mut PyObject > ; pub type descrgetfunc = :: std :: option :: Option < unsafe extern \"C\" fn (arg1 : * mut PyObject , arg2 : * mut PyObject , arg3 : * mut PyObject) -> * mut PyObject > ; pub type descrsetfunc = :: std :: option :: Option < unsafe extern \"C\" fn (arg1 : * mut PyObject , arg2 : * mut PyObject , arg3 : * mut PyObject) -> :: std :: os :: raw :: c_int > ; pub type initproc = :: std :: option :: Option < unsafe extern \"C\" fn (arg1 : * mut PyObject , arg2 : * mut PyObject , arg3 : * mut PyObject) -> :: std :: os :: raw :: c_int > ; pub type newfunc = :: std :: option :: Option < unsafe extern \"C\" fn (arg1 : * mut PyTypeObject , arg2 : * mut PyObject , arg3 : * mut PyObject) -> * mut PyObject > ; pub type allocfunc = :: std :: option :: Option < unsafe extern \"C\" fn (arg1 : * mut PyTypeObject , arg2 : Py_ssize_t) -> * mut PyObject > ; # [repr (C)] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct PyType_Slot { # [doc = \" slot id, see below\"] pub slot : :: std :: os :: raw :: c_int , # [doc = \" function pointer\"] pub pfunc : * mut :: std :: os :: raw :: c_void , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of PyType_Slot\"] [:: std :: mem :: size_of :: < PyType_Slot > () - 16usize] ; [\"Alignment of PyType_Slot\"] [:: std :: mem :: align_of :: < PyType_Slot > () - 8usize] ; [\"Offset of field: PyType_Slot::slot\"] [:: std :: mem :: offset_of ! (PyType_Slot , slot) - 0usize] ; [\"Offset of field: PyType_Slot::pfunc\"] [:: std :: mem :: offset_of ! (PyType_Slot , pfunc) - 8usize] ; } ; impl Default for PyType_Slot { fn default () -> Self { let mut s = :: std :: mem :: MaybeUninit :: < Self > :: uninit () ; unsafe { :: std :: ptr :: write_bytes (s . as_mut_ptr () , 0 , 1) ; s . assume_init () } } } # [repr (C)] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct PyType_Spec { pub name : * const :: std :: os :: raw :: c_char , pub basicsize : :: std :: os :: raw :: c_int , pub itemsize : :: std :: os :: raw :: c_int , pub flags : :: std :: os :: raw :: c_uint , # [doc = \" terminated by slot==0.\"] pub slots : * mut PyType_Slot , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of PyType_Spec\"] [:: std :: mem :: size_of :: < PyType_Spec > () - 32usize] ; [\"Alignment of PyType_Spec\"] [:: std :: mem :: align_of :: < PyType_Spec > () - 8usize] ; [\"Offset of field: PyType_Spec::name\"] [:: std :: mem :: offset_of ! (PyType_Spec , name) - 0usize] ; [\"Offset of field: PyType_Spec::basicsize\"] [:: std :: mem :: offset_of ! (PyType_Spec , basicsize) - 8usize] ; [\"Offset of field: PyType_Spec::itemsize\"] [:: std :: mem :: offset_of ! (PyType_Spec , itemsize) - 12usize] ; [\"Offset of field: PyType_Spec::flags\"] [:: std :: mem :: offset_of ! (PyType_Spec , flags) - 16usize] ; [\"Offset of field: PyType_Spec::slots\"] [:: std :: mem :: offset_of ! (PyType_Spec , slots) - 24usize] ; } ; impl Default for PyType_Spec { fn default () -> Self { let mut s = :: std :: mem :: MaybeUninit :: < Self > :: uninit () ; unsafe { :: std :: ptr :: write_bytes (s . as_mut_ptr () , 0 , 1) ; s . assume_init () } } } # [repr (i32)] # [doc = \" Result of calling PyIter_Send\"] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub enum PySendResult { PYGEN_RETURN = 0 , PYGEN_ERROR = - 1 , PYGEN_NEXT = 1 , } # [doc = \" buffer interface\"] # [repr (C)] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct bufferinfo { pub buf : * mut :: std :: os :: raw :: c_void , # [doc = \" owned reference\"] pub obj : * mut PyObject , pub len : Py_ssize_t , # [doc = \" This is Py_ssize_t so it can be\\npointed to by strides in simple case.\"] pub itemsize : Py_ssize_t , pub readonly : :: std :: os :: raw :: c_int , pub ndim : :: std :: os :: raw :: c_int , pub format : * mut :: std :: os :: raw :: c_char , pub shape : * mut Py_ssize_t , pub strides : * mut Py_ssize_t , pub suboffsets : * mut Py_ssize_t , pub internal : * mut :: std :: os :: raw :: c_void , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of bufferinfo\"] [:: std :: mem :: size_of :: < bufferinfo > () - 80usize] ; [\"Alignment of bufferinfo\"] [:: std :: mem :: align_of :: < bufferinfo > () - 8usize] ; [\"Offset of field: bufferinfo::buf\"] [:: std :: mem :: offset_of ! (bufferinfo , buf) - 0usize] ; [\"Offset of field: bufferinfo::obj\"] [:: std :: mem :: offset_of ! (bufferinfo , obj) - 8usize] ; [\"Offset of field: bufferinfo::len\"] [:: std :: mem :: offset_of ! (bufferinfo , len) - 16usize] ; [\"Offset of field: bufferinfo::itemsize\"] [:: std :: mem :: offset_of ! (bufferinfo , itemsize) - 24usize] ; [\"Offset of field: bufferinfo::readonly\"] [:: std :: mem :: offset_of ! (bufferinfo , readonly) - 32usize] ; [\"Offset of field: bufferinfo::ndim\"] [:: std :: mem :: offset_of ! (bufferinfo , ndim) - 36usize] ; [\"Offset of field: bufferinfo::format\"] [:: std :: mem :: offset_of ! (bufferinfo , format) - 40usize] ; [\"Offset of field: bufferinfo::shape\"] [:: std :: mem :: offset_of ! (bufferinfo , shape) - 48usize] ; [\"Offset of field: bufferinfo::strides\"] [:: std :: mem :: offset_of ! (bufferinfo , strides) - 56usize] ; [\"Offset of field: bufferinfo::suboffsets\"] [:: std :: mem :: offset_of ! (bufferinfo , suboffsets) - 64usize] ; [\"Offset of field: bufferinfo::internal\"] [:: std :: mem :: offset_of ! (bufferinfo , internal) - 72usize] ; } ; impl Default for bufferinfo { fn default () -> Self { let mut s = :: std :: mem :: MaybeUninit :: < Self > :: uninit () ; unsafe { :: std :: ptr :: write_bytes (s . as_mut_ptr () , 0 , 1) ; s . assume_init () } } } # [doc = \" buffer interface\"] pub type Py_buffer = bufferinfo ; pub type getbufferproc = :: std :: option :: Option < unsafe extern \"C\" fn (arg1 : * mut PyObject , arg2 : * mut Py_buffer , arg3 : :: std :: os :: raw :: c_int) -> :: std :: os :: raw :: c_int > ; pub type releasebufferproc = :: std :: option :: Option < unsafe extern \"C\" fn (arg1 : * mut PyObject , arg2 : * mut Py_buffer) > ; pub type vectorcallfunc = :: std :: option :: Option < unsafe extern \"C\" fn (callable : * mut PyObject , args : * const * mut PyObject , nargsf : usize , kwnames : * mut PyObject) -> * mut PyObject > ; # [doc = \" End buffer interface\"] # [repr (C)] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct PyNumberMethods { # [doc = \" Number implementations must check *both*\\narguments for proper type and implement the necessary conversions\\nin the slot functions themselves.\"] pub nb_add : binaryfunc , pub nb_subtract : binaryfunc , pub nb_multiply : binaryfunc , pub nb_remainder : binaryfunc , pub nb_divmod : binaryfunc , pub nb_power : ternaryfunc , pub nb_negative : unaryfunc , pub nb_positive : unaryfunc , pub nb_absolute : unaryfunc , pub nb_bool : inquiry , pub nb_invert : unaryfunc , pub nb_lshift : binaryfunc , pub nb_rshift : binaryfunc , pub nb_and : binaryfunc , pub nb_xor : binaryfunc , pub nb_or : binaryfunc , pub nb_int : unaryfunc , # [doc = \" the slot formerly known as nb_long\"] pub nb_reserved : * mut :: std :: os :: raw :: c_void , pub nb_float : unaryfunc , pub nb_inplace_add : binaryfunc , pub nb_inplace_subtract : binaryfunc , pub nb_inplace_multiply : binaryfunc , pub nb_inplace_remainder : binaryfunc , pub nb_inplace_power : ternaryfunc , pub nb_inplace_lshift : binaryfunc , pub nb_inplace_rshift : binaryfunc , pub nb_inplace_and : binaryfunc , pub nb_inplace_xor : binaryfunc , pub nb_inplace_or : binaryfunc , pub nb_floor_divide : binaryfunc , pub nb_true_divide : binaryfunc , pub nb_inplace_floor_divide : binaryfunc , pub nb_inplace_true_divide : binaryfunc , pub nb_index : unaryfunc , pub nb_matrix_multiply : binaryfunc , pub nb_inplace_matrix_multiply : binaryfunc , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of PyNumberMethods\"] [:: std :: mem :: size_of :: < PyNumberMethods > () - 288usize] ; [\"Alignment of PyNumberMethods\"] [:: std :: mem :: align_of :: < PyNumberMethods > () - 8usize] ; [\"Offset of field: PyNumberMethods::nb_add\"] [:: std :: mem :: offset_of ! (PyNumberMethods , nb_add) - 0usize] ; [\"Offset of field: PyNumberMethods::nb_subtract\"] [:: std :: mem :: offset_of ! (PyNumberMethods , nb_subtract) - 8usize] ; [\"Offset of field: PyNumberMethods::nb_multiply\"] [:: std :: mem :: offset_of ! (PyNumberMethods , nb_multiply) - 16usize] ; [\"Offset of field: PyNumberMethods::nb_remainder\"] [:: std :: mem :: offset_of ! (PyNumberMethods , nb_remainder) - 24usize] ; [\"Offset of field: PyNumberMethods::nb_divmod\"] [:: std :: mem :: offset_of ! (PyNumberMethods , nb_divmod) - 32usize] ; [\"Offset of field: PyNumberMethods::nb_power\"] [:: std :: mem :: offset_of ! (PyNumberMethods , nb_power) - 40usize] ; [\"Offset of field: PyNumberMethods::nb_negative\"] [:: std :: mem :: offset_of ! (PyNumberMethods , nb_negative) - 48usize] ; [\"Offset of field: PyNumberMethods::nb_positive\"] [:: std :: mem :: offset_of ! (PyNumberMethods , nb_positive) - 56usize] ; [\"Offset of field: PyNumberMethods::nb_absolute\"] [:: std :: mem :: offset_of ! (PyNumberMethods , nb_absolute) - 64usize] ; [\"Offset of field: PyNumberMethods::nb_bool\"] [:: std :: mem :: offset_of ! (PyNumberMethods , nb_bool) - 72usize] ; [\"Offset of field: PyNumberMethods::nb_invert\"] [:: std :: mem :: offset_of ! (PyNumberMethods , nb_invert) - 80usize] ; [\"Offset of field: PyNumberMethods::nb_lshift\"] [:: std :: mem :: offset_of ! (PyNumberMethods , nb_lshift) - 88usize] ; [\"Offset of field: PyNumberMethods::nb_rshift\"] [:: std :: mem :: offset_of ! (PyNumberMethods , nb_rshift) - 96usize] ; [\"Offset of field: PyNumberMethods::nb_and\"] [:: std :: mem :: offset_of ! (PyNumberMethods , nb_and) - 104usize] ; [\"Offset of field: PyNumberMethods::nb_xor\"] [:: std :: mem :: offset_of ! (PyNumberMethods , nb_xor) - 112usize] ; [\"Offset of field: PyNumberMethods::nb_or\"] [:: std :: mem :: offset_of ! (PyNumberMethods , nb_or) - 120usize] ; [\"Offset of field: PyNumberMethods::nb_int\"] [:: std :: mem :: offset_of ! (PyNumberMethods , nb_int) - 128usize] ; [\"Offset of field: PyNumberMethods::nb_reserved\"] [:: std :: mem :: offset_of ! (PyNumberMethods , nb_reserved) - 136usize] ; [\"Offset of field: PyNumberMethods::nb_float\"] [:: std :: mem :: offset_of ! (PyNumberMethods , nb_float) - 144usize] ; [\"Offset of field: PyNumberMethods::nb_inplace_add\"] [:: std :: mem :: offset_of ! (PyNumberMethods , nb_inplace_add) - 152usize] ; [\"Offset of field: PyNumberMethods::nb_inplace_subtract\"] [:: std :: mem :: offset_of ! (PyNumberMethods , nb_inplace_subtract) - 160usize] ; [\"Offset of field: PyNumberMethods::nb_inplace_multiply\"] [:: std :: mem :: offset_of ! (PyNumberMethods , nb_inplace_multiply) - 168usize] ; [\"Offset of field: PyNumberMethods::nb_inplace_remainder\"] [:: std :: mem :: offset_of ! (PyNumberMethods , nb_inplace_remainder) - 176usize] ; [\"Offset of field: PyNumberMethods::nb_inplace_power\"] [:: std :: mem :: offset_of ! (PyNumberMethods , nb_inplace_power) - 184usize] ; [\"Offset of field: PyNumberMethods::nb_inplace_lshift\"] [:: std :: mem :: offset_of ! (PyNumberMethods , nb_inplace_lshift) - 192usize] ; [\"Offset of field: PyNumberMethods::nb_inplace_rshift\"] [:: std :: mem :: offset_of ! (PyNumberMethods , nb_inplace_rshift) - 200usize] ; [\"Offset of field: PyNumberMethods::nb_inplace_and\"] [:: std :: mem :: offset_of ! (PyNumberMethods , nb_inplace_and) - 208usize] ; [\"Offset of field: PyNumberMethods::nb_inplace_xor\"] [:: std :: mem :: offset_of ! (PyNumberMethods , nb_inplace_xor) - 216usize] ; [\"Offset of field: PyNumberMethods::nb_inplace_or\"] [:: std :: mem :: offset_of ! (PyNumberMethods , nb_inplace_or) - 224usize] ; [\"Offset of field: PyNumberMethods::nb_floor_divide\"] [:: std :: mem :: offset_of ! (PyNumberMethods , nb_floor_divide) - 232usize] ; [\"Offset of field: PyNumberMethods::nb_true_divide\"] [:: std :: mem :: offset_of ! (PyNumberMethods , nb_true_divide) - 240usize] ; [\"Offset of field: PyNumberMethods::nb_inplace_floor_divide\"] [:: std :: mem :: offset_of ! (PyNumberMethods , nb_inplace_floor_divide) - 248usize] ; [\"Offset of field: PyNumberMethods::nb_inplace_true_divide\"] [:: std :: mem :: offset_of ! (PyNumberMethods , nb_inplace_true_divide) - 256usize] ; [\"Offset of field: PyNumberMethods::nb_index\"] [:: std :: mem :: offset_of ! (PyNumberMethods , nb_index) - 264usize] ; [\"Offset of field: PyNumberMethods::nb_matrix_multiply\"] [:: std :: mem :: offset_of ! (PyNumberMethods , nb_matrix_multiply) - 272usize] ; [\"Offset of field: PyNumberMethods::nb_inplace_matrix_multiply\"] [:: std :: mem :: offset_of ! (PyNumberMethods , nb_inplace_matrix_multiply) - 280usize] ; } ; impl Default for PyNumberMethods { fn default () -> Self { let mut s = :: std :: mem :: MaybeUninit :: < Self > :: uninit () ; unsafe { :: std :: ptr :: write_bytes (s . as_mut_ptr () , 0 , 1) ; s . assume_init () } } } # [repr (C)] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct PySequenceMethods { pub sq_length : lenfunc , pub sq_concat : binaryfunc , pub sq_repeat : ssizeargfunc , pub sq_item : ssizeargfunc , pub was_sq_slice : * mut :: std :: os :: raw :: c_void , pub sq_ass_item : ssizeobjargproc , pub was_sq_ass_slice : * mut :: std :: os :: raw :: c_void , pub sq_contains : objobjproc , pub sq_inplace_concat : binaryfunc , pub sq_inplace_repeat : ssizeargfunc , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of PySequenceMethods\"] [:: std :: mem :: size_of :: < PySequenceMethods > () - 80usize] ; [\"Alignment of PySequenceMethods\"] [:: std :: mem :: align_of :: < PySequenceMethods > () - 8usize] ; [\"Offset of field: PySequenceMethods::sq_length\"] [:: std :: mem :: offset_of ! (PySequenceMethods , sq_length) - 0usize] ; [\"Offset of field: PySequenceMethods::sq_concat\"] [:: std :: mem :: offset_of ! (PySequenceMethods , sq_concat) - 8usize] ; [\"Offset of field: PySequenceMethods::sq_repeat\"] [:: std :: mem :: offset_of ! (PySequenceMethods , sq_repeat) - 16usize] ; [\"Offset of field: PySequenceMethods::sq_item\"] [:: std :: mem :: offset_of ! (PySequenceMethods , sq_item) - 24usize] ; [\"Offset of field: PySequenceMethods::was_sq_slice\"] [:: std :: mem :: offset_of ! (PySequenceMethods , was_sq_slice) - 32usize] ; [\"Offset of field: PySequenceMethods::sq_ass_item\"] [:: std :: mem :: offset_of ! (PySequenceMethods , sq_ass_item) - 40usize] ; [\"Offset of field: PySequenceMethods::was_sq_ass_slice\"] [:: std :: mem :: offset_of ! (PySequenceMethods , was_sq_ass_slice) - 48usize] ; [\"Offset of field: PySequenceMethods::sq_contains\"] [:: std :: mem :: offset_of ! (PySequenceMethods , sq_contains) - 56usize] ; [\"Offset of field: PySequenceMethods::sq_inplace_concat\"] [:: std :: mem :: offset_of ! (PySequenceMethods , sq_inplace_concat) - 64usize] ; [\"Offset of field: PySequenceMethods::sq_inplace_repeat\"] [:: std :: mem :: offset_of ! (PySequenceMethods , sq_inplace_repeat) - 72usize] ; } ; impl Default for PySequenceMethods { fn default () -> Self { let mut s = :: std :: mem :: MaybeUninit :: < Self > :: uninit () ; unsafe { :: std :: ptr :: write_bytes (s . as_mut_ptr () , 0 , 1) ; s . assume_init () } } } # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct PyMappingMethods { pub mp_length : lenfunc , pub mp_subscript : binaryfunc , pub mp_ass_subscript : objobjargproc , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of PyMappingMethods\"] [:: std :: mem :: size_of :: < PyMappingMethods > () - 24usize] ; [\"Alignment of PyMappingMethods\"] [:: std :: mem :: align_of :: < PyMappingMethods > () - 8usize] ; [\"Offset of field: PyMappingMethods::mp_length\"] [:: std :: mem :: offset_of ! (PyMappingMethods , mp_length) - 0usize] ; [\"Offset of field: PyMappingMethods::mp_subscript\"] [:: std :: mem :: offset_of ! (PyMappingMethods , mp_subscript) - 8usize] ; [\"Offset of field: PyMappingMethods::mp_ass_subscript\"] [:: std :: mem :: offset_of ! (PyMappingMethods , mp_ass_subscript) - 16usize] ; } ; pub type sendfunc = :: std :: option :: Option < unsafe extern \"C\" fn (iter : * mut PyObject , value : * mut PyObject , result : * mut * mut PyObject) -> PySendResult > ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct PyAsyncMethods { pub am_await : unaryfunc , pub am_aiter : unaryfunc , pub am_anext : unaryfunc , pub am_send : sendfunc , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of PyAsyncMethods\"] [:: std :: mem :: size_of :: < PyAsyncMethods > () - 32usize] ; [\"Alignment of PyAsyncMethods\"] [:: std :: mem :: align_of :: < PyAsyncMethods > () - 8usize] ; [\"Offset of field: PyAsyncMethods::am_await\"] [:: std :: mem :: offset_of ! (PyAsyncMethods , am_await) - 0usize] ; [\"Offset of field: PyAsyncMethods::am_aiter\"] [:: std :: mem :: offset_of ! (PyAsyncMethods , am_aiter) - 8usize] ; [\"Offset of field: PyAsyncMethods::am_anext\"] [:: std :: mem :: offset_of ! (PyAsyncMethods , am_anext) - 16usize] ; [\"Offset of field: PyAsyncMethods::am_send\"] [:: std :: mem :: offset_of ! (PyAsyncMethods , am_send) - 24usize] ; } ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct PyBufferProcs { pub bf_getbuffer : getbufferproc , pub bf_releasebuffer : releasebufferproc , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of PyBufferProcs\"] [:: std :: mem :: size_of :: < PyBufferProcs > () - 16usize] ; [\"Alignment of PyBufferProcs\"] [:: std :: mem :: align_of :: < PyBufferProcs > () - 8usize] ; [\"Offset of field: PyBufferProcs::bf_getbuffer\"] [:: std :: mem :: offset_of ! (PyBufferProcs , bf_getbuffer) - 0usize] ; [\"Offset of field: PyBufferProcs::bf_releasebuffer\"] [:: std :: mem :: offset_of ! (PyBufferProcs , bf_releasebuffer) - 8usize] ; } ; # [doc = \" If this structure is modified, Doc/includes/typestruct.h should be updated\\n as well.\"] # [repr (C)] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct _typeobject { pub ob_base : PyVarObject , # [doc = \" For printing, in format \\\"<module>.<name>\\\"\"] pub tp_name : * const :: std :: os :: raw :: c_char , # [doc = \" For allocation\"] pub tp_basicsize : Py_ssize_t , # [doc = \" For allocation\"] pub tp_itemsize : Py_ssize_t , # [doc = \" Methods to implement standard operations\"] pub tp_dealloc : destructor , pub tp_vectorcall_offset : Py_ssize_t , pub tp_getattr : getattrfunc , pub tp_setattr : setattrfunc , # [doc = \" formerly known as tp_compare (Python 2)\\nor tp_reserved (Python 3)\"] pub tp_as_async : * mut PyAsyncMethods , pub tp_repr : reprfunc , # [doc = \" Method suites for standard classes\"] pub tp_as_number : * mut PyNumberMethods , pub tp_as_sequence : * mut PySequenceMethods , pub tp_as_mapping : * mut PyMappingMethods , # [doc = \" More standard operations (here for binary compatibility)\"] pub tp_hash : hashfunc , pub tp_call : ternaryfunc , pub tp_str : reprfunc , pub tp_getattro : getattrofunc , pub tp_setattro : setattrofunc , # [doc = \" Functions to access object as input/output buffer\"] pub tp_as_buffer : * mut PyBufferProcs , # [doc = \" Flags to define presence of optional/expanded features\"] pub tp_flags : :: std :: os :: raw :: c_ulong , # [doc = \" Documentation string\"] pub tp_doc : * const :: std :: os :: raw :: c_char , # [doc = \" Assigned meaning in release 2.0 */\\n/* call function for all accessible objects\"] pub tp_traverse : traverseproc , # [doc = \" delete references to contained objects\"] pub tp_clear : inquiry , # [doc = \" Assigned meaning in release 2.1 */\\n/* rich comparisons\"] pub tp_richcompare : richcmpfunc , # [doc = \" weak reference enabler\"] pub tp_weaklistoffset : Py_ssize_t , # [doc = \" Iterators\"] pub tp_iter : getiterfunc , pub tp_iternext : iternextfunc , # [doc = \" Attribute descriptor and subclassing stuff\"] pub tp_methods : * mut PyMethodDef , pub tp_members : * mut PyMemberDef , pub tp_getset : * mut PyGetSetDef , # [doc = \" Strong reference on a heap type, borrowed reference on a static type\"] pub tp_base : * mut _typeobject , pub tp_dict : * mut PyObject , pub tp_descr_get : descrgetfunc , pub tp_descr_set : descrsetfunc , pub tp_dictoffset : Py_ssize_t , pub tp_init : initproc , pub tp_alloc : allocfunc , pub tp_new : newfunc , # [doc = \" Low-level free-memory routine\"] pub tp_free : freefunc , # [doc = \" For PyObject_IS_GC\"] pub tp_is_gc : inquiry , pub tp_bases : * mut PyObject , # [doc = \" method resolution order\"] pub tp_mro : * mut PyObject , pub tp_cache : * mut PyObject , pub tp_subclasses : * mut PyObject , pub tp_weaklist : * mut PyObject , pub tp_del : destructor , # [doc = \" Type attribute cache version tag. Added in version 2.6\"] pub tp_version_tag : :: std :: os :: raw :: c_uint , pub tp_finalize : destructor , pub tp_vectorcall : vectorcallfunc , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of _typeobject\"] [:: std :: mem :: size_of :: < _typeobject > () - 408usize] ; [\"Alignment of _typeobject\"] [:: std :: mem :: align_of :: < _typeobject > () - 8usize] ; [\"Offset of field: _typeobject::ob_base\"] [:: std :: mem :: offset_of ! (_typeobject , ob_base) - 0usize] ; [\"Offset of field: _typeobject::tp_name\"] [:: std :: mem :: offset_of ! (_typeobject , tp_name) - 24usize] ; [\"Offset of field: _typeobject::tp_basicsize\"] [:: std :: mem :: offset_of ! (_typeobject , tp_basicsize) - 32usize] ; [\"Offset of field: _typeobject::tp_itemsize\"] [:: std :: mem :: offset_of ! (_typeobject , tp_itemsize) - 40usize] ; [\"Offset of field: _typeobject::tp_dealloc\"] [:: std :: mem :: offset_of ! (_typeobject , tp_dealloc) - 48usize] ; [\"Offset of field: _typeobject::tp_vectorcall_offset\"] [:: std :: mem :: offset_of ! (_typeobject , tp_vectorcall_offset) - 56usize] ; [\"Offset of field: _typeobject::tp_getattr\"] [:: std :: mem :: offset_of ! (_typeobject , tp_getattr) - 64usize] ; [\"Offset of field: _typeobject::tp_setattr\"] [:: std :: mem :: offset_of ! (_typeobject , tp_setattr) - 72usize] ; [\"Offset of field: _typeobject::tp_as_async\"] [:: std :: mem :: offset_of ! (_typeobject , tp_as_async) - 80usize] ; [\"Offset of field: _typeobject::tp_repr\"] [:: std :: mem :: offset_of ! (_typeobject , tp_repr) - 88usize] ; [\"Offset of field: _typeobject::tp_as_number\"] [:: std :: mem :: offset_of ! (_typeobject , tp_as_number) - 96usize] ; [\"Offset of field: _typeobject::tp_as_sequence\"] [:: std :: mem :: offset_of ! (_typeobject , tp_as_sequence) - 104usize] ; [\"Offset of field: _typeobject::tp_as_mapping\"] [:: std :: mem :: offset_of ! (_typeobject , tp_as_mapping) - 112usize] ; [\"Offset of field: _typeobject::tp_hash\"] [:: std :: mem :: offset_of ! (_typeobject , tp_hash) - 120usize] ; [\"Offset of field: _typeobject::tp_call\"] [:: std :: mem :: offset_of ! (_typeobject , tp_call) - 128usize] ; [\"Offset of field: _typeobject::tp_str\"] [:: std :: mem :: offset_of ! (_typeobject , tp_str) - 136usize] ; [\"Offset of field: _typeobject::tp_getattro\"] [:: std :: mem :: offset_of ! (_typeobject , tp_getattro) - 144usize] ; [\"Offset of field: _typeobject::tp_setattro\"] [:: std :: mem :: offset_of ! (_typeobject , tp_setattro) - 152usize] ; [\"Offset of field: _typeobject::tp_as_buffer\"] [:: std :: mem :: offset_of ! (_typeobject , tp_as_buffer) - 160usize] ; [\"Offset of field: _typeobject::tp_flags\"] [:: std :: mem :: offset_of ! (_typeobject , tp_flags) - 168usize] ; [\"Offset of field: _typeobject::tp_doc\"] [:: std :: mem :: offset_of ! (_typeobject , tp_doc) - 176usize] ; [\"Offset of field: _typeobject::tp_traverse\"] [:: std :: mem :: offset_of ! (_typeobject , tp_traverse) - 184usize] ; [\"Offset of field: _typeobject::tp_clear\"] [:: std :: mem :: offset_of ! (_typeobject , tp_clear) - 192usize] ; [\"Offset of field: _typeobject::tp_richcompare\"] [:: std :: mem :: offset_of ! (_typeobject , tp_richcompare) - 200usize] ; [\"Offset of field: _typeobject::tp_weaklistoffset\"] [:: std :: mem :: offset_of ! (_typeobject , tp_weaklistoffset) - 208usize] ; [\"Offset of field: _typeobject::tp_iter\"] [:: std :: mem :: offset_of ! (_typeobject , tp_iter) - 216usize] ; [\"Offset of field: _typeobject::tp_iternext\"] [:: std :: mem :: offset_of ! (_typeobject , tp_iternext) - 224usize] ; [\"Offset of field: _typeobject::tp_methods\"] [:: std :: mem :: offset_of ! (_typeobject , tp_methods) - 232usize] ; [\"Offset of field: _typeobject::tp_members\"] [:: std :: mem :: offset_of ! (_typeobject , tp_members) - 240usize] ; [\"Offset of field: _typeobject::tp_getset\"] [:: std :: mem :: offset_of ! (_typeobject , tp_getset) - 248usize] ; [\"Offset of field: _typeobject::tp_base\"] [:: std :: mem :: offset_of ! (_typeobject , tp_base) - 256usize] ; [\"Offset of field: _typeobject::tp_dict\"] [:: std :: mem :: offset_of ! (_typeobject , tp_dict) - 264usize] ; [\"Offset of field: _typeobject::tp_descr_get\"] [:: std :: mem :: offset_of ! (_typeobject , tp_descr_get) - 272usize] ; [\"Offset of field: _typeobject::tp_descr_set\"] [:: std :: mem :: offset_of ! (_typeobject , tp_descr_set) - 280usize] ; [\"Offset of field: _typeobject::tp_dictoffset\"] [:: std :: mem :: offset_of ! (_typeobject , tp_dictoffset) - 288usize] ; [\"Offset of field: _typeobject::tp_init\"] [:: std :: mem :: offset_of ! (_typeobject , tp_init) - 296usize] ; [\"Offset of field: _typeobject::tp_alloc\"] [:: std :: mem :: offset_of ! (_typeobject , tp_alloc) - 304usize] ; [\"Offset of field: _typeobject::tp_new\"] [:: std :: mem :: offset_of ! (_typeobject , tp_new) - 312usize] ; [\"Offset of field: _typeobject::tp_free\"] [:: std :: mem :: offset_of ! (_typeobject , tp_free) - 320usize] ; [\"Offset of field: _typeobject::tp_is_gc\"] [:: std :: mem :: offset_of ! (_typeobject , tp_is_gc) - 328usize] ; [\"Offset of field: _typeobject::tp_bases\"] [:: std :: mem :: offset_of ! (_typeobject , tp_bases) - 336usize] ; [\"Offset of field: _typeobject::tp_mro\"] [:: std :: mem :: offset_of ! (_typeobject , tp_mro) - 344usize] ; [\"Offset of field: _typeobject::tp_cache\"] [:: std :: mem :: offset_of ! (_typeobject , tp_cache) - 352usize] ; [\"Offset of field: _typeobject::tp_subclasses\"] [:: std :: mem :: offset_of ! (_typeobject , tp_subclasses) - 360usize] ; [\"Offset of field: _typeobject::tp_weaklist\"] [:: std :: mem :: offset_of ! (_typeobject , tp_weaklist) - 368usize] ; [\"Offset of field: _typeobject::tp_del\"] [:: std :: mem :: offset_of ! (_typeobject , tp_del) - 376usize] ; [\"Offset of field: _typeobject::tp_version_tag\"] [:: std :: mem :: offset_of ! (_typeobject , tp_version_tag) - 384usize] ; [\"Offset of field: _typeobject::tp_finalize\"] [:: std :: mem :: offset_of ! (_typeobject , tp_finalize) - 392usize] ; [\"Offset of field: _typeobject::tp_vectorcall\"] [:: std :: mem :: offset_of ! (_typeobject , tp_vectorcall) - 400usize] ; } ; impl Default for _typeobject { fn default () -> Self { let mut s = :: std :: mem :: MaybeUninit :: < Self > :: uninit () ; unsafe { :: std :: ptr :: write_bytes (s . as_mut_ptr () , 0 , 1) ; s . assume_init () } } } pub type digit = u32 ; pub type PyDictKeysObject = _dictkeysobject ; # [doc = \" The ma_values pointer is NULL for a combined table\\n or points to an array of PyObject* for a split table\"] # [repr (C)] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct PyDictObject { pub ob_base : PyObject , # [doc = \" Number of items in the dictionary\"] pub ma_used : Py_ssize_t , # [doc = \" Dictionary version: globally unique, value change each time\\nthe dictionary is modified\"] pub ma_version_tag : u64 , pub ma_keys : * mut PyDictKeysObject , # [doc = \" If ma_values is NULL, the table is \\\"combined\\\": keys and values\\nare stored in ma_keys.\\n\\nIf ma_values is not NULL, the table is split:\\nkeys are stored in ma_keys and values are stored in ma_values\"] pub ma_values : * mut * mut PyObject , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of PyDictObject\"] [:: std :: mem :: size_of :: < PyDictObject > () - 48usize] ; [\"Alignment of PyDictObject\"] [:: std :: mem :: align_of :: < PyDictObject > () - 8usize] ; [\"Offset of field: PyDictObject::ob_base\"] [:: std :: mem :: offset_of ! (PyDictObject , ob_base) - 0usize] ; [\"Offset of field: PyDictObject::ma_used\"] [:: std :: mem :: offset_of ! (PyDictObject , ma_used) - 16usize] ; [\"Offset of field: PyDictObject::ma_version_tag\"] [:: std :: mem :: offset_of ! (PyDictObject , ma_version_tag) - 24usize] ; [\"Offset of field: PyDictObject::ma_keys\"] [:: std :: mem :: offset_of ! (PyDictObject , ma_keys) - 32usize] ; [\"Offset of field: PyDictObject::ma_values\"] [:: std :: mem :: offset_of ! (PyDictObject , ma_values) - 40usize] ; } ; impl Default for PyDictObject { fn default () -> Self { let mut s = :: std :: mem :: MaybeUninit :: < Self > :: uninit () ; unsafe { :: std :: ptr :: write_bytes (s . as_mut_ptr () , 0 , 1) ; s . assume_init () } } } pub type PyCFunction = :: std :: option :: Option < unsafe extern \"C\" fn (arg1 : * mut PyObject , arg2 : * mut PyObject) -> * mut PyObject > ; # [repr (C)] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct PyMethodDef { # [doc = \" The name of the built-in function/method\"] pub ml_name : * const :: std :: os :: raw :: c_char , # [doc = \" The C function that implements it\"] pub ml_meth : PyCFunction , # [doc = \" Combination of METH_xxx flags, which mostly\\ndescribe the args expected by the C func\"] pub ml_flags : :: std :: os :: raw :: c_int , # [doc = \" The __doc__ attribute, or NULL\"] pub ml_doc : * const :: std :: os :: raw :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of PyMethodDef\"] [:: std :: mem :: size_of :: < PyMethodDef > () - 32usize] ; [\"Alignment of PyMethodDef\"] [:: std :: mem :: align_of :: < PyMethodDef > () - 8usize] ; [\"Offset of field: PyMethodDef::ml_name\"] [:: std :: mem :: offset_of ! (PyMethodDef , ml_name) - 0usize] ; [\"Offset of field: PyMethodDef::ml_meth\"] [:: std :: mem :: offset_of ! (PyMethodDef , ml_meth) - 8usize] ; [\"Offset of field: PyMethodDef::ml_flags\"] [:: std :: mem :: offset_of ! (PyMethodDef , ml_flags) - 16usize] ; [\"Offset of field: PyMethodDef::ml_doc\"] [:: std :: mem :: offset_of ! (PyMethodDef , ml_doc) - 24usize] ; } ; impl Default for PyMethodDef { fn default () -> Self { let mut s = :: std :: mem :: MaybeUninit :: < Self > :: uninit () ; unsafe { :: std :: ptr :: write_bytes (s . as_mut_ptr () , 0 , 1) ; s . assume_init () } } } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct _frame { _unused : [u8 ; 0] , } pub type PyFrameObject = _frame ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct _is { _unused : [u8 ; 0] , } # [doc = \" struct _ts is defined in cpython/pystate.h\"] pub type PyThreadState = _ts ; # [doc = \" struct _is is defined in internal/pycore_interp.h\"] pub type PyInterpreterState = _is ; # [doc = \" Py_tracefunc return -1 when raising an exception, or 0 for success.\"] pub type Py_tracefunc = :: std :: option :: Option < unsafe extern \"C\" fn (arg1 : * mut PyObject , arg2 : * mut PyFrameObject , arg3 : :: std :: os :: raw :: c_int , arg4 : * mut PyObject) -> :: std :: os :: raw :: c_int > ; # [repr (C)] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct _cframe { # [doc = \" This struct will be threaded through the C stack\\n allowing fast access to per-thread state that needs\\n to be accessed quickly by the interpreter, but can\\n be modified outside of the interpreter.\\n\\n WARNING: This makes data on the C stack accessible from\\n heap objects. Care must be taken to maintain stack\\n discipline and make sure that instances of this struct cannot\\n accessed outside of their lifetime.\"] pub use_tracing : :: std :: os :: raw :: c_int , pub previous : * mut _cframe , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of _cframe\"] [:: std :: mem :: size_of :: < _cframe > () - 16usize] ; [\"Alignment of _cframe\"] [:: std :: mem :: align_of :: < _cframe > () - 8usize] ; [\"Offset of field: _cframe::use_tracing\"] [:: std :: mem :: offset_of ! (_cframe , use_tracing) - 0usize] ; [\"Offset of field: _cframe::previous\"] [:: std :: mem :: offset_of ! (_cframe , previous) - 8usize] ; } ; impl Default for _cframe { fn default () -> Self { let mut s = :: std :: mem :: MaybeUninit :: < Self > :: uninit () ; unsafe { :: std :: ptr :: write_bytes (s . as_mut_ptr () , 0 , 1) ; s . assume_init () } } } pub type CFrame = _cframe ; # [repr (C)] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct _err_stackitem { # [doc = \" This struct represents an entry on the exception stack, which is a\\n per-coroutine state. (Coroutine in the computer science sense,\\n including the thread and generators).\\n This ensures that the exception state is not impacted by \\\"yields\\\"\\n from an except handler.\"] pub exc_type : * mut PyObject , # [doc = \" This struct represents an entry on the exception stack, which is a\\n per-coroutine state. (Coroutine in the computer science sense,\\n including the thread and generators).\\n This ensures that the exception state is not impacted by \\\"yields\\\"\\n from an except handler.\"] pub exc_value : * mut PyObject , # [doc = \" This struct represents an entry on the exception stack, which is a\\n per-coroutine state. (Coroutine in the computer science sense,\\n including the thread and generators).\\n This ensures that the exception state is not impacted by \\\"yields\\\"\\n from an except handler.\"] pub exc_traceback : * mut PyObject , pub previous_item : * mut _err_stackitem , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of _err_stackitem\"] [:: std :: mem :: size_of :: < _err_stackitem > () - 32usize] ; [\"Alignment of _err_stackitem\"] [:: std :: mem :: align_of :: < _err_stackitem > () - 8usize] ; [\"Offset of field: _err_stackitem::exc_type\"] [:: std :: mem :: offset_of ! (_err_stackitem , exc_type) - 0usize] ; [\"Offset of field: _err_stackitem::exc_value\"] [:: std :: mem :: offset_of ! (_err_stackitem , exc_value) - 8usize] ; [\"Offset of field: _err_stackitem::exc_traceback\"] [:: std :: mem :: offset_of ! (_err_stackitem , exc_traceback) - 16usize] ; [\"Offset of field: _err_stackitem::previous_item\"] [:: std :: mem :: offset_of ! (_err_stackitem , previous_item) - 24usize] ; } ; impl Default for _err_stackitem { fn default () -> Self { let mut s = :: std :: mem :: MaybeUninit :: < Self > :: uninit () ; unsafe { :: std :: ptr :: write_bytes (s . as_mut_ptr () , 0 , 1) ; s . assume_init () } } } pub type _PyErr_StackItem = _err_stackitem ; # [doc = \" Forward declarations for PyThreadState\"] # [repr (C)] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct _ts { # [doc = \" See Python/ceval.c for comments explaining most fields\"] pub prev : * mut _ts , pub next : * mut _ts , pub interp : * mut PyInterpreterState , # [doc = \" Borrowed reference to the current frame (it can be NULL)\"] pub frame : * mut PyFrameObject , pub recursion_depth : :: std :: os :: raw :: c_int , # [doc = \" Allow 50 more calls to handle any errors.\"] pub recursion_headroom : :: std :: os :: raw :: c_int , pub stackcheck_counter : :: std :: os :: raw :: c_int , # [doc = \" \'tracing\' keeps track of the execution depth when tracing/profiling.\\nThis is to prevent the actual trace/profile code from being recorded in\\nthe trace/profile.\"] pub tracing : :: std :: os :: raw :: c_int , # [doc = \" Pointer to current CFrame in the C stack frame of the currently,\\n or most recently, executing _PyEval_EvalFrameDefault.\"] pub cframe : * mut CFrame , pub c_profilefunc : Py_tracefunc , pub c_tracefunc : Py_tracefunc , pub c_profileobj : * mut PyObject , pub c_traceobj : * mut PyObject , # [doc = \" The exception currently being raised\"] pub curexc_type : * mut PyObject , pub curexc_value : * mut PyObject , pub curexc_traceback : * mut PyObject , # [doc = \" The exception currently being handled, if no coroutines/generators\\n are present. Always last element on the stack referred to be exc_info.\"] pub exc_state : _PyErr_StackItem , # [doc = \" Pointer to the top of the stack of the exceptions currently\\n being handled\"] pub exc_info : * mut _PyErr_StackItem , # [doc = \" Stores per-thread state\"] pub dict : * mut PyObject , pub gilstate_counter : :: std :: os :: raw :: c_int , # [doc = \" Asynchronous exception to raise\"] pub async_exc : * mut PyObject , # [doc = \" Thread id where this tstate was created\"] pub thread_id : :: std :: os :: raw :: c_ulong , pub trash_delete_nesting : :: std :: os :: raw :: c_int , pub trash_delete_later : * mut PyObject , # [doc = \" Called when a thread state is deleted normally, but not when it\\n is destroyed after fork().\\n Pain:  to prevent rare but fatal shutdown errors (issue 18808),\\n Thread.join() must wait for the join\'ed thread\'s tstate to be unlinked\\n from the tstate chain.  That happens at the end of a thread\'s life,\\n in pystate.c.\\n The obvious way doesn\'t quite work:  create a lock which the tstate\\n unlinking code releases, and have Thread.join() wait to acquire that\\n lock.  The problem is that we _are_ at the end of the thread\'s life:\\n if the thread holds the last reference to the lock, decref\'ing the\\n lock will delete the lock, and that may trigger arbitrary Python code\\n if there\'s a weakref, with a callback, to the lock.  But by this time\\n _PyRuntime.gilstate.tstate_current is already NULL, so only the simplest\\n of C code can be allowed to run (in particular it must not be possible to\\n release the GIL).\\n So instead of holding the lock directly, the tstate holds a weakref to\\n the lock:  that\'s the value of on_delete_data below.  Decref\'ing a\\n weakref is harmless.\\n on_delete points to _threadmodule.c\'s static release_sentinel() function.\\n After the tstate is unlinked, release_sentinel is called with the\\n weakref-to-lock (on_delete_data) argument, and release_sentinel releases\\n the indirectly held lock.\"] pub on_delete : :: std :: option :: Option < unsafe extern \"C\" fn (arg1 : * mut :: std :: os :: raw :: c_void) > , pub on_delete_data : * mut :: std :: os :: raw :: c_void , pub coroutine_origin_tracking_depth : :: std :: os :: raw :: c_int , pub async_gen_firstiter : * mut PyObject , pub async_gen_finalizer : * mut PyObject , pub context : * mut PyObject , pub context_ver : u64 , # [doc = \" Unique thread state id.\"] pub id : u64 , pub root_cframe : CFrame , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of _ts\"] [:: std :: mem :: size_of :: < _ts > () - 280usize] ; [\"Alignment of _ts\"] [:: std :: mem :: align_of :: < _ts > () - 8usize] ; [\"Offset of field: _ts::prev\"] [:: std :: mem :: offset_of ! (_ts , prev) - 0usize] ; [\"Offset of field: _ts::next\"] [:: std :: mem :: offset_of ! (_ts , next) - 8usize] ; [\"Offset of field: _ts::interp\"] [:: std :: mem :: offset_of ! (_ts , interp) - 16usize] ; [\"Offset of field: _ts::frame\"] [:: std :: mem :: offset_of ! (_ts , frame) - 24usize] ; [\"Offset of field: _ts::recursion_depth\"] [:: std :: mem :: offset_of ! (_ts , recursion_depth) - 32usize] ; [\"Offset of field: _ts::recursion_headroom\"] [:: std :: mem :: offset_of ! (_ts , recursion_headroom) - 36usize] ; [\"Offset of field: _ts::stackcheck_counter\"] [:: std :: mem :: offset_of ! (_ts , stackcheck_counter) - 40usize] ; [\"Offset of field: _ts::tracing\"] [:: std :: mem :: offset_of ! (_ts , tracing) - 44usize] ; [\"Offset of field: _ts::cframe\"] [:: std :: mem :: offset_of ! (_ts , cframe) - 48usize] ; [\"Offset of field: _ts::c_profilefunc\"] [:: std :: mem :: offset_of ! (_ts , c_profilefunc) - 56usize] ; [\"Offset of field: _ts::c_tracefunc\"] [:: std :: mem :: offset_of ! (_ts , c_tracefunc) - 64usize] ; [\"Offset of field: _ts::c_profileobj\"] [:: std :: mem :: offset_of ! (_ts , c_profileobj) - 72usize] ; [\"Offset of field: _ts::c_traceobj\"] [:: std :: mem :: offset_of ! (_ts , c_traceobj) - 80usize] ; [\"Offset of field: _ts::curexc_type\"] [:: std :: mem :: offset_of ! (_ts , curexc_type) - 88usize] ; [\"Offset of field: _ts::curexc_value\"] [:: std :: mem :: offset_of ! (_ts , curexc_value) - 96usize] ; [\"Offset of field: _ts::curexc_traceback\"] [:: std :: mem :: offset_of ! (_ts , curexc_traceback) - 104usize] ; [\"Offset of field: _ts::exc_state\"] [:: std :: mem :: offset_of ! (_ts , exc_state) - 112usize] ; [\"Offset of field: _ts::exc_info\"] [:: std :: mem :: offset_of ! (_ts , exc_info) - 144usize] ; [\"Offset of field: _ts::dict\"] [:: std :: mem :: offset_of ! (_ts , dict) - 152usize] ; [\"Offset of field: _ts::gilstate_counter\"] [:: std :: mem :: offset_of ! (_ts , gilstate_counter) - 160usize] ; [\"Offset of field: _ts::async_exc\"] [:: std :: mem :: offset_of ! (_ts , async_exc) - 168usize] ; [\"Offset of field: _ts::thread_id\"] [:: std :: mem :: offset_of ! (_ts , thread_id) - 176usize] ; [\"Offset of field: _ts::trash_delete_nesting\"] [:: std :: mem :: offset_of ! (_ts , trash_delete_nesting) - 184usize] ; [\"Offset of field: _ts::trash_delete_later\"] [:: std :: mem :: offset_of ! (_ts , trash_delete_later) - 192usize] ; [\"Offset of field: _ts::on_delete\"] [:: std :: mem :: offset_of ! (_ts , on_delete) - 200usize] ; [\"Offset of field: _ts::on_delete_data\"] [:: std :: mem :: offset_of ! (_ts , on_delete_data) - 208usize] ; [\"Offset of field: _ts::coroutine_origin_tracking_depth\"] [:: std :: mem :: offset_of ! (_ts , coroutine_origin_tracking_depth) - 216usize] ; [\"Offset of field: _ts::async_gen_firstiter\"] [:: std :: mem :: offset_of ! (_ts , async_gen_firstiter) - 224usize] ; [\"Offset of field: _ts::async_gen_finalizer\"] [:: std :: mem :: offset_of ! (_ts , async_gen_finalizer) - 232usize] ; [\"Offset of field: _ts::context\"] [:: std :: mem :: offset_of ! (_ts , context) - 240usize] ; [\"Offset of field: _ts::context_ver\"] [:: std :: mem :: offset_of ! (_ts , context_ver) - 248usize] ; [\"Offset of field: _ts::id\"] [:: std :: mem :: offset_of ! (_ts , id) - 256usize] ; [\"Offset of field: _ts::root_cframe\"] [:: std :: mem :: offset_of ! (_ts , root_cframe) - 264usize] ; } ; impl Default for _ts { fn default () -> Self { let mut s = :: std :: mem :: MaybeUninit :: < Self > :: uninit () ; unsafe { :: std :: ptr :: write_bytes (s . as_mut_ptr () , 0 , 1) ; s . assume_init () } } } pub type getter = :: std :: option :: Option < unsafe extern \"C\" fn (arg1 : * mut PyObject , arg2 : * mut :: std :: os :: raw :: c_void) -> * mut PyObject > ; pub type setter = :: std :: option :: Option < unsafe extern \"C\" fn (arg1 : * mut PyObject , arg2 : * mut PyObject , arg3 : * mut :: std :: os :: raw :: c_void) -> :: std :: os :: raw :: c_int > ; # [repr (C)] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct PyGetSetDef { pub name : * const :: std :: os :: raw :: c_char , pub get : getter , pub set : setter , pub doc : * const :: std :: os :: raw :: c_char , pub closure : * mut :: std :: os :: raw :: c_void , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of PyGetSetDef\"] [:: std :: mem :: size_of :: < PyGetSetDef > () - 40usize] ; [\"Alignment of PyGetSetDef\"] [:: std :: mem :: align_of :: < PyGetSetDef > () - 8usize] ; [\"Offset of field: PyGetSetDef::name\"] [:: std :: mem :: offset_of ! (PyGetSetDef , name) - 0usize] ; [\"Offset of field: PyGetSetDef::get\"] [:: std :: mem :: offset_of ! (PyGetSetDef , get) - 8usize] ; [\"Offset of field: PyGetSetDef::set\"] [:: std :: mem :: offset_of ! (PyGetSetDef , set) - 16usize] ; [\"Offset of field: PyGetSetDef::doc\"] [:: std :: mem :: offset_of ! (PyGetSetDef , doc) - 24usize] ; [\"Offset of field: PyGetSetDef::closure\"] [:: std :: mem :: offset_of ! (PyGetSetDef , closure) - 32usize] ; } ; impl Default for PyGetSetDef { fn default () -> Self { let mut s = :: std :: mem :: MaybeUninit :: < Self > :: uninit () ; unsafe { :: std :: ptr :: write_bytes (s . as_mut_ptr () , 0 , 1) ; s . assume_init () } } } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct PyMemberDef { _unused : [u8 ; 0] , } extern \"C\" { # [doc = \" Interface for threads.\\n\\nA module that plans to do a blocking system call (or something else\\nthat lasts a long time and doesn\'t touch Python data) can allow other\\nthreads to run as follows:\\n\\n...preparations here...\\nPy_BEGIN_ALLOW_THREADS\\n...blocking system call here...\\nPy_END_ALLOW_THREADS\\n...interpret result here...\\n\\nThe Py_BEGIN_ALLOW_THREADS/Py_END_ALLOW_THREADS pair expands to a\\n{}-surrounded block.\\nTo leave the block in the middle (e.g., with return), you must insert\\na line containing Py_BLOCK_THREADS before the return, e.g.\\n\\nif (...premature_exit...) {\\nPy_BLOCK_THREADS\\nPyErr_SetFromErrno(PyExc_OSError);\\nreturn NULL;\\n}\\n\\nAn alternative is:\\n\\nPy_BLOCK_THREADS\\nif (...premature_exit...) {\\nPyErr_SetFromErrno(PyExc_OSError);\\nreturn NULL;\\n}\\nPy_UNBLOCK_THREADS\\n\\nFor convenience, that the value of \'errno\' is restored across\\nPy_END_ALLOW_THREADS and Py_BLOCK_THREADS.\\n\\nWARNING: NEVER NEST CALLS TO Py_BEGIN_ALLOW_THREADS AND\\nPy_END_ALLOW_THREADS!!!\\n\\nNote that not yet all candidates have been converted to use this\\nmechanism!\"] pub fn PyEval_SaveThread () -> * mut PyThreadState ; } extern \"C\" { pub fn PyEval_RestoreThread (arg1 : * mut PyThreadState) ; } # [repr (u32)] # [doc = \" Build ID for initial major versions. Available in DML and Python.\"] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub enum sim_version_t { SIM_VERSION_7 = 7000 , SIM_VERSION_6 = 6000 , SIM_VERSION_5 = 5000 , SIM_VERSION_4_8 = 4500 , } extern \"C\" { pub fn mm_free (ptr : * mut :: std :: os :: raw :: c_void) ; } extern \"C\" { pub fn mm_malloc (size : usize , typesize : usize , type_ : * const :: std :: os :: raw :: c_char , file : * const :: std :: os :: raw :: c_char , line : :: std :: os :: raw :: c_int) -> * mut :: std :: os :: raw :: c_void ; } extern \"C\" { pub fn mm_malloc_low (size : usize , typesize : usize , type_ : * const :: std :: os :: raw :: c_char , file : * const :: std :: os :: raw :: c_char , line : :: std :: os :: raw :: c_int) -> * mut :: std :: os :: raw :: c_void ; } extern \"C\" { pub fn mm_zalloc (size : usize , typesize : usize , type_ : * const :: std :: os :: raw :: c_char , file : * const :: std :: os :: raw :: c_char , line : :: std :: os :: raw :: c_int) -> * mut :: std :: os :: raw :: c_void ; } extern \"C\" { pub fn mm_realloc (ptr : * mut :: std :: os :: raw :: c_void , size : usize , typesize : usize , type_ : * const :: std :: os :: raw :: c_char , file : * const :: std :: os :: raw :: c_char , line : :: std :: os :: raw :: c_int) -> * mut :: std :: os :: raw :: c_void ; } extern \"C\" { pub fn mm_strdup (str_ : * const :: std :: os :: raw :: c_char , file : * const :: std :: os :: raw :: c_char , line : :: std :: os :: raw :: c_int) -> * mut :: std :: os :: raw :: c_char ; } extern \"C\" { pub fn init_vtmem () ; } pub type socket_t = :: std :: os :: raw :: c_int ; pub type int8 = :: std :: os :: raw :: c_schar ; pub type uint8 = :: std :: os :: raw :: c_uchar ; pub type int16 = :: std :: os :: raw :: c_short ; pub type uint16 = :: std :: os :: raw :: c_ushort ; pub type int32 = :: std :: os :: raw :: c_int ; pub type uint32 = :: std :: os :: raw :: c_uint ; pub type uint64 = :: std :: os :: raw :: c_ulonglong ; pub type int64 = :: std :: os :: raw :: c_longlong ; extern \"C\" { # [doc = \" If init_local is defined, always declare it exported.\\nFIXME: This doesn\'t really belong here - but where? It must be in a file\\nthat is included everywhere init_local is defined.\"] pub fn init_local () ; } # [doc = \" <add-type id=\\\"tuple_int_string_t def\\\">\\n</add-type>\"] # [repr (C)] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct tuple_int_string_t { pub integer : :: std :: os :: raw :: c_int , pub string : * mut :: std :: os :: raw :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of tuple_int_string_t\"] [:: std :: mem :: size_of :: < tuple_int_string_t > () - 16usize] ; [\"Alignment of tuple_int_string_t\"] [:: std :: mem :: align_of :: < tuple_int_string_t > () - 8usize] ; [\"Offset of field: tuple_int_string_t::integer\"] [:: std :: mem :: offset_of ! (tuple_int_string_t , integer) - 0usize] ; [\"Offset of field: tuple_int_string_t::string\"] [:: std :: mem :: offset_of ! (tuple_int_string_t , string) - 8usize] ; } ; impl Default for tuple_int_string_t { fn default () -> Self { let mut s = :: std :: mem :: MaybeUninit :: < Self > :: uninit () ; unsafe { :: std :: ptr :: write_bytes (s . as_mut_ptr () , 0 , 1) ; s . assume_init () } } } # [doc = \" obsolete type; please use either buffer_t or bytes_t instead\"] # [repr (C)] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct byte_string_t { pub len : usize , pub str_ : * mut uint8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of byte_string_t\"] [:: std :: mem :: size_of :: < byte_string_t > () - 16usize] ; [\"Alignment of byte_string_t\"] [:: std :: mem :: align_of :: < byte_string_t > () - 8usize] ; [\"Offset of field: byte_string_t::len\"] [:: std :: mem :: offset_of ! (byte_string_t , len) - 0usize] ; [\"Offset of field: byte_string_t::str_\"] [:: std :: mem :: offset_of ! (byte_string_t , str_) - 8usize] ; } ; impl Default for byte_string_t { fn default () -> Self { let mut s = :: std :: mem :: MaybeUninit :: < Self > :: uninit () ; unsafe { :: std :: ptr :: write_bytes (s . as_mut_ptr () , 0 , 1) ; s . assume_init () } } } # [doc = \" <add-type id=\\\"buffer_t def\\\"></add-type>\"] # [repr (C)] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct buffer_t { pub data : * mut uint8 , pub len : usize , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of buffer_t\"] [:: std :: mem :: size_of :: < buffer_t > () - 16usize] ; [\"Alignment of buffer_t\"] [:: std :: mem :: align_of :: < buffer_t > () - 8usize] ; [\"Offset of field: buffer_t::data\"] [:: std :: mem :: offset_of ! (buffer_t , data) - 0usize] ; [\"Offset of field: buffer_t::len\"] [:: std :: mem :: offset_of ! (buffer_t , len) - 8usize] ; } ; impl Default for buffer_t { fn default () -> Self { let mut s = :: std :: mem :: MaybeUninit :: < Self > :: uninit () ; unsafe { :: std :: ptr :: write_bytes (s . as_mut_ptr () , 0 , 1) ; s . assume_init () } } } # [doc = \" <add-type id=\\\"bytes_t def\\\"></add-type>\"] # [repr (C)] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct bytes_t { pub data : * const uint8 , pub len : usize , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of bytes_t\"] [:: std :: mem :: size_of :: < bytes_t > () - 16usize] ; [\"Alignment of bytes_t\"] [:: std :: mem :: align_of :: < bytes_t > () - 8usize] ; [\"Offset of field: bytes_t::data\"] [:: std :: mem :: offset_of ! (bytes_t , data) - 0usize] ; [\"Offset of field: bytes_t::len\"] [:: std :: mem :: offset_of ! (bytes_t , len) - 8usize] ; } ; impl Default for bytes_t { fn default () -> Self { let mut s = :: std :: mem :: MaybeUninit :: < Self > :: uninit () ; unsafe { :: std :: ptr :: write_bytes (s . as_mut_ptr () , 0 , 1) ; s . assume_init () } } } # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct atomic_counter_t { pub c : uint32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of atomic_counter_t\"] [:: std :: mem :: size_of :: < atomic_counter_t > () - 4usize] ; [\"Alignment of atomic_counter_t\"] [:: std :: mem :: align_of :: < atomic_counter_t > () - 4usize] ; [\"Offset of field: atomic_counter_t::c\"] [:: std :: mem :: offset_of ! (atomic_counter_t , c) - 0usize] ; } ; # [doc = \" <add-type id=\\\"logical_address_t\\\">\\n</add-type>\"] pub type logical_address_t = uint64 ; # [doc = \" <add-type id=\\\"physical_address_t\\\">\\n</add-type>\"] pub type physical_address_t = uint64 ; # [doc = \" <add-type id=\\\"generic_address_t\\\">\\n</add-type>\"] pub type generic_address_t = uint64 ; # [doc = \" <add-type id=\\\"linear_address_t\\\">\\n</add-type>\"] pub type linear_address_t = uint64 ; # [doc = \" <add-type id=\\\"lang_void def\\\"></add-type>\"] pub type lang_void = :: std :: os :: raw :: c_void ; # [doc = \" <add-type id=\\\"conf conf_object_t\\\"></add-type>\"] pub type conf_object_t = conf_object ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct dbuffer { _unused : [u8 ; 0] , } # [doc = \" <add-type id=\\\"dbuffer_t def\\\"></add-type>\"] pub type dbuffer_t = dbuffer ; extern \"C\" { # [doc = \" Get a new buffer\"] pub fn new_dbuffer () -> * mut dbuffer_t ; } extern \"C\" { # [doc = \" Release a buffer.  The buffer should not be freed in any other\\nway.\"] pub fn dbuffer_free (dbuffer : * mut dbuffer_t) ; } extern \"C\" { # [doc = \" Get the length\"] pub fn dbuffer_len (dbuffer : * const dbuffer_t) -> usize ; } extern \"C\" { # [doc = \" Add static data.  This will make the buffer reference the data\\n pointed to directly, without making a copy.\\n\\n If the \'adopt\' flag is true, the control of the data block is\\n transferred to the dbuffer.  It is assumed to be a MM_MALLOCed\\n block that will be MM_FREEd when the dbuffer is freed.\\n\\n If the \'adopt\' flag is false, the dbuffer will not free the\\n memory. Instead it is up to the caller to free the memory, but it\\n must not do so before the dbuffer is freed.  Actually, this\\n reference could be copied to other dbuffers, so great care has to\\n be taken.  This should only be used for buffers that will only be\\n read, since it hard to know if a write operation will actually\\n write to the buffer or to a copy.\"] pub fn dbuffer_append_external_data (dbuffer : * mut dbuffer_t , data : * mut :: std :: os :: raw :: c_void , len : usize , adopt : bool) -> * mut uint8 ; } extern \"C\" { pub fn dbuffer_prepend_external_data (dbuffer : * mut dbuffer_t , data : * mut :: std :: os :: raw :: c_void , len : usize , adopt : bool) -> * mut uint8 ; } extern \"C\" { # [doc = \" Copy from one buffer to another.\"] pub fn dbuffer_copy_append (dst : * mut dbuffer_t , src : * mut dbuffer_t , offset : usize , len : usize) ; } extern \"C\" { pub fn dbuffer_copy_prepend (dst : * mut dbuffer_t , src : * mut dbuffer_t , offset : usize , len : usize) ; } extern \"C\" { # [doc = \" Add a repeating byte value\"] pub fn dbuffer_append_value (dbuffer : * mut dbuffer_t , value : :: std :: os :: raw :: c_int , len : usize) -> * mut uint8 ; } extern \"C\" { pub fn dbuffer_prepend_value (dbuffer : * mut dbuffer_t , value : :: std :: os :: raw :: c_int , len : usize) -> * mut uint8 ; } extern \"C\" { # [doc = \" Add uninitialized memory\"] pub fn dbuffer_append (dbuffer : * mut dbuffer_t , len : usize) -> * mut uint8 ; } extern \"C\" { pub fn dbuffer_prepend (dbuffer : * mut dbuffer_t , len : usize) -> * mut uint8 ; } extern \"C\" { pub fn dbuffer_insert (dbuffer : * mut dbuffer_t , offset : usize , len : usize) -> * mut uint8 ; } extern \"C\" { # [doc = \" Make the buffer smaller\"] pub fn dbuffer_remove (dbuffer : * mut dbuffer_t , offset : usize , remove_len : usize) ; } extern \"C\" { pub fn dbuffer_remove_head (dbuffer : * mut dbuffer_t , remove_len : usize) ; } extern \"C\" { pub fn dbuffer_remove_tail (dbuffer : * mut dbuffer_t , remove_len : usize) ; } extern \"C\" { # [doc = \" The pointer returned by dbuffer_read() may point to memory shared\\nwith other buffers, and should not be written to.\"] pub fn dbuffer_read (dbuffer : * mut dbuffer_t , offset : usize , len : usize) -> * const uint8 ; } extern \"C\" { pub fn dbuffer_read_some (dbuffer : * mut dbuffer_t , offset : usize , len : usize , actual_len : * mut usize) -> * const uint8 ; } extern \"C\" { pub fn dbuffer_read_all (dbuffer : * mut dbuffer_t) -> * const uint8 ; } extern \"C\" { # [doc = \" A buffer returned by dbuffer_update() is not used by any other\\ndbuffer_t and can be freely read from or written to.\"] pub fn dbuffer_update (dbuffer : * mut dbuffer_t , offset : usize , len : usize) -> * mut uint8 ; } extern \"C\" { pub fn dbuffer_update_some (dbuffer : * mut dbuffer_t , offset : usize , len : usize , actual_len : * mut usize) -> * mut uint8 ; } extern \"C\" { pub fn dbuffer_update_all (dbuffer : * mut dbuffer_t) -> * mut uint8 ; } extern \"C\" { # [doc = \" A buffer returned by dbuffer_replace() is not used by any other\\ndbuffer_t and may contain junk.  This function should only be used\\nwhen the whole buffer section will be overwritten with new data.\"] pub fn dbuffer_replace (dbuffer : * mut dbuffer_t , offset : usize , len : usize) -> * mut uint8 ; } extern \"C\" { pub fn dbuffer_replace_some (dbuffer : * mut dbuffer_t , offset : usize , len : usize , actual_len : * mut usize) -> * mut uint8 ; } extern \"C\" { pub fn dbuffer_replace_all (dbuffer : * mut dbuffer_t) -> * mut uint8 ; } extern \"C\" { # [doc = \" Make a full copy of another buffer\"] pub fn dbuffer_clone (dbuffer : * mut dbuffer_t) -> * mut dbuffer_t ; } extern \"C\" { # [doc = \" Split a buffer in two.  The data after \'offset\' is left in the old\\ndbuffer, and the data before \'offset\' is returned in a newly\\nallocated dbuffer.\"] pub fn dbuffer_split (dbuffer : * mut dbuffer_t , offset : usize) -> * mut dbuffer_t ; } extern \"C\" { pub fn dbuffer_clear (dbuffer : * mut dbuffer_t) ; } extern \"C\" { pub fn dbuffer_set (dbuffer : * mut dbuffer_t , val : :: std :: os :: raw :: c_int , len : usize) ; } extern \"C\" { pub fn dbuffer_bytes (dbuffer : * mut dbuffer_t) -> bytes_t ; } # [doc = \" Please do not access the members of this struct directly;\\nuse the accessor functions defined in this file.\\nInvariants:\\n- .s[.len] == \'\\\\0\'\\n- If .size == 0, then .len == 0 and .s points to a static null byte\\n- If .size > 0, then 0 <= .len < .size\\nand .s points to an allocation of .size bytes.\"] # [repr (C)] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct strbuf_t { # [doc = \" string, always 0-terminated\"] pub s : * mut :: std :: os :: raw :: c_char , # [doc = \" size of allocated buffer\"] pub size : :: std :: os :: raw :: c_uint , # [doc = \" current length\"] pub len : :: std :: os :: raw :: c_uint , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of strbuf_t\"] [:: std :: mem :: size_of :: < strbuf_t > () - 16usize] ; [\"Alignment of strbuf_t\"] [:: std :: mem :: align_of :: < strbuf_t > () - 8usize] ; [\"Offset of field: strbuf_t::s\"] [:: std :: mem :: offset_of ! (strbuf_t , s) - 0usize] ; [\"Offset of field: strbuf_t::size\"] [:: std :: mem :: offset_of ! (strbuf_t , size) - 8usize] ; [\"Offset of field: strbuf_t::len\"] [:: std :: mem :: offset_of ! (strbuf_t , len) - 12usize] ; } ; impl Default for strbuf_t { fn default () -> Self { let mut s = :: std :: mem :: MaybeUninit :: < Self > :: uninit () ; unsafe { :: std :: ptr :: write_bytes (s . as_mut_ptr () , 0 , 1) ; s . assume_init () } } } extern \"C\" { pub fn sb_new (s : * const :: std :: os :: raw :: c_char) -> strbuf_t ; } extern \"C\" { pub fn sb_newf (format : * const :: std :: os :: raw :: c_char , ...) -> strbuf_t ; } extern \"C\" { pub fn sb_free (sb : * mut strbuf_t) ; } extern \"C\" { pub fn sb_detach (sb : * mut strbuf_t) -> * mut :: std :: os :: raw :: c_char ; } extern \"C\" { pub fn sb_realloc (sb : * mut strbuf_t , minlen : :: std :: os :: raw :: c_uint) ; } extern \"C\" { pub fn sb_write (sb : * const strbuf_t , f : * mut FILE) -> :: std :: os :: raw :: c_int ; } extern \"C\" { pub fn sb_readline (sb : * mut strbuf_t , f : * mut FILE) -> bool ; } extern \"C\" { pub fn sb_vaddfmt (sb : * mut strbuf_t , format : * const :: std :: os :: raw :: c_char , va : * mut __va_list_tag) ; } extern \"C\" { pub fn sb_addfmt (sb : * mut strbuf_t , format : * const :: std :: os :: raw :: c_char , ...) ; } extern \"C\" { pub fn sb_vfmt (sb : * mut strbuf_t , format : * const :: std :: os :: raw :: c_char , va : * mut __va_list_tag) ; } extern \"C\" { pub fn sb_fmt (sb : * mut strbuf_t , format : * const :: std :: os :: raw :: c_char , ...) ; } extern \"C\" { pub fn sb_addesc (sb : * mut strbuf_t , c : :: std :: os :: raw :: c_char , delim : :: std :: os :: raw :: c_char) ; } extern \"C\" { pub fn assert_error (line : :: std :: os :: raw :: c_int , file : * const :: std :: os :: raw :: c_char , mod_date : * const :: std :: os :: raw :: c_char , message : * const :: std :: os :: raw :: c_char) -> ! ; } extern \"C\" { pub fn null_arg_error (func : * const :: std :: os :: raw :: c_char , arg : * const :: std :: os :: raw :: c_char) -> ! ; } extern \"C\" { pub fn fatal_error (fmt : * const :: std :: os :: raw :: c_char , ...) -> ! ; } # [doc = \" <add-type id=\\\"frags_t def\\\"></add-type>\"] pub type frags_t = frags ; # [doc = \" <add-type id=\\\"frags_it_t def\\\"></add-type>\"] pub type frags_it_t = frags_it ; # [repr (C)] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct frags_frag { pub start : * const uint8 , pub len : usize , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of frags_frag\"] [:: std :: mem :: size_of :: < frags_frag > () - 16usize] ; [\"Alignment of frags_frag\"] [:: std :: mem :: align_of :: < frags_frag > () - 8usize] ; [\"Offset of field: frags_frag::start\"] [:: std :: mem :: offset_of ! (frags_frag , start) - 0usize] ; [\"Offset of field: frags_frag::len\"] [:: std :: mem :: offset_of ! (frags_frag , len) - 8usize] ; } ; impl Default for frags_frag { fn default () -> Self { let mut s = :: std :: mem :: MaybeUninit :: < Self > :: uninit () ; unsafe { :: std :: ptr :: write_bytes (s . as_mut_ptr () , 0 , 1) ; s . assume_init () } } } pub type frags_frag_t = frags_frag ; # [repr (C)] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct frags { pub len : usize , pub nfrags : :: std :: os :: raw :: c_uint , pub fraglist : [frags_frag_t ; 8usize] , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of frags\"] [:: std :: mem :: size_of :: < frags > () - 144usize] ; [\"Alignment of frags\"] [:: std :: mem :: align_of :: < frags > () - 8usize] ; [\"Offset of field: frags::len\"] [:: std :: mem :: offset_of ! (frags , len) - 0usize] ; [\"Offset of field: frags::nfrags\"] [:: std :: mem :: offset_of ! (frags , nfrags) - 8usize] ; [\"Offset of field: frags::fraglist\"] [:: std :: mem :: offset_of ! (frags , fraglist) - 16usize] ; } ; impl Default for frags { fn default () -> Self { let mut s = :: std :: mem :: MaybeUninit :: < Self > :: uninit () ; unsafe { :: std :: ptr :: write_bytes (s . as_mut_ptr () , 0 , 1) ; s . assume_init () } } } # [repr (C)] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct frags_it { pub frag : * const frags_frag , pub skip : usize , pub left : usize , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of frags_it\"] [:: std :: mem :: size_of :: < frags_it > () - 24usize] ; [\"Alignment of frags_it\"] [:: std :: mem :: align_of :: < frags_it > () - 8usize] ; [\"Offset of field: frags_it::frag\"] [:: std :: mem :: offset_of ! (frags_it , frag) - 0usize] ; [\"Offset of field: frags_it::skip\"] [:: std :: mem :: offset_of ! (frags_it , skip) - 8usize] ; [\"Offset of field: frags_it::left\"] [:: std :: mem :: offset_of ! (frags_it , left) - 16usize] ; } ; impl Default for frags_it { fn default () -> Self { let mut s = :: std :: mem :: MaybeUninit :: < Self > :: uninit () ; unsafe { :: std :: ptr :: write_bytes (s . as_mut_ptr () , 0 , 1) ; s . assume_init () } } } extern \"C\" { # [doc = \" <add-fun id=\\\"frags_api\\\">\\n<short>extract the contents of a <type>frags_t</type></short>\\n\\nCopy the whole contents of <param>buf</param> to <param>vdst</param>. The\\ndestination buffer <param>vdst</param> should be large enough to contain\\nall data in <param>buf</param>.\\n\\nThis function is completely equivalent to <fun>frags_extract_slice()</fun>\\nwith an <param>offset</param> and a <param>length</param> covering the\\nwhole contents of the <type>frags_t</type>, and is provided for\\nconvenience.\\n\\n<di name=\\\"RETURN VALUE\\\">None</di>\\n<di name=\\\"EXECUTION CONTEXT\\\">Cell Context</di>\\n<di name=\\\"EXAMPLE\\\">\\n<insert id=\\\"fg_extract\\\"/>\\n</di>\\n<di name=\\\"SEE ALSO\\\">\\n<fun>frags_extract_8</fun>, <fun>frags_extract_slice</fun>,\\n<fun>frags_extract_alloc</fun>, <fun>frags_extract_slice_alloc</fun>\\n</di>\\n\\n</add-fun>\"] pub fn frags_extract (buf : * const frags_t , vdst : * mut :: std :: os :: raw :: c_void) ; } extern \"C\" { # [doc = \" <add-fun id=\\\"frags_api\\\">\\n<short>extract a slice of a <type>frags_t</type></short>\\n\\nCopy a slice of size <param>len</param>, starting at offset\\n<param>offset</param>, of the contents of <param>buf</param>, to\\n<param>vdst</param>. The destination buffer <param>vdst</param> should be\\nable to contain at least <param>len</param> bytes.\\n\\n<di name=\\\"RETURN VALUE\\\">None</di>\\n<di name=\\\"EXECUTION CONTEXT\\\">Cell Context</di>\\n<di name=\\\"EXAMPLE\\\">\\n<insert id=\\\"fg_extract_slice\\\"/>\\n</di>\\n<di name=\\\"SEE ALSO\\\">\\n<fun>frags_extract_8</fun>, <fun>frags_extract</fun>,\\n<fun>frags_extract_alloc</fun>, <fun>frags_extract_slice_alloc</fun>\\n</di>\\n\\n</add-fun>\"] pub fn frags_extract_slice (buf : * const frags_t , vdst : * mut :: std :: os :: raw :: c_void , offset : usize , len : usize) ; } extern \"C\" { # [doc = \" <add-fun id=\\\"frags_api\\\">\\n<short>return a copy of the contents of a <type>frags_t</type></short>\\n\\nReturn an allocated copy of the contents of <param>buf</param>. The buffer\\nreturned is allocated with <fun>MM_MALLOC()</fun>, and its ownership is\\npassed to the caller, which should free it when appropriate.\\n\\nThis function is equivalent to allocating a buffer of the correct size\\nwith <fun>MM_MALLOC()</fun> followed by a call to\\n<fun>frags_extract()</fun>, and is provided for convenience.\\n\\n<di name=\\\"RETURN VALUE\\\">A newly allocated copy of the contents</di>\\n<di name=\\\"EXECUTION CONTEXT\\\">Cell Context</di>\\n<di name=\\\"EXAMPLE\\\">\\n<insert id=\\\"fg_extract_alloc\\\"/>\\n</di>\\n<di name=\\\"SEE ALSO\\\">\\n<fun>frags_extract</fun>, <fun>frags_extract_slice</fun>,\\n<fun>frags_extract_slice_alloc</fun>\\n</di>\\n\\n</add-fun>\"] pub fn frags_extract_alloc (buf : * const frags_t) -> * mut :: std :: os :: raw :: c_void ; } extern \"C\" { # [doc = \" <add-fun id=\\\"frags_api\\\">\\n<short>return a partial copy of the contents of a\\n<type>frags_t</type></short>\\n\\nReturn an allocated copy of a slice of size <param>len</param>, starting\\nat offset <param>offset</param>, of the contents of\\n<param>buf</param>. The return value is allocated with\\n<fun>MM_MALLOC()</fun>, and its ownership is passed to the caller, which\\nshould free it when appropriate.\\n\\nThis function is equivalent to allocating a buffer of the correct size\\nwith <fun>MM_MALLOC()</fun> followed by a call to\\n<fun>frags_extract_slice()</fun>, and is provided for convenience.\\n\\n<di name=\\\"RETURN VALUE\\\">A newly allocated, partial copy of the data</di>\\n<di name=\\\"EXECUTION CONTEXT\\\">Cell Context</di>\\n<di name=\\\"EXAMPLE\\\">\\n<insert id=\\\"fg_extract_slice_alloc\\\"/>\\n</di>\\n<di name=\\\"SEE ALSO\\\">\\n<fun>frags_extract</fun>, <fun>frags_extract_slice</fun>,\\n<fun>frags_extract_alloc</fun>\\n</di>\\n\\n</add-fun>\"] pub fn frags_extract_slice_alloc (buf : * const frags_t , offset : usize , len : usize) -> * mut :: std :: os :: raw :: c_void ; } extern \"C\" { pub fn SIM_version () -> * const :: std :: os :: raw :: c_char ; } extern \"C\" { pub fn SIM_version_base () -> * const :: std :: os :: raw :: c_char ; } extern \"C\" { pub fn SIM_version_major () -> * const :: std :: os :: raw :: c_char ; } extern \"C\" { pub fn SIM_vmxmon_version () -> * mut :: std :: os :: raw :: c_char ; } extern \"C\" { pub fn SIM_copyright () -> * mut :: std :: os :: raw :: c_char ; } extern \"C\" { pub fn SIM_register_copyright (str_ : * const :: std :: os :: raw :: c_char) ; } extern \"C\" { pub fn SIM_license () ; } extern \"C\" { pub fn SIM_license_file (format : * const :: std :: os :: raw :: c_char) -> * mut :: std :: os :: raw :: c_char ; } extern \"C\" { pub fn VT_deprecate (depr_build_id : :: std :: os :: raw :: c_int , warn_msg : * const :: std :: os :: raw :: c_char , ref_msg : * const :: std :: os :: raw :: c_char) ; } extern \"C\" { pub fn OLD_copyright () ; } # [doc = \" <add-type id=\\\"api_function_t def\\\"></add-type>\"] pub type api_function_t = :: std :: option :: Option < unsafe extern \"C\" fn () > ; extern \"C\" { pub fn SIM_get_api_function (function : * const :: std :: os :: raw :: c_char) -> api_function_t ; } # [doc = \" <add id=\\\"attr_value_t DOC\\\">\\n<name>attr_value_t</name>\\n<ndx>attr_value_t</ndx>\\n<doc>\\n<doc-item name=\\\"NAME\\\">attr_value_t</doc-item>\\n<doc-item name=\\\"DESCRIPTION\\\">\\nThe <type>attr_value_t</type> is the type used for all values in the\\nconfiguration system. It is a tagged union.\\n\\nThe following table shows the different types of values, the type of their\\npayload in C, and the corresponding Python types:\\n\\n<center>\\n<table border=\\\"true\\\" long=\\\"false\\\">\\n<tr>\\n<td><b>Kind</b></td> <td><b>C payload</b></td> <td><b>Python type</b></td>\\n</tr>\\n<tr><td>Invalid</td> <td>-</td> <td>raises exception</td></tr>\\n<tr><td>String</td><td>const char *</td> <td>str or unicode</td></tr>\\n<tr><td>Integer</td> <td>int64 or uint64</td> <td>int or long</td></tr>\\n<tr><td>Boolean</td> <td>bool</td> <td>bool</td></tr>\\n<tr><td>Floating</td><td>double</td> <td>float</td></tr>\\n<tr><td>Object</td>\\n<td>conf_object_t *</td> <td>simics.conf_object_t</td></tr>\\n<tr><td>List</td>\\n<td>array of attr_value_t</td> <td>list</td></tr>\\n<tr><td>Dict</td>\\n<td>array of pairs of attr_value_t</td> <td>dict</td></tr>\\n<tr><td>Data</td>\\n<td>array of bytes</td> <td>tuple of small integers</td></tr>\\n<tr><td>Nil</td>     <td>-</td>           <td>None</td></tr>\\n</table>\\n</center>\\n\\nThe members inside <type>attr_value_t</type> should not be accessed\\ndirectly. Instead, use the corresponding functions for each type:\\n\\n<table>\\n<tr>\\n<td>Constructor</td> <td><fun>SIM_make_attr_<var>TYPE</var></fun></td>\\n</tr>\\n<tr><td>Destructor</td><td><fun>SIM_attr_free</fun></td></tr>\\n<tr>\\n<td>Type predicate</td> <td><fun>SIM_attr_is_<var>TYPE</var></fun></td>\\n</tr>\\n<tr><td>Access</td><td><fun>SIM_attr_<var>TYPE</var></fun></td></tr>\\n</table>\\n\\nValues of type List and Dict can be modified using\\n<fun>SIM_attr_<var>TYPE</var>_set_item</fun> and\\n<fun>SIM_attr_<var>TYPE</var>_resize</fun>.\\n\\nNone of these functions are available or needed in Python. The\\n<type>attr_value_t</type> values are translated to the ordinary Python\\nvalues as shown in the table above.\\n\\nSome values may have data in separate heap allocations. These are normally\\nmanaged by the respective constructor and destructor methods, but careless\\ncopying of values may introduce aliasing errors. Use\\n<fun>SIM_attr_copy</fun> to duplicate values. Again, this is of no concern\\nin Python.\\n\\n</doc-item>\\n<doc-item name=\\\"SEE ALSO\\\">\\n<fun>SIM_make_attr_int64</fun>, <fun>SIM_attr_is_integer</fun>,\\n<fun>SIM_attr_integer</fun>, <fun>SIM_attr_free</fun>,\\n<fun>SIM_attr_list_resize</fun>, <fun>SIM_attr_list_set_item</fun>,\\n<fun>SIM_attr_dict_resize</fun>, <fun>SIM_attr_dict_set_item</fun>,\\n<fun>SIM_attr_copy</fun>\\n</doc-item>\\n</doc>\\n</add>\"] pub type attr_value_t = attr_value ; # [repr (u32)] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub enum attr_kind_t { Sim_Val_Invalid = 0 , Sim_Val_String = 1 , Sim_Val_Integer = 2 , Sim_Val_Floating = 3 , Sim_Val_List = 4 , Sim_Val_Data = 5 , Sim_Val_Nil = 6 , Sim_Val_Object = 7 , Sim_Val_Dict = 8 , Sim_Val_Boolean = 9 , # [doc = \" Internal use only\"] Sim_Val_Py_Object = 10 , # [doc = \" Internal use only\"] Sim_Val_Unresolved_Object = 11 , } pub type attr_dict_pair_t = attr_dict_pair ; # [repr (C)] # [derive (Copy , Clone)] pub struct attr_value { pub private_kind : attr_kind_t , pub private_size : :: std :: os :: raw :: c_uint , pub private_u : attr_value__bindgen_ty_1 , } # [repr (C)] # [derive (Copy , Clone)] pub union attr_value__bindgen_ty_1 { # [doc = \" Sim_Val_String\"] pub string : * mut :: std :: os :: raw :: c_char , # [doc = \" Sim_Val_Integer\"] pub integer : int64 , # [doc = \" Sim_Val_Boolean\"] pub boolean : bool , # [doc = \" Sim_Val_Floating\"] pub floating : f64 , # [doc = \" [size]\"] pub list : * mut attr_value , # [doc = \" [size]\"] pub dict : * mut attr_dict_pair , # [doc = \" [size]\"] pub data : * mut uint8 , # [doc = \" Sim_Val_Object\"] pub object : * mut conf_object , # [doc = \" A Python object, currently only pre_conf_object\"] pub py_object : * mut _object , # [doc = \" Sim_Val_Unresolved_Object (internal use only)\"] pub uobject : * mut :: std :: os :: raw :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of attr_value__bindgen_ty_1\"] [:: std :: mem :: size_of :: < attr_value__bindgen_ty_1 > () - 8usize] ; [\"Alignment of attr_value__bindgen_ty_1\"] [:: std :: mem :: align_of :: < attr_value__bindgen_ty_1 > () - 8usize] ; [\"Offset of field: attr_value__bindgen_ty_1::string\"] [:: std :: mem :: offset_of ! (attr_value__bindgen_ty_1 , string) - 0usize] ; [\"Offset of field: attr_value__bindgen_ty_1::integer\"] [:: std :: mem :: offset_of ! (attr_value__bindgen_ty_1 , integer) - 0usize] ; [\"Offset of field: attr_value__bindgen_ty_1::boolean\"] [:: std :: mem :: offset_of ! (attr_value__bindgen_ty_1 , boolean) - 0usize] ; [\"Offset of field: attr_value__bindgen_ty_1::floating\"] [:: std :: mem :: offset_of ! (attr_value__bindgen_ty_1 , floating) - 0usize] ; [\"Offset of field: attr_value__bindgen_ty_1::list\"] [:: std :: mem :: offset_of ! (attr_value__bindgen_ty_1 , list) - 0usize] ; [\"Offset of field: attr_value__bindgen_ty_1::dict\"] [:: std :: mem :: offset_of ! (attr_value__bindgen_ty_1 , dict) - 0usize] ; [\"Offset of field: attr_value__bindgen_ty_1::data\"] [:: std :: mem :: offset_of ! (attr_value__bindgen_ty_1 , data) - 0usize] ; [\"Offset of field: attr_value__bindgen_ty_1::object\"] [:: std :: mem :: offset_of ! (attr_value__bindgen_ty_1 , object) - 0usize] ; [\"Offset of field: attr_value__bindgen_ty_1::py_object\"] [:: std :: mem :: offset_of ! (attr_value__bindgen_ty_1 , py_object) - 0usize] ; [\"Offset of field: attr_value__bindgen_ty_1::uobject\"] [:: std :: mem :: offset_of ! (attr_value__bindgen_ty_1 , uobject) - 0usize] ; } ; impl Default for attr_value__bindgen_ty_1 { fn default () -> Self { let mut s = :: std :: mem :: MaybeUninit :: < Self > :: uninit () ; unsafe { :: std :: ptr :: write_bytes (s . as_mut_ptr () , 0 , 1) ; s . assume_init () } } } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of attr_value\"] [:: std :: mem :: size_of :: < attr_value > () - 16usize] ; [\"Alignment of attr_value\"] [:: std :: mem :: align_of :: < attr_value > () - 8usize] ; [\"Offset of field: attr_value::private_kind\"] [:: std :: mem :: offset_of ! (attr_value , private_kind) - 0usize] ; [\"Offset of field: attr_value::private_size\"] [:: std :: mem :: offset_of ! (attr_value , private_size) - 4usize] ; [\"Offset of field: attr_value::private_u\"] [:: std :: mem :: offset_of ! (attr_value , private_u) - 8usize] ; } ; impl Default for attr_value { fn default () -> Self { let mut s = :: std :: mem :: MaybeUninit :: < Self > :: uninit () ; unsafe { :: std :: ptr :: write_bytes (s . as_mut_ptr () , 0 , 1) ; s . assume_init () } } } # [repr (C)] # [derive (Copy , Clone)] pub struct attr_dict_pair { pub key : attr_value , pub value : attr_value , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of attr_dict_pair\"] [:: std :: mem :: size_of :: < attr_dict_pair > () - 32usize] ; [\"Alignment of attr_dict_pair\"] [:: std :: mem :: align_of :: < attr_dict_pair > () - 8usize] ; [\"Offset of field: attr_dict_pair::key\"] [:: std :: mem :: offset_of ! (attr_dict_pair , key) - 0usize] ; [\"Offset of field: attr_dict_pair::value\"] [:: std :: mem :: offset_of ! (attr_dict_pair , value) - 16usize] ; } ; impl Default for attr_dict_pair { fn default () -> Self { let mut s = :: std :: mem :: MaybeUninit :: < Self > :: uninit () ; unsafe { :: std :: ptr :: write_bytes (s . as_mut_ptr () , 0 , 1) ; s . assume_init () } } } extern \"C\" { # [doc = \" attr_value_t accessors and constructors\"] pub fn VT_bad_attr_type (function : * const :: std :: os :: raw :: c_char , wanted : attr_kind_t , actual : attr_value_t) -> ! ; } extern \"C\" { pub fn VT_report_bad_attr_type (function : * const :: std :: os :: raw :: c_char , wanted : attr_kind_t , actual : attr_value_t) ; } extern \"C\" { pub fn SIM_make_attr_list_vararg (length : :: std :: os :: raw :: c_uint , va : * mut __va_list_tag) -> attr_value_t ; } extern \"C\" { pub fn SIM_make_attr_list (length : :: std :: os :: raw :: c_uint , ...) -> attr_value_t ; } extern \"C\" { pub fn SIM_alloc_attr_list (length : :: std :: os :: raw :: c_uint) -> attr_value_t ; } extern \"C\" { pub fn SIM_make_attr_string (str_ : * const :: std :: os :: raw :: c_char) -> attr_value_t ; } extern \"C\" { pub fn SIM_make_attr_data (size : usize , data : * const :: std :: os :: raw :: c_void) -> attr_value_t ; } extern \"C\" { pub fn SIM_alloc_attr_dict (length : :: std :: os :: raw :: c_uint) -> attr_value_t ; } extern \"C\" { pub fn SIM_attr_list_set_item (attr : * mut attr_value_t , index : :: std :: os :: raw :: c_uint , elem : attr_value_t) ; } extern \"C\" { pub fn SIM_attr_list_resize (attr : * mut attr_value_t , newsize : :: std :: os :: raw :: c_uint) ; } extern \"C\" { pub fn SIM_attr_dict_set_item (attr : * mut attr_value_t , index : :: std :: os :: raw :: c_uint , key : attr_value_t , value : attr_value_t) ; } extern \"C\" { pub fn SIM_attr_dict_resize (attr : * mut attr_value_t , newsize : :: std :: os :: raw :: c_uint) ; } extern \"C\" { pub fn SIM_attr_copy (val : attr_value_t) -> attr_value_t ; } extern \"C\" { pub fn SIM_attr_scanf (list : * mut attr_value_t , fmt : * const :: std :: os :: raw :: c_char , ...) -> bool ; } extern \"C\" { pub fn SIM_ascanf (list : * mut attr_value_t , fmt : * const :: std :: os :: raw :: c_char , ...) -> bool ; } extern \"C\" { pub fn VT_make_attr (fmt : * const :: std :: os :: raw :: c_char , ...) -> attr_value_t ; } extern \"C\" { pub fn SIM_attr_free (value : * mut attr_value_t) ; } extern \"C\" { pub fn SIM_free_attribute (value : attr_value_t) ; } extern \"C\" { pub fn VT_attr_values_equal (a1 : attr_value_t , a2 : attr_value_t) -> bool ; } extern \"C\" { pub fn VT_run_unrestricted_python (obj : * mut conf_object_t , func : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , param : * mut lang_void) > , user_data : * mut lang_void) ; } extern \"C\" { pub fn SIM_run_unrestricted (obj : * mut conf_object_t , func : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , param : * mut lang_void) > , user_data : * mut lang_void) ; } # [doc = \" Please do not access the members of this struct directly\"] pub type sobject_t = sobject ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct sclass { _unused : [u8 ; 0] , } pub type sclass_t = sclass ; # [doc = \" Please do not access the members of this struct directly\"] # [repr (C)] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct sobject { pub isa : * mut sclass_t , pub props : * mut proplist , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of sobject\"] [:: std :: mem :: size_of :: < sobject > () - 16usize] ; [\"Alignment of sobject\"] [:: std :: mem :: align_of :: < sobject > () - 8usize] ; [\"Offset of field: sobject::isa\"] [:: std :: mem :: offset_of ! (sobject , isa) - 0usize] ; [\"Offset of field: sobject::props\"] [:: std :: mem :: offset_of ! (sobject , props) - 8usize] ; } ; impl Default for sobject { fn default () -> Self { let mut s = :: std :: mem :: MaybeUninit :: < Self > :: uninit () ; unsafe { :: std :: ptr :: write_bytes (s . as_mut_ptr () , 0 , 1) ; s . assume_init () } } } impl attr_attr_t { pub const Sim_Init_Phase_0 : attr_attr_t = attr_attr_t :: Sim_Attr_Required ; } impl attr_attr_t { pub const Sim_Init_Phase_Mask : attr_attr_t = attr_attr_t :: Sim_Attr_Session ; } # [repr (u32)] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub enum attr_attr_t { Sim_Attr_Required = 0 , Sim_Attr_Optional = 1 , Sim_Attr_Session = 3 , Sim_Attr_Pseudo = 4 , Sim_Attr_Integer_Indexed = 4096 , Sim_Attr_String_Indexed = 8192 , Sim_Attr_List_Indexed = 16384 , Sim_Attr_Persistent = 131072 , # [doc = \" The members below are for internal use only.\"] Sim_Attr_Flag_Mask = 255 , # [doc = \" The members below are for internal use only.\"] Sim_Init_Phase_Shift = 8 , # [doc = \" The members below are for internal use only.\"] Sim_Init_Phase_1 = 256 , # [doc = \" The members below are for internal use only.\"] Sim_Init_Phase_Bits = 2 , # [doc = \" The members below are for internal use only.\"] Sim_Init_Phase_Pre1 = 768 , # [doc = \" The members below are for internal use only.\"] Sim_Attr_Class = 32768 , # [doc = \" To prevent attribute from being visible in documentation,\\nuse Sim_Attr_Internal.\"] Sim_Attr_Internal = 65536 , # [doc = \" To prevent attribute from being visible in documentation,\\nuse Sim_Attr_Internal.\"] Sim_Attr_Doc = 1048576 , # [doc = \" To prevent attribute from being visible in documentation,\\nuse Sim_Attr_Internal.\"] Sim_Attr_CB_Data = 2097152 , # [doc = \" To prevent attribute from being visible in documentation,\\nuse Sim_Attr_Internal.\"] Sim_Attr_Legacy = 4194304 , # [doc = \" To prevent attribute from being visible in documentation,\\nuse Sim_Attr_Internal.\"] Sim_Attr_Weak_Ref = 8388608 , # [doc = \" To prevent attribute from being visible in documentation,\\nuse Sim_Attr_Internal.\"] Sim_Attr_Read_Only = 262144 , # [doc = \" To prevent attribute from being visible in documentation,\\nuse Sim_Attr_Internal.\"] Sim_Attr_Write_Only = 524288 , } # [repr (u32)] # [doc = \" <add-type id=\\\"conf set_error_t\\\"></add-type>\"] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub enum set_error_t { Sim_Set_Ok = 0 , Sim_Set_Object_Not_Found = 1 , Sim_Set_Interface_Not_Found = 2 , Sim_Set_Illegal_Value = 3 , Sim_Set_Illegal_Type = 4 , Sim_Set_Illegal_Index = 5 , Sim_Set_Attribute_Not_Found = 6 , Sim_Set_Not_Writable = 7 , # [doc = \" number of error types\"] Sim_Set_Error_Types = 8 , } # [repr (u32)] # [doc = \" <add-type id=\\\"conf class_info_t\\\">\\n</add-type>\"] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub enum class_kind_t { # [doc = \" object is saved at checkpoints\"] Sim_Class_Kind_Vanilla = 0 , # [doc = \" object is saved as part of a\\n session only\"] Sim_Class_Kind_Session = 1 , # [doc = \" object is never saved\"] Sim_Class_Kind_Pseudo = 2 , # [doc = \" extension class\\n(see SIM_extend_class)\"] Sim_Class_Kind_Extension = 3 , } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct conf_class { _unused : [u8 ; 0] , } pub type conf_class_t = conf_class ; # [repr (C)] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct class_data { pub alloc_object : :: std :: option :: Option < unsafe extern \"C\" fn (data : * mut lang_void) -> * mut conf_object_t > , pub init_object : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , data : * mut lang_void) -> * mut lang_void > , pub finalize_instance : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t) > , pub pre_delete_instance : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t) > , pub delete_instance : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t) -> :: std :: os :: raw :: c_int > , pub description : * const :: std :: os :: raw :: c_char , pub class_desc : * const :: std :: os :: raw :: c_char , pub kind : class_kind_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of class_data\"] [:: std :: mem :: size_of :: < class_data > () - 64usize] ; [\"Alignment of class_data\"] [:: std :: mem :: align_of :: < class_data > () - 8usize] ; [\"Offset of field: class_data::alloc_object\"] [:: std :: mem :: offset_of ! (class_data , alloc_object) - 0usize] ; [\"Offset of field: class_data::init_object\"] [:: std :: mem :: offset_of ! (class_data , init_object) - 8usize] ; [\"Offset of field: class_data::finalize_instance\"] [:: std :: mem :: offset_of ! (class_data , finalize_instance) - 16usize] ; [\"Offset of field: class_data::pre_delete_instance\"] [:: std :: mem :: offset_of ! (class_data , pre_delete_instance) - 24usize] ; [\"Offset of field: class_data::delete_instance\"] [:: std :: mem :: offset_of ! (class_data , delete_instance) - 32usize] ; [\"Offset of field: class_data::description\"] [:: std :: mem :: offset_of ! (class_data , description) - 40usize] ; [\"Offset of field: class_data::class_desc\"] [:: std :: mem :: offset_of ! (class_data , class_desc) - 48usize] ; [\"Offset of field: class_data::kind\"] [:: std :: mem :: offset_of ! (class_data , kind) - 56usize] ; } ; impl Default for class_data { fn default () -> Self { let mut s = :: std :: mem :: MaybeUninit :: < Self > :: uninit () ; unsafe { :: std :: ptr :: write_bytes (s . as_mut_ptr () , 0 , 1) ; s . assume_init () } } } pub type class_data_t = class_data ; # [repr (C)] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct class_info { pub alloc : :: std :: option :: Option < unsafe extern \"C\" fn (cls : * mut conf_class_t) -> * mut conf_object_t > , pub init : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t) -> * mut lang_void > , pub finalize : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t) > , pub objects_finalized : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t) > , pub deinit : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t) > , pub dealloc : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t) > , pub description : * const :: std :: os :: raw :: c_char , pub short_desc : * const :: std :: os :: raw :: c_char , pub kind : class_kind_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of class_info\"] [:: std :: mem :: size_of :: < class_info > () - 72usize] ; [\"Alignment of class_info\"] [:: std :: mem :: align_of :: < class_info > () - 8usize] ; [\"Offset of field: class_info::alloc\"] [:: std :: mem :: offset_of ! (class_info , alloc) - 0usize] ; [\"Offset of field: class_info::init\"] [:: std :: mem :: offset_of ! (class_info , init) - 8usize] ; [\"Offset of field: class_info::finalize\"] [:: std :: mem :: offset_of ! (class_info , finalize) - 16usize] ; [\"Offset of field: class_info::objects_finalized\"] [:: std :: mem :: offset_of ! (class_info , objects_finalized) - 24usize] ; [\"Offset of field: class_info::deinit\"] [:: std :: mem :: offset_of ! (class_info , deinit) - 32usize] ; [\"Offset of field: class_info::dealloc\"] [:: std :: mem :: offset_of ! (class_info , dealloc) - 40usize] ; [\"Offset of field: class_info::description\"] [:: std :: mem :: offset_of ! (class_info , description) - 48usize] ; [\"Offset of field: class_info::short_desc\"] [:: std :: mem :: offset_of ! (class_info , short_desc) - 56usize] ; [\"Offset of field: class_info::kind\"] [:: std :: mem :: offset_of ! (class_info , kind) - 64usize] ; } ; impl Default for class_info { fn default () -> Self { let mut s = :: std :: mem :: MaybeUninit :: < Self > :: uninit () ; unsafe { :: std :: ptr :: write_bytes (s . as_mut_ptr () , 0 , 1) ; s . assume_init () } } } pub type class_info_t = class_info ; # [doc = \" Opaque struct - do not access members directly!\"] # [repr (C)] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct conf_object { pub sobj : sobject_t , pub instance_data : * mut :: std :: os :: raw :: c_void , pub log : * mut log_info , pub conf : * mut confdata , pub extension_data : * mut extension_data , pub thread_domain : * mut thread_domain , pub reserved : [* mut :: std :: os :: raw :: c_void ; 3usize] , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of conf_object\"] [:: std :: mem :: size_of :: < conf_object > () - 80usize] ; [\"Alignment of conf_object\"] [:: std :: mem :: align_of :: < conf_object > () - 8usize] ; [\"Offset of field: conf_object::sobj\"] [:: std :: mem :: offset_of ! (conf_object , sobj) - 0usize] ; [\"Offset of field: conf_object::instance_data\"] [:: std :: mem :: offset_of ! (conf_object , instance_data) - 16usize] ; [\"Offset of field: conf_object::log\"] [:: std :: mem :: offset_of ! (conf_object , log) - 24usize] ; [\"Offset of field: conf_object::conf\"] [:: std :: mem :: offset_of ! (conf_object , conf) - 32usize] ; [\"Offset of field: conf_object::extension_data\"] [:: std :: mem :: offset_of ! (conf_object , extension_data) - 40usize] ; [\"Offset of field: conf_object::thread_domain\"] [:: std :: mem :: offset_of ! (conf_object , thread_domain) - 48usize] ; [\"Offset of field: conf_object::reserved\"] [:: std :: mem :: offset_of ! (conf_object , reserved) - 56usize] ; } ; impl Default for conf_object { fn default () -> Self { let mut s = :: std :: mem :: MaybeUninit :: < Self > :: uninit () ; unsafe { :: std :: ptr :: write_bytes (s . as_mut_ptr () , 0 , 1) ; s . assume_init () } } } extern \"C\" { # [doc = \" Register new class. Returns NULL on failure.\"] pub fn SIM_register_class (name : * const :: std :: os :: raw :: c_char , class_data : * const class_data_t) -> * mut conf_class_t ; } extern \"C\" { pub fn SIM_register_class_alias (alias : * const :: std :: os :: raw :: c_char , name : * const :: std :: os :: raw :: c_char) ; } extern \"C\" { pub fn SIM_create_class (name : * const :: std :: os :: raw :: c_char , class_info : * const class_info_t) -> * mut conf_class_t ; } extern \"C\" { pub fn SIM_extend_class (cls : * mut conf_class_t , ext : * mut conf_class_t) ; } extern \"C\" { pub fn SIM_copy_class (name : * const :: std :: os :: raw :: c_char , src_cls : * const conf_class_t , desc : * const :: std :: os :: raw :: c_char) -> * mut conf_class_t ; } extern \"C\" { pub fn SIM_get_class_name (class_data : * const conf_class_t) -> * const :: std :: os :: raw :: c_char ; } extern \"C\" { pub fn VT_set_constructor_data (cls : * mut conf_class_t , data : * mut lang_void) ; } extern \"C\" { pub fn SIM_set_class_data (cls : * mut conf_class_t , data : * mut lang_void) ; } extern \"C\" { pub fn SIM_get_class_data (cls : * mut conf_class_t) -> * mut lang_void ; } extern \"C\" { pub fn SIM_require_object (obj : * mut conf_object_t) ; } extern \"C\" { pub fn SIM_object_name (obj : * const conf_object_t) -> * const :: std :: os :: raw :: c_char ; } extern \"C\" { pub fn SIM_object_id (obj : * const conf_object_t) -> * const :: std :: os :: raw :: c_char ; } extern \"C\" { pub fn SIM_object_is_configured (obj : * const conf_object_t) -> bool ; } extern \"C\" { pub fn SIM_set_object_configured (obj : * mut conf_object_t) ; } extern \"C\" { pub fn SIM_object_data (obj : * mut conf_object_t) -> * mut lang_void ; } extern \"C\" { pub fn SIM_extension_data (obj : * mut conf_object_t , cls : * mut conf_class_t) -> * mut lang_void ; } extern \"C\" { pub fn SIM_port_object_parent (obj : * mut conf_object_t) -> * mut conf_object_t ; } extern \"C\" { pub fn SIM_object_parent (obj : * mut conf_object_t) -> * mut conf_object_t ; } extern \"C\" { pub fn SIM_object_descendant (obj : * mut conf_object_t , relname : * const :: std :: os :: raw :: c_char) -> * mut conf_object_t ; } extern \"C\" { pub fn VT_object_iterator (obj : * mut conf_object_t) -> * mut _object ; } extern \"C\" { pub fn VT_shallow_object_iterator (obj : * mut conf_object_t , expand_arrays : bool) -> * mut _object ; } # [repr (C)] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct object_iter_t { # [doc = \" Opaque fields. Do not access directly.\"] pub node : * mut conf_object_t , pub depth : :: std :: os :: raw :: c_uint , pub kind : :: std :: os :: raw :: c_uint , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of object_iter_t\"] [:: std :: mem :: size_of :: < object_iter_t > () - 16usize] ; [\"Alignment of object_iter_t\"] [:: std :: mem :: align_of :: < object_iter_t > () - 8usize] ; [\"Offset of field: object_iter_t::node\"] [:: std :: mem :: offset_of ! (object_iter_t , node) - 0usize] ; [\"Offset of field: object_iter_t::depth\"] [:: std :: mem :: offset_of ! (object_iter_t , depth) - 8usize] ; [\"Offset of field: object_iter_t::kind\"] [:: std :: mem :: offset_of ! (object_iter_t , kind) - 12usize] ; } ; impl Default for object_iter_t { fn default () -> Self { let mut s = :: std :: mem :: MaybeUninit :: < Self > :: uninit () ; unsafe { :: std :: ptr :: write_bytes (s . as_mut_ptr () , 0 , 1) ; s . assume_init () } } } extern \"C\" { pub fn SIM_object_iterator (obj : * mut conf_object_t) -> object_iter_t ; } extern \"C\" { pub fn SIM_shallow_object_iterator (obj : * mut conf_object_t) -> object_iter_t ; } extern \"C\" { pub fn SIM_object_iterator_next (iter : * mut object_iter_t) -> * mut conf_object_t ; } # [doc = \" <add-type id=\\\"conf get_attr_t\\\">\\n</add-type>\"] pub type get_attr_t = :: std :: option :: Option < unsafe extern \"C\" fn (ptr : * mut lang_void , obj : * mut conf_object_t , idx : * mut attr_value_t) -> attr_value_t > ; # [doc = \" <add-type id=\\\"conf get_class_attr_t\\\">\\n</add-type>\"] pub type get_class_attr_t = :: std :: option :: Option < unsafe extern \"C\" fn (ptr : * mut lang_void , c : * mut conf_class_t , idx : * mut attr_value_t) -> attr_value_t > ; # [doc = \" <add-type id=\\\"conf set_attr_t\\\">  </add-type>\"] pub type set_attr_t = :: std :: option :: Option < unsafe extern \"C\" fn (ptr : * mut lang_void , obj : * mut conf_object_t , val : * mut attr_value_t , idx : * mut attr_value_t) -> set_error_t > ; # [doc = \" <add-type id=\\\"conf set_class_attr_t\\\">\\n</add-type>\"] pub type set_class_attr_t = :: std :: option :: Option < unsafe extern \"C\" fn (ptr : * mut lang_void , c : * mut conf_class_t , val : * mut attr_value_t , idx : * mut attr_value_t) -> set_error_t > ; extern \"C\" { # [doc = \" Register a typed attribute (with an optionally typed index).\"] pub fn SIM_register_typed_attribute (cls : * mut conf_class_t , name : * const :: std :: os :: raw :: c_char , get_attr : get_attr_t , user_data_get : * mut lang_void , set_attr : set_attr_t , user_data_set : * mut lang_void , attr : attr_attr_t , type_ : * const :: std :: os :: raw :: c_char , idx_type : * const :: std :: os :: raw :: c_char , desc : * const :: std :: os :: raw :: c_char) -> :: std :: os :: raw :: c_int ; } extern \"C\" { pub fn SIM_register_typed_class_attribute (cls : * mut conf_class_t , name : * const :: std :: os :: raw :: c_char , get_attr : get_class_attr_t , user_data_get : * mut lang_void , set_attr : set_class_attr_t , user_data_set : * mut lang_void , attr : attr_attr_t , type_ : * const :: std :: os :: raw :: c_char , idx_type : * const :: std :: os :: raw :: c_char , desc : * const :: std :: os :: raw :: c_char) -> :: std :: os :: raw :: c_int ; } extern \"C\" { pub fn SIM_register_attribute (cls : * mut conf_class_t , name : * const :: std :: os :: raw :: c_char , get_attr : :: std :: option :: Option < unsafe extern \"C\" fn (arg1 : * mut conf_object_t) -> attr_value_t > , set_attr : :: std :: option :: Option < unsafe extern \"C\" fn (arg1 : * mut conf_object_t , arg2 : * mut attr_value_t) -> set_error_t > , attr : attr_attr_t , type_ : * const :: std :: os :: raw :: c_char , desc : * const :: std :: os :: raw :: c_char) ; } extern \"C\" { pub fn SIM_register_class_attribute (cls : * mut conf_class_t , name : * const :: std :: os :: raw :: c_char , get_attr : :: std :: option :: Option < unsafe extern \"C\" fn (arg1 : * mut conf_class_t) -> attr_value_t > , set_attr : :: std :: option :: Option < unsafe extern \"C\" fn (arg1 : * mut conf_class_t , arg2 : * mut attr_value_t) -> set_error_t > , attr : attr_attr_t , type_ : * const :: std :: os :: raw :: c_char , desc : * const :: std :: os :: raw :: c_char) ; } extern \"C\" { pub fn SIM_register_attribute_with_user_data (cls : * mut conf_class_t , name : * const :: std :: os :: raw :: c_char , get_attr : :: std :: option :: Option < unsafe extern \"C\" fn (arg1 : * mut conf_object_t , arg2 : * mut lang_void) -> attr_value_t > , user_data_get : * mut lang_void , set_attr : :: std :: option :: Option < unsafe extern \"C\" fn (arg1 : * mut conf_object_t , arg2 : * mut attr_value_t , arg3 : * mut lang_void) -> set_error_t > , user_data_set : * mut lang_void , attr : attr_attr_t , type_ : * const :: std :: os :: raw :: c_char , desc : * const :: std :: os :: raw :: c_char) ; } extern \"C\" { pub fn SIM_register_class_attribute_with_user_data (cls : * mut conf_class_t , name : * const :: std :: os :: raw :: c_char , get_attr : :: std :: option :: Option < unsafe extern \"C\" fn (arg1 : * mut conf_class_t , arg2 : * mut lang_void) -> attr_value_t > , user_data_get : * mut lang_void , set_attr : :: std :: option :: Option < unsafe extern \"C\" fn (arg1 : * mut conf_class_t , arg2 : * mut attr_value_t , arg3 : * mut lang_void) -> set_error_t > , user_data_set : * mut lang_void , attr : attr_attr_t , type_ : * const :: std :: os :: raw :: c_char , desc : * const :: std :: os :: raw :: c_char) ; } extern \"C\" { pub fn SIM_ensure_partial_attr_order (cls : * mut conf_class_t , attr1 : * const :: std :: os :: raw :: c_char , attr2 : * const :: std :: os :: raw :: c_char) ; } extern \"C\" { pub fn SIM_attribute_error (msg : * const :: std :: os :: raw :: c_char) ; } extern \"C\" { pub fn SIM_c_attribute_error (msg : * const :: std :: os :: raw :: c_char , ...) ; } extern \"C\" { pub fn VT_set_cpu_offset (arg : * const :: std :: os :: raw :: c_void , add : bool) ; } pub type interface_t = :: std :: os :: raw :: c_void ; pub type class_interface_t = :: std :: os :: raw :: c_void ; extern \"C\" { # [doc = \" Return error code on failure (0 == ok).\"] pub fn SIM_register_interface (cls : * mut conf_class_t , name : * const :: std :: os :: raw :: c_char , iface : * const interface_t) -> :: std :: os :: raw :: c_int ; } extern \"C\" { pub fn SIM_register_port_interface (cls : * mut conf_class_t , name : * const :: std :: os :: raw :: c_char , iface : * const interface_t , portname : * const :: std :: os :: raw :: c_char , desc : * const :: std :: os :: raw :: c_char) -> :: std :: os :: raw :: c_int ; } extern \"C\" { pub fn SIM_register_compatible_interfaces (cls : * mut conf_class_t , name : * const :: std :: os :: raw :: c_char) ; } extern \"C\" { pub fn SIM_register_port (cls : * mut conf_class_t , name : * const :: std :: os :: raw :: c_char , port_cls : * mut conf_class_t , desc : * const :: std :: os :: raw :: c_char) ; } extern \"C\" { pub fn SIM_register_simple_port (cls : * mut conf_class_t , name : * const :: std :: os :: raw :: c_char , desc : * const :: std :: os :: raw :: c_char) -> * mut conf_class_t ; } extern \"C\" { # [doc = \" Get interface from object (returns NULL if interface not\\nimplemented by object).\"] pub fn SIM_get_interface (obj : * const conf_object_t , name : * const :: std :: os :: raw :: c_char) -> * const interface_t ; } extern \"C\" { pub fn SIM_c_get_interface (obj : * const conf_object_t , name : * const :: std :: os :: raw :: c_char) -> * const interface_t ; } extern \"C\" { pub fn SIM_get_class_interface (cls : * const conf_class_t , name : * const :: std :: os :: raw :: c_char) -> * const class_interface_t ; } extern \"C\" { pub fn SIM_c_get_class_interface (cls : * const conf_class_t , name : * const :: std :: os :: raw :: c_char) -> * const class_interface_t ; } extern \"C\" { pub fn SIM_get_port_interface (obj : * const conf_object_t , name : * const :: std :: os :: raw :: c_char , portname : * const :: std :: os :: raw :: c_char) -> * const interface_t ; } extern \"C\" { pub fn SIM_c_get_port_interface (obj : * const conf_object_t , name : * const :: std :: os :: raw :: c_char , portname : * const :: std :: os :: raw :: c_char) -> * const interface_t ; } extern \"C\" { pub fn SIM_get_class_port_interface (cls : * const conf_class_t , name : * const :: std :: os :: raw :: c_char , portname : * const :: std :: os :: raw :: c_char) -> * const class_interface_t ; } extern \"C\" { pub fn SIM_c_get_class_port_interface (cls : * const conf_class_t , name : * const :: std :: os :: raw :: c_char , portname : * const :: std :: os :: raw :: c_char) -> * const class_interface_t ; } # [repr (C)] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct interface_array_t { pub size : :: std :: os :: raw :: c_int , pub used : :: std :: os :: raw :: c_int , pub elements : * mut * const interface_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of interface_array_t\"] [:: std :: mem :: size_of :: < interface_array_t > () - 16usize] ; [\"Alignment of interface_array_t\"] [:: std :: mem :: align_of :: < interface_array_t > () - 8usize] ; [\"Offset of field: interface_array_t::size\"] [:: std :: mem :: offset_of ! (interface_array_t , size) - 0usize] ; [\"Offset of field: interface_array_t::used\"] [:: std :: mem :: offset_of ! (interface_array_t , used) - 4usize] ; [\"Offset of field: interface_array_t::elements\"] [:: std :: mem :: offset_of ! (interface_array_t , elements) - 8usize] ; } ; impl Default for interface_array_t { fn default () -> Self { let mut s = :: std :: mem :: MaybeUninit :: < Self > :: uninit () ; unsafe { :: std :: ptr :: write_bytes (s . as_mut_ptr () , 0 , 1) ; s . assume_init () } } } extern \"C\" { pub fn VT_register_port_array_interface (cls : * mut conf_class_t , name : * const :: std :: os :: raw :: c_char , iface_list : * const interface_array_t , portname : * const :: std :: os :: raw :: c_char , desc : * const :: std :: os :: raw :: c_char) -> :: std :: os :: raw :: c_int ; } extern \"C\" { pub fn SIM_marked_for_deletion (obj : * const conf_object_t) -> bool ; } # [doc = \" <add-type id=\\\"simtime_t def\\\"></add-type>\"] pub type simtime_t = int64 ; # [doc = \" <add-type id=\\\"cycles_t def\\\"></add-type>\"] pub type cycles_t = simtime_t ; # [doc = \" <add-type id=\\\"nano_secs_t def\\\"></add-type>\"] pub type nano_secs_t = int64 ; extern \"C\" { pub fn SIM_cycle_count (obj : * mut conf_object_t) -> cycles_t ; } extern \"C\" { pub fn SIM_time (obj : * mut conf_object_t) -> f64 ; } extern \"C\" { pub fn SIM_stall_cycle (obj : * mut conf_object_t , cycles : cycles_t) ; } extern \"C\" { pub fn SIM_stall (obj : * mut conf_object_t , seconds : f64) ; } extern \"C\" { pub fn SIM_stalled_until (obj : * mut conf_object_t) -> cycles_t ; } extern \"C\" { pub fn SIM_stall_count (obj : * mut conf_object_t) -> cycles_t ; } extern \"C\" { pub fn SIM_object_clock (obj : * const conf_object_t) -> * mut conf_object_t ; } extern \"C\" { pub fn SIM_picosecond_clock (obj : * mut conf_object_t) -> * mut conf_object_t ; } extern \"C\" { pub fn VT_set_object_clock (obj : * mut conf_object_t , clock : * mut conf_object_t) ; } extern \"C\" { pub fn VT_object_ps_clock (obj : * mut conf_object_t) -> * mut conf_object_t ; } extern \"C\" { pub fn VT_cycles_to_quantum_end (obj : * mut conf_object_t) -> cycles_t ; } impl event_class_flag_t { pub const Sim_EC_No_Flags : event_class_flag_t = event_class_flag_t (0) ; } impl event_class_flag_t { # [doc = \" event not saved in configurations\"] pub const Sim_EC_Notsaved : event_class_flag_t = event_class_flag_t (1) ; } impl event_class_flag_t { # [doc = \" event should run before events not marked\\nwith this flag\"] pub const Sim_EC_Slot_Early : event_class_flag_t = event_class_flag_t (2) ; } impl event_class_flag_t { # [doc = \" event should run after events not marked\\nwith this flag\"] pub const Sim_EC_Slot_Late : event_class_flag_t = event_class_flag_t (4) ; } impl event_class_flag_t { # [doc = \" synchronize machine on event\"] pub const Sim_EC_Machine_Sync : event_class_flag_t = event_class_flag_t (8) ; } impl event_class_flag_t { # [doc = \" can execute in parallel with execution\"] pub const Sim_EC_No_Serialize : event_class_flag_t = event_class_flag_t (16) ; } impl :: std :: ops :: BitOr < event_class_flag_t > for event_class_flag_t { type Output = Self ; # [inline] fn bitor (self , other : Self) -> Self { event_class_flag_t (self . 0 | other . 0) } } impl :: std :: ops :: BitOrAssign for event_class_flag_t { # [inline] fn bitor_assign (& mut self , rhs : event_class_flag_t) { self . 0 |= rhs . 0 ; } } impl :: std :: ops :: BitAnd < event_class_flag_t > for event_class_flag_t { type Output = Self ; # [inline] fn bitand (self , other : Self) -> Self { event_class_flag_t (self . 0 & other . 0) } } impl :: std :: ops :: BitAndAssign for event_class_flag_t { # [inline] fn bitand_assign (& mut self , rhs : event_class_flag_t) { self . 0 &= rhs . 0 ; } } # [repr (transparent)] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct event_class_flag_t (pub :: std :: os :: raw :: c_uint) ; # [repr (C)] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct event_class { # [doc = \" identifier, unique within the conf_class (malloced)\"] pub name : * const :: std :: os :: raw :: c_char , # [doc = \" conf class this event class belongs to; posting object must\\nbelong to this class.\"] pub conf_class : * mut conf_class_t , pub flags : event_class_flag_t , # [doc = \" function called when event expires\"] pub callback : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , data : * mut lang_void) > , # [doc = \" function called when the event is removed without expiry.\\nMay be null.\\nMust not access the Simics configuration in any way!\"] pub destroy : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , data : * mut lang_void) > , # [doc = \" convert event data to an attribute value.\\nMay be null if flags has Sim_EC_Notsaved set.\\nEvent should not be saved if return value is invalid.\"] pub get_value : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , data : * mut lang_void) -> attr_value_t > , # [doc = \" convert attribute value to event data.\\nMay be null if flags has Sim_EC_Notsaved set.\"] pub set_value : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , value : attr_value_t) -> * mut lang_void > , # [doc = \" human-readable event description. The returned string must be\\nmalloced; it will be freed by the caller.\"] pub describe : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , data : * mut lang_void) -> * mut :: std :: os :: raw :: c_char > , # [doc = \" internal - absolute priority for event\"] pub slot : :: std :: os :: raw :: c_uint , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of event_class\"] [:: std :: mem :: size_of :: < event_class > () - 72usize] ; [\"Alignment of event_class\"] [:: std :: mem :: align_of :: < event_class > () - 8usize] ; [\"Offset of field: event_class::name\"] [:: std :: mem :: offset_of ! (event_class , name) - 0usize] ; [\"Offset of field: event_class::conf_class\"] [:: std :: mem :: offset_of ! (event_class , conf_class) - 8usize] ; [\"Offset of field: event_class::flags\"] [:: std :: mem :: offset_of ! (event_class , flags) - 16usize] ; [\"Offset of field: event_class::callback\"] [:: std :: mem :: offset_of ! (event_class , callback) - 24usize] ; [\"Offset of field: event_class::destroy\"] [:: std :: mem :: offset_of ! (event_class , destroy) - 32usize] ; [\"Offset of field: event_class::get_value\"] [:: std :: mem :: offset_of ! (event_class , get_value) - 40usize] ; [\"Offset of field: event_class::set_value\"] [:: std :: mem :: offset_of ! (event_class , set_value) - 48usize] ; [\"Offset of field: event_class::describe\"] [:: std :: mem :: offset_of ! (event_class , describe) - 56usize] ; [\"Offset of field: event_class::slot\"] [:: std :: mem :: offset_of ! (event_class , slot) - 64usize] ; } ; impl Default for event_class { fn default () -> Self { let mut s = :: std :: mem :: MaybeUninit :: < Self > :: uninit () ; unsafe { :: std :: ptr :: write_bytes (s . as_mut_ptr () , 0 , 1) ; s . assume_init () } } } pub type event_class_t = event_class ; extern \"C\" { pub fn SIM_register_event (name : * const :: std :: os :: raw :: c_char , cl : * mut conf_class_t , flags : event_class_flag_t , callback : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , data : * mut lang_void) > , destroy : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , data : * mut lang_void) > , get_value : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , data : * mut lang_void) -> attr_value_t > , set_value : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , value : attr_value_t) -> * mut lang_void > , describe : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , data : * mut lang_void) -> * mut :: std :: os :: raw :: c_char >) -> * mut event_class_t ; } extern \"C\" { pub fn SIM_event_post_time (clock : * mut conf_object_t , evclass : * mut event_class_t , obj : * mut conf_object_t , seconds : f64 , user_data : * mut lang_void) ; } extern \"C\" { pub fn SIM_event_post_cycle (clock : * mut conf_object_t , evclass : * mut event_class_t , obj : * mut conf_object_t , cycles : cycles_t , user_data : * mut lang_void) ; } extern \"C\" { pub fn SIM_event_cancel_time (clock : * mut conf_object_t , evclass : * mut event_class_t , obj : * mut conf_object_t , pred : :: std :: option :: Option < unsafe extern \"C\" fn (data : * mut lang_void , match_data : * mut lang_void) -> :: std :: os :: raw :: c_int > , match_data : * mut lang_void) ; } extern \"C\" { pub fn SIM_event_find_next_cycle (clock : * mut conf_object_t , evclass : * mut event_class_t , obj : * mut conf_object_t , pred : :: std :: option :: Option < unsafe extern \"C\" fn (data : * mut lang_void , match_data : * mut lang_void) -> :: std :: os :: raw :: c_int > , match_data : * mut lang_void) -> cycles_t ; } extern \"C\" { pub fn SIM_event_find_next_time (clock : * mut conf_object_t , evclass : * mut event_class_t , obj : * mut conf_object_t , pred : :: std :: option :: Option < unsafe extern \"C\" fn (data : * mut lang_void , match_data : * mut lang_void) -> :: std :: os :: raw :: c_int > , match_data : * mut lang_void) -> f64 ; } extern \"C\" { pub fn VT_get_event_class (cl : * mut conf_class_t , name : * const :: std :: os :: raw :: c_char) -> * mut event_class_t ; } extern \"C\" { pub fn VT_stacked_post (obj : * mut conf_object_t , func : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , param : * mut lang_void) > , user_data : * mut lang_void) ; } pub type pico_secs_t = int64 ; # [doc = \" <add-type id=\\\"pc_step_t def\\\"></add-type>\"] pub type pc_step_t = simtime_t ; extern \"C\" { pub fn SIM_event_post_step (clock : * mut conf_object_t , evclass : * mut event_class_t , obj : * mut conf_object_t , steps : pc_step_t , user_data : * mut lang_void) ; } extern \"C\" { pub fn SIM_event_cancel_step (clock : * mut conf_object_t , evclass : * mut event_class_t , obj : * mut conf_object_t , pred : :: std :: option :: Option < unsafe extern \"C\" fn (data : * mut lang_void , match_data : * mut lang_void) -> :: std :: os :: raw :: c_int > , match_data : * mut lang_void) ; } extern \"C\" { pub fn SIM_event_find_next_step (clock : * mut conf_object_t , evclass : * mut event_class_t , obj : * mut conf_object_t , pred : :: std :: option :: Option < unsafe extern \"C\" fn (data : * mut lang_void , match_data : * mut lang_void) -> :: std :: os :: raw :: c_int > , match_data : * mut lang_void) -> pc_step_t ; } extern \"C\" { pub fn SIM_step_count (obj : * mut conf_object_t) -> pc_step_t ; } # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct duration_t { pub t : int64 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of duration_t\"] [:: std :: mem :: size_of :: < duration_t > () - 8usize] ; [\"Alignment of duration_t\"] [:: std :: mem :: align_of :: < duration_t > () - 8usize] ; [\"Offset of field: duration_t::t\"] [:: std :: mem :: offset_of ! (duration_t , t) - 0usize] ; } ; extern \"C\" { pub fn signed_divide_128_by_64 (dividend_high : int64 , dividend_low : int64 , divisor : int64 , quotient : * mut int64 , remainder : * mut int64) -> :: std :: os :: raw :: c_int ; } extern \"C\" { pub fn unsigned_gcd (n : uint64 , d : uint64) -> uint64 ; } extern \"C\" { pub fn unsigned_multiply_rational (num1 : uint64 , den1 : uint64 , num2 : uint64 , den2 : uint64 , result_num : * mut uint64 , result_den : * mut uint64) -> :: std :: os :: raw :: c_int ; } # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct int128 { pub lo : uint64 , pub hi : int64 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of int128\"] [:: std :: mem :: size_of :: < int128 > () - 16usize] ; [\"Alignment of int128\"] [:: std :: mem :: align_of :: < int128 > () - 8usize] ; [\"Offset of field: int128::lo\"] [:: std :: mem :: offset_of ! (int128 , lo) - 0usize] ; [\"Offset of field: int128::hi\"] [:: std :: mem :: offset_of ! (int128 , hi) - 8usize] ; } ; extern \"C\" { pub fn int128_from_double (dst : * mut int128 , src : f64) -> bool ; } extern \"C\" { pub fn int128_to_double (src : int128) -> f64 ; } extern \"C\" { pub fn int128_div_int64 (a : int128 , b : int64 , q : * mut int128 , r : * mut int64) -> bool ; } extern \"C\" { pub fn int128_as_string (v : int128 , buf : * mut :: std :: os :: raw :: c_char) -> * mut :: std :: os :: raw :: c_char ; } # [doc = \" <add-type id=\\\"bigtime_t def\\\"></add-type>\"] # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct bigtime_t { pub val : int128 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of bigtime_t\"] [:: std :: mem :: size_of :: < bigtime_t > () - 16usize] ; [\"Alignment of bigtime_t\"] [:: std :: mem :: align_of :: < bigtime_t > () - 8usize] ; [\"Offset of field: bigtime_t::val\"] [:: std :: mem :: offset_of ! (bigtime_t , val) - 0usize] ; } ; extern \"C\" { pub fn bigtime_mul (t : bigtime_t , factor : int64) -> bigtime_t ; } extern \"C\" { pub fn bigtime_div_raw (t : bigtime_t , divisor : int64 , exact : * mut bool) -> bigtime_t ; } extern \"C\" { pub fn bigtime_div_floor (t : bigtime_t , divisor : int64) -> bigtime_t ; } extern \"C\" { pub fn bigtime_to_attr (t : bigtime_t) -> attr_value_t ; } extern \"C\" { pub fn bigtime_from_attr (a : attr_value_t) -> bigtime_t ; } extern \"C\" { pub fn bigtime_as_string (t : bigtime_t , buf : * mut :: std :: os :: raw :: c_char) -> * mut :: std :: os :: raw :: c_char ; } # [repr (C)] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct local_time_t { # [doc = \" The clock is an object which implements the cycle interface. The\\ntime stamp given in this struct is only valid in the clocks\' \\\"time\\nspace\\\".\"] pub clock : * mut conf_object_t , pub t : bigtime_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of local_time_t\"] [:: std :: mem :: size_of :: < local_time_t > () - 24usize] ; [\"Alignment of local_time_t\"] [:: std :: mem :: align_of :: < local_time_t > () - 8usize] ; [\"Offset of field: local_time_t::clock\"] [:: std :: mem :: offset_of ! (local_time_t , clock) - 0usize] ; [\"Offset of field: local_time_t::t\"] [:: std :: mem :: offset_of ! (local_time_t , t) - 8usize] ; } ; impl Default for local_time_t { fn default () -> Self { let mut s = :: std :: mem :: MaybeUninit :: < Self > :: uninit () ; unsafe { :: std :: ptr :: write_bytes (s . as_mut_ptr () , 0 , 1) ; s . assume_init () } } } extern \"C\" { pub fn local_time_to_attr (t : local_time_t) -> attr_value_t ; } extern \"C\" { pub fn local_time_from_attr (val : attr_value_t) -> local_time_t ; } extern \"C\" { pub fn local_time_as_string (v : local_time_t , str_ : * mut :: std :: os :: raw :: c_char) ; } pub type cycle_interface_t = cycle_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct cycle_interface { pub get_cycle_count : :: std :: option :: Option < unsafe extern \"C\" fn (queue : * mut conf_object_t) -> cycles_t > , pub get_time : :: std :: option :: Option < unsafe extern \"C\" fn (queue : * mut conf_object_t) -> f64 > , pub cycles_delta : :: std :: option :: Option < unsafe extern \"C\" fn (clock : * mut conf_object_t , when : f64) -> cycles_t > , pub get_frequency : :: std :: option :: Option < unsafe extern \"C\" fn (queue : * mut conf_object_t) -> uint64 > , pub post_cycle : :: std :: option :: Option < unsafe extern \"C\" fn (queue : * mut conf_object_t , evclass : * mut event_class_t , obj : * mut conf_object_t , cycles : cycles_t , user_data : * mut lang_void) > , pub post_time : :: std :: option :: Option < unsafe extern \"C\" fn (queue : * mut conf_object_t , evclass : * mut event_class_t , obj : * mut conf_object_t , seconds : f64 , user_data : * mut lang_void) > , pub cancel : :: std :: option :: Option < unsafe extern \"C\" fn (queue : * mut conf_object_t , evclass : * mut event_class_t , obj : * mut conf_object_t , pred : :: std :: option :: Option < unsafe extern \"C\" fn (data : * mut lang_void , match_data : * mut lang_void) -> :: std :: os :: raw :: c_int > , match_data : * mut lang_void) > , pub find_next_cycle : :: std :: option :: Option < unsafe extern \"C\" fn (queue : * mut conf_object_t , evclass : * mut event_class_t , obj : * mut conf_object_t , pred : :: std :: option :: Option < unsafe extern \"C\" fn (data : * mut lang_void , match_data : * mut lang_void) -> :: std :: os :: raw :: c_int > , match_data : * mut lang_void) -> cycles_t > , pub find_next_time : :: std :: option :: Option < unsafe extern \"C\" fn (queue : * mut conf_object_t , evclass : * mut event_class_t , obj : * mut conf_object_t , pred : :: std :: option :: Option < unsafe extern \"C\" fn (data : * mut lang_void , match_data : * mut lang_void) -> :: std :: os :: raw :: c_int > , match_data : * mut lang_void) -> f64 > , pub events : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t) -> attr_value_t > , # [doc = \" new picoseconds based functions\"] pub get_time_in_ps : :: std :: option :: Option < unsafe extern \"C\" fn (queue : * mut conf_object_t) -> local_time_t > , pub cycles_delta_from_ps : :: std :: option :: Option < unsafe extern \"C\" fn (clock : * mut conf_object_t , when : local_time_t) -> cycles_t > , pub post_time_in_ps : :: std :: option :: Option < unsafe extern \"C\" fn (queue : * mut conf_object_t , evclass : * mut event_class_t , obj : * mut conf_object_t , picoseconds : duration_t , user_data : * mut lang_void) > , pub find_next_time_in_ps : :: std :: option :: Option < unsafe extern \"C\" fn (queue : * mut conf_object_t , evclass : * mut event_class_t , obj : * mut conf_object_t , pred : :: std :: option :: Option < unsafe extern \"C\" fn (data : * mut lang_void , match_data : * mut lang_void) -> :: std :: os :: raw :: c_int > , match_data : * mut lang_void) -> duration_t > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of cycle_interface\"] [:: std :: mem :: size_of :: < cycle_interface > () - 112usize] ; [\"Alignment of cycle_interface\"] [:: std :: mem :: align_of :: < cycle_interface > () - 8usize] ; [\"Offset of field: cycle_interface::get_cycle_count\"] [:: std :: mem :: offset_of ! (cycle_interface , get_cycle_count) - 0usize] ; [\"Offset of field: cycle_interface::get_time\"] [:: std :: mem :: offset_of ! (cycle_interface , get_time) - 8usize] ; [\"Offset of field: cycle_interface::cycles_delta\"] [:: std :: mem :: offset_of ! (cycle_interface , cycles_delta) - 16usize] ; [\"Offset of field: cycle_interface::get_frequency\"] [:: std :: mem :: offset_of ! (cycle_interface , get_frequency) - 24usize] ; [\"Offset of field: cycle_interface::post_cycle\"] [:: std :: mem :: offset_of ! (cycle_interface , post_cycle) - 32usize] ; [\"Offset of field: cycle_interface::post_time\"] [:: std :: mem :: offset_of ! (cycle_interface , post_time) - 40usize] ; [\"Offset of field: cycle_interface::cancel\"] [:: std :: mem :: offset_of ! (cycle_interface , cancel) - 48usize] ; [\"Offset of field: cycle_interface::find_next_cycle\"] [:: std :: mem :: offset_of ! (cycle_interface , find_next_cycle) - 56usize] ; [\"Offset of field: cycle_interface::find_next_time\"] [:: std :: mem :: offset_of ! (cycle_interface , find_next_time) - 64usize] ; [\"Offset of field: cycle_interface::events\"] [:: std :: mem :: offset_of ! (cycle_interface , events) - 72usize] ; [\"Offset of field: cycle_interface::get_time_in_ps\"] [:: std :: mem :: offset_of ! (cycle_interface , get_time_in_ps) - 80usize] ; [\"Offset of field: cycle_interface::cycles_delta_from_ps\"] [:: std :: mem :: offset_of ! (cycle_interface , cycles_delta_from_ps) - 88usize] ; [\"Offset of field: cycle_interface::post_time_in_ps\"] [:: std :: mem :: offset_of ! (cycle_interface , post_time_in_ps) - 96usize] ; [\"Offset of field: cycle_interface::find_next_time_in_ps\"] [:: std :: mem :: offset_of ! (cycle_interface , find_next_time_in_ps) - 104usize] ; } ; extern \"C\" { pub fn SIM_register_clock (cls : * mut conf_class_t , iface : * const cycle_interface_t) -> :: std :: os :: raw :: c_int ; } extern \"C\" { pub fn VT_register_passive_clock (cls : * mut conf_class_t , iface : * const cycle_interface_t) -> :: std :: os :: raw :: c_int ; } # [repr (u32)] # [doc = \" <add-type id=\\\"log_type_t def\\\">\\n</add-type>\"] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub enum log_type_t { # [doc = \" Normal informational message\"] Sim_Log_Info = 0 , # [doc = \" Simics error\"] Sim_Log_Error = 1 , # [doc = \" target program violates the specification\"] Sim_Log_Spec_Violation = 2 , # [doc = \" not implemented in Simics\"] Sim_Log_Unimplemented = 3 , # [doc = \" Critical error stopping Simics\"] Sim_Log_Critical = 4 , # [doc = \" Breakpoint trace messages\"] Sim_Log_Trace = 5 , # [doc = \" Do not use\"] Sim_Log_Num_Types = 6 , } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct log_object { _unused : [u8 ; 0] , } pub type log_object_t = log_object ; extern \"C\" { pub fn SIM_log_register_groups (cls : * mut conf_class_t , names : * const * const :: std :: os :: raw :: c_char) ; } extern \"C\" { pub fn VT_log_message (obj : * mut conf_object_t , level : :: std :: os :: raw :: c_int , group_ids : :: std :: os :: raw :: c_int , log_type : log_type_t , message : * const :: std :: os :: raw :: c_char) ; } extern \"C\" { pub fn VT_log_message64 (obj : * mut conf_object_t , level : :: std :: os :: raw :: c_int , group_ids : uint64 , log_type : log_type_t , message : * const :: std :: os :: raw :: c_char) ; } extern \"C\" { pub fn SIM_log_message (obj : * mut conf_object_t , level : :: std :: os :: raw :: c_int , group_ids : uint64 , log_type : log_type_t , message : * const :: std :: os :: raw :: c_char) ; } extern \"C\" { pub fn VT_critical_error (short_msg : * const :: std :: os :: raw :: c_char , long_msg : * const :: std :: os :: raw :: c_char) ; } extern \"C\" { pub fn SIM_log_error (dev : * mut conf_object_t , grp : :: std :: os :: raw :: c_int , str_ : * const :: std :: os :: raw :: c_char , ...) ; } extern \"C\" { pub fn SIM_log_critical (dev : * mut conf_object_t , grp : :: std :: os :: raw :: c_int , str_ : * const :: std :: os :: raw :: c_char , ...) ; } extern \"C\" { pub fn SIM_log_info (lvl : :: std :: os :: raw :: c_int , dev : * mut conf_object_t , grp : :: std :: os :: raw :: c_int , str_ : * const :: std :: os :: raw :: c_char , ...) ; } extern \"C\" { pub fn SIM_log_spec_violation (lvl : :: std :: os :: raw :: c_int , dev : * mut conf_object_t , grp : :: std :: os :: raw :: c_int , str_ : * const :: std :: os :: raw :: c_char , ...) ; } extern \"C\" { pub fn SIM_log_unimplemented (lvl : :: std :: os :: raw :: c_int , dev : * mut conf_object_t , grp : :: std :: os :: raw :: c_int , str_ : * const :: std :: os :: raw :: c_char , ...) ; } extern \"C\" { pub fn VT_log_error (dev : * mut conf_object_t , grp : uint64 , str_ : * const :: std :: os :: raw :: c_char , ...) ; } extern \"C\" { pub fn VT_log_critical (dev : * mut conf_object_t , grp : uint64 , str_ : * const :: std :: os :: raw :: c_char , ...) ; } extern \"C\" { pub fn VT_log_info (lvl : :: std :: os :: raw :: c_int , dev : * mut conf_object_t , grp : uint64 , str_ : * const :: std :: os :: raw :: c_char , ...) ; } extern \"C\" { pub fn VT_log_spec_violation (lvl : :: std :: os :: raw :: c_int , dev : * mut conf_object_t , grp : uint64 , str_ : * const :: std :: os :: raw :: c_char , ...) ; } extern \"C\" { pub fn VT_log_unimplemented (lvl : :: std :: os :: raw :: c_int , dev : * mut conf_object_t , grp : uint64 , str_ : * const :: std :: os :: raw :: c_char , ...) ; } extern \"C\" { pub fn SIM_log_level (obj : * const conf_object_t) -> :: std :: os :: raw :: c_uint ; } extern \"C\" { pub fn SIM_set_log_level (obj : * mut conf_object_t , level : :: std :: os :: raw :: c_uint) ; } extern \"C\" { pub fn SIM_is_restoring_state (obj : * mut conf_object_t) -> bool ; } extern \"C\" { # [doc = \" will return 1 while getting persistent attributes only\"] pub fn VT_is_saving_persistent_data () -> bool ; } extern \"C\" { pub fn VT_object_cell (obj : * mut conf_object_t) -> * mut conf_object_t ; } extern \"C\" { pub fn VT_get_map_generation (obj : * mut conf_object_t) -> uint32 ; } extern \"C\" { pub fn VT_is_reversing () -> bool ; } extern \"C\" { pub fn SIM_is_loading_micro_checkpoint (obj : * mut conf_object_t) -> bool ; } # [repr (u32)] # [doc = \" <add id=\\\"global_notifier_type_t DOC\\\">\\n<ndx>global_notifier_type_t</ndx>\\n<name index=\\\"true\\\">global_notifier_type_t</name>\\n<doc>\\n<doc-item name=\\\"NAME\\\">global_notifier_type_t</doc-item>\\n<doc-item name=\\\"SYNOPSIS\\\">\\n<smaller>\\n<insert id=\\\"global_notifier_type_t def\\\"/>\\n</smaller>\\n</doc-item>\\n<doc-item name=\\\"DESCRIPTION\\\">\\n\\nThis enum is used to identify pre-defined global notifier. The\\n<tt>Sim_Global_Notify_Object_Delete</tt> notifier is triggered by Simics\\nwhen objects are being deleted. In the callback, objects are still fully\\navailable, but <fun>SIM_marked_for_deletion</fun> can be used to determine\\nif an object is being deleted.\\n\\nThe <tt>Sim_Global_Notify_Objects_Finalized</tt> notifier is triggered by\\nSimics when new objects have been finalized, after their\\n<tt>objects_finalized</tt> methods have been called.\\n\\nThe <tt>Sim_Global_Notify_Message</tt> notifier is used by\\n<fun>SIM_trigger_global_message</fun>.\\n\\nThe corresponding names used in e.g. <cmd>list-notifiers</cmd>\\nare as follows:\\n<ul>\\n<li>\\\"global-object-delete\\\" (<var>Sim_Global_Notify_Object_Delete</var>)</li>\\n<li>\\\"global-objects-finalized\\\" (<var>Sim_Global_Notify_Objects_Finalized</var>)</li>\\n<li>\\\"global-message\\\" (<var>Sim_Global_Notify_Message</var>)</li>\\n</ul>\\n\\n</doc-item>\\n<doc-item name=\\\"SEE ALSO\\\">\\n<fun>SIM_add_global_notifier</fun>,\\n<fun>SIM_add_global_notifier_once</fun>,\\n<fun>SIM_delete_global_notifier</fun>,\\n</doc-item>\\n</doc>\\n</add>\\n\\n<add-type id=\\\"global_notifier_type_t def\\\"></add-type>\"] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub enum global_notifier_type_t { Sim_Global_Notify_Object_Delete = 100 , Sim_Global_Notify_Objects_Finalized = 101 , Sim_Global_Notify_Message = 102 , Sim_Global_Notify_Before_Snapshot_Restore = 150 , Sim_Global_Notify_After_Snapshot_Restore = 151 , } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct global_notifier_callback { _unused : [u8 ; 0] , } # [doc = \" Consumer API\"] pub type global_notifier_callback_t = global_notifier_callback ; extern \"C\" { pub fn SIM_add_global_notifier (what : global_notifier_type_t , subscriber : * mut conf_object_t , callback : :: std :: option :: Option < unsafe extern \"C\" fn (subscriber : * mut conf_object_t , data : * mut lang_void) > , data : * mut lang_void) -> * mut global_notifier_callback_t ; } extern \"C\" { pub fn SIM_add_global_notifier_once (what : global_notifier_type_t , subscriber : * mut conf_object_t , callback : :: std :: option :: Option < unsafe extern \"C\" fn (subscriber : * mut conf_object_t , data : * mut lang_void) > , data : * mut lang_void) -> * mut global_notifier_callback_t ; } extern \"C\" { pub fn SIM_delete_global_notifier (handle : * mut global_notifier_callback_t) ; } pub type hap_type_t = :: std :: os :: raw :: c_int ; extern \"C\" { pub fn SIM_hap_add_type (hap : * const :: std :: os :: raw :: c_char , params : * const :: std :: os :: raw :: c_char , param_desc : * const :: std :: os :: raw :: c_char , index : * const :: std :: os :: raw :: c_char , desc : * const :: std :: os :: raw :: c_char , unused : :: std :: os :: raw :: c_int) -> hap_type_t ; } extern \"C\" { pub fn SIM_hap_remove_type (hap : * const :: std :: os :: raw :: c_char) ; } extern \"C\" { pub fn SIM_hap_get_number (hap : * const :: std :: os :: raw :: c_char) -> hap_type_t ; } extern \"C\" { pub fn SIM_hap_get_name (hap : hap_type_t) -> * const :: std :: os :: raw :: c_char ; } extern \"C\" { pub fn SIM_hap_is_active (hap : hap_type_t) -> bool ; } extern \"C\" { pub fn SIM_hap_is_active_obj (hap : hap_type_t , obj : * mut conf_object_t) -> bool ; } extern \"C\" { pub fn SIM_hap_is_active_obj_idx (hap : hap_type_t , obj : * mut conf_object_t , index : int64) -> bool ; } extern \"C\" { pub fn SIM_c_hap_occurred (hap : hap_type_t , obj : * mut conf_object_t , value : int64 , ...) -> :: std :: os :: raw :: c_int ; } extern \"C\" { pub fn SIM_c_hap_occurred_vararg (hap : hap_type_t , obj : * mut conf_object_t , value : int64 , ap : * mut __va_list_tag) -> :: std :: os :: raw :: c_int ; } extern \"C\" { pub fn SIM_c_hap_occurred_always (hap : hap_type_t , obj : * mut conf_object_t , value : int64 , ...) -> :: std :: os :: raw :: c_int ; } extern \"C\" { pub fn SIM_c_hap_occurred_always_vararg (hap : hap_type_t , obj : * mut conf_object_t , value : int64 , ap : * mut __va_list_tag) -> :: std :: os :: raw :: c_int ; } extern \"C\" { pub fn SIM_hap_occurred (hap : hap_type_t , obj : * mut conf_object_t , value : int64 , list : * mut attr_value_t) -> :: std :: os :: raw :: c_int ; } extern \"C\" { pub fn SIM_hap_occurred_always (hap : hap_type_t , obj : * mut conf_object_t , value : int64 , list : * mut attr_value_t) -> :: std :: os :: raw :: c_int ; } extern \"C\" { pub fn VT_hap_global_callback_ranges (hap : hap_type_t) -> attr_value_t ; } # [repr (u32)] # [doc = \" <add-type id=\\\"data_or_instr_t def\\\">\\n</add-type>\"] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub enum data_or_instr_t { Sim_DI_Instruction = 0 , Sim_DI_Data = 1 , } impl access_t { pub const Sim_Access_Read : access_t = access_t (1) ; } impl access_t { pub const Sim_Access_Write : access_t = access_t (2) ; } impl access_t { pub const Sim_Access_Execute : access_t = access_t (4) ; } impl :: std :: ops :: BitOr < access_t > for access_t { type Output = Self ; # [inline] fn bitor (self , other : Self) -> Self { access_t (self . 0 | other . 0) } } impl :: std :: ops :: BitOrAssign for access_t { # [inline] fn bitor_assign (& mut self , rhs : access_t) { self . 0 |= rhs . 0 ; } } impl :: std :: ops :: BitAnd < access_t > for access_t { type Output = Self ; # [inline] fn bitand (self , other : Self) -> Self { access_t (self . 0 & other . 0) } } impl :: std :: ops :: BitAndAssign for access_t { # [inline] fn bitand_assign (& mut self , rhs : access_t) { self . 0 &= rhs . 0 ; } } # [repr (transparent)] # [doc = \" All combinations are allowed (logical or)\\n<add id=\\\"access_t\\\">\\n<ndx>access_t</ndx>\\n<insert-upto text=\\\";\\\"/>\\n</add>\"] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct access_t (pub :: std :: os :: raw :: c_uint) ; # [repr (u32)] # [doc = \" <add id=\\\"processor_mode_t DOC\\\">\\n<ndx>processor_mode_t</ndx>\\n<doc>\\n<doc-item name=\\\"NAME\\\">processor_mode_t</doc-item>\\n<doc-item name=\\\"SYNOPSIS\\\"><insert id=\\\"processor_mode_t def\\\"/></doc-item>\\n<doc-item name=\\\"DESCRIPTION\\\">\\nThe <type>processor_mode_t</type> data type is used to specify if a\\nCPU is running in user mode or in a privileged mode (often called\\nsupervisor mode). For processor architectures with several\\nprivilege levels, the non-user levels are all identified as\\n<const>Sim_CPU_Mode_Supervisor</const>.\\n</doc-item>\\n</doc>\\n</add>\\n\\n<add-type id=\\\"processor_mode_t def\\\"></add-type>\"] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub enum processor_mode_t { Sim_CPU_Mode_User = 0 , Sim_CPU_Mode_Supervisor = 1 , Sim_CPU_Mode_Hypervisor = 2 , } # [repr (u32)] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub enum cpu_endian_t { Sim_Endian_Little = 0 , Sim_Endian_Big = 1 , } # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct physical_block_t { pub valid : :: std :: os :: raw :: c_int , pub address : physical_address_t , pub block_start : physical_address_t , pub block_end : physical_address_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of physical_block_t\"] [:: std :: mem :: size_of :: < physical_block_t > () - 32usize] ; [\"Alignment of physical_block_t\"] [:: std :: mem :: align_of :: < physical_block_t > () - 8usize] ; [\"Offset of field: physical_block_t::valid\"] [:: std :: mem :: offset_of ! (physical_block_t , valid) - 0usize] ; [\"Offset of field: physical_block_t::address\"] [:: std :: mem :: offset_of ! (physical_block_t , address) - 8usize] ; [\"Offset of field: physical_block_t::block_start\"] [:: std :: mem :: offset_of ! (physical_block_t , block_start) - 16usize] ; [\"Offset of field: physical_block_t::block_end\"] [:: std :: mem :: offset_of ! (physical_block_t , block_end) - 24usize] ; } ; # [repr (u32)] # [doc = \" <add id=\\\"breakpoint_kind_t\\\">\\n<ndx>breakpoint_kind_t</ndx>\\n<insert-upto text=\\\";\\\"/>\\n</add>\"] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub enum breakpoint_kind_t { Sim_Break_Physical = 0 , Sim_Break_Virtual = 1 , # [doc = \" x86 only\"] Sim_Break_Linear = 2 , } # [doc = \" <add-type id=\\\"breakpoint_id_t\\\"><ndx>breakpoint_id_t</ndx></add-type>\"] pub type breakpoint_id_t = :: std :: os :: raw :: c_int ; pub type breakpoint_handle_t = usize ; # [repr (C)] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct breakpoint_info_t { pub handle : breakpoint_handle_t , pub read_write_execute : access_t , pub start : generic_address_t , pub end : generic_address_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of breakpoint_info_t\"] [:: std :: mem :: size_of :: < breakpoint_info_t > () - 32usize] ; [\"Alignment of breakpoint_info_t\"] [:: std :: mem :: align_of :: < breakpoint_info_t > () - 8usize] ; [\"Offset of field: breakpoint_info_t::handle\"] [:: std :: mem :: offset_of ! (breakpoint_info_t , handle) - 0usize] ; [\"Offset of field: breakpoint_info_t::read_write_execute\"] [:: std :: mem :: offset_of ! (breakpoint_info_t , read_write_execute) - 8usize] ; [\"Offset of field: breakpoint_info_t::start\"] [:: std :: mem :: offset_of ! (breakpoint_info_t , start) - 16usize] ; [\"Offset of field: breakpoint_info_t::end\"] [:: std :: mem :: offset_of ! (breakpoint_info_t , end) - 24usize] ; } ; impl Default for breakpoint_info_t { fn default () -> Self { let mut s = :: std :: mem :: MaybeUninit :: < Self > :: uninit () ; unsafe { :: std :: ptr :: write_bytes (s . as_mut_ptr () , 0 , 1) ; s . assume_init () } } } # [repr (C)] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct breakpoint_set_t { pub num_breakpoints : :: std :: os :: raw :: c_int , pub breakpoints : * mut breakpoint_info_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of breakpoint_set_t\"] [:: std :: mem :: size_of :: < breakpoint_set_t > () - 16usize] ; [\"Alignment of breakpoint_set_t\"] [:: std :: mem :: align_of :: < breakpoint_set_t > () - 8usize] ; [\"Offset of field: breakpoint_set_t::num_breakpoints\"] [:: std :: mem :: offset_of ! (breakpoint_set_t , num_breakpoints) - 0usize] ; [\"Offset of field: breakpoint_set_t::breakpoints\"] [:: std :: mem :: offset_of ! (breakpoint_set_t , breakpoints) - 8usize] ; } ; impl Default for breakpoint_set_t { fn default () -> Self { let mut s = :: std :: mem :: MaybeUninit :: < Self > :: uninit () ; unsafe { :: std :: ptr :: write_bytes (s . as_mut_ptr () , 0 , 1) ; s . assume_init () } } } # [repr (u32)] # [doc = \" <add-type id=\\\"addr_space_t def\\\"><ndx>addr_space_t</ndx></add-type>\"] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub enum addr_space_t { Sim_Addr_Space_Conf = 0 , Sim_Addr_Space_IO = 1 , Sim_Addr_Space_Memory = 2 , } # [repr (u32)] # [doc = \" <add id=\\\"read_or_write_t DOC\\\">\\n<ndx>read_or_write_t</ndx>\\n<name index=\\\"true\\\">read_or_write_t</name>\\n<doc>\\n<doc-item name=\\\"NAME\\\">read_or_write_t</doc-item>\\n<doc-item name=\\\"SYNOPSIS\\\"><insert id=\\\"read_or_write_t def\\\"/></doc-item>\\n<doc-item name=\\\"DESCRIPTION\\\">\\nWhether a memory access is a <i>read</i> (from memory) or a <i>write</i>\\n(to memory).\\n</doc-item>\\n</doc>\\n</add>\\n\\n<add-type id=\\\"read_or_write_t def\\\"></add-type>\"] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub enum read_or_write_t { Sim_RW_Read = 0 , Sim_RW_Write = 1 , } # [repr (u32)] # [doc = \" <add id=\\\"endianness_t DOC\\\">\\n<ndx>endianness_t</ndx>\\n<name index=\\\"true\\\">endianness_t</name>\\n<doc>\\n<doc-item name=\\\"NAME\\\">endianness_t</doc-item>\\n<doc-item name=\\\"SYNOPSIS\\\"><insert id=\\\"endianness_t def\\\"/></doc-item>\\n<doc-item name=\\\"DESCRIPTION\\\">\\nSpecifies the endianness to use for certain memory operations. When\\n<const>Sim_Endian_Target</const> is used, the data from memory is\\ncopied without any endian conversion.\\n<const>Sim_Endian_Host_From_BE</const> and\\n<const>Sim_Endian_Host_From_LE</const> copies data between a\\nbig-endian, or little-endian, memory and a host buffer.\\n</doc-item>\\n</doc>\\n</add>\\n\\n<add-type id=\\\"endianness_t def\\\"></add-type>\"] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub enum endianness_t { Sim_Endian_Target = 0 , Sim_Endian_Host_From_BE = 1 , Sim_Endian_Host_From_LE = 2 , } # [repr (u32)] # [doc = \" <add-type id=\\\"map_info_t def\\\"></add-type>\"] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub enum swap_mode { Sim_Swap_None = 0 , Sim_Swap_Bus = 1 , Sim_Swap_Bus_Trans = 2 , Sim_Swap_Trans = 3 , } # [doc = \" <add-type id=\\\"map_info_t def\\\"></add-type>\"] pub use self :: swap_mode as swap_mode_t ; # [doc = \" <add id=\\\"map_info_t DOC\\\">\\n<ndx>map_info_t</ndx>\\n<ndx>swap_mode_t</ndx>\\n<name index=\\\"true\\\">map_info_t</name>\\n<doc>\\n<doc-item name=\\\"NAME\\\">map_info_t, swap_mode_t</doc-item>\\n<doc-item name=\\\"SYNOPSIS\\\">\\n<ndx>map_type_t</ndx>\\n<smaller>\\n<insert id=\\\"map_info_t def\\\"/>\\n</smaller>\\n</doc-item>\\n<doc-item name=\\\"DESCRIPTION\\\">\\nThe <tt>map_info_t</tt> structure members have the following meaning:\\n<ul>\\n<li>\\n<tt>base</tt>: The base address of the device mapping in the memory space.\\n</li>\\n<li>\\n<tt>start</tt>: The address inside the device memory space where the mapping\\nstarts.</li>\\n<li><tt>length</tt>: The length of the mapped memory, in bytes.</li>\\n<li><tt>function</tt>: Used to map the same object several times\\nwith different functionality. Corresponds to the function argument used\\nwhen mapping devices into a memory space.</li>\\n<li>If the map target does not support large accesses, then\\n<tt>align_size</tt> can be set to the maximum allowed size. Accesses\\nspanning align boundaries will be split into several smaller\\ntransactions. The align size must be a power of two, or zero (which\\nmeans \\\"use the default value\\\": 8 for devices and 8192 for memory).</li>\\n<li>Mappings with an align size of 2, 4, or 8 may set the\\n<tt>reverse_endian</tt> field to a non zero value. This can be used to\\nmodel bridges that perform byte swapping on a specific bus width.</li>\\n</ul>\\n\\nIf both <tt>base</tt> and <tt>length</tt> are 0 the map will become a\\n<tt>default_target</tt>.\\n\\n</doc-item>\\n</doc>\\n</add>\\n\\n<add-type id=\\\"map_info_t def\\\"></add-type>\"] # [repr (C)] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct map_info { pub base : physical_address_t , pub start : physical_address_t , pub length : physical_address_t , pub function : :: std :: os :: raw :: c_int , pub priority : int16 , pub align_size : :: std :: os :: raw :: c_int , pub reverse_endian : swap_mode_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of map_info\"] [:: std :: mem :: size_of :: < map_info > () - 40usize] ; [\"Alignment of map_info\"] [:: std :: mem :: align_of :: < map_info > () - 8usize] ; [\"Offset of field: map_info::base\"] [:: std :: mem :: offset_of ! (map_info , base) - 0usize] ; [\"Offset of field: map_info::start\"] [:: std :: mem :: offset_of ! (map_info , start) - 8usize] ; [\"Offset of field: map_info::length\"] [:: std :: mem :: offset_of ! (map_info , length) - 16usize] ; [\"Offset of field: map_info::function\"] [:: std :: mem :: offset_of ! (map_info , function) - 24usize] ; [\"Offset of field: map_info::priority\"] [:: std :: mem :: offset_of ! (map_info , priority) - 28usize] ; [\"Offset of field: map_info::align_size\"] [:: std :: mem :: offset_of ! (map_info , align_size) - 32usize] ; [\"Offset of field: map_info::reverse_endian\"] [:: std :: mem :: offset_of ! (map_info , reverse_endian) - 36usize] ; } ; impl Default for map_info { fn default () -> Self { let mut s = :: std :: mem :: MaybeUninit :: < Self > :: uninit () ; unsafe { :: std :: ptr :: write_bytes (s . as_mut_ptr () , 0 , 1) ; s . assume_init () } } } # [doc = \" <add id=\\\"map_info_t DOC\\\">\\n<ndx>map_info_t</ndx>\\n<ndx>swap_mode_t</ndx>\\n<name index=\\\"true\\\">map_info_t</name>\\n<doc>\\n<doc-item name=\\\"NAME\\\">map_info_t, swap_mode_t</doc-item>\\n<doc-item name=\\\"SYNOPSIS\\\">\\n<ndx>map_type_t</ndx>\\n<smaller>\\n<insert id=\\\"map_info_t def\\\"/>\\n</smaller>\\n</doc-item>\\n<doc-item name=\\\"DESCRIPTION\\\">\\nThe <tt>map_info_t</tt> structure members have the following meaning:\\n<ul>\\n<li>\\n<tt>base</tt>: The base address of the device mapping in the memory space.\\n</li>\\n<li>\\n<tt>start</tt>: The address inside the device memory space where the mapping\\nstarts.</li>\\n<li><tt>length</tt>: The length of the mapped memory, in bytes.</li>\\n<li><tt>function</tt>: Used to map the same object several times\\nwith different functionality. Corresponds to the function argument used\\nwhen mapping devices into a memory space.</li>\\n<li>If the map target does not support large accesses, then\\n<tt>align_size</tt> can be set to the maximum allowed size. Accesses\\nspanning align boundaries will be split into several smaller\\ntransactions. The align size must be a power of two, or zero (which\\nmeans \\\"use the default value\\\": 8 for devices and 8192 for memory).</li>\\n<li>Mappings with an align size of 2, 4, or 8 may set the\\n<tt>reverse_endian</tt> field to a non zero value. This can be used to\\nmodel bridges that perform byte swapping on a specific bus width.</li>\\n</ul>\\n\\nIf both <tt>base</tt> and <tt>length</tt> are 0 the map will become a\\n<tt>default_target</tt>.\\n\\n</doc-item>\\n</doc>\\n</add>\\n\\n<add-type id=\\\"map_info_t def\\\"></add-type>\"] pub type map_info_t = map_info ; # [repr (u32)] # [doc = \" <add-type id=\\\"map_type_t def\\\"></add-type>\"] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub enum map_type_t { Sim_Map_Ram = 0 , Sim_Map_Rom = 1 , Sim_Map_IO = 2 , Sim_Map_Port = 3 , # [doc = \" pseudo - do not use\"] Sim_Map_Translate = 256 , Sim_Map_Translate_To_Space = 257 , Sim_Map_Translate_To_Ram = 258 , Sim_Map_Translate_To_Rom = 259 , } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct page { _unused : [u8 ; 0] , } # [doc = \" <add-type id=\\\"page_t def\\\"><ndx>page_t</ndx></add-type>\"] pub type page_t = page ; # [doc = \" <add id=\\\"map_list_t DOC\\\">\\n<ndx>map_list_t</ndx>\\n<ndx>map_type_t</ndx>\\n<name index=\\\"true\\\">map_list_t</name>\\n<doc>\\n<doc-item name=\\\"NAME\\\">map_list_t, map_type_t</doc-item>\\n<doc-item name=\\\"SYNOPSIS\\\">\\n<ndx>map_type_t</ndx><ndx>map_info_t</ndx>\\n<smaller>\\n<insert id=\\\"map_type_t def\\\"/>\\n<insert id=\\\"struct map_list def\\\"/>\\n</smaller>\\n</doc-item>\\n<doc-item name=\\\"DESCRIPTION\\\">\\nThis data structure is used to pass information about the set of\\nmappings a particular address in an address space contains.\\n</doc-item>\\n</doc>\\n</add>\\n<add-type id=\\\"struct map_list def\\\"></add-type>\"] # [repr (C)] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct map_list { pub map_type : map_type_t , pub object : * mut conf_object_t , pub port : * const :: std :: os :: raw :: c_char , pub interface_ptr : * const :: std :: os :: raw :: c_void , pub target_interface : * const :: std :: os :: raw :: c_void , pub breakpoint_interface : * const :: std :: os :: raw :: c_void , pub breakpoint_query_interface : * const :: std :: os :: raw :: c_void , pub bridge_interface : * const :: std :: os :: raw :: c_void , pub target_object : * mut conf_object_t , pub target_port : * const :: std :: os :: raw :: c_char , pub bridge : * mut conf_object_t , pub map_info : map_info_t , # [doc = \" not constant, use with caution\"] pub map_size : physical_address_t , # [doc = \" internal flag - should always be 0 !\"] pub deleted : :: std :: os :: raw :: c_int , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of map_list\"] [:: std :: mem :: size_of :: < map_list > () - 144usize] ; [\"Alignment of map_list\"] [:: std :: mem :: align_of :: < map_list > () - 8usize] ; [\"Offset of field: map_list::map_type\"] [:: std :: mem :: offset_of ! (map_list , map_type) - 0usize] ; [\"Offset of field: map_list::object\"] [:: std :: mem :: offset_of ! (map_list , object) - 8usize] ; [\"Offset of field: map_list::port\"] [:: std :: mem :: offset_of ! (map_list , port) - 16usize] ; [\"Offset of field: map_list::interface_ptr\"] [:: std :: mem :: offset_of ! (map_list , interface_ptr) - 24usize] ; [\"Offset of field: map_list::target_interface\"] [:: std :: mem :: offset_of ! (map_list , target_interface) - 32usize] ; [\"Offset of field: map_list::breakpoint_interface\"] [:: std :: mem :: offset_of ! (map_list , breakpoint_interface) - 40usize] ; [\"Offset of field: map_list::breakpoint_query_interface\"] [:: std :: mem :: offset_of ! (map_list , breakpoint_query_interface) - 48usize] ; [\"Offset of field: map_list::bridge_interface\"] [:: std :: mem :: offset_of ! (map_list , bridge_interface) - 56usize] ; [\"Offset of field: map_list::target_object\"] [:: std :: mem :: offset_of ! (map_list , target_object) - 64usize] ; [\"Offset of field: map_list::target_port\"] [:: std :: mem :: offset_of ! (map_list , target_port) - 72usize] ; [\"Offset of field: map_list::bridge\"] [:: std :: mem :: offset_of ! (map_list , bridge) - 80usize] ; [\"Offset of field: map_list::map_info\"] [:: std :: mem :: offset_of ! (map_list , map_info) - 88usize] ; [\"Offset of field: map_list::map_size\"] [:: std :: mem :: offset_of ! (map_list , map_size) - 128usize] ; [\"Offset of field: map_list::deleted\"] [:: std :: mem :: offset_of ! (map_list , deleted) - 136usize] ; } ; impl Default for map_list { fn default () -> Self { let mut s = :: std :: mem :: MaybeUninit :: < Self > :: uninit () ; unsafe { :: std :: ptr :: write_bytes (s . as_mut_ptr () , 0 , 1) ; s . assume_init () } } } # [doc = \" <add id=\\\"map_list_t DOC\\\">\\n<ndx>map_list_t</ndx>\\n<ndx>map_type_t</ndx>\\n<name index=\\\"true\\\">map_list_t</name>\\n<doc>\\n<doc-item name=\\\"NAME\\\">map_list_t, map_type_t</doc-item>\\n<doc-item name=\\\"SYNOPSIS\\\">\\n<ndx>map_type_t</ndx><ndx>map_info_t</ndx>\\n<smaller>\\n<insert id=\\\"map_type_t def\\\"/>\\n<insert id=\\\"struct map_list def\\\"/>\\n</smaller>\\n</doc-item>\\n<doc-item name=\\\"DESCRIPTION\\\">\\nThis data structure is used to pass information about the set of\\nmappings a particular address in an address space contains.\\n</doc-item>\\n</doc>\\n</add>\\n<add-type id=\\\"struct map_list def\\\"></add-type>\"] pub type map_list_t = map_list ; # [doc = \" Type provided for backwards compatibility.\"] pub type pseudo_exceptions_t = :: std :: os :: raw :: c_int ; # [repr (u32)] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub enum exception_type_t { Sim_PE_Cancelled = 1022 , Sim_PE_Async_Required = 1023 , Sim_PE_Deferred = 1024 , Sim_PE_No_Exception = 1025 , Sim_PE_Silent_Break = 1026 , Sim_PE_Stop_Request = 1027 , Sim_PE_Inquiry_Outside_Memory = 1028 , Sim_PE_Inquiry_Unhandled = 1029 , Sim_PE_Execute_Outside_Memory = 1030 , Sim_PE_IO_Not_Taken = 1031 , Sim_PE_IO_Error = 1032 , Sim_PE_Stall_Cpu = 1033 , Sim_PE_Instruction_Finished = 1034 , Sim_PE_Default_Semantics = 1035 , Sim_PE_Ignore_Semantics = 1036 , Sim_PE_Last = 1037 , } extern \"C\" { pub fn VT_describe_pseudo_exception (ex : pseudo_exceptions_t) -> * const :: std :: os :: raw :: c_char ; } extern \"C\" { pub fn SIM_describe_pseudo_exception (ex : exception_type_t) -> * const :: std :: os :: raw :: c_char ; } extern \"C\" { pub fn SIM_translation_changed (obj : * mut conf_object_t) ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct granted_mem { _unused : [u8 ; 0] , } # [doc = \" Opaque type\"] pub type granted_mem_t = granted_mem ; # [doc = \" <add-type id=\\\"direct_memory_handle_t\\\"></add-type>\"] pub type direct_memory_handle_t = * mut granted_mem_t ; # [doc = \" <add id=\\\"direct_memory_t\\\">\\n<ndx>direct_memory_t</ndx>\\n<insert-upto text=\\\"direct_memory_t;\\\"/>\\n</add>\"] # [repr (C)] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct direct_memory_t { pub data : * mut uint8 , pub permission : access_t , pub inhibit : access_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of direct_memory_t\"] [:: std :: mem :: size_of :: < direct_memory_t > () - 16usize] ; [\"Alignment of direct_memory_t\"] [:: std :: mem :: align_of :: < direct_memory_t > () - 8usize] ; [\"Offset of field: direct_memory_t::data\"] [:: std :: mem :: offset_of ! (direct_memory_t , data) - 0usize] ; [\"Offset of field: direct_memory_t::permission\"] [:: std :: mem :: offset_of ! (direct_memory_t , permission) - 8usize] ; [\"Offset of field: direct_memory_t::inhibit\"] [:: std :: mem :: offset_of ! (direct_memory_t , inhibit) - 12usize] ; } ; impl Default for direct_memory_t { fn default () -> Self { let mut s = :: std :: mem :: MaybeUninit :: < Self > :: uninit () ; unsafe { :: std :: ptr :: write_bytes (s . as_mut_ptr () , 0 , 1) ; s . assume_init () } } } # [doc = \" <add-type id=\\\"direct_memory_ack_id_t\\\"></add-type>\"] pub type direct_memory_ack_id_t = uint64 ; # [doc = \" <add id=\\\"direct_memory_lookup_t\\\">\\n<ndx>direct_memory_t</ndx>\\n<insert-upto text=\\\"direct_memory_lookup_t;\\\"/>\\n</add>\"] # [repr (C)] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct direct_memory_lookup_t { pub target : * mut conf_object_t , pub offs : uint64 , # [doc = \" conflicting breakpoints\"] pub breakpoints : access_t , # [doc = \" conflicting tracers\"] pub tracers : access_t , # [doc = \" handle valid for access\"] pub access : access_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of direct_memory_lookup_t\"] [:: std :: mem :: size_of :: < direct_memory_lookup_t > () - 32usize] ; [\"Alignment of direct_memory_lookup_t\"] [:: std :: mem :: align_of :: < direct_memory_lookup_t > () - 8usize] ; [\"Offset of field: direct_memory_lookup_t::target\"] [:: std :: mem :: offset_of ! (direct_memory_lookup_t , target) - 0usize] ; [\"Offset of field: direct_memory_lookup_t::offs\"] [:: std :: mem :: offset_of ! (direct_memory_lookup_t , offs) - 8usize] ; [\"Offset of field: direct_memory_lookup_t::breakpoints\"] [:: std :: mem :: offset_of ! (direct_memory_lookup_t , breakpoints) - 16usize] ; [\"Offset of field: direct_memory_lookup_t::tracers\"] [:: std :: mem :: offset_of ! (direct_memory_lookup_t , tracers) - 20usize] ; [\"Offset of field: direct_memory_lookup_t::access\"] [:: std :: mem :: offset_of ! (direct_memory_lookup_t , access) - 24usize] ; } ; impl Default for direct_memory_lookup_t { fn default () -> Self { let mut s = :: std :: mem :: MaybeUninit :: < Self > :: uninit () ; unsafe { :: std :: ptr :: write_bytes (s . as_mut_ptr () , 0 , 1) ; s . assume_init () } } } # [doc = \" <add id=\\\"direct_memory_tags_t\\\">\\n<ndx>direct_memory_tags_t</ndx>\\n<insert-upto text=\\\"direct_memory_tags_t;\\\"/>\\n</add>\"] # [repr (C)] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct direct_memory_tags_t { pub data : * mut uint8 , pub len : :: std :: os :: raw :: c_uint , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of direct_memory_tags_t\"] [:: std :: mem :: size_of :: < direct_memory_tags_t > () - 16usize] ; [\"Alignment of direct_memory_tags_t\"] [:: std :: mem :: align_of :: < direct_memory_tags_t > () - 8usize] ; [\"Offset of field: direct_memory_tags_t::data\"] [:: std :: mem :: offset_of ! (direct_memory_tags_t , data) - 0usize] ; [\"Offset of field: direct_memory_tags_t::len\"] [:: std :: mem :: offset_of ! (direct_memory_tags_t , len) - 8usize] ; } ; impl Default for direct_memory_tags_t { fn default () -> Self { let mut s = :: std :: mem :: MaybeUninit :: < Self > :: uninit () ; unsafe { :: std :: ptr :: write_bytes (s . as_mut_ptr () , 0 , 1) ; s . assume_init () } } } pub const Sim_Trn_Instr : _bindgen_ty_16 = _bindgen_ty_16 :: Sim_Trn_Instr ; pub const Sim_Trn_Write : _bindgen_ty_16 = _bindgen_ty_16 :: Sim_Trn_Write ; pub const Sim_Trn_Control : _bindgen_ty_16 = _bindgen_ty_16 :: Sim_Trn_Control ; pub const Sim_Trn_Prefetch : _bindgen_ty_16 = _bindgen_ty_16 :: Sim_Trn_Prefetch ; # [repr (u32)] # [doc = \" Bits in memory transaction types\"] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub enum _bindgen_ty_16 { Sim_Trn_Instr = 1 , Sim_Trn_Write = 2 , # [doc = \" Not a memory transaction. Signifies that\\nthis is not an exchange of data between CPU\\nand memory.\"] Sim_Trn_Control = 4 , # [doc = \" no defined semantics really, may go away\"] Sim_Trn_Prefetch = 8 , } # [repr (u32)] # [doc = \" <add id=\\\"mem_op_type_t DOC\\\">\\n<ndx>mem_op_type_t</ndx>\\n<name index=\\\"true\\\">mem_op_type_t</name>\\n<doc>\\n<doc-item name=\\\"NAME\\\">mem_op_type_t</doc-item>\\n<doc-item name=\\\"SYNOPSIS\\\">\\n<smaller>\\n<insert id=\\\"mem_op_type_t def\\\"/>\\n</smaller>\\n</doc-item>\\n<doc-item name=\\\"DESCRIPTION\\\">\\nThis enum is used to identify the type of a memory operation. The\\nfunction <fun>SIM_get_mem_op_type()</fun> returns the type of a\\n<type>generic_transaction_t</type>, and <fun>SIM_set_mem_op_type()</fun>\\nis used to set it.\\n</doc-item>\\n<doc-item name=\\\"SEE ALSO\\\">\\n<fun>SIM_get_mem_op_type</fun>, <fun>SIM_set_mem_op_type</fun>,\\n<fun>SIM_get_mem_op_type_name</fun>\\n<type>generic_transaction_t</type>,\\n</doc-item>\\n</doc>\\n</add>\\n\\n<add-type id=\\\"mem_op_type_t def\\\"></add-type>\"] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub enum mem_op_type_t { Sim_Trans_Load = 0 , Sim_Trans_Store = 2 , Sim_Trans_Instr_Fetch = 1 , Sim_Trans_Prefetch = 12 , Sim_Trans_Cache = 4 , } # [repr (u32)] # [doc = \" <add-type id=\\\"ini_type_t\\\"></add-type>\"] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub enum ini_type_t { # [doc = \" catch uninitialized\"] Sim_Initiator_Illegal = 0 , Sim_Initiator_CPU = 4096 , Sim_Initiator_CPU_V9 = 4352 , Sim_Initiator_CPU_X86 = 4608 , Sim_Initiator_CPU_PPC = 4864 , Sim_Initiator_CPU_Alpha = 5120 , Sim_Initiator_CPU_MIPS = 5632 , Sim_Initiator_CPU_ARM = 5888 , Sim_Initiator_CPU_V8 = 6144 , Sim_Initiator_CPU_H8 = 6400 , Sim_Initiator_CPU_SH = 6656 , Sim_Initiator_Device = 8192 , Sim_Initiator_PCI_Device = 8208 , # [doc = \" The transaction is a cache\\ntransaction as defined by\\ng-cache\"] Sim_Initiator_Cache = 12288 , # [doc = \" initiator == NULL\"] Sim_Initiator_Other = 16384 , # [doc = \" 0x5000 - 0x5fff are for user-\\nwritten objects that need to\\ntag mem-ops.\"] Sim_Initiator_User_Defined = 20480 , } # [repr (u32)] # [doc = \" <add id=\\\"block_flag_t DOC\\\">\\n<ndx>block_flag_t</ndx>\\n<name index=\\\"true\\\">block_flag_t</name>\\n<doc>\\n<doc-item name=\\\"NAME\\\">block_flag_t</doc-item>\\n<doc-item name=\\\"SYNOPSIS\\\">\\n<insert id=\\\"block_flag_t def\\\"/>\\n</doc-item>\\n<doc-item name=\\\"DESCRIPTION\\\">\\nThis enum are flags for blocking various internal caches (internal).\\n</doc-item>\\n</doc>\\n</add>\\n\\n<add-type id=\\\"block_flag_t def\\\"></add-type>\"] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub enum block_flag_t { # [doc = \" want memhier or timing model\\nto see future accesses\"] Sim_Block_Memhier = 1 , # [doc = \" want future MMU visibility\"] Sim_Block_MMU = 2 , # [doc = \" want future MMU visibility\\nfor accesses that skip the\\nIOSTC lookup\"] Sim_Block_MMU_IOSTC = 4 , # [doc = \" need breakpoint check\"] Sim_Block_Breakpoint = 8 , # [doc = \" is not memory\"] Sim_Block_Notmem = 16 , # [doc = \" memory is byteswapped\"] Sim_Block_Endian = 32 , # [doc = \" DSTC is disabled for this\\naccess\"] Sim_Block_DSTC_Disabled = 64 , } # [doc = \" <add id=\\\"generic_transaction_t DOC\\\">\\n<ndx>generic_transaction_t</ndx>\\n<name index=\\\"true\\\">generic_transaction_t</name>\\n<doc>\\n\\n<doc-item name=\\\"NAME\\\">generic_transaction_t</doc-item>\\n\\n<doc-item name=\\\"DESCRIPTION\\\"> A <type>generic_transaction_t</type>\\nrepresents a memory transaction. It should only be accessed via the accessor\\nfunctions documented in <cite>Device API Functions, Core, Memory\\nTransactions</cite>.</doc-item>\\n\\n</doc>\\n</add>\"] # [repr (C)] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct generic_transaction { pub logical_address : logical_address_t , pub physical_address : physical_address_t , # [doc = \" size in bytes\"] pub size : :: std :: os :: raw :: c_uint , # [doc = \" opaque\"] pub type_ : mem_op_type_t , pub _bitfield_align_1 : [u8 ; 0] , pub _bitfield_1 : __BindgenBitfieldUnit < [u8 ; 2usize] > , # [doc = \" what we wish to block\\nfrom caching\"] pub block_flags : :: std :: os :: raw :: c_uint , # [doc = \" cpu, device, or other\"] pub ini_type : ini_type_t , pub ini_ptr : * mut conf_object_t , # [doc = \" set if memhier throws\\nexception, otherwise\\nSim_PE_No_Exception\"] pub exception : exception_type_t , # [doc = \" user pointer that Simics never\\ntouches\"] pub user_ptr : * mut :: std :: os :: raw :: c_void , # [doc = \" data pointer for the\\ninitiator\"] pub real_address : * mut uint8 , # [doc = \" internal, # of memory space\\ntransitions\"] pub space_count : :: std :: os :: raw :: c_int , pub transaction : * mut transaction , # [doc = \" no longer used\"] pub reserved : * mut page_t , # [doc = \" no longer used\"] pub reserved2 : :: std :: os :: raw :: c_uint , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of generic_transaction\"] [:: std :: mem :: size_of :: < generic_transaction > () - 104usize] ; [\"Alignment of generic_transaction\"] [:: std :: mem :: align_of :: < generic_transaction > () - 8usize] ; [\"Offset of field: generic_transaction::logical_address\"] [:: std :: mem :: offset_of ! (generic_transaction , logical_address) - 0usize] ; [\"Offset of field: generic_transaction::physical_address\"] [:: std :: mem :: offset_of ! (generic_transaction , physical_address) - 8usize] ; [\"Offset of field: generic_transaction::size\"] [:: std :: mem :: offset_of ! (generic_transaction , size) - 16usize] ; [\"Offset of field: generic_transaction::type_\"] [:: std :: mem :: offset_of ! (generic_transaction , type_) - 20usize] ; [\"Offset of field: generic_transaction::block_flags\"] [:: std :: mem :: offset_of ! (generic_transaction , block_flags) - 28usize] ; [\"Offset of field: generic_transaction::ini_type\"] [:: std :: mem :: offset_of ! (generic_transaction , ini_type) - 32usize] ; [\"Offset of field: generic_transaction::ini_ptr\"] [:: std :: mem :: offset_of ! (generic_transaction , ini_ptr) - 40usize] ; [\"Offset of field: generic_transaction::exception\"] [:: std :: mem :: offset_of ! (generic_transaction , exception) - 48usize] ; [\"Offset of field: generic_transaction::user_ptr\"] [:: std :: mem :: offset_of ! (generic_transaction , user_ptr) - 56usize] ; [\"Offset of field: generic_transaction::real_address\"] [:: std :: mem :: offset_of ! (generic_transaction , real_address) - 64usize] ; [\"Offset of field: generic_transaction::space_count\"] [:: std :: mem :: offset_of ! (generic_transaction , space_count) - 72usize] ; [\"Offset of field: generic_transaction::transaction\"] [:: std :: mem :: offset_of ! (generic_transaction , transaction) - 80usize] ; [\"Offset of field: generic_transaction::reserved\"] [:: std :: mem :: offset_of ! (generic_transaction , reserved) - 88usize] ; [\"Offset of field: generic_transaction::reserved2\"] [:: std :: mem :: offset_of ! (generic_transaction , reserved2) - 96usize] ; } ; impl Default for generic_transaction { fn default () -> Self { let mut s = :: std :: mem :: MaybeUninit :: < Self > :: uninit () ; unsafe { :: std :: ptr :: write_bytes (s . as_mut_ptr () , 0 , 1) ; s . assume_init () } } } impl generic_transaction { # [inline] pub fn atomic (& self) -> :: std :: os :: raw :: c_uint { unsafe { :: std :: mem :: transmute (self . _bitfield_1 . get (0usize , 1u8) as u32) } } # [inline] pub fn set_atomic (& mut self , val : :: std :: os :: raw :: c_uint) { unsafe { let val : u32 = :: std :: mem :: transmute (val) ; self . _bitfield_1 . set (0usize , 1u8 , val as u64) } } # [inline] pub fn inquiry (& self) -> :: std :: os :: raw :: c_uint { unsafe { :: std :: mem :: transmute (self . _bitfield_1 . get (1usize , 1u8) as u32) } } # [inline] pub fn set_inquiry (& mut self , val : :: std :: os :: raw :: c_uint) { unsafe { let val : u32 = :: std :: mem :: transmute (val) ; self . _bitfield_1 . set (1usize , 1u8 , val as u64) } } # [inline] pub fn non_coherent (& self) -> :: std :: os :: raw :: c_uint { unsafe { :: std :: mem :: transmute (self . _bitfield_1 . get (2usize , 1u8) as u32) } } # [inline] pub fn set_non_coherent (& mut self , val : :: std :: os :: raw :: c_uint) { unsafe { let val : u32 = :: std :: mem :: transmute (val) ; self . _bitfield_1 . set (2usize , 1u8 , val as u64) } } # [inline] pub fn ignore (& self) -> :: std :: os :: raw :: c_uint { unsafe { :: std :: mem :: transmute (self . _bitfield_1 . get (3usize , 1u8) as u32) } } # [inline] pub fn set_ignore (& mut self , val : :: std :: os :: raw :: c_uint) { unsafe { let val : u32 = :: std :: mem :: transmute (val) ; self . _bitfield_1 . set (3usize , 1u8 , val as u64) } } # [inline] pub fn may_stall (& self) -> :: std :: os :: raw :: c_uint { unsafe { :: std :: mem :: transmute (self . _bitfield_1 . get (4usize , 1u8) as u32) } } # [inline] pub fn set_may_stall (& mut self , val : :: std :: os :: raw :: c_uint) { unsafe { let val : u32 = :: std :: mem :: transmute (val) ; self . _bitfield_1 . set (4usize , 1u8 , val as u64) } } # [inline] pub fn reissue (& self) -> :: std :: os :: raw :: c_uint { unsafe { :: std :: mem :: transmute (self . _bitfield_1 . get (5usize , 1u8) as u32) } } # [inline] pub fn set_reissue (& mut self , val : :: std :: os :: raw :: c_uint) { unsafe { let val : u32 = :: std :: mem :: transmute (val) ; self . _bitfield_1 . set (5usize , 1u8 , val as u64) } } # [inline] pub fn block_STC (& self) -> :: std :: os :: raw :: c_uint { unsafe { :: std :: mem :: transmute (self . _bitfield_1 . get (6usize , 1u8) as u32) } } # [inline] pub fn set_block_STC (& mut self , val : :: std :: os :: raw :: c_uint) { unsafe { let val : u32 = :: std :: mem :: transmute (val) ; self . _bitfield_1 . set (6usize , 1u8 , val as u64) } } # [inline] pub fn use_page_cache (& self) -> :: std :: os :: raw :: c_uint { unsafe { :: std :: mem :: transmute (self . _bitfield_1 . get (7usize , 1u8) as u32) } } # [inline] pub fn set_use_page_cache (& mut self , val : :: std :: os :: raw :: c_uint) { unsafe { let val : u32 = :: std :: mem :: transmute (val) ; self . _bitfield_1 . set (7usize , 1u8 , val as u64) } } # [inline] pub fn inverse_endian (& self) -> :: std :: os :: raw :: c_uint { unsafe { :: std :: mem :: transmute (self . _bitfield_1 . get (8usize , 1u8) as u32) } } # [inline] pub fn set_inverse_endian (& mut self , val : :: std :: os :: raw :: c_uint) { unsafe { let val : u32 = :: std :: mem :: transmute (val) ; self . _bitfield_1 . set (8usize , 1u8 , val as u64) } } # [inline] pub fn page_cross (& self) -> :: std :: os :: raw :: c_uint { unsafe { :: std :: mem :: transmute (self . _bitfield_1 . get (9usize , 2u8) as u32) } } # [inline] pub fn set_page_cross (& mut self , val : :: std :: os :: raw :: c_uint) { unsafe { let val : u32 = :: std :: mem :: transmute (val) ; self . _bitfield_1 . set (9usize , 2u8 , val as u64) } } # [inline] pub fn mem_hier_on_fetch (& self) -> :: std :: os :: raw :: c_uint { unsafe { :: std :: mem :: transmute (self . _bitfield_1 . get (11usize , 1u8) as u32) } } # [inline] pub fn set_mem_hier_on_fetch (& mut self , val : :: std :: os :: raw :: c_uint) { unsafe { let val : u32 = :: std :: mem :: transmute (val) ; self . _bitfield_1 . set (11usize , 1u8 , val as u64) } } # [inline] pub fn new_bitfield_1 (atomic : :: std :: os :: raw :: c_uint , inquiry : :: std :: os :: raw :: c_uint , non_coherent : :: std :: os :: raw :: c_uint , ignore : :: std :: os :: raw :: c_uint , may_stall : :: std :: os :: raw :: c_uint , reissue : :: std :: os :: raw :: c_uint , block_STC : :: std :: os :: raw :: c_uint , use_page_cache : :: std :: os :: raw :: c_uint , inverse_endian : :: std :: os :: raw :: c_uint , page_cross : :: std :: os :: raw :: c_uint , mem_hier_on_fetch : :: std :: os :: raw :: c_uint) -> __BindgenBitfieldUnit < [u8 ; 2usize] > { let mut __bindgen_bitfield_unit : __BindgenBitfieldUnit < [u8 ; 2usize] > = Default :: default () ; __bindgen_bitfield_unit . set (0usize , 1u8 , { let atomic : u32 = unsafe { :: std :: mem :: transmute (atomic) } ; atomic as u64 }) ; __bindgen_bitfield_unit . set (1usize , 1u8 , { let inquiry : u32 = unsafe { :: std :: mem :: transmute (inquiry) } ; inquiry as u64 }) ; __bindgen_bitfield_unit . set (2usize , 1u8 , { let non_coherent : u32 = unsafe { :: std :: mem :: transmute (non_coherent) } ; non_coherent as u64 }) ; __bindgen_bitfield_unit . set (3usize , 1u8 , { let ignore : u32 = unsafe { :: std :: mem :: transmute (ignore) } ; ignore as u64 }) ; __bindgen_bitfield_unit . set (4usize , 1u8 , { let may_stall : u32 = unsafe { :: std :: mem :: transmute (may_stall) } ; may_stall as u64 }) ; __bindgen_bitfield_unit . set (5usize , 1u8 , { let reissue : u32 = unsafe { :: std :: mem :: transmute (reissue) } ; reissue as u64 }) ; __bindgen_bitfield_unit . set (6usize , 1u8 , { let block_STC : u32 = unsafe { :: std :: mem :: transmute (block_STC) } ; block_STC as u64 }) ; __bindgen_bitfield_unit . set (7usize , 1u8 , { let use_page_cache : u32 = unsafe { :: std :: mem :: transmute (use_page_cache) } ; use_page_cache as u64 }) ; __bindgen_bitfield_unit . set (8usize , 1u8 , { let inverse_endian : u32 = unsafe { :: std :: mem :: transmute (inverse_endian) } ; inverse_endian as u64 }) ; __bindgen_bitfield_unit . set (9usize , 2u8 , { let page_cross : u32 = unsafe { :: std :: mem :: transmute (page_cross) } ; page_cross as u64 }) ; __bindgen_bitfield_unit . set (11usize , 1u8 , { let mem_hier_on_fetch : u32 = unsafe { :: std :: mem :: transmute (mem_hier_on_fetch) } ; mem_hier_on_fetch as u64 }) ; __bindgen_bitfield_unit } } # [doc = \" <add id=\\\"generic_transaction_t DOC\\\">\\n<ndx>generic_transaction_t</ndx>\\n<name index=\\\"true\\\">generic_transaction_t</name>\\n<doc>\\n\\n<doc-item name=\\\"NAME\\\">generic_transaction_t</doc-item>\\n\\n<doc-item name=\\\"DESCRIPTION\\\"> A <type>generic_transaction_t</type>\\nrepresents a memory transaction. It should only be accessed via the accessor\\nfunctions documented in <cite>Device API Functions, Core, Memory\\nTransactions</cite>.</doc-item>\\n\\n</doc>\\n</add>\"] pub type generic_transaction_t = generic_transaction ; extern \"C\" { pub fn SIM_c_get_mem_op_value_buf (mop : * const generic_transaction_t , dst : * mut uint8) ; } extern \"C\" { pub fn SIM_c_set_mem_op_value_buf (mop : * mut generic_transaction_t , src : * const uint8) ; } extern \"C\" { pub fn SIM_get_mem_op_value_buf (mop : * const generic_transaction_t) -> attr_value_t ; } extern \"C\" { pub fn SIM_set_mem_op_value_buf (mop : * mut generic_transaction_t , value : attr_value_t) ; } extern \"C\" { pub fn SIM_get_mem_op_type_name (type_ : mem_op_type_t) -> * const :: std :: os :: raw :: c_char ; } extern \"C\" { pub fn SIM_get_mem_op_value_le (mop : * const generic_transaction_t) -> uint64 ; } extern \"C\" { pub fn SIM_get_mem_op_value_be (mop : * const generic_transaction_t) -> uint64 ; } extern \"C\" { pub fn SIM_get_mem_op_value_cpu (mop : * const generic_transaction_t) -> uint64 ; } extern \"C\" { pub fn SIM_set_mem_op_value_le (mop : * mut generic_transaction_t , value : uint64) ; } extern \"C\" { pub fn SIM_set_mem_op_value_be (mop : * mut generic_transaction_t , value : uint64) ; } extern \"C\" { pub fn SIM_set_mem_op_value_cpu (mop : * mut generic_transaction_t , value : uint64) ; } extern \"C\" { pub fn SIM_set_mem_op_ignore (mop : * mut generic_transaction_t , ignore : bool) ; } extern \"C\" { pub fn SIM_get_mem_op_ignore (mop : * const generic_transaction_t) -> bool ; } extern \"C\" { pub fn SIM_make_mem_op_write (addr : physical_address_t , data : bytes_t , inquiry : bool , initiator : * mut conf_object_t) -> generic_transaction_t ; } extern \"C\" { pub fn SIM_make_mem_op_read (addr : physical_address_t , data : buffer_t , inquiry : bool , initiator : * mut conf_object_t) -> generic_transaction_t ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct map_target { _unused : [u8 ; 0] , } # [doc = \" <add-type id=\\\"map_target_t def\\\"></add-type>\"] pub type map_target_t = map_target ; extern \"C\" { pub fn SIM_new_map_target (obj : * mut conf_object_t , port : * const :: std :: os :: raw :: c_char , chained_target : * const map_target_t) -> * mut map_target_t ; } extern \"C\" { pub fn SIM_free_map_target (mt : * mut map_target_t) ; } extern \"C\" { pub fn SIM_map_target_object (mt : * const map_target_t) -> * mut conf_object_t ; } extern \"C\" { pub fn SIM_map_target_port (mt : * const map_target_t) -> * const :: std :: os :: raw :: c_char ; } extern \"C\" { pub fn SIM_map_target_target (mt : * const map_target_t) -> * const map_target_t ; } extern \"C\" { pub fn VT_map_target_access (mt : * const map_target_t , mop : * mut generic_transaction_t) -> exception_type_t ; } extern \"C\" { pub fn VT_map_target_dm_lookup (mt : * const map_target_t , requester : * mut conf_object_t , addr : physical_address_t , size : uint64 , access : access_t) -> direct_memory_lookup_t ; } extern \"C\" { pub fn SIM_map_target_flush (mt : * const map_target_t , base : uint64 , size : uint64 , access : access_t) -> bool ; } # [repr (u32)] # [doc = \" <add id=\\\"translation_t DOC\\\">\\n<ndx>translation_flags_t</ndx>\\n<ndx>translation_t</ndx>\\n<name index=\\\"true\\\">translation_t</name>\\n\\n<doc>\\n<doc-item name=\\\"NAME\\\">translation_t</doc-item>\\n<doc-item name=\\\"DESCRIPTION\\\">\\n<insert id=\\\"translation_t description\\\"/>\\n</doc-item>\\n</doc>\\n</add>\\n\\n<add id=\\\"translation_t description\\\">\\n\\nThe <type>translation_t</type> type is used for the implementation\\nof the <iface>translator</iface> and <iface>transaction_translator</iface>\\ninterfaces. It describes the range\\nfor which the translation is valid, its target as well as\\ntranslation properties.\\n\\nThe range for which the translation is valid is specified by the\\nfields <param>base</param> and <param>size</param>. As a special case,\\nif <param>size</param> and <param>base</param> are both 0, then the\\ntranslation is valid for the entire address space. To allow optimizations\\n(e.g., caching of translations) translators should return as wide ranges\\nas possible.\\n\\nThe <param>target</param> field specifies the object and interface\\nport which is mapped into the address range in the form of a map target.\\nMap targets can be created using the function\\n<fun>SIM_new_map_target</fun>. Please note that the ownership over\\nthe returned map target is not transferred to the interface caller.\\nThis means that to avoid memory leaks the reference to the map\\ntarget must be kept by the implementing object, and\\n<fun>SIM_free_map_target</fun> function should be later used to\\ndeallocate the map target. Possible map targets include IO\\nbanks, RAM, ROM, memory spaces, port spaces, bridges, and translators.\\nThe <param>base</param> address in the source address space is\\nmapped to the target address returned in the <param>start</param> field.\\n\\nA null value returned in the <param>target</param> field signifies that\\nthe translation cannot be done. This can happen if there is nothing mapped\\nin the range defined by <param>base</param> and <param>size</param>\\n(transactions directed to this region will be terminated\\nwith the pseudo exception <const>Sim_PE_IO_Not_Taken</const>) or\\nif a translation valid for all requested accesses cannot be performed.\\nIn the latter case, the requestor is expected to repeat\\nthe interface call with just a single bit set in the access mask,\\ne.g. <const>Sim_Access_Read</const>.\\n\\nIf the returned translation is not static but instead depends on e.g.\\na device register, then the translator can set the flags field\\nto <const>Sim_Translation_Dynamic</const>. This flag indicates that\\nthe translation must not be cached. If this flag is not used, then it\\nis the responsibility of the translator to call\\neither <fun>SIM_map_target_flush</fun> (preferably)\\nor <fun>SIM_translation_changed</fun> function when a previously performed\\ntranslation is no longer valid.\\n\\nThe <const>Sim_Translation_Ambiguous</const> flag should not generally\\nbe used by models. It is used by Simics objects of\\nthe <class>memory-space</class> class to indicate an error in\\nthe memory mapping when several destinations are specified for the address.\\n\\n<insert-until text=\\\"// ADD TYPE translation\\\"/>\\n\\n<doc-item name=\\\"SEE ALSO\\\">\\n<fun>SIM_map_target_flush</fun>,\\n<fun>SIM_translation_changed</fun>\\n</doc-item>\\n\\n</add>\"] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub enum translation_flags_t { Sim_Translation_Dynamic = 1 , Sim_Translation_Ambiguous = 2 , } # [repr (C)] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct translation_t { # [doc = \" target of translation\"] pub target : * const map_target_t , # [doc = \" base address of translated range\"] pub base : physical_address_t , # [doc = \" start address in mapped object\"] pub start : physical_address_t , # [doc = \" size of translated range\"] pub size : physical_address_t , pub flags : translation_flags_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of translation_t\"] [:: std :: mem :: size_of :: < translation_t > () - 40usize] ; [\"Alignment of translation_t\"] [:: std :: mem :: align_of :: < translation_t > () - 8usize] ; [\"Offset of field: translation_t::target\"] [:: std :: mem :: offset_of ! (translation_t , target) - 0usize] ; [\"Offset of field: translation_t::base\"] [:: std :: mem :: offset_of ! (translation_t , base) - 8usize] ; [\"Offset of field: translation_t::start\"] [:: std :: mem :: offset_of ! (translation_t , start) - 16usize] ; [\"Offset of field: translation_t::size\"] [:: std :: mem :: offset_of ! (translation_t , size) - 24usize] ; [\"Offset of field: translation_t::flags\"] [:: std :: mem :: offset_of ! (translation_t , flags) - 32usize] ; } ; impl Default for translation_t { fn default () -> Self { let mut s = :: std :: mem :: MaybeUninit :: < Self > :: uninit () ; unsafe { :: std :: ptr :: write_bytes (s . as_mut_ptr () , 0 , 1) ; s . assume_init () } } } # [repr (u32)] # [doc = \" <add id=\\\"atom_id_t DOC\\\">\\n<ndx>atom_id_t</ndx>\\n<name index=\\\"true\\\">atom_id_t</name>\\n<doc>\\n\\n<doc-item name=\\\"NAME\\\">atom_id_t</doc-item>\\n\\n<doc-item name=\\\"DESCRIPTION\\\"> Each atom type is associated\\nwith a unique id, the <type>atom_id_t</type>. Most atoms types are\\npre-defined by Simics Core and have static ids, but there are\\nalso dynamically assigned ids which are used for custom atom types.\\n\\nAtom ids are internal to Simics Core and should never be used explicitly\\nby a Simics models. Instead, there are API functions like\\ne.g. <fun>ATOM_size</fun> or <fun>ATOM_initiator</fun> which should be\\nused instead.\\n</doc-item>\\n</doc></add>\"] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub enum atom_id_t { Sim_Atom_Id_illegal = 0 , Sim_Atom_Id_list_end = 1 , Sim_Atom_Id_flags = 2 , Sim_Atom_Id_data = 3 , Sim_Atom_Id_size = 4 , Sim_Atom_Id_fill_value = 5 , Sim_Atom_Id_initiator = 6 , Sim_Atom_Id_user_data = 7 , Sim_Atom_Id_completion = 8 , Sim_Atom_Id_owner = 9 , Sim_Atom_Id_memop = 10 , Sim_Atom_Id_bytemap = 11 , Sim_Atom_Id_pcie_type = 256 , Sim_Atom_Id_pcie_requester_id = 257 , Sim_Atom_Id_pcie_msg_type = 258 , Sim_Atom_Id_pcie_msg_route = 259 , Sim_Atom_Id_pcie_pasid = 260 , Sim_Atom_Id_pcie_at = 261 , Sim_Atom_Id_pcie_error_ret = 262 , Sim_Atom_Id_pcie_byte_count_ret = 263 , Sim_Atom_Id_pcie_device_id = 264 , Sim_Atom_Id_pcie_destination_segment = 265 , Sim_Atom_Id_pcie_link_negotiation = 266 , Sim_Atom_Id_arm_privileged = 512 , Sim_Atom_Id_arm_nonsecure = 513 , Sim_Atom_Id_arm_memory_attributes = 514 , Sim_Atom_Id_arm_smmu_attributes = 515 , Sim_Atom_Id_arm_nsaid = 516 , Sim_Atom_Id_riscv_wg_wid = 768 , } # [doc = \" <add id=\\\"atom_t DOC\\\">\\n<ndx>atom_t</ndx>\\n<name index=\\\"true\\\">atom_t</name>\\n<doc>\\n\\n<doc-item name=\\\"NAME\\\">atom_t</doc-item>\\n\\n<doc-item name=\\\"DESCRIPTION\\\"> The <type>atom_t</type> type is a container\\ntype for tagged data associated with a transaction. The kind of data\\nstored in the atom is determined by the <var>id</var> field, and a pointer\\nto the data or the data itself is stored in the <var>ptr</var> field.\\n\\nAtoms should always be initialized using provided constructor functions\\nlike <fun>ATOM_flags</fun> or <fun>ATOM_size</fun>. Usage of\\nthe constructors ensures that the data payload is of the correct type\\nand that the <fun>id</fun> is set to the correct value.\\n\\nAtom lists must be terminated with the special <const>ATOM_LIST_END</const>\\nmarker.\\n</doc-item>\\n</doc></add>\"] # [repr (C)] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct atom_t { pub id : atom_id_t , pub ptr : * mut :: std :: os :: raw :: c_void , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of atom_t\"] [:: std :: mem :: size_of :: < atom_t > () - 16usize] ; [\"Alignment of atom_t\"] [:: std :: mem :: align_of :: < atom_t > () - 8usize] ; [\"Offset of field: atom_t::id\"] [:: std :: mem :: offset_of ! (atom_t , id) - 0usize] ; [\"Offset of field: atom_t::ptr\"] [:: std :: mem :: offset_of ! (atom_t , ptr) - 8usize] ; } ; impl Default for atom_t { fn default () -> Self { let mut s = :: std :: mem :: MaybeUninit :: < Self > :: uninit () ; unsafe { :: std :: ptr :: write_bytes (s . as_mut_ptr () , 0 , 1) ; s . assume_init () } } } # [doc = \" <add id=\\\"transaction_t DOC\\\">\\n<ndx>transaction_t</ndx>\\n<name index=\\\"true\\\">transaction_t</name>\\n<doc>\\n\\n<doc-item name=\\\"NAME\\\">transaction_t</doc-item>\\n\\n<doc-item name=\\\"DESCRIPTION\\\"> A <type>transaction_t</type>\\nrepresents a memory transaction. The properties of the\\ntransaction is stored in the form of an atom list, where each\\natom describes a particular aspect of the transaction, like the\\nsize of the transaction.\\n\\nThe field <var>atoms</var> points to the atoms list,\\nwhich must be terminated with the constant <const>ATOM_LIST_END</const>.\\n\\nThe <var>prev</var> field points to an optional parent transaction.\\nIf a particular atom is not found in the atoms list, then the\\nparent\'s list of atoms is consulted instead. The <var>prev</var>\\npointer is also used when a chained transaction is monitored\\nwith <fun>SIM_monitor_chained_transaction</fun>.\\n\\nBesides the fields above, the transaction contains some internal\\nfields that should be initialized to 0. The internal fields should\\nnot be referenced explicitly since they are likely to change\\nin future Simics releases.\\n\\nFor details, please refer to \\\"Transactions\\\" chapter in\\nthe Model Builder\'s User Guide.\\n\\n</doc-item>\\n</doc></add>\"] # [repr (C)] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct transaction { pub atoms : * mut atom_t , pub prev : * mut transaction , pub _cache : * mut transaction_cache , pub _status : uint64 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of transaction\"] [:: std :: mem :: size_of :: < transaction > () - 32usize] ; [\"Alignment of transaction\"] [:: std :: mem :: align_of :: < transaction > () - 8usize] ; [\"Offset of field: transaction::atoms\"] [:: std :: mem :: offset_of ! (transaction , atoms) - 0usize] ; [\"Offset of field: transaction::prev\"] [:: std :: mem :: offset_of ! (transaction , prev) - 8usize] ; [\"Offset of field: transaction::_cache\"] [:: std :: mem :: offset_of ! (transaction , _cache) - 16usize] ; [\"Offset of field: transaction::_status\"] [:: std :: mem :: offset_of ! (transaction , _status) - 24usize] ; } ; impl Default for transaction { fn default () -> Self { let mut s = :: std :: mem :: MaybeUninit :: < Self > :: uninit () ; unsafe { :: std :: ptr :: write_bytes (s . as_mut_ptr () , 0 , 1) ; s . assume_init () } } } # [doc = \" <add id=\\\"transaction_t DOC\\\">\\n<ndx>transaction_t</ndx>\\n<name index=\\\"true\\\">transaction_t</name>\\n<doc>\\n\\n<doc-item name=\\\"NAME\\\">transaction_t</doc-item>\\n\\n<doc-item name=\\\"DESCRIPTION\\\"> A <type>transaction_t</type>\\nrepresents a memory transaction. The properties of the\\ntransaction is stored in the form of an atom list, where each\\natom describes a particular aspect of the transaction, like the\\nsize of the transaction.\\n\\nThe field <var>atoms</var> points to the atoms list,\\nwhich must be terminated with the constant <const>ATOM_LIST_END</const>.\\n\\nThe <var>prev</var> field points to an optional parent transaction.\\nIf a particular atom is not found in the atoms list, then the\\nparent\'s list of atoms is consulted instead. The <var>prev</var>\\npointer is also used when a chained transaction is monitored\\nwith <fun>SIM_monitor_chained_transaction</fun>.\\n\\nBesides the fields above, the transaction contains some internal\\nfields that should be initialized to 0. The internal fields should\\nnot be referenced explicitly since they are likely to change\\nin future Simics releases.\\n\\nFor details, please refer to \\\"Transactions\\\" chapter in\\nthe Model Builder\'s User Guide.\\n\\n</doc-item>\\n</doc></add>\"] pub type transaction_t = transaction ; # [doc = \" <add id=\\\"transaction_completion_t DOC\\\">\\n<ndx>transaction_completion_t</ndx>\\n<name index=\\\"true\\\">transaction_completion_t</name>\\n<doc>\\n<doc-item name=\\\"NAME\\\">transaction_completion_t</doc-item>\\n<doc-item name=\\\"SYNOPSIS\\\">\\n<insert id=\\\"transaction_completion_t def\\\"/></doc-item>\\n<doc-item name=\\\"DESCRIPTION\\\">\\nCallback invoked when an asynchronous transaction is completed.\\nThe callback is stored in a <type>completion</type> atom belonging\\nto the transaction <arg>t</arg>. Similarly, <arg>obj</arg> is an\\nobject stored in either an <type>owner</type> atom or an\\n<type>initiator</type> atom. The former takes precedence if both are\\npresent.\\n\\nCompletion callbacks are only invoked for transactions monitored\\nwith either <fun>SIM_monitor_transaction</fun> or\\n<fun>SIM_monitor_chained_transaction</fun>, or for transactions\\ndeferred with <fun>SIM_defer_owned_transaction</fun>.\\n\\nThe completion status for the operation is given in the\\n<param>ex</param> argument, and is usually equal to\\n<const>Sim_PE_No_Exception</const>.\\n\\nThe return value of the callback is the completion status\\nfor the transaction <arg>t</arg>. This status is used to complete\\nthe parent transaction if the transaction is being monitored with\\n<fun>SIM_monitor_chained_transaction</fun>. The return value is\\nalso returned by <fun>SIM_monitor_transaction</fun> or\\n<fun>SIM_monitor_chained_transaction</fun> when a transaction is\\ncompleted synchronously.\\n\\nIf the callback returns <const>Sim_PE_Deferred</const>, then\\nthe transaction <arg>t</arg> is left uncompleted. It must then\\nbe completed later on by an explicit call to\\n<fun>SIM_complete_transaction</fun>.\\n\\n</doc-item></doc></add>\\n\\n<add-type id=\\\"transaction_completion_t def\\\"></add-type>\"] pub type transaction_completion_t = :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , t : * mut transaction_t , ex : exception_type_t) -> exception_type_t > ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct transaction_bytemap { _unused : [u8 ; 0] , } pub type transaction_bytemap_t = transaction_bytemap ; # [repr (u32)] # [doc = \" <add id=\\\"transaction_flags_t DOC\\\">\\n<ndx>transaction_flags_t</ndx>\\n<name index=\\\"true\\\">transaction_flags_t</name>\\n<doc>\\n\\n<doc-item name=\\\"NAME\\\">transaction_flags_t</doc-item>\\n<doc-item name=\\\"SYNOPSIS\\\">\\n<insert id=\\\"transaction_flags_t def\\\"/></doc-item>\\n<doc-item name=\\\"DESCRIPTION\\\">\\nThe <type>transaction_flags_t</type> type is bitmask\\nused to specify the transaction type. It is a combination\\nof the following bits:\\n\\n<tt>Sim_Transaction_Fetch</tt> indicates that the transaction is\\nan instruction fetch.\\n\\n<tt>Sim_Transaction_Write</tt> is set if the transaction is a write.\\n\\n<tt>Sim_Transaction_Control</tt> is set if the transaction does not\\nactually transfer any data. One example of such transactions is\\ncache control operations.\\n\\nThe <tt>Sim_Transaction_Inquiry</tt> bit signifies that side\\neffects normally triggered by the transaction should be suppressed.\\nExamples of side effects include triggering breakpoints and\\nclearing \\\"read-to-clear\\\" device registers.\\n\\nWhen neither <tt>Sim_Transaction_Fetch</tt>\\nnor <tt>Sim_Transaction_Write</tt> is set the transaction is\\na read transaction.\\n\\n</doc-item></doc></add>\\n<add-type id=\\\"transaction_flags_t def\\\"></add-type>\"] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub enum transaction_flags_t { Sim_Transaction_Fetch = 1 , Sim_Transaction_Write = 2 , Sim_Transaction_Control = 4 , Sim_Transaction_Inquiry = 256 , Sim_Transaction_Incoherent = 512 , Sim_Transaction_Atomic = 1024 , } extern \"C\" { # [doc = \" Accessors.\"] pub fn SIM_transaction_is_fetch (t : * const transaction_t) -> bool ; } extern \"C\" { pub fn SIM_transaction_is_write (t : * const transaction_t) -> bool ; } extern \"C\" { pub fn SIM_transaction_is_read (t : * const transaction_t) -> bool ; } extern \"C\" { pub fn SIM_transaction_is_inquiry (t : * const transaction_t) -> bool ; } extern \"C\" { pub fn SIM_transaction_is_deferrable (t : * const transaction_t) -> bool ; } extern \"C\" { pub fn SIM_transaction_size (t : * const transaction_t) -> :: std :: os :: raw :: c_uint ; } extern \"C\" { pub fn SIM_transaction_initiator (t : * const transaction_t) -> * mut conf_object_t ; } extern \"C\" { pub fn SIM_transaction_flags (t : * const transaction_t) -> transaction_flags_t ; } extern \"C\" { # [doc = \" Transaction completion.\"] pub fn SIM_complete_transaction (t : * mut transaction_t , ex : exception_type_t) ; } extern \"C\" { pub fn SIM_defer_transaction (obj : * mut conf_object_t , t : * mut transaction_t) -> * mut transaction_t ; } extern \"C\" { pub fn SIM_defer_owned_transaction (t : * mut transaction_t) -> * mut transaction_t ; } extern \"C\" { pub fn SIM_replace_transaction (t_old : * mut transaction_t , t_new : * mut transaction_t) ; } extern \"C\" { pub fn SIM_monitor_transaction (t : * mut transaction_t , ex : exception_type_t) -> exception_type_t ; } extern \"C\" { pub fn SIM_monitor_chained_transaction (t : * mut transaction_t , ex : exception_type_t) -> exception_type_t ; } extern \"C\" { pub fn SIM_transaction_wait (t : * mut transaction_t , ex : exception_type_t) -> exception_type_t ; } extern \"C\" { pub fn SIM_poll_transaction (t : * mut transaction_t) -> exception_type_t ; } extern \"C\" { # [doc = \" Transaction data transfer.\"] pub fn SIM_set_transaction_bytes (t : * const transaction_t , bytes : bytes_t) ; } extern \"C\" { pub fn SIM_set_transaction_value_le (t : * const transaction_t , val : uint64) ; } extern \"C\" { pub fn SIM_set_transaction_value_be (t : * const transaction_t , val : uint64) ; } extern \"C\" { pub fn SIM_set_transaction_bytes_offs (t : * const transaction_t , offs : :: std :: os :: raw :: c_uint , bytes : bytes_t) ; } extern \"C\" { pub fn SIM_set_transaction_bytes_constant (t : * const transaction_t , value : uint8) ; } extern \"C\" { pub fn SIM_get_transaction_bytes (t : * const transaction_t , bytes : buffer_t) ; } extern \"C\" { pub fn SIM_get_transaction_bytes_offs (t : * const transaction_t , offs : :: std :: os :: raw :: c_uint , buf : buffer_t , zerofill_holes : bool) ; } extern \"C\" { pub fn SIM_get_transaction_value_le (t : * const transaction_t) -> uint64 ; } extern \"C\" { pub fn SIM_get_transaction_value_be (t : * const transaction_t) -> uint64 ; } extern \"C\" { # [doc = \" Transaction Issue.\"] pub fn SIM_issue_transaction (mt : * const map_target_t , t : * mut transaction_t , addr : uint64) -> exception_type_t ; } extern \"C\" { # [doc = \" This declaration fits better into <simics/base/memory.h>. We had to put it\\nhere since our headers intermix type definitions and func declarations.\"] pub fn SIM_inspect_address_routing (mt : * const map_target_t , t : * mut transaction_t , addr : uint64 , callback : :: std :: option :: Option < unsafe extern \"C\" fn (mt : * const map_target_t , t : * const transaction_t , addr : uint64 , base : uint64 , start : uint64 , size : uint64 , access : access_t , flags : translation_flags_t , data : * mut lang_void) -> bool > , data : * mut lang_void) -> bool ; } extern \"C\" { pub fn SIM_inspect_breakpoints (mt : * const map_target_t , t : * mut transaction_t , start : uint64 , end : uint64 , callback : :: std :: option :: Option < unsafe extern \"C\" fn (trigger_object : * mut conf_object_t , bp_set : breakpoint_set_t , t : * const transaction_t , addr : uint64 , size : uint64 , data : * mut lang_void) -> bool > , data : * mut lang_void) -> bool ; } extern \"C\" { # [doc = \" Transaction Checkpointing.\"] pub fn SIM_get_transaction_id (t : * mut transaction_t) -> int64 ; } extern \"C\" { pub fn SIM_reconnect_transaction (t : * mut transaction_t , id : int64) ; } extern \"C\" { pub fn VT_get_transaction (id : int64) -> * mut transaction_t ; } extern \"C\" { # [doc = \" Atom handling.\"] pub fn VT_register_atom_class (name : * const :: std :: os :: raw :: c_char , pywrap_atom_from_type : * const :: std :: os :: raw :: c_char , pywrap_type_from_atom : * const :: std :: os :: raw :: c_char) ; } extern \"C\" { pub fn VT_get_atom_class_id (name : * const :: std :: os :: raw :: c_char) -> atom_id_t ; } extern \"C\" { pub fn VT_lookup_atom_class_id (name : * const :: std :: os :: raw :: c_char) -> atom_id_t ; } extern \"C\" { pub fn VT_transaction_atom (t : * const transaction_t , id : atom_id_t) -> * mut :: std :: os :: raw :: c_void ; } extern \"C\" { pub fn VT_lookup_transaction_atom (t : * const transaction_t , id : atom_id_t) -> * const atom_t ; } extern \"C\" { pub fn SIM_register_python_atom_type (name : * const :: std :: os :: raw :: c_char) ; } # [repr (u32)] # [doc = \" Note that notifier types can be added either by modifying this enum or\\nby using SIM_notifier_type. The latter is typically preferred since it does\\nnot change the Simics API.\"] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub enum notifier_type_t { Sim_Notify_Queue_Change = 0 , Sim_Notify_Cell_Change = 1 , Sim_Notify_Frequency_Change = 2 , Sim_Notify_Concurrency_Change = 3 , Sim_Notify_Object_Delete = 4 , Sim_Notify_Map_Change = 5 , Sim_Notify_State_Change = 6 , Sim_Notify_Freerunning_Mode_Change = 7 , Sim_Notify_Bank_Register_Value_Change = 8 , } extern \"C\" { pub fn SIM_notifier_type (type_ : * const :: std :: os :: raw :: c_char) -> notifier_type_t ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct notifier_handle { _unused : [u8 ; 0] , } # [doc = \" Consumer API\"] pub type notifier_handle_t = notifier_handle ; extern \"C\" { pub fn SIM_add_notifier (obj : * mut conf_object_t , what : notifier_type_t , subscriber : * mut conf_object_t , callback : :: std :: option :: Option < unsafe extern \"C\" fn (subscriber : * mut conf_object_t , notifier : * mut conf_object_t , data : * mut lang_void) > , data : * mut lang_void) -> * mut notifier_handle_t ; } extern \"C\" { pub fn SIM_delete_notifier (obj : * mut conf_object_t , handle : * mut notifier_handle_t) ; } extern \"C\" { pub fn SIM_has_notifier (obj : * mut conf_object_t , what : notifier_type_t) -> bool ; } extern \"C\" { pub fn SIM_class_has_notifier (cls : * mut conf_class_t , what : notifier_type_t) -> bool ; } extern \"C\" { # [doc = \" Producer API\"] pub fn SIM_register_notifier (cls : * mut conf_class_t , what : notifier_type_t , desc : * const :: std :: os :: raw :: c_char) ; } extern \"C\" { pub fn SIM_register_tracked_notifier (cls : * mut conf_class_t , what : notifier_type_t , desc : * const :: std :: os :: raw :: c_char , subscribed_changed : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , type_ : notifier_type_t , has_subscribers : bool) >) ; } extern \"C\" { pub fn SIM_notify (obj : * mut conf_object_t , type_ : notifier_type_t) ; } extern \"C\" { pub fn SIM_describe_notifier (type_ : notifier_type_t , generic_desc : * const :: std :: os :: raw :: c_char) ; } extern \"C\" { pub fn SIM_notifier_description (type_ : notifier_type_t) -> * const :: std :: os :: raw :: c_char ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct domain_lock { _unused : [u8 ; 0] , } pub type domain_lock_t = domain_lock ; extern \"C\" { pub fn SIM_acquire_object (obj : * mut conf_object_t , function_name : * const :: std :: os :: raw :: c_char , source_location : * const :: std :: os :: raw :: c_char) -> * mut domain_lock_t ; } extern \"C\" { pub fn SIM_acquire_target (obj : * mut conf_object_t , function_name : * const :: std :: os :: raw :: c_char , source_location : * const :: std :: os :: raw :: c_char) -> * mut domain_lock_t ; } extern \"C\" { pub fn SIM_acquire_cell (obj : * mut conf_object_t , function_name : * const :: std :: os :: raw :: c_char , source_location : * const :: std :: os :: raw :: c_char) -> * mut domain_lock_t ; } extern \"C\" { pub fn SIM_release_object (obj : * mut conf_object_t , lock : * mut domain_lock_t) ; } extern \"C\" { pub fn SIM_release_target (obj : * mut conf_object_t , lock : * mut domain_lock_t) ; } extern \"C\" { pub fn SIM_release_cell (obj : * mut conf_object_t , lock : * mut domain_lock_t) ; } extern \"C\" { pub fn SIM_acquire_object_for_execution (obj : * mut conf_object_t) -> * mut domain_lock_t ; } extern \"C\" { pub fn SIM_yield_thread_domains () ; } extern \"C\" { pub fn VT_acquire_object (obj : * mut conf_object_t , function_name : * const :: std :: os :: raw :: c_char , source_location : * const :: std :: os :: raw :: c_char) -> * mut domain_lock_t ; } extern \"C\" { pub fn VT_acquire_cell (obj : * mut conf_object_t , function_name : * const :: std :: os :: raw :: c_char , source_location : * const :: std :: os :: raw :: c_char) -> * mut domain_lock_t ; } extern \"C\" { pub fn VT_acquire_target (obj : * mut conf_object_t , func : * const :: std :: os :: raw :: c_char , location : * const :: std :: os :: raw :: c_char) -> * mut domain_lock_t ; } extern \"C\" { pub fn VT_release_object (obj : * mut conf_object_t , lock : * mut domain_lock_t) ; } extern \"C\" { pub fn VT_release_cell (obj : * mut conf_object_t , lock : * mut domain_lock_t) ; } extern \"C\" { pub fn VT_release_target (obj : * mut conf_object_t , lock : * mut domain_lock_t) ; } extern \"C\" { pub fn VT_assert_object_lock (obj : * mut conf_object_t , func : * const :: std :: os :: raw :: c_char , line : * const :: std :: os :: raw :: c_char) ; } extern \"C\" { pub fn VT_assert_cell_context (obj : * mut conf_object_t , file : * const :: std :: os :: raw :: c_char , func : * const :: std :: os :: raw :: c_char) ; } extern \"C\" { pub fn SIM_drop_thread_domains () -> * mut domain_lock_t ; } extern \"C\" { pub fn SIM_reacquire_thread_domains (lock : * mut domain_lock_t) ; } # [repr (u32)] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub enum sim_exception { SimExc_No_Exception = 0 , SimExc_General = 1 , SimExc_Lookup = 2 , SimExc_Attribute = 3 , SimExc_IOError = 4 , SimExc_Index = 5 , SimExc_Memory = 6 , SimExc_Type = 7 , SimExc_Break = 8 , SimExc_PythonTranslation = 9 , SimExc_License = 10 , SimExc_IllegalValue = 11 , SimExc_InquiryOutsideMemory = 12 , SimExc_InquiryUnhandled = 13 , SimExc_InterfaceNotFound = 14 , SimExc_AttrNotFound = 15 , SimExc_AttrNotReadable = 16 , SimExc_AttrNotWritable = 17 , Sim_Exceptions = 18 , } pub use self :: sim_exception as sim_exception_t ; extern \"C\" { pub fn SIM_clear_exception () -> sim_exception_t ; } extern \"C\" { pub fn SIM_get_pending_exception () -> sim_exception_t ; } extern \"C\" { pub fn DBG_get_pending_exception () -> sim_exception_t ; } extern \"C\" { pub fn SIM_last_error () -> * const :: std :: os :: raw :: c_char ; } extern \"C\" { pub fn VT_frontend_exception (exc_type : sim_exception_t , str_ : * const :: std :: os :: raw :: c_char) ; } # [repr (u32)] # [doc = \" <add-type id=\\\"gui_mode_t def\\\">\\n</add-type>\"] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub enum gui_mode_t { GUI_Mode_None = 0 , GUI_Mode_Mixed = 1 , GUI_Mode_Only = 2 , GUI_Mode_Default = 3 , } # [repr (u32)] # [doc = \" <add-type id=\\\"cpu_variant_t def\\\">\\n</add-type>\"] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub enum cpu_variant_t { # [doc = \" internal, do not use\"] Cpu_None = 0 , Cpu_Any = 1 , Cpu_Fast = 2 , Cpu_Stall = 3 , } # [doc = \" <add-type id=\\\"init_prefs_t def\\\">\\n</add-type>\"] # [repr (C)] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct init_prefs_t { pub batch_mode : bool , pub quiet : bool , pub verbose : bool , pub python_verbose : bool , pub disable_istc : bool , pub disable_dstc : bool , pub module_cache_enable : bool , pub rdp : bool , pub sign_module : bool , pub log_file : * const :: std :: os :: raw :: c_char , # [doc = \" NULL to use saved prefs value\"] pub project : * const :: std :: os :: raw :: c_char , # [doc = \" Deprecated, do not use\"] pub workspace : * const :: std :: os :: raw :: c_char , # [doc = \" GUI_Mode_Default to use saved prefs value\"] pub gui_mode : gui_mode_t , # [doc = \" CPU_Any to use saved prefs value\"] pub cpu_mode : cpu_variant_t , # [doc = \" internal, do not use\"] pub package_list : * const :: std :: os :: raw :: c_char , # [doc = \" NULL to use saved prefs value\"] pub license_file : * const :: std :: os :: raw :: c_char , pub expire_time : * const :: std :: os :: raw :: c_char , pub no_windows : bool , pub fail_on_warnings : bool , # [doc = \" see sim->warn_deprecated\"] pub deprecation_level : * const :: std :: os :: raw :: c_char , # [doc = \" same as deprecation_level == 2\"] pub warn_deprecated : bool , # [doc = \" same as deprecation_level == 0\"] pub no_warn_deprecated : bool , # [doc = \" deprecated and ignored (bug 21597)\"] pub warn_multithread : bool , pub check_ifaces : bool , # [doc = \" do not read preferences and recent-files\"] pub no_global_settings : bool , # [doc = \" internal - for test usage\"] pub alt_settings_dir : * const :: std :: os :: raw :: c_char , # [doc = \" the following should be -1 if not set by command line options\\nto tell SIM_init_simulator() to use the saved preference value\"] pub log_enable : :: std :: os :: raw :: c_int , # [doc = \" internal, do not use\"] pub allow_license_gui : bool , # [doc = \" internal, do not use\"] pub eclipse_params : * const :: std :: os :: raw :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of init_prefs_t\"] [:: std :: mem :: size_of :: < init_prefs_t > () - 120usize] ; [\"Alignment of init_prefs_t\"] [:: std :: mem :: align_of :: < init_prefs_t > () - 8usize] ; [\"Offset of field: init_prefs_t::batch_mode\"] [:: std :: mem :: offset_of ! (init_prefs_t , batch_mode) - 0usize] ; [\"Offset of field: init_prefs_t::quiet\"] [:: std :: mem :: offset_of ! (init_prefs_t , quiet) - 1usize] ; [\"Offset of field: init_prefs_t::verbose\"] [:: std :: mem :: offset_of ! (init_prefs_t , verbose) - 2usize] ; [\"Offset of field: init_prefs_t::python_verbose\"] [:: std :: mem :: offset_of ! (init_prefs_t , python_verbose) - 3usize] ; [\"Offset of field: init_prefs_t::disable_istc\"] [:: std :: mem :: offset_of ! (init_prefs_t , disable_istc) - 4usize] ; [\"Offset of field: init_prefs_t::disable_dstc\"] [:: std :: mem :: offset_of ! (init_prefs_t , disable_dstc) - 5usize] ; [\"Offset of field: init_prefs_t::module_cache_enable\"] [:: std :: mem :: offset_of ! (init_prefs_t , module_cache_enable) - 6usize] ; [\"Offset of field: init_prefs_t::rdp\"] [:: std :: mem :: offset_of ! (init_prefs_t , rdp) - 7usize] ; [\"Offset of field: init_prefs_t::sign_module\"] [:: std :: mem :: offset_of ! (init_prefs_t , sign_module) - 8usize] ; [\"Offset of field: init_prefs_t::log_file\"] [:: std :: mem :: offset_of ! (init_prefs_t , log_file) - 16usize] ; [\"Offset of field: init_prefs_t::project\"] [:: std :: mem :: offset_of ! (init_prefs_t , project) - 24usize] ; [\"Offset of field: init_prefs_t::workspace\"] [:: std :: mem :: offset_of ! (init_prefs_t , workspace) - 32usize] ; [\"Offset of field: init_prefs_t::gui_mode\"] [:: std :: mem :: offset_of ! (init_prefs_t , gui_mode) - 40usize] ; [\"Offset of field: init_prefs_t::cpu_mode\"] [:: std :: mem :: offset_of ! (init_prefs_t , cpu_mode) - 44usize] ; [\"Offset of field: init_prefs_t::package_list\"] [:: std :: mem :: offset_of ! (init_prefs_t , package_list) - 48usize] ; [\"Offset of field: init_prefs_t::license_file\"] [:: std :: mem :: offset_of ! (init_prefs_t , license_file) - 56usize] ; [\"Offset of field: init_prefs_t::expire_time\"] [:: std :: mem :: offset_of ! (init_prefs_t , expire_time) - 64usize] ; [\"Offset of field: init_prefs_t::no_windows\"] [:: std :: mem :: offset_of ! (init_prefs_t , no_windows) - 72usize] ; [\"Offset of field: init_prefs_t::fail_on_warnings\"] [:: std :: mem :: offset_of ! (init_prefs_t , fail_on_warnings) - 73usize] ; [\"Offset of field: init_prefs_t::deprecation_level\"] [:: std :: mem :: offset_of ! (init_prefs_t , deprecation_level) - 80usize] ; [\"Offset of field: init_prefs_t::warn_deprecated\"] [:: std :: mem :: offset_of ! (init_prefs_t , warn_deprecated) - 88usize] ; [\"Offset of field: init_prefs_t::no_warn_deprecated\"] [:: std :: mem :: offset_of ! (init_prefs_t , no_warn_deprecated) - 89usize] ; [\"Offset of field: init_prefs_t::warn_multithread\"] [:: std :: mem :: offset_of ! (init_prefs_t , warn_multithread) - 90usize] ; [\"Offset of field: init_prefs_t::check_ifaces\"] [:: std :: mem :: offset_of ! (init_prefs_t , check_ifaces) - 91usize] ; [\"Offset of field: init_prefs_t::no_global_settings\"] [:: std :: mem :: offset_of ! (init_prefs_t , no_global_settings) - 92usize] ; [\"Offset of field: init_prefs_t::alt_settings_dir\"] [:: std :: mem :: offset_of ! (init_prefs_t , alt_settings_dir) - 96usize] ; [\"Offset of field: init_prefs_t::log_enable\"] [:: std :: mem :: offset_of ! (init_prefs_t , log_enable) - 104usize] ; [\"Offset of field: init_prefs_t::allow_license_gui\"] [:: std :: mem :: offset_of ! (init_prefs_t , allow_license_gui) - 108usize] ; [\"Offset of field: init_prefs_t::eclipse_params\"] [:: std :: mem :: offset_of ! (init_prefs_t , eclipse_params) - 112usize] ; } ; impl Default for init_prefs_t { fn default () -> Self { let mut s = :: std :: mem :: MaybeUninit :: < Self > :: uninit () ; unsafe { :: std :: ptr :: write_bytes (s . as_mut_ptr () , 0 , 1) ; s . assume_init () } } } extern \"C\" { pub fn SIM_init_environment (argv : * mut * mut :: std :: os :: raw :: c_char , handle_signals : bool , allow_core_dumps : bool) ; } # [doc = \" <add-type id=\\\"init_arg_t def\\\"></add-type>\"] # [repr (C)] # [derive (Copy , Clone)] pub struct init_arg_t { pub name : * const :: std :: os :: raw :: c_char , pub boolean : bool , pub u : init_arg_t__bindgen_ty_1 , } # [repr (C)] # [derive (Copy , Clone)] pub union init_arg_t__bindgen_ty_1 { pub string : * const :: std :: os :: raw :: c_char , pub enabled : bool , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of init_arg_t__bindgen_ty_1\"] [:: std :: mem :: size_of :: < init_arg_t__bindgen_ty_1 > () - 8usize] ; [\"Alignment of init_arg_t__bindgen_ty_1\"] [:: std :: mem :: align_of :: < init_arg_t__bindgen_ty_1 > () - 8usize] ; [\"Offset of field: init_arg_t__bindgen_ty_1::string\"] [:: std :: mem :: offset_of ! (init_arg_t__bindgen_ty_1 , string) - 0usize] ; [\"Offset of field: init_arg_t__bindgen_ty_1::enabled\"] [:: std :: mem :: offset_of ! (init_arg_t__bindgen_ty_1 , enabled) - 0usize] ; } ; impl Default for init_arg_t__bindgen_ty_1 { fn default () -> Self { let mut s = :: std :: mem :: MaybeUninit :: < Self > :: uninit () ; unsafe { :: std :: ptr :: write_bytes (s . as_mut_ptr () , 0 , 1) ; s . assume_init () } } } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of init_arg_t\"] [:: std :: mem :: size_of :: < init_arg_t > () - 24usize] ; [\"Alignment of init_arg_t\"] [:: std :: mem :: align_of :: < init_arg_t > () - 8usize] ; [\"Offset of field: init_arg_t::name\"] [:: std :: mem :: offset_of ! (init_arg_t , name) - 0usize] ; [\"Offset of field: init_arg_t::boolean\"] [:: std :: mem :: offset_of ! (init_arg_t , boolean) - 8usize] ; [\"Offset of field: init_arg_t::u\"] [:: std :: mem :: offset_of ! (init_arg_t , u) - 16usize] ; } ; impl Default for init_arg_t { fn default () -> Self { let mut s = :: std :: mem :: MaybeUninit :: < Self > :: uninit () ; unsafe { :: std :: ptr :: write_bytes (s . as_mut_ptr () , 0 , 1) ; s . assume_init () } } } extern \"C\" { pub fn SIM_init_simulator2 (init_args : * mut init_arg_t) ; } extern \"C\" { pub fn SIM_set_frontend_context (context : * mut :: std :: os :: raw :: c_void) ; } extern \"C\" { pub fn VT_init_package_list (package_list : * const :: std :: os :: raw :: c_char) ; } extern \"C\" { pub fn SIM_get_init_arg_string (name : * const :: std :: os :: raw :: c_char , default_value : * const :: std :: os :: raw :: c_char) -> * const :: std :: os :: raw :: c_char ; } extern \"C\" { pub fn SIM_get_init_arg_boolean (name : * const :: std :: os :: raw :: c_char , default_value : bool) -> bool ; } extern \"C\" { pub fn SIM_init_command_line () ; } extern \"C\" { pub fn SIM_main_loop () ; } extern \"C\" { pub fn VT_check_package_updates () ; } pub type context_handler_interface_t = context_handler_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct context_handler_interface { pub get_current_context : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t) -> * mut conf_object_t > , pub set_current_context : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , ctx : * mut conf_object_t) -> :: std :: os :: raw :: c_int > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of context_handler_interface\"] [:: std :: mem :: size_of :: < context_handler_interface > () - 16usize] ; [\"Alignment of context_handler_interface\"] [:: std :: mem :: align_of :: < context_handler_interface > () - 8usize] ; [\"Offset of field: context_handler_interface::get_current_context\"] [:: std :: mem :: offset_of ! (context_handler_interface , get_current_context) - 0usize] ; [\"Offset of field: context_handler_interface::set_current_context\"] [:: std :: mem :: offset_of ! (context_handler_interface , set_current_context) - 8usize] ; } ; extern \"C\" { pub fn SIM_register_context_handler (cls : * mut conf_class_t , iface : * const context_handler_interface_t) -> :: std :: os :: raw :: c_int ; } # [doc = \" All the structs below are INTERNAL and should not be used directly.\"] # [repr (C)] # [derive (Copy , Clone)] pub union ht_key_t { pub i : uint64 , pub s : * const :: std :: os :: raw :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of ht_key_t\"] [:: std :: mem :: size_of :: < ht_key_t > () - 8usize] ; [\"Alignment of ht_key_t\"] [:: std :: mem :: align_of :: < ht_key_t > () - 8usize] ; [\"Offset of field: ht_key_t::i\"] [:: std :: mem :: offset_of ! (ht_key_t , i) - 0usize] ; [\"Offset of field: ht_key_t::s\"] [:: std :: mem :: offset_of ! (ht_key_t , s) - 0usize] ; } ; impl Default for ht_key_t { fn default () -> Self { let mut s = :: std :: mem :: MaybeUninit :: < Self > :: uninit () ; unsafe { :: std :: ptr :: write_bytes (s . as_mut_ptr () , 0 , 1) ; s . assume_init () } } } # [repr (C)] # [derive (Copy , Clone)] pub struct ht_entry_common { pub value : * const :: std :: os :: raw :: c_void , pub next : * mut ht_entry_common , pub key : ht_key_t , # [doc = \" raw hash value\"] pub hash : :: std :: os :: raw :: c_uint , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of ht_entry_common\"] [:: std :: mem :: size_of :: < ht_entry_common > () - 32usize] ; [\"Alignment of ht_entry_common\"] [:: std :: mem :: align_of :: < ht_entry_common > () - 8usize] ; [\"Offset of field: ht_entry_common::value\"] [:: std :: mem :: offset_of ! (ht_entry_common , value) - 0usize] ; [\"Offset of field: ht_entry_common::next\"] [:: std :: mem :: offset_of ! (ht_entry_common , next) - 8usize] ; [\"Offset of field: ht_entry_common::key\"] [:: std :: mem :: offset_of ! (ht_entry_common , key) - 16usize] ; [\"Offset of field: ht_entry_common::hash\"] [:: std :: mem :: offset_of ! (ht_entry_common , hash) - 24usize] ; } ; impl Default for ht_entry_common { fn default () -> Self { let mut s = :: std :: mem :: MaybeUninit :: < Self > :: uninit () ; unsafe { :: std :: ptr :: write_bytes (s . as_mut_ptr () , 0 , 1) ; s . assume_init () } } } pub type ht_entry_common_t = ht_entry_common ; # [repr (C)] # [derive (Copy , Clone)] pub struct ht_int_entry_t { pub e : ht_entry_common_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of ht_int_entry_t\"] [:: std :: mem :: size_of :: < ht_int_entry_t > () - 32usize] ; [\"Alignment of ht_int_entry_t\"] [:: std :: mem :: align_of :: < ht_int_entry_t > () - 8usize] ; [\"Offset of field: ht_int_entry_t::e\"] [:: std :: mem :: offset_of ! (ht_int_entry_t , e) - 0usize] ; } ; impl Default for ht_int_entry_t { fn default () -> Self { let mut s = :: std :: mem :: MaybeUninit :: < Self > :: uninit () ; unsafe { :: std :: ptr :: write_bytes (s . as_mut_ptr () , 0 , 1) ; s . assume_init () } } } # [repr (C)] # [derive (Copy , Clone)] pub struct ht_str_entry_t { pub e : ht_entry_common_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of ht_str_entry_t\"] [:: std :: mem :: size_of :: < ht_str_entry_t > () - 32usize] ; [\"Alignment of ht_str_entry_t\"] [:: std :: mem :: align_of :: < ht_str_entry_t > () - 8usize] ; [\"Offset of field: ht_str_entry_t::e\"] [:: std :: mem :: offset_of ! (ht_str_entry_t , e) - 0usize] ; } ; impl Default for ht_str_entry_t { fn default () -> Self { let mut s = :: std :: mem :: MaybeUninit :: < Self > :: uninit () ; unsafe { :: std :: ptr :: write_bytes (s . as_mut_ptr () , 0 , 1) ; s . assume_init () } } } # [repr (C)] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct ht_table_common_t { # [doc = \" size of buckets array; 0 or a power of 2\"] pub nbuckets : :: std :: os :: raw :: c_uint , # [doc = \" nbuckets > 0 ? log2(nbuckets) : 0\"] pub bits : :: std :: os :: raw :: c_uint , # [doc = \" array [nbuckets], or NULL\"] pub buckets : * mut * mut ht_entry_common_t , # [doc = \" total number of elements\"] pub num_elements : :: std :: os :: raw :: c_int , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of ht_table_common_t\"] [:: std :: mem :: size_of :: < ht_table_common_t > () - 24usize] ; [\"Alignment of ht_table_common_t\"] [:: std :: mem :: align_of :: < ht_table_common_t > () - 8usize] ; [\"Offset of field: ht_table_common_t::nbuckets\"] [:: std :: mem :: offset_of ! (ht_table_common_t , nbuckets) - 0usize] ; [\"Offset of field: ht_table_common_t::bits\"] [:: std :: mem :: offset_of ! (ht_table_common_t , bits) - 4usize] ; [\"Offset of field: ht_table_common_t::buckets\"] [:: std :: mem :: offset_of ! (ht_table_common_t , buckets) - 8usize] ; [\"Offset of field: ht_table_common_t::num_elements\"] [:: std :: mem :: offset_of ! (ht_table_common_t , num_elements) - 16usize] ; } ; impl Default for ht_table_common_t { fn default () -> Self { let mut s = :: std :: mem :: MaybeUninit :: < Self > :: uninit () ; unsafe { :: std :: ptr :: write_bytes (s . as_mut_ptr () , 0 , 1) ; s . assume_init () } } } # [repr (C)] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct ht_str_table_t { pub t : ht_table_common_t , # [doc = \" whether the table owns the keys\"] pub keys_owned : bool , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of ht_str_table_t\"] [:: std :: mem :: size_of :: < ht_str_table_t > () - 32usize] ; [\"Alignment of ht_str_table_t\"] [:: std :: mem :: align_of :: < ht_str_table_t > () - 8usize] ; [\"Offset of field: ht_str_table_t::t\"] [:: std :: mem :: offset_of ! (ht_str_table_t , t) - 0usize] ; [\"Offset of field: ht_str_table_t::keys_owned\"] [:: std :: mem :: offset_of ! (ht_str_table_t , keys_owned) - 24usize] ; } ; impl Default for ht_str_table_t { fn default () -> Self { let mut s = :: std :: mem :: MaybeUninit :: < Self > :: uninit () ; unsafe { :: std :: ptr :: write_bytes (s . as_mut_ptr () , 0 , 1) ; s . assume_init () } } } # [repr (C)] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct ht_int_table_t { pub t : ht_table_common_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of ht_int_table_t\"] [:: std :: mem :: size_of :: < ht_int_table_t > () - 24usize] ; [\"Alignment of ht_int_table_t\"] [:: std :: mem :: align_of :: < ht_int_table_t > () - 8usize] ; [\"Offset of field: ht_int_table_t::t\"] [:: std :: mem :: offset_of ! (ht_int_table_t , t) - 0usize] ; } ; impl Default for ht_int_table_t { fn default () -> Self { let mut s = :: std :: mem :: MaybeUninit :: < Self > :: uninit () ; unsafe { :: std :: ptr :: write_bytes (s . as_mut_ptr () , 0 , 1) ; s . assume_init () } } } # [repr (C)] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct ht_iter_common_t { pub ht : * mut ht_table_common_t , # [doc = \" current bucket\"] pub index : :: std :: os :: raw :: c_uint , # [doc = \" current entry\"] pub e : * mut ht_entry_common_t , # [doc = \" next entry (current may be removed)\"] pub next : * mut ht_entry_common_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of ht_iter_common_t\"] [:: std :: mem :: size_of :: < ht_iter_common_t > () - 32usize] ; [\"Alignment of ht_iter_common_t\"] [:: std :: mem :: align_of :: < ht_iter_common_t > () - 8usize] ; [\"Offset of field: ht_iter_common_t::ht\"] [:: std :: mem :: offset_of ! (ht_iter_common_t , ht) - 0usize] ; [\"Offset of field: ht_iter_common_t::index\"] [:: std :: mem :: offset_of ! (ht_iter_common_t , index) - 8usize] ; [\"Offset of field: ht_iter_common_t::e\"] [:: std :: mem :: offset_of ! (ht_iter_common_t , e) - 16usize] ; [\"Offset of field: ht_iter_common_t::next\"] [:: std :: mem :: offset_of ! (ht_iter_common_t , next) - 24usize] ; } ; impl Default for ht_iter_common_t { fn default () -> Self { let mut s = :: std :: mem :: MaybeUninit :: < Self > :: uninit () ; unsafe { :: std :: ptr :: write_bytes (s . as_mut_ptr () , 0 , 1) ; s . assume_init () } } } # [repr (C)] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct ht_int_iter_t { pub it : ht_iter_common_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of ht_int_iter_t\"] [:: std :: mem :: size_of :: < ht_int_iter_t > () - 32usize] ; [\"Alignment of ht_int_iter_t\"] [:: std :: mem :: align_of :: < ht_int_iter_t > () - 8usize] ; [\"Offset of field: ht_int_iter_t::it\"] [:: std :: mem :: offset_of ! (ht_int_iter_t , it) - 0usize] ; } ; impl Default for ht_int_iter_t { fn default () -> Self { let mut s = :: std :: mem :: MaybeUninit :: < Self > :: uninit () ; unsafe { :: std :: ptr :: write_bytes (s . as_mut_ptr () , 0 , 1) ; s . assume_init () } } } # [repr (C)] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct ht_str_iter_t { pub it : ht_iter_common_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of ht_str_iter_t\"] [:: std :: mem :: size_of :: < ht_str_iter_t > () - 32usize] ; [\"Alignment of ht_str_iter_t\"] [:: std :: mem :: align_of :: < ht_str_iter_t > () - 8usize] ; [\"Offset of field: ht_str_iter_t::it\"] [:: std :: mem :: offset_of ! (ht_str_iter_t , it) - 0usize] ; } ; impl Default for ht_str_iter_t { fn default () -> Self { let mut s = :: std :: mem :: MaybeUninit :: < Self > :: uninit () ; unsafe { :: std :: ptr :: write_bytes (s . as_mut_ptr () , 0 , 1) ; s . assume_init () } } } extern \"C\" { pub fn ht_clear_int_table (ht : * mut ht_int_table_t , free_vals : bool) ; } extern \"C\" { pub fn ht_clear_str_table (ht : * mut ht_str_table_t , free_vals : bool) ; } extern \"C\" { pub fn ht_delete_int_table (ht : * mut ht_int_table_t , free_values : bool) ; } extern \"C\" { pub fn ht_delete_str_table (ht : * mut ht_str_table_t , free_values : bool) ; } extern \"C\" { pub fn ht_insert_int (ht : * mut ht_int_table_t , key : uint64 , value : * const :: std :: os :: raw :: c_void) ; } extern \"C\" { pub fn ht_insert_str (ht : * mut ht_str_table_t , key : * const :: std :: os :: raw :: c_char , value : * const :: std :: os :: raw :: c_void) ; } extern \"C\" { pub fn ht_update_int (ht : * mut ht_int_table_t , key : uint64 , value : * const :: std :: os :: raw :: c_void) -> * mut :: std :: os :: raw :: c_void ; } extern \"C\" { pub fn ht_update_str (ht : * mut ht_str_table_t , key : * const :: std :: os :: raw :: c_char , value : * const :: std :: os :: raw :: c_void) -> * mut :: std :: os :: raw :: c_void ; } extern \"C\" { pub fn ht_remove_int (ht : * mut ht_int_table_t , key : uint64) -> :: std :: os :: raw :: c_int ; } extern \"C\" { pub fn ht_remove_str (ht : * mut ht_str_table_t , key : * const :: std :: os :: raw :: c_char) -> :: std :: os :: raw :: c_int ; } extern \"C\" { pub fn ht_entry_lookup_int (ht : * const ht_int_table_t , key : uint64) -> * mut ht_int_entry_t ; } extern \"C\" { pub fn ht_entry_lookup_str (ht : * const ht_str_table_t , key : * const :: std :: os :: raw :: c_char) -> * mut ht_str_entry_t ; } extern \"C\" { pub fn ht_lookup_int (ht : * const ht_int_table_t , key : uint64) -> * mut :: std :: os :: raw :: c_void ; } extern \"C\" { pub fn ht_lookup_str (ht : * const ht_str_table_t , key : * const :: std :: os :: raw :: c_char) -> * mut :: std :: os :: raw :: c_void ; } extern \"C\" { pub fn ht_for_each_entry_int (table : * mut ht_int_table_t , f : :: std :: option :: Option < unsafe extern \"C\" fn (table : * mut ht_int_table_t , key : uint64 , value : * mut :: std :: os :: raw :: c_void , data : * mut :: std :: os :: raw :: c_void) -> :: std :: os :: raw :: c_int > , data : * mut :: std :: os :: raw :: c_void) -> :: std :: os :: raw :: c_int ; } extern \"C\" { pub fn ht_for_each_entry_str (table : * mut ht_str_table_t , f : :: std :: option :: Option < unsafe extern \"C\" fn (table : * mut ht_str_table_t , key : * const :: std :: os :: raw :: c_char , value : * mut :: std :: os :: raw :: c_void , data : * mut :: std :: os :: raw :: c_void) -> :: std :: os :: raw :: c_int > , data : * mut :: std :: os :: raw :: c_void) -> :: std :: os :: raw :: c_int ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct prof_data { _unused : [u8 ; 0] , } pub type prof_data_t = prof_data ; pub type prof_data_address_t = uint64 ; pub type prof_data_counter_t = uint64 ; # [repr (C)] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct prof_data_iter_t { pub pd : * mut prof_data_t , pub start : uint64 , pub end : uint64 , pub hit : ht_int_iter_t , # [doc = \" position in current chunk\"] pub index : :: std :: os :: raw :: c_int , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of prof_data_iter_t\"] [:: std :: mem :: size_of :: < prof_data_iter_t > () - 64usize] ; [\"Alignment of prof_data_iter_t\"] [:: std :: mem :: align_of :: < prof_data_iter_t > () - 8usize] ; [\"Offset of field: prof_data_iter_t::pd\"] [:: std :: mem :: offset_of ! (prof_data_iter_t , pd) - 0usize] ; [\"Offset of field: prof_data_iter_t::start\"] [:: std :: mem :: offset_of ! (prof_data_iter_t , start) - 8usize] ; [\"Offset of field: prof_data_iter_t::end\"] [:: std :: mem :: offset_of ! (prof_data_iter_t , end) - 16usize] ; [\"Offset of field: prof_data_iter_t::hit\"] [:: std :: mem :: offset_of ! (prof_data_iter_t , hit) - 24usize] ; [\"Offset of field: prof_data_iter_t::index\"] [:: std :: mem :: offset_of ! (prof_data_iter_t , index) - 56usize] ; } ; impl Default for prof_data_iter_t { fn default () -> Self { let mut s = :: std :: mem :: MaybeUninit :: < Self > :: uninit () ; unsafe { :: std :: ptr :: write_bytes (s . as_mut_ptr () , 0 , 1) ; s . assume_init () } } } extern \"C\" { pub fn prof_data_create (granularity : :: std :: os :: raw :: c_uint) -> * mut prof_data_t ; } extern \"C\" { pub fn prof_data_delete (pd : * mut prof_data_t) ; } extern \"C\" { pub fn prof_data_clear (pd : * mut prof_data_t) ; } extern \"C\" { pub fn prof_data_granularity_log2 (pd : * mut prof_data_t) -> :: std :: os :: raw :: c_int ; } extern \"C\" { pub fn prof_data_set (pd : * mut prof_data_t , address : prof_data_address_t , value : prof_data_counter_t) ; } extern \"C\" { pub fn prof_data_add (pd : * mut prof_data_t , address : prof_data_address_t , value : prof_data_counter_t) ; } extern \"C\" { pub fn prof_data_get (pd : * mut prof_data_t , address : prof_data_address_t) -> prof_data_counter_t ; } extern \"C\" { pub fn prof_data_new_iter (pd : * mut prof_data_t , it : * mut prof_data_iter_t , start : prof_data_address_t , end : prof_data_address_t) ; } extern \"C\" { pub fn prof_data_iter_next (it : * mut prof_data_iter_t) -> prof_data_counter_t ; } extern \"C\" { pub fn prof_data_iter_addr (it : * mut prof_data_iter_t) -> prof_data_address_t ; } extern \"C\" { pub fn prof_data_save (pd : * mut prof_data_t , f : * mut FILE) -> :: std :: os :: raw :: c_int ; } extern \"C\" { pub fn prof_data_load (pd : * mut prof_data_t , f : * mut FILE) -> :: std :: os :: raw :: c_int ; } pub type data_profiler_flush_t = :: std :: option :: Option < unsafe extern \"C\" fn (profiler : * mut conf_object_t , param : * mut :: std :: os :: raw :: c_void) > ; extern \"C\" { pub fn VT_profiler_add_flush (dp : * mut conf_object_t , flush_fun : data_profiler_flush_t , flush_param : * mut :: std :: os :: raw :: c_void) ; } extern \"C\" { pub fn VT_profiler_remove_flush (dp : * mut conf_object_t , flush_fun : data_profiler_flush_t , flush_param : * mut :: std :: os :: raw :: c_void) ; } extern \"C\" { pub fn VT_prof_data_inc_pc (prof : * mut prof_data_t , cpu : * mut conf_object_t) ; } extern \"C\" { pub fn VT_clock_frequency_about_to_change (obj : * mut conf_object_t) ; } extern \"C\" { pub fn VT_clock_frequency_change (obj : * mut conf_object_t , cycles_per_second : uint64) ; } # [repr (u32)] # [doc = \" only used to index the event_desc attribute in processors\"] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub enum event_queue_type { Sim_Queue_Step = 0 , Sim_Queue_Time = 1 , } impl gen_spr_access_type_t { pub const Sim_PPC_Spr_Instruction_Access : gen_spr_access_type_t = gen_spr_access_type_t :: Sim_Gen_Spr_Instruction_Access ; } impl gen_spr_access_type_t { pub const Sim_PPC_Spr_Attribute_Access : gen_spr_access_type_t = gen_spr_access_type_t :: Sim_Gen_Spr_Attribute_Access ; } impl gen_spr_access_type_t { pub const Sim_PPC_Spr_Int_Register_Access : gen_spr_access_type_t = gen_spr_access_type_t :: Sim_Gen_Spr_Int_Register_Access ; } # [repr (u32)] # [doc = \" <add-type id=\\\"gen_spr_access_type_t def\\\"></add-type>\"] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub enum gen_spr_access_type_t { # [doc = \" Access from a mfspr/mtspr instruction\"] Sim_Gen_Spr_Instruction_Access = 0 , # [doc = \" Access through attribute\"] Sim_Gen_Spr_Attribute_Access = 1 , # [doc = \" Access through int_register interface\"] Sim_Gen_Spr_Int_Register_Access = 2 , } impl gen_spr_ret_t { pub const Sim_PPC_Spr_Ok : gen_spr_ret_t = gen_spr_ret_t :: Sim_Gen_Spr_Ok ; } impl gen_spr_ret_t { pub const Sim_PPC_Spr_Illegal : gen_spr_ret_t = gen_spr_ret_t :: Sim_Gen_Spr_Illegal ; } impl gen_spr_ret_t { pub const Sim_PPC_Spr_Privilege : gen_spr_ret_t = gen_spr_ret_t :: Sim_Gen_Spr_Privilege ; } # [repr (u32)] # [doc = \" <add-type id=\\\"gen_spr_ret_t def\\\"></add-type>\"] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub enum gen_spr_ret_t { # [doc = \" SPR access was OK\"] Sim_Gen_Spr_Ok = 0 , # [doc = \" SPR access should trigger illegal insn exc\"] Sim_Gen_Spr_Illegal = 1 , # [doc = \" SPR access should trigger privilege exc\"] Sim_Gen_Spr_Privilege = 2 , # [doc = \" SPR access suspends the processor\"] Sim_Gen_Spr_Processor_Sleeps = 3 , } # [doc = \" <add-type id=\\\"gen_spr_user_getter_func_t def\\\"></add-type>\"] pub type gen_spr_user_getter_func_t = :: std :: option :: Option < unsafe extern \"C\" fn (cpu : * mut conf_object_t , spr_number : int64 , type_ : gen_spr_access_type_t , user_data : * mut lang_void) -> gen_spr_ret_t > ; # [doc = \" <add-type id=\\\"gen_spr_user_setter_func_t def\\\"></add-type>\"] pub type gen_spr_user_setter_func_t = :: std :: option :: Option < unsafe extern \"C\" fn (cpu : * mut conf_object_t , spr_number : int64 , value : uint64 , type_ : gen_spr_access_type_t , user_data : * mut lang_void) -> gen_spr_ret_t > ; extern \"C\" { # [doc = \" aliases kept for binary compatibility; to be removed in the next version\"] pub fn VT_clear_augmentation_bit (page_data : * mut uint8 , pofs : :: std :: os :: raw :: c_uint) ; } extern \"C\" { pub fn VT_get_augmentation_bit (page_data : * mut uint8 , pofs : :: std :: os :: raw :: c_uint) -> :: std :: os :: raw :: c_int ; } extern \"C\" { pub fn VT_set_augmentation_bit (page_data : * mut uint8 , pofs : :: std :: os :: raw :: c_uint) ; } extern \"C\" { pub fn SIM_flush_I_STC_logical (cpu : * mut conf_object_t , vaddr : logical_address_t , length : logical_address_t) ; } extern \"C\" { pub fn SIM_flush_D_STC_logical (cpu : * mut conf_object_t , vaddr : logical_address_t , length : logical_address_t) ; } extern \"C\" { pub fn SIM_flush_I_STC_physical (cpu : * mut conf_object_t , paddr : physical_address_t , length : physical_address_t) ; } extern \"C\" { pub fn SIM_flush_D_STC_physical (cpu : * mut conf_object_t , paddr : physical_address_t , length : physical_address_t , read_or_write : read_or_write_t) ; } extern \"C\" { pub fn SIM_STC_flush_cache (cpu : * mut conf_object_t) ; } extern \"C\" { pub fn VT_new_code_block (start : * mut :: std :: os :: raw :: c_void , len : usize) ; } extern \"C\" { pub fn VT_check_async_events () -> bool ; } extern \"C\" { pub fn VT_check_async_events_from_cell (cell : * mut conf_object_t) -> bool ; } extern \"C\" { pub fn VT_unrestricted_sync_point (obj : * mut conf_object_t) ; } extern \"C\" { pub fn VT_stop_event_processing (obj : * mut conf_object_t) ; } extern \"C\" { pub fn VT_async_events_pending () -> bool ; } extern \"C\" { pub fn VT_async_events_pending_in_cell (cell : * mut conf_object_t) -> bool ; } extern \"C\" { pub fn VT_local_async_events_pending (obj : * mut conf_object_t) -> bool ; } extern \"C\" { pub fn VT_global_async_events_pending () -> bool ; } extern \"C\" { pub fn VT_register_async_notifier (obj : * mut conf_object_t , wakeup : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t) >) ; } extern \"C\" { pub fn VT_unregister_async_notifier (obj : * mut conf_object_t , wakeup : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t) >) ; } # [doc = \" <add-type id=\\\"cbdata def\\\"></add-type>\"] pub type cbdata_t = cbdata ; # [doc = \" <add-type id=\\\"cbdata_reg def\\\"></add-type>\"] pub type cbdata_register_t = cbdata_t ; # [doc = \" <add-type id=\\\"cbdata_reg def\\\"></add-type>\"] pub type cbdata_call_t = cbdata_t ; # [doc = \" <add-type id=\\\"cbdata_type def\\\"></add-type>\"] # [repr (C)] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct cbdata_type_t { pub name : * const :: std :: os :: raw :: c_char , pub dealloc : :: std :: option :: Option < unsafe extern \"C\" fn (data : * mut :: std :: os :: raw :: c_void) > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of cbdata_type_t\"] [:: std :: mem :: size_of :: < cbdata_type_t > () - 16usize] ; [\"Alignment of cbdata_type_t\"] [:: std :: mem :: align_of :: < cbdata_type_t > () - 8usize] ; [\"Offset of field: cbdata_type_t::name\"] [:: std :: mem :: offset_of ! (cbdata_type_t , name) - 0usize] ; [\"Offset of field: cbdata_type_t::dealloc\"] [:: std :: mem :: offset_of ! (cbdata_type_t , dealloc) - 8usize] ; } ; impl Default for cbdata_type_t { fn default () -> Self { let mut s = :: std :: mem :: MaybeUninit :: < Self > :: uninit () ; unsafe { :: std :: ptr :: write_bytes (s . as_mut_ptr () , 0 , 1) ; s . assume_init () } } } # [repr (C)] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct cbdata { pub type_ : * const cbdata_type_t , pub data : * mut :: std :: os :: raw :: c_void , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of cbdata\"] [:: std :: mem :: size_of :: < cbdata > () - 16usize] ; [\"Alignment of cbdata\"] [:: std :: mem :: align_of :: < cbdata > () - 8usize] ; [\"Offset of field: cbdata::type_\"] [:: std :: mem :: offset_of ! (cbdata , type_) - 0usize] ; [\"Offset of field: cbdata::data\"] [:: std :: mem :: offset_of ! (cbdata , data) - 8usize] ; } ; impl Default for cbdata { fn default () -> Self { let mut s = :: std :: mem :: MaybeUninit :: < Self > :: uninit () ; unsafe { :: std :: ptr :: write_bytes (s . as_mut_ptr () , 0 , 1) ; s . assume_init () } } } extern \"C\" { pub fn VT_make_python_cbdata (cbd : cbdata_t) -> * mut _object ; } extern \"C\" { pub fn VT_make_cbdata_from_python (pyobj : * mut _object) -> cbdata_t ; } pub type breakpoint_interface_t = breakpoint_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct breakpoint_interface { pub insert_breakpoint : :: std :: option :: Option < unsafe extern \"C\" fn (object : * mut conf_object_t , caller : * mut conf_object_t , handle : breakpoint_handle_t , access : access_t , start : generic_address_t , end : generic_address_t) > , pub remove_breakpoint : :: std :: option :: Option < unsafe extern \"C\" fn (object : * mut conf_object_t , handle : breakpoint_handle_t) > , pub get_breakpoint : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , handle : breakpoint_handle_t) -> breakpoint_info_t > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of breakpoint_interface\"] [:: std :: mem :: size_of :: < breakpoint_interface > () - 24usize] ; [\"Alignment of breakpoint_interface\"] [:: std :: mem :: align_of :: < breakpoint_interface > () - 8usize] ; [\"Offset of field: breakpoint_interface::insert_breakpoint\"] [:: std :: mem :: offset_of ! (breakpoint_interface , insert_breakpoint) - 0usize] ; [\"Offset of field: breakpoint_interface::remove_breakpoint\"] [:: std :: mem :: offset_of ! (breakpoint_interface , remove_breakpoint) - 8usize] ; [\"Offset of field: breakpoint_interface::get_breakpoint\"] [:: std :: mem :: offset_of ! (breakpoint_interface , get_breakpoint) - 16usize] ; } ; pub type breakpoint_change_interface_t = breakpoint_change_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct breakpoint_change_interface { pub breakpoint_added : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , bp_obj : * mut conf_object_t , handle : breakpoint_handle_t) > , pub breakpoint_removed : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , bp_obj : * mut conf_object_t , handle : breakpoint_handle_t) > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of breakpoint_change_interface\"] [:: std :: mem :: size_of :: < breakpoint_change_interface > () - 16usize] ; [\"Alignment of breakpoint_change_interface\"] [:: std :: mem :: align_of :: < breakpoint_change_interface > () - 8usize] ; [\"Offset of field: breakpoint_change_interface::breakpoint_added\"] [:: std :: mem :: offset_of ! (breakpoint_change_interface , breakpoint_added) - 0usize] ; [\"Offset of field: breakpoint_change_interface::breakpoint_removed\"] [:: std :: mem :: offset_of ! (breakpoint_change_interface , breakpoint_removed) - 8usize] ; } ; pub type breakpoint_query_interface_t = breakpoint_query_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct breakpoint_query_interface { pub get_breakpoints : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , read_write_execute : access_t , start : generic_address_t , end : generic_address_t) -> breakpoint_set_t > , pub free_breakpoint_set : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , set : * mut breakpoint_set_t) > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of breakpoint_query_interface\"] [:: std :: mem :: size_of :: < breakpoint_query_interface > () - 16usize] ; [\"Alignment of breakpoint_query_interface\"] [:: std :: mem :: align_of :: < breakpoint_query_interface > () - 8usize] ; [\"Offset of field: breakpoint_query_interface::get_breakpoints\"] [:: std :: mem :: offset_of ! (breakpoint_query_interface , get_breakpoints) - 0usize] ; [\"Offset of field: breakpoint_query_interface::free_breakpoint_set\"] [:: std :: mem :: offset_of ! (breakpoint_query_interface , free_breakpoint_set) - 8usize] ; } ; pub type breakpoint_query_v2_interface_t = breakpoint_query_v2_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct breakpoint_query_v2_interface { pub get_breakpoints : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , read_write_execute : access_t , start : generic_address_t , end : generic_address_t) -> breakpoint_set_t > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of breakpoint_query_v2_interface\"] [:: std :: mem :: size_of :: < breakpoint_query_v2_interface > () - 8usize] ; [\"Alignment of breakpoint_query_v2_interface\"] [:: std :: mem :: align_of :: < breakpoint_query_v2_interface > () - 8usize] ; [\"Offset of field: breakpoint_query_v2_interface::get_breakpoints\"] [:: std :: mem :: offset_of ! (breakpoint_query_v2_interface , get_breakpoints) - 0usize] ; } ; pub type breakpoint_trigger_interface_t = breakpoint_trigger_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct breakpoint_trigger_interface { pub trigger_breakpoint : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , initiator_obj : * mut conf_object_t , handle : breakpoint_handle_t , address : generic_address_t , size : generic_address_t , access : access_t , data : * mut uint8) > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of breakpoint_trigger_interface\"] [:: std :: mem :: size_of :: < breakpoint_trigger_interface > () - 8usize] ; [\"Alignment of breakpoint_trigger_interface\"] [:: std :: mem :: align_of :: < breakpoint_trigger_interface > () - 8usize] ; [\"Offset of field: breakpoint_trigger_interface::trigger_breakpoint\"] [:: std :: mem :: offset_of ! (breakpoint_trigger_interface , trigger_breakpoint) - 0usize] ; } ; # [repr (u32)] # [doc = \" <add-type id=\\\"virtual_breakpoint_flags_t\\\"><ndx>virtual_breakpoint_flags_t</ndx></add-type>\"] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub enum virtual_breakpoint_flags_t { Virtual_Breakpoint_Flag_Linear = 1 , } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct virtual_data_bp_handle { _unused : [u8 ; 0] , } # [doc = \" <add-type id=\\\"virtual_data_bp_handle_t\\\"><ndx>virtual_data_bp_handle_t</ndx></add-type>\"] pub type virtual_data_bp_handle_t = virtual_data_bp_handle ; pub type virtual_data_breakpoint_interface_t = virtual_data_breakpoint_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct virtual_data_breakpoint_interface { pub add_read : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , first : generic_address_t , last : generic_address_t , callback : :: std :: option :: Option < unsafe extern \"C\" fn (data : cbdata_call_t , initiator : * mut conf_object_t , address : generic_address_t , size : :: std :: os :: raw :: c_uint) > , data : cbdata_register_t , flags : uint32) -> * mut virtual_data_bp_handle_t > , pub add_write : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , first : generic_address_t , last : generic_address_t , callback : :: std :: option :: Option < unsafe extern \"C\" fn (data : cbdata_call_t , initiator : * mut conf_object_t , address : generic_address_t , value : bytes_t) > , data : cbdata_register_t , flags : uint32) -> * mut virtual_data_bp_handle_t > , pub remove : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , bp_handle : * mut virtual_data_bp_handle_t) > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of virtual_data_breakpoint_interface\"] [:: std :: mem :: size_of :: < virtual_data_breakpoint_interface > () - 24usize] ; [\"Alignment of virtual_data_breakpoint_interface\"] [:: std :: mem :: align_of :: < virtual_data_breakpoint_interface > () - 8usize] ; [\"Offset of field: virtual_data_breakpoint_interface::add_read\"] [:: std :: mem :: offset_of ! (virtual_data_breakpoint_interface , add_read) - 0usize] ; [\"Offset of field: virtual_data_breakpoint_interface::add_write\"] [:: std :: mem :: offset_of ! (virtual_data_breakpoint_interface , add_write) - 8usize] ; [\"Offset of field: virtual_data_breakpoint_interface::remove\"] [:: std :: mem :: offset_of ! (virtual_data_breakpoint_interface , remove) - 16usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct virtual_instr_bp_handle { _unused : [u8 ; 0] , } # [doc = \" <add-type id=\\\"virtual_instr_bp_handle_t\\\"><ndx>virtual_instr_bp_handle_t</ndx></add-type>\"] pub type virtual_instr_bp_handle_t = virtual_instr_bp_handle ; pub type virtual_instruction_breakpoint_interface_t = virtual_instruction_breakpoint_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct virtual_instruction_breakpoint_interface { pub add : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , first : generic_address_t , last : generic_address_t , filter : :: std :: option :: Option < unsafe extern \"C\" fn (filter_data : cbdata_call_t , cpu : * mut conf_object_t , opcode : bytes_t) -> bool > , filter_data : cbdata_register_t , callback : :: std :: option :: Option < unsafe extern \"C\" fn (callback_data : cbdata_call_t , cpu : * mut conf_object_t , address : generic_address_t , size : :: std :: os :: raw :: c_uint) > , callback_data : cbdata_register_t , flags : uint32) -> * mut virtual_instr_bp_handle_t > , pub remove : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , bp_handle : * mut virtual_instr_bp_handle_t) > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of virtual_instruction_breakpoint_interface\"] [:: std :: mem :: size_of :: < virtual_instruction_breakpoint_interface > () - 16usize] ; [\"Alignment of virtual_instruction_breakpoint_interface\"] [:: std :: mem :: align_of :: < virtual_instruction_breakpoint_interface > () - 8usize] ; [\"Offset of field: virtual_instruction_breakpoint_interface::add\"] [:: std :: mem :: offset_of ! (virtual_instruction_breakpoint_interface , add) - 0usize] ; [\"Offset of field: virtual_instruction_breakpoint_interface::remove\"] [:: std :: mem :: offset_of ! (virtual_instruction_breakpoint_interface , remove) - 8usize] ; } ; extern \"C\" { # [doc = \" ADD INTERFACE virtual_instruction_breakpoint\"] pub fn VT_step_stamp (step_obj : * mut conf_object_t) -> int128 ; } # [doc = \" <add-type id=\\\"addr_prof_iter_t def\\\"></add-type>\"] # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct addr_prof_iter { pub next : :: std :: option :: Option < unsafe extern \"C\" fn (i : * mut addr_prof_iter) -> uint64 > , pub destroy : :: std :: option :: Option < unsafe extern \"C\" fn (i : * mut addr_prof_iter) > , pub addr : generic_address_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of addr_prof_iter\"] [:: std :: mem :: size_of :: < addr_prof_iter > () - 24usize] ; [\"Alignment of addr_prof_iter\"] [:: std :: mem :: align_of :: < addr_prof_iter > () - 8usize] ; [\"Offset of field: addr_prof_iter::next\"] [:: std :: mem :: offset_of ! (addr_prof_iter , next) - 0usize] ; [\"Offset of field: addr_prof_iter::destroy\"] [:: std :: mem :: offset_of ! (addr_prof_iter , destroy) - 8usize] ; [\"Offset of field: addr_prof_iter::addr\"] [:: std :: mem :: offset_of ! (addr_prof_iter , addr) - 16usize] ; } ; # [doc = \" <add-type id=\\\"addr_prof_iter_t def\\\"></add-type>\"] pub type addr_prof_iter_t = addr_prof_iter ; # [repr (u32)] # [doc = \"<add-type id=\\\"branch_arc_type_t def\\\"></add-type>\"] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub enum branch_arc_type_t { Branch_Arc_Branch = 0 , Branch_Arc_Exception = 1 , Branch_Arc_Exception_Return = 2 , Branch_Arc_Max = 3 , } # [repr (C)] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct branch_arc_t { pub addr_from : uint64 , pub addr_to : uint64 , pub count : int64 , pub type_ : branch_arc_type_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of branch_arc_t\"] [:: std :: mem :: size_of :: < branch_arc_t > () - 32usize] ; [\"Alignment of branch_arc_t\"] [:: std :: mem :: align_of :: < branch_arc_t > () - 8usize] ; [\"Offset of field: branch_arc_t::addr_from\"] [:: std :: mem :: offset_of ! (branch_arc_t , addr_from) - 0usize] ; [\"Offset of field: branch_arc_t::addr_to\"] [:: std :: mem :: offset_of ! (branch_arc_t , addr_to) - 8usize] ; [\"Offset of field: branch_arc_t::count\"] [:: std :: mem :: offset_of ! (branch_arc_t , count) - 16usize] ; [\"Offset of field: branch_arc_t::type_\"] [:: std :: mem :: offset_of ! (branch_arc_t , type_) - 24usize] ; } ; impl Default for branch_arc_t { fn default () -> Self { let mut s = :: std :: mem :: MaybeUninit :: < Self > :: uninit () ; unsafe { :: std :: ptr :: write_bytes (s . as_mut_ptr () , 0 , 1) ; s . assume_init () } } } # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct branch_arc_iter { pub next : :: std :: option :: Option < unsafe extern \"C\" fn (i : * mut branch_arc_iter) -> * mut branch_arc_t > , pub destroy : :: std :: option :: Option < unsafe extern \"C\" fn (i : * mut branch_arc_iter) > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of branch_arc_iter\"] [:: std :: mem :: size_of :: < branch_arc_iter > () - 16usize] ; [\"Alignment of branch_arc_iter\"] [:: std :: mem :: align_of :: < branch_arc_iter > () - 8usize] ; [\"Offset of field: branch_arc_iter::next\"] [:: std :: mem :: offset_of ! (branch_arc_iter , next) - 0usize] ; [\"Offset of field: branch_arc_iter::destroy\"] [:: std :: mem :: offset_of ! (branch_arc_iter , destroy) - 8usize] ; } ; pub type branch_arc_iter_t = branch_arc_iter ; # [repr (u32)] # [doc = \"<add-type id=\\\"branch_recorder_direction_t def\\\"></add-type>\"] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub enum branch_recorder_direction_t { BR_Direction_From = 0 , BR_Direction_To = 1 , } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct branch_recorder { _unused : [u8 ; 0] , } pub type branch_recorder_t = branch_recorder ; pub type iter_func_t = :: std :: option :: Option < unsafe extern \"C\" fn (br : * mut branch_recorder_t , start : generic_address_t , stop : generic_address_t) -> * mut addr_prof_iter_t > ; pub type branch_recorder_handler_interface_t = branch_recorder_handler_interface ; # [repr (C)] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct branch_recorder_handler_interface { # [doc = \" Attach/detach returns zero on error.\"] pub attach_branch_recorder : :: std :: option :: Option < unsafe extern \"C\" fn (cpu : * mut conf_object_t , brec : * mut conf_object_t) -> :: std :: os :: raw :: c_int > , pub detach_branch_recorder : :: std :: option :: Option < unsafe extern \"C\" fn (cpu : * mut conf_object_t , brec : * mut conf_object_t) -> :: std :: os :: raw :: c_int > , pub create_cpu_branch_recorder : :: std :: option :: Option < unsafe extern \"C\" fn (br : * mut branch_recorder_t) > , pub destroy_cpu_branch_recorder : :: std :: option :: Option < unsafe extern \"C\" fn (br : * mut branch_recorder_t) > , pub delete_arcs : :: std :: option :: Option < unsafe extern \"C\" fn (br : * mut branch_recorder_t) > , pub num_branches : :: std :: option :: Option < unsafe extern \"C\" fn (br : * mut branch_recorder_t) -> :: std :: os :: raw :: c_int > , pub get_branches : :: std :: option :: Option < unsafe extern \"C\" fn (br : * mut branch_recorder_t) -> attr_value_t > , pub iter : * mut iter_func_t , pub iter_branch_arc : :: std :: option :: Option < unsafe extern \"C\" fn (br : * mut branch_recorder_t , start : generic_address_t , stop : generic_address_t , dir : branch_recorder_direction_t) -> * mut branch_arc_iter_t > , pub eec_interrupt_instruction : :: std :: option :: Option < unsafe extern \"C\" fn (cpu : * mut conf_object_t , extype : :: std :: os :: raw :: c_int) -> :: std :: os :: raw :: c_int > , pub granularity_log2 : :: std :: os :: raw :: c_uint , pub view_descriptions : * mut * const :: std :: os :: raw :: c_char , pub num_views : :: std :: os :: raw :: c_int , pub pa_bits : :: std :: os :: raw :: c_int , pub va_bits : :: std :: os :: raw :: c_int , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of branch_recorder_handler_interface\"] [:: std :: mem :: size_of :: < branch_recorder_handler_interface > () - 112usize] ; [\"Alignment of branch_recorder_handler_interface\"] [:: std :: mem :: align_of :: < branch_recorder_handler_interface > () - 8usize] ; [\"Offset of field: branch_recorder_handler_interface::attach_branch_recorder\"] [:: std :: mem :: offset_of ! (branch_recorder_handler_interface , attach_branch_recorder) - 0usize] ; [\"Offset of field: branch_recorder_handler_interface::detach_branch_recorder\"] [:: std :: mem :: offset_of ! (branch_recorder_handler_interface , detach_branch_recorder) - 8usize] ; [\"Offset of field: branch_recorder_handler_interface::create_cpu_branch_recorder\"] [:: std :: mem :: offset_of ! (branch_recorder_handler_interface , create_cpu_branch_recorder) - 16usize] ; [\"Offset of field: branch_recorder_handler_interface::destroy_cpu_branch_recorder\"] [:: std :: mem :: offset_of ! (branch_recorder_handler_interface , destroy_cpu_branch_recorder) - 24usize] ; [\"Offset of field: branch_recorder_handler_interface::delete_arcs\"] [:: std :: mem :: offset_of ! (branch_recorder_handler_interface , delete_arcs) - 32usize] ; [\"Offset of field: branch_recorder_handler_interface::num_branches\"] [:: std :: mem :: offset_of ! (branch_recorder_handler_interface , num_branches) - 40usize] ; [\"Offset of field: branch_recorder_handler_interface::get_branches\"] [:: std :: mem :: offset_of ! (branch_recorder_handler_interface , get_branches) - 48usize] ; [\"Offset of field: branch_recorder_handler_interface::iter\"] [:: std :: mem :: offset_of ! (branch_recorder_handler_interface , iter) - 56usize] ; [\"Offset of field: branch_recorder_handler_interface::iter_branch_arc\"] [:: std :: mem :: offset_of ! (branch_recorder_handler_interface , iter_branch_arc) - 64usize] ; [\"Offset of field: branch_recorder_handler_interface::eec_interrupt_instruction\"] [:: std :: mem :: offset_of ! (branch_recorder_handler_interface , eec_interrupt_instruction) - 72usize] ; [\"Offset of field: branch_recorder_handler_interface::granularity_log2\"] [:: std :: mem :: offset_of ! (branch_recorder_handler_interface , granularity_log2) - 80usize] ; [\"Offset of field: branch_recorder_handler_interface::view_descriptions\"] [:: std :: mem :: offset_of ! (branch_recorder_handler_interface , view_descriptions) - 88usize] ; [\"Offset of field: branch_recorder_handler_interface::num_views\"] [:: std :: mem :: offset_of ! (branch_recorder_handler_interface , num_views) - 96usize] ; [\"Offset of field: branch_recorder_handler_interface::pa_bits\"] [:: std :: mem :: offset_of ! (branch_recorder_handler_interface , pa_bits) - 100usize] ; [\"Offset of field: branch_recorder_handler_interface::va_bits\"] [:: std :: mem :: offset_of ! (branch_recorder_handler_interface , va_bits) - 104usize] ; } ; impl Default for branch_recorder_handler_interface { fn default () -> Self { let mut s = :: std :: mem :: MaybeUninit :: < Self > :: uninit () ; unsafe { :: std :: ptr :: write_bytes (s . as_mut_ptr () , 0 , 1) ; s . assume_init () } } } # [repr (u32)] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub enum addr_type_t { Addr_Type_Invalid = 0 , Addr_Type_Physical = 1 , Addr_Type_Virtual = 2 , } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct completion { _unused : [u8 ; 0] , } pub type completion_t = completion ; extern \"C\" { pub fn VT_new_completion () -> * mut completion_t ; } extern \"C\" { pub fn VT_free_completion (c : * mut completion_t) ; } extern \"C\" { pub fn VT_wait_for_completion (c : * mut completion_t) -> :: std :: os :: raw :: c_int ; } extern \"C\" { pub fn VT_set_completion (c : * mut completion_t , status : :: std :: os :: raw :: c_int) ; } extern \"C\" { pub fn VT_async_stall_usecs (usecs : uint64) ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct wait_handler { _unused : [u8 ; 0] , } pub type wait_handler_t = wait_handler ; extern \"C\" { pub fn VT_create_wait_handler (wait : :: std :: option :: Option < unsafe extern \"C\" fn (ret_thread_id : * mut * mut :: std :: os :: raw :: c_void , usr : * mut :: std :: os :: raw :: c_void) > , resume : :: std :: option :: Option < unsafe extern \"C\" fn (thread_id : * mut :: std :: os :: raw :: c_void , usr : * mut :: std :: os :: raw :: c_void) > , usr : * mut :: std :: os :: raw :: c_void) -> * mut wait_handler_t ; } extern \"C\" { pub fn VT_free_wait_handler (h : * mut wait_handler_t) ; } extern \"C\" { pub fn VT_set_wait_handler (h : * mut wait_handler_t) -> * mut wait_handler_t ; } extern \"C\" { pub fn VT_start_execution_fiber (obj : * mut conf_object_t , func : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , param : * mut lang_void) > , param : * mut lang_void) ; } extern \"C\" { pub fn VT_abort_execution_fiber () -> ! ; } impl breakpoint_flag { pub const Sim_Breakpoint_Temporary : breakpoint_flag = breakpoint_flag (1) ; } impl breakpoint_flag { pub const Sim_Breakpoint_Simulation : breakpoint_flag = breakpoint_flag (2) ; } impl breakpoint_flag { pub const Sim_Breakpoint_Private : breakpoint_flag = breakpoint_flag (4) ; } impl :: std :: ops :: BitOr < breakpoint_flag > for breakpoint_flag { type Output = Self ; # [inline] fn bitor (self , other : Self) -> Self { breakpoint_flag (self . 0 | other . 0) } } impl :: std :: ops :: BitOrAssign for breakpoint_flag { # [inline] fn bitor_assign (& mut self , rhs : breakpoint_flag) { self . 0 |= rhs . 0 ; } } impl :: std :: ops :: BitAnd < breakpoint_flag > for breakpoint_flag { type Output = Self ; # [inline] fn bitand (self , other : Self) -> Self { breakpoint_flag (self . 0 & other . 0) } } impl :: std :: ops :: BitAndAssign for breakpoint_flag { # [inline] fn bitand_assign (& mut self , rhs : breakpoint_flag) { self . 0 &= rhs . 0 ; } } # [repr (transparent)] # [doc = \" <add-type id=\\\"enum breakpoint_flag\\\"></add-type>\"] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct breakpoint_flag (pub :: std :: os :: raw :: c_uint) ; # [doc = \" <add-type id=\\\"enum breakpoint_flag\\\"></add-type>\"] pub use self :: breakpoint_flag as breakpoint_flag_t ; extern \"C\" { pub fn SIM_breakpoint (obj : * mut conf_object_t , type_ : breakpoint_kind_t , access : access_t , address : uint64 , length : uint64 , flags : breakpoint_flag_t) -> breakpoint_id_t ; } extern \"C\" { pub fn SIM_delete_breakpoint (id : breakpoint_id_t) ; } extern \"C\" { pub fn SIM_enable_breakpoint (id : breakpoint_id_t) ; } extern \"C\" { pub fn SIM_disable_breakpoint (id : breakpoint_id_t) ; } extern \"C\" { pub fn SIM_breakpoint_remove (id : breakpoint_id_t , access : access_t , address : generic_address_t , length : generic_address_t) ; } # [repr (u32)] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub enum notify_mode_t { # [doc = \" when ready for reading/accept, or closed\"] Sim_NM_Read = 0 , # [doc = \" when ready for writing/connect\"] Sim_NM_Write = 1 , } extern \"C\" { pub fn SIM_notify_on_descriptor (fd : :: std :: os :: raw :: c_int , mode : notify_mode_t , run_in_thread : :: std :: os :: raw :: c_int , callback : :: std :: option :: Option < unsafe extern \"C\" fn (data : * mut lang_void) > , data : * mut lang_void) ; } extern \"C\" { pub fn SIM_notify_on_socket (sock : socket_t , mode : notify_mode_t , run_in_thread : :: std :: os :: raw :: c_int , callback : :: std :: option :: Option < unsafe extern \"C\" fn (data : * mut lang_void) > , data : * mut lang_void) ; } extern \"C\" { pub fn SIM_register_work (f : :: std :: option :: Option < unsafe extern \"C\" fn (data : * mut lang_void) > , data : * mut lang_void) ; } extern \"C\" { pub fn SIM_process_work (done : :: std :: option :: Option < unsafe extern \"C\" fn (done_data : * mut lang_void) -> :: std :: os :: raw :: c_int > , done_data : * mut lang_void) -> :: std :: os :: raw :: c_int ; } extern \"C\" { pub fn SIM_process_pending_work () -> :: std :: os :: raw :: c_int ; } extern \"C\" { pub fn VT_post_local_work (cell : * mut conf_object_t , f : :: std :: option :: Option < unsafe extern \"C\" fn (data : * mut lang_void) > , data : * mut lang_void) ; } extern \"C\" { pub fn SIM_realtime_event (delay_ms : :: std :: os :: raw :: c_uint , callback : :: std :: option :: Option < unsafe extern \"C\" fn (data : * mut lang_void) > , data : * mut lang_void , run_in_thread : :: std :: os :: raw :: c_int , desc : * const :: std :: os :: raw :: c_char) -> int64 ; } extern \"C\" { pub fn SIM_cancel_realtime_event (id : int64) -> :: std :: os :: raw :: c_int ; } extern \"C\" { pub fn SIM_run_alone (f : :: std :: option :: Option < unsafe extern \"C\" fn (data : * mut lang_void) > , data : * mut lang_void) ; } extern \"C\" { pub fn SIM_thread_safe_callback (f : :: std :: option :: Option < unsafe extern \"C\" fn (data : * mut lang_void) > , data : * mut lang_void) ; } extern \"C\" { pub fn SIM_run_async_work (async_call : :: std :: option :: Option < unsafe extern \"C\" fn (arg : * mut lang_void) -> * mut lang_void > , async_ready : :: std :: option :: Option < unsafe extern \"C\" fn (async_ret : * mut lang_void , arg : * mut lang_void) > , arg : * mut lang_void) ; } extern \"C\" { pub fn SIM_run_in_thread (f : :: std :: option :: Option < unsafe extern \"C\" fn (arg : * mut lang_void) > , arg : * mut lang_void) ; } extern \"C\" { pub fn VT_domain_event_soon (domain : * mut conf_object_t , ec : * mut event_class_t , obj : * mut conf_object_t , param : * mut lang_void) ; } extern \"C\" { pub fn VT_domain_event_at (domain : * mut conf_object_t , ec : * mut event_class_t , obj : * mut conf_object_t , clock : * mut conf_object_t , when : f64 , param : * mut lang_void) ; } extern \"C\" { pub fn VT_cross_cell_call (f : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , arg : * mut lang_void) > , obj : * mut conf_object_t , arg : * mut lang_void) ; } extern \"C\" { pub fn VT_process_cross_cell_calls () ; } extern \"C\" { pub fn VT_dispatch_async_events () ; } extern \"C\" { pub fn VT_run_outside_cell (f : :: std :: option :: Option < unsafe extern \"C\" fn (arg : * mut lang_void) > , arg : * mut lang_void) ; } extern \"C\" { pub fn VT_add_telemetry_data (group : * const :: std :: os :: raw :: c_char , key : * const :: std :: os :: raw :: c_char , value : * mut attr_value_t) ; } extern \"C\" { pub fn VT_add_telemetry_data_str (group : * const :: std :: os :: raw :: c_char , key : * const :: std :: os :: raw :: c_char , value : * const :: std :: os :: raw :: c_char) ; } extern \"C\" { pub fn VT_add_telemetry_data_int (group : * const :: std :: os :: raw :: c_char , key : * const :: std :: os :: raw :: c_char , value : uint64) ; } extern \"C\" { pub fn VT_add_telemetry_data_bool (group : * const :: std :: os :: raw :: c_char , key : * const :: std :: os :: raw :: c_char , value : bool) ; } pub type telemetry_manager_interface_t = telemetry_manager_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct telemetry_manager_interface { pub add_data : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , group : * const :: std :: os :: raw :: c_char , key : * const :: std :: os :: raw :: c_char , value : * mut attr_value_t) > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of telemetry_manager_interface\"] [:: std :: mem :: size_of :: < telemetry_manager_interface > () - 8usize] ; [\"Alignment of telemetry_manager_interface\"] [:: std :: mem :: align_of :: < telemetry_manager_interface > () - 8usize] ; [\"Offset of field: telemetry_manager_interface::add_data\"] [:: std :: mem :: offset_of ! (telemetry_manager_interface , add_data) - 0usize] ; } ; extern \"C\" { pub fn SIM_trigger_global_message (msg : * const :: std :: os :: raw :: c_char , ref_ : * mut lang_void) ; } extern \"C\" { pub fn SIM_get_global_message (ref_ : * mut lang_void) -> * const :: std :: os :: raw :: c_char ; } pub type cmd_line_id_t = :: std :: os :: raw :: c_int ; # [repr (u32)] # [doc = \" This enum must be kept in sync with the array simicsToSwt in\\n SimicsKeyTranslator.java, otherwise the Eclipse Console view\\n will break.\"] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub enum cmd_line_key_t { Cmd_Line_Key_Left = 0 , Cmd_Line_Key_Right = 1 , Cmd_Line_Key_Up = 2 , Cmd_Line_Key_Down = 3 , Cmd_Line_Key_PgUp = 4 , Cmd_Line_Key_PgDn = 5 , Cmd_Line_Key_Home = 6 , Cmd_Line_Key_End = 7 , Cmd_Line_Key_Back = 8 , Cmd_Line_Key_Tab = 9 , Cmd_Line_Key_Enter = 10 , Cmd_Line_Key_Del = 11 , Cmd_Line_Key_Ins = 12 , Cmd_Line_Key_F1 = 13 , Cmd_Line_Key_F2 = 14 , Cmd_Line_Key_F3 = 15 , Cmd_Line_Key_F4 = 16 , Cmd_Line_Key_F5 = 17 , Cmd_Line_Key_F6 = 18 , Cmd_Line_Key_F7 = 19 , Cmd_Line_Key_F8 = 20 , Cmd_Line_Key_F9 = 21 , Cmd_Line_Key_F10 = 22 , Cmd_Line_Key_F11 = 23 , Cmd_Line_Key_F12 = 24 , } # [repr (u32)] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub enum cmd_line_mod_t { Cmd_Line_Mod_None = 0 , Cmd_Line_Mod_Shift = 1 , Cmd_Line_Mod_Ctrl = 2 , Cmd_Line_Mod_Alt = 4 , } pub type cmd_line_frontend_interface_t = cmd_line_frontend_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct cmd_line_frontend_interface { # [doc = \" write a character on the command line at the current cursor\\nposition, overwriting any existing character there\"] pub write : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , str_ : * const :: std :: os :: raw :: c_char) > , # [doc = \" deletes the line from current position to the end of the line\"] pub delete_line : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t) > , pub disconnect : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t) > , # [doc = \" moves the cursor <param>num</param> characters to the left.\"] pub cursor_left : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , num : :: std :: os :: raw :: c_int) > , # [doc = \" moves the cursor <param>num</param> characters to the right.\"] pub cursor_right : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , num : :: std :: os :: raw :: c_int) > , # [doc = \" clears the screen and moves the cursor to position 0. Optional,\\nmay be NULL if not implemented.\"] pub clear_screen : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t) > , # [doc = \" called when the prompt has been printed with the position on\\nthe line of the first non-prompt character. Optional, may be\\nnull if not implemented\"] pub prompt_end : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , pos : :: std :: os :: raw :: c_int) > , # [doc = \" optional\"] pub bell : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t) > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of cmd_line_frontend_interface\"] [:: std :: mem :: size_of :: < cmd_line_frontend_interface > () - 64usize] ; [\"Alignment of cmd_line_frontend_interface\"] [:: std :: mem :: align_of :: < cmd_line_frontend_interface > () - 8usize] ; [\"Offset of field: cmd_line_frontend_interface::write\"] [:: std :: mem :: offset_of ! (cmd_line_frontend_interface , write) - 0usize] ; [\"Offset of field: cmd_line_frontend_interface::delete_line\"] [:: std :: mem :: offset_of ! (cmd_line_frontend_interface , delete_line) - 8usize] ; [\"Offset of field: cmd_line_frontend_interface::disconnect\"] [:: std :: mem :: offset_of ! (cmd_line_frontend_interface , disconnect) - 16usize] ; [\"Offset of field: cmd_line_frontend_interface::cursor_left\"] [:: std :: mem :: offset_of ! (cmd_line_frontend_interface , cursor_left) - 24usize] ; [\"Offset of field: cmd_line_frontend_interface::cursor_right\"] [:: std :: mem :: offset_of ! (cmd_line_frontend_interface , cursor_right) - 32usize] ; [\"Offset of field: cmd_line_frontend_interface::clear_screen\"] [:: std :: mem :: offset_of ! (cmd_line_frontend_interface , clear_screen) - 40usize] ; [\"Offset of field: cmd_line_frontend_interface::prompt_end\"] [:: std :: mem :: offset_of ! (cmd_line_frontend_interface , prompt_end) - 48usize] ; [\"Offset of field: cmd_line_frontend_interface::bell\"] [:: std :: mem :: offset_of ! (cmd_line_frontend_interface , bell) - 56usize] ; } ; pub type cmd_line_selection_interface_t = cmd_line_selection_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct cmd_line_selection_interface { pub new_selection : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , x : :: std :: os :: raw :: c_int , y : :: std :: os :: raw :: c_int) > , pub to_clipboard : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , str_ : * const :: std :: os :: raw :: c_char) > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of cmd_line_selection_interface\"] [:: std :: mem :: size_of :: < cmd_line_selection_interface > () - 16usize] ; [\"Alignment of cmd_line_selection_interface\"] [:: std :: mem :: align_of :: < cmd_line_selection_interface > () - 8usize] ; [\"Offset of field: cmd_line_selection_interface::new_selection\"] [:: std :: mem :: offset_of ! (cmd_line_selection_interface , new_selection) - 0usize] ; [\"Offset of field: cmd_line_selection_interface::to_clipboard\"] [:: std :: mem :: offset_of ! (cmd_line_selection_interface , to_clipboard) - 8usize] ; } ; extern \"C\" { # [doc = \" The following functions are internal and will probably be replaced\\nby a \\\"cmd_line\\\" interface.\"] pub fn VT_command_line_create (obj : * mut conf_object_t , interactive : bool , primary : bool) -> cmd_line_id_t ; } extern \"C\" { pub fn VT_command_line_delete (id : cmd_line_id_t) ; } extern \"C\" { pub fn VT_command_line_new_position (id : cmd_line_id_t , pos : :: std :: os :: raw :: c_int) ; } extern \"C\" { pub fn VT_command_line_new_selection (id : cmd_line_id_t , left : :: std :: os :: raw :: c_int , right : :: std :: os :: raw :: c_int) ; } extern \"C\" { pub fn VT_command_line_to_clipboard (id : cmd_line_id_t , str_ : * const :: std :: os :: raw :: c_char) ; } extern \"C\" { pub fn VT_command_line_key (id : cmd_line_id_t , mod_ : cmd_line_mod_t , key : cmd_line_key_t) ; } extern \"C\" { pub fn VT_command_line_set_size (arg1 : cmd_line_id_t , cols : :: std :: os :: raw :: c_int , rows : :: std :: os :: raw :: c_int) ; } pub type terminal_server_interface_t = terminal_server_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct terminal_server_interface { pub write : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , str_ : * const :: std :: os :: raw :: c_char) > , pub set_size : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , left : :: std :: os :: raw :: c_int , right : :: std :: os :: raw :: c_int) > , pub disconnect : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t) > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of terminal_server_interface\"] [:: std :: mem :: size_of :: < terminal_server_interface > () - 24usize] ; [\"Alignment of terminal_server_interface\"] [:: std :: mem :: align_of :: < terminal_server_interface > () - 8usize] ; [\"Offset of field: terminal_server_interface::write\"] [:: std :: mem :: offset_of ! (terminal_server_interface , write) - 0usize] ; [\"Offset of field: terminal_server_interface::set_size\"] [:: std :: mem :: offset_of ! (terminal_server_interface , set_size) - 8usize] ; [\"Offset of field: terminal_server_interface::disconnect\"] [:: std :: mem :: offset_of ! (terminal_server_interface , disconnect) - 16usize] ; } ; pub type terminal_client_interface_t = terminal_client_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct terminal_client_interface { pub write : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , id : :: std :: os :: raw :: c_int , str_ : * const :: std :: os :: raw :: c_char) > , pub disconnect : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , id : :: std :: os :: raw :: c_int) > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of terminal_client_interface\"] [:: std :: mem :: size_of :: < terminal_client_interface > () - 16usize] ; [\"Alignment of terminal_client_interface\"] [:: std :: mem :: align_of :: < terminal_client_interface > () - 8usize] ; [\"Offset of field: terminal_client_interface::write\"] [:: std :: mem :: offset_of ! (terminal_client_interface , write) - 0usize] ; [\"Offset of field: terminal_client_interface::disconnect\"] [:: std :: mem :: offset_of ! (terminal_client_interface , disconnect) - 8usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct pre_conf_object_set_t { _unused : [u8 ; 0] , } extern \"C\" { pub fn SIM_read_configuration (file : * const :: std :: os :: raw :: c_char) ; } extern \"C\" { pub fn SIM_set_configuration (conf : attr_value_t) ; } extern \"C\" { pub fn SIM_add_configuration (object_list : * mut pre_conf_object_set_t , file : * const :: std :: os :: raw :: c_char) ; } extern \"C\" { pub fn SIM_current_checkpoint_dir () -> * mut :: std :: os :: raw :: c_char ; } extern \"C\" { pub fn VT_add_objects (set : * mut pre_conf_object_set_t) -> attr_value_t ; } impl save_flags_t { # [doc = \" old-style save without creating directory\"] pub const Sim_Save_Nobundle : save_flags_t = save_flags_t (1) ; } impl save_flags_t { # [doc = \" use RLE for data values\"] pub const Sim_Save_RLE_Data : save_flags_t = save_flags_t (2) ; } impl save_flags_t { # [doc = \" create gzipped config file\"] pub const Sim_Save_Gzip_Config : save_flags_t = save_flags_t (4) ; } impl :: std :: ops :: BitOr < save_flags_t > for save_flags_t { type Output = Self ; # [inline] fn bitor (self , other : Self) -> Self { save_flags_t (self . 0 | other . 0) } } impl :: std :: ops :: BitOrAssign for save_flags_t { # [inline] fn bitor_assign (& mut self , rhs : save_flags_t) { self . 0 |= rhs . 0 ; } } impl :: std :: ops :: BitAnd < save_flags_t > for save_flags_t { type Output = Self ; # [inline] fn bitand (self , other : Self) -> Self { save_flags_t (self . 0 & other . 0) } } impl :: std :: ops :: BitAndAssign for save_flags_t { # [inline] fn bitand_assign (& mut self , rhs : save_flags_t) { self . 0 &= rhs . 0 ; } } # [repr (transparent)] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct save_flags_t (pub :: std :: os :: raw :: c_uint) ; extern \"C\" { pub fn SIM_write_configuration_to_file (file : * const :: std :: os :: raw :: c_char , flags : save_flags_t) ; } extern \"C\" { pub fn VT_get_configuration (file : * const :: std :: os :: raw :: c_char) -> * mut pre_conf_object_set_t ; } extern \"C\" { # [doc = \" Get registered class (returns NULL if class not found).\"] pub fn SIM_get_class (name : * const :: std :: os :: raw :: c_char) -> * mut conf_class_t ; } extern \"C\" { # [doc = \" Get attribute attribute.\"] pub fn SIM_get_attribute_attributes (cls : * mut conf_class_t , attr : * const :: std :: os :: raw :: c_char) -> attr_attr_t ; } extern \"C\" { # [doc = \" return 1 if the class has an attribute with name attr\"] pub fn SIM_class_has_attribute (cls : * mut conf_class_t , attr : * const :: std :: os :: raw :: c_char) -> bool ; } extern \"C\" { pub fn SIM_class_port (cls : * const conf_class_t , portname : * const :: std :: os :: raw :: c_char) -> * mut conf_class_t ; } extern \"C\" { pub fn VT_get_port_classes (cls : * mut conf_class_t) -> attr_value_t ; } extern \"C\" { pub fn VT_get_port_obj_desc (cls : * mut conf_class_t , name : * const :: std :: os :: raw :: c_char) -> * const :: std :: os :: raw :: c_char ; } extern \"C\" { pub fn VT_get_class_description (cls : * const conf_class_t) -> * const :: std :: os :: raw :: c_char ; } extern \"C\" { pub fn VT_get_class_short_desc (cls : * const conf_class_t) -> * const :: std :: os :: raw :: c_char ; } extern \"C\" { pub fn VT_get_class_kind (cls : * const conf_class_t) -> class_kind_t ; } extern \"C\" { # [doc = \" Get object (returns NULL if object not found).\"] pub fn SIM_get_object (name : * const :: std :: os :: raw :: c_char) -> * mut conf_object_t ; } extern \"C\" { pub fn VT_get_object_by_name (name : * const :: std :: os :: raw :: c_char) -> * mut conf_object_t ; } extern \"C\" { # [doc = \" Delete object.\"] pub fn SIM_delete_object (obj : * mut conf_object_t) -> :: std :: os :: raw :: c_int ; } extern \"C\" { pub fn SIM_delete_objects (object_list : attr_value_t) -> :: std :: os :: raw :: c_int ; } extern \"C\" { # [doc = \" Get attribute from object.\"] pub fn SIM_get_attribute (obj : * mut conf_object_t , name : * const :: std :: os :: raw :: c_char) -> attr_value_t ; } extern \"C\" { pub fn SIM_get_attribute_idx (obj : * mut conf_object_t , name : * const :: std :: os :: raw :: c_char , index : * mut attr_value_t) -> attr_value_t ; } extern \"C\" { # [doc = \" Get attribute from class.\"] pub fn SIM_get_class_attribute (cls : * mut conf_class_t , name : * const :: std :: os :: raw :: c_char) -> attr_value_t ; } extern \"C\" { pub fn SIM_get_class_attribute_idx (cls : * mut conf_class_t , name : * const :: std :: os :: raw :: c_char , index : * mut attr_value_t) -> attr_value_t ; } extern \"C\" { # [doc = \" Set attribute in object. Returns error code on failure (0 == ok).\"] pub fn SIM_set_attribute (obj : * mut conf_object_t , name : * const :: std :: os :: raw :: c_char , value : * mut attr_value_t) -> set_error_t ; } extern \"C\" { pub fn SIM_set_attribute_idx (obj : * mut conf_object_t , name : * const :: std :: os :: raw :: c_char , index : * mut attr_value_t , value : * mut attr_value_t) -> set_error_t ; } extern \"C\" { pub fn SIM_set_attribute_default (obj : * mut conf_object_t , name : * const :: std :: os :: raw :: c_char , value : attr_value_t) -> set_error_t ; } extern \"C\" { # [doc = \" Set attribute in class. Returns error code on failure (0 == ok).\"] pub fn SIM_set_class_attribute (cls : * mut conf_class_t , name : * const :: std :: os :: raw :: c_char , value : * mut attr_value_t) -> set_error_t ; } extern \"C\" { pub fn SIM_set_class_attribute_idx (cls : * mut conf_class_t , name : * const :: std :: os :: raw :: c_char , index : * mut attr_value_t , value : * mut attr_value_t) -> set_error_t ; } extern \"C\" { pub fn VT_get_attributes (cls : * mut conf_class_t) -> attr_value_t ; } extern \"C\" { pub fn VT_get_interfaces (cls : * mut conf_class_t) -> attr_value_t ; } extern \"C\" { pub fn VT_get_port_interfaces (cls : * mut conf_class_t) -> attr_value_t ; } extern \"C\" { pub fn VT_get_class_extensions (cls : * mut conf_class_t) -> attr_value_t ; } extern \"C\" { pub fn VT_get_attribute_type (cls : * mut conf_class_t , attr : * const :: std :: os :: raw :: c_char) -> * const :: std :: os :: raw :: c_char ; } extern \"C\" { pub fn VT_rename_object (obj : * mut conf_object_t , newname : * const :: std :: os :: raw :: c_char) ; } extern \"C\" { pub fn VT_set_object_checkpointable (obj : * mut conf_object_t , checkpointable : bool) ; } extern \"C\" { pub fn VT_object_checkpointable (obj : * mut conf_object_t) -> bool ; } extern \"C\" { pub fn VT_set_delete_protection (obj : * mut conf_object_t , on : bool) ; } extern \"C\" { pub fn VT_add_permanent_object (obj : * mut conf_object_t) ; } extern \"C\" { pub fn SIM_create_object (cls : * mut conf_class_t , name : * const :: std :: os :: raw :: c_char , attrs : attr_value_t) -> * mut conf_object_t ; } extern \"C\" { # [doc = \" Return vector with all objects.\"] pub fn SIM_get_all_objects () -> attr_value_t ; } extern \"C\" { pub fn SIM_get_all_classes () -> attr_value_t ; } extern \"C\" { # [doc = \" Return vector with objects implementing all the ifaces\"] pub fn VT_get_all_objects_impl (ifaces : attr_value_t) -> attr_value_t ; } extern \"C\" { pub fn VT_get_all_instances (cls : * mut conf_class_t) -> attr_value_t ; } extern \"C\" { pub fn DBG_check_typing_system (type_ : * const :: std :: os :: raw :: c_char , val : * mut attr_value_t) -> :: std :: os :: raw :: c_int ; } extern \"C\" { # [doc = \" Make sure that Simics is not running when this function is called, and take\\nthe necessary steps depending on the situation\"] pub fn VT_assert_outside_execution_context (func : * const :: std :: os :: raw :: c_char , file : * const :: std :: os :: raw :: c_char , line : :: std :: os :: raw :: c_int) ; } extern \"C\" { # [doc = \" Return true if VT_assert_outside_execution_context() would warn or assert in\\nthe current situation. This function is meant to be used before calling\\nVT_assert_outside_execution_context() to print specific warnings before\\nasserting.\"] pub fn VT_outside_execution_context_violation () -> bool ; } extern \"C\" { pub fn SIM_continue (steps : int64) -> pc_step_t ; } extern \"C\" { pub fn SIM_simics_is_running () -> bool ; } extern \"C\" { pub fn SIM_break_simulation (msg : * const :: std :: os :: raw :: c_char) ; } extern \"C\" { pub fn SIM_break_message (msg : * const :: std :: os :: raw :: c_char) ; } extern \"C\" { pub fn VT_get_break_message () -> * const :: std :: os :: raw :: c_char ; } extern \"C\" { pub fn SIM_shutdown () ; } extern \"C\" { pub fn SIM_quit (exit_code : :: std :: os :: raw :: c_int) -> ! ; } extern \"C\" { pub fn VT_wait_for_simulator_init () ; } extern \"C\" { pub fn SIM_break_cycle (obj : * mut conf_object_t , cycles : int64) ; } extern \"C\" { pub fn SIM_break_step (obj : * mut conf_object_t , steps : int64) ; } extern \"C\" { pub fn VT_user_interrupt (msg : * const :: std :: os :: raw :: c_char , break_script : :: std :: os :: raw :: c_int) ; } extern \"C\" { pub fn VT_inside_instruction () -> bool ; } extern \"C\" { pub fn VT_thread_cell_association_begin (obj : * mut conf_object_t) ; } extern \"C\" { pub fn VT_thread_cell_association_end (obj : * mut conf_object_t) ; } extern \"C\" { pub fn VT_in_main_branch () -> bool ; } extern \"C\" { pub fn VT_set_frontend_server (obj : * mut conf_object_t) -> :: std :: os :: raw :: c_int ; } extern \"C\" { pub fn VT_send_startup_complete_message () ; } extern \"C\" { pub fn VT_remote_control () -> :: std :: os :: raw :: c_int ; } extern \"C\" { pub fn VT_process_work (done : * mut :: std :: os :: raw :: c_int) -> :: std :: os :: raw :: c_int ; } pub type frontend_server_interface_t = frontend_server_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct frontend_server_interface { pub init_control_pipes : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , s : * const :: std :: os :: raw :: c_char) > , pub have_mi_frontend : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t) -> :: std :: os :: raw :: c_int > , pub notify_break_on_breakpoint : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , break_id : int64) > , pub send_control_message : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , val : * mut attr_value_t , propagate_exception : bool) > , pub send_checkpoint_progress_message : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , msg : * const :: std :: os :: raw :: c_char , caller : * mut conf_object_t) > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of frontend_server_interface\"] [:: std :: mem :: size_of :: < frontend_server_interface > () - 40usize] ; [\"Alignment of frontend_server_interface\"] [:: std :: mem :: align_of :: < frontend_server_interface > () - 8usize] ; [\"Offset of field: frontend_server_interface::init_control_pipes\"] [:: std :: mem :: offset_of ! (frontend_server_interface , init_control_pipes) - 0usize] ; [\"Offset of field: frontend_server_interface::have_mi_frontend\"] [:: std :: mem :: offset_of ! (frontend_server_interface , have_mi_frontend) - 8usize] ; [\"Offset of field: frontend_server_interface::notify_break_on_breakpoint\"] [:: std :: mem :: offset_of ! (frontend_server_interface , notify_break_on_breakpoint) - 16usize] ; [\"Offset of field: frontend_server_interface::send_control_message\"] [:: std :: mem :: offset_of ! (frontend_server_interface , send_control_message) - 24usize] ; [\"Offset of field: frontend_server_interface::send_checkpoint_progress_message\"] [:: std :: mem :: offset_of ! (frontend_server_interface , send_checkpoint_progress_message) - 32usize] ; } ; pub type tcf_channel_interface_t = tcf_channel_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct tcf_channel_interface { pub start_channel : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , url : * const :: std :: os :: raw :: c_char) -> attr_value_t > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of tcf_channel_interface\"] [:: std :: mem :: size_of :: < tcf_channel_interface > () - 8usize] ; [\"Alignment of tcf_channel_interface\"] [:: std :: mem :: align_of :: < tcf_channel_interface > () - 8usize] ; [\"Offset of field: tcf_channel_interface::start_channel\"] [:: std :: mem :: offset_of ! (tcf_channel_interface , start_channel) - 0usize] ; } ; extern \"C\" { pub fn VT_get_stop_reasons () -> attr_value_t ; } # [repr (u32)] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub enum stop_type_t { Sim_Stop_Stopped = 0 , Sim_Stop_Aborted = 1 , } extern \"C\" { pub fn VT_get_stop_type () -> stop_type_t ; } extern \"C\" { pub fn VT_stop_message (obj : * mut conf_object_t , msg : * const :: std :: os :: raw :: c_char) ; } extern \"C\" { pub fn VT_stop_error (obj : * mut conf_object_t , msg : * const :: std :: os :: raw :: c_char) ; } extern \"C\" { pub fn VT_stop_user (msg : * const :: std :: os :: raw :: c_char) ; } extern \"C\" { pub fn VT_stop_finished (msg : * const :: std :: os :: raw :: c_char) ; } extern \"C\" { pub fn VT_abort_error (obj : * mut conf_object_t , msg : * const :: std :: os :: raw :: c_char) ; } extern \"C\" { pub fn VT_abort_user (msg : * const :: std :: os :: raw :: c_char) ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct execute_environ { _unused : [u8 ; 0] , } pub type execute_environ_t = execute_environ ; extern \"C\" { pub fn VT_create_execute_environ () -> * mut execute_environ_t ; } extern \"C\" { pub fn VT_free_execute_environ (env : * mut execute_environ_t) ; } extern \"C\" { pub fn VT_set_execute_environ (obj : * mut conf_object_t , env : * mut execute_environ_t) ; } extern \"C\" { pub fn VT_stop_execution (env : * mut execute_environ_t) ; } extern \"C\" { pub fn VT_activate_executor (ec : * mut execute_environ_t , obj : * mut conf_object_t) ; } extern \"C\" { pub fn VT_execute (ec : * mut execute_environ_t) -> bool ; } extern \"C\" { pub fn SIM_get_debugger () -> * mut conf_object_t ; } # [doc = \" <add-type id=\\\"hap_handle_t def\\\"><ndx>hap_handle_t</ndx></add-type>\"] pub type hap_handle_t = :: std :: os :: raw :: c_int ; pub type obj_hap_func_t = :: std :: option :: Option < unsafe extern \"C\" fn () > ; pub type hap_flags_t = :: std :: os :: raw :: c_int ; extern \"C\" { pub fn SIM_get_all_hap_types () -> attr_value_t ; } extern \"C\" { pub fn SIM_hap_add_callback (hap : * const :: std :: os :: raw :: c_char , func : obj_hap_func_t , data : * mut lang_void) -> hap_handle_t ; } extern \"C\" { pub fn SIM_hap_add_callback_index (hap : * const :: std :: os :: raw :: c_char , func : obj_hap_func_t , data : * mut lang_void , index : int64) -> hap_handle_t ; } extern \"C\" { pub fn SIM_hap_add_callback_range (hap : * const :: std :: os :: raw :: c_char , func : obj_hap_func_t , data : * mut lang_void , start : int64 , end : int64) -> hap_handle_t ; } extern \"C\" { pub fn SIM_hap_add_callback_obj (hap : * const :: std :: os :: raw :: c_char , obj : * mut conf_object_t , flags : hap_flags_t , func : obj_hap_func_t , data : * mut lang_void) -> hap_handle_t ; } extern \"C\" { pub fn SIM_hap_add_callback_obj_index (hap : * const :: std :: os :: raw :: c_char , obj : * mut conf_object_t , flags : hap_flags_t , func : obj_hap_func_t , data : * mut lang_void , index : int64) -> hap_handle_t ; } extern \"C\" { pub fn SIM_hap_add_callback_obj_range (hap : * const :: std :: os :: raw :: c_char , obj : * mut conf_object_t , flags : hap_flags_t , func : obj_hap_func_t , data : * mut lang_void , start : int64 , end : int64) -> hap_handle_t ; } extern \"C\" { pub fn SIM_hap_delete_callback (hap : * const :: std :: os :: raw :: c_char , func : obj_hap_func_t , data : * mut lang_void) ; } extern \"C\" { pub fn SIM_hap_delete_callback_obj (hap : * const :: std :: os :: raw :: c_char , obj : * mut conf_object_t , func : obj_hap_func_t , data : * mut lang_void) ; } extern \"C\" { pub fn SIM_hap_delete_callback_id (hap : * const :: std :: os :: raw :: c_char , handle : hap_handle_t) ; } extern \"C\" { pub fn SIM_hap_delete_callback_obj_id (hap : * const :: std :: os :: raw :: c_char , obj : * mut conf_object_t , handle : hap_handle_t) ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct profile_area { _unused : [u8 ; 0] , } pub type profile_area_t = profile_area ; extern \"C\" { pub fn SIM_add_profiling_area (name : * const :: std :: os :: raw :: c_char , start : usize , end : usize) -> * mut profile_area_t ; } extern \"C\" { pub fn SIM_remove_profiling_area (handle : * mut profile_area_t) ; } extern \"C\" { pub fn SIM_read_phys_memory (cpu : * mut conf_object_t , paddr : physical_address_t , length : :: std :: os :: raw :: c_int) -> uint64 ; } extern \"C\" { pub fn SIM_write_phys_memory (cpu : * mut conf_object_t , paddr : physical_address_t , value : uint64 , length : :: std :: os :: raw :: c_int) ; } extern \"C\" { pub fn SIM_read_byte (obj : * mut conf_object_t , paddr : generic_address_t) -> uint8 ; } extern \"C\" { pub fn SIM_write_byte (obj : * mut conf_object_t , paddr : generic_address_t , value : uint8) ; } extern \"C\" { pub fn SIM_read_phys_memory_tags (mem_space : * mut conf_object_t , paddr : physical_address_t , ntags : :: std :: os :: raw :: c_uint) -> uint64 ; } extern \"C\" { pub fn SIM_write_phys_memory_tags (mem_space : * mut conf_object_t , paddr : physical_address_t , tag_bits : uint64 , ntags : :: std :: os :: raw :: c_uint) ; } extern \"C\" { pub fn SIM_load_binary (obj : * mut conf_object_t , file : * const :: std :: os :: raw :: c_char , offset : physical_address_t , use_pa : bool , verbose : bool) -> physical_address_t ; } extern \"C\" { pub fn SIM_load_file (obj : * mut conf_object_t , file : * const :: std :: os :: raw :: c_char , paddr : physical_address_t , verbose : bool) ; } extern \"C\" { pub fn SIM_get_all_modules () -> attr_value_t ; } extern \"C\" { pub fn SIM_get_all_failed_modules () -> attr_value_t ; } extern \"C\" { pub fn SIM_add_module_dir (path : * const :: std :: os :: raw :: c_char) ; } extern \"C\" { pub fn SIM_module_list_refresh () ; } extern \"C\" { pub fn SIM_load_module (module : * const :: std :: os :: raw :: c_char) ; } extern \"C\" { pub fn pr_err (str_ : * const :: std :: os :: raw :: c_char , ...) ; } extern \"C\" { pub fn pr_err_vararg (str_ : * const :: std :: os :: raw :: c_char , ap : * mut __va_list_tag) ; } extern \"C\" { pub fn SIM_write (src : * const :: std :: os :: raw :: c_void , length : :: std :: os :: raw :: c_int) -> :: std :: os :: raw :: c_int ; } extern \"C\" { pub fn SIM_flush () -> :: std :: os :: raw :: c_int ; } extern \"C\" { pub fn SIM_puts (s : * const :: std :: os :: raw :: c_char) -> :: std :: os :: raw :: c_int ; } extern \"C\" { pub fn SIM_putchar (c : :: std :: os :: raw :: c_int) -> :: std :: os :: raw :: c_int ; } extern \"C\" { pub fn SIM_printf (format : * const :: std :: os :: raw :: c_char , ...) -> :: std :: os :: raw :: c_int ; } extern \"C\" { # [doc = \" pr is just an alias for SIM_printf\"] pub fn pr (format : * const :: std :: os :: raw :: c_char , ...) -> :: std :: os :: raw :: c_int ; } extern \"C\" { pub fn SIM_printf_vararg (format : * const :: std :: os :: raw :: c_char , ap : * mut __va_list_tag) -> :: std :: os :: raw :: c_int ; } extern \"C\" { pub fn VT_write_rev (src : * const :: std :: os :: raw :: c_void , length : :: std :: os :: raw :: c_int) -> :: std :: os :: raw :: c_int ; } extern \"C\" { pub fn pr_rev (format : * const :: std :: os :: raw :: c_char , ...) -> :: std :: os :: raw :: c_int ; } extern \"C\" { pub fn VT_revexec_divert_output (divert : :: std :: os :: raw :: c_int , discard : :: std :: os :: raw :: c_int) ; } pub type output_handler_t = :: std :: option :: Option < unsafe extern \"C\" fn (data : * mut lang_void , src : * const :: std :: os :: raw :: c_char , length : usize) > ; extern \"C\" { pub fn SIM_add_output_handler (func : output_handler_t , user_data : * mut lang_void) ; } extern \"C\" { pub fn SIM_remove_output_handler (func : output_handler_t , user_data : * mut lang_void) ; } extern \"C\" { pub fn SIM_set_quiet (quiet : bool) ; } extern \"C\" { pub fn SIM_get_quiet () -> bool ; } extern \"C\" { pub fn SIM_set_verbose (verbose : bool) ; } extern \"C\" { pub fn SIM_get_verbose () -> bool ; } extern \"C\" { pub fn VT_real_network_warnings () ; } extern \"C\" { pub fn VT_use_ipv4 () -> bool ; } extern \"C\" { pub fn SIM_native_path (path : * const :: std :: os :: raw :: c_char) -> * mut :: std :: os :: raw :: c_char ; } extern \"C\" { pub fn SIM_lookup_file (file : * const :: std :: os :: raw :: c_char) -> * mut :: std :: os :: raw :: c_char ; } extern \"C\" { pub fn SIM_add_directory (directory : * const :: std :: os :: raw :: c_char , prepend : bool) ; } extern \"C\" { pub fn SIM_clear_directories () ; } extern \"C\" { pub fn SIM_get_directories () -> attr_value_t ; } extern \"C\" { pub fn VT_get_saved_cwd () -> * const :: std :: os :: raw :: c_char ; } extern \"C\" { pub fn VT_logical_file_size (filename : * const :: std :: os :: raw :: c_char) -> int64 ; } extern \"C\" { pub fn SIM_object_is_processor (obj : * mut conf_object_t) -> bool ; } extern \"C\" { pub fn SIM_number_processors () -> :: std :: os :: raw :: c_int ; } extern \"C\" { pub fn SIM_reset_processor (cpu : * mut conf_object_t , hard_reset : :: std :: os :: raw :: c_int) ; } extern \"C\" { pub fn SIM_get_all_processors () -> attr_value_t ; } extern \"C\" { pub fn SIM_get_processor (proc_no : :: std :: os :: raw :: c_int) -> * mut conf_object_t ; } extern \"C\" { pub fn SIM_get_processor_number (cpu : * const conf_object_t) -> :: std :: os :: raw :: c_int ; } extern \"C\" { pub fn SIM_current_processor () -> * mut conf_object_t ; } extern \"C\" { pub fn VT_get_current_processor () -> * mut conf_object_t ; } extern \"C\" { pub fn VT_get_current_processor_old () -> * mut conf_object_t ; } extern \"C\" { pub fn SIM_processor_privilege_level (cpu : * mut conf_object_t) -> :: std :: os :: raw :: c_int ; } extern \"C\" { pub fn SIM_disassemble_address (cpu : * mut conf_object_t , address : generic_address_t , logical : :: std :: os :: raw :: c_int , sub : :: std :: os :: raw :: c_int) -> tuple_int_string_t ; } extern \"C\" { pub fn VT_first_clock () -> * mut conf_object_t ; } extern \"C\" { pub fn SIM_current_clock () -> * mut conf_object_t ; } extern \"C\" { pub fn SIM_source_python (file : * const :: std :: os :: raw :: c_char) ; } extern \"C\" { pub fn SIM_source_python_in_module (file : * const :: std :: os :: raw :: c_char , module : * const :: std :: os :: raw :: c_char) ; } extern \"C\" { pub fn SIM_run_python (line : * const :: std :: os :: raw :: c_char) -> attr_value_t ; } extern \"C\" { pub fn SIM_call_python_function (func : * const :: std :: os :: raw :: c_char , args : * mut attr_value_t) -> attr_value_t ; } extern \"C\" { pub fn VT_call_python_module_function (module : * const :: std :: os :: raw :: c_char , func : * const :: std :: os :: raw :: c_char , args : * mut attr_value_t) -> attr_value_t ; } extern \"C\" { pub fn SIM_get_python_interface_type (name : * const :: std :: os :: raw :: c_char) -> * mut _object ; } extern \"C\" { pub fn VT_python_decref (o : * mut _object) ; } extern \"C\" { pub fn VT_revexec_available () -> bool ; } extern \"C\" { pub fn VT_revexec_active () -> bool ; } extern \"C\" { pub fn VT_in_the_past () -> bool ; } # [repr (u32)] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub enum revexec_pos_t { Sim_Reverse_Limit = 0 , Sim_End_Of_Future = 1 , } extern \"C\" { pub fn VT_revexec_steps (cpu : * mut conf_object_t , where_ : revexec_pos_t) -> pc_step_t ; } extern \"C\" { pub fn VT_revexec_cycles (cpu : * mut conf_object_t , where_ : revexec_pos_t) -> cycles_t ; } extern \"C\" { pub fn VT_get_rewind_overhead (cpu : * mut conf_object_t , abscount : pc_step_t) -> pc_step_t ; } extern \"C\" { pub fn VT_reverse (count : pc_step_t) -> :: std :: os :: raw :: c_int ; } extern \"C\" { pub fn VT_reverse_cpu (clock : * mut conf_object_t , count : pc_step_t) -> :: std :: os :: raw :: c_int ; } extern \"C\" { pub fn VT_skipto_step (clock : * mut conf_object_t , count : pc_step_t) -> :: std :: os :: raw :: c_int ; } extern \"C\" { pub fn VT_skipto_cycle (clock : * mut conf_object_t , count : cycles_t) -> :: std :: os :: raw :: c_int ; } extern \"C\" { pub fn VT_skipto_bookmark (name : * const :: std :: os :: raw :: c_char) -> :: std :: os :: raw :: c_int ; } extern \"C\" { pub fn VT_rewind (cpu : * mut conf_object_t , abscount : pc_step_t) -> :: std :: os :: raw :: c_int ; } impl micro_checkpoint_flags_t { # [doc = \" micro checkpoint id\"] pub const Sim_MC_ID_User : micro_checkpoint_flags_t = micro_checkpoint_flags_t (0) ; } impl micro_checkpoint_flags_t { # [doc = \" micro checkpoint id\"] pub const Sim_MC_ID_Breakpoint : micro_checkpoint_flags_t = micro_checkpoint_flags_t (1) ; } impl micro_checkpoint_flags_t { # [doc = \" micro checkpoint id\"] pub const Sim_MC_ID_Tmp : micro_checkpoint_flags_t = micro_checkpoint_flags_t (2) ; } impl micro_checkpoint_flags_t { # [doc = \" micro checkpoint id\"] pub const Sim_MC_ID_N_States : micro_checkpoint_flags_t = micro_checkpoint_flags_t (3) ; } impl micro_checkpoint_flags_t { # [doc = \" micro checkpoint id\"] pub const Sim_MC_ID_Last_States : micro_checkpoint_flags_t = micro_checkpoint_flags_t (4) ; } impl micro_checkpoint_flags_t { # [doc = \" micro checkpoint id\"] pub const Sim_MC_ID_Mask : micro_checkpoint_flags_t = micro_checkpoint_flags_t (255) ; } impl micro_checkpoint_flags_t { # [doc = \" type of micro checkpoint\"] pub const Sim_MC_Persistent : micro_checkpoint_flags_t = micro_checkpoint_flags_t (256) ; } impl micro_checkpoint_flags_t { # [doc = \" may be deleted automatically\"] pub const Sim_MC_Automatic : micro_checkpoint_flags_t = micro_checkpoint_flags_t (512) ; } impl :: std :: ops :: BitOr < micro_checkpoint_flags_t > for micro_checkpoint_flags_t { type Output = Self ; # [inline] fn bitor (self , other : Self) -> Self { micro_checkpoint_flags_t (self . 0 | other . 0) } } impl :: std :: ops :: BitOrAssign for micro_checkpoint_flags_t { # [inline] fn bitor_assign (& mut self , rhs : micro_checkpoint_flags_t) { self . 0 |= rhs . 0 ; } } impl :: std :: ops :: BitAnd < micro_checkpoint_flags_t > for micro_checkpoint_flags_t { type Output = Self ; # [inline] fn bitand (self , other : Self) -> Self { micro_checkpoint_flags_t (self . 0 & other . 0) } } impl :: std :: ops :: BitAndAssign for micro_checkpoint_flags_t { # [inline] fn bitand_assign (& mut self , rhs : micro_checkpoint_flags_t) { self . 0 &= rhs . 0 ; } } # [repr (transparent)] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct micro_checkpoint_flags_t (pub :: std :: os :: raw :: c_uint) ; extern \"C\" { pub fn VT_save_micro_checkpoint (name : * const :: std :: os :: raw :: c_char , flags : micro_checkpoint_flags_t) ; } extern \"C\" { pub fn VT_restore_micro_checkpoint (index : :: std :: os :: raw :: c_int) ; } extern \"C\" { pub fn VT_delete_micro_checkpoint (index : :: std :: os :: raw :: c_int) ; } extern \"C\" { # [doc = \" VT_in_time_order() is used to handle events (e.g. breakpoint haps) in\\nstrict time order. This is particularly useful when simics reverses since\\nthere is absolutely no guarantee that haps are invoked in reverse time\\norder.\\n\\nVT_c_in_time_order() is similar to VT_in_time_order(), except the buffer\\npointed to by the data argument is copied and later passed to the callback.\\nThe callback should not release the data or cache pointers to it since\\nthe space will be reused automatically.\\n\\nThe callback may raise an exception, e.g. by calling SIM_break_simulation,\\nto signal that the simulation should be stopped.\"] pub fn VT_in_time_order (handler : :: std :: option :: Option < unsafe extern \"C\" fn (data : cbdata_call_t) > , data : cbdata_register_t) ; } pub type time_ordered_handler_t = :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , param : int64 , data : * mut :: std :: os :: raw :: c_void) > ; extern \"C\" { pub fn VT_c_in_time_order (obj : * mut conf_object_t , handler : time_ordered_handler_t , param : int64 , data : * mut :: std :: os :: raw :: c_void , data_size : usize) ; } extern \"C\" { # [doc = \" used to prevent reverse execution from touching certain classes/attributes\"] pub fn VT_revexec_ignore_class (class_name : * const :: std :: os :: raw :: c_char) ; } extern \"C\" { # [doc = \" prevent reversal past this point in time\"] pub fn VT_revexec_barrier () ; } extern \"C\" { pub fn SIM_run_command (line : * const :: std :: os :: raw :: c_char) -> attr_value_t ; } extern \"C\" { pub fn SIM_run_command_file (file : * const :: std :: os :: raw :: c_char , local : bool) ; } extern \"C\" { pub fn SIM_run_command_file_params (file : * const :: std :: os :: raw :: c_char , local : bool , params : attr_value_t) ; } extern \"C\" { pub fn SIM_load_target (target : * const :: std :: os :: raw :: c_char , ns : * const :: std :: os :: raw :: c_char , presets : attr_value_t , cmdline_args : attr_value_t) -> attr_value_t ; } extern \"C\" { pub fn VT_load_target_preset_yml (target : * const :: std :: os :: raw :: c_char , ns : * const :: std :: os :: raw :: c_char , presets : attr_value_t , preset_yml : * const :: std :: os :: raw :: c_char) ; } extern \"C\" { pub fn SIM_get_batch_mode () -> bool ; } extern \"C\" { pub fn VT_interrupt_script (user : bool) ; } extern \"C\" { pub fn SIM_flush_all_caches () ; } extern \"C\" { pub fn SIM_flush_cell_caches (obj : * mut conf_object_t) ; } # [repr (u32)] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub enum snapshot_error_t { # [doc = \" Nothing went wrong.\"] Snapshot_Error_No_Error = 0 , # [doc = \" No snapshot name given.\"] Snapshot_Error_No_Name = 1 , # [doc = \" No snapshot with the given name found.\"] Snapshot_Error_Snapshot_Not_Found = 2 , # [doc = \" A snapshot with the given name already exists.\"] Snapshot_Error_Snapshot_Already_Exists = 3 , # [doc = \" The current configuration can not be saved as a snapshot.\"] Snapshot_Error_Illegal_Configuration = 4 , # [doc = \" Something unexpected went wrong.\\nPartial state may have been restored.\"] Snapshot_Error_Internal_Error = 5 , } extern \"C\" { pub fn VT_is_restoring_snapshot () -> bool ; } extern \"C\" { pub fn VT_take_snapshot (name : * const :: std :: os :: raw :: c_char) -> snapshot_error_t ; } extern \"C\" { pub fn VT_restore_snapshot (name : * const :: std :: os :: raw :: c_char) -> snapshot_error_t ; } extern \"C\" { pub fn VT_delete_snapshot (name : * const :: std :: os :: raw :: c_char) -> snapshot_error_t ; } extern \"C\" { pub fn VT_list_snapshots () -> attr_value_t ; } extern \"C\" { pub fn VT_get_snapshot_info (name : * const :: std :: os :: raw :: c_char) -> attr_value_t ; } extern \"C\" { # [doc = \" Used to prevent snapshots from touching certain classes/attributes\"] pub fn VT_snapshots_ignore_class (class_name : * const :: std :: os :: raw :: c_char) ; } extern \"C\" { # [doc = \" Used to prevent snapshots from trying to restore certain classes and\\nattributes. This is only to work-around broken classes.\"] pub fn VT_snapshots_skip_class_restore (cls : * mut conf_class_t) ; } extern \"C\" { pub fn VT_snapshots_skip_attr_restore (cls : * mut conf_class_t , attr_name : * const :: std :: os :: raw :: c_char) ; } extern \"C\" { # [doc = \" Dump the named snapshot as a big attr_value_t\"] pub fn VT_dump_snapshot (name : * const :: std :: os :: raw :: c_char) -> attr_value_t ; } extern \"C\" { # [doc = \" How much data is used by the snapshot system to store attributes and pages\"] pub fn VT_snapshot_size_used () -> attr_value_t ; } extern \"C\" { pub fn VT_unregister_thread () ; } extern \"C\" { pub fn VT_register_thread () ; } extern \"C\" { pub fn VT_register_oec_thread () ; } extern \"C\" { pub fn VT_is_oec_thread () -> bool ; } # [repr (u32)] # [doc = \" <add-type id=\\\"description_type_t def\\\"><ndx>description_type_t</ndx></add-type>\"] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub enum description_type_t { Description_Type_Group = 0 , Description_Type_Int_Reg = 1 , Description_Type_Float_Reg = 2 , Description_Type_Fields_Reg = 3 , Description_Type_Int_Field = 4 , Description_Type_Float_Field = 5 , } # [repr (u32)] # [doc = \" <add-type id=\\\"reg_role_t def\\\"><ndx>reg_role_t</ndx></add-type>\"] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub enum reg_role_t { # [doc = \" No special role for the register.\"] Reg_Role_None = 0 , # [doc = \" The register is the program counter.\"] Reg_Role_Program_Counter = 1 , } # [repr (u32)] # [doc = \" <add-type id=\\\"reg_bitorder_t def\\\"><ndx>reg_bitorder_t</ndx></add-type>\"] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub enum reg_bitorder_t { Reg_Bitorder_Little_Endian = 0 , Reg_Bitorder_Big_Endian = 1 , } # [doc = \" Describes a named value. */\\n/* <add-type id=\\\"named_value_t def\\\"><ndx>named_value_t</ndx></add-type>\"] # [repr (C)] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct named_value_t { pub name : * const :: std :: os :: raw :: c_char , pub description : * const :: std :: os :: raw :: c_char , # [doc = \" Little endian byte order\"] pub value : bytes_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of named_value_t\"] [:: std :: mem :: size_of :: < named_value_t > () - 32usize] ; [\"Alignment of named_value_t\"] [:: std :: mem :: align_of :: < named_value_t > () - 8usize] ; [\"Offset of field: named_value_t::name\"] [:: std :: mem :: offset_of ! (named_value_t , name) - 0usize] ; [\"Offset of field: named_value_t::description\"] [:: std :: mem :: offset_of ! (named_value_t , description) - 8usize] ; [\"Offset of field: named_value_t::value\"] [:: std :: mem :: offset_of ! (named_value_t , value) - 16usize] ; } ; impl Default for named_value_t { fn default () -> Self { let mut s = :: std :: mem :: MaybeUninit :: < Self > :: uninit () ; unsafe { :: std :: ptr :: write_bytes (s . as_mut_ptr () , 0 , 1) ; s . assume_init () } } } # [doc = \" <add-type id=\\\"description_t def\\\"><ndx>description_t</ndx></add-type>\"] # [repr (C)] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct description_t { # [doc = \" Common fields\"] pub type_ : description_type_t , pub name : * const :: std :: os :: raw :: c_char , pub description : * const :: std :: os :: raw :: c_char , # [doc = \" id used by dwarf for this register\\nor -1 if no such id is defined. This\\nis ABI specific, but the CPU will\\ngive the ids for the most common ABI\\nfor that architecture.\"] pub dwarf_id : int16 , # [doc = \" Bitorder convention used in the\\ndocumentation for this register or\\nfield.\"] pub bitorder : reg_bitorder_t , # [doc = \" Role of this register in the ABI/HW.\"] pub role : reg_role_t , # [doc = \" True if the register is memory mapped.\"] pub memory_mapped : bool , # [doc = \" Offset into the bank for memory mapped\\nregisters.\"] pub offset : uint64 , # [doc = \" True if Core_Control_Register_Write and\\nCore_Control_Register_Read are triggered\\nwhen this register is written or read.\"] pub catchable : bool , # [doc = \" Most and least significant bit of the\\nregister or field. Always given in le\\nbitorder. For groups msb == -1 and\\nlsb == 0.\"] pub msb : :: std :: os :: raw :: c_int , # [doc = \" Most and least significant bit of the\\nregister or field. Always given in le\\nbitorder. For groups msb == -1 and\\nlsb == 0.\"] pub lsb : :: std :: os :: raw :: c_int , # [doc = \" Number of bits in the register, or the\\nregister this field is a part of.\"] pub regsize : :: std :: os :: raw :: c_int , # [doc = \" For registers and fields the id to pass\\nto the get and set methods to access the\\nregister\'s value. Fields have the same\\nreg_id as the register they are a part\\nof. Not valid for groups.\"] pub reg_id : :: std :: os :: raw :: c_int , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of description_t\"] [:: std :: mem :: size_of :: < description_t > () - 72usize] ; [\"Alignment of description_t\"] [:: std :: mem :: align_of :: < description_t > () - 8usize] ; [\"Offset of field: description_t::type_\"] [:: std :: mem :: offset_of ! (description_t , type_) - 0usize] ; [\"Offset of field: description_t::name\"] [:: std :: mem :: offset_of ! (description_t , name) - 8usize] ; [\"Offset of field: description_t::description\"] [:: std :: mem :: offset_of ! (description_t , description) - 16usize] ; [\"Offset of field: description_t::dwarf_id\"] [:: std :: mem :: offset_of ! (description_t , dwarf_id) - 24usize] ; [\"Offset of field: description_t::bitorder\"] [:: std :: mem :: offset_of ! (description_t , bitorder) - 28usize] ; [\"Offset of field: description_t::role\"] [:: std :: mem :: offset_of ! (description_t , role) - 32usize] ; [\"Offset of field: description_t::memory_mapped\"] [:: std :: mem :: offset_of ! (description_t , memory_mapped) - 36usize] ; [\"Offset of field: description_t::offset\"] [:: std :: mem :: offset_of ! (description_t , offset) - 40usize] ; [\"Offset of field: description_t::catchable\"] [:: std :: mem :: offset_of ! (description_t , catchable) - 48usize] ; [\"Offset of field: description_t::msb\"] [:: std :: mem :: offset_of ! (description_t , msb) - 52usize] ; [\"Offset of field: description_t::lsb\"] [:: std :: mem :: offset_of ! (description_t , lsb) - 56usize] ; [\"Offset of field: description_t::regsize\"] [:: std :: mem :: offset_of ! (description_t , regsize) - 60usize] ; [\"Offset of field: description_t::reg_id\"] [:: std :: mem :: offset_of ! (description_t , reg_id) - 64usize] ; } ; impl Default for description_t { fn default () -> Self { let mut s = :: std :: mem :: MaybeUninit :: < Self > :: uninit () ; unsafe { :: std :: ptr :: write_bytes (s . as_mut_ptr () , 0 , 1) ; s . assume_init () } } } pub type describe_registers_interface_t = describe_registers_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct describe_registers_interface { pub first_child : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , parent : * const description_t) -> * const description_t > , pub next_description : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , prev : * const description_t) -> * const description_t > , pub free_description : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , desc : * const description_t) > , pub first_named_value : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , parent : * const description_t) -> * const named_value_t > , pub next_named_value : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , prev : * const named_value_t) -> * const named_value_t > , pub free_named_value : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , nv : * const named_value_t) > , pub get : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , reg_id : :: std :: os :: raw :: c_int , dest : buffer_t) > , pub set : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , reg_id : :: std :: os :: raw :: c_int , value : bytes_t) > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of describe_registers_interface\"] [:: std :: mem :: size_of :: < describe_registers_interface > () - 64usize] ; [\"Alignment of describe_registers_interface\"] [:: std :: mem :: align_of :: < describe_registers_interface > () - 8usize] ; [\"Offset of field: describe_registers_interface::first_child\"] [:: std :: mem :: offset_of ! (describe_registers_interface , first_child) - 0usize] ; [\"Offset of field: describe_registers_interface::next_description\"] [:: std :: mem :: offset_of ! (describe_registers_interface , next_description) - 8usize] ; [\"Offset of field: describe_registers_interface::free_description\"] [:: std :: mem :: offset_of ! (describe_registers_interface , free_description) - 16usize] ; [\"Offset of field: describe_registers_interface::first_named_value\"] [:: std :: mem :: offset_of ! (describe_registers_interface , first_named_value) - 24usize] ; [\"Offset of field: describe_registers_interface::next_named_value\"] [:: std :: mem :: offset_of ! (describe_registers_interface , next_named_value) - 32usize] ; [\"Offset of field: describe_registers_interface::free_named_value\"] [:: std :: mem :: offset_of ! (describe_registers_interface , free_named_value) - 40usize] ; [\"Offset of field: describe_registers_interface::get\"] [:: std :: mem :: offset_of ! (describe_registers_interface , get) - 48usize] ; [\"Offset of field: describe_registers_interface::set\"] [:: std :: mem :: offset_of ! (describe_registers_interface , set) - 56usize] ; } ; pub type register_view_interface_t = register_view_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct register_view_interface { pub description : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t) -> * const :: std :: os :: raw :: c_char > , pub big_endian_bitorder : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t) -> bool > , pub number_of_registers : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t) -> :: std :: os :: raw :: c_uint > , # [doc = \" Returns the static information about a register in the list\\n[NAME, DESC, SIZE, OFFSET, BITFIELDS, BIG_ENDIAN_BYTE_ORDER].\\nAll but the two last\\nelement in the list are required and the client should\\ntolerate if more than 6 elements are presented in the list.\\nNAME must be a valid identifier. DESC is a short description\\nof the register. SIZE is the number of bytes of the register,\\ncould only be 1, 2, 4, or 8. OFFSET is the offset into the bank\\nand can be Nil denoting non-memory-mapped registers.\\nBITFIELDS is optional and if present, is a list where each\\nelement itself being a list of [NAME, DESC, LSB, MSB] where\\nNAME and DESC is the identifier and description of the field\\nand LSB and MSB are the least significant and the most significant\\nbit in little-endian bitorder. MSB is optional and if omitted,\\nis assumed to be the same as LSB, i.e., the bitfield specifies\\na single bit.\\nBIG_ENDIAN_BYTE_ORDER is an optional boolean value, assumed to be\\nFalse if omitted. It controls the byte order of the register\'s\\nmemory-mapped representation; the byte at OFFSET is the\\nmost significant byte if BIG_ENDIAN_BYTE_ORDER is True, and\\nthe least significant byte otherwise.\"] pub register_info : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , reg : :: std :: os :: raw :: c_uint) -> attr_value_t > , # [doc = \" Get the current value of a register, must be side-effect free.\"] pub get_register_value : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , reg : :: std :: os :: raw :: c_uint) -> uint64 > , # [doc = \" Set the current value of a register, must be side-effect free except\\nfrom updating the value.\"] pub set_register_value : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , reg : :: std :: os :: raw :: c_uint , val : uint64) > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of register_view_interface\"] [:: std :: mem :: size_of :: < register_view_interface > () - 48usize] ; [\"Alignment of register_view_interface\"] [:: std :: mem :: align_of :: < register_view_interface > () - 8usize] ; [\"Offset of field: register_view_interface::description\"] [:: std :: mem :: offset_of ! (register_view_interface , description) - 0usize] ; [\"Offset of field: register_view_interface::big_endian_bitorder\"] [:: std :: mem :: offset_of ! (register_view_interface , big_endian_bitorder) - 8usize] ; [\"Offset of field: register_view_interface::number_of_registers\"] [:: std :: mem :: offset_of ! (register_view_interface , number_of_registers) - 16usize] ; [\"Offset of field: register_view_interface::register_info\"] [:: std :: mem :: offset_of ! (register_view_interface , register_info) - 24usize] ; [\"Offset of field: register_view_interface::get_register_value\"] [:: std :: mem :: offset_of ! (register_view_interface , get_register_value) - 32usize] ; [\"Offset of field: register_view_interface::set_register_value\"] [:: std :: mem :: offset_of ! (register_view_interface , set_register_value) - 40usize] ; } ; pub type device_identification_interface_t = device_identification_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct device_identification_interface { pub get_id : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , key : * const :: std :: os :: raw :: c_char) -> * const :: std :: os :: raw :: c_char > , pub get_key : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , index : :: std :: os :: raw :: c_uint) -> * const :: std :: os :: raw :: c_char > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of device_identification_interface\"] [:: std :: mem :: size_of :: < device_identification_interface > () - 16usize] ; [\"Alignment of device_identification_interface\"] [:: std :: mem :: align_of :: < device_identification_interface > () - 8usize] ; [\"Offset of field: device_identification_interface::get_id\"] [:: std :: mem :: offset_of ! (device_identification_interface , get_id) - 0usize] ; [\"Offset of field: device_identification_interface::get_key\"] [:: std :: mem :: offset_of ! (device_identification_interface , get_key) - 8usize] ; } ; pub type memory_profiler_interface_t = memory_profiler_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct memory_profiler_interface { pub get : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , access : read_or_write_t) -> * mut conf_object_t > , pub set : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , access : read_or_write_t , prof : * mut conf_object_t) -> bool > , pub get_granularity_log2 : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t) -> :: std :: os :: raw :: c_int > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of memory_profiler_interface\"] [:: std :: mem :: size_of :: < memory_profiler_interface > () - 24usize] ; [\"Alignment of memory_profiler_interface\"] [:: std :: mem :: align_of :: < memory_profiler_interface > () - 8usize] ; [\"Offset of field: memory_profiler_interface::get\"] [:: std :: mem :: offset_of ! (memory_profiler_interface , get) - 0usize] ; [\"Offset of field: memory_profiler_interface::set\"] [:: std :: mem :: offset_of ! (memory_profiler_interface , set) - 8usize] ; [\"Offset of field: memory_profiler_interface::get_granularity_log2\"] [:: std :: mem :: offset_of ! (memory_profiler_interface , get_granularity_log2) - 16usize] ; } ; pub type instrumentation_order_interface_t = instrumentation_order_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct instrumentation_order_interface { # [doc = \" Returns an object list in the connection order\"] pub get_connections : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t) -> attr_value_t > , pub move_before : :: std :: option :: Option < unsafe extern \"C\" fn (self_ : * mut conf_object_t , connection : * mut conf_object_t , before : * mut conf_object_t) -> bool > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of instrumentation_order_interface\"] [:: std :: mem :: size_of :: < instrumentation_order_interface > () - 16usize] ; [\"Alignment of instrumentation_order_interface\"] [:: std :: mem :: align_of :: < instrumentation_order_interface > () - 8usize] ; [\"Offset of field: instrumentation_order_interface::get_connections\"] [:: std :: mem :: offset_of ! (instrumentation_order_interface , get_connections) - 0usize] ; [\"Offset of field: instrumentation_order_interface::move_before\"] [:: std :: mem :: offset_of ! (instrumentation_order_interface , move_before) - 8usize] ; } ; pub type callback_info_interface_t = callback_info_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct callback_info_interface { pub get_callbacks : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t) -> attr_value_t > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of callback_info_interface\"] [:: std :: mem :: size_of :: < callback_info_interface > () - 8usize] ; [\"Alignment of callback_info_interface\"] [:: std :: mem :: align_of :: < callback_info_interface > () - 8usize] ; [\"Offset of field: callback_info_interface::get_callbacks\"] [:: std :: mem :: offset_of ! (callback_info_interface , get_callbacks) - 0usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct bank_access { _unused : [u8 ; 0] , } # [doc = \" <add-type id=\\\"bank_access_t\\\">\\n\\nHandle used to monitor and modify the state of register accesses using the\\n<iface>bank_before_read_interface_t</iface>,\\n<iface>bank_after_read_interface_t</iface>,\\n<iface>bank_before_write_interface_t</iface>, and\\n<iface>bank_after_write_interface_t</iface> interfaces.\\n</add-type>\"] pub type bank_access_t = bank_access ; # [doc = \" <add-type id=\\\"bank_callback_handle_t\\\">\\n\\nUnique handle associated with a callback registered through the\\n<iface>bank_instrumentation_subscribe_interface_t</iface> interface.\\n</add-type>\"] pub type bank_callback_handle_t = usize ; pub type bank_before_read_interface_t = bank_before_read_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct bank_before_read_interface { pub offset : :: std :: option :: Option < unsafe extern \"C\" fn (handle : * mut bank_access_t) -> physical_address_t > , pub size : :: std :: option :: Option < unsafe extern \"C\" fn (handle : * mut bank_access_t) -> physical_address_t > , pub set_offset : :: std :: option :: Option < unsafe extern \"C\" fn (handle : * mut bank_access_t , offset : physical_address_t) > , pub inquire : :: std :: option :: Option < unsafe extern \"C\" fn (handle : * mut bank_access_t) > , pub initiator : :: std :: option :: Option < unsafe extern \"C\" fn (handle : * mut bank_access_t) -> * mut conf_object_t > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of bank_before_read_interface\"] [:: std :: mem :: size_of :: < bank_before_read_interface > () - 40usize] ; [\"Alignment of bank_before_read_interface\"] [:: std :: mem :: align_of :: < bank_before_read_interface > () - 8usize] ; [\"Offset of field: bank_before_read_interface::offset\"] [:: std :: mem :: offset_of ! (bank_before_read_interface , offset) - 0usize] ; [\"Offset of field: bank_before_read_interface::size\"] [:: std :: mem :: offset_of ! (bank_before_read_interface , size) - 8usize] ; [\"Offset of field: bank_before_read_interface::set_offset\"] [:: std :: mem :: offset_of ! (bank_before_read_interface , set_offset) - 16usize] ; [\"Offset of field: bank_before_read_interface::inquire\"] [:: std :: mem :: offset_of ! (bank_before_read_interface , inquire) - 24usize] ; [\"Offset of field: bank_before_read_interface::initiator\"] [:: std :: mem :: offset_of ! (bank_before_read_interface , initiator) - 32usize] ; } ; pub type bank_after_read_interface_t = bank_after_read_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct bank_after_read_interface { pub offset : :: std :: option :: Option < unsafe extern \"C\" fn (handle : * mut bank_access_t) -> physical_address_t > , pub size : :: std :: option :: Option < unsafe extern \"C\" fn (handle : * mut bank_access_t) -> physical_address_t > , pub missed : :: std :: option :: Option < unsafe extern \"C\" fn (handle : * mut bank_access_t) -> bool > , pub value : :: std :: option :: Option < unsafe extern \"C\" fn (handle : * mut bank_access_t) -> uint64 > , pub set_missed : :: std :: option :: Option < unsafe extern \"C\" fn (handle : * mut bank_access_t , missed : bool) > , pub set_value : :: std :: option :: Option < unsafe extern \"C\" fn (handle : * mut bank_access_t , value : uint64) > , pub initiator : :: std :: option :: Option < unsafe extern \"C\" fn (handle : * mut bank_access_t) -> * mut conf_object_t > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of bank_after_read_interface\"] [:: std :: mem :: size_of :: < bank_after_read_interface > () - 56usize] ; [\"Alignment of bank_after_read_interface\"] [:: std :: mem :: align_of :: < bank_after_read_interface > () - 8usize] ; [\"Offset of field: bank_after_read_interface::offset\"] [:: std :: mem :: offset_of ! (bank_after_read_interface , offset) - 0usize] ; [\"Offset of field: bank_after_read_interface::size\"] [:: std :: mem :: offset_of ! (bank_after_read_interface , size) - 8usize] ; [\"Offset of field: bank_after_read_interface::missed\"] [:: std :: mem :: offset_of ! (bank_after_read_interface , missed) - 16usize] ; [\"Offset of field: bank_after_read_interface::value\"] [:: std :: mem :: offset_of ! (bank_after_read_interface , value) - 24usize] ; [\"Offset of field: bank_after_read_interface::set_missed\"] [:: std :: mem :: offset_of ! (bank_after_read_interface , set_missed) - 32usize] ; [\"Offset of field: bank_after_read_interface::set_value\"] [:: std :: mem :: offset_of ! (bank_after_read_interface , set_value) - 40usize] ; [\"Offset of field: bank_after_read_interface::initiator\"] [:: std :: mem :: offset_of ! (bank_after_read_interface , initiator) - 48usize] ; } ; pub type bank_before_write_interface_t = bank_before_write_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct bank_before_write_interface { pub offset : :: std :: option :: Option < unsafe extern \"C\" fn (handle : * mut bank_access_t) -> physical_address_t > , pub size : :: std :: option :: Option < unsafe extern \"C\" fn (handle : * mut bank_access_t) -> physical_address_t > , pub value : :: std :: option :: Option < unsafe extern \"C\" fn (handle : * mut bank_access_t) -> uint64 > , pub suppress : :: std :: option :: Option < unsafe extern \"C\" fn (handle : * mut bank_access_t) > , pub set_offset : :: std :: option :: Option < unsafe extern \"C\" fn (handle : * mut bank_access_t , offset : physical_address_t) > , pub set_value : :: std :: option :: Option < unsafe extern \"C\" fn (handle : * mut bank_access_t , value : uint64) > , pub initiator : :: std :: option :: Option < unsafe extern \"C\" fn (handle : * mut bank_access_t) -> * mut conf_object_t > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of bank_before_write_interface\"] [:: std :: mem :: size_of :: < bank_before_write_interface > () - 56usize] ; [\"Alignment of bank_before_write_interface\"] [:: std :: mem :: align_of :: < bank_before_write_interface > () - 8usize] ; [\"Offset of field: bank_before_write_interface::offset\"] [:: std :: mem :: offset_of ! (bank_before_write_interface , offset) - 0usize] ; [\"Offset of field: bank_before_write_interface::size\"] [:: std :: mem :: offset_of ! (bank_before_write_interface , size) - 8usize] ; [\"Offset of field: bank_before_write_interface::value\"] [:: std :: mem :: offset_of ! (bank_before_write_interface , value) - 16usize] ; [\"Offset of field: bank_before_write_interface::suppress\"] [:: std :: mem :: offset_of ! (bank_before_write_interface , suppress) - 24usize] ; [\"Offset of field: bank_before_write_interface::set_offset\"] [:: std :: mem :: offset_of ! (bank_before_write_interface , set_offset) - 32usize] ; [\"Offset of field: bank_before_write_interface::set_value\"] [:: std :: mem :: offset_of ! (bank_before_write_interface , set_value) - 40usize] ; [\"Offset of field: bank_before_write_interface::initiator\"] [:: std :: mem :: offset_of ! (bank_before_write_interface , initiator) - 48usize] ; } ; pub type bank_after_write_interface_t = bank_after_write_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct bank_after_write_interface { pub offset : :: std :: option :: Option < unsafe extern \"C\" fn (handle : * mut bank_access_t) -> physical_address_t > , pub size : :: std :: option :: Option < unsafe extern \"C\" fn (handle : * mut bank_access_t) -> physical_address_t > , pub missed : :: std :: option :: Option < unsafe extern \"C\" fn (handle : * mut bank_access_t) -> bool > , pub set_missed : :: std :: option :: Option < unsafe extern \"C\" fn (handle : * mut bank_access_t , missed : bool) > , pub initiator : :: std :: option :: Option < unsafe extern \"C\" fn (handle : * mut bank_access_t) -> * mut conf_object_t > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of bank_after_write_interface\"] [:: std :: mem :: size_of :: < bank_after_write_interface > () - 40usize] ; [\"Alignment of bank_after_write_interface\"] [:: std :: mem :: align_of :: < bank_after_write_interface > () - 8usize] ; [\"Offset of field: bank_after_write_interface::offset\"] [:: std :: mem :: offset_of ! (bank_after_write_interface , offset) - 0usize] ; [\"Offset of field: bank_after_write_interface::size\"] [:: std :: mem :: offset_of ! (bank_after_write_interface , size) - 8usize] ; [\"Offset of field: bank_after_write_interface::missed\"] [:: std :: mem :: offset_of ! (bank_after_write_interface , missed) - 16usize] ; [\"Offset of field: bank_after_write_interface::set_missed\"] [:: std :: mem :: offset_of ! (bank_after_write_interface , set_missed) - 24usize] ; [\"Offset of field: bank_after_write_interface::initiator\"] [:: std :: mem :: offset_of ! (bank_after_write_interface , initiator) - 32usize] ; } ; # [doc = \" <add-type id=\\\"before_read_callback_t\\\"></add-type>\"] pub type before_read_callback_t = :: std :: option :: Option < unsafe extern \"C\" fn (connection : * mut conf_object_t , access : * mut bank_before_read_interface_t , handle : * mut bank_access_t , user_data : * mut lang_void) > ; # [doc = \" <add-type id=\\\"after_read_callback_t\\\"></add-type>\"] pub type after_read_callback_t = :: std :: option :: Option < unsafe extern \"C\" fn (connection : * mut conf_object_t , access : * mut bank_after_read_interface_t , handle : * mut bank_access_t , user_data : * mut lang_void) > ; # [doc = \" <add-type id=\\\"before_write_callback_t\\\"></add-type>\"] pub type before_write_callback_t = :: std :: option :: Option < unsafe extern \"C\" fn (connection : * mut conf_object_t , access : * mut bank_before_write_interface_t , handle : * mut bank_access_t , user_data : * mut lang_void) > ; # [doc = \" <add-type id=\\\"after_write_callback_t\\\"></add-type>\"] pub type after_write_callback_t = :: std :: option :: Option < unsafe extern \"C\" fn (connection : * mut conf_object_t , access : * mut bank_after_write_interface_t , handle : * mut bank_access_t , user_data : * mut lang_void) > ; pub type bank_instrumentation_subscribe_interface_t = bank_instrumentation_subscribe_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct bank_instrumentation_subscribe_interface { pub register_before_read : :: std :: option :: Option < unsafe extern \"C\" fn (bank : * mut conf_object_t , connection : * mut conf_object_t , offset : uint64 , size : uint64 , before_read : before_read_callback_t , user_data : * mut lang_void) -> bank_callback_handle_t > , pub register_after_read : :: std :: option :: Option < unsafe extern \"C\" fn (bank : * mut conf_object_t , connection : * mut conf_object_t , offset : uint64 , size : uint64 , after_read : after_read_callback_t , user_data : * mut lang_void) -> bank_callback_handle_t > , pub register_before_write : :: std :: option :: Option < unsafe extern \"C\" fn (bank : * mut conf_object_t , connection : * mut conf_object_t , offset : uint64 , size : uint64 , before_write : before_write_callback_t , user_data : * mut lang_void) -> bank_callback_handle_t > , pub register_after_write : :: std :: option :: Option < unsafe extern \"C\" fn (bank : * mut conf_object_t , connection : * mut conf_object_t , offset : uint64 , size : uint64 , after_write : after_write_callback_t , user_data : * mut lang_void) -> bank_callback_handle_t > , pub remove_callback : :: std :: option :: Option < unsafe extern \"C\" fn (bank : * mut conf_object_t , callback : bank_callback_handle_t) > , pub remove_connection_callbacks : :: std :: option :: Option < unsafe extern \"C\" fn (bank : * mut conf_object_t , connection : * mut conf_object_t) > , pub enable_connection_callbacks : :: std :: option :: Option < unsafe extern \"C\" fn (bank : * mut conf_object_t , connection : * mut conf_object_t) > , pub disable_connection_callbacks : :: std :: option :: Option < unsafe extern \"C\" fn (bank : * mut conf_object_t , connection : * mut conf_object_t) > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of bank_instrumentation_subscribe_interface\"] [:: std :: mem :: size_of :: < bank_instrumentation_subscribe_interface > () - 64usize] ; [\"Alignment of bank_instrumentation_subscribe_interface\"] [:: std :: mem :: align_of :: < bank_instrumentation_subscribe_interface > () - 8usize] ; [\"Offset of field: bank_instrumentation_subscribe_interface::register_before_read\"] [:: std :: mem :: offset_of ! (bank_instrumentation_subscribe_interface , register_before_read) - 0usize] ; [\"Offset of field: bank_instrumentation_subscribe_interface::register_after_read\"] [:: std :: mem :: offset_of ! (bank_instrumentation_subscribe_interface , register_after_read) - 8usize] ; [\"Offset of field: bank_instrumentation_subscribe_interface::register_before_write\"] [:: std :: mem :: offset_of ! (bank_instrumentation_subscribe_interface , register_before_write) - 16usize] ; [\"Offset of field: bank_instrumentation_subscribe_interface::register_after_write\"] [:: std :: mem :: offset_of ! (bank_instrumentation_subscribe_interface , register_after_write) - 24usize] ; [\"Offset of field: bank_instrumentation_subscribe_interface::remove_callback\"] [:: std :: mem :: offset_of ! (bank_instrumentation_subscribe_interface , remove_callback) - 32usize] ; [\"Offset of field: bank_instrumentation_subscribe_interface::remove_connection_callbacks\"] [:: std :: mem :: offset_of ! (bank_instrumentation_subscribe_interface , remove_connection_callbacks) - 40usize] ; [\"Offset of field: bank_instrumentation_subscribe_interface::enable_connection_callbacks\"] [:: std :: mem :: offset_of ! (bank_instrumentation_subscribe_interface , enable_connection_callbacks) - 48usize] ; [\"Offset of field: bank_instrumentation_subscribe_interface::disable_connection_callbacks\"] [:: std :: mem :: offset_of ! (bank_instrumentation_subscribe_interface , disable_connection_callbacks) - 56usize] ; } ; pub type event_delta_interface_t = event_delta_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct event_delta_interface { pub set_delta : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , event_handler_obj : * mut conf_object_t , next_event_ec : * const event_class_t , delta : uint64) -> uint64 > , pub get_delta : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , event_handler_obj : * mut conf_object_t) -> uint64 > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of event_delta_interface\"] [:: std :: mem :: size_of :: < event_delta_interface > () - 16usize] ; [\"Alignment of event_delta_interface\"] [:: std :: mem :: align_of :: < event_delta_interface > () - 8usize] ; [\"Offset of field: event_delta_interface::set_delta\"] [:: std :: mem :: offset_of ! (event_delta_interface , set_delta) - 0usize] ; [\"Offset of field: event_delta_interface::get_delta\"] [:: std :: mem :: offset_of ! (event_delta_interface , get_delta) - 8usize] ; } ; pub type event_handler_interface_t = event_handler_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct event_handler_interface { pub handle_event : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t) -> bool > , pub stop : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t) > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of event_handler_interface\"] [:: std :: mem :: size_of :: < event_handler_interface > () - 16usize] ; [\"Alignment of event_handler_interface\"] [:: std :: mem :: align_of :: < event_handler_interface > () - 8usize] ; [\"Offset of field: event_handler_interface::handle_event\"] [:: std :: mem :: offset_of ! (event_handler_interface , handle_event) - 0usize] ; [\"Offset of field: event_handler_interface::stop\"] [:: std :: mem :: offset_of ! (event_handler_interface , stop) - 8usize] ; } ; pub type mmc_interface_t = mmc_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct mmc_interface { pub send_command : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , cmd : uint8 , args : uint32 , response : buffer_t) -> :: std :: os :: raw :: c_int > , pub read_data : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , data : buffer_t) -> :: std :: os :: raw :: c_int > , pub write_data : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , data : bytes_t) -> :: std :: os :: raw :: c_int > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of mmc_interface\"] [:: std :: mem :: size_of :: < mmc_interface > () - 24usize] ; [\"Alignment of mmc_interface\"] [:: std :: mem :: align_of :: < mmc_interface > () - 8usize] ; [\"Offset of field: mmc_interface::send_command\"] [:: std :: mem :: offset_of ! (mmc_interface , send_command) - 0usize] ; [\"Offset of field: mmc_interface::read_data\"] [:: std :: mem :: offset_of ! (mmc_interface , read_data) - 8usize] ; [\"Offset of field: mmc_interface::write_data\"] [:: std :: mem :: offset_of ! (mmc_interface , write_data) - 16usize] ; } ; # [repr (u32)] # [doc = \"<add id=\\\"instruction_fetch_interface_t\\\">\\n\\nThe <iface>instruction_fetch</iface> interface is implemented by\\nprocessors. The interface controls how instruction fetches should\\nbe modeled.\\n\\nThe <fun>get_mode</fun> and <fun>set_mode</fun> functions get and\\nset the instruction fetch mode. There are three available\\nmodes. All modes are not supported by all processor types. The\\n<em>instruction_fetch_none</em> mode is the least accurate but the\\nfastest mode. The other modes are more accurate but slower.\\n\\nThe <fun>get_line_size</fun> and <fun>set_line_size</fun> functions\\nget and set the fetch size on each instruction fetch. This is often\\nrelated to cache line size or similar. The line size must be power\\nof 2.\\n\\n<insert-until text=\\\"// ADD INTERFACE instruction_fetch_interface_t\\\"/>\\n\\n</add>\\n<add id=\\\"instruction_fetch_interface_exec_context\\\">\\n<table border=\\\"false\\\">\\n<tr><td><fun>get_mode</fun></td><td>Cell Context</td></tr>\\n<tr><td><fun>set_mode</fun></td><td>Global Context</td></tr>\\n<tr><td><fun>get_line_size</fun></td><td>Cell Context</td></tr>\\n<tr><td><fun>set_line_size</fun></td><td>Global Context</td></tr>\\n</table>\\n</add>\"] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub enum instruction_fetch_mode_t { # [doc = \" No instruction fetch sent to memory hierarchy\"] Instruction_Fetch_None = 0 , # [doc = \" Memory hierarchy gets fetch for each cache line access\"] Instruction_Fetch_Cache_Access_Trace = 1 , # [doc = \" Memory hierarchy gets fetch for each instruction fetch. Only\\nx86/x86-64\"] Instruction_Fetch_Trace = 2 , } pub type instruction_fetch_interface_t = instruction_fetch_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct instruction_fetch_interface { pub get_mode : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t) -> instruction_fetch_mode_t > , pub set_mode : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , mode : instruction_fetch_mode_t) > , pub get_line_size : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t) -> :: std :: os :: raw :: c_int > , pub set_line_size : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , size : :: std :: os :: raw :: c_int) > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of instruction_fetch_interface\"] [:: std :: mem :: size_of :: < instruction_fetch_interface > () - 32usize] ; [\"Alignment of instruction_fetch_interface\"] [:: std :: mem :: align_of :: < instruction_fetch_interface > () - 8usize] ; [\"Offset of field: instruction_fetch_interface::get_mode\"] [:: std :: mem :: offset_of ! (instruction_fetch_interface , get_mode) - 0usize] ; [\"Offset of field: instruction_fetch_interface::set_mode\"] [:: std :: mem :: offset_of ! (instruction_fetch_interface , set_mode) - 8usize] ; [\"Offset of field: instruction_fetch_interface::get_line_size\"] [:: std :: mem :: offset_of ! (instruction_fetch_interface , get_line_size) - 16usize] ; [\"Offset of field: instruction_fetch_interface::set_line_size\"] [:: std :: mem :: offset_of ! (instruction_fetch_interface , set_line_size) - 24usize] ; } ; extern \"C\" { pub fn VT_ctx_set_on_context_handler (obj : * mut conf_object_t , c_handler : * mut conf_object_t , bp_flags : uint32) ; } extern \"C\" { pub fn VT_ctx_remove_from_context_handler (obj : * mut conf_object_t , c_handler : * mut conf_object_t) ; } pub type freerun_interface_t = freerun_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct freerun_interface { pub enabled : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t) -> bool > , pub advance_clock : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , ps_limit : int64 , steps : int64 , idle : bool) -> int64 > , pub start_clock : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t) > , pub stop_clock : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t) > , pub current_itime : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t) -> uint64 > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of freerun_interface\"] [:: std :: mem :: size_of :: < freerun_interface > () - 40usize] ; [\"Alignment of freerun_interface\"] [:: std :: mem :: align_of :: < freerun_interface > () - 8usize] ; [\"Offset of field: freerun_interface::enabled\"] [:: std :: mem :: offset_of ! (freerun_interface , enabled) - 0usize] ; [\"Offset of field: freerun_interface::advance_clock\"] [:: std :: mem :: offset_of ! (freerun_interface , advance_clock) - 8usize] ; [\"Offset of field: freerun_interface::start_clock\"] [:: std :: mem :: offset_of ! (freerun_interface , start_clock) - 16usize] ; [\"Offset of field: freerun_interface::stop_clock\"] [:: std :: mem :: offset_of ! (freerun_interface , stop_clock) - 24usize] ; [\"Offset of field: freerun_interface::current_itime\"] [:: std :: mem :: offset_of ! (freerun_interface , current_itime) - 32usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct step_instrumentation { _unused : [u8 ; 0] , } pub type step_handle_t = step_instrumentation ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct clock_instrumentation { _unused : [u8 ; 0] , } pub type cycle_handle_t = clock_instrumentation ; pub type step_event_cb_t = :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , step_obj : * mut conf_object_t , event_obj : * mut conf_object_t , steps : pc_step_t , event_class_name : * const :: std :: os :: raw :: c_char , description : * const :: std :: os :: raw :: c_char , value : attr_value_t , user_data : * mut lang_void) > ; pub type step_event_instrumentation_interface_t = step_event_instrumentation_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct step_event_instrumentation_interface { pub register_step_event_cb : :: std :: option :: Option < unsafe extern \"C\" fn (cpu : * mut conf_object_t , connection : * mut conf_object_t , cb : step_event_cb_t , data : * mut lang_void) -> * mut step_handle_t > , pub remove_step_event_cb : :: std :: option :: Option < unsafe extern \"C\" fn (cpu : * mut conf_object_t , handle : * mut step_handle_t) > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of step_event_instrumentation_interface\"] [:: std :: mem :: size_of :: < step_event_instrumentation_interface > () - 16usize] ; [\"Alignment of step_event_instrumentation_interface\"] [:: std :: mem :: align_of :: < step_event_instrumentation_interface > () - 8usize] ; [\"Offset of field: step_event_instrumentation_interface::register_step_event_cb\"] [:: std :: mem :: offset_of ! (step_event_instrumentation_interface , register_step_event_cb) - 0usize] ; [\"Offset of field: step_event_instrumentation_interface::remove_step_event_cb\"] [:: std :: mem :: offset_of ! (step_event_instrumentation_interface , remove_step_event_cb) - 8usize] ; } ; # [doc = \" ADD INTERFACE step_event_instrumentation\"] pub type cycle_event_cb_t = :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , step_obj : * mut conf_object_t , event_obj : * mut conf_object_t , cycles : cycles_t , event_class_name : * const :: std :: os :: raw :: c_char , description : * const :: std :: os :: raw :: c_char , value : attr_value_t , user_data : * mut lang_void) > ; pub type cycle_event_instrumentation_interface_t = cycle_event_instrumentation_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct cycle_event_instrumentation_interface { pub register_cycle_event_cb : :: std :: option :: Option < unsafe extern \"C\" fn (cpu : * mut conf_object_t , connection : * mut conf_object_t , cb : cycle_event_cb_t , data : * mut lang_void) -> * mut cycle_handle_t > , pub remove_cycle_event_cb : :: std :: option :: Option < unsafe extern \"C\" fn (cpu : * mut conf_object_t , handle : * mut cycle_handle_t) > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of cycle_event_instrumentation_interface\"] [:: std :: mem :: size_of :: < cycle_event_instrumentation_interface > () - 16usize] ; [\"Alignment of cycle_event_instrumentation_interface\"] [:: std :: mem :: align_of :: < cycle_event_instrumentation_interface > () - 8usize] ; [\"Offset of field: cycle_event_instrumentation_interface::register_cycle_event_cb\"] [:: std :: mem :: offset_of ! (cycle_event_instrumentation_interface , register_cycle_event_cb) - 0usize] ; [\"Offset of field: cycle_event_instrumentation_interface::remove_cycle_event_cb\"] [:: std :: mem :: offset_of ! (cycle_event_instrumentation_interface , remove_cycle_event_cb) - 8usize] ; } ; # [repr (u32)] # [doc = \" TODO: these constants should likely migrate to simics/simulator/callbacks.h.\"] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub enum exec_mode_t { # [doc = \" run in global context\"] Sim_EM_Global = 0 , # [doc = \" run in standalone thread\"] Sim_EM_Thread = 1 , } pub type external_connection_ctl_interface_t = external_connection_ctl_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct external_connection_ctl_interface { # [doc = \" Call this with a NULL cookie to indicate non-acceptance.\\nIf blocking_read is true then this connection will\\nuse blocking reads, i.e. calls to read will not return until the\\ncomplete buffer has been filled.\"] pub accept : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , id : uint64 , cookie : * mut lang_void , blocking_read : bool) > , # [doc = \" Return number of bytes read, -1 on error,\\nor -2 if there is no data and the read would have blocked\\n(only possible if non-blocking reads are used).\"] pub read : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , cookie : * mut lang_void , buffer : buffer_t) -> isize > , # [doc = \" Return number of bytes written, or -1 on error.\"] pub write : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , cookie : * mut lang_void , bytes : bytes_t) -> isize > , pub write_async : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , cookie : * mut lang_void , bytes : bytes_t) > , # [doc = \" Indicate if an error was detected during read/write.\"] pub has_error : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , cookie : * mut lang_void) -> bool > , pub notify : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , cookie : * mut lang_void , notify_mode : notify_mode_t , exec_mode : exec_mode_t , active : bool) > , pub close : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , cookie : * mut lang_void) > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of external_connection_ctl_interface\"] [:: std :: mem :: size_of :: < external_connection_ctl_interface > () - 56usize] ; [\"Alignment of external_connection_ctl_interface\"] [:: std :: mem :: align_of :: < external_connection_ctl_interface > () - 8usize] ; [\"Offset of field: external_connection_ctl_interface::accept\"] [:: std :: mem :: offset_of ! (external_connection_ctl_interface , accept) - 0usize] ; [\"Offset of field: external_connection_ctl_interface::read\"] [:: std :: mem :: offset_of ! (external_connection_ctl_interface , read) - 8usize] ; [\"Offset of field: external_connection_ctl_interface::write\"] [:: std :: mem :: offset_of ! (external_connection_ctl_interface , write) - 16usize] ; [\"Offset of field: external_connection_ctl_interface::write_async\"] [:: std :: mem :: offset_of ! (external_connection_ctl_interface , write_async) - 24usize] ; [\"Offset of field: external_connection_ctl_interface::has_error\"] [:: std :: mem :: offset_of ! (external_connection_ctl_interface , has_error) - 32usize] ; [\"Offset of field: external_connection_ctl_interface::notify\"] [:: std :: mem :: offset_of ! (external_connection_ctl_interface , notify) - 40usize] ; [\"Offset of field: external_connection_ctl_interface::close\"] [:: std :: mem :: offset_of ! (external_connection_ctl_interface , close) - 48usize] ; } ; pub type external_connection_events_interface_t = external_connection_events_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct external_connection_events_interface { pub on_accept : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , server : * mut conf_object_t , id : uint64) > , pub on_input : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , cookie : * mut lang_void) > , pub can_write : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , cookie : * mut lang_void) > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of external_connection_events_interface\"] [:: std :: mem :: size_of :: < external_connection_events_interface > () - 24usize] ; [\"Alignment of external_connection_events_interface\"] [:: std :: mem :: align_of :: < external_connection_events_interface > () - 8usize] ; [\"Offset of field: external_connection_events_interface::on_accept\"] [:: std :: mem :: offset_of ! (external_connection_events_interface , on_accept) - 0usize] ; [\"Offset of field: external_connection_events_interface::on_input\"] [:: std :: mem :: offset_of ! (external_connection_events_interface , on_input) - 8usize] ; [\"Offset of field: external_connection_events_interface::can_write\"] [:: std :: mem :: offset_of ! (external_connection_events_interface , can_write) - 16usize] ; } ; pub type tcp_connection_info_interface_t = tcp_connection_info_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct tcp_connection_info_interface { pub remote_port : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , cookie : * mut lang_void) -> uint16 > , pub remote_ip : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , cookie : * mut lang_void) -> bytes_t > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of tcp_connection_info_interface\"] [:: std :: mem :: size_of :: < tcp_connection_info_interface > () - 16usize] ; [\"Alignment of tcp_connection_info_interface\"] [:: std :: mem :: align_of :: < tcp_connection_info_interface > () - 8usize] ; [\"Offset of field: tcp_connection_info_interface::remote_port\"] [:: std :: mem :: offset_of ! (tcp_connection_info_interface , remote_port) - 0usize] ; [\"Offset of field: tcp_connection_info_interface::remote_ip\"] [:: std :: mem :: offset_of ! (tcp_connection_info_interface , remote_ip) - 8usize] ; } ; pub type keyboard_interface_t = keyboard_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct keyboard_interface { pub keyboard_event : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , key_up : :: std :: os :: raw :: c_int , key : uint8) -> :: std :: os :: raw :: c_int > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of keyboard_interface\"] [:: std :: mem :: size_of :: < keyboard_interface > () - 8usize] ; [\"Alignment of keyboard_interface\"] [:: std :: mem :: align_of :: < keyboard_interface > () - 8usize] ; [\"Offset of field: keyboard_interface::keyboard_event\"] [:: std :: mem :: offset_of ! (keyboard_interface , keyboard_event) - 0usize] ; } ; pub type keyboard_console_interface_t = keyboard_console_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct keyboard_console_interface { pub keyboard_ready : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t) > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of keyboard_console_interface\"] [:: std :: mem :: size_of :: < keyboard_console_interface > () - 8usize] ; [\"Alignment of keyboard_console_interface\"] [:: std :: mem :: align_of :: < keyboard_console_interface > () - 8usize] ; [\"Offset of field: keyboard_console_interface::keyboard_ready\"] [:: std :: mem :: offset_of ! (keyboard_console_interface , keyboard_ready) - 0usize] ; } ; pub type kbd_console_interface_t = kbd_console_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct kbd_console_interface { pub keyboard_ready : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t) > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of kbd_console_interface\"] [:: std :: mem :: size_of :: < kbd_console_interface > () - 8usize] ; [\"Alignment of kbd_console_interface\"] [:: std :: mem :: align_of :: < kbd_console_interface > () - 8usize] ; [\"Offset of field: kbd_console_interface::keyboard_ready\"] [:: std :: mem :: offset_of ! (kbd_console_interface , keyboard_ready) - 0usize] ; } ; pub type mouse_interface_t = mouse_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct mouse_interface { pub mouse_event : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , xmicro : :: std :: os :: raw :: c_int , ymicro : :: std :: os :: raw :: c_int , z : :: std :: os :: raw :: c_int , buttons : :: std :: os :: raw :: c_int) > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of mouse_interface\"] [:: std :: mem :: size_of :: < mouse_interface > () - 8usize] ; [\"Alignment of mouse_interface\"] [:: std :: mem :: align_of :: < mouse_interface > () - 8usize] ; [\"Offset of field: mouse_interface::mouse_event\"] [:: std :: mem :: offset_of ! (mouse_interface , mouse_event) - 0usize] ; } ; pub type exception_interface_t = exception_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct exception_interface { pub get_number : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , name : * const :: std :: os :: raw :: c_char) -> :: std :: os :: raw :: c_int > , pub get_name : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , exc : :: std :: os :: raw :: c_int) -> * const :: std :: os :: raw :: c_char > , pub get_source : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , exc : :: std :: os :: raw :: c_int) -> :: std :: os :: raw :: c_int > , pub all_exceptions : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t) -> attr_value_t > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of exception_interface\"] [:: std :: mem :: size_of :: < exception_interface > () - 32usize] ; [\"Alignment of exception_interface\"] [:: std :: mem :: align_of :: < exception_interface > () - 8usize] ; [\"Offset of field: exception_interface::get_number\"] [:: std :: mem :: offset_of ! (exception_interface , get_number) - 0usize] ; [\"Offset of field: exception_interface::get_name\"] [:: std :: mem :: offset_of ! (exception_interface , get_name) - 8usize] ; [\"Offset of field: exception_interface::get_source\"] [:: std :: mem :: offset_of ! (exception_interface , get_source) - 16usize] ; [\"Offset of field: exception_interface::all_exceptions\"] [:: std :: mem :: offset_of ! (exception_interface , all_exceptions) - 24usize] ; } ; pub type hap_listen_interface_t = hap_listen_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct hap_listen_interface { pub occurred : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , origin : * mut conf_object_t , hap : hap_type_t , value : int64 , ap : * mut __va_list_tag , always : bool) > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of hap_listen_interface\"] [:: std :: mem :: size_of :: < hap_listen_interface > () - 8usize] ; [\"Alignment of hap_listen_interface\"] [:: std :: mem :: align_of :: < hap_listen_interface > () - 8usize] ; [\"Offset of field: hap_listen_interface::occurred\"] [:: std :: mem :: offset_of ! (hap_listen_interface , occurred) - 0usize] ; } ; pub type cycle_event_interface_t = cycle_event_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct cycle_event_interface { pub cycles : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t) -> cycles_t > , pub post : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , evclass : * const event_class_t , ev_obj : * mut conf_object_t , cycles : cycles_t , param : * mut lang_void) > , pub cancel : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , evclass : * const event_class_t , ev_obj : * mut conf_object_t , pred : :: std :: option :: Option < unsafe extern \"C\" fn (data : * mut lang_void , match_data : * mut lang_void) -> :: std :: os :: raw :: c_int > , match_data : * mut lang_void) > , pub lookup : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , evclass : * const event_class_t , ev_obj : * mut conf_object_t , pred : :: std :: option :: Option < unsafe extern \"C\" fn (data : * mut lang_void , match_data : * mut lang_void) -> :: std :: os :: raw :: c_int > , match_data : * mut lang_void) -> cycles_t > , pub events : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t) -> attr_value_t > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of cycle_event_interface\"] [:: std :: mem :: size_of :: < cycle_event_interface > () - 40usize] ; [\"Alignment of cycle_event_interface\"] [:: std :: mem :: align_of :: < cycle_event_interface > () - 8usize] ; [\"Offset of field: cycle_event_interface::cycles\"] [:: std :: mem :: offset_of ! (cycle_event_interface , cycles) - 0usize] ; [\"Offset of field: cycle_event_interface::post\"] [:: std :: mem :: offset_of ! (cycle_event_interface , post) - 8usize] ; [\"Offset of field: cycle_event_interface::cancel\"] [:: std :: mem :: offset_of ! (cycle_event_interface , cancel) - 16usize] ; [\"Offset of field: cycle_event_interface::lookup\"] [:: std :: mem :: offset_of ! (cycle_event_interface , lookup) - 24usize] ; [\"Offset of field: cycle_event_interface::events\"] [:: std :: mem :: offset_of ! (cycle_event_interface , events) - 32usize] ; } ; pub type cycle_control_interface_t = cycle_control_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct cycle_control_interface { pub stop : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t) > , pub start : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t) > , pub set_cycle_count : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , cycle_count : cycles_t) > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of cycle_control_interface\"] [:: std :: mem :: size_of :: < cycle_control_interface > () - 24usize] ; [\"Alignment of cycle_control_interface\"] [:: std :: mem :: align_of :: < cycle_control_interface > () - 8usize] ; [\"Offset of field: cycle_control_interface::stop\"] [:: std :: mem :: offset_of ! (cycle_control_interface , stop) - 0usize] ; [\"Offset of field: cycle_control_interface::start\"] [:: std :: mem :: offset_of ! (cycle_control_interface , start) - 8usize] ; [\"Offset of field: cycle_control_interface::set_cycle_count\"] [:: std :: mem :: offset_of ! (cycle_control_interface , set_cycle_count) - 16usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct gfx_breakpoint { pub id : :: std :: os :: raw :: c_int , pub enabled : :: std :: os :: raw :: c_int , pub format : :: std :: os :: raw :: c_int , pub minx : uint32 , pub miny : uint32 , pub maxx : uint32 , pub maxy : uint32 , pub data : * mut uint8 , pub next : * mut gfx_breakpoint , pub prev : * mut gfx_breakpoint , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of gfx_breakpoint\"] [:: std :: mem :: size_of :: < gfx_breakpoint > () - 56usize] ; [\"Alignment of gfx_breakpoint\"] [:: std :: mem :: align_of :: < gfx_breakpoint > () - 8usize] ; [\"Offset of field: gfx_breakpoint::id\"] [:: std :: mem :: offset_of ! (gfx_breakpoint , id) - 0usize] ; [\"Offset of field: gfx_breakpoint::enabled\"] [:: std :: mem :: offset_of ! (gfx_breakpoint , enabled) - 4usize] ; [\"Offset of field: gfx_breakpoint::format\"] [:: std :: mem :: offset_of ! (gfx_breakpoint , format) - 8usize] ; [\"Offset of field: gfx_breakpoint::minx\"] [:: std :: mem :: offset_of ! (gfx_breakpoint , minx) - 12usize] ; [\"Offset of field: gfx_breakpoint::miny\"] [:: std :: mem :: offset_of ! (gfx_breakpoint , miny) - 16usize] ; [\"Offset of field: gfx_breakpoint::maxx\"] [:: std :: mem :: offset_of ! (gfx_breakpoint , maxx) - 20usize] ; [\"Offset of field: gfx_breakpoint::maxy\"] [:: std :: mem :: offset_of ! (gfx_breakpoint , maxy) - 24usize] ; [\"Offset of field: gfx_breakpoint::data\"] [:: std :: mem :: offset_of ! (gfx_breakpoint , data) - 32usize] ; [\"Offset of field: gfx_breakpoint::next\"] [:: std :: mem :: offset_of ! (gfx_breakpoint , next) - 40usize] ; [\"Offset of field: gfx_breakpoint::prev\"] [:: std :: mem :: offset_of ! (gfx_breakpoint , prev) - 48usize] ; } ; impl Default for gfx_breakpoint { fn default () -> Self { let mut s = :: std :: mem :: MaybeUninit :: < Self > :: uninit () ; unsafe { :: std :: ptr :: write_bytes (s . as_mut_ptr () , 0 , 1) ; s . assume_init () } } } pub type gfx_breakpoint_t = gfx_breakpoint ; pub type video_interface_t = video_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct video_interface { pub get_breakpoint_data : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , minx : :: std :: os :: raw :: c_int , miny : :: std :: os :: raw :: c_int , w : :: std :: os :: raw :: c_int , h : :: std :: os :: raw :: c_int , format : * mut uint32 , bytes : * mut uint32) -> * mut :: std :: os :: raw :: c_char > , pub check_breakpoint : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , breakpts : * mut gfx_breakpoint) -> :: std :: os :: raw :: c_int > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of video_interface\"] [:: std :: mem :: size_of :: < video_interface > () - 16usize] ; [\"Alignment of video_interface\"] [:: std :: mem :: align_of :: < video_interface > () - 8usize] ; [\"Offset of field: video_interface::get_breakpoint_data\"] [:: std :: mem :: offset_of ! (video_interface , get_breakpoint_data) - 0usize] ; [\"Offset of field: video_interface::check_breakpoint\"] [:: std :: mem :: offset_of ! (video_interface , check_breakpoint) - 8usize] ; } ; pub type co_execute_interface_t = co_execute_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct co_execute_interface { pub start_thread : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , entry : :: std :: option :: Option < unsafe extern \"C\" fn (arg : * mut lang_void) > , arg : * mut lang_void) > , pub yield_ : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t) > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of co_execute_interface\"] [:: std :: mem :: size_of :: < co_execute_interface > () - 16usize] ; [\"Alignment of co_execute_interface\"] [:: std :: mem :: align_of :: < co_execute_interface > () - 8usize] ; [\"Offset of field: co_execute_interface::start_thread\"] [:: std :: mem :: offset_of ! (co_execute_interface , start_thread) - 0usize] ; [\"Offset of field: co_execute_interface::yield_\"] [:: std :: mem :: offset_of ! (co_execute_interface , yield_) - 8usize] ; } ; pub type synchronous_mode_interface_t = synchronous_mode_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct synchronous_mode_interface { pub enter : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t) -> :: std :: os :: raw :: c_int > , pub leave : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t) -> :: std :: os :: raw :: c_int > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of synchronous_mode_interface\"] [:: std :: mem :: size_of :: < synchronous_mode_interface > () - 16usize] ; [\"Alignment of synchronous_mode_interface\"] [:: std :: mem :: align_of :: < synchronous_mode_interface > () - 8usize] ; [\"Offset of field: synchronous_mode_interface::enter\"] [:: std :: mem :: offset_of ! (synchronous_mode_interface , enter) - 0usize] ; [\"Offset of field: synchronous_mode_interface::leave\"] [:: std :: mem :: offset_of ! (synchronous_mode_interface , leave) - 8usize] ; } ; # [repr (u32)] # [doc = \" <add id=\\\"ram_interface_t\\\">\\n<ndx>ram_operation_flags_t</ndx>\\n\\nThe <iface>ram</iface> interface is implemented by classes that provide\\nrandom access read/write memory. The <iface>rom</iface> interface is\\nidentical to <iface>ram</iface> but provides read only memory (writes are\\ndropped by the memory system).\\n\\nBoth the ram and rom interfaces are Simics internal, and should not be used\\nby user-defined classes.\\n\\nThe <fun>get_page</fun> method is obsolete and should not be implemented.\\n\\nThe <fun>fill</fun> method fills a range with a specified byte value.\\n\\nThe <fun>read</fun> method reads a number of bytes from address\\n<param>addr</param> into the buffer <param>data</param>. The number of\\nbytes read is given by the buffer size.\\n\\nThe <fun>write</fun> method writes the bytes in <param>data</param> to\\naddress <param>addr</param>.\\n\\nThe <fun>touch</fun> method is similar to the <fun>read</fun> and\\n<fun>write</fun> methods, except that no data is actually transferred; the\\nmethod triggers side effects like revoking conflicting direct-memory\\npermissions from affected pages. The <param>rw</param> argument determines\\nwhether the operation is a handled as a read or as a write.\\n\\nThe <param>flags</param> argument is a bitmask which modify the behavior\\nof <fun>read</fun>, <fun>write</fun> and <fun>touch</fun> operations in\\nvarious ways.\\n\\nThe <fun>size</fun> method returns the memory size in bytes; that is, the\\nhighest usable address plus one.\\n\\n<insert-until text=\\\"// ADD INTERFACE ram_interface\\\"/>\\n</add>\\n<add id=\\\"ram_interface_exec_context\\\">\\nCell Context for all methods.\\n</add>\\n<add id=\\\"rom_interface_exec_context\\\">\\nCell Context for all methods.\\n</add>\"] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub enum ram_operation_flags_t { # [doc = \" Read is an instruction fetch.\"] Sim_Ram_Op_Fetch = 1 , # [doc = \" Operation should not cause\\natomic reservations to be lost.\"] Sim_Ram_Op_Non_Coherent = 2 , } pub type ram_interface_t = ram_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct ram_interface { # [doc = \" The get_page is method is obsolete and should be left\\nunimplemented.\"] pub get_page : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , addr : physical_address_t) -> * mut page_t > , pub fill : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , start : physical_address_t , length : uint64 , value : uint8) > , pub read : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , initiator : * mut conf_object_t , addr : uint64 , data : buffer_t , flags : ram_operation_flags_t) -> exception_type_t > , pub write : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , initiator : * mut conf_object_t , addr : uint64 , data : bytes_t , flags : ram_operation_flags_t) -> exception_type_t > , pub touch : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , initiator : * mut conf_object_t , addr : uint64 , size : uint64 , rw : read_or_write_t , flags : ram_operation_flags_t) -> exception_type_t > , pub size : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t) -> uint64 > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of ram_interface\"] [:: std :: mem :: size_of :: < ram_interface > () - 48usize] ; [\"Alignment of ram_interface\"] [:: std :: mem :: align_of :: < ram_interface > () - 8usize] ; [\"Offset of field: ram_interface::get_page\"] [:: std :: mem :: offset_of ! (ram_interface , get_page) - 0usize] ; [\"Offset of field: ram_interface::fill\"] [:: std :: mem :: offset_of ! (ram_interface , fill) - 8usize] ; [\"Offset of field: ram_interface::read\"] [:: std :: mem :: offset_of ! (ram_interface , read) - 16usize] ; [\"Offset of field: ram_interface::write\"] [:: std :: mem :: offset_of ! (ram_interface , write) - 24usize] ; [\"Offset of field: ram_interface::touch\"] [:: std :: mem :: offset_of ! (ram_interface , touch) - 32usize] ; [\"Offset of field: ram_interface::size\"] [:: std :: mem :: offset_of ! (ram_interface , size) - 40usize] ; } ; pub type rom_interface_t = ram_interface_t ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct ram_callback_entry { _unused : [u8 ; 0] , } pub type ram_cb_handle_t = ram_callback_entry ; # [doc = \" <add id=\\\"access_filter_cb_t DOC\\\">\\n<ndx>access_filter_cb_t</ndx>\\n<name index=\\\"true\\\">access_filter_cb_t</name>\\n<doc>\\n<doc-item name=\\\"NAME\\\">access_filter_cb_t</doc-item>\\n<doc-item name=\\\"SYNOPSIS\\\"><insert id=\\\"access_filter_cb_t\\\"/>\\n</doc-item>\\n<doc-item name=\\\"DESCRIPTION\\\">\\n\\nInstrumentation callback function registered through the\\n<fun>register_direct_memory_filter_cb</fun> method in the\\n<iface>ram_access_subscribe_interface_t</iface> interfaces to get a callback\\nwhen a direct page is cached in the CPU. The <param>obj</param> is the\\nobject that registered the callback, and the <param>cpu</param> is the\\nprocessor which cached the direct page. The target object of the direct page\\nlookup is passed in the <param>target</param> argument, typically a ram\\nobject. The <param>offset</param>, <param>size</param> and\\n<param>access</param> are the ram offset, the size of the cached page,\\nand the access type, respectively. The <param>user_data</param> is the user\\ndata for the callback. To allow caching of a page, the corresponding bits in\\nan <type>access_t</type> should be returned. If 0 is returned the page will\\nbe not be cached.\\n\\n</doc-item>\\n</doc>\\n</add>\\n\\n<add-type id=\\\"access_filter_cb_t\\\"></add-type>\"] pub type access_filter_cb_t = :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , ram : * mut conf_object_t , initiator : * mut conf_object_t , offset : uint64 , size : :: std :: os :: raw :: c_uint , access : access_t , user_data : * mut lang_void) -> access_t > ; # [doc = \" <add id=\\\"ram_access_cb_t DOC\\\">\\n<ndx>ram_access_cb_t</ndx>\\n<name index=\\\"true\\\">ram_access_cb_t</name>\\n<doc>\\n<doc-item name=\\\"NAME\\\">ram_access_cb_t</doc-item>\\n<doc-item name=\\\"SYNOPSIS\\\"><insert id=\\\"ram_access_cb_t\\\"/>\\n</doc-item>\\n<doc-item name=\\\"DESCRIPTION\\\">\\n\\nInstrumentation callback function registered through the\\n<fun>register_access_before_cb</fun> or <fun>register_access_after_cb</fun>\\nmethods in the <iface>ram_access_subscribe_interface_t</iface> interface to\\nget a callback when a ram/rom object is accessed. <param>obj</param> is the\\nobject that registered the callback, and the <param>ram</param> is the\\nram/rom object that is accessed. The <param>ram_offset</param> is the offset\\nin the ram/rom object where the transaction hits. The <param>t</param>\\nargument is a pointer to the <type>transaction_t</type> that is\\nperformed. See the access primitives of the <type>transaction_t</type> type\\nto see how to examine and modify the transaction. Depending on if the\\nregister function is of before or after type, the transaction will be, or\\nalready has been completed, at the time of this callback. This places\\nrestrictions on what can be done with the transaction.\\n</doc-item>\\n</doc>\\n</add>\\n\\n<add-type id=\\\"ram_access_cb_t\\\"></add-type>\"] pub type ram_access_cb_t = :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , ram : * mut conf_object_t , ram_offset : uint64 , t : * mut transaction_t , user_data : * mut lang_void) > ; pub type ram_access_subscribe_interface_t = ram_access_subscribe_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct ram_access_subscribe_interface { pub remove_callback : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , handle : * mut ram_cb_handle_t) > , pub enable_callback : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , handle : * mut ram_cb_handle_t) > , pub disable_callback : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , handle : * mut ram_cb_handle_t) > , pub register_access_before_cb : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , conn_obj : * mut conf_object_t , cb : ram_access_cb_t , data : * mut lang_void) -> * mut ram_cb_handle_t > , pub register_access_after_cb : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , conn_obj : * mut conf_object_t , cb : ram_access_cb_t , data : * mut lang_void) -> * mut ram_cb_handle_t > , pub register_access_filter_cb : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , connection : * mut conf_object_t , cb : access_filter_cb_t , data : * mut lang_void) -> * mut ram_cb_handle_t > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of ram_access_subscribe_interface\"] [:: std :: mem :: size_of :: < ram_access_subscribe_interface > () - 48usize] ; [\"Alignment of ram_access_subscribe_interface\"] [:: std :: mem :: align_of :: < ram_access_subscribe_interface > () - 8usize] ; [\"Offset of field: ram_access_subscribe_interface::remove_callback\"] [:: std :: mem :: offset_of ! (ram_access_subscribe_interface , remove_callback) - 0usize] ; [\"Offset of field: ram_access_subscribe_interface::enable_callback\"] [:: std :: mem :: offset_of ! (ram_access_subscribe_interface , enable_callback) - 8usize] ; [\"Offset of field: ram_access_subscribe_interface::disable_callback\"] [:: std :: mem :: offset_of ! (ram_access_subscribe_interface , disable_callback) - 16usize] ; [\"Offset of field: ram_access_subscribe_interface::register_access_before_cb\"] [:: std :: mem :: offset_of ! (ram_access_subscribe_interface , register_access_before_cb) - 24usize] ; [\"Offset of field: ram_access_subscribe_interface::register_access_after_cb\"] [:: std :: mem :: offset_of ! (ram_access_subscribe_interface , register_access_after_cb) - 32usize] ; [\"Offset of field: ram_access_subscribe_interface::register_access_filter_cb\"] [:: std :: mem :: offset_of ! (ram_access_subscribe_interface , register_access_filter_cb) - 40usize] ; } ; pub type temporal_state_interface_t = temporal_state_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct temporal_state_interface { pub save : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t) -> * mut lang_void > , pub merge : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , prev : * mut lang_void , killed : * mut lang_void) > , pub prepare_restore : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t) > , pub finish_restore : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , state : * mut lang_void) > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of temporal_state_interface\"] [:: std :: mem :: size_of :: < temporal_state_interface > () - 32usize] ; [\"Alignment of temporal_state_interface\"] [:: std :: mem :: align_of :: < temporal_state_interface > () - 8usize] ; [\"Offset of field: temporal_state_interface::save\"] [:: std :: mem :: offset_of ! (temporal_state_interface , save) - 0usize] ; [\"Offset of field: temporal_state_interface::merge\"] [:: std :: mem :: offset_of ! (temporal_state_interface , merge) - 8usize] ; [\"Offset of field: temporal_state_interface::prepare_restore\"] [:: std :: mem :: offset_of ! (temporal_state_interface , prepare_restore) - 16usize] ; [\"Offset of field: temporal_state_interface::finish_restore\"] [:: std :: mem :: offset_of ! (temporal_state_interface , finish_restore) - 24usize] ; } ; pub type data_profiler_interface_t = data_profiler_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct data_profiler_interface { # [doc = \" computes the sum of all counters in an address range, from start to\\nend, inclusive. This function is deprecated; you should use the\\nfunctions of the address_profiler interface instead.\"] pub accum_in_range : :: std :: option :: Option < unsafe extern \"C\" fn (profiler : * mut conf_object_t , start : uint64 , end : uint64) -> uint64 > , # [doc = \" write the profiling data to a file\"] pub save : :: std :: option :: Option < unsafe extern \"C\" fn (profiler : * mut conf_object_t , file : * const :: std :: os :: raw :: c_char) > , # [doc = \" read profiling data from a file, and adds it to whatever data was\\nalready present in the profiler.\"] pub load : :: std :: option :: Option < unsafe extern \"C\" fn (profiler : * mut conf_object_t , file : * const :: std :: os :: raw :: c_char) > , # [doc = \" resets all counters in the profiler to zero.\"] pub clear : :: std :: option :: Option < unsafe extern \"C\" fn (profiler : * mut conf_object_t) > , # [doc = \" actually returns a prof_data_t*\"] pub get_prof_data : :: std :: option :: Option < unsafe extern \"C\" fn (profiler : * mut conf_object_t) -> * mut :: std :: os :: raw :: c_void > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of data_profiler_interface\"] [:: std :: mem :: size_of :: < data_profiler_interface > () - 40usize] ; [\"Alignment of data_profiler_interface\"] [:: std :: mem :: align_of :: < data_profiler_interface > () - 8usize] ; [\"Offset of field: data_profiler_interface::accum_in_range\"] [:: std :: mem :: offset_of ! (data_profiler_interface , accum_in_range) - 0usize] ; [\"Offset of field: data_profiler_interface::save\"] [:: std :: mem :: offset_of ! (data_profiler_interface , save) - 8usize] ; [\"Offset of field: data_profiler_interface::load\"] [:: std :: mem :: offset_of ! (data_profiler_interface , load) - 16usize] ; [\"Offset of field: data_profiler_interface::clear\"] [:: std :: mem :: offset_of ! (data_profiler_interface , clear) - 24usize] ; [\"Offset of field: data_profiler_interface::get_prof_data\"] [:: std :: mem :: offset_of ! (data_profiler_interface , get_prof_data) - 32usize] ; } ; # [repr (u32)] # [doc = \" not actually used - kept for source compatibility\"] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub enum state_save_kind_t { Sim_State_Default = 1 , } pub type save_state_interface_t = save_state_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct save_state_interface { # [doc = \" return the CVS version of the object\"] pub get_version : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object) -> :: std :: os :: raw :: c_int > , # [doc = \" return the size needed for the current state\"] pub get_size : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object , stype : state_save_kind_t) -> :: std :: os :: raw :: c_int > , # [doc = \" return the alignment needed for the structure\"] pub get_align : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object , stype : state_save_kind_t) -> :: std :: os :: raw :: c_int > , # [doc = \" save the state in dest. dest must contains enough space\\n(get_size with the same parameter should return the size needed)\"] pub save_state : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object , stype : state_save_kind_t , dest : * mut :: std :: os :: raw :: c_void) -> :: std :: os :: raw :: c_int > , # [doc = \" load the state from src\"] pub load_state : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object , stype : state_save_kind_t , src : * mut :: std :: os :: raw :: c_void) -> :: std :: os :: raw :: c_int > , # [doc = \" compare the state and return 0 if the same\"] pub compare_state : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object , stype : state_save_kind_t , src : * mut :: std :: os :: raw :: c_void) -> :: std :: os :: raw :: c_int > , # [doc = \" compare the state and return 0 if the same. print out\\nall/the difference according to flags\"] pub print_state : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object , stype : state_save_kind_t , src : * mut :: std :: os :: raw :: c_void , symnames : :: std :: os :: raw :: c_int , diff : :: std :: os :: raw :: c_int) -> :: std :: os :: raw :: c_int > , # [doc = \" host-endian functions (eventually faster, not mandatory)\"] pub save_state_he : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object , stype : state_save_kind_t , dest : * mut :: std :: os :: raw :: c_void) -> :: std :: os :: raw :: c_int > , pub load_state_he : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object , stype : state_save_kind_t , src : * mut :: std :: os :: raw :: c_void) -> :: std :: os :: raw :: c_int > , pub compare_state_he : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object , stype : state_save_kind_t , src : * mut :: std :: os :: raw :: c_void) -> :: std :: os :: raw :: c_int > , pub print_state_he : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object , stype : state_save_kind_t , src : * mut :: std :: os :: raw :: c_void , symnames : :: std :: os :: raw :: c_int , diff : :: std :: os :: raw :: c_int) -> :: std :: os :: raw :: c_int > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of save_state_interface\"] [:: std :: mem :: size_of :: < save_state_interface > () - 88usize] ; [\"Alignment of save_state_interface\"] [:: std :: mem :: align_of :: < save_state_interface > () - 8usize] ; [\"Offset of field: save_state_interface::get_version\"] [:: std :: mem :: offset_of ! (save_state_interface , get_version) - 0usize] ; [\"Offset of field: save_state_interface::get_size\"] [:: std :: mem :: offset_of ! (save_state_interface , get_size) - 8usize] ; [\"Offset of field: save_state_interface::get_align\"] [:: std :: mem :: offset_of ! (save_state_interface , get_align) - 16usize] ; [\"Offset of field: save_state_interface::save_state\"] [:: std :: mem :: offset_of ! (save_state_interface , save_state) - 24usize] ; [\"Offset of field: save_state_interface::load_state\"] [:: std :: mem :: offset_of ! (save_state_interface , load_state) - 32usize] ; [\"Offset of field: save_state_interface::compare_state\"] [:: std :: mem :: offset_of ! (save_state_interface , compare_state) - 40usize] ; [\"Offset of field: save_state_interface::print_state\"] [:: std :: mem :: offset_of ! (save_state_interface , print_state) - 48usize] ; [\"Offset of field: save_state_interface::save_state_he\"] [:: std :: mem :: offset_of ! (save_state_interface , save_state_he) - 56usize] ; [\"Offset of field: save_state_interface::load_state_he\"] [:: std :: mem :: offset_of ! (save_state_interface , load_state_he) - 64usize] ; [\"Offset of field: save_state_interface::compare_state_he\"] [:: std :: mem :: offset_of ! (save_state_interface , compare_state_he) - 72usize] ; [\"Offset of field: save_state_interface::print_state_he\"] [:: std :: mem :: offset_of ! (save_state_interface , print_state_he) - 80usize] ; } ; pub type vga_text_interface_t = vga_text_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct vga_text_interface { pub add_string_notification : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , substring : * mut :: std :: os :: raw :: c_char , sample_interval : f64) -> :: std :: os :: raw :: c_int > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of vga_text_interface\"] [:: std :: mem :: size_of :: < vga_text_interface > () - 8usize] ; [\"Alignment of vga_text_interface\"] [:: std :: mem :: align_of :: < vga_text_interface > () - 8usize] ; [\"Offset of field: vga_text_interface::add_string_notification\"] [:: std :: mem :: offset_of ! (vga_text_interface , add_string_notification) - 0usize] ; } ; pub type vga_text_info_interface_t = vga_text_info_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct vga_text_info_interface { pub text_mode : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t) -> bool > , pub font_size : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , width : * mut :: std :: os :: raw :: c_int , height : * mut :: std :: os :: raw :: c_int) -> bool > , pub screen_size : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , columns : * mut :: std :: os :: raw :: c_int , rows : * mut :: std :: os :: raw :: c_int) -> bool > , pub text : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , text : * mut uint8 , line_lengths : * mut uint8) -> bool > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of vga_text_info_interface\"] [:: std :: mem :: size_of :: < vga_text_info_interface > () - 32usize] ; [\"Alignment of vga_text_info_interface\"] [:: std :: mem :: align_of :: < vga_text_info_interface > () - 8usize] ; [\"Offset of field: vga_text_info_interface::text_mode\"] [:: std :: mem :: offset_of ! (vga_text_info_interface , text_mode) - 0usize] ; [\"Offset of field: vga_text_info_interface::font_size\"] [:: std :: mem :: offset_of ! (vga_text_info_interface , font_size) - 8usize] ; [\"Offset of field: vga_text_info_interface::screen_size\"] [:: std :: mem :: offset_of ! (vga_text_info_interface , screen_size) - 16usize] ; [\"Offset of field: vga_text_info_interface::text\"] [:: std :: mem :: offset_of ! (vga_text_info_interface , text) - 24usize] ; } ; pub type vga_text_update_interface_t = vga_text_update_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct vga_text_update_interface { pub write : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , value : :: std :: os :: raw :: c_char) > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of vga_text_update_interface\"] [:: std :: mem :: size_of :: < vga_text_update_interface > () - 8usize] ; [\"Alignment of vga_text_update_interface\"] [:: std :: mem :: align_of :: < vga_text_update_interface > () - 8usize] ; [\"Offset of field: vga_text_update_interface::write\"] [:: std :: mem :: offset_of ! (vga_text_update_interface , write) - 0usize] ; } ; # [repr (u32)] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub enum cache_control_operation_t { Cache_Control_Nop = 0 , Cache_Control_Fetch_Line = 1 , Cache_Control_Invalidate_Line = 2 , Cache_Control_Copyback_Line = 3 , Cache_Control_Invalidate_Cache = 4 , } pub type cache_control_interface_t = cache_control_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct cache_control_interface { # [doc = \" Returns the number of cycles until the operation is complete.\"] pub cache_control : :: std :: option :: Option < unsafe extern \"C\" fn (cache : * mut conf_object_t , op : cache_control_operation_t , mem_op : * mut generic_transaction_t) -> cycles_t > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of cache_control_interface\"] [:: std :: mem :: size_of :: < cache_control_interface > () - 8usize] ; [\"Alignment of cache_control_interface\"] [:: std :: mem :: align_of :: < cache_control_interface > () - 8usize] ; [\"Offset of field: cache_control_interface::cache_control\"] [:: std :: mem :: offset_of ! (cache_control_interface , cache_control) - 0usize] ; } ; pub type step_interface_t = step_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct step_interface { pub get_step_count : :: std :: option :: Option < unsafe extern \"C\" fn (queue : * mut conf_object_t) -> pc_step_t > , pub post_step : :: std :: option :: Option < unsafe extern \"C\" fn (queue : * mut conf_object_t , evclass : * mut event_class_t , obj : * mut conf_object_t , steps : pc_step_t , user_data : * mut lang_void) > , pub cancel_step : :: std :: option :: Option < unsafe extern \"C\" fn (queue : * mut conf_object_t , evclass : * mut event_class_t , obj : * mut conf_object_t , pred : :: std :: option :: Option < unsafe extern \"C\" fn (data : * mut lang_void , match_data : * mut lang_void) -> :: std :: os :: raw :: c_int > , match_data : * mut lang_void) > , pub find_next_step : :: std :: option :: Option < unsafe extern \"C\" fn (queue : * mut conf_object_t , evclass : * mut event_class_t , obj : * mut conf_object_t , pred : :: std :: option :: Option < unsafe extern \"C\" fn (data : * mut lang_void , match_data : * mut lang_void) -> :: std :: os :: raw :: c_int > , match_data : * mut lang_void) -> pc_step_t > , pub events : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t) -> attr_value_t > , pub advance : :: std :: option :: Option < unsafe extern \"C\" fn (queue : * mut conf_object_t , steps : pc_step_t) -> pc_step_t > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of step_interface\"] [:: std :: mem :: size_of :: < step_interface > () - 48usize] ; [\"Alignment of step_interface\"] [:: std :: mem :: align_of :: < step_interface > () - 8usize] ; [\"Offset of field: step_interface::get_step_count\"] [:: std :: mem :: offset_of ! (step_interface , get_step_count) - 0usize] ; [\"Offset of field: step_interface::post_step\"] [:: std :: mem :: offset_of ! (step_interface , post_step) - 8usize] ; [\"Offset of field: step_interface::cancel_step\"] [:: std :: mem :: offset_of ! (step_interface , cancel_step) - 16usize] ; [\"Offset of field: step_interface::find_next_step\"] [:: std :: mem :: offset_of ! (step_interface , find_next_step) - 24usize] ; [\"Offset of field: step_interface::events\"] [:: std :: mem :: offset_of ! (step_interface , events) - 32usize] ; [\"Offset of field: step_interface::advance\"] [:: std :: mem :: offset_of ! (step_interface , advance) - 40usize] ; } ; # [doc = \"<add id=\\\"step_cycle_ratio_interface_t\\\">\\n\\nThe <iface>step_cycle_ratio</iface> interface is implemented by\\nprocessors that support a changeable ratio between steps and\\ncycles. The <cmd>set-step-rate</cmd> command uses this interface to\\nset the ratio between steps and cycles.\\n\\nThe <fun>set_ratio</fun> sets the ratio between <arg>steps</arg> and\\n<arg>cycles</arg>. Note that the introduction of stall cycles can\\nskew the ratio. The <fun>get_ratio</fun> simply returns the current\\nratio.\\n\\nThe <arg>cycles</arg> and <arg>step</arg> arguments must be in the range\\n[1..128] and <arg>cycles</arg> must be a power of two. Implementers of this\\ninterface may choose to ignore other values of <arg>cycles</arg> and\\n<arg>step</arg> and may log an error.\\n\\n<insert-until text=\\\"// ADD INTERFACE step_cycle_ratio_interface_t\\\"/>\\n</add>\\n<add id=\\\"step_cycle_ratio_interface_exec_context\\\">\\nCell Context for all methods.\\n</add>\"] # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct step_cycle_ratio_t { pub steps : uint32 , pub cycles : uint32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of step_cycle_ratio_t\"] [:: std :: mem :: size_of :: < step_cycle_ratio_t > () - 8usize] ; [\"Alignment of step_cycle_ratio_t\"] [:: std :: mem :: align_of :: < step_cycle_ratio_t > () - 4usize] ; [\"Offset of field: step_cycle_ratio_t::steps\"] [:: std :: mem :: offset_of ! (step_cycle_ratio_t , steps) - 0usize] ; [\"Offset of field: step_cycle_ratio_t::cycles\"] [:: std :: mem :: offset_of ! (step_cycle_ratio_t , cycles) - 4usize] ; } ; pub type step_cycle_ratio_interface_t = step_cycle_ratio_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct step_cycle_ratio_interface { pub get_ratio : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t) -> step_cycle_ratio_t > , pub set_ratio : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , steps : uint32 , cycles : uint32) > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of step_cycle_ratio_interface\"] [:: std :: mem :: size_of :: < step_cycle_ratio_interface > () - 16usize] ; [\"Alignment of step_cycle_ratio_interface\"] [:: std :: mem :: align_of :: < step_cycle_ratio_interface > () - 8usize] ; [\"Offset of field: step_cycle_ratio_interface::get_ratio\"] [:: std :: mem :: offset_of ! (step_cycle_ratio_interface , get_ratio) - 0usize] ; [\"Offset of field: step_cycle_ratio_interface::set_ratio\"] [:: std :: mem :: offset_of ! (step_cycle_ratio_interface , set_ratio) - 8usize] ; } ; pub type stall_interface_t = stall_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct stall_interface { pub get_stall_cycles : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t) -> cycles_t > , pub set_stall_cycles : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , cycles : cycles_t) > , pub get_total_stall_cycles : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t) -> cycles_t > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of stall_interface\"] [:: std :: mem :: size_of :: < stall_interface > () - 24usize] ; [\"Alignment of stall_interface\"] [:: std :: mem :: align_of :: < stall_interface > () - 8usize] ; [\"Offset of field: stall_interface::get_stall_cycles\"] [:: std :: mem :: offset_of ! (stall_interface , get_stall_cycles) - 0usize] ; [\"Offset of field: stall_interface::set_stall_cycles\"] [:: std :: mem :: offset_of ! (stall_interface , set_stall_cycles) - 8usize] ; [\"Offset of field: stall_interface::get_total_stall_cycles\"] [:: std :: mem :: offset_of ! (stall_interface , get_total_stall_cycles) - 16usize] ; } ; pub type step_info_interface_t = step_info_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct step_info_interface { pub get_halt_steps : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t) -> pc_step_t > , pub set_halt_steps : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , steps : pc_step_t) > , pub get_ffwd_steps : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t) -> pc_step_t > , pub set_ffwd_steps : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , steps : pc_step_t) > , pub get_ma_steps : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t) -> pc_step_t > , pub set_ma_steps : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , steps : pc_step_t) > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of step_info_interface\"] [:: std :: mem :: size_of :: < step_info_interface > () - 48usize] ; [\"Alignment of step_info_interface\"] [:: std :: mem :: align_of :: < step_info_interface > () - 8usize] ; [\"Offset of field: step_info_interface::get_halt_steps\"] [:: std :: mem :: offset_of ! (step_info_interface , get_halt_steps) - 0usize] ; [\"Offset of field: step_info_interface::set_halt_steps\"] [:: std :: mem :: offset_of ! (step_info_interface , set_halt_steps) - 8usize] ; [\"Offset of field: step_info_interface::get_ffwd_steps\"] [:: std :: mem :: offset_of ! (step_info_interface , get_ffwd_steps) - 16usize] ; [\"Offset of field: step_info_interface::set_ffwd_steps\"] [:: std :: mem :: offset_of ! (step_info_interface , set_ffwd_steps) - 24usize] ; [\"Offset of field: step_info_interface::get_ma_steps\"] [:: std :: mem :: offset_of ! (step_info_interface , get_ma_steps) - 32usize] ; [\"Offset of field: step_info_interface::set_ma_steps\"] [:: std :: mem :: offset_of ! (step_info_interface , set_ma_steps) - 40usize] ; } ; # [repr (u32)] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub enum sim_key_t { SK_ILLEGAL = 0 , SK_ESC = 1 , SK_F1 = 2 , SK_F2 = 3 , SK_F3 = 4 , SK_F4 = 5 , SK_F5 = 6 , SK_F6 = 7 , SK_F7 = 8 , SK_F8 = 9 , SK_F9 = 10 , SK_F10 = 11 , SK_F11 = 12 , SK_F12 = 13 , SK_PRNT_SCRN = 14 , SK_SCROLL_LOCK = 15 , SK_NUM_LOCK = 16 , SK_CAPS_LOCK = 17 , SK_0 = 18 , SK_1 = 19 , SK_2 = 20 , SK_3 = 21 , SK_4 = 22 , SK_5 = 23 , SK_6 = 24 , SK_7 = 25 , SK_8 = 26 , SK_9 = 27 , SK_A = 28 , SK_B = 29 , SK_C = 30 , SK_D = 31 , SK_E = 32 , SK_F = 33 , SK_G = 34 , SK_H = 35 , SK_I = 36 , SK_J = 37 , SK_K = 38 , SK_L = 39 , SK_M = 40 , SK_N = 41 , SK_O = 42 , SK_P = 43 , SK_Q = 44 , SK_R = 45 , SK_S = 46 , SK_T = 47 , SK_U = 48 , SK_V = 49 , SK_W = 50 , SK_X = 51 , SK_Y = 52 , SK_Z = 53 , SK_APOSTROPHE = 54 , SK_COMMA = 55 , SK_PERIOD = 56 , SK_SEMICOLON = 57 , SK_EQUAL = 58 , SK_SLASH = 59 , SK_BACKSLASH = 60 , SK_SPACE = 61 , SK_LEFT_BRACKET = 62 , SK_RIGHT_BRACKET = 63 , SK_MINUS = 64 , SK_GRAVE = 65 , SK_TAB = 66 , SK_ENTER = 67 , SK_BACKSPACE = 68 , SK_CTRL_L = 69 , SK_CTRL_R = 70 , SK_SHIFT_L = 71 , SK_SHIFT_R = 72 , SK_ALT_L = 73 , SK_ALT_R = 74 , SK_GR_DIVIDE = 75 , SK_GR_MULTIPLY = 76 , SK_GR_MINUS = 77 , SK_GR_PLUS = 78 , SK_GR_ENTER = 79 , SK_GR_INSERT = 80 , SK_GR_HOME = 81 , SK_GR_PG_UP = 82 , SK_GR_DELETE = 83 , SK_GR_END = 84 , SK_GR_PG_DOWN = 85 , SK_GR_UP = 86 , SK_GR_DOWN = 87 , SK_GR_LEFT = 88 , SK_GR_RIGHT = 89 , SK_KP_HOME = 90 , SK_KP_UP = 91 , SK_KP_PG_UP = 92 , SK_KP_LEFT = 93 , SK_KP_CENTER = 94 , SK_KP_RIGHT = 95 , SK_KP_END = 96 , SK_KP_DOWN = 97 , SK_KP_PG_DOWN = 98 , SK_KP_INSERT = 99 , SK_KP_DELETE = 100 , SK_PAUSE = 101 , SK_LEFT_WIN = 102 , SK_RIGHT_WIN = 103 , SK_LIST_BIT = 104 , SK_KEYB = 105 , SK_BREAK = 106 , SK_SYSREQ = 107 , SK_SUN_STOP = 108 , SK_SUN_AGAIN = 109 , SK_SUN_PROPS = 110 , SK_SUN_UNDO = 111 , SK_SUN_FRONT = 112 , SK_SUN_COPY = 113 , SK_SUN_OPEN = 114 , SK_SUN_PASTE = 115 , SK_SUN_FIND = 116 , SK_SUN_CUT = 117 , SK_SUN_HELP = 118 , SK_SUN_COMPOSE = 119 , SK_SUN_META_L = 120 , SK_SUN_META_R = 121 , SK_SUN_POWER = 122 , SK_SUN_AUDIO_D = 123 , SK_SUN_AUDIO_U = 124 , SK_SUN_AUDIO_M = 125 , SK_SUN_EMPTY = 126 , } # [doc = \" <add id=\\\"service routine function\\\">\\n<insert-upto text=\\\";\\\"/><ndx>service_routine_t</ndx>\\n</add>\"] pub type service_routine_t = :: std :: option :: Option < unsafe extern \"C\" fn (cpu : * mut conf_object_t , arg : uint64 , user_data : * mut lang_void) -> exception_type_t > ; # [doc = \" <add id=\\\"instruction info\\\">\\n<insert-upto text=\\\"instruction_info_t;\\\"/>\\n<ndx>instruction_info_t</ndx>\\n\\n<var>ii_ServiceRoutine</var> is a pointer to a function that will\\nbe called by Simics every time the instruction is executed. It has\\nthe following prototype:\\n\\n<insert id=\\\"service routine function\\\"/>\\n\\nThe service routine function should return an exception when it is\\nfinished to signal its status. If no exception occurs\\n<const>Sim_PE_No_Exception</const> should be returned.\\n\\nSee <type>exception_type_t</type> in\\n<file>src/include/simics/base/memory.h</file> for the different\\nexceptions available.\\n\\nA special return value, <const>Sim_PE_Default_Semantics</const>, can be\\nreturned; this signals Simics to run the default semantics for the\\ninstruction. This is useful if the semantics of an instruction\\nshould be changed but the user routine does not want to handle it all\\nthe time.\\n\\nNote that in a shared memory multiprocessor, the CPU\\nused in decoding may differ from the CPU that executes the\\ninstruction, since the decoded instructions may be cached.\\n\\n<var>ii_Arg</var> is the argument <var>arg</var> that will be\\npassed on to the service routine function. Op code bit-fields for\\nthe instruction such as register numbers or intermediate values can\\nbe stored here. The <var>ii_UserData</var> field can also be used\\nto pass information to the service routine if more data is needed.\\n\\n<var>ii_Type</var> is either <pp>UD_IT_SEQUENTIAL</pp> or\\n<pp>UD_IT_CONTROL_FLOW</pp>.  A sequential type means that the\\ninstruction does not perform any branches and the update of the\\nprogram counter(s) is handled by Simics. In a control flow\\ninstruction on the other hand it is up to the user to set the\\nprogram counter(s).\\n\\n<var>ii_LogicalAddress</var> and <var>ii_PhysicalAddress</var>\\nholds the logical and physical addresses of the instruction to be\\ndecoded.\\n\\n</add>\"] # [repr (C)] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct instruction_info { pub ii_ServiceRoutine : service_routine_t , pub ii_Arg : uint64 , pub ii_Type : :: std :: os :: raw :: c_uint , pub ii_UserData : * mut lang_void , pub ii_LogicalAddress : logical_address_t , pub ii_PhysicalAddress : physical_address_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of instruction_info\"] [:: std :: mem :: size_of :: < instruction_info > () - 48usize] ; [\"Alignment of instruction_info\"] [:: std :: mem :: align_of :: < instruction_info > () - 8usize] ; [\"Offset of field: instruction_info::ii_ServiceRoutine\"] [:: std :: mem :: offset_of ! (instruction_info , ii_ServiceRoutine) - 0usize] ; [\"Offset of field: instruction_info::ii_Arg\"] [:: std :: mem :: offset_of ! (instruction_info , ii_Arg) - 8usize] ; [\"Offset of field: instruction_info::ii_Type\"] [:: std :: mem :: offset_of ! (instruction_info , ii_Type) - 16usize] ; [\"Offset of field: instruction_info::ii_UserData\"] [:: std :: mem :: offset_of ! (instruction_info , ii_UserData) - 24usize] ; [\"Offset of field: instruction_info::ii_LogicalAddress\"] [:: std :: mem :: offset_of ! (instruction_info , ii_LogicalAddress) - 32usize] ; [\"Offset of field: instruction_info::ii_PhysicalAddress\"] [:: std :: mem :: offset_of ! (instruction_info , ii_PhysicalAddress) - 40usize] ; } ; impl Default for instruction_info { fn default () -> Self { let mut s = :: std :: mem :: MaybeUninit :: < Self > :: uninit () ; unsafe { :: std :: ptr :: write_bytes (s . as_mut_ptr () , 0 , 1) ; s . assume_init () } } } # [doc = \" <add id=\\\"instruction info\\\">\\n<insert-upto text=\\\"instruction_info_t;\\\"/>\\n<ndx>instruction_info_t</ndx>\\n\\n<var>ii_ServiceRoutine</var> is a pointer to a function that will\\nbe called by Simics every time the instruction is executed. It has\\nthe following prototype:\\n\\n<insert id=\\\"service routine function\\\"/>\\n\\nThe service routine function should return an exception when it is\\nfinished to signal its status. If no exception occurs\\n<const>Sim_PE_No_Exception</const> should be returned.\\n\\nSee <type>exception_type_t</type> in\\n<file>src/include/simics/base/memory.h</file> for the different\\nexceptions available.\\n\\nA special return value, <const>Sim_PE_Default_Semantics</const>, can be\\nreturned; this signals Simics to run the default semantics for the\\ninstruction. This is useful if the semantics of an instruction\\nshould be changed but the user routine does not want to handle it all\\nthe time.\\n\\nNote that in a shared memory multiprocessor, the CPU\\nused in decoding may differ from the CPU that executes the\\ninstruction, since the decoded instructions may be cached.\\n\\n<var>ii_Arg</var> is the argument <var>arg</var> that will be\\npassed on to the service routine function. Op code bit-fields for\\nthe instruction such as register numbers or intermediate values can\\nbe stored here. The <var>ii_UserData</var> field can also be used\\nto pass information to the service routine if more data is needed.\\n\\n<var>ii_Type</var> is either <pp>UD_IT_SEQUENTIAL</pp> or\\n<pp>UD_IT_CONTROL_FLOW</pp>.  A sequential type means that the\\ninstruction does not perform any branches and the update of the\\nprogram counter(s) is handled by Simics. In a control flow\\ninstruction on the other hand it is up to the user to set the\\nprogram counter(s).\\n\\n<var>ii_LogicalAddress</var> and <var>ii_PhysicalAddress</var>\\nholds the logical and physical addresses of the instruction to be\\ndecoded.\\n\\n</add>\"] pub type instruction_info_t = instruction_info ; # [doc = \" <add id=\\\"user decoder\\\">\\n<insert-upto text=\\\"decoder_t;\\\"/>\\n<ndx>decoder_t</ndx>\\n\\nThe <fun>decode</fun> function is called to decode an instruction\\npointed to by <param>code</param>.  The first byte corresponds to\\nthe lowest address of the instruction in the simulated\\nmemory. <param>valid_bytes</param> tells how many bytes can be\\nread. The CPU is given in the <param>cpu</param> parameter.  When\\nthe decoder has successfully decoded an instruction, it should set\\nthe <var>ii_ServiceRoutine</var>, the <var>ii_Arg</var>, and the\\n<var>ii_Type</var> members of the <param>ii</param> structure (see\\nbelow), and returns the number of bytes used in the decoding.  If\\nit does not apply to the given instruction, it should return zero.\\nIf the decoder needs more data than <param>valid_bytes</param> it\\nshould return a negative number corresponding to the total number\\nof bytes it will need to continue the decoding. The underlying\\narchitecture limits the number of bytes that can be requested,\\ne.g. no more than 4 bytes can be requested on most RISC\\narchitectures. Simics will call the decoder again when more bytes\\nare available. This process is repeated until the decoder accepts\\nor rejects the instruction.  A decoder should never request more\\ndata than it needs. For example, if an instructions can be rejected\\nby looking at the first byte, the decoder should never ask for more\\nbytes.\\n\\nThe <type>instruction_info_t</type> is defined as follows:\\n\\n<insert id=\\\"instruction info\\\"/>\\n\\nThe <fun>disassemble</fun> function is called to disassemble an\\ninstruction.  It uses the same <param>code</param>,\\n<param>valid_bytes</param>, and <param>cpu</param> parameters as\\nthe <fun>decode</fun> function. If the disassembly is valid, then\\nthe string part of the returned <tt>tuple_int_string_t</tt> struct\\nshould be a MALLOCed string with the disassembly and the integer\\npart should be its length in bytes.  The caller is responsible for\\nfreeing the disassembly string. The string member should be NULL\\nand the integer part should be zero if the disassembly is not\\nvalid.  If the disassemble function needs more data than\\n<param>valid_bytes</param> it should return a negative number in\\nthe integer part in the same way as the <fun>decode</fun> function,\\nand set the string part to NULL.\\n\\nThe <fun>flush</fun> function is called to free any memory\\nallocated when decoding an instruction and any user data associated\\nwith the instruction.  It should return zero if it does not\\nrecognize the instruction, and non-zero if it has accepted it.\\nUsually, the way to recognize if a decoded instruction is the right\\none to flush is to compare <tt>ii->ii_ServiceRoutine</tt> with the\\nfunction that was set in the <param>decode</param> function. Note\\nthat the <param>cpu</param> parameter is the processor that caused\\nthe flush. It is more or less an arbitrary processor and should be\\nignored.\\n\\nIn addition to the function pointers, the\\n<type>decoder_t</type> structure contains a\\n<var>user_data</var> pointer that is passed to all the\\nfunctions.  This can be used for passing any data to the decoder\\nfunctions.\\n\\n</add>\"] # [repr (C)] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct decoder_t { pub user_data : * mut :: std :: os :: raw :: c_void , pub decode : :: std :: option :: Option < unsafe extern \"C\" fn (code : * mut uint8 , valid_bytes : :: std :: os :: raw :: c_int , cpu : * mut conf_object_t , ii : * mut instruction_info_t , user_data : * mut :: std :: os :: raw :: c_void) -> :: std :: os :: raw :: c_int > , pub disassemble : :: std :: option :: Option < unsafe extern \"C\" fn (code : * mut uint8 , valid_bytes : :: std :: os :: raw :: c_int , cpu : * mut conf_object_t , user_data : * mut :: std :: os :: raw :: c_void) -> tuple_int_string_t > , pub flush : :: std :: option :: Option < unsafe extern \"C\" fn (ii : * mut instruction_info_t , user_data : * mut :: std :: os :: raw :: c_void) -> :: std :: os :: raw :: c_int > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of decoder_t\"] [:: std :: mem :: size_of :: < decoder_t > () - 32usize] ; [\"Alignment of decoder_t\"] [:: std :: mem :: align_of :: < decoder_t > () - 8usize] ; [\"Offset of field: decoder_t::user_data\"] [:: std :: mem :: offset_of ! (decoder_t , user_data) - 0usize] ; [\"Offset of field: decoder_t::decode\"] [:: std :: mem :: offset_of ! (decoder_t , decode) - 8usize] ; [\"Offset of field: decoder_t::disassemble\"] [:: std :: mem :: offset_of ! (decoder_t , disassemble) - 16usize] ; [\"Offset of field: decoder_t::flush\"] [:: std :: mem :: offset_of ! (decoder_t , flush) - 24usize] ; } ; impl Default for decoder_t { fn default () -> Self { let mut s = :: std :: mem :: MaybeUninit :: < Self > :: uninit () ; unsafe { :: std :: ptr :: write_bytes (s . as_mut_ptr () , 0 , 1) ; s . assume_init () } } } pub type decoder_interface_t = decoder_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct decoder_interface { pub register_decoder : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , decoder : * mut decoder_t) > , pub unregister_decoder : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , decoder : * mut decoder_t) > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of decoder_interface\"] [:: std :: mem :: size_of :: < decoder_interface > () - 16usize] ; [\"Alignment of decoder_interface\"] [:: std :: mem :: align_of :: < decoder_interface > () - 8usize] ; [\"Offset of field: decoder_interface::register_decoder\"] [:: std :: mem :: offset_of ! (decoder_interface , register_decoder) - 0usize] ; [\"Offset of field: decoder_interface::unregister_decoder\"] [:: std :: mem :: offset_of ! (decoder_interface , unregister_decoder) - 8usize] ; } ; pub type timing_model_interface_t = timing_model_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct timing_model_interface { pub operate : :: std :: option :: Option < unsafe extern \"C\" fn (mem_hier : * mut conf_object_t , space : * mut conf_object_t , map_list : * mut map_list_t , mem_op : * mut generic_transaction_t) -> cycles_t > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of timing_model_interface\"] [:: std :: mem :: size_of :: < timing_model_interface > () - 8usize] ; [\"Alignment of timing_model_interface\"] [:: std :: mem :: align_of :: < timing_model_interface > () - 8usize] ; [\"Offset of field: timing_model_interface::operate\"] [:: std :: mem :: offset_of ! (timing_model_interface , operate) - 0usize] ; } ; pub type snoop_memory_interface_t = snoop_memory_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct snoop_memory_interface { pub operate : :: std :: option :: Option < unsafe extern \"C\" fn (mem_hier : * mut conf_object_t , space : * mut conf_object_t , map_list : * mut map_list_t , mem_op : * mut generic_transaction_t) -> cycles_t > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of snoop_memory_interface\"] [:: std :: mem :: size_of :: < snoop_memory_interface > () - 8usize] ; [\"Alignment of snoop_memory_interface\"] [:: std :: mem :: align_of :: < snoop_memory_interface > () - 8usize] ; [\"Offset of field: snoop_memory_interface::operate\"] [:: std :: mem :: offset_of ! (snoop_memory_interface , operate) - 0usize] ; } ; pub type simulator_cache_interface_t = simulator_cache_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct simulator_cache_interface { pub flush : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t) > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of simulator_cache_interface\"] [:: std :: mem :: size_of :: < simulator_cache_interface > () - 8usize] ; [\"Alignment of simulator_cache_interface\"] [:: std :: mem :: align_of :: < simulator_cache_interface > () - 8usize] ; [\"Offset of field: simulator_cache_interface::flush\"] [:: std :: mem :: offset_of ! (simulator_cache_interface , flush) - 0usize] ; } ; pub type execute_interface_t = execute_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct execute_interface { pub run : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t) > , pub stop : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t) > , pub switch_in : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t) > , pub switch_out : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t) > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of execute_interface\"] [:: std :: mem :: size_of :: < execute_interface > () - 32usize] ; [\"Alignment of execute_interface\"] [:: std :: mem :: align_of :: < execute_interface > () - 8usize] ; [\"Offset of field: execute_interface::run\"] [:: std :: mem :: offset_of ! (execute_interface , run) - 0usize] ; [\"Offset of field: execute_interface::stop\"] [:: std :: mem :: offset_of ! (execute_interface , stop) - 8usize] ; [\"Offset of field: execute_interface::switch_in\"] [:: std :: mem :: offset_of ! (execute_interface , switch_in) - 16usize] ; [\"Offset of field: execute_interface::switch_out\"] [:: std :: mem :: offset_of ! (execute_interface , switch_out) - 24usize] ; } ; pub type cell_inspection_interface_t = cell_inspection_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct cell_inspection_interface { pub set_current_processor_obj : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , cpu_obj : * mut conf_object_t) > , pub set_current_step_obj : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , step_obj : * mut conf_object_t) > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of cell_inspection_interface\"] [:: std :: mem :: size_of :: < cell_inspection_interface > () - 16usize] ; [\"Alignment of cell_inspection_interface\"] [:: std :: mem :: align_of :: < cell_inspection_interface > () - 8usize] ; [\"Offset of field: cell_inspection_interface::set_current_processor_obj\"] [:: std :: mem :: offset_of ! (cell_inspection_interface , set_current_processor_obj) - 0usize] ; [\"Offset of field: cell_inspection_interface::set_current_step_obj\"] [:: std :: mem :: offset_of ! (cell_inspection_interface , set_current_step_obj) - 8usize] ; } ; pub type execute_control_interface_t = execute_control_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct execute_control_interface { pub message_pending : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t) > , pub yield_request : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t) > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of execute_control_interface\"] [:: std :: mem :: size_of :: < execute_control_interface > () - 16usize] ; [\"Alignment of execute_control_interface\"] [:: std :: mem :: align_of :: < execute_control_interface > () - 8usize] ; [\"Offset of field: execute_control_interface::message_pending\"] [:: std :: mem :: offset_of ! (execute_control_interface , message_pending) - 0usize] ; [\"Offset of field: execute_control_interface::yield_request\"] [:: std :: mem :: offset_of ! (execute_control_interface , yield_request) - 8usize] ; } ; pub type uint64_state_interface_t = uint64_state_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct uint64_state_interface { pub set : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , level : uint64) > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of uint64_state_interface\"] [:: std :: mem :: size_of :: < uint64_state_interface > () - 8usize] ; [\"Alignment of uint64_state_interface\"] [:: std :: mem :: align_of :: < uint64_state_interface > () - 8usize] ; [\"Offset of field: uint64_state_interface::set\"] [:: std :: mem :: offset_of ! (uint64_state_interface , set) - 0usize] ; } ; pub type processor_info_interface_t = processor_info_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct processor_info_interface { pub disassemble : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , address : generic_address_t , instruction_data : attr_value_t , sub_operation : :: std :: os :: raw :: c_int) -> tuple_int_string_t > , pub set_program_counter : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , pc : logical_address_t) > , pub get_program_counter : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t) -> logical_address_t > , pub logical_to_physical : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , address : logical_address_t , access_type : access_t) -> physical_block_t > , pub enable_processor : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t) -> :: std :: os :: raw :: c_int > , pub disable_processor : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t) -> :: std :: os :: raw :: c_int > , pub get_enabled : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t) -> :: std :: os :: raw :: c_int > , pub get_endian : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t) -> cpu_endian_t > , pub get_physical_memory : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t) -> * mut conf_object_t > , pub get_logical_address_width : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t) -> :: std :: os :: raw :: c_int > , pub get_physical_address_width : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t) -> :: std :: os :: raw :: c_int > , pub architecture : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t) -> * const :: std :: os :: raw :: c_char > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of processor_info_interface\"] [:: std :: mem :: size_of :: < processor_info_interface > () - 96usize] ; [\"Alignment of processor_info_interface\"] [:: std :: mem :: align_of :: < processor_info_interface > () - 8usize] ; [\"Offset of field: processor_info_interface::disassemble\"] [:: std :: mem :: offset_of ! (processor_info_interface , disassemble) - 0usize] ; [\"Offset of field: processor_info_interface::set_program_counter\"] [:: std :: mem :: offset_of ! (processor_info_interface , set_program_counter) - 8usize] ; [\"Offset of field: processor_info_interface::get_program_counter\"] [:: std :: mem :: offset_of ! (processor_info_interface , get_program_counter) - 16usize] ; [\"Offset of field: processor_info_interface::logical_to_physical\"] [:: std :: mem :: offset_of ! (processor_info_interface , logical_to_physical) - 24usize] ; [\"Offset of field: processor_info_interface::enable_processor\"] [:: std :: mem :: offset_of ! (processor_info_interface , enable_processor) - 32usize] ; [\"Offset of field: processor_info_interface::disable_processor\"] [:: std :: mem :: offset_of ! (processor_info_interface , disable_processor) - 40usize] ; [\"Offset of field: processor_info_interface::get_enabled\"] [:: std :: mem :: offset_of ! (processor_info_interface , get_enabled) - 48usize] ; [\"Offset of field: processor_info_interface::get_endian\"] [:: std :: mem :: offset_of ! (processor_info_interface , get_endian) - 56usize] ; [\"Offset of field: processor_info_interface::get_physical_memory\"] [:: std :: mem :: offset_of ! (processor_info_interface , get_physical_memory) - 64usize] ; [\"Offset of field: processor_info_interface::get_logical_address_width\"] [:: std :: mem :: offset_of ! (processor_info_interface , get_logical_address_width) - 72usize] ; [\"Offset of field: processor_info_interface::get_physical_address_width\"] [:: std :: mem :: offset_of ! (processor_info_interface , get_physical_address_width) - 80usize] ; [\"Offset of field: processor_info_interface::architecture\"] [:: std :: mem :: offset_of ! (processor_info_interface , architecture) - 88usize] ; } ; pub type processor_info_v2_interface_t = processor_info_v2_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct processor_info_v2_interface { pub disassemble : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , address : generic_address_t , instruction_data : attr_value_t , sub_operation : :: std :: os :: raw :: c_int) -> tuple_int_string_t > , pub set_program_counter : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , pc : logical_address_t) > , pub get_program_counter : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t) -> logical_address_t > , pub logical_to_physical : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , address : logical_address_t , access_type : access_t) -> physical_block_t > , pub get_processor_mode : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t) -> processor_mode_t > , pub enable_processor : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t) -> :: std :: os :: raw :: c_int > , pub disable_processor : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t) -> :: std :: os :: raw :: c_int > , pub get_enabled : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t) -> :: std :: os :: raw :: c_int > , pub get_endian : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t) -> cpu_endian_t > , pub get_physical_memory : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t) -> * mut conf_object_t > , pub get_logical_address_width : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t) -> :: std :: os :: raw :: c_int > , pub get_physical_address_width : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t) -> :: std :: os :: raw :: c_int > , pub architecture : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t) -> * const :: std :: os :: raw :: c_char > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of processor_info_v2_interface\"] [:: std :: mem :: size_of :: < processor_info_v2_interface > () - 104usize] ; [\"Alignment of processor_info_v2_interface\"] [:: std :: mem :: align_of :: < processor_info_v2_interface > () - 8usize] ; [\"Offset of field: processor_info_v2_interface::disassemble\"] [:: std :: mem :: offset_of ! (processor_info_v2_interface , disassemble) - 0usize] ; [\"Offset of field: processor_info_v2_interface::set_program_counter\"] [:: std :: mem :: offset_of ! (processor_info_v2_interface , set_program_counter) - 8usize] ; [\"Offset of field: processor_info_v2_interface::get_program_counter\"] [:: std :: mem :: offset_of ! (processor_info_v2_interface , get_program_counter) - 16usize] ; [\"Offset of field: processor_info_v2_interface::logical_to_physical\"] [:: std :: mem :: offset_of ! (processor_info_v2_interface , logical_to_physical) - 24usize] ; [\"Offset of field: processor_info_v2_interface::get_processor_mode\"] [:: std :: mem :: offset_of ! (processor_info_v2_interface , get_processor_mode) - 32usize] ; [\"Offset of field: processor_info_v2_interface::enable_processor\"] [:: std :: mem :: offset_of ! (processor_info_v2_interface , enable_processor) - 40usize] ; [\"Offset of field: processor_info_v2_interface::disable_processor\"] [:: std :: mem :: offset_of ! (processor_info_v2_interface , disable_processor) - 48usize] ; [\"Offset of field: processor_info_v2_interface::get_enabled\"] [:: std :: mem :: offset_of ! (processor_info_v2_interface , get_enabled) - 56usize] ; [\"Offset of field: processor_info_v2_interface::get_endian\"] [:: std :: mem :: offset_of ! (processor_info_v2_interface , get_endian) - 64usize] ; [\"Offset of field: processor_info_v2_interface::get_physical_memory\"] [:: std :: mem :: offset_of ! (processor_info_v2_interface , get_physical_memory) - 72usize] ; [\"Offset of field: processor_info_v2_interface::get_logical_address_width\"] [:: std :: mem :: offset_of ! (processor_info_v2_interface , get_logical_address_width) - 80usize] ; [\"Offset of field: processor_info_v2_interface::get_physical_address_width\"] [:: std :: mem :: offset_of ! (processor_info_v2_interface , get_physical_address_width) - 88usize] ; [\"Offset of field: processor_info_v2_interface::architecture\"] [:: std :: mem :: offset_of ! (processor_info_v2_interface , architecture) - 96usize] ; } ; pub type processor_endian_interface_t = processor_endian_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct processor_endian_interface { pub get_instruction_endian : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t) -> cpu_endian_t > , pub get_data_endian : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t) -> cpu_endian_t > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of processor_endian_interface\"] [:: std :: mem :: size_of :: < processor_endian_interface > () - 16usize] ; [\"Alignment of processor_endian_interface\"] [:: std :: mem :: align_of :: < processor_endian_interface > () - 8usize] ; [\"Offset of field: processor_endian_interface::get_instruction_endian\"] [:: std :: mem :: offset_of ! (processor_endian_interface , get_instruction_endian) - 0usize] ; [\"Offset of field: processor_endian_interface::get_data_endian\"] [:: std :: mem :: offset_of ! (processor_endian_interface , get_data_endian) - 8usize] ; } ; pub type processor_cli_interface_t = processor_cli_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct processor_cli_interface { pub get_disassembly : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , addr_prefix : * const :: std :: os :: raw :: c_char , address : generic_address_t , print_cpu : bool , mnemonic : * const :: std :: os :: raw :: c_char) -> tuple_int_string_t > , pub get_pregs : :: std :: option :: Option < unsafe extern \"C\" fn (cpu : * mut conf_object_t , all : bool) -> * mut :: std :: os :: raw :: c_char > , pub get_diff_regs : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t) -> attr_value_t > , pub get_pending_exception_string : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t) -> * mut :: std :: os :: raw :: c_char > , pub get_address_prefix : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t) -> * mut :: std :: os :: raw :: c_char > , pub translate_to_physical : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , prefix : * const :: std :: os :: raw :: c_char , address : generic_address_t) -> physical_block_t > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of processor_cli_interface\"] [:: std :: mem :: size_of :: < processor_cli_interface > () - 48usize] ; [\"Alignment of processor_cli_interface\"] [:: std :: mem :: align_of :: < processor_cli_interface > () - 8usize] ; [\"Offset of field: processor_cli_interface::get_disassembly\"] [:: std :: mem :: offset_of ! (processor_cli_interface , get_disassembly) - 0usize] ; [\"Offset of field: processor_cli_interface::get_pregs\"] [:: std :: mem :: offset_of ! (processor_cli_interface , get_pregs) - 8usize] ; [\"Offset of field: processor_cli_interface::get_diff_regs\"] [:: std :: mem :: offset_of ! (processor_cli_interface , get_diff_regs) - 16usize] ; [\"Offset of field: processor_cli_interface::get_pending_exception_string\"] [:: std :: mem :: offset_of ! (processor_cli_interface , get_pending_exception_string) - 24usize] ; [\"Offset of field: processor_cli_interface::get_address_prefix\"] [:: std :: mem :: offset_of ! (processor_cli_interface , get_address_prefix) - 32usize] ; [\"Offset of field: processor_cli_interface::translate_to_physical\"] [:: std :: mem :: offset_of ! (processor_cli_interface , translate_to_physical) - 40usize] ; } ; # [doc = \"<add id=\\\"opcode_info_interface_t\\\">\\n\\nThe <iface>opcode_info</iface> interface is implemented by\\nprocessors that need to communicate information about the encoding\\nof instructions to the GUI.\\n\\nThe <fun>get_opcode_length</fun> function returns information about\\ninstruction encoding in the current operating mode of the\\nprocessor. The <fun>min_alignment</fun> field indicates the\\nsmallest allowed alignment of instructions, typically 4 for regular\\nRISC architectures. The <fun>max_length</fun> field specifies the\\nmaximum instruction length in bytes. The <fun>avg_length</fun> is\\nan approximation of the average instruction size.\\n\\n<insert-until text=\\\"// ADD INTERFACE opcode_info_interface_t\\\"/>\\n</add>\\n<add id=\\\"opcode_info_interface_exec_context\\\">\\nCell Context for all methods.\\n</add>\"] # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct opcode_length_info_t { pub min_alignment : :: std :: os :: raw :: c_int , pub max_length : :: std :: os :: raw :: c_int , pub avg_length : :: std :: os :: raw :: c_int , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of opcode_length_info_t\"] [:: std :: mem :: size_of :: < opcode_length_info_t > () - 12usize] ; [\"Alignment of opcode_length_info_t\"] [:: std :: mem :: align_of :: < opcode_length_info_t > () - 4usize] ; [\"Offset of field: opcode_length_info_t::min_alignment\"] [:: std :: mem :: offset_of ! (opcode_length_info_t , min_alignment) - 0usize] ; [\"Offset of field: opcode_length_info_t::max_length\"] [:: std :: mem :: offset_of ! (opcode_length_info_t , max_length) - 4usize] ; [\"Offset of field: opcode_length_info_t::avg_length\"] [:: std :: mem :: offset_of ! (opcode_length_info_t , avg_length) - 8usize] ; } ; pub type opcode_info_interface_t = opcode_info_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct opcode_info_interface { pub get_opcode_length_info : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t) -> opcode_length_info_t > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of opcode_info_interface\"] [:: std :: mem :: size_of :: < opcode_info_interface > () - 8usize] ; [\"Alignment of opcode_info_interface\"] [:: std :: mem :: align_of :: < opcode_info_interface > () - 8usize] ; [\"Offset of field: opcode_info_interface::get_opcode_length_info\"] [:: std :: mem :: offset_of ! (opcode_info_interface , get_opcode_length_info) - 0usize] ; } ; pub type processor_gui_interface_t = processor_gui_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct processor_gui_interface { pub dummy : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t) > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of processor_gui_interface\"] [:: std :: mem :: size_of :: < processor_gui_interface > () - 8usize] ; [\"Alignment of processor_gui_interface\"] [:: std :: mem :: align_of :: < processor_gui_interface > () - 8usize] ; [\"Offset of field: processor_gui_interface::dummy\"] [:: std :: mem :: offset_of ! (processor_gui_interface , dummy) - 0usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct image_spage { _unused : [u8 ; 0] , } # [doc = \" <add-type id=\\\"image_spage_t def\\\"></add-type>\"] pub type image_spage_t = image_spage ; pub type image_interface_t = image_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct image_interface { pub read : :: std :: option :: Option < unsafe extern \"C\" fn (img : * mut conf_object_t , to_buf : * mut :: std :: os :: raw :: c_void , start : uint64 , length : usize) > , pub write : :: std :: option :: Option < unsafe extern \"C\" fn (img : * mut conf_object_t , from_buf : * const :: std :: os :: raw :: c_void , start : uint64 , length : usize) > , pub for_all_spages : :: std :: option :: Option < unsafe extern \"C\" fn (img : * mut conf_object_t , f : :: std :: option :: Option < unsafe extern \"C\" fn (p : * mut image_spage_t , ofs : uint64 , arg : * mut :: std :: os :: raw :: c_void) -> :: std :: os :: raw :: c_int > , arg : * mut :: std :: os :: raw :: c_void) -> :: std :: os :: raw :: c_int > , pub set_persistent : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t) > , pub save_to_file : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , file : * const :: std :: os :: raw :: c_char , start : uint64 , length : uint64) > , pub save_diff : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , file : * const :: std :: os :: raw :: c_char) > , pub clear_range : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , start : uint64 , length : uint64) > , pub fill : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , start : uint64 , length : uint64 , value : uint8) > , pub size : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t) -> uint64 > , pub set : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , ofs : uint64 , b : bytes_t) > , pub get : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , ofs : uint64 , size : usize) -> bytes_t > , pub flush_writable : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t) > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of image_interface\"] [:: std :: mem :: size_of :: < image_interface > () - 96usize] ; [\"Alignment of image_interface\"] [:: std :: mem :: align_of :: < image_interface > () - 8usize] ; [\"Offset of field: image_interface::read\"] [:: std :: mem :: offset_of ! (image_interface , read) - 0usize] ; [\"Offset of field: image_interface::write\"] [:: std :: mem :: offset_of ! (image_interface , write) - 8usize] ; [\"Offset of field: image_interface::for_all_spages\"] [:: std :: mem :: offset_of ! (image_interface , for_all_spages) - 16usize] ; [\"Offset of field: image_interface::set_persistent\"] [:: std :: mem :: offset_of ! (image_interface , set_persistent) - 24usize] ; [\"Offset of field: image_interface::save_to_file\"] [:: std :: mem :: offset_of ! (image_interface , save_to_file) - 32usize] ; [\"Offset of field: image_interface::save_diff\"] [:: std :: mem :: offset_of ! (image_interface , save_diff) - 40usize] ; [\"Offset of field: image_interface::clear_range\"] [:: std :: mem :: offset_of ! (image_interface , clear_range) - 48usize] ; [\"Offset of field: image_interface::fill\"] [:: std :: mem :: offset_of ! (image_interface , fill) - 56usize] ; [\"Offset of field: image_interface::size\"] [:: std :: mem :: offset_of ! (image_interface , size) - 64usize] ; [\"Offset of field: image_interface::set\"] [:: std :: mem :: offset_of ! (image_interface , set) - 72usize] ; [\"Offset of field: image_interface::get\"] [:: std :: mem :: offset_of ! (image_interface , get) - 80usize] ; [\"Offset of field: image_interface::flush_writable\"] [:: std :: mem :: offset_of ! (image_interface , flush_writable) - 88usize] ; } ; pub type linear_image_interface_t = linear_image_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct linear_image_interface { pub get_base : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , retsize : * mut usize) -> * mut uint8 > , pub set_base : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , base : * mut uint8) > , pub prepare_range : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , type_ : read_or_write_t , offs : usize , size : usize) > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of linear_image_interface\"] [:: std :: mem :: size_of :: < linear_image_interface > () - 24usize] ; [\"Alignment of linear_image_interface\"] [:: std :: mem :: align_of :: < linear_image_interface > () - 8usize] ; [\"Offset of field: linear_image_interface::get_base\"] [:: std :: mem :: offset_of ! (linear_image_interface , get_base) - 0usize] ; [\"Offset of field: linear_image_interface::set_base\"] [:: std :: mem :: offset_of ! (linear_image_interface , set_base) - 8usize] ; [\"Offset of field: linear_image_interface::prepare_range\"] [:: std :: mem :: offset_of ! (linear_image_interface , prepare_range) - 16usize] ; } ; pub type image_snoop_interface_t = image_snoop_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct image_snoop_interface { pub page_modified : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , img : * mut conf_object_t , offset : uint64 , page_data : * mut uint8 , spage : * mut image_spage_t) > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of image_snoop_interface\"] [:: std :: mem :: size_of :: < image_snoop_interface > () - 8usize] ; [\"Alignment of image_snoop_interface\"] [:: std :: mem :: align_of :: < image_snoop_interface > () - 8usize] ; [\"Offset of field: image_snoop_interface::page_modified\"] [:: std :: mem :: offset_of ! (image_snoop_interface , page_modified) - 0usize] ; } ; pub type pool_protect_interface_t = pool_protect_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct pool_protect_interface { pub create_group : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , image_obj : * mut conf_object_t) -> :: std :: os :: raw :: c_int > , pub protect : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , id : :: std :: os :: raw :: c_int) > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of pool_protect_interface\"] [:: std :: mem :: size_of :: < pool_protect_interface > () - 16usize] ; [\"Alignment of pool_protect_interface\"] [:: std :: mem :: align_of :: < pool_protect_interface > () - 8usize] ; [\"Offset of field: pool_protect_interface::create_group\"] [:: std :: mem :: offset_of ! (pool_protect_interface , create_group) - 0usize] ; [\"Offset of field: pool_protect_interface::protect\"] [:: std :: mem :: offset_of ! (pool_protect_interface , protect) - 8usize] ; } ; pub type direct_memory_interface_t = direct_memory_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct direct_memory_interface { pub get_handle : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , requester : * mut conf_object_t , subsystem : uint64 , offs : uint64 , size : :: std :: os :: raw :: c_uint) -> direct_memory_handle_t > , pub request : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , handle : direct_memory_handle_t , permission : access_t , inhibit : access_t) -> direct_memory_t > , pub revoke : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , access : access_t , permission : access_t , inhibit : access_t) > , pub get_user_data : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , handle : direct_memory_handle_t) -> * mut :: std :: os :: raw :: c_void > , pub set_user_data : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , handle : direct_memory_handle_t , user_data : * mut :: std :: os :: raw :: c_void) > , pub release : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , handle : direct_memory_handle_t) > , pub ack : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , id : direct_memory_ack_id_t) > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of direct_memory_interface\"] [:: std :: mem :: size_of :: < direct_memory_interface > () - 56usize] ; [\"Alignment of direct_memory_interface\"] [:: std :: mem :: align_of :: < direct_memory_interface > () - 8usize] ; [\"Offset of field: direct_memory_interface::get_handle\"] [:: std :: mem :: offset_of ! (direct_memory_interface , get_handle) - 0usize] ; [\"Offset of field: direct_memory_interface::request\"] [:: std :: mem :: offset_of ! (direct_memory_interface , request) - 8usize] ; [\"Offset of field: direct_memory_interface::revoke\"] [:: std :: mem :: offset_of ! (direct_memory_interface , revoke) - 16usize] ; [\"Offset of field: direct_memory_interface::get_user_data\"] [:: std :: mem :: offset_of ! (direct_memory_interface , get_user_data) - 24usize] ; [\"Offset of field: direct_memory_interface::set_user_data\"] [:: std :: mem :: offset_of ! (direct_memory_interface , set_user_data) - 32usize] ; [\"Offset of field: direct_memory_interface::release\"] [:: std :: mem :: offset_of ! (direct_memory_interface , release) - 40usize] ; [\"Offset of field: direct_memory_interface::ack\"] [:: std :: mem :: offset_of ! (direct_memory_interface , ack) - 48usize] ; } ; pub type direct_memory_lookup_interface_t = direct_memory_lookup_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct direct_memory_lookup_interface { pub lookup : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , requester : * mut conf_object_t , addr : physical_address_t , size : :: std :: os :: raw :: c_uint , access : access_t) -> direct_memory_lookup_t > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of direct_memory_lookup_interface\"] [:: std :: mem :: size_of :: < direct_memory_lookup_interface > () - 8usize] ; [\"Alignment of direct_memory_lookup_interface\"] [:: std :: mem :: align_of :: < direct_memory_lookup_interface > () - 8usize] ; [\"Offset of field: direct_memory_lookup_interface::lookup\"] [:: std :: mem :: offset_of ! (direct_memory_lookup_interface , lookup) - 0usize] ; } ; pub type direct_memory_lookup_v2_interface_t = direct_memory_lookup_v2_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct direct_memory_lookup_v2_interface { pub lookup : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , transaction : * mut transaction_t , addr : physical_address_t , access : access_t) -> direct_memory_lookup_t > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of direct_memory_lookup_v2_interface\"] [:: std :: mem :: size_of :: < direct_memory_lookup_v2_interface > () - 8usize] ; [\"Alignment of direct_memory_lookup_v2_interface\"] [:: std :: mem :: align_of :: < direct_memory_lookup_v2_interface > () - 8usize] ; [\"Offset of field: direct_memory_lookup_v2_interface::lookup\"] [:: std :: mem :: offset_of ! (direct_memory_lookup_v2_interface , lookup) - 0usize] ; } ; pub type direct_memory_update_interface_t = direct_memory_update_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct direct_memory_update_interface { pub release : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , target : * mut conf_object_t , handle : direct_memory_handle_t , id : direct_memory_ack_id_t) > , pub update_permission : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , target : * mut conf_object_t , handle : direct_memory_handle_t , lost_access : access_t , lost_permission : access_t , lost_inhibit : access_t , id : direct_memory_ack_id_t) > , pub conflicting_access : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , target : * mut conf_object_t , handle : direct_memory_handle_t , conflicting_permission : access_t , id : direct_memory_ack_id_t) > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of direct_memory_update_interface\"] [:: std :: mem :: size_of :: < direct_memory_update_interface > () - 24usize] ; [\"Alignment of direct_memory_update_interface\"] [:: std :: mem :: align_of :: < direct_memory_update_interface > () - 8usize] ; [\"Offset of field: direct_memory_update_interface::release\"] [:: std :: mem :: offset_of ! (direct_memory_update_interface , release) - 0usize] ; [\"Offset of field: direct_memory_update_interface::update_permission\"] [:: std :: mem :: offset_of ! (direct_memory_update_interface , update_permission) - 8usize] ; [\"Offset of field: direct_memory_update_interface::conflicting_access\"] [:: std :: mem :: offset_of ! (direct_memory_update_interface , conflicting_access) - 16usize] ; } ; pub type direct_memory_flush_interface_t = direct_memory_flush_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct direct_memory_flush_interface { pub revoke : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , base : uint64 , size : uint64 , access : access_t , perm : access_t , inhibit : access_t) > , pub set_access_bits : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , requester : * mut conf_object_t , base : uint64 , size : uint64 , access : access_t) -> bool > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of direct_memory_flush_interface\"] [:: std :: mem :: size_of :: < direct_memory_flush_interface > () - 16usize] ; [\"Alignment of direct_memory_flush_interface\"] [:: std :: mem :: align_of :: < direct_memory_flush_interface > () - 8usize] ; [\"Offset of field: direct_memory_flush_interface::revoke\"] [:: std :: mem :: offset_of ! (direct_memory_flush_interface , revoke) - 0usize] ; [\"Offset of field: direct_memory_flush_interface::set_access_bits\"] [:: std :: mem :: offset_of ! (direct_memory_flush_interface , set_access_bits) - 8usize] ; } ; pub type direct_memory_tags_interface_t = direct_memory_tags_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct direct_memory_tags_interface { pub get_tags_data : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , handle : direct_memory_handle_t) -> direct_memory_tags_t > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of direct_memory_tags_interface\"] [:: std :: mem :: size_of :: < direct_memory_tags_interface > () - 8usize] ; [\"Alignment of direct_memory_tags_interface\"] [:: std :: mem :: align_of :: < direct_memory_tags_interface > () - 8usize] ; [\"Offset of field: direct_memory_tags_interface::get_tags_data\"] [:: std :: mem :: offset_of ! (direct_memory_tags_interface , get_tags_data) - 0usize] ; } ; pub type register_view_read_only_interface_t = register_view_read_only_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct register_view_read_only_interface { pub is_read_only : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , reg : :: std :: os :: raw :: c_uint) -> bool > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of register_view_read_only_interface\"] [:: std :: mem :: size_of :: < register_view_read_only_interface > () - 8usize] ; [\"Alignment of register_view_read_only_interface\"] [:: std :: mem :: align_of :: < register_view_read_only_interface > () - 8usize] ; [\"Offset of field: register_view_read_only_interface::is_read_only\"] [:: std :: mem :: offset_of ! (register_view_read_only_interface , is_read_only) - 0usize] ; } ; pub type dummy_memory_page_interface_t = dummy_memory_page_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct dummy_memory_page_interface { pub dummy : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t) > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of dummy_memory_page_interface\"] [:: std :: mem :: size_of :: < dummy_memory_page_interface > () - 8usize] ; [\"Alignment of dummy_memory_page_interface\"] [:: std :: mem :: align_of :: < dummy_memory_page_interface > () - 8usize] ; [\"Offset of field: dummy_memory_page_interface::dummy\"] [:: std :: mem :: offset_of ! (dummy_memory_page_interface , dummy) - 0usize] ; } ; pub type packet_interface_t = packet_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct packet_interface { pub transfer : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , data : bytes_t) > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of packet_interface\"] [:: std :: mem :: size_of :: < packet_interface > () - 8usize] ; [\"Alignment of packet_interface\"] [:: std :: mem :: align_of :: < packet_interface > () - 8usize] ; [\"Offset of field: packet_interface::transfer\"] [:: std :: mem :: offset_of ! (packet_interface , transfer) - 0usize] ; } ; # [repr (u32)] # [doc = \" used in register_info() interface function */\\n/* <add id=\\\"ireg_info_t\\\"><ndx>ireg_info_t</ndx><insert-upto text=\\\";\\\"/></add>\"] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub enum ireg_info_t { Sim_RegInfo_Catchable = 0 , } pub type int_register_interface_t = int_register_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct int_register_interface { pub get_number : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , name : * const :: std :: os :: raw :: c_char) -> :: std :: os :: raw :: c_int > , pub get_name : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , reg : :: std :: os :: raw :: c_int) -> * const :: std :: os :: raw :: c_char > , pub read : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , reg : :: std :: os :: raw :: c_int) -> uint64 > , pub write : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , reg : :: std :: os :: raw :: c_int , val : uint64) > , pub all_registers : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t) -> attr_value_t > , pub register_info : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , reg : :: std :: os :: raw :: c_int , info : ireg_info_t) -> :: std :: os :: raw :: c_int > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of int_register_interface\"] [:: std :: mem :: size_of :: < int_register_interface > () - 48usize] ; [\"Alignment of int_register_interface\"] [:: std :: mem :: align_of :: < int_register_interface > () - 8usize] ; [\"Offset of field: int_register_interface::get_number\"] [:: std :: mem :: offset_of ! (int_register_interface , get_number) - 0usize] ; [\"Offset of field: int_register_interface::get_name\"] [:: std :: mem :: offset_of ! (int_register_interface , get_name) - 8usize] ; [\"Offset of field: int_register_interface::read\"] [:: std :: mem :: offset_of ! (int_register_interface , read) - 16usize] ; [\"Offset of field: int_register_interface::write\"] [:: std :: mem :: offset_of ! (int_register_interface , write) - 24usize] ; [\"Offset of field: int_register_interface::all_registers\"] [:: std :: mem :: offset_of ! (int_register_interface , all_registers) - 32usize] ; [\"Offset of field: int_register_interface::register_info\"] [:: std :: mem :: offset_of ! (int_register_interface , register_info) - 40usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct monitored_attribute { _unused : [u8 ; 0] , } # [doc = \"This is a collection of API calls that allows a customized connection\\nbetween frontend extensions and custom target modules.\\n\\nThe function <fun>register_monitored_attribute</fun> should be called by an\\nobject that wishes to communicate the value of an attribute to a frontend\\nplug-in. The <param>attr_obj</param> and <param>attr_name</param> parameters\\nindicate the attribute to communicate.  The function returns a handle that will\\nbe used to refer to this instance of the attribute. The function should be\\ncalled before the object is configured, typically from the\\n<fun>finalize_instance</fun> method.\\n\\nAfter an object has registered an attribute with\\n<fun>register_monitored_attribute</fun>, the object should call the\\nfunction <fun>monitored_attribute_changed</fun> with the returned\\nattribute ID whenever the value of that attribute changes, including\\nfrom the attribute setter.\"] pub type attribute_id_t = monitored_attribute ; pub type attribute_monitor_interface_t = attribute_monitor_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct attribute_monitor_interface { pub register_monitored_attribute : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , attr_obj : * mut conf_object_t , attr_name : * const :: std :: os :: raw :: c_char) -> * mut attribute_id_t > , pub monitored_attribute_changed : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , id : * mut attribute_id_t) > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of attribute_monitor_interface\"] [:: std :: mem :: size_of :: < attribute_monitor_interface > () - 16usize] ; [\"Alignment of attribute_monitor_interface\"] [:: std :: mem :: align_of :: < attribute_monitor_interface > () - 8usize] ; [\"Offset of field: attribute_monitor_interface::register_monitored_attribute\"] [:: std :: mem :: offset_of ! (attribute_monitor_interface , register_monitored_attribute) - 0usize] ; [\"Offset of field: attribute_monitor_interface::monitored_attribute_changed\"] [:: std :: mem :: offset_of ! (attribute_monitor_interface , monitored_attribute_changed) - 8usize] ; } ; pub type transaction_interface_t = transaction_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct transaction_interface { pub issue : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , t : * mut transaction_t , addr : uint64) -> exception_type_t > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of transaction_interface\"] [:: std :: mem :: size_of :: < transaction_interface > () - 8usize] ; [\"Alignment of transaction_interface\"] [:: std :: mem :: align_of :: < transaction_interface > () - 8usize] ; [\"Offset of field: transaction_interface::issue\"] [:: std :: mem :: offset_of ! (transaction_interface , issue) - 0usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct cpu_instrumentation_info { _unused : [u8 ; 0] , } pub type instruction_handle_t = cpu_instrumentation_info ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct cpu_memory_info { _unused : [u8 ; 0] , } pub type memory_handle_t = cpu_memory_info ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct cpu_replace_info { _unused : [u8 ; 0] , } pub type decoder_handle_t = cpu_replace_info ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct cpu_exception_info { _unused : [u8 ; 0] , } pub type exception_handle_t = cpu_exception_info ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct cpu_exception_return_info { _unused : [u8 ; 0] , } pub type exception_return_handle_t = cpu_exception_return_info ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct cpu_address_info { _unused : [u8 ; 0] , } pub type address_handle_t = cpu_address_info ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct cached_instruction_data { _unused : [u8 ; 0] , } pub type cached_instruction_handle_t = cached_instruction_data ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct instrumentation_entry { _unused : [u8 ; 0] , } pub type cpu_cb_handle_t = instrumentation_entry ; pub type cpu_stream_handle_t = instrumentation_entry ; # [doc = \" <add-type id=\\\"cpu_bytes_t\\\"></add-type>\"] # [repr (C)] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct cpu_bytes { pub size : usize , pub data : * const uint8 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of cpu_bytes\"] [:: std :: mem :: size_of :: < cpu_bytes > () - 16usize] ; [\"Alignment of cpu_bytes\"] [:: std :: mem :: align_of :: < cpu_bytes > () - 8usize] ; [\"Offset of field: cpu_bytes::size\"] [:: std :: mem :: offset_of ! (cpu_bytes , size) - 0usize] ; [\"Offset of field: cpu_bytes::data\"] [:: std :: mem :: offset_of ! (cpu_bytes , data) - 8usize] ; } ; impl Default for cpu_bytes { fn default () -> Self { let mut s = :: std :: mem :: MaybeUninit :: < Self > :: uninit () ; unsafe { :: std :: ptr :: write_bytes (s . as_mut_ptr () , 0 , 1) ; s . assume_init () } } } # [doc = \" <add-type id=\\\"cpu_bytes_t\\\"></add-type>\"] pub type cpu_bytes_t = cpu_bytes ; pub type cpu_instruction_query_interface_t = cpu_instruction_query_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct cpu_instruction_query_interface { pub logical_address : :: std :: option :: Option < unsafe extern \"C\" fn (cpu : * mut conf_object_t , handle : * mut instruction_handle_t) -> logical_address_t > , pub physical_address : :: std :: option :: Option < unsafe extern \"C\" fn (cpu : * mut conf_object_t , handle : * mut instruction_handle_t) -> physical_address_t > , pub get_instruction_bytes : :: std :: option :: Option < unsafe extern \"C\" fn (cpu : * mut conf_object_t , handle : * mut instruction_handle_t) -> cpu_bytes_t > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of cpu_instruction_query_interface\"] [:: std :: mem :: size_of :: < cpu_instruction_query_interface > () - 24usize] ; [\"Alignment of cpu_instruction_query_interface\"] [:: std :: mem :: align_of :: < cpu_instruction_query_interface > () - 8usize] ; [\"Offset of field: cpu_instruction_query_interface::logical_address\"] [:: std :: mem :: offset_of ! (cpu_instruction_query_interface , logical_address) - 0usize] ; [\"Offset of field: cpu_instruction_query_interface::physical_address\"] [:: std :: mem :: offset_of ! (cpu_instruction_query_interface , physical_address) - 8usize] ; [\"Offset of field: cpu_instruction_query_interface::get_instruction_bytes\"] [:: std :: mem :: offset_of ! (cpu_instruction_query_interface , get_instruction_bytes) - 16usize] ; } ; # [repr (u32)] # [doc = \" <add-type id=\\\"page_crossing_info_t\\\">\\nStates the type of memory accesses related to page crossings.\\n</add-type>\"] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub enum page_crossing_info_t { Sim_Page_Crossing_None = 0 , Sim_Page_Crossing_First = 1 , Sim_Page_Crossing_Second = 2 , } pub type cpu_memory_query_interface_t = cpu_memory_query_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct cpu_memory_query_interface { pub logical_address : :: std :: option :: Option < unsafe extern \"C\" fn (cpu : * mut conf_object_t , handle : * mut memory_handle_t) -> logical_address_t > , pub physical_address : :: std :: option :: Option < unsafe extern \"C\" fn (cpu : * mut conf_object_t , handle : * mut memory_handle_t) -> physical_address_t > , pub set_host_ptr : :: std :: option :: Option < unsafe extern \"C\" fn (cpu : * mut conf_object_t , handle : * mut memory_handle_t , p : * mut :: std :: os :: raw :: c_void) > , pub get_bytes : :: std :: option :: Option < unsafe extern \"C\" fn (cpu : * mut conf_object_t , handle : * mut memory_handle_t) -> cpu_bytes_t > , pub set_bytes : :: std :: option :: Option < unsafe extern \"C\" fn (cpu : * mut conf_object_t , handle : * mut memory_handle_t , bytes : cpu_bytes_t) > , pub atomic : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , handle : * mut memory_handle_t) -> bool > , pub arch : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , handle : * mut memory_handle_t) -> ini_type_t > , pub get_page_crossing_info : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , handle : * mut memory_handle_t) -> page_crossing_info_t > , pub get_surrounding_bytes : :: std :: option :: Option < unsafe extern \"C\" fn (cpu : * mut conf_object_t , handle : * mut memory_handle_t , granularity_log2 : :: std :: os :: raw :: c_uint) -> buffer_t > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of cpu_memory_query_interface\"] [:: std :: mem :: size_of :: < cpu_memory_query_interface > () - 72usize] ; [\"Alignment of cpu_memory_query_interface\"] [:: std :: mem :: align_of :: < cpu_memory_query_interface > () - 8usize] ; [\"Offset of field: cpu_memory_query_interface::logical_address\"] [:: std :: mem :: offset_of ! (cpu_memory_query_interface , logical_address) - 0usize] ; [\"Offset of field: cpu_memory_query_interface::physical_address\"] [:: std :: mem :: offset_of ! (cpu_memory_query_interface , physical_address) - 8usize] ; [\"Offset of field: cpu_memory_query_interface::set_host_ptr\"] [:: std :: mem :: offset_of ! (cpu_memory_query_interface , set_host_ptr) - 16usize] ; [\"Offset of field: cpu_memory_query_interface::get_bytes\"] [:: std :: mem :: offset_of ! (cpu_memory_query_interface , get_bytes) - 24usize] ; [\"Offset of field: cpu_memory_query_interface::set_bytes\"] [:: std :: mem :: offset_of ! (cpu_memory_query_interface , set_bytes) - 32usize] ; [\"Offset of field: cpu_memory_query_interface::atomic\"] [:: std :: mem :: offset_of ! (cpu_memory_query_interface , atomic) - 40usize] ; [\"Offset of field: cpu_memory_query_interface::arch\"] [:: std :: mem :: offset_of ! (cpu_memory_query_interface , arch) - 48usize] ; [\"Offset of field: cpu_memory_query_interface::get_page_crossing_info\"] [:: std :: mem :: offset_of ! (cpu_memory_query_interface , get_page_crossing_info) - 56usize] ; [\"Offset of field: cpu_memory_query_interface::get_surrounding_bytes\"] [:: std :: mem :: offset_of ! (cpu_memory_query_interface , get_surrounding_bytes) - 64usize] ; } ; pub type cpu_exception_query_interface_t = cpu_exception_query_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct cpu_exception_query_interface { pub exception_number : :: std :: option :: Option < unsafe extern \"C\" fn (cpu : * mut conf_object_t , handle : * mut exception_handle_t) -> :: std :: os :: raw :: c_int > , pub fault_pc : :: std :: option :: Option < unsafe extern \"C\" fn (cpu : * mut conf_object_t , handle : * mut exception_handle_t) -> logical_address_t > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of cpu_exception_query_interface\"] [:: std :: mem :: size_of :: < cpu_exception_query_interface > () - 16usize] ; [\"Alignment of cpu_exception_query_interface\"] [:: std :: mem :: align_of :: < cpu_exception_query_interface > () - 8usize] ; [\"Offset of field: cpu_exception_query_interface::exception_number\"] [:: std :: mem :: offset_of ! (cpu_exception_query_interface , exception_number) - 0usize] ; [\"Offset of field: cpu_exception_query_interface::fault_pc\"] [:: std :: mem :: offset_of ! (cpu_exception_query_interface , fault_pc) - 8usize] ; } ; # [doc = \" <add id=\\\"cpu_instruction_cb_t DOC\\\"> <ndx>cpu_instruction_cb_t</ndx>\\n<name index=\\\"true\\\">cpu_instruction_cb_t</name>\\n<doc>\\n<doc-item name=\\\"NAME\\\">cpu_instruction_cb_t</doc-item>\\n<doc-item name=\\\"SYNOPSIS\\\"><insert id=\\\"cpu_instruction_cb_t\\\"/></doc-item>\\n<doc-item name=\\\"DESCRIPTION\\\">\\n\\nInstrumentation callback function registered through the\\n<iface>cpu_instrumentation_subscribe</iface> or the\\n<iface>cpu_cached_instruction</iface> interfaces to get a callback before or\\nafter an instruction has been executed. The <param>cpu</param> is the\\nprocessor which executed an instruction. The <param>handle</param> is an\\nopaque handle associated with the instruction being executed. It can be used\\nwith the <iface>cpu_instruction_query</iface> interface to get more\\ninformation about the instruction. The <param>user_data</param> is the user\\ndata for the callback.\\n</doc-item>\\n</doc>\\n</add>\\n\\n<add-type id=\\\"cpu_instruction_cb_t\\\"></add-type>\"] pub type cpu_instruction_cb_t = :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , cpu : * mut conf_object_t , handle : * mut instruction_handle_t , user_data : * mut lang_void) > ; # [doc = \" <add id=\\\"cpu_callback_free_user_data_cb_t DOC\\\">\\n<ndx>cpu_callback_free_user_data_cb_t</ndx>\\n<name index=\\\"true\\\">cpu_callback_free_user_data_cb_t</name>\\n<doc>\\n<doc-item name=\\\"NAME\\\">cpu_callback_free_user_data_cb_t</doc-item>\\n<doc-item name=\\\"SYNOPSIS\\\"><insert id=\\\"cpu_callback_free_user_data_cb_t\\\"/>\\n</doc-item>\\n<doc-item name=\\\"DESCRIPTION\\\">\\n\\nCallback function registered through the\\n<iface>cpu_cached_instruction</iface> interface to free instruction specific\\nuser data when the instruction is not being cached anymore.  The\\n<arg>user_data</arg> is the pointer to the callback data. <arg>obj</arg> is\\nthe connection object and <arg>cpu</arg> is the processor that the callback\\nwas registered for.\\n</doc-item>\\n</doc>\\n</add>\\n\\n<add-type id=\\\"cpu_callback_free_user_data_cb_t\\\"></add-type>\"] pub type cpu_callback_free_user_data_cb_t = :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , cpu : * mut conf_object_t , user_data : * mut lang_void) > ; # [doc = \" <add id=\\\"cpu_memory_cb_t DOC\\\">\\n<ndx>cpu_memory_cb_t</ndx>\\n<name index=\\\"true\\\">cpu_memory_cb_t</name>\\n<doc>\\n<doc-item name=\\\"NAME\\\">cpu_memory_cb_t</doc-item>\\n<doc-item name=\\\"SYNOPSIS\\\"><insert id=\\\"cpu_memory_cb_t\\\"/>\\n</doc-item>\\n<doc-item name=\\\"DESCRIPTION\\\">\\n\\nInstrumentation callback function registered through the\\n<iface>cpu_instrumentation_subscribe</iface> or the\\n<iface>cpu_cached_instruction</iface> interfaces to get a callback before or\\nafter an memory access is executed. The <param>cpu</param> is the\\nprocessor which executed a load/store. The <param>handle</param> is an\\nopaque handle associated with the instruction being executed. It can be used\\nwith the <iface>cpu_memory_query</iface> interface to get more\\ninformation about the access. The <param>user_data</param> is the user\\ndata for the callback.\\n\\n</doc-item>\\n</doc>\\n</add>\\n\\n<add-type id=\\\"cpu_memory_cb_t\\\"></add-type>\"] pub type cpu_memory_cb_t = :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , cpu : * mut conf_object_t , handle : * mut memory_handle_t , user_data : * mut lang_void) > ; pub type cpu_cached_instruction_interface_t = cpu_cached_instruction_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct cpu_cached_instruction_interface { pub register_instruction_before_cb : :: std :: option :: Option < unsafe extern \"C\" fn (cpu : * mut conf_object_t , ci_handle : * mut cached_instruction_handle_t , cb : cpu_instruction_cb_t , user_data : * mut lang_void , free_cb : cpu_callback_free_user_data_cb_t) > , pub register_instruction_after_cb : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , ci_handle : * mut cached_instruction_handle_t , cb : cpu_instruction_cb_t , user_data : * mut lang_void , free_cb : cpu_callback_free_user_data_cb_t) > , pub register_read_before_cb : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , ci_handle : * mut cached_instruction_handle_t , cb : cpu_memory_cb_t , user_data : * mut lang_void , free_cb : cpu_callback_free_user_data_cb_t) > , pub register_read_after_cb : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , ci_handle : * mut cached_instruction_handle_t , cb : cpu_memory_cb_t , user_data : * mut lang_void , free_cb : cpu_callback_free_user_data_cb_t) > , pub register_write_before_cb : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , ci_handle : * mut cached_instruction_handle_t , cb : cpu_memory_cb_t , user_data : * mut lang_void , free_cb : cpu_callback_free_user_data_cb_t) > , pub register_write_after_cb : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , ci_handle : * mut cached_instruction_handle_t , cb : cpu_memory_cb_t , user_data : * mut lang_void , free_cb : cpu_callback_free_user_data_cb_t) > , pub add_counter : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , ci_handle : * mut cached_instruction_handle_t , counter : * mut uint64 , use_atomic_increment : bool) > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of cpu_cached_instruction_interface\"] [:: std :: mem :: size_of :: < cpu_cached_instruction_interface > () - 56usize] ; [\"Alignment of cpu_cached_instruction_interface\"] [:: std :: mem :: align_of :: < cpu_cached_instruction_interface > () - 8usize] ; [\"Offset of field: cpu_cached_instruction_interface::register_instruction_before_cb\"] [:: std :: mem :: offset_of ! (cpu_cached_instruction_interface , register_instruction_before_cb) - 0usize] ; [\"Offset of field: cpu_cached_instruction_interface::register_instruction_after_cb\"] [:: std :: mem :: offset_of ! (cpu_cached_instruction_interface , register_instruction_after_cb) - 8usize] ; [\"Offset of field: cpu_cached_instruction_interface::register_read_before_cb\"] [:: std :: mem :: offset_of ! (cpu_cached_instruction_interface , register_read_before_cb) - 16usize] ; [\"Offset of field: cpu_cached_instruction_interface::register_read_after_cb\"] [:: std :: mem :: offset_of ! (cpu_cached_instruction_interface , register_read_after_cb) - 24usize] ; [\"Offset of field: cpu_cached_instruction_interface::register_write_before_cb\"] [:: std :: mem :: offset_of ! (cpu_cached_instruction_interface , register_write_before_cb) - 32usize] ; [\"Offset of field: cpu_cached_instruction_interface::register_write_after_cb\"] [:: std :: mem :: offset_of ! (cpu_cached_instruction_interface , register_write_after_cb) - 40usize] ; [\"Offset of field: cpu_cached_instruction_interface::add_counter\"] [:: std :: mem :: offset_of ! (cpu_cached_instruction_interface , add_counter) - 48usize] ; } ; pub type cpu_cached_instruction_once_interface_t = cpu_cached_instruction_once_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct cpu_cached_instruction_once_interface { pub register_instruction_before_once_cb : :: std :: option :: Option < unsafe extern \"C\" fn (cpu : * mut conf_object_t , ci_handle : * mut cached_instruction_handle_t , cb : cpu_instruction_cb_t , user_data : * mut lang_void , free_cb : cpu_callback_free_user_data_cb_t) > , pub register_instruction_after_once_cb : :: std :: option :: Option < unsafe extern \"C\" fn (cpu : * mut conf_object_t , ci_handle : * mut cached_instruction_handle_t , cb : cpu_instruction_cb_t , user_data : * mut lang_void , free_cb : cpu_callback_free_user_data_cb_t) > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of cpu_cached_instruction_once_interface\"] [:: std :: mem :: size_of :: < cpu_cached_instruction_once_interface > () - 16usize] ; [\"Alignment of cpu_cached_instruction_once_interface\"] [:: std :: mem :: align_of :: < cpu_cached_instruction_once_interface > () - 8usize] ; [\"Offset of field: cpu_cached_instruction_once_interface::register_instruction_before_once_cb\"] [:: std :: mem :: offset_of ! (cpu_cached_instruction_once_interface , register_instruction_before_once_cb) - 0usize] ; [\"Offset of field: cpu_cached_instruction_once_interface::register_instruction_after_once_cb\"] [:: std :: mem :: offset_of ! (cpu_cached_instruction_once_interface , register_instruction_after_once_cb) - 8usize] ; } ; pub type internal_cached_instruction_interface_t = internal_cached_instruction_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct internal_cached_instruction_interface { pub add_counters : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , ci_handle : * mut cached_instruction_handle_t , i_counter : * mut uint64 , t_counter : * mut uint64 , use_atomic_increment : bool) > , pub get_service_routine_name : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , iq_handle : * mut instruction_handle_t) -> * const :: std :: os :: raw :: c_char > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of internal_cached_instruction_interface\"] [:: std :: mem :: size_of :: < internal_cached_instruction_interface > () - 16usize] ; [\"Alignment of internal_cached_instruction_interface\"] [:: std :: mem :: align_of :: < internal_cached_instruction_interface > () - 8usize] ; [\"Offset of field: internal_cached_instruction_interface::add_counters\"] [:: std :: mem :: offset_of ! (internal_cached_instruction_interface , add_counters) - 0usize] ; [\"Offset of field: internal_cached_instruction_interface::get_service_routine_name\"] [:: std :: mem :: offset_of ! (internal_cached_instruction_interface , get_service_routine_name) - 8usize] ; } ; # [doc = \" <add id=\\\"cpu_cached_instruction_cb_t DOC\\\">\\n<ndx>cpu_cached_instruction_cb_t</ndx>\\n<name index=\\\"true\\\">cpu_cached_instruction_cb_t</name>\\n<doc>\\n<doc-item name=\\\"NAME\\\">cpu_cached_instruction_cb_t</doc-item>\\n<doc-item name=\\\"SYNOPSIS\\\"><insert id=\\\"cpu_cached_instruction_cb_t\\\"/>\\n</doc-item>\\n<doc-item name=\\\"DESCRIPTION\\\">\\n\\nInstrumentation callback function registered through the\\n<iface>cpu_instrumentation_subscribe</iface> interface\'s\\n<fun>register_cached_instruction_cb</fun> member function.\\n\\nThis callback will be called when an instruction is about to be cached in\\nthe processor model (this is not the same as being in the processor\'s real\\nhardware instruction cache). The <param>cpu</param> is the processor which\\nexecuted an instruction. The <param>ci_handle</param> is an opaque handle\\nassociated with the instruction being executed, it is used in\\nthe <iface>cpu_cached_instruction</iface> interface to install instruction\\nspecific callbacks. The <param>iq_handle</param> is used with the\\n<iface>cpu_instruction_query</iface> interface to get more information about\\nthe instruction. The <param>user_data</param> is the user\\ndata for the callback.\\n</doc-item>\\n</doc>\\n</add>\\n<add-type id=\\\"cpu_cached_instruction_cb_t\\\"></add-type>\"] pub type cpu_cached_instruction_cb_t = :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , cpu : * mut conf_object_t , ci_handle : * mut cached_instruction_handle_t , iq_handle : * mut instruction_handle_t , user_data : * mut lang_void) > ; # [repr (u32)] # [doc = \" <add-type id=\\\"cpu_emulation_t\\\"></add-type>\"] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub enum cpu_emulation_t { CPU_Emulation_Fall_Through = 0 , CPU_Emulation_Control_Flow = 1 , CPU_Emulation_Default_Semantics = 2 , CPU_Emulation_Stall = 3 , } # [doc = \" <add id=\\\"cpu_emulation_cb_t DOC\\\">\\n<ndx>cpu_emulation_cb_t</ndx>\\n<name index=\\\"true\\\">cpu_emulation_cb_t</name>\\n<doc>\\n<doc-item name=\\\"NAME\\\">cpu_emulation_cb_t</doc-item>\\n<doc-item name=\\\"SYNOPSIS\\\"><insert id=\\\"cpu_emulation_cb_t\\\"/>\\n</doc-item>\\n<doc-item name=\\\"DESCRIPTION\\\">\\n\\nInstrumentation callback function registered through the\\n<iface>cpu_instruction_decoder</iface> interface.\\n\\nThis callback will be called when an user added instruction is about to\\nbe executed in the processor. The <param>cpu</param> is the processor which\\nexecutes an instruction. The <param>instruction_user_data</param> is\\nthe user-data associated with the instruction.\\nThe return type <type>cpu_emulation_t</type> is used to tell Simics how the\\nnext instruction should be fetched. For more information, see the\\n<iface>cpu_instruction_decoder</iface> interface.\\n</doc-item>\\n</doc>\\n</add>\\n\\n<add-type id=\\\"cpu_emulation_cb_t\\\"></add-type>\"] pub type cpu_emulation_cb_t = :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , cpu : * mut conf_object_t , user_data : * mut lang_void) -> cpu_emulation_t > ; pub type cpu_instruction_decoder_interface_t = cpu_instruction_decoder_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct cpu_instruction_decoder_interface { pub register_emulation_cb : :: std :: option :: Option < unsafe extern \"C\" fn (cpu : * mut conf_object_t , cb : cpu_emulation_cb_t , handle : * mut decoder_handle_t , user_data : * mut lang_void , free_cb : cpu_callback_free_user_data_cb_t) > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of cpu_instruction_decoder_interface\"] [:: std :: mem :: size_of :: < cpu_instruction_decoder_interface > () - 8usize] ; [\"Alignment of cpu_instruction_decoder_interface\"] [:: std :: mem :: align_of :: < cpu_instruction_decoder_interface > () - 8usize] ; [\"Offset of field: cpu_instruction_decoder_interface::register_emulation_cb\"] [:: std :: mem :: offset_of ! (cpu_instruction_decoder_interface , register_emulation_cb) - 0usize] ; } ; # [doc = \" <add id=\\\"cpu_instruction_decoder_cb_t DOC\\\">\\n<ndx>cpu_instruction_decoder_cb_t</ndx>\\n<name index=\\\"true\\\">cpu_instruction_decoder_cb_t</name>\\n<doc>\\n<doc-item name=\\\"NAME\\\">cpu_instruction_decoder_cb_t</doc-item>\\n<doc-item name=\\\"SYNOPSIS\\\"><insert id=\\\"cpu_instruction_decoder_cb_t\\\"/>\\n</doc-item>\\n<doc-item name=\\\"DESCRIPTION\\\">\\n\\nInstrumentation callback function registered through the\\n<iface>cpu_instrumentation_subscribe</iface> interface\'s\\n<fun>register_instruction_decoder_cb()</fun> member function.\\n\\nThis callback will be called when an instruction is about to be cached in\\nthe processor model (this is not the same as being in the processor\'s real\\nhardware instruction cache). The <param>cpu</param> is the processor which\\nexecuted an instruction. The <param>decoder_handle</param> is an opaque\\nhandle associated with the instruction being executed and used in the\\n<iface>cpu_instruction_decoder</iface> interface.\\nThe <param>iq_handle</param> is used with the\\n<iface>cpu_instruction_query</iface> interface to get more information on\\nthe instruction. The <param>user_data</param> is the user data\\nassociated with the callback.\\n</doc-item>\\n</doc>\\n</add>\\n\\n<add-type id=\\\"cpu_instruction_decoder_cb_t\\\"></add-type>\"] pub type cpu_instruction_decoder_cb_t = :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , cpu : * mut conf_object_t , decoder_handle : * mut decoder_handle_t , iq_handle : * mut instruction_handle_t , user_data : * mut lang_void) -> :: std :: os :: raw :: c_int > ; # [doc = \" <add id=\\\"cpu_instruction_disassemble_cb_t DOC\\\">\\n<ndx>cpu_instruction_disassemble_cb_t</ndx>\\n<name index=\\\"true\\\">cpu_instruction_disassemble_cb_t</name>\\n<doc>\\n<doc-item name=\\\"NAME\\\">cpu_instruction_disassemble_cb_t</doc-item>\\n<doc-item name=\\\"SYNOPSIS\\\"><insert id=\\\"cpu_instruction_disassemble_cb_t\\\"/>\\n</doc-item>\\n<doc-item name=\\\"DESCRIPTION\\\">\\n\\nInstrumentation callback function registered through the\\n<iface>cpu_instrumentation_subscribe</iface> interface\'s\\n<fun>register_instruction_decoder_cb()</fun> member function.\\n\\nThe callback will be called when a replaced instruction is being\\ndisassembled.\\n</doc-item>\\n</doc>\\n</add>\\n\\n<add-type id=\\\"cpu_instruction_disassemble_cb_t\\\"></add-type>\"] pub type cpu_instruction_disassemble_cb_t = :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , cpu : * mut conf_object_t , addr : generic_address_t , bytes : cpu_bytes_t) -> tuple_int_string_t > ; # [doc = \" <add id=\\\"cpu_address_cb_t DOC\\\">\\n<ndx>cpu_address_cb_t</ndx>\\n<name index=\\\"true\\\">cpu_address_cb_t</name>\\n<doc>\\n<doc-item name=\\\"NAME\\\">cpu_address_cb_t</doc-item>\\n<doc-item name=\\\"SYNOPSIS\\\"><insert id=\\\"cpu_address_cb_t\\\"/>\\n</doc-item>\\n<doc-item name=\\\"DESCRIPTION\\\">\\n\\nInstrumentation callback function registered through the\\n<iface>cpu_instrumentation_subscribe</iface> interface\'s\\n<fun>register_address_before()</fun> member function.\\n\\nThe callback will be called prior to a processor memory access, allowing\\nthe callback to change the logical address for an access.\\n\\nThe argument <arg>obj</arg> is the object installing the callback and the\\n<arg>cpu</arg> is the processor generating the logical\\n<arg>address</arg>. If the access crosses a page boundary the access will be\\nsplit into two calls. The <arg>part</arg> argument tells if the address\\nbelongs to the first or the second part. The <type>cpu_address_part_t</type>\\ntype has two values: <tt>CPU_Address_Part_First</tt> and\\n<tt>CPU_Address_Part_Second</tt>. The <arg>handle</arg> can be used to\\nextract more information about he address by using a architecture specific\\ninterface. See the <iface>x86_address_query</iface> for example.\\n\\n</doc-item>\\n</doc>\\n</add>\\n<add-type id=\\\"cpu_address_cb_t\\\"></add-type>\"] pub type cpu_address_cb_t = :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , cpu : * mut conf_object_t , address : logical_address_t , handle : * mut address_handle_t , user_data : * mut lang_void) -> logical_address_t > ; # [doc = \" <add-type id=\\\"cpu_exception_cb_t\\\"></add-type>\"] pub type cpu_exception_cb_t = :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , cpu : * mut conf_object_t , exception_handle : * mut exception_handle_t , user_data : * mut lang_void) > ; # [doc = \" <add-type id=\\\"cpu_exception_return_cb_t\\\"></add-type>\"] pub type cpu_exception_return_cb_t = :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , cpu : * mut conf_object_t , exception_handle : * mut exception_return_handle_t , user_data : * mut lang_void) > ; # [repr (i32)] # [doc = \" <add-type id=\\\"cpu_exception_scope_t\\\"></add-type>\"] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub enum cpu_exception_scope_t { CPU_Exception_All = - 1 , } # [repr (i32)] # [doc = \" <add-type id=\\\"cpu_control_register_scope_t\\\"></add-type>\"] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub enum cpu_control_register_scope_t { CPU_Control_Register_All = - 1 , } # [doc = \" <add-type id=\\\"cpu_mode_change_cb_t\\\"></add-type>\"] pub type cpu_mode_change_cb_t = :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , cpu : * mut conf_object_t , old_mode : processor_mode_t , new_mode : processor_mode_t , user_data : * mut lang_void) > ; # [doc = \" <add-type id=\\\"cpu_control_register_read_cb_t\\\"></add-type>\"] pub type cpu_control_register_read_cb_t = :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , cpu : * mut conf_object_t , register_number : :: std :: os :: raw :: c_int , user_data : * mut lang_void) > ; # [doc = \" <add-type id=\\\"cpu_control_register_write_cb_t\\\"></add-type>\"] pub type cpu_control_register_write_cb_t = :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , cpu : * mut conf_object_t , register_number : :: std :: os :: raw :: c_int , value : uint64 , user_data : * mut lang_void) > ; # [repr (u32)] # [doc = \" <add-type id=\\\"cpu_access_scope_t\\\">\\nUsed to select the access scope for instrumentation of memory\\naccesses. CPU_Access_Scope_Explicit selects explicit accesses used by an\\ninstruction such as loading or storing a value. CPU_Access_Scope_Implicit\\nselects implicit accesses such as table walks and exceptions handling. See\\nthe <iface>cpu_instrumentation_subscribe</iface> for more information.\\n</add-type>\"] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub enum cpu_access_scope_t { CPU_Access_Scope_Explicit = 0 , CPU_Access_Scope_Implicit = 1 , } pub type cpu_instrumentation_subscribe_interface_t = cpu_instrumentation_subscribe_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct cpu_instrumentation_subscribe_interface { # [doc = \" Callback specific methods\"] pub remove_callback : :: std :: option :: Option < unsafe extern \"C\" fn (cpu : * mut conf_object_t , handle : * mut cpu_cb_handle_t) > , pub enable_callback : :: std :: option :: Option < unsafe extern \"C\" fn (cpu : * mut conf_object_t , handle : * mut cpu_cb_handle_t) > , pub disable_callback : :: std :: option :: Option < unsafe extern \"C\" fn (cpu : * mut conf_object_t , handle : * mut cpu_cb_handle_t) > , # [doc = \" Callback groups methods, operating on several callbacks\\nassociated to a connection.\"] pub remove_connection_callbacks : :: std :: option :: Option < unsafe extern \"C\" fn (cpu : * mut conf_object_t , connection : * mut conf_object_t) > , pub enable_connection_callbacks : :: std :: option :: Option < unsafe extern \"C\" fn (cpu : * mut conf_object_t , connection : * mut conf_object_t) > , pub disable_connection_callbacks : :: std :: option :: Option < unsafe extern \"C\" fn (cpu : * mut conf_object_t , connection : * mut conf_object_t) > , # [doc = \" Subscribe methods\"] pub register_instruction_before_cb : :: std :: option :: Option < unsafe extern \"C\" fn (cpu : * mut conf_object_t , connection : * mut conf_object_t , cb : cpu_instruction_cb_t , data : * mut lang_void) -> * mut cpu_cb_handle_t > , pub register_instruction_after_cb : :: std :: option :: Option < unsafe extern \"C\" fn (cpu : * mut conf_object_t , connection : * mut conf_object_t , cb : cpu_instruction_cb_t , data : * mut lang_void) -> * mut cpu_cb_handle_t > , pub register_read_before_cb : :: std :: option :: Option < unsafe extern \"C\" fn (cpu : * mut conf_object_t , connection : * mut conf_object_t , scope : cpu_access_scope_t , cb : cpu_memory_cb_t , data : * mut lang_void) -> * mut cpu_cb_handle_t > , pub register_read_after_cb : :: std :: option :: Option < unsafe extern \"C\" fn (cpu : * mut conf_object_t , connection : * mut conf_object_t , scope : cpu_access_scope_t , cb : cpu_memory_cb_t , data : * mut lang_void) -> * mut cpu_cb_handle_t > , pub register_write_before_cb : :: std :: option :: Option < unsafe extern \"C\" fn (cpu : * mut conf_object_t , connection : * mut conf_object_t , scope : cpu_access_scope_t , cb : cpu_memory_cb_t , data : * mut lang_void) -> * mut cpu_cb_handle_t > , pub register_write_after_cb : :: std :: option :: Option < unsafe extern \"C\" fn (cpu : * mut conf_object_t , connection : * mut conf_object_t , scope : cpu_access_scope_t , cb : cpu_memory_cb_t , data : * mut lang_void) -> * mut cpu_cb_handle_t > , pub register_address_before_cb : :: std :: option :: Option < unsafe extern \"C\" fn (cpu : * mut conf_object_t , connection : * mut conf_object_t , cb : cpu_address_cb_t , data : * mut lang_void) -> * mut cpu_cb_handle_t > , pub register_cached_instruction_cb : :: std :: option :: Option < unsafe extern \"C\" fn (cpu : * mut conf_object_t , connection : * mut conf_object_t , cb : cpu_cached_instruction_cb_t , data : * mut lang_void) -> * mut cpu_cb_handle_t > , pub register_instruction_decoder_cb : :: std :: option :: Option < unsafe extern \"C\" fn (cpu : * mut conf_object_t , connection : * mut conf_object_t , cb : cpu_instruction_decoder_cb_t , disass_cb : cpu_instruction_disassemble_cb_t , data : * mut lang_void) -> * mut cpu_cb_handle_t > , pub register_exception_before_cb : :: std :: option :: Option < unsafe extern \"C\" fn (cpu : * mut conf_object_t , connection : * mut conf_object_t , exception_number : :: std :: os :: raw :: c_int , cb : cpu_exception_cb_t , data : * mut lang_void) -> * mut cpu_cb_handle_t > , pub register_exception_after_cb : :: std :: option :: Option < unsafe extern \"C\" fn (cpu : * mut conf_object_t , connection : * mut conf_object_t , exception_number : :: std :: os :: raw :: c_int , cb : cpu_exception_cb_t , data : * mut lang_void) -> * mut cpu_cb_handle_t > , pub register_exception_return_before_cb : :: std :: option :: Option < unsafe extern \"C\" fn (cpu : * mut conf_object_t , connection : * mut conf_object_t , cb : cpu_exception_return_cb_t , data : * mut lang_void) -> * mut cpu_cb_handle_t > , pub register_exception_return_after_cb : :: std :: option :: Option < unsafe extern \"C\" fn (cpu : * mut conf_object_t , connection : * mut conf_object_t , cb : cpu_exception_return_cb_t , data : * mut lang_void) -> * mut cpu_cb_handle_t > , pub register_mode_change_cb : :: std :: option :: Option < unsafe extern \"C\" fn (cpu : * mut conf_object_t , connection : * mut conf_object_t , cb : cpu_mode_change_cb_t , data : * mut lang_void) -> * mut cpu_cb_handle_t > , pub register_control_register_read_before_cb : :: std :: option :: Option < unsafe extern \"C\" fn (cpu : * mut conf_object_t , connection : * mut conf_object_t , register_number : :: std :: os :: raw :: c_int , cb : cpu_control_register_read_cb_t , data : * mut lang_void) -> * mut cpu_cb_handle_t > , pub register_control_register_write_before_cb : :: std :: option :: Option < unsafe extern \"C\" fn (cpu : * mut conf_object_t , connection : * mut conf_object_t , register_number : :: std :: os :: raw :: c_int , cb : cpu_control_register_write_cb_t , data : * mut lang_void) -> * mut cpu_cb_handle_t > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of cpu_instrumentation_subscribe_interface\"] [:: std :: mem :: size_of :: < cpu_instrumentation_subscribe_interface > () - 176usize] ; [\"Alignment of cpu_instrumentation_subscribe_interface\"] [:: std :: mem :: align_of :: < cpu_instrumentation_subscribe_interface > () - 8usize] ; [\"Offset of field: cpu_instrumentation_subscribe_interface::remove_callback\"] [:: std :: mem :: offset_of ! (cpu_instrumentation_subscribe_interface , remove_callback) - 0usize] ; [\"Offset of field: cpu_instrumentation_subscribe_interface::enable_callback\"] [:: std :: mem :: offset_of ! (cpu_instrumentation_subscribe_interface , enable_callback) - 8usize] ; [\"Offset of field: cpu_instrumentation_subscribe_interface::disable_callback\"] [:: std :: mem :: offset_of ! (cpu_instrumentation_subscribe_interface , disable_callback) - 16usize] ; [\"Offset of field: cpu_instrumentation_subscribe_interface::remove_connection_callbacks\"] [:: std :: mem :: offset_of ! (cpu_instrumentation_subscribe_interface , remove_connection_callbacks) - 24usize] ; [\"Offset of field: cpu_instrumentation_subscribe_interface::enable_connection_callbacks\"] [:: std :: mem :: offset_of ! (cpu_instrumentation_subscribe_interface , enable_connection_callbacks) - 32usize] ; [\"Offset of field: cpu_instrumentation_subscribe_interface::disable_connection_callbacks\"] [:: std :: mem :: offset_of ! (cpu_instrumentation_subscribe_interface , disable_connection_callbacks) - 40usize] ; [\"Offset of field: cpu_instrumentation_subscribe_interface::register_instruction_before_cb\"] [:: std :: mem :: offset_of ! (cpu_instrumentation_subscribe_interface , register_instruction_before_cb) - 48usize] ; [\"Offset of field: cpu_instrumentation_subscribe_interface::register_instruction_after_cb\"] [:: std :: mem :: offset_of ! (cpu_instrumentation_subscribe_interface , register_instruction_after_cb) - 56usize] ; [\"Offset of field: cpu_instrumentation_subscribe_interface::register_read_before_cb\"] [:: std :: mem :: offset_of ! (cpu_instrumentation_subscribe_interface , register_read_before_cb) - 64usize] ; [\"Offset of field: cpu_instrumentation_subscribe_interface::register_read_after_cb\"] [:: std :: mem :: offset_of ! (cpu_instrumentation_subscribe_interface , register_read_after_cb) - 72usize] ; [\"Offset of field: cpu_instrumentation_subscribe_interface::register_write_before_cb\"] [:: std :: mem :: offset_of ! (cpu_instrumentation_subscribe_interface , register_write_before_cb) - 80usize] ; [\"Offset of field: cpu_instrumentation_subscribe_interface::register_write_after_cb\"] [:: std :: mem :: offset_of ! (cpu_instrumentation_subscribe_interface , register_write_after_cb) - 88usize] ; [\"Offset of field: cpu_instrumentation_subscribe_interface::register_address_before_cb\"] [:: std :: mem :: offset_of ! (cpu_instrumentation_subscribe_interface , register_address_before_cb) - 96usize] ; [\"Offset of field: cpu_instrumentation_subscribe_interface::register_cached_instruction_cb\"] [:: std :: mem :: offset_of ! (cpu_instrumentation_subscribe_interface , register_cached_instruction_cb) - 104usize] ; [\"Offset of field: cpu_instrumentation_subscribe_interface::register_instruction_decoder_cb\"] [:: std :: mem :: offset_of ! (cpu_instrumentation_subscribe_interface , register_instruction_decoder_cb) - 112usize] ; [\"Offset of field: cpu_instrumentation_subscribe_interface::register_exception_before_cb\"] [:: std :: mem :: offset_of ! (cpu_instrumentation_subscribe_interface , register_exception_before_cb) - 120usize] ; [\"Offset of field: cpu_instrumentation_subscribe_interface::register_exception_after_cb\"] [:: std :: mem :: offset_of ! (cpu_instrumentation_subscribe_interface , register_exception_after_cb) - 128usize] ; [\"Offset of field: cpu_instrumentation_subscribe_interface::register_exception_return_before_cb\"] [:: std :: mem :: offset_of ! (cpu_instrumentation_subscribe_interface , register_exception_return_before_cb) - 136usize] ; [\"Offset of field: cpu_instrumentation_subscribe_interface::register_exception_return_after_cb\"] [:: std :: mem :: offset_of ! (cpu_instrumentation_subscribe_interface , register_exception_return_after_cb) - 144usize] ; [\"Offset of field: cpu_instrumentation_subscribe_interface::register_mode_change_cb\"] [:: std :: mem :: offset_of ! (cpu_instrumentation_subscribe_interface , register_mode_change_cb) - 152usize] ; [\"Offset of field: cpu_instrumentation_subscribe_interface::register_control_register_read_before_cb\"] [:: std :: mem :: offset_of ! (cpu_instrumentation_subscribe_interface , register_control_register_read_before_cb) - 160usize] ; [\"Offset of field: cpu_instrumentation_subscribe_interface::register_control_register_write_before_cb\"] [:: std :: mem :: offset_of ! (cpu_instrumentation_subscribe_interface , register_control_register_write_before_cb) - 168usize] ; } ; # [repr (u32)] # [doc = \" ADD INTERFACE cpu_instrumentation_subscribe\"] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub enum cpu_stream_enum_t { CPU_Stream_Instruction_PA = 0 , CPU_Stream_Instruction_VA = 1 , CPU_Stream_Instruction_VA_After = 2 , CPU_Stream_Read_PA = 3 , CPU_Stream_Read_VA = 4 , CPU_Stream_Write_PA = 5 , CPU_Stream_Write_VA = 6 , CPU_Stream_Read_Bytes = 7 , CPU_Stream_Written_Bytes = 8 , CPU_Stream_Address_VA = 9 , CPU_Stream_Object = 10 , CPU_Stream_Opcode = 17 , CPU_Stream_Local = 32 , # [doc = \" last, enum can used as bit number\"] CPU_Stream_User_Data = 63 , } # [doc = \" Contains bits created by using bit numbers from cpu_stream_enum_t\"] pub type cpu_stream_bits_t = uint64 ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct cpu_stream_data_t { # [doc = \" stored as CPU_STREAM_MAKE_TYPE(type, data)\"] pub tag : uint64 , # [doc = \" tag-specific-data\"] pub data : uint64 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of cpu_stream_data_t\"] [:: std :: mem :: size_of :: < cpu_stream_data_t > () - 16usize] ; [\"Alignment of cpu_stream_data_t\"] [:: std :: mem :: align_of :: < cpu_stream_data_t > () - 8usize] ; [\"Offset of field: cpu_stream_data_t::tag\"] [:: std :: mem :: offset_of ! (cpu_stream_data_t , tag) - 0usize] ; [\"Offset of field: cpu_stream_data_t::data\"] [:: std :: mem :: offset_of ! (cpu_stream_data_t , data) - 8usize] ; } ; pub type cpu_cached_stream_interface_t = cpu_cached_stream_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct cpu_cached_stream_interface { pub add_stream : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , ci_handle : * mut cached_instruction_handle_t , bits : cpu_stream_bits_t , data : * mut * mut cpu_stream_data_t , user_data : uint64) > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of cpu_cached_stream_interface\"] [:: std :: mem :: size_of :: < cpu_cached_stream_interface > () - 8usize] ; [\"Alignment of cpu_cached_stream_interface\"] [:: std :: mem :: align_of :: < cpu_cached_stream_interface > () - 8usize] ; [\"Offset of field: cpu_cached_stream_interface::add_stream\"] [:: std :: mem :: offset_of ! (cpu_cached_stream_interface , add_stream) - 0usize] ; } ; pub type cpu_instrumentation_stream_interface_t = cpu_instrumentation_stream_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct cpu_instrumentation_stream_interface { pub add_stream : :: std :: option :: Option < unsafe extern \"C\" fn (cpu : * mut conf_object_t , connection : * mut conf_object_t , bits : cpu_stream_bits_t , data : * mut * mut cpu_stream_data_t , scope : cpu_access_scope_t) -> * mut cpu_stream_handle_t > , pub remove_stream : :: std :: option :: Option < unsafe extern \"C\" fn (cpu : * mut conf_object_t , handle : * mut cpu_stream_handle_t) > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of cpu_instrumentation_stream_interface\"] [:: std :: mem :: size_of :: < cpu_instrumentation_stream_interface > () - 16usize] ; [\"Alignment of cpu_instrumentation_stream_interface\"] [:: std :: mem :: align_of :: < cpu_instrumentation_stream_interface > () - 8usize] ; [\"Offset of field: cpu_instrumentation_stream_interface::add_stream\"] [:: std :: mem :: offset_of ! (cpu_instrumentation_stream_interface , add_stream) - 0usize] ; [\"Offset of field: cpu_instrumentation_stream_interface::remove_stream\"] [:: std :: mem :: offset_of ! (cpu_instrumentation_stream_interface , remove_stream) - 8usize] ; } ; # [doc = \" <add id=\\\"pre_decoder_cb_t DOC\\\">\\n<ndx>pre_decoder_cb_t</ndx>\\n<name index=\\\"true\\\">pre_decoder_cb_t</name>\\n<doc>\\n<doc-item name=\\\"NAME\\\">pre_decoder_cb_t</doc-item>\\n<doc-item name=\\\"SYNOPSIS\\\"><insert id=\\\"pre_decoder_cb_t\\\"/>\\n</doc-item>\\n<doc-item name=\\\"DESCRIPTION\\\">\\n\\nThis callback is used by the <iface>pre_decoder_interface_t</iface> to\\nobserve and modify the instruction byte stream.\\n\\nThe <arg>obj</arg> is the connection object which owns the callback, or\\nNULL, if no connection is used. <arg>cpu</arg> is the cpu which decodes the\\ninstructions. <arg>instruction_start_address</arg> is the address of the\\nfirst byte in the instruction that is being decoded. For x86 this is the\\nlinerar address. <arg>opcode_bytes</arg> is a pointer to the first opcode\\nbyte in the instruction. The <arg>valid_bytes</arg> tells how many bytes\\nthat can read from the first byte.\\n\\nIf the decoded instruction crosses a page boundary this callback is invoked\\ntwice, first with the bytes on the first page and then with additional bytes\\nlocated on the next page. The <arg>instruction_position</arg> tells where in\\nthe instruction opcode the next bytes are added from the second page, and\\nhence will be greater 0 if this occurs.\\n\\nThe <arg>position_physical_address</arg> reflects the physical address of\\nthe <arg>instruction_position</arg>.\\n\\nThe function should return true if the memory was modified, otherwise false.\\n</doc-item>\\n</doc>\\n</add>\\n\\n<add-type id=\\\"pre_decoder_cb_t\\\"></add-type>\"] pub type pre_decoder_cb_t = :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , cpu : * mut conf_object_t , instruction_start_address : generic_address_t , position_physical_address : physical_address_t , opcode_bytes : * mut uint8 , valid_bytes : :: std :: os :: raw :: c_uint , instruction_position : :: std :: os :: raw :: c_uint , user_data : * mut lang_void) -> bool > ; pub type pre_decoder_interface_t = pre_decoder_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct pre_decoder_interface { pub register_pre_decoder_cb : :: std :: option :: Option < unsafe extern \"C\" fn (cpu : * mut conf_object_t , connection : * mut conf_object_t , cb : pre_decoder_cb_t , data : * mut lang_void) -> * mut cpu_cb_handle_t > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of pre_decoder_interface\"] [:: std :: mem :: size_of :: < pre_decoder_interface > () - 8usize] ; [\"Alignment of pre_decoder_interface\"] [:: std :: mem :: align_of :: < pre_decoder_interface > () - 8usize] ; [\"Offset of field: pre_decoder_interface::register_pre_decoder_cb\"] [:: std :: mem :: offset_of ! (pre_decoder_interface , register_pre_decoder_cb) - 0usize] ; } ; pub type vga_update_interface_t = vga_update_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct vga_update_interface { pub refresh : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t) > , pub refresh_all : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t) > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of vga_update_interface\"] [:: std :: mem :: size_of :: < vga_update_interface > () - 16usize] ; [\"Alignment of vga_update_interface\"] [:: std :: mem :: align_of :: < vga_update_interface > () - 8usize] ; [\"Offset of field: vga_update_interface::refresh\"] [:: std :: mem :: offset_of ! (vga_update_interface , refresh) - 0usize] ; [\"Offset of field: vga_update_interface::refresh_all\"] [:: std :: mem :: offset_of ! (vga_update_interface , refresh_all) - 8usize] ; } ; # [repr (u32)] # [doc = \" <add id=\\\"gfx_con_pixel_fmt_t DOC\\\">\\n<ndx>gfx_con_pixel_fmt_t</ndx>\\n<name index=\\\"true\\\">gfx_con_pixel_fmt_t</name>\\n<doc>\\n\\n<doc-item name=\\\"NAME\\\">gfx_con_pixel_fmt_t</doc-item>\\n\\n<doc-item name=\\\"DESCRIPTION\\\"> These constants are used when calling the\\n<fun>put_block</fun> method in the <iface>gfx_con</iface>, to specify the\\npixel format of the provided buffer.\\n\\nSpecifying <tt>GFX_8BIT_INDEXED</tt> means that the buffer uses VGA style\\n8-bit per pixel indexed colors, and that the console palette, specified by\\nthe <fun>set_color</fun> method, should be used.\\n\\nSpecifying <tt>GFX_RGB_565</tt> means that the buffer uses 16 bits per\\npixel, with format <tt>0bRRRRRGGGGGGBBBBB</tt> (in little endian).\\n\\nSpecifying <tt>GFX_RGB_888</tt> means that the buffer uses 24 bits per\\npixel, with format <tt>0xRRGGBB</tt> (in little endian).\\n\\nSpecifying <tt>GFX_xRGB_8888</tt> means that the buffer uses 32 bits per\\npixel, with format <tt>0xXXRRGGBB</tt> (in little endian), where <tt>X</tt>\\nis unused.\\n</doc-item>\\n</doc></add>\"] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub enum gfx_con_pixel_fmt_t { # [doc = \" 0xII\"] GFX_8BIT_INDEXED = 8 , # [doc = \" 0bRRRRRGGGGGGBBBBB\"] GFX_RGB_565 = 16 , # [doc = \" 0xRRGGBB\"] GFX_RGB_888 = 24 , # [doc = \" 0xXXRRGGBB (X=unused)\"] GFX_xRGB_8888 = 32 , } pub type gfx_con_interface_t = gfx_con_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct gfx_con_interface { pub set_color : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , index : uint8 , r : uint8 , g : uint8 , b : uint8) -> :: std :: os :: raw :: c_int > , pub set_size : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , width : :: std :: os :: raw :: c_int , height : :: std :: os :: raw :: c_int) > , pub put_pixel : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , x : :: std :: os :: raw :: c_int , y : :: std :: os :: raw :: c_int , index : uint8) > , pub put_pixel_rgb : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , x : :: std :: os :: raw :: c_int , y : :: std :: os :: raw :: c_int , rgb : uint32) > , pub put_block_old : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , src : * mut uint8 , minx : :: std :: os :: raw :: c_int , miny : :: std :: os :: raw :: c_int , maxx : :: std :: os :: raw :: c_int , maxy : :: std :: os :: raw :: c_int , src_fmt : :: std :: os :: raw :: c_int , src_stride : :: std :: os :: raw :: c_int , unused : :: std :: os :: raw :: c_int) > , pub redraw : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t) > , pub update_keyboard_leds : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , led_change : :: std :: os :: raw :: c_int) > , pub put_pixel_col : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , x : :: std :: os :: raw :: c_int , y : :: std :: os :: raw :: c_int , r : :: std :: os :: raw :: c_int , g : :: std :: os :: raw :: c_int , b : :: std :: os :: raw :: c_int) > , pub put_block : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , block : bytes_t , minx : :: std :: os :: raw :: c_int , miny : :: std :: os :: raw :: c_int , maxx : :: std :: os :: raw :: c_int , maxy : :: std :: os :: raw :: c_int , src_fmt : gfx_con_pixel_fmt_t , src_stride : :: std :: os :: raw :: c_int) > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of gfx_con_interface\"] [:: std :: mem :: size_of :: < gfx_con_interface > () - 72usize] ; [\"Alignment of gfx_con_interface\"] [:: std :: mem :: align_of :: < gfx_con_interface > () - 8usize] ; [\"Offset of field: gfx_con_interface::set_color\"] [:: std :: mem :: offset_of ! (gfx_con_interface , set_color) - 0usize] ; [\"Offset of field: gfx_con_interface::set_size\"] [:: std :: mem :: offset_of ! (gfx_con_interface , set_size) - 8usize] ; [\"Offset of field: gfx_con_interface::put_pixel\"] [:: std :: mem :: offset_of ! (gfx_con_interface , put_pixel) - 16usize] ; [\"Offset of field: gfx_con_interface::put_pixel_rgb\"] [:: std :: mem :: offset_of ! (gfx_con_interface , put_pixel_rgb) - 24usize] ; [\"Offset of field: gfx_con_interface::put_block_old\"] [:: std :: mem :: offset_of ! (gfx_con_interface , put_block_old) - 32usize] ; [\"Offset of field: gfx_con_interface::redraw\"] [:: std :: mem :: offset_of ! (gfx_con_interface , redraw) - 40usize] ; [\"Offset of field: gfx_con_interface::update_keyboard_leds\"] [:: std :: mem :: offset_of ! (gfx_con_interface , update_keyboard_leds) - 48usize] ; [\"Offset of field: gfx_con_interface::put_pixel_col\"] [:: std :: mem :: offset_of ! (gfx_con_interface , put_pixel_col) - 56usize] ; [\"Offset of field: gfx_con_interface::put_block\"] [:: std :: mem :: offset_of ! (gfx_con_interface , put_block) - 64usize] ; } ; # [repr (u32)] # [doc = \" <add id=\\\"abs_pointer_interface_t\\\">\\n\\nInterface implemented by tablet devices. Used by consoles to send touchpad\\nevents to the controller. The <fun>set_state</fun> function is called when\\nsomething changes in the console. The coordinates are given as scaled\\nabsolute scaled values, where (0, 0) is the upper-left corner and (0xffff,\\n0xffff) is the lower-right corner.\\n\\n<insert-until text=\\\"// ADD INTERFACE abs_pointer_interface\\\"/>\\n\\n</add>\\n<add id=\\\"abs_pointer_interface_exec_context\\\">\\nCell Context for all methods.\\n</add>\"] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub enum abs_pointer_buttons_t { Abs_Pointer_Button_Left = 32 , Abs_Pointer_Button_Right = 16 , Abs_Pointer_Button_Middle = 8 , } # [repr (C)] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct abs_pointer_state_t { pub buttons : abs_pointer_buttons_t , pub x : uint16 , pub y : uint16 , pub z : uint16 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of abs_pointer_state_t\"] [:: std :: mem :: size_of :: < abs_pointer_state_t > () - 12usize] ; [\"Alignment of abs_pointer_state_t\"] [:: std :: mem :: align_of :: < abs_pointer_state_t > () - 4usize] ; [\"Offset of field: abs_pointer_state_t::buttons\"] [:: std :: mem :: offset_of ! (abs_pointer_state_t , buttons) - 0usize] ; [\"Offset of field: abs_pointer_state_t::x\"] [:: std :: mem :: offset_of ! (abs_pointer_state_t , x) - 4usize] ; [\"Offset of field: abs_pointer_state_t::y\"] [:: std :: mem :: offset_of ! (abs_pointer_state_t , y) - 6usize] ; [\"Offset of field: abs_pointer_state_t::z\"] [:: std :: mem :: offset_of ! (abs_pointer_state_t , z) - 8usize] ; } ; impl Default for abs_pointer_state_t { fn default () -> Self { let mut s = :: std :: mem :: MaybeUninit :: < Self > :: uninit () ; unsafe { :: std :: ptr :: write_bytes (s . as_mut_ptr () , 0 , 1) ; s . assume_init () } } } pub type abs_pointer_interface_t = abs_pointer_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct abs_pointer_interface { pub set_state : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , state : abs_pointer_state_t) > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of abs_pointer_interface\"] [:: std :: mem :: size_of :: < abs_pointer_interface > () - 8usize] ; [\"Alignment of abs_pointer_interface\"] [:: std :: mem :: align_of :: < abs_pointer_interface > () - 8usize] ; [\"Offset of field: abs_pointer_interface::set_state\"] [:: std :: mem :: offset_of ! (abs_pointer_interface , set_state) - 0usize] ; } ; pub type abs_pointer_activate_interface_t = abs_pointer_activate_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct abs_pointer_activate_interface { pub enable : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t) > , pub disable : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t) > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of abs_pointer_activate_interface\"] [:: std :: mem :: size_of :: < abs_pointer_activate_interface > () - 16usize] ; [\"Alignment of abs_pointer_activate_interface\"] [:: std :: mem :: align_of :: < abs_pointer_activate_interface > () - 8usize] ; [\"Offset of field: abs_pointer_activate_interface::enable\"] [:: std :: mem :: offset_of ! (abs_pointer_activate_interface , enable) - 0usize] ; [\"Offset of field: abs_pointer_activate_interface::disable\"] [:: std :: mem :: offset_of ! (abs_pointer_activate_interface , disable) - 8usize] ; } ; pub type cdrom_media_interface_t = cdrom_media_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct cdrom_media_interface { pub read_toc : :: std :: option :: Option < unsafe extern \"C\" fn (media : * mut conf_object_t , buf : * mut uint8 , msf : :: std :: os :: raw :: c_int , start_track : :: std :: os :: raw :: c_int) -> :: std :: os :: raw :: c_int > , pub capacity : :: std :: option :: Option < unsafe extern \"C\" fn (media : * mut conf_object_t) -> uint32 > , pub read_block : :: std :: option :: Option < unsafe extern \"C\" fn (media : * mut conf_object_t , buf : * mut uint8 , lba : :: std :: os :: raw :: c_int) -> :: std :: os :: raw :: c_int > , pub read_raw_block : :: std :: option :: Option < unsafe extern \"C\" fn (media : * mut conf_object_t , buf : * mut uint8 , lba : :: std :: os :: raw :: c_int) -> :: std :: os :: raw :: c_int > , pub insert : :: std :: option :: Option < unsafe extern \"C\" fn (media : * mut conf_object_t) -> :: std :: os :: raw :: c_int > , pub eject : :: std :: option :: Option < unsafe extern \"C\" fn (media : * mut conf_object_t) > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of cdrom_media_interface\"] [:: std :: mem :: size_of :: < cdrom_media_interface > () - 48usize] ; [\"Alignment of cdrom_media_interface\"] [:: std :: mem :: align_of :: < cdrom_media_interface > () - 8usize] ; [\"Offset of field: cdrom_media_interface::read_toc\"] [:: std :: mem :: offset_of ! (cdrom_media_interface , read_toc) - 0usize] ; [\"Offset of field: cdrom_media_interface::capacity\"] [:: std :: mem :: offset_of ! (cdrom_media_interface , capacity) - 8usize] ; [\"Offset of field: cdrom_media_interface::read_block\"] [:: std :: mem :: offset_of ! (cdrom_media_interface , read_block) - 16usize] ; [\"Offset of field: cdrom_media_interface::read_raw_block\"] [:: std :: mem :: offset_of ! (cdrom_media_interface , read_raw_block) - 24usize] ; [\"Offset of field: cdrom_media_interface::insert\"] [:: std :: mem :: offset_of ! (cdrom_media_interface , insert) - 32usize] ; [\"Offset of field: cdrom_media_interface::eject\"] [:: std :: mem :: offset_of ! (cdrom_media_interface , eject) - 40usize] ; } ; # [repr (u32)] # [doc = \" <add-type id=\\\"concurrency_mode_t def\\\"></add-type>\"] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub enum concurrency_mode_t { # [doc = \" Model uses the Standard Device Model\"] Sim_Concurrency_Mode_Serialized = 1 , # [doc = \" Model uses the Threaded Device Model.\\nDirect memory pages are protected against concurrency.\"] Sim_Concurrency_Mode_Serialized_Memory = 2 , # [doc = \" Model uses the Threaded Device Model.\\nConcurrency can be observed on direct memory pages\"] Sim_Concurrency_Mode_Full = 4 , } pub type concurrency_mode_interface_t = concurrency_mode_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct concurrency_mode_interface { pub supported_modes : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t) -> concurrency_mode_t > , pub current_mode : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t) -> concurrency_mode_t > , pub switch_mode : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , mode : concurrency_mode_t) > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of concurrency_mode_interface\"] [:: std :: mem :: size_of :: < concurrency_mode_interface > () - 24usize] ; [\"Alignment of concurrency_mode_interface\"] [:: std :: mem :: align_of :: < concurrency_mode_interface > () - 8usize] ; [\"Offset of field: concurrency_mode_interface::supported_modes\"] [:: std :: mem :: offset_of ! (concurrency_mode_interface , supported_modes) - 0usize] ; [\"Offset of field: concurrency_mode_interface::current_mode\"] [:: std :: mem :: offset_of ! (concurrency_mode_interface , current_mode) - 8usize] ; [\"Offset of field: concurrency_mode_interface::switch_mode\"] [:: std :: mem :: offset_of ! (concurrency_mode_interface , switch_mode) - 16usize] ; } ; pub type concurrency_group_interface_t = concurrency_group_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct concurrency_group_interface { pub serialized_memory_group : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , group_index : :: std :: os :: raw :: c_uint) -> attr_value_t > , pub execution_group : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , group_index : :: std :: os :: raw :: c_uint) -> attr_value_t > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of concurrency_group_interface\"] [:: std :: mem :: size_of :: < concurrency_group_interface > () - 16usize] ; [\"Alignment of concurrency_group_interface\"] [:: std :: mem :: align_of :: < concurrency_group_interface > () - 8usize] ; [\"Offset of field: concurrency_group_interface::serialized_memory_group\"] [:: std :: mem :: offset_of ! (concurrency_group_interface , serialized_memory_group) - 0usize] ; [\"Offset of field: concurrency_group_interface::execution_group\"] [:: std :: mem :: offset_of ! (concurrency_group_interface , execution_group) - 8usize] ; } ; extern \"C\" { # [doc = \" ADD INTERFACE concurrency_group_interface_t\"] pub fn VT_update_thread_domain_assignments () ; } # [doc = \" <add-type id=\\\"instruction_trace_callback_t def\\\"></add-type>\"] pub type instruction_trace_callback_t = :: std :: option :: Option < unsafe extern \"C\" fn (tracer_data : * mut lang_void , cpu : * mut conf_object_t , la : linear_address_t , va : logical_address_t , pa : physical_address_t , opcode : byte_string_t) > ; pub type exec_trace_interface_t = exec_trace_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct exec_trace_interface { pub register_tracer : :: std :: option :: Option < unsafe extern \"C\" fn (cpu_obj : * mut conf_object_t , tracer : instruction_trace_callback_t , tracer_data : * mut lang_void) > , pub unregister_tracer : :: std :: option :: Option < unsafe extern \"C\" fn (cpu_obj : * mut conf_object_t , tracer : instruction_trace_callback_t , tracer_data : * mut lang_void) > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of exec_trace_interface\"] [:: std :: mem :: size_of :: < exec_trace_interface > () - 16usize] ; [\"Alignment of exec_trace_interface\"] [:: std :: mem :: align_of :: < exec_trace_interface > () - 8usize] ; [\"Offset of field: exec_trace_interface::register_tracer\"] [:: std :: mem :: offset_of ! (exec_trace_interface , register_tracer) - 0usize] ; [\"Offset of field: exec_trace_interface::unregister_tracer\"] [:: std :: mem :: offset_of ! (exec_trace_interface , unregister_tracer) - 8usize] ; } ; pub type component_interface_t = component_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct component_interface { pub pre_instantiate : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t) -> bool > , pub post_instantiate : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t) > , pub create_cell : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t) -> bool > , pub get_slots : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t) -> attr_value_t > , pub get_slot_objects : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t) -> attr_value_t > , pub get_slot_value : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , slot : * const :: std :: os :: raw :: c_char) -> attr_value_t > , pub set_slot_value : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , slot : * const :: std :: os :: raw :: c_char , value : attr_value_t) > , pub has_slot : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , slot : * const :: std :: os :: raw :: c_char) -> bool > , pub add_slot : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , slot : * const :: std :: os :: raw :: c_char) -> bool > , pub del_slot : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , slot : * const :: std :: os :: raw :: c_char) -> bool > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of component_interface\"] [:: std :: mem :: size_of :: < component_interface > () - 80usize] ; [\"Alignment of component_interface\"] [:: std :: mem :: align_of :: < component_interface > () - 8usize] ; [\"Offset of field: component_interface::pre_instantiate\"] [:: std :: mem :: offset_of ! (component_interface , pre_instantiate) - 0usize] ; [\"Offset of field: component_interface::post_instantiate\"] [:: std :: mem :: offset_of ! (component_interface , post_instantiate) - 8usize] ; [\"Offset of field: component_interface::create_cell\"] [:: std :: mem :: offset_of ! (component_interface , create_cell) - 16usize] ; [\"Offset of field: component_interface::get_slots\"] [:: std :: mem :: offset_of ! (component_interface , get_slots) - 24usize] ; [\"Offset of field: component_interface::get_slot_objects\"] [:: std :: mem :: offset_of ! (component_interface , get_slot_objects) - 32usize] ; [\"Offset of field: component_interface::get_slot_value\"] [:: std :: mem :: offset_of ! (component_interface , get_slot_value) - 40usize] ; [\"Offset of field: component_interface::set_slot_value\"] [:: std :: mem :: offset_of ! (component_interface , set_slot_value) - 48usize] ; [\"Offset of field: component_interface::has_slot\"] [:: std :: mem :: offset_of ! (component_interface , has_slot) - 56usize] ; [\"Offset of field: component_interface::add_slot\"] [:: std :: mem :: offset_of ! (component_interface , add_slot) - 64usize] ; [\"Offset of field: component_interface::del_slot\"] [:: std :: mem :: offset_of ! (component_interface , del_slot) - 72usize] ; } ; # [repr (u32)] # [doc = \"<add id=\\\"connector_interface_t\\\">\\n<name index=\\\"true\\\">connector_interface_t</name>\\n\\nThe <iface>connector</iface> interface must be implemented by\\nconnector objects. The interface describes the connector and how it\\ncan be connected to other connectors. A connector is used for\\nconnecting component objects. The connector is just a proxy for the\\nconnection, the connector uses the <iface>component_connector</iface>\\ninterface in the components to setup the connection.\\n\\nThe <fun>type</fun> function returns the connector type as a\\nstring. Two connectors can only be connected if the type is\\nidentical.\\n\\nA hotpluggable connector returns <tt>true</tt> when calling the\\n<fun>hotpluggable</fun> function, otherwise <tt>false</tt>. A\\nhotpluggable connector can be connected before or after the\\ncomponent is instantiated, an non hotpluggable connector must be\\nconnected before the component is instantiated.\\n\\nThe <fun>required</fun> function returns <tt>true</tt> if the\\nconnector must be connected before instantiated, otherwise\\n<tt>false</tt>.\\n\\nA connector can be connected to many connectors, but it is only\\nsupported if the <fun>multi</fun> function return <tt>true</tt>. It\\nis not recommended that a connector support multi connections. A\\ncomponent can instead dynamically create connectors when needed.\\n\\nA connector has a direction; <em>up</em>, <em>down</em> or\\n<em>any</em>. The direction decides in which order the connectors\\nin a component tree are connected and the structure of the tree.\\n\\nConnections are setup in two steps. The first step is to add the\\nconnection, which is done using the <fun>add_destination</fun>\\nfunction. Adding a connection can fail for several reasons and it\\nis implementation dependent how the connection can fail. A\\nconnection can for instance fail because the destination object\\nrequires something that the source component did not pass when\\nchecking the connection. Just adding a connection does not mean\\nthat the components actually connect. The components have to save\\nthe data given with the <fun>add_destination</fun> function. The\\nactual setup of the connection is made in the second step when the\\n<fun>update</fun> function is called, which finalizes the\\nconnection.\\n\\nThe <fun>add_destination</fun> and <fun>remove_destination</fun>\\nfunctions sets the state of the connection. It is first when the\\n<fun>update</fun> function is called when the connection is\\nfinalized. Both <fun>add_destination</fun> and\\n<fun>remove_destination</fun> returns <tt>true</tt> if the call was\\nsuccessful otherwise they return <tt>false</tt>.\\n\\nParameters to the <fun>add_destination</fun> function are the own\\nobject <param>obj</param> and the destination object\\n<param>dst_obj</param>. The destination object must be a port\\nobject and it must implement the <iface>connector</iface>\\ninterface.\\n\\nThe <fun>update</fun> function is called when the component should\\nupdate its current connection status. The status of the connection\\nhas previously been set using the <fun>add_destination</fun>\\nor/and <fun>remove_destination</fun> functions.\\n\\nThe <fun>destination</fun> function returns a list of port objects\\nthat the its connected to. The <fun>destination</fun> function\\nreturns the state of the connection not the finalized state,\\ni.e. the state of the connection before <fun>update</fun>\\nfunctional call.\\n\\nThe <fun>check</fun>, <fun>connect</fun>, and <fun>disconnect</fun>\\nfunctions initiates a connection setup via the connector object. The\\nconnector will forward the setup to the components affected by the\\nconnection via the <iface>component_connector</iface> interface.\\n\\nThe <fun>deletion_requested</fun> function is called after disconnecting\\ncomponents. A dynamic connector might want to return True in order to be\\ndeleted just after the disconnection.\\n\\n<insert-until text=\\\"// ADD INTERFACE connector_interface\\\"/>\\n</add>\\n\\n<add id=\\\"connector_interface_exec_context\\\">\\nGlobal Context for all methods.\\n</add>\"] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub enum connector_direction_t { Sim_Connector_Direction_Up = 0 , Sim_Connector_Direction_Down = 1 , Sim_Connector_Direction_Any = 2 , } pub type connector_interface_t = connector_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct connector_interface { pub type_ : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t) -> * mut :: std :: os :: raw :: c_char > , pub hotpluggable : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t) -> bool > , pub required : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t) -> bool > , pub multi : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t) -> bool > , pub direction : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t) -> connector_direction_t > , pub add_destination : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , connector : * mut conf_object_t) -> bool > , pub remove_destination : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , connector : * mut conf_object_t) -> bool > , # [doc = \" list of\\nconnector objects\"] pub destination : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t) -> attr_value_t > , pub update : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t) > , pub check : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , attr : attr_value_t) -> bool > , pub connect : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , attr : attr_value_t) > , pub disconnect : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t) > , pub deletion_requested : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t) -> bool > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of connector_interface\"] [:: std :: mem :: size_of :: < connector_interface > () - 104usize] ; [\"Alignment of connector_interface\"] [:: std :: mem :: align_of :: < connector_interface > () - 8usize] ; [\"Offset of field: connector_interface::type_\"] [:: std :: mem :: offset_of ! (connector_interface , type_) - 0usize] ; [\"Offset of field: connector_interface::hotpluggable\"] [:: std :: mem :: offset_of ! (connector_interface , hotpluggable) - 8usize] ; [\"Offset of field: connector_interface::required\"] [:: std :: mem :: offset_of ! (connector_interface , required) - 16usize] ; [\"Offset of field: connector_interface::multi\"] [:: std :: mem :: offset_of ! (connector_interface , multi) - 24usize] ; [\"Offset of field: connector_interface::direction\"] [:: std :: mem :: offset_of ! (connector_interface , direction) - 32usize] ; [\"Offset of field: connector_interface::add_destination\"] [:: std :: mem :: offset_of ! (connector_interface , add_destination) - 40usize] ; [\"Offset of field: connector_interface::remove_destination\"] [:: std :: mem :: offset_of ! (connector_interface , remove_destination) - 48usize] ; [\"Offset of field: connector_interface::destination\"] [:: std :: mem :: offset_of ! (connector_interface , destination) - 56usize] ; [\"Offset of field: connector_interface::update\"] [:: std :: mem :: offset_of ! (connector_interface , update) - 64usize] ; [\"Offset of field: connector_interface::check\"] [:: std :: mem :: offset_of ! (connector_interface , check) - 72usize] ; [\"Offset of field: connector_interface::connect\"] [:: std :: mem :: offset_of ! (connector_interface , connect) - 80usize] ; [\"Offset of field: connector_interface::disconnect\"] [:: std :: mem :: offset_of ! (connector_interface , disconnect) - 88usize] ; [\"Offset of field: connector_interface::deletion_requested\"] [:: std :: mem :: offset_of ! (connector_interface , deletion_requested) - 96usize] ; } ; pub type component_connector_interface_t = component_connector_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct component_connector_interface { pub get_check_data : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , connector : * mut conf_object_t) -> attr_value_t > , pub get_connect_data : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , connector : * mut conf_object_t) -> attr_value_t > , pub check : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , connector : * mut conf_object_t , attr : attr_value_t) -> bool > , pub connect : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , connector : * mut conf_object_t , attr : attr_value_t) > , pub disconnect : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , connector : * mut conf_object_t) > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of component_connector_interface\"] [:: std :: mem :: size_of :: < component_connector_interface > () - 40usize] ; [\"Alignment of component_connector_interface\"] [:: std :: mem :: align_of :: < component_connector_interface > () - 8usize] ; [\"Offset of field: component_connector_interface::get_check_data\"] [:: std :: mem :: offset_of ! (component_connector_interface , get_check_data) - 0usize] ; [\"Offset of field: component_connector_interface::get_connect_data\"] [:: std :: mem :: offset_of ! (component_connector_interface , get_connect_data) - 8usize] ; [\"Offset of field: component_connector_interface::check\"] [:: std :: mem :: offset_of ! (component_connector_interface , check) - 16usize] ; [\"Offset of field: component_connector_interface::connect\"] [:: std :: mem :: offset_of ! (component_connector_interface , connect) - 24usize] ; [\"Offset of field: component_connector_interface::disconnect\"] [:: std :: mem :: offset_of ! (component_connector_interface , disconnect) - 32usize] ; } ; pub type disk_component_interface_t = disk_component_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct disk_component_interface { pub size : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t) -> uint64 > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of disk_component_interface\"] [:: std :: mem :: size_of :: < disk_component_interface > () - 8usize] ; [\"Alignment of disk_component_interface\"] [:: std :: mem :: align_of :: < disk_component_interface > () - 8usize] ; [\"Offset of field: disk_component_interface::size\"] [:: std :: mem :: offset_of ! (disk_component_interface , size) - 0usize] ; } ; pub type jit_control_interface_t = jit_control_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct jit_control_interface { pub set_compile_enable : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , enabled : bool) > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of jit_control_interface\"] [:: std :: mem :: size_of :: < jit_control_interface > () - 8usize] ; [\"Alignment of jit_control_interface\"] [:: std :: mem :: align_of :: < jit_control_interface > () - 8usize] ; [\"Offset of field: jit_control_interface::set_compile_enable\"] [:: std :: mem :: offset_of ! (jit_control_interface , set_compile_enable) - 0usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct cpu_list_t { pub size : :: std :: os :: raw :: c_int , pub used : :: std :: os :: raw :: c_int , pub elements : * mut * mut conf_object_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of cpu_list_t\"] [:: std :: mem :: size_of :: < cpu_list_t > () - 16usize] ; [\"Alignment of cpu_list_t\"] [:: std :: mem :: align_of :: < cpu_list_t > () - 8usize] ; [\"Offset of field: cpu_list_t::size\"] [:: std :: mem :: offset_of ! (cpu_list_t , size) - 0usize] ; [\"Offset of field: cpu_list_t::used\"] [:: std :: mem :: offset_of ! (cpu_list_t , used) - 4usize] ; [\"Offset of field: cpu_list_t::elements\"] [:: std :: mem :: offset_of ! (cpu_list_t , elements) - 8usize] ; } ; impl Default for cpu_list_t { fn default () -> Self { let mut s = :: std :: mem :: MaybeUninit :: < Self > :: uninit () ; unsafe { :: std :: ptr :: write_bytes (s . as_mut_ptr () , 0 , 1) ; s . assume_init () } } } pub type cpu_group_interface_t = cpu_group_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct cpu_group_interface { pub get_cpu_list : :: std :: option :: Option < unsafe extern \"C\" fn (cpu_group : * mut conf_object_t) -> * const cpu_list_t > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of cpu_group_interface\"] [:: std :: mem :: size_of :: < cpu_group_interface > () - 8usize] ; [\"Alignment of cpu_group_interface\"] [:: std :: mem :: align_of :: < cpu_group_interface > () - 8usize] ; [\"Offset of field: cpu_group_interface::get_cpu_list\"] [:: std :: mem :: offset_of ! (cpu_group_interface , get_cpu_list) - 0usize] ; } ; extern \"C\" { pub fn VT_register_new_code_block_listener (func : :: std :: option :: Option < unsafe extern \"C\" fn (data : * mut :: std :: os :: raw :: c_void , start : * mut :: std :: os :: raw :: c_void , len : usize) > , data : * mut :: std :: os :: raw :: c_void) ; } # [repr (C)] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct prop_desc_t { # [doc = \" The version of the struct used\"] pub abi_version : :: std :: os :: raw :: c_uint , # [doc = \" for debugging purposes\"] pub name : * const :: std :: os :: raw :: c_char , pub free_data : :: std :: option :: Option < unsafe extern \"C\" fn (arg1 : * mut :: std :: os :: raw :: c_void) > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of prop_desc_t\"] [:: std :: mem :: size_of :: < prop_desc_t > () - 24usize] ; [\"Alignment of prop_desc_t\"] [:: std :: mem :: align_of :: < prop_desc_t > () - 8usize] ; [\"Offset of field: prop_desc_t::abi_version\"] [:: std :: mem :: offset_of ! (prop_desc_t , abi_version) - 0usize] ; [\"Offset of field: prop_desc_t::name\"] [:: std :: mem :: offset_of ! (prop_desc_t , name) - 8usize] ; [\"Offset of field: prop_desc_t::free_data\"] [:: std :: mem :: offset_of ! (prop_desc_t , free_data) - 16usize] ; } ; impl Default for prop_desc_t { fn default () -> Self { let mut s = :: std :: mem :: MaybeUninit :: < Self > :: uninit () ; unsafe { :: std :: ptr :: write_bytes (s . as_mut_ptr () , 0 , 1) ; s . assume_init () } } } pub type prop_id_t = * const prop_desc_t ; extern \"C\" { pub fn VT_set_object_prop (obj : * mut conf_object_t , prop : prop_id_t , data : * mut :: std :: os :: raw :: c_void) ; } extern \"C\" { pub fn VT_get_object_prop (obj : * const conf_object_t , prop : prop_id_t) -> * mut :: std :: os :: raw :: c_void ; } # [doc = \" POSIX.1g specifies this type name for the `sa_family\' member.\"] pub type sa_family_t = :: std :: os :: raw :: c_ushort ; # [doc = \" Structure describing a generic socket address.\"] # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct sockaddr { pub sa_family : sa_family_t , # [doc = \" Address data.\"] pub sa_data : [:: std :: os :: raw :: c_char ; 14usize] , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of sockaddr\"] [:: std :: mem :: size_of :: < sockaddr > () - 16usize] ; [\"Alignment of sockaddr\"] [:: std :: mem :: align_of :: < sockaddr > () - 2usize] ; [\"Offset of field: sockaddr::sa_family\"] [:: std :: mem :: offset_of ! (sockaddr , sa_family) - 0usize] ; [\"Offset of field: sockaddr::sa_data\"] [:: std :: mem :: offset_of ! (sockaddr , sa_data) - 2usize] ; } ; # [doc = \" This is a name for the 48 bit ethernet address available on many\\nsystems.\"] # [repr (C , packed)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct ether_addr { pub ether_addr_octet : [u8 ; 6usize] , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of ether_addr\"] [:: std :: mem :: size_of :: < ether_addr > () - 6usize] ; [\"Alignment of ether_addr\"] [:: std :: mem :: align_of :: < ether_addr > () - 1usize] ; [\"Offset of field: ether_addr::ether_addr_octet\"] [:: std :: mem :: offset_of ! (ether_addr , ether_addr_octet) - 0usize] ; } ; extern \"C\" { pub fn init_vtutils () ; } extern \"C\" { pub fn vtutils_set_low_memory_handler (f : :: std :: option :: Option < unsafe extern \"C\" fn () >) ; } extern \"C\" { pub fn vtutils_set_assert_error_handler (f : :: std :: option :: Option < unsafe extern \"C\" fn (line : :: std :: os :: raw :: c_int , file : * const :: std :: os :: raw :: c_char , mod_date : * const :: std :: os :: raw :: c_char , message : * const :: std :: os :: raw :: c_char) >) ; } extern \"C\" { pub fn vtutils_set_fatal_error_handler (f : :: std :: option :: Option < unsafe extern \"C\" fn (msg : * const :: std :: os :: raw :: c_char) >) ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct rand_state { _unused : [u8 ; 0] , } pub type rand_state_t = rand_state ; extern \"C\" { pub fn genrand_init (s : uint32) -> * mut rand_state_t ; } extern \"C\" { pub fn genrand_init_array (init_key : * mut uint32 , key_length : :: std :: os :: raw :: c_uint) -> * mut rand_state_t ; } extern \"C\" { pub fn genrand_destroy (rs : * mut rand_state_t) ; } extern \"C\" { pub fn genrand_uint32 (rs : * mut rand_state_t) -> uint32 ; } extern \"C\" { pub fn genrand_uint64 (rs : * mut rand_state_t) -> uint64 ; } extern \"C\" { pub fn genrand_range (rs : * mut rand_state_t , max : uint64) -> uint64 ; } extern \"C\" { pub fn genrand_double (rs : * mut rand_state_t) -> f64 ; } extern \"C\" { pub fn genrand_serialization (rs : * const rand_state_t) -> bytes_t ; } extern \"C\" { pub fn genrand_restore (rs : * mut rand_state_t , serialization : bytes_t) -> bool ; } extern \"C\" { pub fn double_hex_str (buf : * mut :: std :: os :: raw :: c_char , _d : f64 , type_ : :: std :: os :: raw :: c_int , sign : :: std :: os :: raw :: c_int) ; } extern \"C\" { pub fn fphex_strtod (nptr : * const :: std :: os :: raw :: c_char , endptr : * mut * mut :: std :: os :: raw :: c_char) -> f64 ; } pub type interval_set_t = interval_set ; pub type interval_set_iter_t = interval_set_iter ; # [repr (C)] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct range_node_t { pub start : uint64 , pub end : uint64 , pub ptr : * mut :: std :: os :: raw :: c_void , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of range_node_t\"] [:: std :: mem :: size_of :: < range_node_t > () - 24usize] ; [\"Alignment of range_node_t\"] [:: std :: mem :: align_of :: < range_node_t > () - 8usize] ; [\"Offset of field: range_node_t::start\"] [:: std :: mem :: offset_of ! (range_node_t , start) - 0usize] ; [\"Offset of field: range_node_t::end\"] [:: std :: mem :: offset_of ! (range_node_t , end) - 8usize] ; [\"Offset of field: range_node_t::ptr\"] [:: std :: mem :: offset_of ! (range_node_t , ptr) - 16usize] ; } ; impl Default for range_node_t { fn default () -> Self { let mut s = :: std :: mem :: MaybeUninit :: < Self > :: uninit () ; unsafe { :: std :: ptr :: write_bytes (s . as_mut_ptr () , 0 , 1) ; s . assume_init () } } } # [repr (C)] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct interval_section { # [doc = \" start of this section\"] pub start : uint64 , # [doc = \" NULL if no intervals here\"] pub intervals : * mut interval_bucket , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of interval_section\"] [:: std :: mem :: size_of :: < interval_section > () - 16usize] ; [\"Alignment of interval_section\"] [:: std :: mem :: align_of :: < interval_section > () - 8usize] ; [\"Offset of field: interval_section::start\"] [:: std :: mem :: offset_of ! (interval_section , start) - 0usize] ; [\"Offset of field: interval_section::intervals\"] [:: std :: mem :: offset_of ! (interval_section , intervals) - 8usize] ; } ; impl Default for interval_section { fn default () -> Self { let mut s = :: std :: mem :: MaybeUninit :: < Self > :: uninit () ; unsafe { :: std :: ptr :: write_bytes (s . as_mut_ptr () , 0 , 1) ; s . assume_init () } } } # [repr (C)] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct interval_set { pub sections : interval_set__bindgen_ty_1 , } # [repr (C)] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct interval_set__bindgen_ty_1 { pub size : :: std :: os :: raw :: c_int , pub used : :: std :: os :: raw :: c_int , pub elements : * mut interval_section , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of interval_set__bindgen_ty_1\"] [:: std :: mem :: size_of :: < interval_set__bindgen_ty_1 > () - 16usize] ; [\"Alignment of interval_set__bindgen_ty_1\"] [:: std :: mem :: align_of :: < interval_set__bindgen_ty_1 > () - 8usize] ; [\"Offset of field: interval_set__bindgen_ty_1::size\"] [:: std :: mem :: offset_of ! (interval_set__bindgen_ty_1 , size) - 0usize] ; [\"Offset of field: interval_set__bindgen_ty_1::used\"] [:: std :: mem :: offset_of ! (interval_set__bindgen_ty_1 , used) - 4usize] ; [\"Offset of field: interval_set__bindgen_ty_1::elements\"] [:: std :: mem :: offset_of ! (interval_set__bindgen_ty_1 , elements) - 8usize] ; } ; impl Default for interval_set__bindgen_ty_1 { fn default () -> Self { let mut s = :: std :: mem :: MaybeUninit :: < Self > :: uninit () ; unsafe { :: std :: ptr :: write_bytes (s . as_mut_ptr () , 0 , 1) ; s . assume_init () } } } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of interval_set\"] [:: std :: mem :: size_of :: < interval_set > () - 16usize] ; [\"Alignment of interval_set\"] [:: std :: mem :: align_of :: < interval_set > () - 8usize] ; [\"Offset of field: interval_set::sections\"] [:: std :: mem :: offset_of ! (interval_set , sections) - 0usize] ; } ; impl Default for interval_set { fn default () -> Self { let mut s = :: std :: mem :: MaybeUninit :: < Self > :: uninit () ; unsafe { :: std :: ptr :: write_bytes (s . as_mut_ptr () , 0 , 1) ; s . assume_init () } } } extern \"C\" { pub fn init_interval (is : * mut interval_set_t , allow_overlap : :: std :: os :: raw :: c_int) ; } # [repr (C)] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct interval_set_iter { pub is : * const interval_set_t , pub start : uint64 , pub end : uint64 , # [doc = \" section index\"] pub sect : :: std :: os :: raw :: c_uint , # [doc = \" interval index\"] pub inum : :: std :: os :: raw :: c_uint , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of interval_set_iter\"] [:: std :: mem :: size_of :: < interval_set_iter > () - 32usize] ; [\"Alignment of interval_set_iter\"] [:: std :: mem :: align_of :: < interval_set_iter > () - 8usize] ; [\"Offset of field: interval_set_iter::is\"] [:: std :: mem :: offset_of ! (interval_set_iter , is) - 0usize] ; [\"Offset of field: interval_set_iter::start\"] [:: std :: mem :: offset_of ! (interval_set_iter , start) - 8usize] ; [\"Offset of field: interval_set_iter::end\"] [:: std :: mem :: offset_of ! (interval_set_iter , end) - 16usize] ; [\"Offset of field: interval_set_iter::sect\"] [:: std :: mem :: offset_of ! (interval_set_iter , sect) - 24usize] ; [\"Offset of field: interval_set_iter::inum\"] [:: std :: mem :: offset_of ! (interval_set_iter , inum) - 28usize] ; } ; impl Default for interval_set_iter { fn default () -> Self { let mut s = :: std :: mem :: MaybeUninit :: < Self > :: uninit () ; unsafe { :: std :: ptr :: write_bytes (s . as_mut_ptr () , 0 , 1) ; s . assume_init () } } } extern \"C\" { pub fn new_interval (dummy : :: std :: os :: raw :: c_int) -> * mut interval_set_t ; } extern \"C\" { pub fn insert_interval (is : * mut interval_set_t , start : uint64 , end : uint64 , ptr : * mut :: std :: os :: raw :: c_void) ; } extern \"C\" { pub fn get_interval_ptr (is : * mut interval_set_t , address : uint64) -> * mut :: std :: os :: raw :: c_void ; } extern \"C\" { pub fn get_interval_vector (is : * mut interval_set_t , address : uint64 , res : * mut * mut range_node_t) -> :: std :: os :: raw :: c_int ; } extern \"C\" { pub fn get_interval_vector_and_range (is : * mut interval_set_t , address : uint64 , res : * mut * mut range_node_t , first_address : * mut uint64 , last_address : * mut uint64) -> :: std :: os :: raw :: c_int ; } extern \"C\" { pub fn get_lower_interval_ptr (is : * mut interval_set_t , address : uint64) -> * mut :: std :: os :: raw :: c_void ; } extern \"C\" { pub fn get_higher_interval_ptr (is : * mut interval_set_t , address : uint64) -> * mut :: std :: os :: raw :: c_void ; } extern \"C\" { pub fn touch_interval (is : * mut interval_set_t , start : uint64 , end : uint64) -> :: std :: os :: raw :: c_int ; } pub type intervals_func_t = :: std :: option :: Option < unsafe extern \"C\" fn (start : uint64 , end : uint64 , el : * mut :: std :: os :: raw :: c_void , data : * mut :: std :: os :: raw :: c_void) > ; extern \"C\" { pub fn for_all_intervals (is : * mut interval_set_t , f : intervals_func_t , data : * mut :: std :: os :: raw :: c_void) ; } extern \"C\" { pub fn for_some_intervals (is : * mut interval_set_t , start : uint64 , end : uint64 , f : intervals_func_t , data : * mut :: std :: os :: raw :: c_void) ; } extern \"C\" { pub fn remove_interval (is : * mut interval_set_t , start : uint64 , end : uint64 , ptr : * mut :: std :: os :: raw :: c_void) ; } extern \"C\" { pub fn clear_interval (is : * mut interval_set_t) ; } extern \"C\" { pub fn free_interval (is : * mut interval_set_t) ; } extern \"C\" { pub fn interval_set_new_iter (is : * const interval_set_t , it : * mut interval_set_iter_t , start : uint64 , end : uint64) ; } extern \"C\" { pub fn interval_set_iter_next (it : * mut interval_set_iter_t) -> * mut range_node_t ; } # [repr (C)] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct str_vec_t { pub v : str_vec_t__bindgen_ty_1 , } # [repr (C)] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct str_vec_t__bindgen_ty_1 { pub size : :: std :: os :: raw :: c_int , pub used : :: std :: os :: raw :: c_int , pub elements : * mut * mut :: std :: os :: raw :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of str_vec_t__bindgen_ty_1\"] [:: std :: mem :: size_of :: < str_vec_t__bindgen_ty_1 > () - 16usize] ; [\"Alignment of str_vec_t__bindgen_ty_1\"] [:: std :: mem :: align_of :: < str_vec_t__bindgen_ty_1 > () - 8usize] ; [\"Offset of field: str_vec_t__bindgen_ty_1::size\"] [:: std :: mem :: offset_of ! (str_vec_t__bindgen_ty_1 , size) - 0usize] ; [\"Offset of field: str_vec_t__bindgen_ty_1::used\"] [:: std :: mem :: offset_of ! (str_vec_t__bindgen_ty_1 , used) - 4usize] ; [\"Offset of field: str_vec_t__bindgen_ty_1::elements\"] [:: std :: mem :: offset_of ! (str_vec_t__bindgen_ty_1 , elements) - 8usize] ; } ; impl Default for str_vec_t__bindgen_ty_1 { fn default () -> Self { let mut s = :: std :: mem :: MaybeUninit :: < Self > :: uninit () ; unsafe { :: std :: ptr :: write_bytes (s . as_mut_ptr () , 0 , 1) ; s . assume_init () } } } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of str_vec_t\"] [:: std :: mem :: size_of :: < str_vec_t > () - 16usize] ; [\"Alignment of str_vec_t\"] [:: std :: mem :: align_of :: < str_vec_t > () - 8usize] ; [\"Offset of field: str_vec_t::v\"] [:: std :: mem :: offset_of ! (str_vec_t , v) - 0usize] ; } ; impl Default for str_vec_t { fn default () -> Self { let mut s = :: std :: mem :: MaybeUninit :: < Self > :: uninit () ; unsafe { :: std :: ptr :: write_bytes (s . as_mut_ptr () , 0 , 1) ; s . assume_init () } } } extern \"C\" { pub fn str_vec_free (sv : * mut str_vec_t) ; } extern \"C\" { pub fn str_vec_add (sv : * mut str_vec_t , s : * const :: std :: os :: raw :: c_char) ; } extern \"C\" { pub fn str_vec_add_stealing (sv : * mut str_vec_t , s : * mut :: std :: os :: raw :: c_char) ; } extern \"C\" { pub fn str_vec_sort (sv : * mut str_vec_t) ; } extern \"C\" { pub fn str_vec_find (sv : * const str_vec_t , s : * const :: std :: os :: raw :: c_char) -> * const :: std :: os :: raw :: c_char ; } extern \"C\" { pub fn str_vec_remove (sv : * mut str_vec_t , s : * const :: std :: os :: raw :: c_char) ; } # [repr (u32)] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub enum vtopt_arguments { vtopt_no_argument = 0 , vtopt_required_argument = 1 , vtopt_optional_argument = 2 , } # [repr (C)] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct vtoption { pub name : * const :: std :: os :: raw :: c_char , pub has_arg : vtopt_arguments , pub flag : * mut :: std :: os :: raw :: c_int , pub val : :: std :: os :: raw :: c_int , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of vtoption\"] [:: std :: mem :: size_of :: < vtoption > () - 32usize] ; [\"Alignment of vtoption\"] [:: std :: mem :: align_of :: < vtoption > () - 8usize] ; [\"Offset of field: vtoption::name\"] [:: std :: mem :: offset_of ! (vtoption , name) - 0usize] ; [\"Offset of field: vtoption::has_arg\"] [:: std :: mem :: offset_of ! (vtoption , has_arg) - 8usize] ; [\"Offset of field: vtoption::flag\"] [:: std :: mem :: offset_of ! (vtoption , flag) - 16usize] ; [\"Offset of field: vtoption::val\"] [:: std :: mem :: offset_of ! (vtoption , val) - 24usize] ; } ; impl Default for vtoption { fn default () -> Self { let mut s = :: std :: mem :: MaybeUninit :: < Self > :: uninit () ; unsafe { :: std :: ptr :: write_bytes (s . as_mut_ptr () , 0 , 1) ; s . assume_init () } } } extern \"C\" { pub fn get_vtoptind () -> * mut :: std :: os :: raw :: c_int ; } extern \"C\" { pub fn get_vtopterr () -> * mut :: std :: os :: raw :: c_int ; } extern \"C\" { pub fn get_vtoptopt () -> * mut :: std :: os :: raw :: c_int ; } extern \"C\" { pub fn vtgetopt_long (argc : :: std :: os :: raw :: c_int , argv : * mut * const :: std :: os :: raw :: c_char , optstring : * const :: std :: os :: raw :: c_char , longopts : * const vtoption , longindex : * mut :: std :: os :: raw :: c_int) -> :: std :: os :: raw :: c_int ; } extern \"C\" { pub fn vtgetopt_restart () ; } extern \"C\" { pub fn vtether_aton_r (a : * const :: std :: os :: raw :: c_char , fill : * mut ether_addr) -> * mut ether_addr ; } extern \"C\" { pub fn vtether_ntoa_r (n : * const ether_addr , fill : * mut :: std :: os :: raw :: c_char) -> * const :: std :: os :: raw :: c_char ; } extern \"C\" { pub fn vtinet_ntoa_r (ip : uint32 , fill : * mut :: std :: os :: raw :: c_char) -> * const :: std :: os :: raw :: c_char ; } extern \"C\" { pub fn vtinet_ntop (af : :: std :: os :: raw :: c_int , src : * const :: std :: os :: raw :: c_void , dst : * mut :: std :: os :: raw :: c_char , dstlen : :: std :: os :: raw :: c_uint) -> * const :: std :: os :: raw :: c_char ; } pub type os_dlhandle_t = * mut :: std :: os :: raw :: c_void ; pub type os_dlsymbol_t = * mut :: std :: os :: raw :: c_void ; extern \"C\" { pub fn os_dlopen (filename : * const :: std :: os :: raw :: c_char , flags : :: std :: os :: raw :: c_int) -> os_dlhandle_t ; } extern \"C\" { pub fn os_dlclose (handle : os_dlhandle_t) -> :: std :: os :: raw :: c_int ; } extern \"C\" { pub fn os_dllookup (handle : os_dlhandle_t , symbol : * const :: std :: os :: raw :: c_char) -> os_dlsymbol_t ; } # [repr (C)] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct os_dlinfo_t { # [doc = \" Name of symbol at or before queried addr\\n(statically allocated). May be NULL.\"] pub sym_name : * const :: std :: os :: raw :: c_char , # [doc = \" symbol start address\"] pub sym_base : * mut :: std :: os :: raw :: c_void , # [doc = \" file queried addr belongs to\"] pub file_name : * const :: std :: os :: raw :: c_char , # [doc = \" file start address\"] pub file_base : * mut :: std :: os :: raw :: c_void , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of os_dlinfo_t\"] [:: std :: mem :: size_of :: < os_dlinfo_t > () - 32usize] ; [\"Alignment of os_dlinfo_t\"] [:: std :: mem :: align_of :: < os_dlinfo_t > () - 8usize] ; [\"Offset of field: os_dlinfo_t::sym_name\"] [:: std :: mem :: offset_of ! (os_dlinfo_t , sym_name) - 0usize] ; [\"Offset of field: os_dlinfo_t::sym_base\"] [:: std :: mem :: offset_of ! (os_dlinfo_t , sym_base) - 8usize] ; [\"Offset of field: os_dlinfo_t::file_name\"] [:: std :: mem :: offset_of ! (os_dlinfo_t , file_name) - 16usize] ; [\"Offset of field: os_dlinfo_t::file_base\"] [:: std :: mem :: offset_of ! (os_dlinfo_t , file_base) - 24usize] ; } ; impl Default for os_dlinfo_t { fn default () -> Self { let mut s = :: std :: mem :: MaybeUninit :: < Self > :: uninit () ; unsafe { :: std :: ptr :: write_bytes (s . as_mut_ptr () , 0 , 1) ; s . assume_init () } } } extern \"C\" { pub fn os_dladdr (addr : * mut :: std :: os :: raw :: c_void , ret : * mut os_dlinfo_t) -> bool ; } extern \"C\" { pub fn os_get_last_error () -> :: std :: os :: raw :: c_int ; } extern \"C\" { pub fn os_last_error_was_error () -> :: std :: os :: raw :: c_int ; } extern \"C\" { pub fn os_describe_last_error () -> * mut :: std :: os :: raw :: c_char ; } extern \"C\" { pub fn os_describe_last_dlerror () -> * mut :: std :: os :: raw :: c_char ; } extern \"C\" { pub fn os_describe_last_socket_error () -> * const :: std :: os :: raw :: c_char ; } extern \"C\" { pub fn os_get_file_size (filename : * const :: std :: os :: raw :: c_char) -> int64 ; } extern \"C\" { pub fn os_file_exists (filename : * const :: std :: os :: raw :: c_char) -> bool ; } extern \"C\" { pub fn os_listdir (dir : * const :: std :: os :: raw :: c_char) -> * mut str_vec_t ; } extern \"C\" { pub fn os_normalize_path (path : * const :: std :: os :: raw :: c_char) -> * mut :: std :: os :: raw :: c_char ; } extern \"C\" { pub fn os_isdir (arg1 : * const :: std :: os :: raw :: c_char) -> bool ; } extern \"C\" { pub fn os_isfile (filename : * const :: std :: os :: raw :: c_char) -> bool ; } extern \"C\" { pub fn os_isabs (path : * const :: std :: os :: raw :: c_char) -> bool ; } extern \"C\" { pub fn os_mkdir (filename : * const :: std :: os :: raw :: c_char , mode : :: std :: os :: raw :: c_int) -> :: std :: os :: raw :: c_int ; } extern \"C\" { pub fn os_chdir (filename : * const :: std :: os :: raw :: c_char) -> :: std :: os :: raw :: c_int ; } extern \"C\" { pub fn os_getcwd () -> * mut :: std :: os :: raw :: c_char ; } extern \"C\" { pub fn os_getcwd_nice () -> * mut :: std :: os :: raw :: c_char ; } extern \"C\" { pub fn os_absolutify (path : * const :: std :: os :: raw :: c_char , base : * const :: std :: os :: raw :: c_char) -> * mut :: std :: os :: raw :: c_char ; } extern \"C\" { # [doc = \" Using os_[f]open instead of [f]open ensures that shortcuts are\\nproperly followed under Windows.\"] pub fn os_fopen (path : * const :: std :: os :: raw :: c_char , mode : * const :: std :: os :: raw :: c_char) -> * mut FILE ; } extern \"C\" { pub fn os_fclose (stream : * mut FILE) -> :: std :: os :: raw :: c_int ; } extern \"C\" { pub fn os_basename (path : * const :: std :: os :: raw :: c_char) -> * const :: std :: os :: raw :: c_char ; } extern \"C\" { pub fn os_path_join (path : * mut strbuf_t , name : * const :: std :: os :: raw :: c_char) ; } extern \"C\" { pub fn os_clean_path (path : * mut :: std :: os :: raw :: c_char) ; } extern \"C\" { pub fn os_open (path : * const :: std :: os :: raw :: c_char , flags : :: std :: os :: raw :: c_int , ...) -> :: std :: os :: raw :: c_int ; } extern \"C\" { pub fn os_open_vararg (path : * const :: std :: os :: raw :: c_char , flags : :: std :: os :: raw :: c_int , ap : * mut __va_list_tag) -> :: std :: os :: raw :: c_int ; } extern \"C\" { pub fn os_lseek (fd : :: std :: os :: raw :: c_int , off : int64 , whence : :: std :: os :: raw :: c_int) -> int64 ; } extern \"C\" { pub fn os_ftruncate (fd : :: std :: os :: raw :: c_int , newsize : uint64) -> :: std :: os :: raw :: c_int ; } extern \"C\" { pub fn os_make_sparse (fd : :: std :: os :: raw :: c_int) -> :: std :: os :: raw :: c_int ; } extern \"C\" { pub fn os_pread (fd : :: std :: os :: raw :: c_int , buf : * mut :: std :: os :: raw :: c_void , nbyte : usize , offset : uint64) -> :: std :: os :: raw :: c_int ; } extern \"C\" { pub fn os_pwrite (fd : :: std :: os :: raw :: c_int , buf : * const :: std :: os :: raw :: c_void , nbyte : usize , offset : uint64) -> :: std :: os :: raw :: c_int ; } extern \"C\" { pub fn os_close_descriptors (from : :: std :: os :: raw :: c_int , except : :: std :: os :: raw :: c_int) ; } # [repr (u32)] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub enum os_socket_status_t { Os_No_Error = 0 , Os_Connection_Refused = 1 , Os_Connection_Reset = 2 , Os_Timed_Out = 3 , Os_Net_Unreach = 4 , Os_Host_Unreach = 5 , Os_In_Progress = 6 , Os_Other = 7 , } extern \"C\" { pub fn os_initialize_sockets () ; } extern \"C\" { pub fn os_socket_close (sock : socket_t) -> :: std :: os :: raw :: c_int ; } extern \"C\" { pub fn os_socket_write (central_fd : socket_t , buf : * const :: std :: os :: raw :: c_void , len : :: std :: os :: raw :: c_int) -> :: std :: os :: raw :: c_int ; } extern \"C\" { pub fn os_socket_write_non_blocking (central_fd : socket_t , buf : * const :: std :: os :: raw :: c_void , len : :: std :: os :: raw :: c_int) -> :: std :: os :: raw :: c_int ; } extern \"C\" { pub fn os_set_socket_blocking (s : socket_t , blocking : bool) ; } extern \"C\" { pub fn os_socket_read (central_fd : socket_t , buf : * mut :: std :: os :: raw :: c_void , len : :: std :: os :: raw :: c_int) -> :: std :: os :: raw :: c_int ; } extern \"C\" { pub fn os_gethostname () -> * mut :: std :: os :: raw :: c_char ; } extern \"C\" { pub fn os_set_socket_non_blocking (s : socket_t) -> :: std :: os :: raw :: c_int ; } extern \"C\" { pub fn os_set_socket_reuseaddr (s : socket_t) -> :: std :: os :: raw :: c_int ; } extern \"C\" { pub fn os_set_socket_nodelay (s : socket_t) -> :: std :: os :: raw :: c_int ; } extern \"C\" { pub fn os_socket_connect (s : socket_t , serv_addr : * const sockaddr , addr_len : usize) -> os_socket_status_t ; } extern \"C\" { pub fn os_socket_get_status (s : socket_t) -> os_socket_status_t ; } extern \"C\" { pub fn os_last_socket_error () -> os_socket_status_t ; } extern \"C\" { pub fn os_copy (src : * const :: std :: os :: raw :: c_char , dst : * const :: std :: os :: raw :: c_char) -> :: std :: os :: raw :: c_int ; } extern \"C\" { pub fn os_rename (src : * const :: std :: os :: raw :: c_char , dst : * const :: std :: os :: raw :: c_char) -> :: std :: os :: raw :: c_int ; } extern \"C\" { pub fn os_dirname (filename : * const :: std :: os :: raw :: c_char) -> * mut :: std :: os :: raw :: c_char ; } extern \"C\" { pub fn os_quote_filename (file : * const :: std :: os :: raw :: c_char) -> * mut :: std :: os :: raw :: c_char ; } extern \"C\" { pub fn os_remove (filename : * const :: std :: os :: raw :: c_char) -> :: std :: os :: raw :: c_int ; } extern \"C\" { pub fn os_rmdir (dirname : * const :: std :: os :: raw :: c_char) -> :: std :: os :: raw :: c_int ; } extern \"C\" { pub fn os_access (path : * const :: std :: os :: raw :: c_char , mode : :: std :: os :: raw :: c_int) -> :: std :: os :: raw :: c_int ; } extern \"C\" { pub fn os_millisleep (t : :: std :: os :: raw :: c_int) ; } extern \"C\" { pub fn os_current_time () -> uint64 ; } extern \"C\" { pub fn os_current_time_us () -> uint64 ; } extern \"C\" { pub fn os_user_cpu_time_us () -> uint64 ; } extern \"C\" { pub fn os_get_library_path () -> * mut :: std :: os :: raw :: c_char ; } extern \"C\" { pub fn os_getpid () -> :: std :: os :: raw :: c_uint ; } extern \"C\" { pub fn os_host_phys_mem_size () -> uint64 ; } extern \"C\" { pub fn os_host_virt_mem_size () -> uint64 ; } extern \"C\" { pub fn os_host_ncpus () -> :: std :: os :: raw :: c_uint ; } extern \"C\" { pub fn os_is_same_file (name1 : * const :: std :: os :: raw :: c_char , name2 : * const :: std :: os :: raw :: c_char) -> bool ; } extern \"C\" { pub fn os_make_readable_path (path : * const :: std :: os :: raw :: c_char) -> * mut :: std :: os :: raw :: c_char ; } extern \"C\" { pub fn os_dir_contains_path (parent : * const :: std :: os :: raw :: c_char , path : * const :: std :: os :: raw :: c_char) -> bool ; } extern \"C\" { pub fn os_create_unique_autoremoved_file (name : * const :: std :: os :: raw :: c_char) -> :: std :: os :: raw :: c_int ; } # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct os_stat_t { # [doc = \" File size in bytes.\"] pub size : uint64 , # [doc = \" Last modification time, in seconds from epoch.\"] pub mtime : uint64 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of os_stat_t\"] [:: std :: mem :: size_of :: < os_stat_t > () - 16usize] ; [\"Alignment of os_stat_t\"] [:: std :: mem :: align_of :: < os_stat_t > () - 8usize] ; [\"Offset of field: os_stat_t::size\"] [:: std :: mem :: offset_of ! (os_stat_t , size) - 0usize] ; [\"Offset of field: os_stat_t::mtime\"] [:: std :: mem :: offset_of ! (os_stat_t , mtime) - 8usize] ; } ; extern \"C\" { pub fn os_stat (file : * const :: std :: os :: raw :: c_char , result : * mut os_stat_t) -> :: std :: os :: raw :: c_int ; } extern \"C\" { pub fn os_get_user_name () -> * mut :: std :: os :: raw :: c_char ; } # [repr (u32)] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub enum os_mmap_flags_t { Os_Mmap_Read = 1 , Os_Mmap_Write = 2 , Os_Mmap_Exec = 4 , # [doc = \" Writes are shared and take effect in the file;\\notherwise they are private.\"] Os_Mmap_Shared = 8 , } extern \"C\" { pub fn os_mmap (fd : :: std :: os :: raw :: c_int , offset : uint64 , size : uint64 , flags : os_mmap_flags_t) -> * mut :: std :: os :: raw :: c_void ; } extern \"C\" { pub fn os_munmap (block : * mut :: std :: os :: raw :: c_void , size : uint64) ; } extern \"C\" { pub fn os_set_thread_name (name : * const :: std :: os :: raw :: c_char) ; } extern \"C\" { pub fn os_get_thread_name (name : * mut :: std :: os :: raw :: c_char) -> bool ; } extern \"C\" { pub fn os_setenv (name : * const :: std :: os :: raw :: c_char , value : * const :: std :: os :: raw :: c_char , overwrite : :: std :: os :: raw :: c_int) -> :: std :: os :: raw :: c_int ; } extern \"C\" { pub fn os_path_expand_user (path : * const :: std :: os :: raw :: c_char) -> * mut :: std :: os :: raw :: c_char ; } extern \"C\" { pub fn os_realpath (path : * const :: std :: os :: raw :: c_char) -> * mut :: std :: os :: raw :: c_char ; } extern \"C\" { pub fn os_get_process_binary_path () -> * mut :: std :: os :: raw :: c_char ; } extern \"C\" { pub fn os_rmenv (name : * const :: std :: os :: raw :: c_char) ; } pub type os_time_t = :: std :: os :: raw :: c_int ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct os_tm { # [doc = \" Seconds.     [0-60] (1 leap second)\"] pub tm_sec : :: std :: os :: raw :: c_int , # [doc = \" Minutes.     [0-59]\"] pub tm_min : :: std :: os :: raw :: c_int , # [doc = \" Hours.       [0-23]\"] pub tm_hour : :: std :: os :: raw :: c_int , # [doc = \" Day.         [1-31]\"] pub tm_mday : :: std :: os :: raw :: c_int , # [doc = \" Month.       [0-11]\"] pub tm_mon : :: std :: os :: raw :: c_int , # [doc = \" Year - 1900.\"] pub tm_year : :: std :: os :: raw :: c_int , # [doc = \" Day of week. [0-6]\"] pub tm_wday : :: std :: os :: raw :: c_int , # [doc = \" Days in year.[0-365]\"] pub tm_yday : :: std :: os :: raw :: c_int , # [doc = \" DST.         [-1/0/1]\"] pub tm_isdst : :: std :: os :: raw :: c_int , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of os_tm\"] [:: std :: mem :: size_of :: < os_tm > () - 36usize] ; [\"Alignment of os_tm\"] [:: std :: mem :: align_of :: < os_tm > () - 4usize] ; [\"Offset of field: os_tm::tm_sec\"] [:: std :: mem :: offset_of ! (os_tm , tm_sec) - 0usize] ; [\"Offset of field: os_tm::tm_min\"] [:: std :: mem :: offset_of ! (os_tm , tm_min) - 4usize] ; [\"Offset of field: os_tm::tm_hour\"] [:: std :: mem :: offset_of ! (os_tm , tm_hour) - 8usize] ; [\"Offset of field: os_tm::tm_mday\"] [:: std :: mem :: offset_of ! (os_tm , tm_mday) - 12usize] ; [\"Offset of field: os_tm::tm_mon\"] [:: std :: mem :: offset_of ! (os_tm , tm_mon) - 16usize] ; [\"Offset of field: os_tm::tm_year\"] [:: std :: mem :: offset_of ! (os_tm , tm_year) - 20usize] ; [\"Offset of field: os_tm::tm_wday\"] [:: std :: mem :: offset_of ! (os_tm , tm_wday) - 24usize] ; [\"Offset of field: os_tm::tm_yday\"] [:: std :: mem :: offset_of ! (os_tm , tm_yday) - 28usize] ; [\"Offset of field: os_tm::tm_isdst\"] [:: std :: mem :: offset_of ! (os_tm , tm_isdst) - 32usize] ; } ; pub type os_tm_t = os_tm ; extern \"C\" { pub fn os_gmtime (timep : * const os_time_t) -> os_tm_t ; } extern \"C\" { pub fn os_timegm (tmp : * mut os_tm_t) -> os_time_t ; } extern \"C\" { pub fn os_strptime (str_ : * const :: std :: os :: raw :: c_char , format : * const :: std :: os :: raw :: c_char , tm : * mut os_tm_t) -> * const :: std :: os :: raw :: c_char ; } pub type cancel_id_t = uint64 ; pub type entity_id_t = uint64 ; pub type node_id_t = uint64 ; pub type transaction_id_t = uint64 ; pub type request_id_t = uint64 ; # [repr (u32)] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub enum cancel_id_error_t { Cancel_Error_ID = 0 , } # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct maybe_node_id { pub valid : bool , pub id : node_id_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of maybe_node_id\"] [:: std :: mem :: size_of :: < maybe_node_id > () - 16usize] ; [\"Alignment of maybe_node_id\"] [:: std :: mem :: align_of :: < maybe_node_id > () - 8usize] ; [\"Offset of field: maybe_node_id::valid\"] [:: std :: mem :: offset_of ! (maybe_node_id , valid) - 0usize] ; [\"Offset of field: maybe_node_id::id\"] [:: std :: mem :: offset_of ! (maybe_node_id , id) - 8usize] ; } ; pub type maybe_node_id_t = maybe_node_id ; pub type osa_node_path_interface_t = osa_node_path_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct osa_node_path_interface { pub matching_nodes : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , root_id : node_id_t , node_path_pattern : attr_value_t) -> attr_value_t > , pub node_path : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , node_id : node_id_t) -> attr_value_t > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of osa_node_path_interface\"] [:: std :: mem :: size_of :: < osa_node_path_interface > () - 16usize] ; [\"Alignment of osa_node_path_interface\"] [:: std :: mem :: align_of :: < osa_node_path_interface > () - 8usize] ; [\"Offset of field: osa_node_path_interface::matching_nodes\"] [:: std :: mem :: offset_of ! (osa_node_path_interface , matching_nodes) - 0usize] ; [\"Offset of field: osa_node_path_interface::node_path\"] [:: std :: mem :: offset_of ! (osa_node_path_interface , node_path) - 8usize] ; } ; pub type osa_component_interface_t = osa_component_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct osa_component_interface { pub get_admin : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t) -> * mut conf_object_t > , pub get_root_node : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t) -> maybe_node_id_t > , pub notify_tracker : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , cb : :: std :: option :: Option < unsafe extern \"C\" fn (data : cbdata_call_t) > , data : cbdata_register_t) -> cancel_id_t > , pub cancel_notify : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , cancel_id : cancel_id_t) > , pub has_tracker : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t) -> bool > , pub get_processors : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t) -> attr_value_t > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of osa_component_interface\"] [:: std :: mem :: size_of :: < osa_component_interface > () - 48usize] ; [\"Alignment of osa_component_interface\"] [:: std :: mem :: align_of :: < osa_component_interface > () - 8usize] ; [\"Offset of field: osa_component_interface::get_admin\"] [:: std :: mem :: offset_of ! (osa_component_interface , get_admin) - 0usize] ; [\"Offset of field: osa_component_interface::get_root_node\"] [:: std :: mem :: offset_of ! (osa_component_interface , get_root_node) - 8usize] ; [\"Offset of field: osa_component_interface::notify_tracker\"] [:: std :: mem :: offset_of ! (osa_component_interface , notify_tracker) - 16usize] ; [\"Offset of field: osa_component_interface::cancel_notify\"] [:: std :: mem :: offset_of ! (osa_component_interface , cancel_notify) - 24usize] ; [\"Offset of field: osa_component_interface::has_tracker\"] [:: std :: mem :: offset_of ! (osa_component_interface , has_tracker) - 32usize] ; [\"Offset of field: osa_component_interface::get_processors\"] [:: std :: mem :: offset_of ! (osa_component_interface , get_processors) - 40usize] ; } ; # [repr (u32)] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub enum request_id_error_t { OSA_Request_Error_ID = 0 , } pub type osa_control_interface_t = osa_control_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct osa_control_interface { pub request : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , initiator : * const :: std :: os :: raw :: c_char) -> request_id_t > , pub release : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , id : request_id_t) > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of osa_control_interface\"] [:: std :: mem :: size_of :: < osa_control_interface > () - 16usize] ; [\"Alignment of osa_control_interface\"] [:: std :: mem :: align_of :: < osa_control_interface > () - 8usize] ; [\"Offset of field: osa_control_interface::request\"] [:: std :: mem :: offset_of ! (osa_control_interface , request) - 0usize] ; [\"Offset of field: osa_control_interface::release\"] [:: std :: mem :: offset_of ! (osa_control_interface , release) - 8usize] ; } ; pub type osa_control_v2_interface_t = osa_control_v2_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct osa_control_v2_interface { pub request : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , initiator : * const :: std :: os :: raw :: c_char) -> attr_value_t > , pub release : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , id : request_id_t) > , pub clear_state : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t) -> attr_value_t > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of osa_control_v2_interface\"] [:: std :: mem :: size_of :: < osa_control_v2_interface > () - 24usize] ; [\"Alignment of osa_control_v2_interface\"] [:: std :: mem :: align_of :: < osa_control_v2_interface > () - 8usize] ; [\"Offset of field: osa_control_v2_interface::request\"] [:: std :: mem :: offset_of ! (osa_control_v2_interface , request) - 0usize] ; [\"Offset of field: osa_control_v2_interface::release\"] [:: std :: mem :: offset_of ! (osa_control_v2_interface , release) - 8usize] ; [\"Offset of field: osa_control_v2_interface::clear_state\"] [:: std :: mem :: offset_of ! (osa_control_v2_interface , clear_state) - 16usize] ; } ; pub type osa_node_tree_query_interface_t = osa_node_tree_query_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct osa_node_tree_query_interface { pub get_root_nodes : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t) -> attr_value_t > , pub get_node : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , node_id : node_id_t) -> attr_value_t > , pub get_current_nodes : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , base_id : node_id_t , cpu : * mut conf_object_t) -> attr_value_t > , pub get_current_processors : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , node_id : node_id_t) -> attr_value_t > , pub get_all_processors : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t) -> attr_value_t > , pub get_mapper : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , node_id : node_id_t) -> * mut conf_object_t > , pub get_parent : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , node_id : node_id_t) -> attr_value_t > , pub get_children : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , node_id : node_id_t) -> attr_value_t > , pub get_formatted_properties : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , node_id : uint64) -> attr_value_t > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of osa_node_tree_query_interface\"] [:: std :: mem :: size_of :: < osa_node_tree_query_interface > () - 72usize] ; [\"Alignment of osa_node_tree_query_interface\"] [:: std :: mem :: align_of :: < osa_node_tree_query_interface > () - 8usize] ; [\"Offset of field: osa_node_tree_query_interface::get_root_nodes\"] [:: std :: mem :: offset_of ! (osa_node_tree_query_interface , get_root_nodes) - 0usize] ; [\"Offset of field: osa_node_tree_query_interface::get_node\"] [:: std :: mem :: offset_of ! (osa_node_tree_query_interface , get_node) - 8usize] ; [\"Offset of field: osa_node_tree_query_interface::get_current_nodes\"] [:: std :: mem :: offset_of ! (osa_node_tree_query_interface , get_current_nodes) - 16usize] ; [\"Offset of field: osa_node_tree_query_interface::get_current_processors\"] [:: std :: mem :: offset_of ! (osa_node_tree_query_interface , get_current_processors) - 24usize] ; [\"Offset of field: osa_node_tree_query_interface::get_all_processors\"] [:: std :: mem :: offset_of ! (osa_node_tree_query_interface , get_all_processors) - 32usize] ; [\"Offset of field: osa_node_tree_query_interface::get_mapper\"] [:: std :: mem :: offset_of ! (osa_node_tree_query_interface , get_mapper) - 40usize] ; [\"Offset of field: osa_node_tree_query_interface::get_parent\"] [:: std :: mem :: offset_of ! (osa_node_tree_query_interface , get_parent) - 48usize] ; [\"Offset of field: osa_node_tree_query_interface::get_children\"] [:: std :: mem :: offset_of ! (osa_node_tree_query_interface , get_children) - 56usize] ; [\"Offset of field: osa_node_tree_query_interface::get_formatted_properties\"] [:: std :: mem :: offset_of ! (osa_node_tree_query_interface , get_formatted_properties) - 64usize] ; } ; pub type osa_node_tree_notification_interface_t = osa_node_tree_notification_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct osa_node_tree_notification_interface { pub notify_create : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , node_id : node_id_t , recursive : bool , cb : :: std :: option :: Option < unsafe extern \"C\" fn (data : cbdata_call_t , obj : * mut conf_object_t , cpu : * mut conf_object_t , node_id : node_id_t) > , data : cbdata_register_t) -> cancel_id_t > , pub notify_destroy : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , node_id : node_id_t , recursive : bool , cb : :: std :: option :: Option < unsafe extern \"C\" fn (data : cbdata_call_t , obj : * mut conf_object_t , cpu : * mut conf_object_t , node_id : node_id_t) > , data : cbdata_register_t) -> cancel_id_t > , pub notify_property_change : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , node_id : node_id_t , key : * const :: std :: os :: raw :: c_char , recursive : bool , cb : :: std :: option :: Option < unsafe extern \"C\" fn (data : cbdata_call_t , obj : * mut conf_object_t , cpu : * mut conf_object_t , node_id : node_id_t , key : * const :: std :: os :: raw :: c_char , old_val : attr_value_t , new_val : attr_value_t) > , data : cbdata_register_t) -> cancel_id_t > , pub notify_cpu_move_from : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , node_id : node_id_t , cb : :: std :: option :: Option < unsafe extern \"C\" fn (data : cbdata_call_t , obj : * mut conf_object_t , cpu : * mut conf_object_t , node_path : attr_value_t) > , data : cbdata_register_t) -> cancel_id_t > , pub notify_cpu_move_to : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , node_id : node_id_t , cb : :: std :: option :: Option < unsafe extern \"C\" fn (data : cbdata_call_t , obj : * mut conf_object_t , cpu : * mut conf_object_t , node_path : attr_value_t) > , data : cbdata_register_t) -> cancel_id_t > , pub notify_event : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , node_id : node_id_t , event_name : * const :: std :: os :: raw :: c_char , recursive : bool , cb : :: std :: option :: Option < unsafe extern \"C\" fn (data : cbdata_call_t , obj : * mut conf_object_t , cpu : * mut conf_object_t , node_id : node_id_t , event_name : * const :: std :: os :: raw :: c_char , event_data : attr_value_t) > , data : cbdata_register_t) -> cancel_id_t > , pub notify_enable : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , cb : :: std :: option :: Option < unsafe extern \"C\" fn (data : cbdata_call_t , obj : * mut conf_object_t) > , data : cbdata_register_t) -> cancel_id_t > , pub notify_disable : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , cb : :: std :: option :: Option < unsafe extern \"C\" fn (data : cbdata_call_t , obj : * mut conf_object_t) > , data : cbdata_register_t) -> cancel_id_t > , pub cancel_notify : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , cancel_id : cancel_id_t) > , pub notify_callbacks_done : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , node_id : uint64 , cb : :: std :: option :: Option < unsafe extern \"C\" fn (data : cbdata_call_t , obj : * mut conf_object_t) > , data : cbdata_register_t) -> cancel_id_t > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of osa_node_tree_notification_interface\"] [:: std :: mem :: size_of :: < osa_node_tree_notification_interface > () - 80usize] ; [\"Alignment of osa_node_tree_notification_interface\"] [:: std :: mem :: align_of :: < osa_node_tree_notification_interface > () - 8usize] ; [\"Offset of field: osa_node_tree_notification_interface::notify_create\"] [:: std :: mem :: offset_of ! (osa_node_tree_notification_interface , notify_create) - 0usize] ; [\"Offset of field: osa_node_tree_notification_interface::notify_destroy\"] [:: std :: mem :: offset_of ! (osa_node_tree_notification_interface , notify_destroy) - 8usize] ; [\"Offset of field: osa_node_tree_notification_interface::notify_property_change\"] [:: std :: mem :: offset_of ! (osa_node_tree_notification_interface , notify_property_change) - 16usize] ; [\"Offset of field: osa_node_tree_notification_interface::notify_cpu_move_from\"] [:: std :: mem :: offset_of ! (osa_node_tree_notification_interface , notify_cpu_move_from) - 24usize] ; [\"Offset of field: osa_node_tree_notification_interface::notify_cpu_move_to\"] [:: std :: mem :: offset_of ! (osa_node_tree_notification_interface , notify_cpu_move_to) - 32usize] ; [\"Offset of field: osa_node_tree_notification_interface::notify_event\"] [:: std :: mem :: offset_of ! (osa_node_tree_notification_interface , notify_event) - 40usize] ; [\"Offset of field: osa_node_tree_notification_interface::notify_enable\"] [:: std :: mem :: offset_of ! (osa_node_tree_notification_interface , notify_enable) - 48usize] ; [\"Offset of field: osa_node_tree_notification_interface::notify_disable\"] [:: std :: mem :: offset_of ! (osa_node_tree_notification_interface , notify_disable) - 56usize] ; [\"Offset of field: osa_node_tree_notification_interface::cancel_notify\"] [:: std :: mem :: offset_of ! (osa_node_tree_notification_interface , cancel_notify) - 64usize] ; [\"Offset of field: osa_node_tree_notification_interface::notify_callbacks_done\"] [:: std :: mem :: offset_of ! (osa_node_tree_notification_interface , notify_callbacks_done) - 72usize] ; } ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct follower_time_t { # [doc = \" time in ps\"] pub val : int128 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of follower_time_t\"] [:: std :: mem :: size_of :: < follower_time_t > () - 16usize] ; [\"Alignment of follower_time_t\"] [:: std :: mem :: align_of :: < follower_time_t > () - 8usize] ; [\"Offset of field: follower_time_t::val\"] [:: std :: mem :: offset_of ! (follower_time_t , val) - 0usize] ; } ; pub type follower_agent_interface_t = follower_agent_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct follower_agent_interface { pub accept : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , msg : bytes_t) > , pub accept_async : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , msg : bytes_t) > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of follower_agent_interface\"] [:: std :: mem :: size_of :: < follower_agent_interface > () - 16usize] ; [\"Alignment of follower_agent_interface\"] [:: std :: mem :: align_of :: < follower_agent_interface > () - 8usize] ; [\"Offset of field: follower_agent_interface::accept\"] [:: std :: mem :: offset_of ! (follower_agent_interface , accept) - 0usize] ; [\"Offset of field: follower_agent_interface::accept_async\"] [:: std :: mem :: offset_of ! (follower_agent_interface , accept_async) - 8usize] ; } ; pub type leader_message_interface_t = leader_message_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct leader_message_interface { pub send : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , time : follower_time_t , skey : uint64 , msg : bytes_t) > , pub send_async : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , msg : bytes_t) > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of leader_message_interface\"] [:: std :: mem :: size_of :: < leader_message_interface > () - 16usize] ; [\"Alignment of leader_message_interface\"] [:: std :: mem :: align_of :: < leader_message_interface > () - 8usize] ; [\"Offset of field: leader_message_interface::send\"] [:: std :: mem :: offset_of ! (leader_message_interface , send) - 0usize] ; [\"Offset of field: leader_message_interface::send_async\"] [:: std :: mem :: offset_of ! (leader_message_interface , send_async) - 8usize] ; } ; pub type osa_parameters_interface_t = osa_parameters_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct osa_parameters_interface { pub get_parameters : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , include_children : bool) -> attr_value_t > , pub set_parameters : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , parameters : attr_value_t) -> attr_value_t > , pub is_kind_supported : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , kind : * const :: std :: os :: raw :: c_char) -> bool > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of osa_parameters_interface\"] [:: std :: mem :: size_of :: < osa_parameters_interface > () - 24usize] ; [\"Alignment of osa_parameters_interface\"] [:: std :: mem :: align_of :: < osa_parameters_interface > () - 8usize] ; [\"Offset of field: osa_parameters_interface::get_parameters\"] [:: std :: mem :: offset_of ! (osa_parameters_interface , get_parameters) - 0usize] ; [\"Offset of field: osa_parameters_interface::set_parameters\"] [:: std :: mem :: offset_of ! (osa_parameters_interface , set_parameters) - 8usize] ; [\"Offset of field: osa_parameters_interface::is_kind_supported\"] [:: std :: mem :: offset_of ! (osa_parameters_interface , is_kind_supported) - 16usize] ; } ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct slave_time_t { # [doc = \" time in ps\"] pub val : int128 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of slave_time_t\"] [:: std :: mem :: size_of :: < slave_time_t > () - 16usize] ; [\"Alignment of slave_time_t\"] [:: std :: mem :: align_of :: < slave_time_t > () - 8usize] ; [\"Offset of field: slave_time_t::val\"] [:: std :: mem :: offset_of ! (slave_time_t , val) - 0usize] ; } ; pub type link_endpoint_interface_t = link_endpoint_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct link_endpoint_interface { # [doc = \" Delivery time and secondary key for the message currently being\\ndelivered to the device when using indirect delivery.\"] pub delivery_time : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t) -> slave_time_t > , pub delivery_skey : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t) -> uint64 > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of link_endpoint_interface\"] [:: std :: mem :: size_of :: < link_endpoint_interface > () - 16usize] ; [\"Alignment of link_endpoint_interface\"] [:: std :: mem :: align_of :: < link_endpoint_interface > () - 8usize] ; [\"Offset of field: link_endpoint_interface::delivery_time\"] [:: std :: mem :: offset_of ! (link_endpoint_interface , delivery_time) - 0usize] ; [\"Offset of field: link_endpoint_interface::delivery_skey\"] [:: std :: mem :: offset_of ! (link_endpoint_interface , delivery_skey) - 8usize] ; } ; pub type link_endpoint_v2_interface_t = link_endpoint_v2_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct link_endpoint_v2_interface { # [doc = \" Delivery time and secondary key for the message currently being\\ndelivered to the device when using indirect delivery.\"] pub delivery_time : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t) -> follower_time_t > , pub delivery_skey : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t) -> uint64 > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of link_endpoint_v2_interface\"] [:: std :: mem :: size_of :: < link_endpoint_v2_interface > () - 16usize] ; [\"Alignment of link_endpoint_v2_interface\"] [:: std :: mem :: align_of :: < link_endpoint_v2_interface > () - 8usize] ; [\"Offset of field: link_endpoint_v2_interface::delivery_time\"] [:: std :: mem :: offset_of ! (link_endpoint_v2_interface , delivery_time) - 0usize] ; [\"Offset of field: link_endpoint_v2_interface::delivery_skey\"] [:: std :: mem :: offset_of ! (link_endpoint_v2_interface , delivery_skey) - 8usize] ; } ; pub type scalar_time_interface_t = scalar_time_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct scalar_time_interface { pub add_consumer : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t) -> :: std :: os :: raw :: c_int > , pub remove_consumer : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , consumer : :: std :: os :: raw :: c_int) > , pub poll : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , consumer : :: std :: os :: raw :: c_int) -> attr_value_t > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of scalar_time_interface\"] [:: std :: mem :: size_of :: < scalar_time_interface > () - 24usize] ; [\"Alignment of scalar_time_interface\"] [:: std :: mem :: align_of :: < scalar_time_interface > () - 8usize] ; [\"Offset of field: scalar_time_interface::add_consumer\"] [:: std :: mem :: offset_of ! (scalar_time_interface , add_consumer) - 0usize] ; [\"Offset of field: scalar_time_interface::remove_consumer\"] [:: std :: mem :: offset_of ! (scalar_time_interface , remove_consumer) - 8usize] ; [\"Offset of field: scalar_time_interface::poll\"] [:: std :: mem :: offset_of ! (scalar_time_interface , poll) - 16usize] ; } ; # [repr (u32)] # [doc = \" <add id=\\\"osa_machine_notification_interface_t\\\">\\n<name>osa_machine_notification_interface_t</name>\\n<ndx>osa_machine_notification_interface_t</ndx>\\n\\n<ndx>notify_mode_change!osa_machine_notification interface method</ndx>\\n<fun>notify_mode_change</fun> registers a callback function that will be\\ncalled when processor <arg>cpu</arg> changes processor mode. The\\ncallback function will be called with the processor that changed mode\\n<arg>cpu</arg>, the mode previous to the change <arg>old_mode</arg> and\\nthe mode after the change <arg>new_mode</arg>.\\n\\n<ndx>notify_exception!osa_machine_notification interface method</ndx>\\n<fun>notify_exception</fun> registers a callback function that will be\\ncalled when processor <arg>cpu</arg> takes an exception with exception\\nnumber <arg>exc_num</arg>. The callback function <arg>cb</arg> will be\\ncalled with the processor <arg>cpu</arg> causing the exception and\\nexception number <arg>exc_num</arg> of that exception.\\n\\n<ndx>notify_control_reg!osa_machine_notification interface method</ndx>\\n<fun>notify_control_reg</fun> registers a callback function that will be\\ncalled when a control register, with register number <arg>reg_num</arg>, in\\nprocessor <arg>cpu</arg> is updated. The callback function <arg>cb</arg>\\nwill be called with the processor <arg>cpu</arg>, register number\\n<arg>reg_num</arg> and the written register <arg>value</arg> (see\\nCore_Control_Register_Write documentation for more details) as\\narguments. The register number for a certain register can be retrieved with\\nthe <fun>get_register_number</fun> function.\\n\\n<ndx>notify_control_reg_read!osa_machine_notification interface method</ndx>\\n<fun>notify_control_reg_read</fun> registers a callback function that will\\nbe called when a control register, with register number <arg>reg_num</arg>,\\nin processor <arg>cpu</arg> is read. The callback function <arg>cb</arg>\\nwill be called with the processor <arg>cpu</arg> and register number\\n<arg>reg_num</arg> as arguments. The register number for a certain register\\ncan be retrieved with the <fun>get_register_number</fun> function.\\n\\n<ndx>notify_exec_breakpoint!osa_machine_notification interface method</ndx>\\n<fun>notify_exec_breakpoint</fun>,\\n<ndx>notify_read_breakpoint!osa_machine_notification interface method</ndx>\\n<fun>notify_read_breakpoint</fun> and\\n<ndx>notify_write_breakpoint!osa_machine_notification interface method</ndx>\\n<fun>notify_write_breakpoint</fun> plant breakpoints of length\\n<arg>len</arg> for processor <arg>cpu</arg> on <arg>address</arg>.\\nThe breakpoint is of type execution, read, write respectively. The\\n<arg>virt</arg> argument specifies if <arg>address</arg> is a virtual\\nor physical address. The callback function <arg>cb</arg> is called when\\nthe breakpoint is hit.\\nThe arguments of the callback functions are the processor that the\\nbreakpoint hit on <arg>cpu</arg> and the <arg>address</arg>\\n(virtual or physical depending on what the breakpoint was registered as)\\nthat was hit.\\nCallbacks functions for <fun>notify_read_breakpoint</fun> and\\n<fun>notify_write_breakpoint</fun> also gets the access size <arg>len</arg>\\nof the read or write.\\nThe callback function for <fun>notify_write_breakpoint</fun> additionally\\nhas the previous value <arg>old_val</arg> at the address written and the new\\nvalue <arg>new_val</arg> that is being written passed as arguments. Reading\\nthe actual memory from the callback will result in reading the new value that\\nhas been written as the callback is called after the write is done.\\nOn x86 virtual breakpoints use linear addresses (as opposed to logical\\naddresses).\\n\\nFor all functions, the <arg>tracker</arg> argument should be the tracker\\ncalling this interface. This makes it possible for a hypervisor tracker to\\nhandle guests differently.\\n\\nAll methods that register a notification callback take <arg>data</arg> as an\\nargument which will be passed on to callback function. These methods return\\na cancel ID to be used with the <fun>cancel</fun> method to cancel the\\ncallback. A returned value of 0 means that an error occurred and no callback\\nwas registered, in which case the caller is responsible for freeing the\\ncallback <arg>data</arg>.\\n\\n<ndx>cancel!osa_machine_notification interface method</ndx>\\n<fun>cancel</fun> cancels the callback function with ID <arg>cancel_id</arg>\\nand will free the callback <arg>data</arg> associated with the\\nnotification. This ID will have been returned from the function that\\nregistered the callback.\\n\\n<insert-until text=\\\"// ADD INTERFACE osa_machine_notification_interface\\\"/>\\n</add>\\n\\n<add id=\\\"osa_machine_notification_interface_exec_context\\\">\\nCell Context for all methods.\\n</add>\"] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub enum osa_read_len_t { OSA_Read_One_Byte = 1 , OSA_Read_Two_Byte = 2 , OSA_Read_Four_Byte = 4 , OSA_Read_Eight_Byte = 8 , } pub type osa_machine_notification_interface_t = osa_machine_notification_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct osa_machine_notification_interface { pub notify_mode_change : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , tracker : * mut conf_object_t , cpu : * mut conf_object_t , cb : :: std :: option :: Option < unsafe extern \"C\" fn (data : cbdata_call_t , cpu : * mut conf_object_t , old_mode : processor_mode_t , new_mode : processor_mode_t) > , data : cbdata_register_t) -> cancel_id_t > , pub notify_exception : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , tracker : * mut conf_object_t , cpu : * mut conf_object_t , exc_num : :: std :: os :: raw :: c_int , cb : :: std :: option :: Option < unsafe extern \"C\" fn (data : cbdata_call_t , cpu : * mut conf_object_t , exc_num : :: std :: os :: raw :: c_int) > , data : cbdata_register_t) -> cancel_id_t > , pub notify_control_reg : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , tracker : * mut conf_object_t , cpu : * mut conf_object_t , reg_num : :: std :: os :: raw :: c_int , cb : :: std :: option :: Option < unsafe extern \"C\" fn (data : cbdata_call_t , cpu : * mut conf_object_t , reg_num : :: std :: os :: raw :: c_int , value : uint64) > , data : cbdata_register_t) -> cancel_id_t > , pub notify_exec_breakpoint : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , tracker : * mut conf_object_t , cpu : * mut conf_object_t , address : uint64 , len : uint64 , virt : bool , cb : :: std :: option :: Option < unsafe extern \"C\" fn (data : cbdata_call_t , cpu : * mut conf_object_t , address : uint64) > , data : cbdata_register_t) -> cancel_id_t > , pub notify_read_breakpoint : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , tracker : * mut conf_object_t , cpu : * mut conf_object_t , address : uint64 , len : :: std :: os :: raw :: c_uint , virt : bool , cb : :: std :: option :: Option < unsafe extern \"C\" fn (data : cbdata_call_t , cpu : * mut conf_object_t , address : uint64 , len : :: std :: os :: raw :: c_uint) > , data : cbdata_register_t) -> cancel_id_t > , pub notify_write_breakpoint : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , tracker : * mut conf_object_t , cpu : * mut conf_object_t , address : uint64 , len : :: std :: os :: raw :: c_uint , virt : bool , cb : :: std :: option :: Option < unsafe extern \"C\" fn (data : cbdata_call_t , cpu : * mut conf_object_t , address : uint64 , len : :: std :: os :: raw :: c_uint , old_val : uint64 , new_val : uint64) > , data : cbdata_register_t) -> cancel_id_t > , pub cancel : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , tracker : * mut conf_object_t , cancel_id : cancel_id_t) > , pub notify_control_reg_read : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , tracker : * mut conf_object_t , cpu : * mut conf_object_t , reg_num : :: std :: os :: raw :: c_int , cb : :: std :: option :: Option < unsafe extern \"C\" fn (data : cbdata_call_t , cpu : * mut conf_object_t , reg_num : :: std :: os :: raw :: c_int) > , data : cbdata_register_t) -> cancel_id_t > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of osa_machine_notification_interface\"] [:: std :: mem :: size_of :: < osa_machine_notification_interface > () - 64usize] ; [\"Alignment of osa_machine_notification_interface\"] [:: std :: mem :: align_of :: < osa_machine_notification_interface > () - 8usize] ; [\"Offset of field: osa_machine_notification_interface::notify_mode_change\"] [:: std :: mem :: offset_of ! (osa_machine_notification_interface , notify_mode_change) - 0usize] ; [\"Offset of field: osa_machine_notification_interface::notify_exception\"] [:: std :: mem :: offset_of ! (osa_machine_notification_interface , notify_exception) - 8usize] ; [\"Offset of field: osa_machine_notification_interface::notify_control_reg\"] [:: std :: mem :: offset_of ! (osa_machine_notification_interface , notify_control_reg) - 16usize] ; [\"Offset of field: osa_machine_notification_interface::notify_exec_breakpoint\"] [:: std :: mem :: offset_of ! (osa_machine_notification_interface , notify_exec_breakpoint) - 24usize] ; [\"Offset of field: osa_machine_notification_interface::notify_read_breakpoint\"] [:: std :: mem :: offset_of ! (osa_machine_notification_interface , notify_read_breakpoint) - 32usize] ; [\"Offset of field: osa_machine_notification_interface::notify_write_breakpoint\"] [:: std :: mem :: offset_of ! (osa_machine_notification_interface , notify_write_breakpoint) - 40usize] ; [\"Offset of field: osa_machine_notification_interface::cancel\"] [:: std :: mem :: offset_of ! (osa_machine_notification_interface , cancel) - 48usize] ; [\"Offset of field: osa_machine_notification_interface::notify_control_reg_read\"] [:: std :: mem :: offset_of ! (osa_machine_notification_interface , notify_control_reg_read) - 56usize] ; } ; pub type osa_machine_query_interface_t = osa_machine_query_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct osa_machine_query_interface { pub read_register : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , tracker : * mut conf_object_t , cpu : * mut conf_object_t , reg : :: std :: os :: raw :: c_int) -> uint64 > , pub get_register_number : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , tracker : * mut conf_object_t , cpu : * mut conf_object_t , reg : * const :: std :: os :: raw :: c_char) -> :: std :: os :: raw :: c_int > , pub read_phys_memory : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , tracker : * mut conf_object_t , cpu : * mut conf_object_t , addr : physical_address_t , len : osa_read_len_t) -> attr_value_t > , pub read_phys_bytes : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , tracker : * mut conf_object_t , cpu : * mut conf_object_t , paddr : physical_address_t , len : :: std :: os :: raw :: c_uint) -> attr_value_t > , pub virtual_to_physical : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , tracker : * mut conf_object_t , cpu : * mut conf_object_t , vaddr : uint64) -> attr_value_t > , pub cpu_mode : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , tracker : * mut conf_object_t , cpu : * mut conf_object_t) -> processor_mode_t > , pub get_all_processors : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , tracker : * mut conf_object_t) -> attr_value_t > , pub get_exception_number : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , tracker : * mut conf_object_t , cpu : * mut conf_object_t , name : * const :: std :: os :: raw :: c_char) -> :: std :: os :: raw :: c_int > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of osa_machine_query_interface\"] [:: std :: mem :: size_of :: < osa_machine_query_interface > () - 64usize] ; [\"Alignment of osa_machine_query_interface\"] [:: std :: mem :: align_of :: < osa_machine_query_interface > () - 8usize] ; [\"Offset of field: osa_machine_query_interface::read_register\"] [:: std :: mem :: offset_of ! (osa_machine_query_interface , read_register) - 0usize] ; [\"Offset of field: osa_machine_query_interface::get_register_number\"] [:: std :: mem :: offset_of ! (osa_machine_query_interface , get_register_number) - 8usize] ; [\"Offset of field: osa_machine_query_interface::read_phys_memory\"] [:: std :: mem :: offset_of ! (osa_machine_query_interface , read_phys_memory) - 16usize] ; [\"Offset of field: osa_machine_query_interface::read_phys_bytes\"] [:: std :: mem :: offset_of ! (osa_machine_query_interface , read_phys_bytes) - 24usize] ; [\"Offset of field: osa_machine_query_interface::virtual_to_physical\"] [:: std :: mem :: offset_of ! (osa_machine_query_interface , virtual_to_physical) - 32usize] ; [\"Offset of field: osa_machine_query_interface::cpu_mode\"] [:: std :: mem :: offset_of ! (osa_machine_query_interface , cpu_mode) - 40usize] ; [\"Offset of field: osa_machine_query_interface::get_all_processors\"] [:: std :: mem :: offset_of ! (osa_machine_query_interface , get_all_processors) - 48usize] ; [\"Offset of field: osa_machine_query_interface::get_exception_number\"] [:: std :: mem :: offset_of ! (osa_machine_query_interface , get_exception_number) - 56usize] ; } ; pub type osa_mapper_admin_interface_t = osa_mapper_admin_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct osa_mapper_admin_interface { pub tracker_updated : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , initiator : * mut conf_object_t , changeset : attr_value_t) > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of osa_mapper_admin_interface\"] [:: std :: mem :: size_of :: < osa_mapper_admin_interface > () - 8usize] ; [\"Alignment of osa_mapper_admin_interface\"] [:: std :: mem :: align_of :: < osa_mapper_admin_interface > () - 8usize] ; [\"Offset of field: osa_mapper_admin_interface::tracker_updated\"] [:: std :: mem :: offset_of ! (osa_mapper_admin_interface , tracker_updated) - 0usize] ; } ; pub type osa_mapper_control_interface_t = osa_mapper_control_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct osa_mapper_control_interface { pub disable : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t) > , pub enable : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t) -> bool > , pub clear_state : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t) > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of osa_mapper_control_interface\"] [:: std :: mem :: size_of :: < osa_mapper_control_interface > () - 24usize] ; [\"Alignment of osa_mapper_control_interface\"] [:: std :: mem :: align_of :: < osa_mapper_control_interface > () - 8usize] ; [\"Offset of field: osa_mapper_control_interface::disable\"] [:: std :: mem :: offset_of ! (osa_mapper_control_interface , disable) - 0usize] ; [\"Offset of field: osa_mapper_control_interface::enable\"] [:: std :: mem :: offset_of ! (osa_mapper_control_interface , enable) - 8usize] ; [\"Offset of field: osa_mapper_control_interface::clear_state\"] [:: std :: mem :: offset_of ! (osa_mapper_control_interface , clear_state) - 16usize] ; } ; pub type osa_mapper_query_interface_t = osa_mapper_query_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct osa_mapper_query_interface { pub get_process_list : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t) -> attr_value_t > , pub get_mapper : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , node_id : node_id_t) -> * mut conf_object_t > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of osa_mapper_query_interface\"] [:: std :: mem :: size_of :: < osa_mapper_query_interface > () - 16usize] ; [\"Alignment of osa_mapper_query_interface\"] [:: std :: mem :: align_of :: < osa_mapper_query_interface > () - 8usize] ; [\"Offset of field: osa_mapper_query_interface::get_process_list\"] [:: std :: mem :: offset_of ! (osa_mapper_query_interface , get_process_list) - 0usize] ; [\"Offset of field: osa_mapper_query_interface::get_mapper\"] [:: std :: mem :: offset_of ! (osa_mapper_query_interface , get_mapper) - 8usize] ; } ; pub type osa_node_tree_admin_interface_t = osa_node_tree_admin_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct osa_node_tree_admin_interface { pub begin : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , initiator : * mut conf_object_t) -> transaction_id_t > , pub end : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , transaction_id : transaction_id_t) > , pub create : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , mapper : * mut conf_object_t , props : attr_value_t) -> node_id_t > , pub add : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , parent_id : node_id_t , props : attr_value_t) -> node_id_t > , pub update : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , node_id : node_id_t , props : attr_value_t) > , pub remove : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , node_id : node_id_t) > , pub event : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , node_id : node_id_t , event_name : * const :: std :: os :: raw :: c_char , event_data : attr_value_t) > , pub activate : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , node_id : node_id_t , cpu : * mut conf_object_t) > , pub deactivate : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , node_id : node_id_t , cpu : * mut conf_object_t) > , pub register_formatter : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , node_id : node_id_t , key : * const :: std :: os :: raw :: c_char , recursive : bool , formatter : :: std :: option :: Option < unsafe extern \"C\" fn (val : attr_value_t) -> attr_value_t >) -> cancel_id_t > , pub unregister_formatter : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , node_id : cancel_id_t) > , pub reset : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , node_id : node_id_t , props : attr_value_t) > , pub set_property : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , node_id : node_id_t , key : * const :: std :: os :: raw :: c_char , value : attr_value_t) > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of osa_node_tree_admin_interface\"] [:: std :: mem :: size_of :: < osa_node_tree_admin_interface > () - 104usize] ; [\"Alignment of osa_node_tree_admin_interface\"] [:: std :: mem :: align_of :: < osa_node_tree_admin_interface > () - 8usize] ; [\"Offset of field: osa_node_tree_admin_interface::begin\"] [:: std :: mem :: offset_of ! (osa_node_tree_admin_interface , begin) - 0usize] ; [\"Offset of field: osa_node_tree_admin_interface::end\"] [:: std :: mem :: offset_of ! (osa_node_tree_admin_interface , end) - 8usize] ; [\"Offset of field: osa_node_tree_admin_interface::create\"] [:: std :: mem :: offset_of ! (osa_node_tree_admin_interface , create) - 16usize] ; [\"Offset of field: osa_node_tree_admin_interface::add\"] [:: std :: mem :: offset_of ! (osa_node_tree_admin_interface , add) - 24usize] ; [\"Offset of field: osa_node_tree_admin_interface::update\"] [:: std :: mem :: offset_of ! (osa_node_tree_admin_interface , update) - 32usize] ; [\"Offset of field: osa_node_tree_admin_interface::remove\"] [:: std :: mem :: offset_of ! (osa_node_tree_admin_interface , remove) - 40usize] ; [\"Offset of field: osa_node_tree_admin_interface::event\"] [:: std :: mem :: offset_of ! (osa_node_tree_admin_interface , event) - 48usize] ; [\"Offset of field: osa_node_tree_admin_interface::activate\"] [:: std :: mem :: offset_of ! (osa_node_tree_admin_interface , activate) - 56usize] ; [\"Offset of field: osa_node_tree_admin_interface::deactivate\"] [:: std :: mem :: offset_of ! (osa_node_tree_admin_interface , deactivate) - 64usize] ; [\"Offset of field: osa_node_tree_admin_interface::register_formatter\"] [:: std :: mem :: offset_of ! (osa_node_tree_admin_interface , register_formatter) - 72usize] ; [\"Offset of field: osa_node_tree_admin_interface::unregister_formatter\"] [:: std :: mem :: offset_of ! (osa_node_tree_admin_interface , unregister_formatter) - 80usize] ; [\"Offset of field: osa_node_tree_admin_interface::reset\"] [:: std :: mem :: offset_of ! (osa_node_tree_admin_interface , reset) - 88usize] ; [\"Offset of field: osa_node_tree_admin_interface::set_property\"] [:: std :: mem :: offset_of ! (osa_node_tree_admin_interface , set_property) - 96usize] ; } ; pub type osa_tracker_component_interface_t = osa_tracker_component_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct osa_tracker_component_interface { pub get_tracker : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t) -> * mut conf_object_t > , pub get_mapper : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t) -> * mut conf_object_t > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of osa_tracker_component_interface\"] [:: std :: mem :: size_of :: < osa_tracker_component_interface > () - 16usize] ; [\"Alignment of osa_tracker_component_interface\"] [:: std :: mem :: align_of :: < osa_tracker_component_interface > () - 8usize] ; [\"Offset of field: osa_tracker_component_interface::get_tracker\"] [:: std :: mem :: offset_of ! (osa_tracker_component_interface , get_tracker) - 0usize] ; [\"Offset of field: osa_tracker_component_interface::get_mapper\"] [:: std :: mem :: offset_of ! (osa_tracker_component_interface , get_mapper) - 8usize] ; } ; pub type osa_tracker_state_admin_interface_t = osa_tracker_state_admin_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct osa_tracker_state_admin_interface { pub begin : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , tracker : * mut conf_object_t , initiator : * mut conf_object_t) -> transaction_id_t > , pub end : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , txid : transaction_id_t) > , pub add : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , entity_id : entity_id_t , attributes : attr_value_t) > , pub remove : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , entity_id : entity_id_t) > , pub remove_all : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t) > , pub set_attribute : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , entity_id : entity_id_t , key : * const :: std :: os :: raw :: c_char , val : attr_value_t) > , pub update : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , entity_id : entity_id_t , attributes : attr_value_t) > , pub event : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , entity_id : entity_id_t , event_name : * const :: std :: os :: raw :: c_char , event_data : attr_value_t) > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of osa_tracker_state_admin_interface\"] [:: std :: mem :: size_of :: < osa_tracker_state_admin_interface > () - 64usize] ; [\"Alignment of osa_tracker_state_admin_interface\"] [:: std :: mem :: align_of :: < osa_tracker_state_admin_interface > () - 8usize] ; [\"Offset of field: osa_tracker_state_admin_interface::begin\"] [:: std :: mem :: offset_of ! (osa_tracker_state_admin_interface , begin) - 0usize] ; [\"Offset of field: osa_tracker_state_admin_interface::end\"] [:: std :: mem :: offset_of ! (osa_tracker_state_admin_interface , end) - 8usize] ; [\"Offset of field: osa_tracker_state_admin_interface::add\"] [:: std :: mem :: offset_of ! (osa_tracker_state_admin_interface , add) - 16usize] ; [\"Offset of field: osa_tracker_state_admin_interface::remove\"] [:: std :: mem :: offset_of ! (osa_tracker_state_admin_interface , remove) - 24usize] ; [\"Offset of field: osa_tracker_state_admin_interface::remove_all\"] [:: std :: mem :: offset_of ! (osa_tracker_state_admin_interface , remove_all) - 32usize] ; [\"Offset of field: osa_tracker_state_admin_interface::set_attribute\"] [:: std :: mem :: offset_of ! (osa_tracker_state_admin_interface , set_attribute) - 40usize] ; [\"Offset of field: osa_tracker_state_admin_interface::update\"] [:: std :: mem :: offset_of ! (osa_tracker_state_admin_interface , update) - 48usize] ; [\"Offset of field: osa_tracker_state_admin_interface::event\"] [:: std :: mem :: offset_of ! (osa_tracker_state_admin_interface , event) - 56usize] ; } ; pub type osa_tracker_state_notification_interface_t = osa_tracker_state_notification_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct osa_tracker_state_notification_interface { pub subscribe_tracker : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , mapper : * mut conf_object_t , tracker : * mut conf_object_t) > , pub unsubscribe_tracker : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , mapper : * mut conf_object_t , tracker : * mut conf_object_t) > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of osa_tracker_state_notification_interface\"] [:: std :: mem :: size_of :: < osa_tracker_state_notification_interface > () - 16usize] ; [\"Alignment of osa_tracker_state_notification_interface\"] [:: std :: mem :: align_of :: < osa_tracker_state_notification_interface > () - 8usize] ; [\"Offset of field: osa_tracker_state_notification_interface::subscribe_tracker\"] [:: std :: mem :: offset_of ! (osa_tracker_state_notification_interface , subscribe_tracker) - 0usize] ; [\"Offset of field: osa_tracker_state_notification_interface::unsubscribe_tracker\"] [:: std :: mem :: offset_of ! (osa_tracker_state_notification_interface , unsubscribe_tracker) - 8usize] ; } ; pub type osa_tracker_state_query_interface_t = osa_tracker_state_query_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct osa_tracker_state_query_interface { pub get_trackers : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t) -> attr_value_t > , pub get_entities : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , tracker : * mut conf_object_t) -> attr_value_t > , pub get_entity : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , tracker : * mut conf_object_t , id : entity_id_t) -> attr_value_t > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of osa_tracker_state_query_interface\"] [:: std :: mem :: size_of :: < osa_tracker_state_query_interface > () - 24usize] ; [\"Alignment of osa_tracker_state_query_interface\"] [:: std :: mem :: align_of :: < osa_tracker_state_query_interface > () - 8usize] ; [\"Offset of field: osa_tracker_state_query_interface::get_trackers\"] [:: std :: mem :: offset_of ! (osa_tracker_state_query_interface , get_trackers) - 0usize] ; [\"Offset of field: osa_tracker_state_query_interface::get_entities\"] [:: std :: mem :: offset_of ! (osa_tracker_state_query_interface , get_entities) - 8usize] ; [\"Offset of field: osa_tracker_state_query_interface::get_entity\"] [:: std :: mem :: offset_of ! (osa_tracker_state_query_interface , get_entity) - 16usize] ; } ; pub type osa_tracker_control_interface_t = osa_tracker_control_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct osa_tracker_control_interface { pub disable : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t) > , pub enable : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t) -> bool > , pub clear_state : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t) > , pub add_processor : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , cpu : * mut conf_object_t) -> bool > , pub remove_processor : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , cpu : * mut conf_object_t) -> bool > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of osa_tracker_control_interface\"] [:: std :: mem :: size_of :: < osa_tracker_control_interface > () - 40usize] ; [\"Alignment of osa_tracker_control_interface\"] [:: std :: mem :: align_of :: < osa_tracker_control_interface > () - 8usize] ; [\"Offset of field: osa_tracker_control_interface::disable\"] [:: std :: mem :: offset_of ! (osa_tracker_control_interface , disable) - 0usize] ; [\"Offset of field: osa_tracker_control_interface::enable\"] [:: std :: mem :: offset_of ! (osa_tracker_control_interface , enable) - 8usize] ; [\"Offset of field: osa_tracker_control_interface::clear_state\"] [:: std :: mem :: offset_of ! (osa_tracker_control_interface , clear_state) - 16usize] ; [\"Offset of field: osa_tracker_control_interface::add_processor\"] [:: std :: mem :: offset_of ! (osa_tracker_control_interface , add_processor) - 24usize] ; [\"Offset of field: osa_tracker_control_interface::remove_processor\"] [:: std :: mem :: offset_of ! (osa_tracker_control_interface , remove_processor) - 32usize] ; } ; pub type osa_micro_checkpoint_interface_t = osa_micro_checkpoint_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct osa_micro_checkpoint_interface { pub started : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t) > , pub finished : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t) > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of osa_micro_checkpoint_interface\"] [:: std :: mem :: size_of :: < osa_micro_checkpoint_interface > () - 16usize] ; [\"Alignment of osa_micro_checkpoint_interface\"] [:: std :: mem :: align_of :: < osa_micro_checkpoint_interface > () - 8usize] ; [\"Offset of field: osa_micro_checkpoint_interface::started\"] [:: std :: mem :: offset_of ! (osa_micro_checkpoint_interface , started) - 0usize] ; [\"Offset of field: osa_micro_checkpoint_interface::finished\"] [:: std :: mem :: offset_of ! (osa_micro_checkpoint_interface , finished) - 8usize] ; } ; pub type slave_agent_interface_t = slave_agent_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct slave_agent_interface { pub accept : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , msg : bytes_t) > , pub accept_async : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , msg : bytes_t) > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of slave_agent_interface\"] [:: std :: mem :: size_of :: < slave_agent_interface > () - 16usize] ; [\"Alignment of slave_agent_interface\"] [:: std :: mem :: align_of :: < slave_agent_interface > () - 8usize] ; [\"Offset of field: slave_agent_interface::accept\"] [:: std :: mem :: offset_of ! (slave_agent_interface , accept) - 0usize] ; [\"Offset of field: slave_agent_interface::accept_async\"] [:: std :: mem :: offset_of ! (slave_agent_interface , accept_async) - 8usize] ; } ; pub type slaver_message_interface_t = slaver_message_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct slaver_message_interface { pub send : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , time : slave_time_t , skey : uint64 , msg : bytes_t) > , pub send_async : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , msg : bytes_t) > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of slaver_message_interface\"] [:: std :: mem :: size_of :: < slaver_message_interface > () - 16usize] ; [\"Alignment of slaver_message_interface\"] [:: std :: mem :: align_of :: < slaver_message_interface > () - 8usize] ; [\"Offset of field: slaver_message_interface::send\"] [:: std :: mem :: offset_of ! (slaver_message_interface , send) - 0usize] ; [\"Offset of field: slaver_message_interface::send_async\"] [:: std :: mem :: offset_of ! (slaver_message_interface , send_async) - 8usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct recorder { _unused : [u8 ; 0] , } pub type recorder_t = recorder ; # [doc = \" <add id=\\\"recorder_interface_t\\\">\\nThis interface is <b>deprecated</b>; please use the\\n<iface>recorder_v2</iface> instead.\\n\\nTo initiate recording, the object should call the <fun>attach</fun> method\\nwith the recorder, the object itself, and an input handler as parameters.\\nThis is done once, typically when the object instance is created.\\n\\nWhen the object receives data from outside the simulator, it should call\\nthe <fun>input</fun> method with a <type>dbuffer_t</type> containing the\\nraw data in unspecified form, along with an extra word of user data.\\nThe <param>data</param> parameter can be <pp>NULL</pp> if not needed.\\n\\nThe <fun>input_from_recorder</fun> function is called with input data to the\\nobject. When using live input, it is called with data given to\\n<fun>input</fun>; when playing back, it is called with recorded data.\\nAn object should never use its input directly but only what it receives\\nfrom <fun>input_from_recorder</fun>.\\n\\nThe <fun>playback</fun> function returns true if the recorder is currently\\nplaying back recorded data and false if not.\\n\\nThe <type>dbuffer_t</type> parameters retain their respective ownership.\\nThe <fun>input_from_recorder</fun> function must not modify the contents\\nwithout cloning it first.\\n\\n<insert-until text=\\\"// ADD INTERFACE recorder_interface\\\"/>\\n</add>\\n<add id=\\\"recorder_interface_exec_context\\\">\\nCell Context for all methods.\\n</add>\"] pub type recorder_input_handler_t = :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , data : * mut dbuffer_t , uint_data : uint32) > ; pub type recorder_interface_t = recorder_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct recorder_interface { pub attach : :: std :: option :: Option < unsafe extern \"C\" fn (rec : * mut conf_object_t , obj : * mut conf_object_t , input_from_recorder : recorder_input_handler_t) -> * mut recorder_t > , pub detach : :: std :: option :: Option < unsafe extern \"C\" fn (rec : * mut conf_object_t , r : * mut recorder_t) > , pub input : :: std :: option :: Option < unsafe extern \"C\" fn (rec : * mut conf_object_t , r : * mut recorder_t , data : * mut dbuffer_t , uint_data : uint32) > , pub playback : :: std :: option :: Option < unsafe extern \"C\" fn (rec : * mut conf_object_t) -> bool > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of recorder_interface\"] [:: std :: mem :: size_of :: < recorder_interface > () - 32usize] ; [\"Alignment of recorder_interface\"] [:: std :: mem :: align_of :: < recorder_interface > () - 8usize] ; [\"Offset of field: recorder_interface::attach\"] [:: std :: mem :: offset_of ! (recorder_interface , attach) - 0usize] ; [\"Offset of field: recorder_interface::detach\"] [:: std :: mem :: offset_of ! (recorder_interface , detach) - 8usize] ; [\"Offset of field: recorder_interface::input\"] [:: std :: mem :: offset_of ! (recorder_interface , input) - 16usize] ; [\"Offset of field: recorder_interface::playback\"] [:: std :: mem :: offset_of ! (recorder_interface , playback) - 24usize] ; } ; pub type recorder_v2_interface_t = recorder_v2_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct recorder_v2_interface { pub record : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , sender : * mut conf_object_t , data : bytes_t) > , pub playback : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t) -> bool > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of recorder_v2_interface\"] [:: std :: mem :: size_of :: < recorder_v2_interface > () - 16usize] ; [\"Alignment of recorder_v2_interface\"] [:: std :: mem :: align_of :: < recorder_v2_interface > () - 8usize] ; [\"Offset of field: recorder_v2_interface::record\"] [:: std :: mem :: offset_of ! (recorder_v2_interface , record) - 0usize] ; [\"Offset of field: recorder_v2_interface::playback\"] [:: std :: mem :: offset_of ! (recorder_v2_interface , playback) - 8usize] ; } ; pub type recorded_interface_t = recorded_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct recorded_interface { pub input : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , data : bytes_t , playback : bool) > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of recorded_interface\"] [:: std :: mem :: size_of :: < recorded_interface > () - 8usize] ; [\"Alignment of recorded_interface\"] [:: std :: mem :: align_of :: < recorded_interface > () - 8usize] ; [\"Offset of field: recorded_interface::input\"] [:: std :: mem :: offset_of ! (recorded_interface , input) - 0usize] ; } ; pub type debug_cancel_id_t = uint64 ; # [repr (u32)] # [doc = \" <add id=\\\"debugger_error_t\\\">\\n<insert-until text=\\\"// END debugger_error_t\\\"/>\\n</add>\"] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub enum debugger_error_t { Debugger_No_Error = 0 , Debugger_Not_Allowed_In_Execution_Context = 1 , Debugger_Unknown_Context = 2 , Debugger_Not_Supported_For_Context = 3 , Debugger_Context_Does_Not_Have_State = 4 , Debugger_Context_Is_Not_Active = 5 , Debugger_Lookup_Failure = 6 , Debugger_Failed_To_Get_Stack_Frame = 7 , Debugger_Failed_To_Get_PC = 8 , Debugger_Failed_To_Read = 9 , Debugger_Failed_To_Write = 10 , Debugger_Frame_Outside_Of_Known_Stack = 11 , Debugger_Failed_To_Evaluate_Expression = 12 , Debugger_Incorrect_Type = 13 , Debugger_Incorrect_Size = 14 , Debugger_Incorrect_Context_Query = 15 , Debugger_Unknown_Id = 16 , Debugger_Source_Not_Found = 17 , Debugger_File_Not_Found = 18 , Debugger_Unrecognized_File_Format = 19 , Debugger_Unsupported_For_File_Format = 20 , Debugger_Failed_To_Open_File = 21 , Debugger_Not_Relocatable = 22 , Debugger_Segment_Info_Missing = 23 , Debugger_Section_Info_Missing = 24 , Debugger_Segment_Not_Found = 25 , Debugger_Section_Not_Found = 26 , Debugger_Already_Running = 27 , Debugger_Failed_To_Continue = 28 , Debugger_No_Context_For_Object = 29 , Debugger_Invalid_Path = 30 , Debugger_Missing_Object = 31 , Debugger_Unexpected_Error = 32 , Debugger_Step_Interrupted = 33 , } pub type debug_notification_interface_t = debug_notification_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct debug_notification_interface { pub notify_context_creation : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , query : * const :: std :: os :: raw :: c_char , cb : :: std :: option :: Option < unsafe extern \"C\" fn (data : cbdata_call_t , obj : * mut conf_object_t , ctx_id : * const :: std :: os :: raw :: c_char , updated : bool) > , data : cbdata_register_t) -> attr_value_t > , pub notify_context_destruction : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , query : * const :: std :: os :: raw :: c_char , cb : :: std :: option :: Option < unsafe extern \"C\" fn (data : cbdata_call_t , obj : * mut conf_object_t , ctx_id : * const :: std :: os :: raw :: c_char) > , data : cbdata_register_t) -> attr_value_t > , pub notify_location : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , query : * const :: std :: os :: raw :: c_char , location : * const :: std :: os :: raw :: c_char , size : :: std :: os :: raw :: c_uint , access : access_t , cb : :: std :: option :: Option < unsafe extern \"C\" fn (data : cbdata_call_t , obj : * mut conf_object_t , ctx_id : * const :: std :: os :: raw :: c_char , cpu : * mut conf_object_t , instruction_address : uint64 , data_address : uint64 , size : :: std :: os :: raw :: c_uint) > , data : cbdata_register_t) -> attr_value_t > , pub notify_address : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , query : * const :: std :: os :: raw :: c_char , address : uint64 , size : :: std :: os :: raw :: c_uint , access : access_t , physical : bool , cb : :: std :: option :: Option < unsafe extern \"C\" fn (data : cbdata_call_t , obj : * mut conf_object_t , ctx_id : * const :: std :: os :: raw :: c_char , cpu : * mut conf_object_t , instruction_address : uint64 , data_address : uint64 , size : :: std :: os :: raw :: c_uint) > , data : cbdata_register_t) -> attr_value_t > , pub notify_line : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , query : * const :: std :: os :: raw :: c_char , file : * const :: std :: os :: raw :: c_char , line : :: std :: os :: raw :: c_uint , column : :: std :: os :: raw :: c_uint , cb : :: std :: option :: Option < unsafe extern \"C\" fn (data : cbdata_call_t , obj : * mut conf_object_t , ctx_id : * const :: std :: os :: raw :: c_char , cpu : * mut conf_object_t , instruction_address : uint64 , data_address : uint64 , size : :: std :: os :: raw :: c_uint) > , data : cbdata_register_t) -> attr_value_t > , pub notify_activated : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , query : * const :: std :: os :: raw :: c_char , cb : :: std :: option :: Option < unsafe extern \"C\" fn (data : cbdata_call_t , obj : * mut conf_object_t , ctx_id : * const :: std :: os :: raw :: c_char , cpu : * mut conf_object_t) > , data : cbdata_register_t) -> attr_value_t > , pub notify_deactivated : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , query : * const :: std :: os :: raw :: c_char , cb : :: std :: option :: Option < unsafe extern \"C\" fn (data : cbdata_call_t , obj : * mut conf_object_t , ctx_id : * const :: std :: os :: raw :: c_char , cpu : * mut conf_object_t) > , data : cbdata_register_t) -> attr_value_t > , pub notify_callbacks_done : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , cb : :: std :: option :: Option < unsafe extern \"C\" fn (data : cbdata_call_t , obj : * mut conf_object_t) > , data : cbdata_register_t) -> attr_value_t > , pub cancel : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , cid : debug_cancel_id_t) -> attr_value_t > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of debug_notification_interface\"] [:: std :: mem :: size_of :: < debug_notification_interface > () - 72usize] ; [\"Alignment of debug_notification_interface\"] [:: std :: mem :: align_of :: < debug_notification_interface > () - 8usize] ; [\"Offset of field: debug_notification_interface::notify_context_creation\"] [:: std :: mem :: offset_of ! (debug_notification_interface , notify_context_creation) - 0usize] ; [\"Offset of field: debug_notification_interface::notify_context_destruction\"] [:: std :: mem :: offset_of ! (debug_notification_interface , notify_context_destruction) - 8usize] ; [\"Offset of field: debug_notification_interface::notify_location\"] [:: std :: mem :: offset_of ! (debug_notification_interface , notify_location) - 16usize] ; [\"Offset of field: debug_notification_interface::notify_address\"] [:: std :: mem :: offset_of ! (debug_notification_interface , notify_address) - 24usize] ; [\"Offset of field: debug_notification_interface::notify_line\"] [:: std :: mem :: offset_of ! (debug_notification_interface , notify_line) - 32usize] ; [\"Offset of field: debug_notification_interface::notify_activated\"] [:: std :: mem :: offset_of ! (debug_notification_interface , notify_activated) - 40usize] ; [\"Offset of field: debug_notification_interface::notify_deactivated\"] [:: std :: mem :: offset_of ! (debug_notification_interface , notify_deactivated) - 48usize] ; [\"Offset of field: debug_notification_interface::notify_callbacks_done\"] [:: std :: mem :: offset_of ! (debug_notification_interface , notify_callbacks_done) - 56usize] ; [\"Offset of field: debug_notification_interface::cancel\"] [:: std :: mem :: offset_of ! (debug_notification_interface , cancel) - 64usize] ; } ; # [doc = \" <add id=\\\"debug_setup_interface_t\\\">\\n<name>debug_setup_interface_t</name>\\n<ndx>debug_setup_interface_t</ndx>\\n\\nFunctions in the <iface>debug_setup</iface> interfaces are used to provide\\nthe debugger with symbol files and paths. There are also functions for\\nlisting what symbol files and paths have been added.\\n\\n<insert id=\\\"debug_attr_value_return_type\\\"/>\\n\\nUpon success, all functions for adding symbols will return an <tt>id</tt>\\nthat can be used with <fun>remove_symbol_file</fun>.\\n\\n<ndx>add_symbol_file!debug_setup interface method</ndx>\\n<fun>add_symbol_file</fun> adds a symbol file, <arg>symbol_file</arg>, used\\nfor debugging contexts that match the context-query <arg>query</arg>. The\\n<arg>address</arg> argument specifies the address that the file should be\\nmapped to. If <arg>absolute_address</arg> is set then the given\\n<arg>address</arg> will be the absolute address of the first relocatable\\nsegment and other segments will be added with their given offsets to that\\nsegment.\\n\\nErrors specific to this function:\\n\\n<ul>\\n\\n<li><em>Debugger_Failed_To_Open_File</em> - File cannot be opened.</li>\\n\\n<li><em>Debugger_Unrecognized_File_Format</em> - The file format is not\\nrecognized.</li>\\n\\n<li><em>Debugger_Segment_Info_Missing</em> - If an ELF file is being added,\\nbut no valid segments can be found.</li>\\n\\n</ul>\\n\\n<ndx>add_symbol_segment!debug_setup interface method</ndx>\\n<fun>add_symbol_segment</fun> adds symbols from the specified\\n<arg>segment</arg> of an ELF symbol file. Other arguments are the same as\\nfor <fun>add_symbol_file</fun>. The address of the segment is specified with\\nthe <arg>address</arg> argument. If <arg>absolute_address</arg> is set this\\n<arg>address</arg> will be an absolute address otherwise it will be an\\noffset to the address found in the symbol file for that segment.\\n\\nErrors specific to this function: <ul>\\n\\n<li><em>Debugger_Segment_Not_Found</em> - Segment not found when adding a\\nsegment.</li>\\n\\n<li><em>Debugger_Segment_Info_Missing</em> - Segment information is missing\\nor incomplete.</li>\\n\\n<li><em>Debugger_Not_Relocatable</em> - The segment is not relocatable.</li>\\n\\n<li><em>Debugger_Unsupported_For_File_Format</em> - File format is not\\nELF.</li>\\n\\n</ul>\\n\\n<ndx>add_symbol_section!debug_setup interface method</ndx>\\n<fun>add_symbol_section</fun> adds symbols from the specified\\n<arg>section</arg> of an ELF symbol file. Other arguments are the same as\\nfor <fun>add_symbol_file</fun>. The address of the section is specified with\\nthe <arg>address</arg> argument. If <arg>absolute_address</arg> is set this\\n<arg>address</arg> will be an absolute address otherwise it will be an\\noffset to the address found in the symbol file for that section.\\n\\nErrors specific to this function: <ul>\\n\\n<li><em>Debugger_Section_Not_Found</em> - Section not found when adding a\\nsection.</li>\\n\\n<li><em>Debugger_Section_Info_Missing</em> - Section information is missing\\nor incomplete.</li>\\n\\n<li><em>Debugger_Not_Relocatable</em> - The section is not relocatable.</li>\\n\\n<li><em>Debugger_Unsupported_For_File_Format</em> - File format is not\\nELF.</li>\\n\\n</ul>\\n\\n<note>Adding the same symbol file, section or segment more than once might\\nresult in unexpected behavior and is not supported.</note>\\n\\n<ndx>remove_symbol_file!debug_setup interface method</ndx>\\n<fun>remove_symbol_file</fun> removes the debugger\'s knowledge of symbols\\nthat was added with any of the functions for adding symbols. The\\n<arg>id</arg> argument is the id returned from the add function.\\n\\nErrors specific to this function: <ul>\\n\\n<li><em>Debugger_Unknown_Id</em> - The <arg>id</arg> is unknown.</li>\\n\\n</ul>\\n\\n<ndx>clear_symbol_files!debug_setup interface method</ndx>\\n<fun>clear_symbol_files</fun> removes the debugger\'s knowledge about all\\nsymbol files added by <arg>add_symbol_file</arg>.\\n\\n<ndx>symbol_files!debug_setup interface method</ndx> <fun>symbol_files</fun>\\nlists all added symbol files. A dictionary, with <tt>id</tt> as key will be\\nreturned. An id is always bound to one query and one symbol file, but it can\\ncontain several memory maps. The listed <arg>id</arg> is the argument passed\\nto <fun>remove_symbol_file</fun>. The dictionary values have the following\\nformat:\\n\\n<ul>\\n\\n<li><arg>query</arg> <type>(string)</type> - The context query the symbol is\\nvalid for.</li>\\n\\n<li><arg>relocation</arg> <type>(uint64)</type> - The relocation address\\nprovided when the symbol file was added.</li>\\n\\n<li><arg>symbol-file</arg> <type>(string)</type> - The file containing the\\nsymbol information.</li>\\n\\n<li><arg>memory-maps</arg> <type>([&lt;dict&gt;, ...])</type> - A list of\\nmemory maps that are added togheter as the same <tt>id</tt>, see format\\nbelow:</li>\\n\\n</ul>\\n\\nThe dictionary describing a memory map has the following format:\\n<ul>\\n\\n<li><arg>address</arg> <type>(uint64)</type> - The address of the section in\\nmemory.</li>\\n\\n<li><arg>size</arg> <type>(uint64)</type> - The section size in memory.</li>\\n\\n<li><arg>flags</arg> <type>(uint64)</type> - Format specific flags describing\\nthe section.</li>\\n\\n<li><arg>section</arg> <type>(string)</type> - The name of the section.</li>\\n\\n<li><arg>file-offset</arg> <type>(uint64)</type> - Offset in symbol file for\\nthe section.</li>\\n\\n<li><arg>file-size</arg> <type>(uint64)</type> - Size of the section in the\\nsymbol file.</li>\\n\\n</ul>\\n\\n<ndx>symbol_files_for_ctx!debug_setup interface method</ndx>\\n<fun>symbol_files_for_ctx</fun> is the same as <fun>symbol_files</fun>\\nexcept that it only returns symbol files that are valid for the given\\ncontext id, <arg>ctx_id</arg>.\\n\\n<ndx>list_all_mappings!debug_setup interface method</ndx>\\n<fun>list_all_mappings</fun> lists all symbol mappings for a certain context\\n<arg>ctx_id</arg>. This will be all mappings from symbol files added by\\nusers plus any symbol mappings added elsewhere, from trackers for example.\\nThe returned value is a dictionary on the following format:\\n\\n<ul>\\n\\n<li><arg>filename</arg> <type>(string)</type> - The file backing the memory\\nmap.</li>\\n\\n<li><arg>query</arg> <type>(string)</type> - The query the map is valid\\nfor.</li>\\n\\n<li><arg>address</arg> <type>(uint64)</type> - The map\'s address in context\\nmemory.</li>\\n\\n<li><arg>size</arg> <type>(uint64)</type> - The size of the map in\\nmemory.</li>\\n\\n<li><arg>flags</arg> <type>(uint64)</type> - Read, write, and execute flags,\\nbit 0 is set if readable, bit 1 if writeable and bit 2 if executable. If this\\nvalue is 0 this is the same as if all flags are set.</li>\\n\\n<li><arg>section-name</arg> <type>(string)</type> - The section name, or\\nNIL.</li>\\n\\n<li><arg>file-offset</arg> <type>(int64)</type> - Offset into the backing\\nfile.</li>\\n\\n<li><arg>file-size</arg> <type>(uint64)</type> - Size of the map in the\\nbacking file.</li>\\n\\n<li><arg>relocation</arg> <type>(uint64)</type> - The offset from the address\\nin the symbol file to where the mappings is actually loaded in memory. This\\nis not always present in the dictionary.</li>\\n\\n</ul>\\n\\nSome other internal entries could possibly also be present in the\\ndictionary.\\n\\n\\n<ndx>add_path_map_entry!debug_setup interface method</ndx>\\n<fun>add_path_map_entry</fun> adds a path math entry that maps a source\\nfile from the <arg>source</arg> in the symbol file to the actual\\ndestination, <arg>dest</arg>, where it is located on disk. The\\n<arg>query</arg> argument specifies for which context-queries the mapping\\nshould apply. The returned id can be used with\\n<fun>remove_path_map_entry</fun> to remove the added path map. The source\\npath may not be empty or be just \\\".\\\" or \\\"./\\\".\\n\\nErrors specific to this function: <ul>\\n\\n<li><em>Debugger_Invalid_Path</em> - The source path is not valid.</li>\\n\\n</ul>\\n\\n<ndx>remove_path_map_entry!debug_setup interface method</ndx>\\n<fun>remove_path_map_entry</fun> removes an entry that was added with\\n<fun>add_path_map_entry</fun>. The <arg>id</arg> is the value returned from\\nthe add function.\\n\\nErrors specific to this function: <ul>\\n\\n<li><em>Debugger_Unknown_Id</em> - The provided <arg>id</arg> is\\nunknown.</li>\\n\\n</ul>\\n\\n<ndx>clear_path_map_entries!debug_setup interface method</ndx>\\n<fun>clear_path_map_entries</fun> removes all knowledge about all path map\\nentries added with <fun>add_path_map_entry</fun>.\\n\\n<ndx>path_map_entries!debug_setup interface method</ndx>\\n<fun>path_map_entries</fun> lists all path map entries that have been added\\nwith <fun>add_path_map_entry</fun>, that matches the given context id. If\\nthe context id is nil, then all path maps will be listed. The format of the\\nentries in the returned list are dictionaries, with an <tt>id</tt> of type\\ndebug_setup_id_t as key:\\n\\n<ul>\\n\\n<li><arg>query</arg> <type>(string)</type> - The context query the path map\\nis valid for.</li>\\n\\n<li><arg>source</arg> <type>(string)</type> - The source to translate\\nfrom.</li>\\n\\n<li><arg>destination</arg> <type>(string)</type> - The destination to\\ntranslate to.</li>\\n\\n</ul>\\n\\n<ndx>path_map_entries_for_ctx!debug_setup interface method</ndx>\\n<fun>path_map_entries_for_ctx</fun> is the same as\\n<fun>path_map_entries</fun> except that it only lists path maps that are\\nvalid for the given context id, <arg>ctx_id</arg>.\\n\\n\\n<ndx>apply_path_map!debug_setup interface method</ndx>\\n<fun>apply_path_map</fun> applies any added path map to a file path,\\n<arg>filename</arg>, for a given context with ID <arg>ctx_id</arg>. The path\\nwith the path map applied will be returned. The path map will only apply if\\nthe destination file exists and if the path given in <arg>filename</arg>\\ndoes not, otherwise the provided file will be returned. The returned path\\nwill always contain forward slashes as path separator, regardless of what\\nthe host system uses, or if any path map was applied or not.\\n\\n<note>For functions that take <arg>query</arg> as argument, having this set\\nto nil will work the same way as for <tt>\\\"*\\\"</tt>. A bad context query will\\nresult in a <type>Debugger_Incorrect_Context_Query</type> error.</note>\\n\\n<insert-until text=\\\"// ADD INTERFACE debug_setup_interface\\\"/>\\n</add>\\n\\n<add id=\\\"debug_setup_interface_exec_context\\\">\\nGlobal Context for all methods.\\n</add>\"] pub type debug_setup_id_t = int64 ; pub type debug_setup_interface_t = debug_setup_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct debug_setup_interface { pub add_symbol_file : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , query : * const :: std :: os :: raw :: c_char , symbol_file : * const :: std :: os :: raw :: c_char , address : uint64 , absolute_address : bool) -> attr_value_t > , pub add_symbol_segment : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , query : * const :: std :: os :: raw :: c_char , symbol_file : * const :: std :: os :: raw :: c_char , segment : :: std :: os :: raw :: c_uint , address : uint64 , absolute_address : bool) -> attr_value_t > , pub add_symbol_section : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , query : * const :: std :: os :: raw :: c_char , symbol_file : * const :: std :: os :: raw :: c_char , section : * const :: std :: os :: raw :: c_char , address : uint64 , absolute_address : bool) -> attr_value_t > , pub remove_symbol_file : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , id : debug_setup_id_t) -> attr_value_t > , pub clear_symbol_files : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t) > , pub symbol_files : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t) -> attr_value_t > , pub symbol_files_for_ctx : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , ctx_id : * const :: std :: os :: raw :: c_char) -> attr_value_t > , pub list_all_mappings : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , ctx_id : * const :: std :: os :: raw :: c_char) -> attr_value_t > , pub add_path_map_entry : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , query : * const :: std :: os :: raw :: c_char , source : * const :: std :: os :: raw :: c_char , dest : * const :: std :: os :: raw :: c_char) -> attr_value_t > , pub remove_path_map_entry : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , id : debug_setup_id_t) -> attr_value_t > , pub clear_path_map_entries : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t) > , pub path_map_entries : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t) -> attr_value_t > , pub path_map_entries_for_ctx : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , ctx_id : * const :: std :: os :: raw :: c_char) -> attr_value_t > , pub apply_path_map : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , ctx_id : * const :: std :: os :: raw :: c_char , filename : * const :: std :: os :: raw :: c_char) -> attr_value_t > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of debug_setup_interface\"] [:: std :: mem :: size_of :: < debug_setup_interface > () - 112usize] ; [\"Alignment of debug_setup_interface\"] [:: std :: mem :: align_of :: < debug_setup_interface > () - 8usize] ; [\"Offset of field: debug_setup_interface::add_symbol_file\"] [:: std :: mem :: offset_of ! (debug_setup_interface , add_symbol_file) - 0usize] ; [\"Offset of field: debug_setup_interface::add_symbol_segment\"] [:: std :: mem :: offset_of ! (debug_setup_interface , add_symbol_segment) - 8usize] ; [\"Offset of field: debug_setup_interface::add_symbol_section\"] [:: std :: mem :: offset_of ! (debug_setup_interface , add_symbol_section) - 16usize] ; [\"Offset of field: debug_setup_interface::remove_symbol_file\"] [:: std :: mem :: offset_of ! (debug_setup_interface , remove_symbol_file) - 24usize] ; [\"Offset of field: debug_setup_interface::clear_symbol_files\"] [:: std :: mem :: offset_of ! (debug_setup_interface , clear_symbol_files) - 32usize] ; [\"Offset of field: debug_setup_interface::symbol_files\"] [:: std :: mem :: offset_of ! (debug_setup_interface , symbol_files) - 40usize] ; [\"Offset of field: debug_setup_interface::symbol_files_for_ctx\"] [:: std :: mem :: offset_of ! (debug_setup_interface , symbol_files_for_ctx) - 48usize] ; [\"Offset of field: debug_setup_interface::list_all_mappings\"] [:: std :: mem :: offset_of ! (debug_setup_interface , list_all_mappings) - 56usize] ; [\"Offset of field: debug_setup_interface::add_path_map_entry\"] [:: std :: mem :: offset_of ! (debug_setup_interface , add_path_map_entry) - 64usize] ; [\"Offset of field: debug_setup_interface::remove_path_map_entry\"] [:: std :: mem :: offset_of ! (debug_setup_interface , remove_path_map_entry) - 72usize] ; [\"Offset of field: debug_setup_interface::clear_path_map_entries\"] [:: std :: mem :: offset_of ! (debug_setup_interface , clear_path_map_entries) - 80usize] ; [\"Offset of field: debug_setup_interface::path_map_entries\"] [:: std :: mem :: offset_of ! (debug_setup_interface , path_map_entries) - 88usize] ; [\"Offset of field: debug_setup_interface::path_map_entries_for_ctx\"] [:: std :: mem :: offset_of ! (debug_setup_interface , path_map_entries_for_ctx) - 96usize] ; [\"Offset of field: debug_setup_interface::apply_path_map\"] [:: std :: mem :: offset_of ! (debug_setup_interface , apply_path_map) - 104usize] ; } ; pub type debug_query_interface_t = debug_query_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct debug_query_interface { pub matching_contexts : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , query : * const :: std :: os :: raw :: c_char) -> attr_value_t > , pub get_context_group : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , ctx_id : * const :: std :: os :: raw :: c_char) -> attr_value_t > , pub get_context_parent : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , ctx_id : * const :: std :: os :: raw :: c_char) -> attr_value_t > , pub get_context_children : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , ctx_id : * const :: std :: os :: raw :: c_char) -> attr_value_t > , pub query_for_context_group : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , ctx_id : * const :: std :: os :: raw :: c_char) -> attr_value_t > , pub query_for_context_id : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , ctx_id : * const :: std :: os :: raw :: c_char) -> attr_value_t > , pub query_for_context_tree : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , ctx_id : * const :: std :: os :: raw :: c_char) -> attr_value_t > , pub context_name : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , ctx_id : * const :: std :: os :: raw :: c_char) -> attr_value_t > , pub context_id_for_object : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , ctx_obj : * mut conf_object_t) -> attr_value_t > , pub object_for_context : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , ctx_id : * const :: std :: os :: raw :: c_char) -> attr_value_t > , pub context_has_state : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , ctx_id : * const :: std :: os :: raw :: c_char) -> attr_value_t > , pub get_active_processor : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , ctx_id : * const :: std :: os :: raw :: c_char) -> attr_value_t > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of debug_query_interface\"] [:: std :: mem :: size_of :: < debug_query_interface > () - 96usize] ; [\"Alignment of debug_query_interface\"] [:: std :: mem :: align_of :: < debug_query_interface > () - 8usize] ; [\"Offset of field: debug_query_interface::matching_contexts\"] [:: std :: mem :: offset_of ! (debug_query_interface , matching_contexts) - 0usize] ; [\"Offset of field: debug_query_interface::get_context_group\"] [:: std :: mem :: offset_of ! (debug_query_interface , get_context_group) - 8usize] ; [\"Offset of field: debug_query_interface::get_context_parent\"] [:: std :: mem :: offset_of ! (debug_query_interface , get_context_parent) - 16usize] ; [\"Offset of field: debug_query_interface::get_context_children\"] [:: std :: mem :: offset_of ! (debug_query_interface , get_context_children) - 24usize] ; [\"Offset of field: debug_query_interface::query_for_context_group\"] [:: std :: mem :: offset_of ! (debug_query_interface , query_for_context_group) - 32usize] ; [\"Offset of field: debug_query_interface::query_for_context_id\"] [:: std :: mem :: offset_of ! (debug_query_interface , query_for_context_id) - 40usize] ; [\"Offset of field: debug_query_interface::query_for_context_tree\"] [:: std :: mem :: offset_of ! (debug_query_interface , query_for_context_tree) - 48usize] ; [\"Offset of field: debug_query_interface::context_name\"] [:: std :: mem :: offset_of ! (debug_query_interface , context_name) - 56usize] ; [\"Offset of field: debug_query_interface::context_id_for_object\"] [:: std :: mem :: offset_of ! (debug_query_interface , context_id_for_object) - 64usize] ; [\"Offset of field: debug_query_interface::object_for_context\"] [:: std :: mem :: offset_of ! (debug_query_interface , object_for_context) - 72usize] ; [\"Offset of field: debug_query_interface::context_has_state\"] [:: std :: mem :: offset_of ! (debug_query_interface , context_has_state) - 80usize] ; [\"Offset of field: debug_query_interface::get_active_processor\"] [:: std :: mem :: offset_of ! (debug_query_interface , get_active_processor) - 88usize] ; } ; pub type debug_step_interface_t = debug_step_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct debug_step_interface { pub instruction_into : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , ctx_id : * const :: std :: os :: raw :: c_char) -> attr_value_t > , pub into : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , ctx_id : * const :: std :: os :: raw :: c_char) -> attr_value_t > , pub instruction_over : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , ctx_id : * const :: std :: os :: raw :: c_char) -> attr_value_t > , pub over : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , ctx_id : * const :: std :: os :: raw :: c_char) -> attr_value_t > , pub out : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , ctx_id : * const :: std :: os :: raw :: c_char) -> attr_value_t > , pub reverse_instruction_into : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , ctx_id : * const :: std :: os :: raw :: c_char) -> attr_value_t > , pub reverse_into : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , ctx_id : * const :: std :: os :: raw :: c_char) -> attr_value_t > , pub reverse_instruction_over : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , ctx_id : * const :: std :: os :: raw :: c_char) -> attr_value_t > , pub reverse_over : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , ctx_id : * const :: std :: os :: raw :: c_char) -> attr_value_t > , pub reverse_out : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , ctx_id : * const :: std :: os :: raw :: c_char) -> attr_value_t > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of debug_step_interface\"] [:: std :: mem :: size_of :: < debug_step_interface > () - 80usize] ; [\"Alignment of debug_step_interface\"] [:: std :: mem :: align_of :: < debug_step_interface > () - 8usize] ; [\"Offset of field: debug_step_interface::instruction_into\"] [:: std :: mem :: offset_of ! (debug_step_interface , instruction_into) - 0usize] ; [\"Offset of field: debug_step_interface::into\"] [:: std :: mem :: offset_of ! (debug_step_interface , into) - 8usize] ; [\"Offset of field: debug_step_interface::instruction_over\"] [:: std :: mem :: offset_of ! (debug_step_interface , instruction_over) - 16usize] ; [\"Offset of field: debug_step_interface::over\"] [:: std :: mem :: offset_of ! (debug_step_interface , over) - 24usize] ; [\"Offset of field: debug_step_interface::out\"] [:: std :: mem :: offset_of ! (debug_step_interface , out) - 32usize] ; [\"Offset of field: debug_step_interface::reverse_instruction_into\"] [:: std :: mem :: offset_of ! (debug_step_interface , reverse_instruction_into) - 40usize] ; [\"Offset of field: debug_step_interface::reverse_into\"] [:: std :: mem :: offset_of ! (debug_step_interface , reverse_into) - 48usize] ; [\"Offset of field: debug_step_interface::reverse_instruction_over\"] [:: std :: mem :: offset_of ! (debug_step_interface , reverse_instruction_over) - 56usize] ; [\"Offset of field: debug_step_interface::reverse_over\"] [:: std :: mem :: offset_of ! (debug_step_interface , reverse_over) - 64usize] ; [\"Offset of field: debug_step_interface::reverse_out\"] [:: std :: mem :: offset_of ! (debug_step_interface , reverse_out) - 72usize] ; } ; pub type debug_symbol_interface_t = debug_symbol_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct debug_symbol_interface { pub address_source : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , ctx_id : * const :: std :: os :: raw :: c_char , address : uint64 , size : uint64 , cb : :: std :: option :: Option < unsafe extern \"C\" fn (data : cbdata_call_t , code_area : attr_value_t) > , data : cbdata_register_t) -> attr_value_t > , pub source_address : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , ctx_id : * const :: std :: os :: raw :: c_char , filename : * const :: std :: os :: raw :: c_char , line : uint32 , column : uint32 , cb : :: std :: option :: Option < unsafe extern \"C\" fn (data : cbdata_call_t , code_area : attr_value_t) > , data : cbdata_register_t) -> attr_value_t > , pub address_symbol : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , ctx_id : * const :: std :: os :: raw :: c_char , address : uint64) -> attr_value_t > , pub stack_depth : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , ctx_id : * const :: std :: os :: raw :: c_char) -> attr_value_t > , pub stack_frames : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , ctx_id : * const :: std :: os :: raw :: c_char , min : :: std :: os :: raw :: c_int , max : :: std :: os :: raw :: c_int) -> attr_value_t > , pub local_variables : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , ctx_id : * const :: std :: os :: raw :: c_char , frame : :: std :: os :: raw :: c_int) -> attr_value_t > , pub local_arguments : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , ctx_id : * const :: std :: os :: raw :: c_char , frame : :: std :: os :: raw :: c_int) -> attr_value_t > , pub expression_value : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , ctx_id : * const :: std :: os :: raw :: c_char , frame : int32 , address_scope : uint64 , expr : * const :: std :: os :: raw :: c_char) -> attr_value_t > , pub expression_type : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , ctx_id : * const :: std :: os :: raw :: c_char , frame : int32 , address_scope : uint64 , expr : * const :: std :: os :: raw :: c_char) -> attr_value_t > , pub type_info : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , ctx_id : * const :: std :: os :: raw :: c_char , address_scope : uint64 , type_ : * const :: std :: os :: raw :: c_char) -> attr_value_t > , pub type_to_string : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , type_ : attr_value_t) -> attr_value_t > , pub symbol_address : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , ctx_id : * const :: std :: os :: raw :: c_char , frame : int32 , symbol : * const :: std :: os :: raw :: c_char) -> attr_value_t > , pub address_string : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , ctx_id : * const :: std :: os :: raw :: c_char , address : uint64 , maxlen : :: std :: os :: raw :: c_int) -> attr_value_t > , pub lvalue_write : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , ctx_id : * const :: std :: os :: raw :: c_char , frame : int32 , symbol : * const :: std :: os :: raw :: c_char , value : attr_value_t) -> attr_value_t > , pub address_write : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , ctx_id : * const :: std :: os :: raw :: c_char , address : uint64 , value : attr_value_t) -> attr_value_t > , pub address_read : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , ctx_id : * const :: std :: os :: raw :: c_char , address : uint64 , size : :: std :: os :: raw :: c_uint) -> attr_value_t > , pub struct_members : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , ctx_id : * const :: std :: os :: raw :: c_char , address_scope : uint64 , struct_name : * const :: std :: os :: raw :: c_char) -> attr_value_t > , pub struct_field : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , ctx_id : * const :: std :: os :: raw :: c_char , address_scope : uint64 , struct_name : * const :: std :: os :: raw :: c_char , field : * const :: std :: os :: raw :: c_char) -> attr_value_t > , pub list_functions : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , ctx_id : * const :: std :: os :: raw :: c_char) -> attr_value_t > , pub list_global_variables : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , ctx_id : * const :: std :: os :: raw :: c_char) -> attr_value_t > , pub list_source_files : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , ctx_id : * const :: std :: os :: raw :: c_char) -> attr_value_t > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of debug_symbol_interface\"] [:: std :: mem :: size_of :: < debug_symbol_interface > () - 168usize] ; [\"Alignment of debug_symbol_interface\"] [:: std :: mem :: align_of :: < debug_symbol_interface > () - 8usize] ; [\"Offset of field: debug_symbol_interface::address_source\"] [:: std :: mem :: offset_of ! (debug_symbol_interface , address_source) - 0usize] ; [\"Offset of field: debug_symbol_interface::source_address\"] [:: std :: mem :: offset_of ! (debug_symbol_interface , source_address) - 8usize] ; [\"Offset of field: debug_symbol_interface::address_symbol\"] [:: std :: mem :: offset_of ! (debug_symbol_interface , address_symbol) - 16usize] ; [\"Offset of field: debug_symbol_interface::stack_depth\"] [:: std :: mem :: offset_of ! (debug_symbol_interface , stack_depth) - 24usize] ; [\"Offset of field: debug_symbol_interface::stack_frames\"] [:: std :: mem :: offset_of ! (debug_symbol_interface , stack_frames) - 32usize] ; [\"Offset of field: debug_symbol_interface::local_variables\"] [:: std :: mem :: offset_of ! (debug_symbol_interface , local_variables) - 40usize] ; [\"Offset of field: debug_symbol_interface::local_arguments\"] [:: std :: mem :: offset_of ! (debug_symbol_interface , local_arguments) - 48usize] ; [\"Offset of field: debug_symbol_interface::expression_value\"] [:: std :: mem :: offset_of ! (debug_symbol_interface , expression_value) - 56usize] ; [\"Offset of field: debug_symbol_interface::expression_type\"] [:: std :: mem :: offset_of ! (debug_symbol_interface , expression_type) - 64usize] ; [\"Offset of field: debug_symbol_interface::type_info\"] [:: std :: mem :: offset_of ! (debug_symbol_interface , type_info) - 72usize] ; [\"Offset of field: debug_symbol_interface::type_to_string\"] [:: std :: mem :: offset_of ! (debug_symbol_interface , type_to_string) - 80usize] ; [\"Offset of field: debug_symbol_interface::symbol_address\"] [:: std :: mem :: offset_of ! (debug_symbol_interface , symbol_address) - 88usize] ; [\"Offset of field: debug_symbol_interface::address_string\"] [:: std :: mem :: offset_of ! (debug_symbol_interface , address_string) - 96usize] ; [\"Offset of field: debug_symbol_interface::lvalue_write\"] [:: std :: mem :: offset_of ! (debug_symbol_interface , lvalue_write) - 104usize] ; [\"Offset of field: debug_symbol_interface::address_write\"] [:: std :: mem :: offset_of ! (debug_symbol_interface , address_write) - 112usize] ; [\"Offset of field: debug_symbol_interface::address_read\"] [:: std :: mem :: offset_of ! (debug_symbol_interface , address_read) - 120usize] ; [\"Offset of field: debug_symbol_interface::struct_members\"] [:: std :: mem :: offset_of ! (debug_symbol_interface , struct_members) - 128usize] ; [\"Offset of field: debug_symbol_interface::struct_field\"] [:: std :: mem :: offset_of ! (debug_symbol_interface , struct_field) - 136usize] ; [\"Offset of field: debug_symbol_interface::list_functions\"] [:: std :: mem :: offset_of ! (debug_symbol_interface , list_functions) - 144usize] ; [\"Offset of field: debug_symbol_interface::list_global_variables\"] [:: std :: mem :: offset_of ! (debug_symbol_interface , list_global_variables) - 152usize] ; [\"Offset of field: debug_symbol_interface::list_source_files\"] [:: std :: mem :: offset_of ! (debug_symbol_interface , list_source_files) - 160usize] ; } ; pub type debug_symbol_file_interface_t = debug_symbol_file_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct debug_symbol_file_interface { pub open_symbol_file : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , filename : * const :: std :: os :: raw :: c_char , address : uint64 , absolute_address : bool) -> attr_value_t > , pub close_symbol_file : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , ctx_id : * const :: std :: os :: raw :: c_char) -> attr_value_t > , pub symbol_file_info : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , ctx_id : * const :: std :: os :: raw :: c_char) -> attr_value_t > , pub sections_info : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , ctx_id : * const :: std :: os :: raw :: c_char) -> attr_value_t > , pub segments_info : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , ctx_id : * const :: std :: os :: raw :: c_char) -> attr_value_t > , pub open_symbol_section : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , filename : * const :: std :: os :: raw :: c_char , section : * const :: std :: os :: raw :: c_char , address : uint64 , absolute_address : bool) -> attr_value_t > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of debug_symbol_file_interface\"] [:: std :: mem :: size_of :: < debug_symbol_file_interface > () - 48usize] ; [\"Alignment of debug_symbol_file_interface\"] [:: std :: mem :: align_of :: < debug_symbol_file_interface > () - 8usize] ; [\"Offset of field: debug_symbol_file_interface::open_symbol_file\"] [:: std :: mem :: offset_of ! (debug_symbol_file_interface , open_symbol_file) - 0usize] ; [\"Offset of field: debug_symbol_file_interface::close_symbol_file\"] [:: std :: mem :: offset_of ! (debug_symbol_file_interface , close_symbol_file) - 8usize] ; [\"Offset of field: debug_symbol_file_interface::symbol_file_info\"] [:: std :: mem :: offset_of ! (debug_symbol_file_interface , symbol_file_info) - 16usize] ; [\"Offset of field: debug_symbol_file_interface::sections_info\"] [:: std :: mem :: offset_of ! (debug_symbol_file_interface , sections_info) - 24usize] ; [\"Offset of field: debug_symbol_file_interface::segments_info\"] [:: std :: mem :: offset_of ! (debug_symbol_file_interface , segments_info) - 32usize] ; [\"Offset of field: debug_symbol_file_interface::open_symbol_section\"] [:: std :: mem :: offset_of ! (debug_symbol_file_interface , open_symbol_section) - 40usize] ; } ; pub type preference_interface_t = preference_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct preference_interface { pub get_preference_for_module_key : :: std :: option :: Option < unsafe extern \"C\" fn (prefs : * mut conf_object_t , module : * const :: std :: os :: raw :: c_char , key : * const :: std :: os :: raw :: c_char) -> attr_value_t > , pub set_preference_for_module_key : :: std :: option :: Option < unsafe extern \"C\" fn (prefs : * mut conf_object_t , value : attr_value_t , module : * const :: std :: os :: raw :: c_char , key : * const :: std :: os :: raw :: c_char) > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of preference_interface\"] [:: std :: mem :: size_of :: < preference_interface > () - 16usize] ; [\"Alignment of preference_interface\"] [:: std :: mem :: align_of :: < preference_interface > () - 8usize] ; [\"Offset of field: preference_interface::get_preference_for_module_key\"] [:: std :: mem :: offset_of ! (preference_interface , get_preference_for_module_key) - 0usize] ; [\"Offset of field: preference_interface::set_preference_for_module_key\"] [:: std :: mem :: offset_of ! (preference_interface , set_preference_for_module_key) - 8usize] ; } ; pub type address_profiler_interface_t = address_profiler_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct address_profiler_interface { pub iter : :: std :: option :: Option < unsafe extern \"C\" fn (prof_obj : * mut conf_object_t , view : :: std :: os :: raw :: c_uint , start : generic_address_t , stop : generic_address_t) -> * mut addr_prof_iter_t > , pub sum : :: std :: option :: Option < unsafe extern \"C\" fn (prof_obj : * mut conf_object_t , view : :: std :: os :: raw :: c_uint , start : generic_address_t , end : generic_address_t) -> uint64 > , pub max : :: std :: option :: Option < unsafe extern \"C\" fn (prof_obj : * mut conf_object_t , view : :: std :: os :: raw :: c_uint , start : generic_address_t , end : generic_address_t) -> uint64 > , pub granularity_log2 : :: std :: option :: Option < unsafe extern \"C\" fn (prof_obj : * mut conf_object_t , view : :: std :: os :: raw :: c_uint) -> :: std :: os :: raw :: c_uint > , pub address_bits : :: std :: option :: Option < unsafe extern \"C\" fn (prof_obj : * mut conf_object_t , view : :: std :: os :: raw :: c_uint) -> :: std :: os :: raw :: c_int > , pub physical_addresses : :: std :: option :: Option < unsafe extern \"C\" fn (prof_obj : * mut conf_object_t , view : :: std :: os :: raw :: c_uint) -> :: std :: os :: raw :: c_int > , pub description : :: std :: option :: Option < unsafe extern \"C\" fn (prof_obj : * mut conf_object_t , view : :: std :: os :: raw :: c_uint) -> * const :: std :: os :: raw :: c_char > , pub num_views : :: std :: option :: Option < unsafe extern \"C\" fn (prof_obj : * mut conf_object_t) -> :: std :: os :: raw :: c_uint > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of address_profiler_interface\"] [:: std :: mem :: size_of :: < address_profiler_interface > () - 64usize] ; [\"Alignment of address_profiler_interface\"] [:: std :: mem :: align_of :: < address_profiler_interface > () - 8usize] ; [\"Offset of field: address_profiler_interface::iter\"] [:: std :: mem :: offset_of ! (address_profiler_interface , iter) - 0usize] ; [\"Offset of field: address_profiler_interface::sum\"] [:: std :: mem :: offset_of ! (address_profiler_interface , sum) - 8usize] ; [\"Offset of field: address_profiler_interface::max\"] [:: std :: mem :: offset_of ! (address_profiler_interface , max) - 16usize] ; [\"Offset of field: address_profiler_interface::granularity_log2\"] [:: std :: mem :: offset_of ! (address_profiler_interface , granularity_log2) - 24usize] ; [\"Offset of field: address_profiler_interface::address_bits\"] [:: std :: mem :: offset_of ! (address_profiler_interface , address_bits) - 32usize] ; [\"Offset of field: address_profiler_interface::physical_addresses\"] [:: std :: mem :: offset_of ! (address_profiler_interface , physical_addresses) - 40usize] ; [\"Offset of field: address_profiler_interface::description\"] [:: std :: mem :: offset_of ! (address_profiler_interface , description) - 48usize] ; [\"Offset of field: address_profiler_interface::num_views\"] [:: std :: mem :: offset_of ! (address_profiler_interface , num_views) - 56usize] ; } ; pub type branch_arc_interface_t = branch_arc_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct branch_arc_interface { pub iter : :: std :: option :: Option < unsafe extern \"C\" fn (prof_obj : * mut conf_object_t , start : generic_address_t , stop : generic_address_t , dir : branch_recorder_direction_t) -> * mut branch_arc_iter_t > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of branch_arc_interface\"] [:: std :: mem :: size_of :: < branch_arc_interface > () - 8usize] ; [\"Alignment of branch_arc_interface\"] [:: std :: mem :: align_of :: < branch_arc_interface > () - 8usize] ; [\"Offset of field: branch_arc_interface::iter\"] [:: std :: mem :: offset_of ! (branch_arc_interface , iter) - 0usize] ; } ; # [repr (u32)] # [doc = \" <add-type id=\\\"probe_key_t def\\\"></add-type>\"] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub enum probe_key_t { # [doc = \" Identifier of the probe\"] Probe_Key_Name = 0 , # [doc = \" string, any of: {\\n\\\"int\\\", \\\"float, \\\"fraction\\\",\\n\\\"histogram\\\", \\\"int128\\\", \\\"string\\\"\\n}\"] Probe_Key_Type = 1 , # [doc = \" list of strings\"] Probe_Key_Categories = 2 , # [doc = \" bool\"] Probe_Key_Cause_Slowdown = 3 , # [doc = \" object: owner object\"] Probe_Key_Owner_Object = 4 , # [doc = \" string: short narrow name\"] Probe_Key_Display_Name = 5 , # [doc = \" string\"] Probe_Key_Description = 6 , Probe_Key_Float_Percent = 7 , Probe_Key_Float_Decimals = 8 , Probe_Key_Metric_Prefix = 9 , Probe_Key_Unit = 10 , Probe_Key_Binary_Prefix = 11 , Probe_Key_Time_Format = 12 , Probe_Key_Width = 13 , Probe_Key_Value_Notifier = 14 , # [doc = \" [list of properties] OBSOLETE\"] Probe_Key_Global_Sum = 15 , # [doc = \" [list of properties] OBSOLETE\"] Probe_Key_Cell_Sum = 16 , # [doc = \" Defines new probes which aggregate\\nover this probe:\\n[list of [list properties]]\\nInvalid for Type: \\\"string\\\"\"] Probe_Key_Aggregates = 17 , # [doc = \" Aggregate over all probes in the\\ncells or all probes in the system.\\nString and of [\\\"global\\\", \\\"cell\\\"]\"] Probe_Key_Aggregate_Scope = 18 , # [doc = \" How the aggregation should be\\ndone:\\n\\\"sum\\\",\\n\\\"weighted-arith-mean\\\",\\n- only fractions\"] Probe_Key_Aggregate_Function = 19 , # [doc = \" string: how the probe is\\ncalculated\"] Probe_Key_Definition = 20 , } pub type probe_interface_t = probe_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct probe_interface { pub value : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t) -> attr_value_t > , pub properties : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t) -> attr_value_t > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of probe_interface\"] [:: std :: mem :: size_of :: < probe_interface > () - 16usize] ; [\"Alignment of probe_interface\"] [:: std :: mem :: align_of :: < probe_interface > () - 8usize] ; [\"Offset of field: probe_interface::value\"] [:: std :: mem :: offset_of ! (probe_interface , value) - 0usize] ; [\"Offset of field: probe_interface::properties\"] [:: std :: mem :: offset_of ! (probe_interface , properties) - 8usize] ; } ; pub type probe_index_interface_t = probe_index_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct probe_index_interface { pub num_indices : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t) -> :: std :: os :: raw :: c_int > , pub value : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , idx : :: std :: os :: raw :: c_int) -> attr_value_t > , pub properties : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , idx : :: std :: os :: raw :: c_int) -> attr_value_t > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of probe_index_interface\"] [:: std :: mem :: size_of :: < probe_index_interface > () - 24usize] ; [\"Alignment of probe_index_interface\"] [:: std :: mem :: align_of :: < probe_index_interface > () - 8usize] ; [\"Offset of field: probe_index_interface::num_indices\"] [:: std :: mem :: offset_of ! (probe_index_interface , num_indices) - 0usize] ; [\"Offset of field: probe_index_interface::value\"] [:: std :: mem :: offset_of ! (probe_index_interface , value) - 8usize] ; [\"Offset of field: probe_index_interface::properties\"] [:: std :: mem :: offset_of ! (probe_index_interface , properties) - 16usize] ; } ; pub type probe_array_interface_t = probe_array_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct probe_array_interface { pub num_indices : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t) -> :: std :: os :: raw :: c_int > , pub value : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , idx : :: std :: os :: raw :: c_int) -> attr_value_t > , pub all_values : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t) -> attr_value_t > , pub properties : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , idx : :: std :: os :: raw :: c_int) -> attr_value_t > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of probe_array_interface\"] [:: std :: mem :: size_of :: < probe_array_interface > () - 32usize] ; [\"Alignment of probe_array_interface\"] [:: std :: mem :: align_of :: < probe_array_interface > () - 8usize] ; [\"Offset of field: probe_array_interface::num_indices\"] [:: std :: mem :: offset_of ! (probe_array_interface , num_indices) - 0usize] ; [\"Offset of field: probe_array_interface::value\"] [:: std :: mem :: offset_of ! (probe_array_interface , value) - 8usize] ; [\"Offset of field: probe_array_interface::all_values\"] [:: std :: mem :: offset_of ! (probe_array_interface , all_values) - 16usize] ; [\"Offset of field: probe_array_interface::properties\"] [:: std :: mem :: offset_of ! (probe_array_interface , properties) - 24usize] ; } ; pub type probe_subscribe_interface_t = probe_subscribe_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct probe_subscribe_interface { pub subscribe : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t) > , pub unsubscribe : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t) > , pub num_subscribers : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t) -> :: std :: os :: raw :: c_int > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of probe_subscribe_interface\"] [:: std :: mem :: size_of :: < probe_subscribe_interface > () - 24usize] ; [\"Alignment of probe_subscribe_interface\"] [:: std :: mem :: align_of :: < probe_subscribe_interface > () - 8usize] ; [\"Offset of field: probe_subscribe_interface::subscribe\"] [:: std :: mem :: offset_of ! (probe_subscribe_interface , subscribe) - 0usize] ; [\"Offset of field: probe_subscribe_interface::unsubscribe\"] [:: std :: mem :: offset_of ! (probe_subscribe_interface , unsubscribe) - 8usize] ; [\"Offset of field: probe_subscribe_interface::num_subscribers\"] [:: std :: mem :: offset_of ! (probe_subscribe_interface , num_subscribers) - 16usize] ; } ; pub type probe_sampler_cache_interface_t = probe_sampler_cache_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct probe_sampler_cache_interface { pub enable : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t) > , pub disable : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t) > , pub get_generation : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t) -> uint64 > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of probe_sampler_cache_interface\"] [:: std :: mem :: size_of :: < probe_sampler_cache_interface > () - 24usize] ; [\"Alignment of probe_sampler_cache_interface\"] [:: std :: mem :: align_of :: < probe_sampler_cache_interface > () - 8usize] ; [\"Offset of field: probe_sampler_cache_interface::enable\"] [:: std :: mem :: offset_of ! (probe_sampler_cache_interface , enable) - 0usize] ; [\"Offset of field: probe_sampler_cache_interface::disable\"] [:: std :: mem :: offset_of ! (probe_sampler_cache_interface , disable) - 8usize] ; [\"Offset of field: probe_sampler_cache_interface::get_generation\"] [:: std :: mem :: offset_of ! (probe_sampler_cache_interface , get_generation) - 16usize] ; } ; pub type breakpoint_registration_interface_t = breakpoint_registration_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct breakpoint_registration_interface { pub register_breakpoint : :: std :: option :: Option < unsafe extern \"C\" fn (mgr : * mut conf_object_t , delete_breakpoint : :: std :: option :: Option < unsafe extern \"C\" fn (data : cbdata_call_t , id : uint64) > , delete_data : cbdata_register_t , get_properties : :: std :: option :: Option < unsafe extern \"C\" fn (data : cbdata_call_t , id : uint64) -> attr_value_t > , get_properties_data : cbdata_register_t , set_enabled : :: std :: option :: Option < unsafe extern \"C\" fn (data : cbdata_call_t , id : uint64 , enabled : bool) > , set_enabled_data : cbdata_register_t , set_temporary : :: std :: option :: Option < unsafe extern \"C\" fn (data : cbdata_call_t , id : uint64 , temporary : bool) > , set_temporary_data : cbdata_register_t , set_ignore_count : :: std :: option :: Option < unsafe extern \"C\" fn (data : cbdata_call_t , id : uint64 , ignore_count : uint64) > , set_ignore_count_data : cbdata_register_t) -> uint64 > , pub deleted : :: std :: option :: Option < unsafe extern \"C\" fn (mgr : * mut conf_object_t , id : uint64) > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of breakpoint_registration_interface\"] [:: std :: mem :: size_of :: < breakpoint_registration_interface > () - 16usize] ; [\"Alignment of breakpoint_registration_interface\"] [:: std :: mem :: align_of :: < breakpoint_registration_interface > () - 8usize] ; [\"Offset of field: breakpoint_registration_interface::register_breakpoint\"] [:: std :: mem :: offset_of ! (breakpoint_registration_interface , register_breakpoint) - 0usize] ; [\"Offset of field: breakpoint_registration_interface::deleted\"] [:: std :: mem :: offset_of ! (breakpoint_registration_interface , deleted) - 8usize] ; } ; pub type breakpoint_type_interface_t = breakpoint_type_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct breakpoint_type_interface { # [doc = \" Returns false if type is already registered.\"] pub register_type : :: std :: option :: Option < unsafe extern \"C\" fn (mgr : * mut conf_object_t , name : * const :: std :: os :: raw :: c_char , provider : * mut conf_object_t , args : attr_value_t , cls : * const :: std :: os :: raw :: c_char , iface : * const :: std :: os :: raw :: c_char , docs : attr_value_t , object_required : bool , temporary_default : bool , recursive : bool) -> bool > , # [doc = \" Notify manager that breakpoint has triggered, given ID returned by\\nadd_bp. Returns true if simulation was stopped or otherwise the\\nbreakpoint action happened. Optionally provide trigger object and\\nmessage, used if the simulation is stopped.\"] pub trigger : :: std :: option :: Option < unsafe extern \"C\" fn (mgr : * mut conf_object_t , provider : * mut conf_object_t , bp_id : uint64 , trigger : * mut conf_object_t , msg : * const :: std :: os :: raw :: c_char) -> bool > , # [doc = \" Return provider ID from breakpoint manager ID.\"] pub get_break_id : :: std :: option :: Option < unsafe extern \"C\" fn (mgr : * mut conf_object_t , bm_id : uint64) -> uint64 > , pub get_manager_id : :: std :: option :: Option < unsafe extern \"C\" fn (mgr : * mut conf_object_t , provider : * mut conf_object_t , bp_id : uint64) -> uint64 > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of breakpoint_type_interface\"] [:: std :: mem :: size_of :: < breakpoint_type_interface > () - 32usize] ; [\"Alignment of breakpoint_type_interface\"] [:: std :: mem :: align_of :: < breakpoint_type_interface > () - 8usize] ; [\"Offset of field: breakpoint_type_interface::register_type\"] [:: std :: mem :: offset_of ! (breakpoint_type_interface , register_type) - 0usize] ; [\"Offset of field: breakpoint_type_interface::trigger\"] [:: std :: mem :: offset_of ! (breakpoint_type_interface , trigger) - 8usize] ; [\"Offset of field: breakpoint_type_interface::get_break_id\"] [:: std :: mem :: offset_of ! (breakpoint_type_interface , get_break_id) - 16usize] ; [\"Offset of field: breakpoint_type_interface::get_manager_id\"] [:: std :: mem :: offset_of ! (breakpoint_type_interface , get_manager_id) - 24usize] ; } ; # [repr (u32)] # [doc = \" Sent as flags to breakpoint_type_provider.add_bp, for providers that need\\nto know from which command the breakpoint comes.\"] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub enum sim_bp_type_t { Breakpoint_Type_Default = 0 , Breakpoint_Type_Break = 1 , Breakpoint_Type_Run_Until = 2 , Breakpoint_Type_Wait_For = 3 , Breakpoint_Type_Trace = 4 , } pub type breakpoint_type_provider_interface_t = breakpoint_type_provider_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct breakpoint_type_provider_interface { # [doc = \" Register breakpoint in manager.\\nReturn breakpoint manager ID, or 0 on error.\"] pub register_bp : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , bp_id : uint64) -> uint64 > , # [doc = \" Add breakpoint and return provider specific ID, or 0 on error.\"] pub add_bp : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , flags : :: std :: os :: raw :: c_int , data : attr_value_t) -> uint64 > , # [doc = \" Remove breakpoint, given ID returned by add_bp.\"] pub remove_bp : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , bp_id : uint64) > , # [doc = \" Return trace message, given ID returned by add_bp.\"] pub trace_msg : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , bp_id : uint64) -> * const :: std :: os :: raw :: c_char > , # [doc = \" Message returned by break command, given ID returned by add_bp.\"] pub break_msg : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , bp_id : uint64) -> * const :: std :: os :: raw :: c_char > , # [doc = \" Script branch wait message, given ID returned by add_bp.\"] pub wait_msg : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , bp_id : uint64) -> * const :: std :: os :: raw :: c_char > , # [doc = \" Optional return value from wait-for and run-until commands,\\ngiven ID returned by add_bp.\"] pub break_data : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , bp_id : uint64) -> attr_value_t > , # [doc = \" Return possible values for command argument.\\nOptional unless expanders used.\"] pub values : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , arg : * const :: std :: os :: raw :: c_char , prev_args : attr_value_t) -> attr_value_t > , # [doc = \" Optional trace output function. The default is to log on the\\nprovider with level 1 and group 0.\"] pub trace : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , msg : * const :: std :: os :: raw :: c_char) > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of breakpoint_type_provider_interface\"] [:: std :: mem :: size_of :: < breakpoint_type_provider_interface > () - 72usize] ; [\"Alignment of breakpoint_type_provider_interface\"] [:: std :: mem :: align_of :: < breakpoint_type_provider_interface > () - 8usize] ; [\"Offset of field: breakpoint_type_provider_interface::register_bp\"] [:: std :: mem :: offset_of ! (breakpoint_type_provider_interface , register_bp) - 0usize] ; [\"Offset of field: breakpoint_type_provider_interface::add_bp\"] [:: std :: mem :: offset_of ! (breakpoint_type_provider_interface , add_bp) - 8usize] ; [\"Offset of field: breakpoint_type_provider_interface::remove_bp\"] [:: std :: mem :: offset_of ! (breakpoint_type_provider_interface , remove_bp) - 16usize] ; [\"Offset of field: breakpoint_type_provider_interface::trace_msg\"] [:: std :: mem :: offset_of ! (breakpoint_type_provider_interface , trace_msg) - 24usize] ; [\"Offset of field: breakpoint_type_provider_interface::break_msg\"] [:: std :: mem :: offset_of ! (breakpoint_type_provider_interface , break_msg) - 32usize] ; [\"Offset of field: breakpoint_type_provider_interface::wait_msg\"] [:: std :: mem :: offset_of ! (breakpoint_type_provider_interface , wait_msg) - 40usize] ; [\"Offset of field: breakpoint_type_provider_interface::break_data\"] [:: std :: mem :: offset_of ! (breakpoint_type_provider_interface , break_data) - 48usize] ; [\"Offset of field: breakpoint_type_provider_interface::values\"] [:: std :: mem :: offset_of ! (breakpoint_type_provider_interface , values) - 56usize] ; [\"Offset of field: breakpoint_type_provider_interface::trace\"] [:: std :: mem :: offset_of ! (breakpoint_type_provider_interface , trace) - 64usize] ; } ; pub type breakpoint_manager_interface_t = breakpoint_manager_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct breakpoint_manager_interface { # [doc = \" Return a list of the breakpoint ids of all breakpoints.\"] pub list_breakpoints : :: std :: option :: Option < unsafe extern \"C\" fn (mgr : * mut conf_object_t) -> attr_value_t > , pub delete_breakpoint : :: std :: option :: Option < unsafe extern \"C\" fn (mgr : * mut conf_object_t , id : uint64) > , # [doc = \" Return a dictionary with the properties for a specific breakpoint\"] pub get_properties : :: std :: option :: Option < unsafe extern \"C\" fn (mgr : * mut conf_object_t , id : uint64) -> attr_value_t > , pub set_enabled : :: std :: option :: Option < unsafe extern \"C\" fn (mgr : * mut conf_object_t , id : uint64 , enabled : bool) -> bool > , pub set_temporary : :: std :: option :: Option < unsafe extern \"C\" fn (mgr : * mut conf_object_t , id : uint64 , temporary : bool) -> bool > , pub set_ignore_count : :: std :: option :: Option < unsafe extern \"C\" fn (mgr : * mut conf_object_t , id : uint64 , ignore_count : uint64) -> bool > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of breakpoint_manager_interface\"] [:: std :: mem :: size_of :: < breakpoint_manager_interface > () - 48usize] ; [\"Alignment of breakpoint_manager_interface\"] [:: std :: mem :: align_of :: < breakpoint_manager_interface > () - 8usize] ; [\"Offset of field: breakpoint_manager_interface::list_breakpoints\"] [:: std :: mem :: offset_of ! (breakpoint_manager_interface , list_breakpoints) - 0usize] ; [\"Offset of field: breakpoint_manager_interface::delete_breakpoint\"] [:: std :: mem :: offset_of ! (breakpoint_manager_interface , delete_breakpoint) - 8usize] ; [\"Offset of field: breakpoint_manager_interface::get_properties\"] [:: std :: mem :: offset_of ! (breakpoint_manager_interface , get_properties) - 16usize] ; [\"Offset of field: breakpoint_manager_interface::set_enabled\"] [:: std :: mem :: offset_of ! (breakpoint_manager_interface , set_enabled) - 24usize] ; [\"Offset of field: breakpoint_manager_interface::set_temporary\"] [:: std :: mem :: offset_of ! (breakpoint_manager_interface , set_temporary) - 32usize] ; [\"Offset of field: breakpoint_manager_interface::set_ignore_count\"] [:: std :: mem :: offset_of ! (breakpoint_manager_interface , set_ignore_count) - 40usize] ; } ; pub type checkpoint_interface_t = checkpoint_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct checkpoint_interface { pub save : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , path : * const :: std :: os :: raw :: c_char) > , pub finish : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , success : :: std :: os :: raw :: c_int) > , pub has_persistent_data : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t) -> :: std :: os :: raw :: c_int > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of checkpoint_interface\"] [:: std :: mem :: size_of :: < checkpoint_interface > () - 24usize] ; [\"Alignment of checkpoint_interface\"] [:: std :: mem :: align_of :: < checkpoint_interface > () - 8usize] ; [\"Offset of field: checkpoint_interface::save\"] [:: std :: mem :: offset_of ! (checkpoint_interface , save) - 0usize] ; [\"Offset of field: checkpoint_interface::finish\"] [:: std :: mem :: offset_of ! (checkpoint_interface , finish) - 8usize] ; [\"Offset of field: checkpoint_interface::has_persistent_data\"] [:: std :: mem :: offset_of ! (checkpoint_interface , has_persistent_data) - 16usize] ; } ; # [repr (u32)] # [doc = \" <add-type id=\\\"table_key_t def\\\"></add-type>\"] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub enum table_key_t { # [doc = \" Table property keys\"] Table_Key_Name = 1 , # [doc = \" Table property keys\"] Table_Key_Description = 2 , # [doc = \" Table property keys\"] Table_Key_Default_Sort_Column = 3 , # [doc = \" Table property keys\"] Table_Key_Columns = 4 , # [doc = \" Table property keys\"] Table_Key_Extra_Headers = 5 , # [doc = \" Table property keys\"] Table_Key_Stream_Header_Repeat = 6 , } # [repr (u32)] # [doc = \" <add-type id=\\\"column_key_t def\\\"></add-type>\"] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub enum column_key_t { # [doc = \" Other number series than table-keys\"] Column_Key_Name = 1000 , Column_Key_Description = 1001 , Column_Key_Alignment = 1002 , Column_Key_Int_Radix = 1003 , Column_Key_Float_Percent = 1004 , Column_Key_Float_Decimals = 1005 , Column_Key_Sort_Descending = 1006 , Column_Key_Hide_Homogeneous = 1007 , Column_Key_Generate_Percent_Column = 1008 , Column_Key_Generate_Acc_Percent_Column = 1009 , Column_Key_Footer_Sum = 1010 , Column_Key_Footer_Mean = 1011 , Column_Key_Int_Grouping = 1012 , Column_Key_Int_Pad_Width = 1013 , Column_Key_Metric_Prefix = 1014 , Column_Key_Binary_Prefix = 1015 , Column_Key_Time_Format = 1016 , Column_Key_Unique_Id = 1017 , Column_Key_Width = 1018 , Column_Key_Word_Delimiters = 1019 , } # [repr (u32)] # [doc = \" <add-type id=\\\"extra_header_key_t def\\\"></add-type>\"] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub enum extra_header_key_t { # [doc = \" Header property keys\"] Extra_Header_Key_Row = 2000 , # [doc = \" Header property keys\"] Extra_Header_Key_Name = 2001 , # [doc = \" Header property keys\"] Extra_Header_Key_Description = 2002 , # [doc = \" Header property keys\"] Extra_Header_Key_First_Column = 2003 , # [doc = \" Header property keys\"] Extra_Header_Key_Last_Column = 2004 , } pub type table_interface_t = table_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct table_interface { # [doc = \" Returns all rows and columns in the following format:\\n[[[i|f|s|o|n*]*]] where the outer list is the row\\nand the inner list is the data for each column.\"] pub data : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t) -> attr_value_t > , # [doc = \" Defines the table structure and meta-data for the table\\nusing a list of key/value pairs.\\n[[[ia]*]*] where the integer is the key taken from the\\ntable_properties_t. The value is key-specific.\"] pub properties : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t) -> attr_value_t > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of table_interface\"] [:: std :: mem :: size_of :: < table_interface > () - 16usize] ; [\"Alignment of table_interface\"] [:: std :: mem :: align_of :: < table_interface > () - 8usize] ; [\"Offset of field: table_interface::data\"] [:: std :: mem :: offset_of ! (table_interface , data) - 0usize] ; [\"Offset of field: table_interface::properties\"] [:: std :: mem :: offset_of ! (table_interface , properties) - 8usize] ; } ; pub type instrumentation_filter_slave_interface_t = instrumentation_filter_slave_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct instrumentation_filter_slave_interface { pub disable : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , source_id : :: std :: os :: raw :: c_uint) > , pub enable : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , source_id : :: std :: os :: raw :: c_uint) > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of instrumentation_filter_slave_interface\"] [:: std :: mem :: size_of :: < instrumentation_filter_slave_interface > () - 16usize] ; [\"Alignment of instrumentation_filter_slave_interface\"] [:: std :: mem :: align_of :: < instrumentation_filter_slave_interface > () - 8usize] ; [\"Offset of field: instrumentation_filter_slave_interface::disable\"] [:: std :: mem :: offset_of ! (instrumentation_filter_slave_interface , disable) - 0usize] ; [\"Offset of field: instrumentation_filter_slave_interface::enable\"] [:: std :: mem :: offset_of ! (instrumentation_filter_slave_interface , enable) - 8usize] ; } ; pub type instrumentation_filter_status_interface_t = instrumentation_filter_status_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct instrumentation_filter_status_interface { pub get_disabled_sources : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t) -> attr_value_t > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of instrumentation_filter_status_interface\"] [:: std :: mem :: size_of :: < instrumentation_filter_status_interface > () - 8usize] ; [\"Alignment of instrumentation_filter_status_interface\"] [:: std :: mem :: align_of :: < instrumentation_filter_status_interface > () - 8usize] ; [\"Offset of field: instrumentation_filter_status_interface::get_disabled_sources\"] [:: std :: mem :: offset_of ! (instrumentation_filter_status_interface , get_disabled_sources) - 0usize] ; } ; pub type instrumentation_filter_master_interface_t = instrumentation_filter_master_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct instrumentation_filter_master_interface { pub set_source_id : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , source_id : :: std :: os :: raw :: c_uint) > , pub add_slave : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , slave : * mut conf_object_t , provider_obj : * mut conf_object_t) -> bool > , pub remove_slave : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , slave : * mut conf_object_t , provider_obj : * mut conf_object_t) > , pub short_filter_config : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t) -> * mut :: std :: os :: raw :: c_char > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of instrumentation_filter_master_interface\"] [:: std :: mem :: size_of :: < instrumentation_filter_master_interface > () - 32usize] ; [\"Alignment of instrumentation_filter_master_interface\"] [:: std :: mem :: align_of :: < instrumentation_filter_master_interface > () - 8usize] ; [\"Offset of field: instrumentation_filter_master_interface::set_source_id\"] [:: std :: mem :: offset_of ! (instrumentation_filter_master_interface , set_source_id) - 0usize] ; [\"Offset of field: instrumentation_filter_master_interface::add_slave\"] [:: std :: mem :: offset_of ! (instrumentation_filter_master_interface , add_slave) - 8usize] ; [\"Offset of field: instrumentation_filter_master_interface::remove_slave\"] [:: std :: mem :: offset_of ! (instrumentation_filter_master_interface , remove_slave) - 16usize] ; [\"Offset of field: instrumentation_filter_master_interface::short_filter_config\"] [:: std :: mem :: offset_of ! (instrumentation_filter_master_interface , short_filter_config) - 24usize] ; } ; pub type serial_console_frontend_interface_t = serial_console_frontend_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct serial_console_frontend_interface { pub write : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , value : uint8) > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of serial_console_frontend_interface\"] [:: std :: mem :: size_of :: < serial_console_frontend_interface > () - 8usize] ; [\"Alignment of serial_console_frontend_interface\"] [:: std :: mem :: align_of :: < serial_console_frontend_interface > () - 8usize] ; [\"Offset of field: serial_console_frontend_interface::write\"] [:: std :: mem :: offset_of ! (serial_console_frontend_interface , write) - 0usize] ; } ; pub type con_input_interface_t = con_input_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct con_input_interface { pub input_str : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , str_ : * const :: std :: os :: raw :: c_char) > , pub input_data : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , data : bytes_t) > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of con_input_interface\"] [:: std :: mem :: size_of :: < con_input_interface > () - 16usize] ; [\"Alignment of con_input_interface\"] [:: std :: mem :: align_of :: < con_input_interface > () - 8usize] ; [\"Offset of field: con_input_interface::input_str\"] [:: std :: mem :: offset_of ! (con_input_interface , input_str) - 0usize] ; [\"Offset of field: con_input_interface::input_data\"] [:: std :: mem :: offset_of ! (con_input_interface , input_data) - 8usize] ; } ; pub type con_input_code_interface_t = con_input_code_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct con_input_code_interface { pub input : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , code : sim_key_t , down : bool) > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of con_input_code_interface\"] [:: std :: mem :: size_of :: < con_input_code_interface > () - 8usize] ; [\"Alignment of con_input_code_interface\"] [:: std :: mem :: align_of :: < con_input_code_interface > () - 8usize] ; [\"Offset of field: con_input_code_interface::input\"] [:: std :: mem :: offset_of ! (con_input_code_interface , input) - 0usize] ; } ; # [doc = \" <add id=\\\"break_string_cb_t DOC\\\">\\n<ndx>break_string_cb_t</ndx>\\n<name index=\\\"true\\\">break_string_cb_t</name>\\n<doc>\\n<doc-item name=\\\"NAME\\\">break_string_cb_t</doc-item>\\n\\n<doc-item name=\\\"DESCRIPTION\\\"> Callback function used by the string\\nbreakpoint system, called when the associated string breakpoint has\\nmatched. The <arg>obj</arg> parameter is the console where the breakpoint\\nmatched, <arg>str</arg> is the break string that matched,\\n<arg>break_id</arg> is the associated breakpoint id, returned by the\\n<fun>add</fun> or <fun>add_single</fun> method in the\\n<iface>break_strings</iface> interface, and <arg>arg</arg> is the callback\\ndata passed to that method. The return value is ignored.\\n</doc-item>\\n</doc></add>\"] pub type break_string_cb_t = :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , str_ : * const :: std :: os :: raw :: c_char , break_id : int64 , arg : * mut lang_void) -> :: std :: os :: raw :: c_int > ; pub type break_strings_interface_t = break_strings_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct break_strings_interface { pub add : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , str_ : * const :: std :: os :: raw :: c_char , cb : break_string_cb_t , arg : * mut lang_void) -> int64 > , pub add_single : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , str_ : * const :: std :: os :: raw :: c_char , cb : break_string_cb_t , arg : * mut lang_void) -> int64 > , pub remove : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , bp_id : int64) > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of break_strings_interface\"] [:: std :: mem :: size_of :: < break_strings_interface > () - 24usize] ; [\"Alignment of break_strings_interface\"] [:: std :: mem :: align_of :: < break_strings_interface > () - 8usize] ; [\"Offset of field: break_strings_interface::add\"] [:: std :: mem :: offset_of ! (break_strings_interface , add) - 0usize] ; [\"Offset of field: break_strings_interface::add_single\"] [:: std :: mem :: offset_of ! (break_strings_interface , add_single) - 8usize] ; [\"Offset of field: break_strings_interface::remove\"] [:: std :: mem :: offset_of ! (break_strings_interface , remove) - 16usize] ; } ; pub type break_strings_v2_interface_t = break_strings_v2_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct break_strings_v2_interface { pub add : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , str_ : * const :: std :: os :: raw :: c_char , cb : break_string_cb_t , arg : * mut lang_void) -> int64 > , pub add_single : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , str_ : * const :: std :: os :: raw :: c_char , cb : break_string_cb_t , arg : * mut lang_void) -> int64 > , pub add_regexp : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , str_ : * const :: std :: os :: raw :: c_char , cb : break_string_cb_t , arg : * mut lang_void) -> int64 > , pub remove : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , bp_id : int64) > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of break_strings_v2_interface\"] [:: std :: mem :: size_of :: < break_strings_v2_interface > () - 32usize] ; [\"Alignment of break_strings_v2_interface\"] [:: std :: mem :: align_of :: < break_strings_v2_interface > () - 8usize] ; [\"Offset of field: break_strings_v2_interface::add\"] [:: std :: mem :: offset_of ! (break_strings_v2_interface , add) - 0usize] ; [\"Offset of field: break_strings_v2_interface::add_single\"] [:: std :: mem :: offset_of ! (break_strings_v2_interface , add_single) - 8usize] ; [\"Offset of field: break_strings_v2_interface::add_regexp\"] [:: std :: mem :: offset_of ! (break_strings_v2_interface , add_regexp) - 16usize] ; [\"Offset of field: break_strings_v2_interface::remove\"] [:: std :: mem :: offset_of ! (break_strings_v2_interface , remove) - 24usize] ; } ; # [doc = \" <add id=\\\"gfx_break_cb_t DOC\\\">\\n<ndx>gfx_break_cb_t</ndx>\\n<name index=\\\"true\\\">gfx_break_cb_t</name>\\n<doc>\\n<doc-item name=\\\"NAME\\\">gfx_break_cb_t</doc-item>\\n\\n<doc-item name=\\\"DESCRIPTION\\\"> Callback function used by the graphics\\nbreakpoint system, called when the associated graphical breakpoint has\\nmatched. The <arg>obj</arg> parameter is the graphics console where the\\nbreakpoint matched, <arg>break_id</arg> is the associated breakpoint id,\\nreturned by the <fun>add</fun> method in the <iface>gfx_break</iface>\\ninterface, and <arg>arg</arg> is the callback data passed to that method.\\n</doc-item>\\n</doc></add>\"] pub type gfx_break_cb_t = :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , break_id : int64 , arg : * mut lang_void) -> :: std :: os :: raw :: c_int > ; # [doc = \" <add id=\\\"gbp_header_t DOC\\\">\\n<ndx>gbp_header_t</ndx>\\n<name index=\\\"true\\\">gbp_header_t</name>\\n<doc>\\n<doc-item name=\\\"NAME\\\">gbp_header_t</doc-item>\\n\\n<doc-item name=\\\"DESCRIPTION\\\"> Header for graphical breakpoint files, also\\nreturned by the <fun>info</fun> method of the <iface>gfx_break</iface>\\ninterface.\\n\\nThe fields <var>magic</var> and <var>format</var> are always\\n<tt>GBP_MAGIC</tt> and <tt>GBP_FMT_V3_32</tt>, respectively.\\n\\nThe field <var>bytes</var> is the size of the image data in the file, not\\nincluding the header.\\n\\nThe other fields specify the breakpoint image patch location on the screen.\\n</doc-item>\\n</doc></add>\"] # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct gbp_header_t { pub magic : uint32 , pub format : uint32 , pub bytes : uint64 , pub minx : uint32 , pub miny : uint32 , pub maxx : uint32 , pub maxy : uint32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of gbp_header_t\"] [:: std :: mem :: size_of :: < gbp_header_t > () - 32usize] ; [\"Alignment of gbp_header_t\"] [:: std :: mem :: align_of :: < gbp_header_t > () - 8usize] ; [\"Offset of field: gbp_header_t::magic\"] [:: std :: mem :: offset_of ! (gbp_header_t , magic) - 0usize] ; [\"Offset of field: gbp_header_t::format\"] [:: std :: mem :: offset_of ! (gbp_header_t , format) - 4usize] ; [\"Offset of field: gbp_header_t::bytes\"] [:: std :: mem :: offset_of ! (gbp_header_t , bytes) - 8usize] ; [\"Offset of field: gbp_header_t::minx\"] [:: std :: mem :: offset_of ! (gbp_header_t , minx) - 16usize] ; [\"Offset of field: gbp_header_t::miny\"] [:: std :: mem :: offset_of ! (gbp_header_t , miny) - 20usize] ; [\"Offset of field: gbp_header_t::maxx\"] [:: std :: mem :: offset_of ! (gbp_header_t , maxx) - 24usize] ; [\"Offset of field: gbp_header_t::maxy\"] [:: std :: mem :: offset_of ! (gbp_header_t , maxy) - 28usize] ; } ; pub type gfx_break_interface_t = gfx_break_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct gfx_break_interface { pub store : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , file : * const :: std :: os :: raw :: c_char , minx : :: std :: os :: raw :: c_int , miny : :: std :: os :: raw :: c_int , maxx : :: std :: os :: raw :: c_int , maxy : :: std :: os :: raw :: c_int) -> bool > , pub add : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , file : * const :: std :: os :: raw :: c_char , name : * const :: std :: os :: raw :: c_char , oneshot : bool , interval : f64 , cb : gfx_break_cb_t , arg : * mut lang_void) -> int64 > , pub remove : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , break_id : int64) -> bool > , pub match_ : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , file : * const :: std :: os :: raw :: c_char) -> :: std :: os :: raw :: c_int > , pub info : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , file : * const :: std :: os :: raw :: c_char) -> gbp_header_t > , pub export_png : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , file : * const :: std :: os :: raw :: c_char , png_file : * const :: std :: os :: raw :: c_char) -> bool > , pub add_bytes : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , data : bytes_t , name : * const :: std :: os :: raw :: c_char , oneshot : bool , interval : f64 , cb : gfx_break_cb_t , arg : * mut lang_void) -> int64 > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of gfx_break_interface\"] [:: std :: mem :: size_of :: < gfx_break_interface > () - 56usize] ; [\"Alignment of gfx_break_interface\"] [:: std :: mem :: align_of :: < gfx_break_interface > () - 8usize] ; [\"Offset of field: gfx_break_interface::store\"] [:: std :: mem :: offset_of ! (gfx_break_interface , store) - 0usize] ; [\"Offset of field: gfx_break_interface::add\"] [:: std :: mem :: offset_of ! (gfx_break_interface , add) - 8usize] ; [\"Offset of field: gfx_break_interface::remove\"] [:: std :: mem :: offset_of ! (gfx_break_interface , remove) - 16usize] ; [\"Offset of field: gfx_break_interface::match_\"] [:: std :: mem :: offset_of ! (gfx_break_interface , match_) - 24usize] ; [\"Offset of field: gfx_break_interface::info\"] [:: std :: mem :: offset_of ! (gfx_break_interface , info) - 32usize] ; [\"Offset of field: gfx_break_interface::export_png\"] [:: std :: mem :: offset_of ! (gfx_break_interface , export_png) - 40usize] ; [\"Offset of field: gfx_break_interface::add_bytes\"] [:: std :: mem :: offset_of ! (gfx_break_interface , add_bytes) - 48usize] ; } ; pub type telnet_connection_interface_t = telnet_connection_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct telnet_connection_interface { pub setup : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , port : uint16) -> bool > , pub listening : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t) -> bool > , pub connected : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t) -> bool > , pub remote_port : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t) -> uint16 > , pub remote_ip : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t) -> bytes_t > , pub local_port : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t) -> uint16 > , pub disconnect : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t) > , pub shutdown : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t) > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of telnet_connection_interface\"] [:: std :: mem :: size_of :: < telnet_connection_interface > () - 64usize] ; [\"Alignment of telnet_connection_interface\"] [:: std :: mem :: align_of :: < telnet_connection_interface > () - 8usize] ; [\"Offset of field: telnet_connection_interface::setup\"] [:: std :: mem :: offset_of ! (telnet_connection_interface , setup) - 0usize] ; [\"Offset of field: telnet_connection_interface::listening\"] [:: std :: mem :: offset_of ! (telnet_connection_interface , listening) - 8usize] ; [\"Offset of field: telnet_connection_interface::connected\"] [:: std :: mem :: offset_of ! (telnet_connection_interface , connected) - 16usize] ; [\"Offset of field: telnet_connection_interface::remote_port\"] [:: std :: mem :: offset_of ! (telnet_connection_interface , remote_port) - 24usize] ; [\"Offset of field: telnet_connection_interface::remote_ip\"] [:: std :: mem :: offset_of ! (telnet_connection_interface , remote_ip) - 32usize] ; [\"Offset of field: telnet_connection_interface::local_port\"] [:: std :: mem :: offset_of ! (telnet_connection_interface , local_port) - 40usize] ; [\"Offset of field: telnet_connection_interface::disconnect\"] [:: std :: mem :: offset_of ! (telnet_connection_interface , disconnect) - 48usize] ; [\"Offset of field: telnet_connection_interface::shutdown\"] [:: std :: mem :: offset_of ! (telnet_connection_interface , shutdown) - 56usize] ; } ; pub type telnet_connection_v2_interface_t = telnet_connection_v2_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct telnet_connection_v2_interface { pub listening : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t) -> bool > , pub connected : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t) -> bool > , pub disconnect : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t) > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of telnet_connection_v2_interface\"] [:: std :: mem :: size_of :: < telnet_connection_v2_interface > () - 24usize] ; [\"Alignment of telnet_connection_v2_interface\"] [:: std :: mem :: align_of :: < telnet_connection_v2_interface > () - 8usize] ; [\"Offset of field: telnet_connection_v2_interface::listening\"] [:: std :: mem :: offset_of ! (telnet_connection_v2_interface , listening) - 0usize] ; [\"Offset of field: telnet_connection_v2_interface::connected\"] [:: std :: mem :: offset_of ! (telnet_connection_v2_interface , connected) - 8usize] ; [\"Offset of field: telnet_connection_v2_interface::disconnect\"] [:: std :: mem :: offset_of ! (telnet_connection_v2_interface , disconnect) - 16usize] ; } ; pub type vnc_server_interface_t = vnc_server_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct vnc_server_interface { pub setup : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , port : uint16) -> bool > , pub listening : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t) -> bool > , pub num_clients : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t) -> :: std :: os :: raw :: c_int > , pub local_port : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t) -> uint16 > , pub shutdown : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t) > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of vnc_server_interface\"] [:: std :: mem :: size_of :: < vnc_server_interface > () - 40usize] ; [\"Alignment of vnc_server_interface\"] [:: std :: mem :: align_of :: < vnc_server_interface > () - 8usize] ; [\"Offset of field: vnc_server_interface::setup\"] [:: std :: mem :: offset_of ! (vnc_server_interface , setup) - 0usize] ; [\"Offset of field: vnc_server_interface::listening\"] [:: std :: mem :: offset_of ! (vnc_server_interface , listening) - 8usize] ; [\"Offset of field: vnc_server_interface::num_clients\"] [:: std :: mem :: offset_of ! (vnc_server_interface , num_clients) - 16usize] ; [\"Offset of field: vnc_server_interface::local_port\"] [:: std :: mem :: offset_of ! (vnc_server_interface , local_port) - 24usize] ; [\"Offset of field: vnc_server_interface::shutdown\"] [:: std :: mem :: offset_of ! (vnc_server_interface , shutdown) - 32usize] ; } ; pub type vnc_server_v2_interface_t = vnc_server_v2_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct vnc_server_v2_interface { pub listening : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t) -> bool > , pub num_clients : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t) -> :: std :: os :: raw :: c_int > , pub disconnect : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t) > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of vnc_server_v2_interface\"] [:: std :: mem :: size_of :: < vnc_server_v2_interface > () - 24usize] ; [\"Alignment of vnc_server_v2_interface\"] [:: std :: mem :: align_of :: < vnc_server_v2_interface > () - 8usize] ; [\"Offset of field: vnc_server_v2_interface::listening\"] [:: std :: mem :: offset_of ! (vnc_server_v2_interface , listening) - 0usize] ; [\"Offset of field: vnc_server_v2_interface::num_clients\"] [:: std :: mem :: offset_of ! (vnc_server_v2_interface , num_clients) - 8usize] ; [\"Offset of field: vnc_server_v2_interface::disconnect\"] [:: std :: mem :: offset_of ! (vnc_server_v2_interface , disconnect) - 16usize] ; } ; pub type host_serial_interface_t = host_serial_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct host_serial_interface { pub setup : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , name : * const :: std :: os :: raw :: c_char) -> bool > , pub name : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t) -> * const :: std :: os :: raw :: c_char > , pub shutdown : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t) > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of host_serial_interface\"] [:: std :: mem :: size_of :: < host_serial_interface > () - 24usize] ; [\"Alignment of host_serial_interface\"] [:: std :: mem :: align_of :: < host_serial_interface > () - 8usize] ; [\"Offset of field: host_serial_interface::setup\"] [:: std :: mem :: offset_of ! (host_serial_interface , setup) - 0usize] ; [\"Offset of field: host_serial_interface::name\"] [:: std :: mem :: offset_of ! (host_serial_interface , name) - 8usize] ; [\"Offset of field: host_serial_interface::shutdown\"] [:: std :: mem :: offset_of ! (host_serial_interface , shutdown) - 16usize] ; } ; pub type screenshot_interface_t = screenshot_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct screenshot_interface { pub save_png : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , filename : * const :: std :: os :: raw :: c_char) -> bool > , pub save_bmp : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , filename : * const :: std :: os :: raw :: c_char) -> bool > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of screenshot_interface\"] [:: std :: mem :: size_of :: < screenshot_interface > () - 16usize] ; [\"Alignment of screenshot_interface\"] [:: std :: mem :: align_of :: < screenshot_interface > () - 8usize] ; [\"Offset of field: screenshot_interface::save_png\"] [:: std :: mem :: offset_of ! (screenshot_interface , save_png) - 0usize] ; [\"Offset of field: screenshot_interface::save_bmp\"] [:: std :: mem :: offset_of ! (screenshot_interface , save_bmp) - 8usize] ; } ; # [repr (u32)] # [doc = \" Text console character attributes.\\nInverse video is represented by swapping the foreground and background\\ncolours, so there is no bit for it here.\"] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub enum text_console_text_attrib_t { Text_Console_Attrib_Bold = 1 , Text_Console_Attrib_Underline = 2 , } # [repr (u32)] # [doc = \" Text console colours.\\nhttps://www.wikipedia.org/wiki/ANSI_escape_code#8-bit\"] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub enum text_console_colour_t { Text_Console_Colour_Black = 0 , Text_Console_Colour_Red = 1 , Text_Console_Colour_Green = 2 , Text_Console_Colour_Yellow = 3 , Text_Console_Colour_Blue = 4 , Text_Console_Colour_Magenta = 5 , Text_Console_Colour_Cyan = 6 , Text_Console_Colour_White = 7 , Text_Console_Colour_Black_Bright = 8 , Text_Console_Colour_Red_Bright = 9 , Text_Console_Colour_Green_Bright = 10 , Text_Console_Colour_Yellow_Bright = 11 , Text_Console_Colour_Blue_Bright = 12 , Text_Console_Colour_Magenta_Bright = 13 , Text_Console_Colour_Cyan_Bright = 14 , Text_Console_Colour_White_Bright = 15 , Text_Console_Colour_Cube_16 = 16 , Text_Console_Colour_Cube_17 = 17 , Text_Console_Colour_Cube_18 = 18 , Text_Console_Colour_Cube_19 = 19 , Text_Console_Colour_Cube_20 = 20 , Text_Console_Colour_Cube_21 = 21 , Text_Console_Colour_Cube_22 = 22 , Text_Console_Colour_Cube_23 = 23 , Text_Console_Colour_Cube_24 = 24 , Text_Console_Colour_Cube_25 = 25 , Text_Console_Colour_Cube_26 = 26 , Text_Console_Colour_Cube_27 = 27 , Text_Console_Colour_Cube_28 = 28 , Text_Console_Colour_Cube_29 = 29 , Text_Console_Colour_Cube_30 = 30 , Text_Console_Colour_Cube_31 = 31 , Text_Console_Colour_Cube_32 = 32 , Text_Console_Colour_Cube_33 = 33 , Text_Console_Colour_Cube_34 = 34 , Text_Console_Colour_Cube_35 = 35 , Text_Console_Colour_Cube_36 = 36 , Text_Console_Colour_Cube_37 = 37 , Text_Console_Colour_Cube_38 = 38 , Text_Console_Colour_Cube_39 = 39 , Text_Console_Colour_Cube_40 = 40 , Text_Console_Colour_Cube_41 = 41 , Text_Console_Colour_Cube_42 = 42 , Text_Console_Colour_Cube_43 = 43 , Text_Console_Colour_Cube_44 = 44 , Text_Console_Colour_Cube_45 = 45 , Text_Console_Colour_Cube_46 = 46 , Text_Console_Colour_Cube_47 = 47 , Text_Console_Colour_Cube_48 = 48 , Text_Console_Colour_Cube_49 = 49 , Text_Console_Colour_Cube_50 = 50 , Text_Console_Colour_Cube_51 = 51 , Text_Console_Colour_Cube_52 = 52 , Text_Console_Colour_Cube_53 = 53 , Text_Console_Colour_Cube_54 = 54 , Text_Console_Colour_Cube_55 = 55 , Text_Console_Colour_Cube_56 = 56 , Text_Console_Colour_Cube_57 = 57 , Text_Console_Colour_Cube_58 = 58 , Text_Console_Colour_Cube_59 = 59 , Text_Console_Colour_Cube_60 = 60 , Text_Console_Colour_Cube_61 = 61 , Text_Console_Colour_Cube_62 = 62 , Text_Console_Colour_Cube_63 = 63 , Text_Console_Colour_Cube_64 = 64 , Text_Console_Colour_Cube_65 = 65 , Text_Console_Colour_Cube_66 = 66 , Text_Console_Colour_Cube_67 = 67 , Text_Console_Colour_Cube_68 = 68 , Text_Console_Colour_Cube_69 = 69 , Text_Console_Colour_Cube_70 = 70 , Text_Console_Colour_Cube_71 = 71 , Text_Console_Colour_Cube_72 = 72 , Text_Console_Colour_Cube_73 = 73 , Text_Console_Colour_Cube_74 = 74 , Text_Console_Colour_Cube_75 = 75 , Text_Console_Colour_Cube_76 = 76 , Text_Console_Colour_Cube_77 = 77 , Text_Console_Colour_Cube_78 = 78 , Text_Console_Colour_Cube_79 = 79 , Text_Console_Colour_Cube_80 = 80 , Text_Console_Colour_Cube_81 = 81 , Text_Console_Colour_Cube_82 = 82 , Text_Console_Colour_Cube_83 = 83 , Text_Console_Colour_Cube_84 = 84 , Text_Console_Colour_Cube_85 = 85 , Text_Console_Colour_Cube_86 = 86 , Text_Console_Colour_Cube_87 = 87 , Text_Console_Colour_Cube_88 = 88 , Text_Console_Colour_Cube_89 = 89 , Text_Console_Colour_Cube_90 = 90 , Text_Console_Colour_Cube_91 = 91 , Text_Console_Colour_Cube_92 = 92 , Text_Console_Colour_Cube_93 = 93 , Text_Console_Colour_Cube_94 = 94 , Text_Console_Colour_Cube_95 = 95 , Text_Console_Colour_Cube_96 = 96 , Text_Console_Colour_Cube_97 = 97 , Text_Console_Colour_Cube_98 = 98 , Text_Console_Colour_Cube_99 = 99 , Text_Console_Colour_Cube_100 = 100 , Text_Console_Colour_Cube_101 = 101 , Text_Console_Colour_Cube_102 = 102 , Text_Console_Colour_Cube_103 = 103 , Text_Console_Colour_Cube_104 = 104 , Text_Console_Colour_Cube_105 = 105 , Text_Console_Colour_Cube_106 = 106 , Text_Console_Colour_Cube_107 = 107 , Text_Console_Colour_Cube_108 = 108 , Text_Console_Colour_Cube_109 = 109 , Text_Console_Colour_Cube_110 = 110 , Text_Console_Colour_Cube_111 = 111 , Text_Console_Colour_Cube_112 = 112 , Text_Console_Colour_Cube_113 = 113 , Text_Console_Colour_Cube_114 = 114 , Text_Console_Colour_Cube_115 = 115 , Text_Console_Colour_Cube_116 = 116 , Text_Console_Colour_Cube_117 = 117 , Text_Console_Colour_Cube_118 = 118 , Text_Console_Colour_Cube_119 = 119 , Text_Console_Colour_Cube_120 = 120 , Text_Console_Colour_Cube_121 = 121 , Text_Console_Colour_Cube_122 = 122 , Text_Console_Colour_Cube_123 = 123 , Text_Console_Colour_Cube_124 = 124 , Text_Console_Colour_Cube_125 = 125 , Text_Console_Colour_Cube_126 = 126 , Text_Console_Colour_Cube_127 = 127 , Text_Console_Colour_Cube_128 = 128 , Text_Console_Colour_Cube_129 = 129 , Text_Console_Colour_Cube_130 = 130 , Text_Console_Colour_Cube_131 = 131 , Text_Console_Colour_Cube_132 = 132 , Text_Console_Colour_Cube_133 = 133 , Text_Console_Colour_Cube_134 = 134 , Text_Console_Colour_Cube_135 = 135 , Text_Console_Colour_Cube_136 = 136 , Text_Console_Colour_Cube_137 = 137 , Text_Console_Colour_Cube_138 = 138 , Text_Console_Colour_Cube_139 = 139 , Text_Console_Colour_Cube_140 = 140 , Text_Console_Colour_Cube_141 = 141 , Text_Console_Colour_Cube_142 = 142 , Text_Console_Colour_Cube_143 = 143 , Text_Console_Colour_Cube_144 = 144 , Text_Console_Colour_Cube_145 = 145 , Text_Console_Colour_Cube_146 = 146 , Text_Console_Colour_Cube_147 = 147 , Text_Console_Colour_Cube_148 = 148 , Text_Console_Colour_Cube_149 = 149 , Text_Console_Colour_Cube_150 = 150 , Text_Console_Colour_Cube_151 = 151 , Text_Console_Colour_Cube_152 = 152 , Text_Console_Colour_Cube_153 = 153 , Text_Console_Colour_Cube_154 = 154 , Text_Console_Colour_Cube_155 = 155 , Text_Console_Colour_Cube_156 = 156 , Text_Console_Colour_Cube_157 = 157 , Text_Console_Colour_Cube_158 = 158 , Text_Console_Colour_Cube_159 = 159 , Text_Console_Colour_Cube_160 = 160 , Text_Console_Colour_Cube_161 = 161 , Text_Console_Colour_Cube_162 = 162 , Text_Console_Colour_Cube_163 = 163 , Text_Console_Colour_Cube_164 = 164 , Text_Console_Colour_Cube_165 = 165 , Text_Console_Colour_Cube_166 = 166 , Text_Console_Colour_Cube_167 = 167 , Text_Console_Colour_Cube_168 = 168 , Text_Console_Colour_Cube_169 = 169 , Text_Console_Colour_Cube_170 = 170 , Text_Console_Colour_Cube_171 = 171 , Text_Console_Colour_Cube_172 = 172 , Text_Console_Colour_Cube_173 = 173 , Text_Console_Colour_Cube_174 = 174 , Text_Console_Colour_Cube_175 = 175 , Text_Console_Colour_Cube_176 = 176 , Text_Console_Colour_Cube_177 = 177 , Text_Console_Colour_Cube_178 = 178 , Text_Console_Colour_Cube_179 = 179 , Text_Console_Colour_Cube_180 = 180 , Text_Console_Colour_Cube_181 = 181 , Text_Console_Colour_Cube_182 = 182 , Text_Console_Colour_Cube_183 = 183 , Text_Console_Colour_Cube_184 = 184 , Text_Console_Colour_Cube_185 = 185 , Text_Console_Colour_Cube_186 = 186 , Text_Console_Colour_Cube_187 = 187 , Text_Console_Colour_Cube_188 = 188 , Text_Console_Colour_Cube_189 = 189 , Text_Console_Colour_Cube_190 = 190 , Text_Console_Colour_Cube_191 = 191 , Text_Console_Colour_Cube_192 = 192 , Text_Console_Colour_Cube_193 = 193 , Text_Console_Colour_Cube_194 = 194 , Text_Console_Colour_Cube_195 = 195 , Text_Console_Colour_Cube_196 = 196 , Text_Console_Colour_Cube_197 = 197 , Text_Console_Colour_Cube_198 = 198 , Text_Console_Colour_Cube_199 = 199 , Text_Console_Colour_Cube_200 = 200 , Text_Console_Colour_Cube_201 = 201 , Text_Console_Colour_Cube_202 = 202 , Text_Console_Colour_Cube_203 = 203 , Text_Console_Colour_Cube_204 = 204 , Text_Console_Colour_Cube_205 = 205 , Text_Console_Colour_Cube_206 = 206 , Text_Console_Colour_Cube_207 = 207 , Text_Console_Colour_Cube_208 = 208 , Text_Console_Colour_Cube_209 = 209 , Text_Console_Colour_Cube_210 = 210 , Text_Console_Colour_Cube_211 = 211 , Text_Console_Colour_Cube_212 = 212 , Text_Console_Colour_Cube_213 = 213 , Text_Console_Colour_Cube_214 = 214 , Text_Console_Colour_Cube_215 = 215 , Text_Console_Colour_Cube_216 = 216 , Text_Console_Colour_Cube_217 = 217 , Text_Console_Colour_Cube_218 = 218 , Text_Console_Colour_Cube_219 = 219 , Text_Console_Colour_Cube_220 = 220 , Text_Console_Colour_Cube_221 = 221 , Text_Console_Colour_Cube_222 = 222 , Text_Console_Colour_Cube_223 = 223 , Text_Console_Colour_Cube_224 = 224 , Text_Console_Colour_Cube_225 = 225 , Text_Console_Colour_Cube_226 = 226 , Text_Console_Colour_Cube_227 = 227 , Text_Console_Colour_Cube_228 = 228 , Text_Console_Colour_Cube_229 = 229 , Text_Console_Colour_Cube_230 = 230 , Text_Console_Colour_Cube_231 = 231 , Text_Console_Colour_Grey_232 = 232 , Text_Console_Colour_Grey_233 = 233 , Text_Console_Colour_Grey_234 = 234 , Text_Console_Colour_Grey_235 = 235 , Text_Console_Colour_Grey_236 = 236 , Text_Console_Colour_Grey_237 = 237 , Text_Console_Colour_Grey_238 = 238 , Text_Console_Colour_Grey_239 = 239 , Text_Console_Colour_Grey_240 = 240 , Text_Console_Colour_Grey_241 = 241 , Text_Console_Colour_Grey_242 = 242 , Text_Console_Colour_Grey_243 = 243 , Text_Console_Colour_Grey_244 = 244 , Text_Console_Colour_Grey_245 = 245 , Text_Console_Colour_Grey_246 = 246 , Text_Console_Colour_Grey_247 = 247 , Text_Console_Colour_Grey_248 = 248 , Text_Console_Colour_Grey_249 = 249 , Text_Console_Colour_Grey_250 = 250 , Text_Console_Colour_Grey_251 = 251 , Text_Console_Colour_Grey_252 = 252 , Text_Console_Colour_Grey_253 = 253 , Text_Console_Colour_Grey_254 = 254 , Text_Console_Colour_Grey_255 = 255 , # [doc = \" These values represent the chosen default colours.\"] Text_Console_Colour_Default_Foreground = 256 , # [doc = \" These values represent the chosen default colours.\"] Text_Console_Colour_Default_Background = 257 , } # [repr (C , packed)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct text_console_attrib_t { # [doc = \" Bitmask of text_console_text_attrib_t\"] pub attrib : uint8 , # [doc = \" text_console_colour_t specifying fg colour\"] pub fg : uint16 , # [doc = \" text_console_colour_t specifying bg colour.\"] pub bg : uint16 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of text_console_attrib_t\"] [:: std :: mem :: size_of :: < text_console_attrib_t > () - 5usize] ; [\"Alignment of text_console_attrib_t\"] [:: std :: mem :: align_of :: < text_console_attrib_t > () - 1usize] ; [\"Offset of field: text_console_attrib_t::attrib\"] [:: std :: mem :: offset_of ! (text_console_attrib_t , attrib) - 0usize] ; [\"Offset of field: text_console_attrib_t::fg\"] [:: std :: mem :: offset_of ! (text_console_attrib_t , fg) - 1usize] ; [\"Offset of field: text_console_attrib_t::bg\"] [:: std :: mem :: offset_of ! (text_console_attrib_t , bg) - 3usize] ; } ; pub type text_console_frontend_interface_t = text_console_frontend_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct text_console_frontend_interface { # [doc = \" Called when the console is finalised.\\n\'backend\' is the calling text console.\"] pub start : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , backend : * mut conf_object_t) -> :: std :: os :: raw :: c_int > , # [doc = \" Called when the console is being destroyed.\"] pub stop : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , handle : :: std :: os :: raw :: c_int) > , # [doc = \" Set the window title.\\nTwo title strings are given, where the long title is\\nmeant for a window title bar and the short for a window list.\\nThe long title string is at least as long as the short.\"] pub set_title : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , handle : :: std :: os :: raw :: c_int , short_title : * const :: std :: os :: raw :: c_char , long_title : * const :: std :: os :: raw :: c_char) > , # [doc = \" Called when the screen size of the console changes.\\nThe width (columns) and height (rows) are given in characters.\"] pub set_size : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , handle : :: std :: os :: raw :: c_int , width : :: std :: os :: raw :: c_int , height : :: std :: os :: raw :: c_int) > , # [doc = \" Specify the maximum scrollback size (in lines).\"] pub set_max_scrollback_size : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , handle : :: std :: os :: raw :: c_int , num_lines : :: std :: os :: raw :: c_int) > , # [doc = \" Specify new default text colours for the console.\\nThese are used for characters whose colours were set to\\nText_Console_Colour_Default_Background or\\nText_Console_Colour_Default_Foreground.\"] pub set_default_colours : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , handle : :: std :: os :: raw :: c_int , default_fg_col : uint32 , default_bg_col : uint32) > , # [doc = \" Show/hide the console window.\"] pub set_visible : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , handle : :: std :: os :: raw :: c_int , visible : bool) > , # [doc = \" Update characters and attributes in a rectangle in the console.\\n(top, left) is the line and column of the upper left corner;\\n(bottom, right) is the line and column of the lower right corner\\n(inclusive).\\nLines and columns are 0-based. Lines are counted from the top of\\nthe visible screen.\\n\\n\'text\' and \'attrib\' are the text and attribute arrays, respectively,\\ninto which the lines and columns are used as indices.\\nFor example, the start of the rectangle in the text array is\\n&text[width * top + left], where width was set by set_size.\"] pub set_contents : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , handle : :: std :: os :: raw :: c_int , top : :: std :: os :: raw :: c_int , left : :: std :: os :: raw :: c_int , bottom : :: std :: os :: raw :: c_int , right : :: std :: os :: raw :: c_int , text : * const :: std :: os :: raw :: c_char , attrib : * const text_console_attrib_t) > , # [doc = \" Move the cursor to a new position.\\nrow is the new cursor row (0-based), within the visible screen.\\ncol is the new cursor column (0-based).\"] pub set_cursor_pos : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , handle : :: std :: os :: raw :: c_int , row : :: std :: os :: raw :: c_int , col : :: std :: os :: raw :: c_int) > , # [doc = \" Append text at the bottom of the screen of the console,\\nimplicitly scrolling the text upwards.\\nnum_lines is the number of lines to append_scroll.\\n\'text\' and \'attrib\' are the start of the newly scrolled-in data,\\nrepresenting the num_lines bottommost lines of the screen after\\nscrolling.\"] pub append_text : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , handle : :: std :: os :: raw :: c_int , num_lines : :: std :: os :: raw :: c_int , text : * const :: std :: os :: raw :: c_char , attrib : * const text_console_attrib_t) > , # [doc = \" Replace the screen and scrollback data with new information.\\n\'text\' and \'attrib\' each contain\\nwidth * height elements,\\nwhere width and height were set by set_size.\\n\'sb_text\' and \'sb_attrib\' each contain\\nwidth * scrollback_size elements.\"] pub refresh_screen : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , handle : :: std :: os :: raw :: c_int , text : * const :: std :: os :: raw :: c_char , attrib : * const text_console_attrib_t , sb_text : * const :: std :: os :: raw :: c_char , sb_attrib : * const text_console_attrib_t , scrollback_size : :: std :: os :: raw :: c_int) > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of text_console_frontend_interface\"] [:: std :: mem :: size_of :: < text_console_frontend_interface > () - 88usize] ; [\"Alignment of text_console_frontend_interface\"] [:: std :: mem :: align_of :: < text_console_frontend_interface > () - 8usize] ; [\"Offset of field: text_console_frontend_interface::start\"] [:: std :: mem :: offset_of ! (text_console_frontend_interface , start) - 0usize] ; [\"Offset of field: text_console_frontend_interface::stop\"] [:: std :: mem :: offset_of ! (text_console_frontend_interface , stop) - 8usize] ; [\"Offset of field: text_console_frontend_interface::set_title\"] [:: std :: mem :: offset_of ! (text_console_frontend_interface , set_title) - 16usize] ; [\"Offset of field: text_console_frontend_interface::set_size\"] [:: std :: mem :: offset_of ! (text_console_frontend_interface , set_size) - 24usize] ; [\"Offset of field: text_console_frontend_interface::set_max_scrollback_size\"] [:: std :: mem :: offset_of ! (text_console_frontend_interface , set_max_scrollback_size) - 32usize] ; [\"Offset of field: text_console_frontend_interface::set_default_colours\"] [:: std :: mem :: offset_of ! (text_console_frontend_interface , set_default_colours) - 40usize] ; [\"Offset of field: text_console_frontend_interface::set_visible\"] [:: std :: mem :: offset_of ! (text_console_frontend_interface , set_visible) - 48usize] ; [\"Offset of field: text_console_frontend_interface::set_contents\"] [:: std :: mem :: offset_of ! (text_console_frontend_interface , set_contents) - 56usize] ; [\"Offset of field: text_console_frontend_interface::set_cursor_pos\"] [:: std :: mem :: offset_of ! (text_console_frontend_interface , set_cursor_pos) - 64usize] ; [\"Offset of field: text_console_frontend_interface::append_text\"] [:: std :: mem :: offset_of ! (text_console_frontend_interface , append_text) - 72usize] ; [\"Offset of field: text_console_frontend_interface::refresh_screen\"] [:: std :: mem :: offset_of ! (text_console_frontend_interface , refresh_screen) - 80usize] ; } ; # [repr (u32)] # [doc = \" Text console keys sent from the GUI to the console.\"] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub enum text_console_key_t { Text_Console_Key_Tab = 9 , Text_Console_Key_Return = 13 , Text_Console_Key_Escape = 27 , # [doc = \" Backspace has a special code (not 8) to distinguish it from ^H.\"] Text_Console_Key_Backspace = 128 , # [doc = \" Backspace has a special code (not 8) to distinguish it from ^H.\"] Text_Console_Key_Left = 129 , # [doc = \" Backspace has a special code (not 8) to distinguish it from ^H.\"] Text_Console_Key_Up = 130 , # [doc = \" Backspace has a special code (not 8) to distinguish it from ^H.\"] Text_Console_Key_Right = 131 , # [doc = \" Backspace has a special code (not 8) to distinguish it from ^H.\"] Text_Console_Key_Down = 132 , # [doc = \" Backspace has a special code (not 8) to distinguish it from ^H.\"] Text_Console_Key_Home = 133 , # [doc = \" Backspace has a special code (not 8) to distinguish it from ^H.\"] Text_Console_Key_End = 134 , # [doc = \" Backspace has a special code (not 8) to distinguish it from ^H.\"] Text_Console_Key_Ins = 135 , # [doc = \" Backspace has a special code (not 8) to distinguish it from ^H.\"] Text_Console_Key_Del = 136 , # [doc = \" Backspace has a special code (not 8) to distinguish it from ^H.\"] Text_Console_Key_Pgup = 137 , # [doc = \" Backspace has a special code (not 8) to distinguish it from ^H.\"] Text_Console_Key_Pgdn = 138 , # [doc = \" Backspace has a special code (not 8) to distinguish it from ^H.\"] Text_Console_Key_F1 = 139 , # [doc = \" Backspace has a special code (not 8) to distinguish it from ^H.\"] Text_Console_Key_F2 = 140 , # [doc = \" Backspace has a special code (not 8) to distinguish it from ^H.\"] Text_Console_Key_F3 = 141 , # [doc = \" Backspace has a special code (not 8) to distinguish it from ^H.\"] Text_Console_Key_F4 = 142 , # [doc = \" Backspace has a special code (not 8) to distinguish it from ^H.\"] Text_Console_Key_F5 = 143 , # [doc = \" Backspace has a special code (not 8) to distinguish it from ^H.\"] Text_Console_Key_F6 = 144 , # [doc = \" Backspace has a special code (not 8) to distinguish it from ^H.\"] Text_Console_Key_F7 = 145 , # [doc = \" Backspace has a special code (not 8) to distinguish it from ^H.\"] Text_Console_Key_F8 = 146 , # [doc = \" Backspace has a special code (not 8) to distinguish it from ^H.\"] Text_Console_Key_F9 = 147 , # [doc = \" Backspace has a special code (not 8) to distinguish it from ^H.\"] Text_Console_Key_F10 = 148 , # [doc = \" Backspace has a special code (not 8) to distinguish it from ^H.\"] Text_Console_Key_F11 = 149 , # [doc = \" Backspace has a special code (not 8) to distinguish it from ^H.\"] Text_Console_Key_F12 = 150 , # [doc = \" Numeric keypad keys.\"] Text_Console_Key_KP_0 = 151 , # [doc = \" Numeric keypad keys.\"] Text_Console_Key_KP_1 = 152 , # [doc = \" Numeric keypad keys.\"] Text_Console_Key_KP_2 = 153 , # [doc = \" Numeric keypad keys.\"] Text_Console_Key_KP_3 = 154 , # [doc = \" Numeric keypad keys.\"] Text_Console_Key_KP_4 = 155 , # [doc = \" Numeric keypad keys.\"] Text_Console_Key_KP_5 = 156 , # [doc = \" Numeric keypad keys.\"] Text_Console_Key_KP_6 = 157 , # [doc = \" Numeric keypad keys.\"] Text_Console_Key_KP_7 = 158 , # [doc = \" Numeric keypad keys.\"] Text_Console_Key_KP_8 = 159 , # [doc = \" Numeric keypad keys.\"] Text_Console_Key_KP_9 = 160 , # [doc = \" Numeric keypad keys.\"] Text_Console_Key_KP_Plus = 161 , # [doc = \" Numeric keypad keys.\"] Text_Console_Key_KP_Minus = 162 , # [doc = \" Numeric keypad keys.\"] Text_Console_Key_KP_Mul = 163 , # [doc = \" Numeric keypad keys.\"] Text_Console_Key_KP_Div = 164 , # [doc = \" Numeric keypad keys.\"] Text_Console_Key_KP_Dot = 165 , # [doc = \" Numeric keypad keys.\"] Text_Console_Key_KP_Enter = 166 , } # [repr (u32)] # [doc = \" Text console input key modifiers.\"] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub enum text_console_modifier_t { Text_Console_Modifier_Alt = 1 , Text_Console_Modifier_Ctrl = 2 , Text_Console_Modifier_Shift = 4 , } pub type text_console_backend_interface_t = text_console_backend_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct text_console_backend_interface { # [doc = \" Send a key press to the backend.\"] pub input : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , key : text_console_key_t , modifiers : text_console_modifier_t) > , # [doc = \" Request that the backend should refresh the whole console screen.\\nShortly after this call, the frontend can expect a call to\\ntext_console_frontend.refresh_screen.\"] pub request_refresh : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t) > , # [doc = \" Indicate to the backend whether the frontend is visible, e.g. if\\nthe console window is hidden by other windows or minimised.\\nThe backend may then choose not to call any text or cursor update\\nfunctions in the text_console_frontend interface.\"] pub set_visible : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , visible : bool) > , # [doc = \" Returns 1 + the maximum column on the given line\\nwith a printable character. The frontend may use this information\\nfor e.g. user marking and copying text.\\nline_num is 0-based and indexes over the screen for positive values\\nand negative values to indicate scrollback lines.\"] pub line_length : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , line_num : :: std :: os :: raw :: c_int) -> :: std :: os :: raw :: c_int > , # [doc = \" Indicate whether the specified line was not finished with an explicit\\ncarriage return by the user, and hence wraps to the next line.\\nThe frontend may use this information for e.g. user marking\\nand copying text.\\nline_num is 0-based and indexes over the screen for positive values\\nand negative values to indicate scrollback lines.\"] pub line_wrap : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , line_num : :: std :: os :: raw :: c_int) -> bool > , # [doc = \" Tell the console to change the screen size. Note that this is\\nvisible to the target software this call therefore impacts the\\nsimulation. An immediate call to text_console_frontend.set_size\\nwill follow a call to this function.\"] pub set_size : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , width : :: std :: os :: raw :: c_int , height : :: std :: os :: raw :: c_int) > , # [doc = \" Tell the console to change the default text colours. An immediate\\ncall to text_console_frontend.set_default_colours will follow a\\ncall to this function.\"] pub set_default_colours : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , default_fg_col : uint32 , default_bg_col : uint32) > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of text_console_backend_interface\"] [:: std :: mem :: size_of :: < text_console_backend_interface > () - 56usize] ; [\"Alignment of text_console_backend_interface\"] [:: std :: mem :: align_of :: < text_console_backend_interface > () - 8usize] ; [\"Offset of field: text_console_backend_interface::input\"] [:: std :: mem :: offset_of ! (text_console_backend_interface , input) - 0usize] ; [\"Offset of field: text_console_backend_interface::request_refresh\"] [:: std :: mem :: offset_of ! (text_console_backend_interface , request_refresh) - 8usize] ; [\"Offset of field: text_console_backend_interface::set_visible\"] [:: std :: mem :: offset_of ! (text_console_backend_interface , set_visible) - 16usize] ; [\"Offset of field: text_console_backend_interface::line_length\"] [:: std :: mem :: offset_of ! (text_console_backend_interface , line_length) - 24usize] ; [\"Offset of field: text_console_backend_interface::line_wrap\"] [:: std :: mem :: offset_of ! (text_console_backend_interface , line_wrap) - 32usize] ; [\"Offset of field: text_console_backend_interface::set_size\"] [:: std :: mem :: offset_of ! (text_console_backend_interface , set_size) - 40usize] ; [\"Offset of field: text_console_backend_interface::set_default_colours\"] [:: std :: mem :: offset_of ! (text_console_backend_interface , set_default_colours) - 48usize] ; } ; # [repr (u32)] # [doc = \" Keyboard LED status bitmask.\"] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub enum gfx_console_led_t { Gfx_Console_Led_None = 0 , Gfx_Console_Led_Caps = 1 , Gfx_Console_Led_Num = 2 , Gfx_Console_Led_Scroll = 4 , } # [repr (u32)] # [doc = \" Identifiers for graphics console mouse input.\"] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub enum gfx_console_mouse_button_t { Gfx_Console_Mouse_Button_Left = 1 , Gfx_Console_Mouse_Button_Right = 2 , Gfx_Console_Mouse_Button_Middle = 4 , } pub type gfx_console_frontend_interface_t = gfx_console_frontend_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct gfx_console_frontend_interface { # [doc = \" Called when the backend is finalised. Should return a unique handle\\n identifying the given backend object to the frontend.\"] pub start : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , backend : * mut conf_object_t) -> :: std :: os :: raw :: c_int > , # [doc = \" Called when the backend is being destroyed.\"] pub stop : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , handle : :: std :: os :: raw :: c_int) > , # [doc = \" Set window title of the frontend associated to the specified backend.\\n Two title strings are given, where the long title is\\n meant for a window title bar and the short for a window list.\\n The long title string is at least as long as the short.\"] pub set_title : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , handle : :: std :: os :: raw :: c_int , short_title : * const :: std :: os :: raw :: c_char , long_title : * const :: std :: os :: raw :: c_char) > , # [doc = \" Called when the screen size of the specified backend changes.\"] pub set_size : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , handle : :: std :: os :: raw :: c_int , width : :: std :: os :: raw :: c_int , height : :: std :: os :: raw :: c_int) > , # [doc = \" Tell the frontend to show/hide its GUI window.\"] pub set_visible : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , handle : :: std :: os :: raw :: c_int , visible : bool) > , # [doc = \" Update the screen contents in the rectangle between (left, top)\\nand (right, bottom), inclusive.\\n\'data\' is the start of the screen pixel array, so the first\\npixel of the rectangle is at &data[width * top + left],\\nwhere width was set by set_size.\"] pub set_contents : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , handle : :: std :: os :: raw :: c_int , left : :: std :: os :: raw :: c_int , top : :: std :: os :: raw :: c_int , right : :: std :: os :: raw :: c_int , bottom : :: std :: os :: raw :: c_int , data : * const uint32) > , # [doc = \" Tell the frontend that the data argument passed to set_contents\\n is no longer valid.\\n This must be called upon a screen size change, before set_size.\"] pub invalidate_contents : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , handle : :: std :: os :: raw :: c_int) > , # [doc = \" Inform the frontend whether or not we are currently in VGA text mode.\"] pub set_text_mode : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , handle : :: std :: os :: raw :: c_int , text_mode : bool) > , # [doc = \" Tell the frontend that text arrived to the backend from the attached\\n device, using vga_text_update.\"] pub signal_text_update : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , handle : :: std :: os :: raw :: c_int) > , # [doc = \" Inform the frontend that the grab mode of the specified backend\\n has changed.\"] pub set_grab_mode : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , handle : :: std :: os :: raw :: c_int , active : bool) > , # [doc = \" Tell the frontend to set the host mouse cursor to (x, y),\\nwith ranges [0, width - 1] and [0, height - 1], where\\nwidth and height were set by set_size.\"] pub set_mouse_pos : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , handle : :: std :: os :: raw :: c_int , x : :: std :: os :: raw :: c_int , y : :: std :: os :: raw :: c_int) > , # [doc = \" Inform frontend that the keyboard LED state have been updated.\\nThe new state of the LEDs is given as a bitmask.\"] pub set_keyboard_leds : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , handle : :: std :: os :: raw :: c_int , led_state : gfx_console_led_t) > , # [doc = \" Inform frontend that the grab modifier has changed.\"] pub set_grab_modifier : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , handle : :: std :: os :: raw :: c_int , modifier : sim_key_t) > , # [doc = \" Inform frontend that the grab button has changed.\"] pub set_grab_button : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , handle : :: std :: os :: raw :: c_int , button : gfx_console_mouse_button_t) > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of gfx_console_frontend_interface\"] [:: std :: mem :: size_of :: < gfx_console_frontend_interface > () - 112usize] ; [\"Alignment of gfx_console_frontend_interface\"] [:: std :: mem :: align_of :: < gfx_console_frontend_interface > () - 8usize] ; [\"Offset of field: gfx_console_frontend_interface::start\"] [:: std :: mem :: offset_of ! (gfx_console_frontend_interface , start) - 0usize] ; [\"Offset of field: gfx_console_frontend_interface::stop\"] [:: std :: mem :: offset_of ! (gfx_console_frontend_interface , stop) - 8usize] ; [\"Offset of field: gfx_console_frontend_interface::set_title\"] [:: std :: mem :: offset_of ! (gfx_console_frontend_interface , set_title) - 16usize] ; [\"Offset of field: gfx_console_frontend_interface::set_size\"] [:: std :: mem :: offset_of ! (gfx_console_frontend_interface , set_size) - 24usize] ; [\"Offset of field: gfx_console_frontend_interface::set_visible\"] [:: std :: mem :: offset_of ! (gfx_console_frontend_interface , set_visible) - 32usize] ; [\"Offset of field: gfx_console_frontend_interface::set_contents\"] [:: std :: mem :: offset_of ! (gfx_console_frontend_interface , set_contents) - 40usize] ; [\"Offset of field: gfx_console_frontend_interface::invalidate_contents\"] [:: std :: mem :: offset_of ! (gfx_console_frontend_interface , invalidate_contents) - 48usize] ; [\"Offset of field: gfx_console_frontend_interface::set_text_mode\"] [:: std :: mem :: offset_of ! (gfx_console_frontend_interface , set_text_mode) - 56usize] ; [\"Offset of field: gfx_console_frontend_interface::signal_text_update\"] [:: std :: mem :: offset_of ! (gfx_console_frontend_interface , signal_text_update) - 64usize] ; [\"Offset of field: gfx_console_frontend_interface::set_grab_mode\"] [:: std :: mem :: offset_of ! (gfx_console_frontend_interface , set_grab_mode) - 72usize] ; [\"Offset of field: gfx_console_frontend_interface::set_mouse_pos\"] [:: std :: mem :: offset_of ! (gfx_console_frontend_interface , set_mouse_pos) - 80usize] ; [\"Offset of field: gfx_console_frontend_interface::set_keyboard_leds\"] [:: std :: mem :: offset_of ! (gfx_console_frontend_interface , set_keyboard_leds) - 88usize] ; [\"Offset of field: gfx_console_frontend_interface::set_grab_modifier\"] [:: std :: mem :: offset_of ! (gfx_console_frontend_interface , set_grab_modifier) - 96usize] ; [\"Offset of field: gfx_console_frontend_interface::set_grab_button\"] [:: std :: mem :: offset_of ! (gfx_console_frontend_interface , set_grab_button) - 104usize] ; } ; # [doc = \" VGA text mode data.\\n Stored in this file since we have the VGA device pointer here.\"] # [repr (C)] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct gfx_console_screen_text_t { # [doc = \" Screen text (text_width \u{d7} text_height), in some 8-bit ASCII\\nsuperset (we assume CP437).\"] pub text : bytes_t , # [doc = \" Text screen size in character cells.\"] pub rows : :: std :: os :: raw :: c_int , # [doc = \" Text screen size in character cells.\"] pub columns : :: std :: os :: raw :: c_int , # [doc = \" Text cell size in pixels.\"] pub font_width : :: std :: os :: raw :: c_int , # [doc = \" Text cell size in pixels.\"] pub font_height : :: std :: os :: raw :: c_int , # [doc = \" Length of each line (text_height elements), beyond which there\\nis only empty space. Each element is in [0, columns].\"] pub line_lengths : bytes_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of gfx_console_screen_text_t\"] [:: std :: mem :: size_of :: < gfx_console_screen_text_t > () - 48usize] ; [\"Alignment of gfx_console_screen_text_t\"] [:: std :: mem :: align_of :: < gfx_console_screen_text_t > () - 8usize] ; [\"Offset of field: gfx_console_screen_text_t::text\"] [:: std :: mem :: offset_of ! (gfx_console_screen_text_t , text) - 0usize] ; [\"Offset of field: gfx_console_screen_text_t::rows\"] [:: std :: mem :: offset_of ! (gfx_console_screen_text_t , rows) - 16usize] ; [\"Offset of field: gfx_console_screen_text_t::columns\"] [:: std :: mem :: offset_of ! (gfx_console_screen_text_t , columns) - 20usize] ; [\"Offset of field: gfx_console_screen_text_t::font_width\"] [:: std :: mem :: offset_of ! (gfx_console_screen_text_t , font_width) - 24usize] ; [\"Offset of field: gfx_console_screen_text_t::font_height\"] [:: std :: mem :: offset_of ! (gfx_console_screen_text_t , font_height) - 28usize] ; [\"Offset of field: gfx_console_screen_text_t::line_lengths\"] [:: std :: mem :: offset_of ! (gfx_console_screen_text_t , line_lengths) - 32usize] ; } ; impl Default for gfx_console_screen_text_t { fn default () -> Self { let mut s = :: std :: mem :: MaybeUninit :: < Self > :: uninit () ; unsafe { :: std :: ptr :: write_bytes (s . as_mut_ptr () , 0 , 1) ; s . assume_init () } } } pub type gfx_console_backend_interface_t = gfx_console_backend_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct gfx_console_backend_interface { # [doc = \" Indicate to the backend that a key has been pressed or released.\"] pub kbd_event : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , code : sim_key_t , down : bool) > , # [doc = \" Indicate to the backend that the mouse state has changed.\\n(x, y) are in screen coordinates (pixels).\\nz is the mouse wheel: 1 if the wheel has rolled upwards, -1 for\\ndownwards, 0 for no change.\\n\'buttons\' is the current button state.\"] pub mouse_event : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , x : :: std :: os :: raw :: c_int , y : :: std :: os :: raw :: c_int , z : :: std :: os :: raw :: c_int , buttons : gfx_console_mouse_button_t) > , # [doc = \" Request that the backend should refresh the whole console screen.\\n Shortly after this call, the frontend can expect a call to\\n gfx_console_frontend.set_contents, updating the whole screen.\"] pub request_refresh : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t) > , # [doc = \" Indicate to the backend whether the frontend is visible, e.g. if\\n the console window is hidden by other windows or minimised.\\n If the frontend is invisible, the backend may choose not to call\\n gfx_console_frontend.set_contents.\"] pub set_visible : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , visible : bool) > , # [doc = \" Obtain VGA text data from console backend. If the console is not in\\n VGA text mode, the result is undefined.\"] pub text_data : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t) -> gfx_console_screen_text_t > , # [doc = \" Inform the backed that the grab mode keys were pressed.\"] pub got_grab_keys : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t) > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of gfx_console_backend_interface\"] [:: std :: mem :: size_of :: < gfx_console_backend_interface > () - 48usize] ; [\"Alignment of gfx_console_backend_interface\"] [:: std :: mem :: align_of :: < gfx_console_backend_interface > () - 8usize] ; [\"Offset of field: gfx_console_backend_interface::kbd_event\"] [:: std :: mem :: offset_of ! (gfx_console_backend_interface , kbd_event) - 0usize] ; [\"Offset of field: gfx_console_backend_interface::mouse_event\"] [:: std :: mem :: offset_of ! (gfx_console_backend_interface , mouse_event) - 8usize] ; [\"Offset of field: gfx_console_backend_interface::request_refresh\"] [:: std :: mem :: offset_of ! (gfx_console_backend_interface , request_refresh) - 16usize] ; [\"Offset of field: gfx_console_backend_interface::set_visible\"] [:: std :: mem :: offset_of ! (gfx_console_backend_interface , set_visible) - 24usize] ; [\"Offset of field: gfx_console_backend_interface::text_data\"] [:: std :: mem :: offset_of ! (gfx_console_backend_interface , text_data) - 32usize] ; [\"Offset of field: gfx_console_backend_interface::got_grab_keys\"] [:: std :: mem :: offset_of ! (gfx_console_backend_interface , got_grab_keys) - 40usize] ; } ; # [repr (u32)] # [doc = \" Possible update messages that can be sent to Winsome in a winsome_update_t.\"] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub enum winsome_update_type_t { Winsome_Update_Nothing = 0 , Winsome_Update_Text_Cursor = 1 , Winsome_Update_Append = 2 , Winsome_Update_Refresh = 3 , Winsome_Update_Gfx = 4 , Winsome_Update_Resize = 5 , Winsome_Update_Activity = 6 , } # [doc = \" Main structure for sending console updates to the Winsome GUI.\\nThis is converted to a Python tuple with data corresponding to the\\ndifferent parts of the union. Data buffers such as screen and attribute data\\nare converted to Python strings.\"] # [repr (C)] # [derive (Copy , Clone)] pub struct winsome_update_t { # [doc = \" Indicates which part of the union is used.\"] pub type_ : winsome_update_type_t , pub u : winsome_update_t__bindgen_ty_1 , } # [repr (C)] # [derive (Copy , Clone)] pub union winsome_update_t__bindgen_ty_1 { pub text : winsome_update_t__bindgen_ty_1__bindgen_ty_1 , pub sb : winsome_update_t__bindgen_ty_1__bindgen_ty_2 , pub refresh : winsome_update_t__bindgen_ty_1__bindgen_ty_3 , pub resize : winsome_update_t__bindgen_ty_1__bindgen_ty_4 , pub gfx : winsome_update_t__bindgen_ty_1__bindgen_ty_5 , } # [doc = \" Data for a message containing text console screen update\\nand cursor movement. This corresponds to calls to\\nset_contents and set_cursor_pos in text_console_frontend,\\naccumulated in the obvious way: take the bounding box of\\nthe updated rectangles and the last cursor position.\"] # [repr (C)] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct winsome_update_t__bindgen_ty_1__bindgen_ty_1 { # [doc = \" Heap-allocated contents of new screen rectangle.\\n Each array has\\n (right - left + 1) * (bottom - top + 1)\\n elements.\"] pub text : * mut :: std :: os :: raw :: c_char , pub attrib : * mut text_console_attrib_t , # [doc = \" Coordinates on screen of new data.\"] pub left : :: std :: os :: raw :: c_int , pub right : :: std :: os :: raw :: c_int , pub top : :: std :: os :: raw :: c_int , pub bottom : :: std :: os :: raw :: c_int , # [doc = \" New cursor position.\"] pub cursor_x : :: std :: os :: raw :: c_int , pub cursor_y : :: std :: os :: raw :: c_int , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of winsome_update_t__bindgen_ty_1__bindgen_ty_1\"] [:: std :: mem :: size_of :: < winsome_update_t__bindgen_ty_1__bindgen_ty_1 > () - 40usize] ; [\"Alignment of winsome_update_t__bindgen_ty_1__bindgen_ty_1\"] [:: std :: mem :: align_of :: < winsome_update_t__bindgen_ty_1__bindgen_ty_1 > () - 8usize] ; [\"Offset of field: winsome_update_t__bindgen_ty_1__bindgen_ty_1::text\"] [:: std :: mem :: offset_of ! (winsome_update_t__bindgen_ty_1__bindgen_ty_1 , text) - 0usize] ; [\"Offset of field: winsome_update_t__bindgen_ty_1__bindgen_ty_1::attrib\"] [:: std :: mem :: offset_of ! (winsome_update_t__bindgen_ty_1__bindgen_ty_1 , attrib) - 8usize] ; [\"Offset of field: winsome_update_t__bindgen_ty_1__bindgen_ty_1::left\"] [:: std :: mem :: offset_of ! (winsome_update_t__bindgen_ty_1__bindgen_ty_1 , left) - 16usize] ; [\"Offset of field: winsome_update_t__bindgen_ty_1__bindgen_ty_1::right\"] [:: std :: mem :: offset_of ! (winsome_update_t__bindgen_ty_1__bindgen_ty_1 , right) - 20usize] ; [\"Offset of field: winsome_update_t__bindgen_ty_1__bindgen_ty_1::top\"] [:: std :: mem :: offset_of ! (winsome_update_t__bindgen_ty_1__bindgen_ty_1 , top) - 24usize] ; [\"Offset of field: winsome_update_t__bindgen_ty_1__bindgen_ty_1::bottom\"] [:: std :: mem :: offset_of ! (winsome_update_t__bindgen_ty_1__bindgen_ty_1 , bottom) - 28usize] ; [\"Offset of field: winsome_update_t__bindgen_ty_1__bindgen_ty_1::cursor_x\"] [:: std :: mem :: offset_of ! (winsome_update_t__bindgen_ty_1__bindgen_ty_1 , cursor_x) - 32usize] ; [\"Offset of field: winsome_update_t__bindgen_ty_1__bindgen_ty_1::cursor_y\"] [:: std :: mem :: offset_of ! (winsome_update_t__bindgen_ty_1__bindgen_ty_1 , cursor_y) - 36usize] ; } ; impl Default for winsome_update_t__bindgen_ty_1__bindgen_ty_1 { fn default () -> Self { let mut s = :: std :: mem :: MaybeUninit :: < Self > :: uninit () ; unsafe { :: std :: ptr :: write_bytes (s . as_mut_ptr () , 0 , 1) ; s . assume_init () } } } # [doc = \" Data for a message containing text console append and cursor\\nmovement. This corresponds to calls to append_text and\\nset_cursor_pos in text_console_frontend, accumulated in the\\nobvious way: append the text lines and take the last cursor\\nposition.\"] # [repr (C)] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct winsome_update_t__bindgen_ty_1__bindgen_ty_2 { # [doc = \" Number of lines to append.\"] pub num_lines : uint64 , # [doc = \" Pointers to start of text at new lines.\"] pub text : * mut :: std :: os :: raw :: c_char , pub attrib : * mut text_console_attrib_t , # [doc = \" Length of buffers in characters.\"] pub text_len : uint64 , # [doc = \" New cursor position.\"] pub cursor_x : :: std :: os :: raw :: c_int , pub cursor_y : :: std :: os :: raw :: c_int , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of winsome_update_t__bindgen_ty_1__bindgen_ty_2\"] [:: std :: mem :: size_of :: < winsome_update_t__bindgen_ty_1__bindgen_ty_2 > () - 40usize] ; [\"Alignment of winsome_update_t__bindgen_ty_1__bindgen_ty_2\"] [:: std :: mem :: align_of :: < winsome_update_t__bindgen_ty_1__bindgen_ty_2 > () - 8usize] ; [\"Offset of field: winsome_update_t__bindgen_ty_1__bindgen_ty_2::num_lines\"] [:: std :: mem :: offset_of ! (winsome_update_t__bindgen_ty_1__bindgen_ty_2 , num_lines) - 0usize] ; [\"Offset of field: winsome_update_t__bindgen_ty_1__bindgen_ty_2::text\"] [:: std :: mem :: offset_of ! (winsome_update_t__bindgen_ty_1__bindgen_ty_2 , text) - 8usize] ; [\"Offset of field: winsome_update_t__bindgen_ty_1__bindgen_ty_2::attrib\"] [:: std :: mem :: offset_of ! (winsome_update_t__bindgen_ty_1__bindgen_ty_2 , attrib) - 16usize] ; [\"Offset of field: winsome_update_t__bindgen_ty_1__bindgen_ty_2::text_len\"] [:: std :: mem :: offset_of ! (winsome_update_t__bindgen_ty_1__bindgen_ty_2 , text_len) - 24usize] ; [\"Offset of field: winsome_update_t__bindgen_ty_1__bindgen_ty_2::cursor_x\"] [:: std :: mem :: offset_of ! (winsome_update_t__bindgen_ty_1__bindgen_ty_2 , cursor_x) - 32usize] ; [\"Offset of field: winsome_update_t__bindgen_ty_1__bindgen_ty_2::cursor_y\"] [:: std :: mem :: offset_of ! (winsome_update_t__bindgen_ty_1__bindgen_ty_2 , cursor_y) - 36usize] ; } ; impl Default for winsome_update_t__bindgen_ty_1__bindgen_ty_2 { fn default () -> Self { let mut s = :: std :: mem :: MaybeUninit :: < Self > :: uninit () ; unsafe { :: std :: ptr :: write_bytes (s . as_mut_ptr () , 0 , 1) ; s . assume_init () } } } # [doc = \" Data for a message containing text console screen refresh.\\nThis corresponds to calls to refresh_screen\\nin text_console_frontend.\"] # [repr (C)] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct winsome_update_t__bindgen_ty_1__bindgen_ty_3 { # [doc = \" Heap-allocated contents of visible screen rectangle.\\n Each array has width * height elements.\"] pub text : * mut :: std :: os :: raw :: c_char , pub attrib : * mut text_console_attrib_t , # [doc = \" Heap-allocated contents of scrollback.\\n Each array has width * sb_size elements.\"] pub sb_text : * mut :: std :: os :: raw :: c_char , pub sb_attrib : * mut text_console_attrib_t , # [doc = \" Screen size.\"] pub width : :: std :: os :: raw :: c_int , pub height : :: std :: os :: raw :: c_int , # [doc = \" Number of scrollback lines.\"] pub sb_size : :: std :: os :: raw :: c_int , # [doc = \" New cursor position.\"] pub cursor_x : :: std :: os :: raw :: c_int , pub cursor_y : :: std :: os :: raw :: c_int , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of winsome_update_t__bindgen_ty_1__bindgen_ty_3\"] [:: std :: mem :: size_of :: < winsome_update_t__bindgen_ty_1__bindgen_ty_3 > () - 56usize] ; [\"Alignment of winsome_update_t__bindgen_ty_1__bindgen_ty_3\"] [:: std :: mem :: align_of :: < winsome_update_t__bindgen_ty_1__bindgen_ty_3 > () - 8usize] ; [\"Offset of field: winsome_update_t__bindgen_ty_1__bindgen_ty_3::text\"] [:: std :: mem :: offset_of ! (winsome_update_t__bindgen_ty_1__bindgen_ty_3 , text) - 0usize] ; [\"Offset of field: winsome_update_t__bindgen_ty_1__bindgen_ty_3::attrib\"] [:: std :: mem :: offset_of ! (winsome_update_t__bindgen_ty_1__bindgen_ty_3 , attrib) - 8usize] ; [\"Offset of field: winsome_update_t__bindgen_ty_1__bindgen_ty_3::sb_text\"] [:: std :: mem :: offset_of ! (winsome_update_t__bindgen_ty_1__bindgen_ty_3 , sb_text) - 16usize] ; [\"Offset of field: winsome_update_t__bindgen_ty_1__bindgen_ty_3::sb_attrib\"] [:: std :: mem :: offset_of ! (winsome_update_t__bindgen_ty_1__bindgen_ty_3 , sb_attrib) - 24usize] ; [\"Offset of field: winsome_update_t__bindgen_ty_1__bindgen_ty_3::width\"] [:: std :: mem :: offset_of ! (winsome_update_t__bindgen_ty_1__bindgen_ty_3 , width) - 32usize] ; [\"Offset of field: winsome_update_t__bindgen_ty_1__bindgen_ty_3::height\"] [:: std :: mem :: offset_of ! (winsome_update_t__bindgen_ty_1__bindgen_ty_3 , height) - 36usize] ; [\"Offset of field: winsome_update_t__bindgen_ty_1__bindgen_ty_3::sb_size\"] [:: std :: mem :: offset_of ! (winsome_update_t__bindgen_ty_1__bindgen_ty_3 , sb_size) - 40usize] ; [\"Offset of field: winsome_update_t__bindgen_ty_1__bindgen_ty_3::cursor_x\"] [:: std :: mem :: offset_of ! (winsome_update_t__bindgen_ty_1__bindgen_ty_3 , cursor_x) - 44usize] ; [\"Offset of field: winsome_update_t__bindgen_ty_1__bindgen_ty_3::cursor_y\"] [:: std :: mem :: offset_of ! (winsome_update_t__bindgen_ty_1__bindgen_ty_3 , cursor_y) - 48usize] ; } ; impl Default for winsome_update_t__bindgen_ty_1__bindgen_ty_3 { fn default () -> Self { let mut s = :: std :: mem :: MaybeUninit :: < Self > :: uninit () ; unsafe { :: std :: ptr :: write_bytes (s . as_mut_ptr () , 0 , 1) ; s . assume_init () } } } # [doc = \" Data for a message containing text console screen resize.\\nThis corresponds to calls to set_size\\nin text_console_frontend.\"] # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct winsome_update_t__bindgen_ty_1__bindgen_ty_4 { # [doc = \" New screen size.\"] pub width : :: std :: os :: raw :: c_int , pub height : :: std :: os :: raw :: c_int , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of winsome_update_t__bindgen_ty_1__bindgen_ty_4\"] [:: std :: mem :: size_of :: < winsome_update_t__bindgen_ty_1__bindgen_ty_4 > () - 8usize] ; [\"Alignment of winsome_update_t__bindgen_ty_1__bindgen_ty_4\"] [:: std :: mem :: align_of :: < winsome_update_t__bindgen_ty_1__bindgen_ty_4 > () - 4usize] ; [\"Offset of field: winsome_update_t__bindgen_ty_1__bindgen_ty_4::width\"] [:: std :: mem :: offset_of ! (winsome_update_t__bindgen_ty_1__bindgen_ty_4 , width) - 0usize] ; [\"Offset of field: winsome_update_t__bindgen_ty_1__bindgen_ty_4::height\"] [:: std :: mem :: offset_of ! (winsome_update_t__bindgen_ty_1__bindgen_ty_4 , height) - 4usize] ; } ; # [doc = \" Data for a message containing graphics console updates.\\nThis corresponds to calls to set_contents in\\ngfx_console_frontend, accumulated in the\\nobvious way: take the bounding box of the updated\\nrectangles.\"] # [repr (C)] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct winsome_update_t__bindgen_ty_1__bindgen_ty_5 { # [doc = \" New pixels for the dirty rectangle (owned).\"] pub data : * mut uint32 , # [doc = \" Dirty rectangle\"] pub left : :: std :: os :: raw :: c_int , pub right : :: std :: os :: raw :: c_int , pub top : :: std :: os :: raw :: c_int , pub bottom : :: std :: os :: raw :: c_int , # [doc = \" Current/new screen size\"] pub width : :: std :: os :: raw :: c_int , pub height : :: std :: os :: raw :: c_int , # [doc = \" Are we currently in VGA text mode?\"] pub text_mode : bool , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of winsome_update_t__bindgen_ty_1__bindgen_ty_5\"] [:: std :: mem :: size_of :: < winsome_update_t__bindgen_ty_1__bindgen_ty_5 > () - 40usize] ; [\"Alignment of winsome_update_t__bindgen_ty_1__bindgen_ty_5\"] [:: std :: mem :: align_of :: < winsome_update_t__bindgen_ty_1__bindgen_ty_5 > () - 8usize] ; [\"Offset of field: winsome_update_t__bindgen_ty_1__bindgen_ty_5::data\"] [:: std :: mem :: offset_of ! (winsome_update_t__bindgen_ty_1__bindgen_ty_5 , data) - 0usize] ; [\"Offset of field: winsome_update_t__bindgen_ty_1__bindgen_ty_5::left\"] [:: std :: mem :: offset_of ! (winsome_update_t__bindgen_ty_1__bindgen_ty_5 , left) - 8usize] ; [\"Offset of field: winsome_update_t__bindgen_ty_1__bindgen_ty_5::right\"] [:: std :: mem :: offset_of ! (winsome_update_t__bindgen_ty_1__bindgen_ty_5 , right) - 12usize] ; [\"Offset of field: winsome_update_t__bindgen_ty_1__bindgen_ty_5::top\"] [:: std :: mem :: offset_of ! (winsome_update_t__bindgen_ty_1__bindgen_ty_5 , top) - 16usize] ; [\"Offset of field: winsome_update_t__bindgen_ty_1__bindgen_ty_5::bottom\"] [:: std :: mem :: offset_of ! (winsome_update_t__bindgen_ty_1__bindgen_ty_5 , bottom) - 20usize] ; [\"Offset of field: winsome_update_t__bindgen_ty_1__bindgen_ty_5::width\"] [:: std :: mem :: offset_of ! (winsome_update_t__bindgen_ty_1__bindgen_ty_5 , width) - 24usize] ; [\"Offset of field: winsome_update_t__bindgen_ty_1__bindgen_ty_5::height\"] [:: std :: mem :: offset_of ! (winsome_update_t__bindgen_ty_1__bindgen_ty_5 , height) - 28usize] ; [\"Offset of field: winsome_update_t__bindgen_ty_1__bindgen_ty_5::text_mode\"] [:: std :: mem :: offset_of ! (winsome_update_t__bindgen_ty_1__bindgen_ty_5 , text_mode) - 32usize] ; } ; impl Default for winsome_update_t__bindgen_ty_1__bindgen_ty_5 { fn default () -> Self { let mut s = :: std :: mem :: MaybeUninit :: < Self > :: uninit () ; unsafe { :: std :: ptr :: write_bytes (s . as_mut_ptr () , 0 , 1) ; s . assume_init () } } } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of winsome_update_t__bindgen_ty_1\"] [:: std :: mem :: size_of :: < winsome_update_t__bindgen_ty_1 > () - 56usize] ; [\"Alignment of winsome_update_t__bindgen_ty_1\"] [:: std :: mem :: align_of :: < winsome_update_t__bindgen_ty_1 > () - 8usize] ; [\"Offset of field: winsome_update_t__bindgen_ty_1::text\"] [:: std :: mem :: offset_of ! (winsome_update_t__bindgen_ty_1 , text) - 0usize] ; [\"Offset of field: winsome_update_t__bindgen_ty_1::sb\"] [:: std :: mem :: offset_of ! (winsome_update_t__bindgen_ty_1 , sb) - 0usize] ; [\"Offset of field: winsome_update_t__bindgen_ty_1::refresh\"] [:: std :: mem :: offset_of ! (winsome_update_t__bindgen_ty_1 , refresh) - 0usize] ; [\"Offset of field: winsome_update_t__bindgen_ty_1::resize\"] [:: std :: mem :: offset_of ! (winsome_update_t__bindgen_ty_1 , resize) - 0usize] ; [\"Offset of field: winsome_update_t__bindgen_ty_1::gfx\"] [:: std :: mem :: offset_of ! (winsome_update_t__bindgen_ty_1 , gfx) - 0usize] ; } ; impl Default for winsome_update_t__bindgen_ty_1 { fn default () -> Self { let mut s = :: std :: mem :: MaybeUninit :: < Self > :: uninit () ; unsafe { :: std :: ptr :: write_bytes (s . as_mut_ptr () , 0 , 1) ; s . assume_init () } } } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of winsome_update_t\"] [:: std :: mem :: size_of :: < winsome_update_t > () - 64usize] ; [\"Alignment of winsome_update_t\"] [:: std :: mem :: align_of :: < winsome_update_t > () - 8usize] ; [\"Offset of field: winsome_update_t::type_\"] [:: std :: mem :: offset_of ! (winsome_update_t , type_) - 0usize] ; [\"Offset of field: winsome_update_t::u\"] [:: std :: mem :: offset_of ! (winsome_update_t , u) - 8usize] ; } ; impl Default for winsome_update_t { fn default () -> Self { let mut s = :: std :: mem :: MaybeUninit :: < Self > :: uninit () ; unsafe { :: std :: ptr :: write_bytes (s . as_mut_ptr () , 0 , 1) ; s . assume_init () } } } pub type winsome_console_interface_t = winsome_console_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct winsome_console_interface { pub gfx : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , console : * mut lang_void , left : :: std :: os :: raw :: c_int , right : :: std :: os :: raw :: c_int , top : :: std :: os :: raw :: c_int , bottom : :: std :: os :: raw :: c_int , data : bytes_t , text_mode : bool) > , pub resize : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , console : * mut lang_void , width : :: std :: os :: raw :: c_int , height : :: std :: os :: raw :: c_int) > , pub refresh : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , console : * mut lang_void , text : bytes_t , attrib : bytes_t , sb_text : bytes_t , sb_attrib : bytes_t , sb_size : :: std :: os :: raw :: c_int , cursor_x : :: std :: os :: raw :: c_int , cursor_y : :: std :: os :: raw :: c_int) > , pub append : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , console : * mut lang_void , num_lines : uint64 , text : bytes_t , attrib : bytes_t , cursor_x : :: std :: os :: raw :: c_int , cursor_y : :: std :: os :: raw :: c_int) > , pub text : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , console : * mut lang_void , left : :: std :: os :: raw :: c_int , right : :: std :: os :: raw :: c_int , top : :: std :: os :: raw :: c_int , bottom : :: std :: os :: raw :: c_int , text : bytes_t , attrib : bytes_t , cursor_x : :: std :: os :: raw :: c_int , cursor_y : :: std :: os :: raw :: c_int) > , pub activity : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , console : * mut lang_void) > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of winsome_console_interface\"] [:: std :: mem :: size_of :: < winsome_console_interface > () - 48usize] ; [\"Alignment of winsome_console_interface\"] [:: std :: mem :: align_of :: < winsome_console_interface > () - 8usize] ; [\"Offset of field: winsome_console_interface::gfx\"] [:: std :: mem :: offset_of ! (winsome_console_interface , gfx) - 0usize] ; [\"Offset of field: winsome_console_interface::resize\"] [:: std :: mem :: offset_of ! (winsome_console_interface , resize) - 8usize] ; [\"Offset of field: winsome_console_interface::refresh\"] [:: std :: mem :: offset_of ! (winsome_console_interface , refresh) - 16usize] ; [\"Offset of field: winsome_console_interface::append\"] [:: std :: mem :: offset_of ! (winsome_console_interface , append) - 24usize] ; [\"Offset of field: winsome_console_interface::text\"] [:: std :: mem :: offset_of ! (winsome_console_interface , text) - 32usize] ; [\"Offset of field: winsome_console_interface::activity\"] [:: std :: mem :: offset_of ! (winsome_console_interface , activity) - 40usize] ; } ; pub type gui_console_backend_interface_t = gui_console_backend_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct gui_console_backend_interface { pub start : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , console : * mut lang_void) > , pub stop : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t) > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of gui_console_backend_interface\"] [:: std :: mem :: size_of :: < gui_console_backend_interface > () - 16usize] ; [\"Alignment of gui_console_backend_interface\"] [:: std :: mem :: align_of :: < gui_console_backend_interface > () - 8usize] ; [\"Offset of field: gui_console_backend_interface::start\"] [:: std :: mem :: offset_of ! (gui_console_backend_interface , start) - 0usize] ; [\"Offset of field: gui_console_backend_interface::stop\"] [:: std :: mem :: offset_of ! (gui_console_backend_interface , stop) - 8usize] ; } ; extern \"C\" { pub fn VT_get_hide_consoles_flag () -> :: std :: os :: raw :: c_int ; } pub type register_breakpoint_interface_t = register_breakpoint_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct register_breakpoint_interface { pub add_breakpoint : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , reg_name : * const :: std :: os :: raw :: c_char , value : uint64 , mask : uint64 , break_upon_change : bool) -> :: std :: os :: raw :: c_int > , pub remove_breakpoint : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , id : :: std :: os :: raw :: c_int) -> bool > , pub get_breakpoints : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t) -> attr_value_t > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of register_breakpoint_interface\"] [:: std :: mem :: size_of :: < register_breakpoint_interface > () - 24usize] ; [\"Alignment of register_breakpoint_interface\"] [:: std :: mem :: align_of :: < register_breakpoint_interface > () - 8usize] ; [\"Offset of field: register_breakpoint_interface::add_breakpoint\"] [:: std :: mem :: offset_of ! (register_breakpoint_interface , add_breakpoint) - 0usize] ; [\"Offset of field: register_breakpoint_interface::remove_breakpoint\"] [:: std :: mem :: offset_of ! (register_breakpoint_interface , remove_breakpoint) - 8usize] ; [\"Offset of field: register_breakpoint_interface::get_breakpoints\"] [:: std :: mem :: offset_of ! (register_breakpoint_interface , get_breakpoints) - 16usize] ; } ; # [doc = \" <add-type id=\\\"disasm_instr_t\\\"> </add-type>\"] # [repr (C)] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct disasm_instr_t { # [doc = \" Where the instructions starts in the buffer\"] pub start : :: std :: os :: raw :: c_int , # [doc = \" Length of instruction, or -1 if incomplete\"] pub length : :: std :: os :: raw :: c_int , # [doc = \" Disassembly string (allocated)\"] pub string : * mut :: std :: os :: raw :: c_char , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of disasm_instr_t\"] [:: std :: mem :: size_of :: < disasm_instr_t > () - 16usize] ; [\"Alignment of disasm_instr_t\"] [:: std :: mem :: align_of :: < disasm_instr_t > () - 8usize] ; [\"Offset of field: disasm_instr_t::start\"] [:: std :: mem :: offset_of ! (disasm_instr_t , start) - 0usize] ; [\"Offset of field: disasm_instr_t::length\"] [:: std :: mem :: offset_of ! (disasm_instr_t , length) - 4usize] ; [\"Offset of field: disasm_instr_t::string\"] [:: std :: mem :: offset_of ! (disasm_instr_t , string) - 8usize] ; } ; impl Default for disasm_instr_t { fn default () -> Self { let mut s = :: std :: mem :: MaybeUninit :: < Self > :: uninit () ; unsafe { :: std :: ptr :: write_bytes (s . as_mut_ptr () , 0 , 1) ; s . assume_init () } } } pub type disassemble_interface_t = disassemble_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct disassemble_interface { # [doc = \" Set up new block to disassemble\"] pub init : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , buff : * mut uint8 , buff_len : :: std :: os :: raw :: c_int , address : uint64) > , # [doc = \" Disassemble the next instruction\"] pub next : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t) -> disasm_instr_t > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of disassemble_interface\"] [:: std :: mem :: size_of :: < disassemble_interface > () - 16usize] ; [\"Alignment of disassemble_interface\"] [:: std :: mem :: align_of :: < disassemble_interface > () - 8usize] ; [\"Offset of field: disassemble_interface::init\"] [:: std :: mem :: offset_of ! (disassemble_interface , init) - 0usize] ; [\"Offset of field: disassemble_interface::next\"] [:: std :: mem :: offset_of ! (disassemble_interface , next) - 8usize] ; } ; pub type instrumentation_tool_interface_t = instrumentation_tool_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct instrumentation_tool_interface { pub connect : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , provider : * mut conf_object_t , args : attr_value_t) -> * mut conf_object_t > , pub disconnect : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , conn_obj : * mut conf_object_t) > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of instrumentation_tool_interface\"] [:: std :: mem :: size_of :: < instrumentation_tool_interface > () - 16usize] ; [\"Alignment of instrumentation_tool_interface\"] [:: std :: mem :: align_of :: < instrumentation_tool_interface > () - 8usize] ; [\"Offset of field: instrumentation_tool_interface::connect\"] [:: std :: mem :: offset_of ! (instrumentation_tool_interface , connect) - 0usize] ; [\"Offset of field: instrumentation_tool_interface::disconnect\"] [:: std :: mem :: offset_of ! (instrumentation_tool_interface , disconnect) - 8usize] ; } ; pub type instrumentation_connection_interface_t = instrumentation_connection_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct instrumentation_connection_interface { pub enable : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t) > , pub disable : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t) > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of instrumentation_connection_interface\"] [:: std :: mem :: size_of :: < instrumentation_connection_interface > () - 16usize] ; [\"Alignment of instrumentation_connection_interface\"] [:: std :: mem :: align_of :: < instrumentation_connection_interface > () - 8usize] ; [\"Offset of field: instrumentation_connection_interface::enable\"] [:: std :: mem :: offset_of ! (instrumentation_connection_interface , enable) - 0usize] ; [\"Offset of field: instrumentation_connection_interface::disable\"] [:: std :: mem :: offset_of ! (instrumentation_connection_interface , disable) - 8usize] ; } ; # [repr (u32)] # [doc = \" <add-type id=\\\"arm_mem_instr_origin_t def\\\"></add-type>\"] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub enum arm_mem_instr_origin_t { # [doc = \" Normal load or store instructions\"] Instr_Normal_Arm = 0 , # [doc = \" Unprivileged memory access instructions.\"] Instr_Unprivileged_Load = 1 , # [doc = \" Unprivileged memory access instructions.\"] Instr_Unprivileged_Store = 2 , # [doc = \" Other loads/stores or cache affecting instructions\"] Instr_ldrex = 3 , # [doc = \" Other loads/stores or cache affecting instructions\"] Instr_strex = 4 , # [doc = \" Other loads/stores or cache affecting instructions\"] Instr_ldxp = 5 , # [doc = \" Other loads/stores or cache affecting instructions\"] Instr_stxp = 6 , # [doc = \" Address translation instruction\"] Instr_At = 7 , # [doc = \" Atomic read-modify-write instructions\"] Instr_Atomic = 8 , # [doc = \" Cache maintenance instructions\"] Instr_Cache_Maintenance = 9 , # [doc = \" Number of different of enum values, not a value in itself.\"] Instr_Count = 10 , } # [doc = \" <add id=\\\"arm_memory_transaction_t DOC\\\">\\n<ndx>arm_memory_transaction_t</ndx>\\n<name index=\\\"true\\\">arm_memory_transaction_t</name>\\n<doc>\\n<doc-item name=\\\"NAME\\\">arm_memory_transaction_t</doc-item>\\n<doc-item name=\\\"SYNOPSIS\\\"><insert id=\\\"arm_memory_transaction_t def\\\"/>\\n</doc-item>\\n<doc-item name=\\\"DESCRIPTION\\\">\\n\\nThis is the ARM specific memory transaction data structure.\\nThe generic data is stored in the <var>s</var> field.\\n\\nThe <var>mode</var> field specifies the processor mode the MMU should assume\\nwhen processing the transaction. This is the same as the current mode of the\\nprocessor except for unprivileged load and store instructions when it is\\nalways <const>Sim_CPU_Mode_User</const>.\\n\\nThe <var>rotate</var> field is non-zero if this transaction is from one of\\nthe AArch32 instructions for which an unaligned address is interpreted as an\\naligned load with the value rotated so that the addressed byte becomes the\\nleast significant byte if neither <reg>SCTLR.U</reg> nor <reg>SCTLR.A</reg>\\nis set.\\n\\nThe <var>instr_origin</var> field specifies the type of instruction that\\ninitiated this memory transaction.\\n\\n</doc-item>\\n</doc>\\n</add>\\n\\n<add-type id=\\\"arm_memory_transaction_t def\\\"></add-type>\"] # [repr (C)] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct arm_memory_transaction { pub s : generic_transaction_t , pub mode : processor_mode_t , pub rotate : :: std :: os :: raw :: c_int , pub instr_origin : arm_mem_instr_origin_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of arm_memory_transaction\"] [:: std :: mem :: size_of :: < arm_memory_transaction > () - 120usize] ; [\"Alignment of arm_memory_transaction\"] [:: std :: mem :: align_of :: < arm_memory_transaction > () - 8usize] ; [\"Offset of field: arm_memory_transaction::s\"] [:: std :: mem :: offset_of ! (arm_memory_transaction , s) - 0usize] ; [\"Offset of field: arm_memory_transaction::mode\"] [:: std :: mem :: offset_of ! (arm_memory_transaction , mode) - 104usize] ; [\"Offset of field: arm_memory_transaction::rotate\"] [:: std :: mem :: offset_of ! (arm_memory_transaction , rotate) - 108usize] ; [\"Offset of field: arm_memory_transaction::instr_origin\"] [:: std :: mem :: offset_of ! (arm_memory_transaction , instr_origin) - 112usize] ; } ; impl Default for arm_memory_transaction { fn default () -> Self { let mut s = :: std :: mem :: MaybeUninit :: < Self > :: uninit () ; unsafe { :: std :: ptr :: write_bytes (s . as_mut_ptr () , 0 , 1) ; s . assume_init () } } } # [doc = \" <add id=\\\"arm_memory_transaction_t DOC\\\">\\n<ndx>arm_memory_transaction_t</ndx>\\n<name index=\\\"true\\\">arm_memory_transaction_t</name>\\n<doc>\\n<doc-item name=\\\"NAME\\\">arm_memory_transaction_t</doc-item>\\n<doc-item name=\\\"SYNOPSIS\\\"><insert id=\\\"arm_memory_transaction_t def\\\"/>\\n</doc-item>\\n<doc-item name=\\\"DESCRIPTION\\\">\\n\\nThis is the ARM specific memory transaction data structure.\\nThe generic data is stored in the <var>s</var> field.\\n\\nThe <var>mode</var> field specifies the processor mode the MMU should assume\\nwhen processing the transaction. This is the same as the current mode of the\\nprocessor except for unprivileged load and store instructions when it is\\nalways <const>Sim_CPU_Mode_User</const>.\\n\\nThe <var>rotate</var> field is non-zero if this transaction is from one of\\nthe AArch32 instructions for which an unaligned address is interpreted as an\\naligned load with the value rotated so that the addressed byte becomes the\\nleast significant byte if neither <reg>SCTLR.U</reg> nor <reg>SCTLR.A</reg>\\nis set.\\n\\nThe <var>instr_origin</var> field specifies the type of instruction that\\ninitiated this memory transaction.\\n\\n</doc-item>\\n</doc>\\n</add>\\n\\n<add-type id=\\\"arm_memory_transaction_t def\\\"></add-type>\"] pub type arm_memory_transaction_t = arm_memory_transaction ; extern \"C\" { pub fn SIM_arm_mem_trans_from_generic (mop : * mut generic_transaction_t) -> * mut arm_memory_transaction_t ; } pub type arm_interface_t = arm_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct arm_interface { pub read_register_mode : :: std :: option :: Option < unsafe extern \"C\" fn (processor_obj : * mut conf_object_t , reg_num : :: std :: os :: raw :: c_int , mode : :: std :: os :: raw :: c_int) -> uint64 > , pub write_register_mode : :: std :: option :: Option < unsafe extern \"C\" fn (processor_obj : * mut conf_object_t , reg_num : :: std :: os :: raw :: c_int , mode : :: std :: os :: raw :: c_int , value : uint64) > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of arm_interface\"] [:: std :: mem :: size_of :: < arm_interface > () - 16usize] ; [\"Alignment of arm_interface\"] [:: std :: mem :: align_of :: < arm_interface > () - 8usize] ; [\"Offset of field: arm_interface::read_register_mode\"] [:: std :: mem :: offset_of ! (arm_interface , read_register_mode) - 0usize] ; [\"Offset of field: arm_interface::write_register_mode\"] [:: std :: mem :: offset_of ! (arm_interface , write_register_mode) - 8usize] ; } ; pub type arm_coprocessor_interface_t = arm_coprocessor_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct arm_coprocessor_interface { pub process_data : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , CRd : uint32 , opcode_1 : uint32 , CRn : uint32 , CRm : uint32 , opcode_2 : uint32 , type_ : :: std :: os :: raw :: c_int) > , pub load_coprocessor : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , CRd : uint32 , N : uint32 , Options : uint32 , value : uint32 , type_ : :: std :: os :: raw :: c_int) > , pub read_register : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , opcode_1 : uint32 , CRn : uint32 , CRm : uint32 , opcode_2 : uint32 , type_ : :: std :: os :: raw :: c_int) -> uint32 > , pub write_register : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , value : uint32 , opcode_1 : uint32 , CRn : uint32 , CRm : uint32 , opcode_2 : uint32 , type_ : :: std :: os :: raw :: c_int) > , pub read_register_64_bit : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , opcode_1 : uint32 , CRm : uint32 , type_ : :: std :: os :: raw :: c_int) -> uint64 > , pub write_register_64_bit : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , value : uint64 , opcode_1 : uint32 , CRm : uint32 , type_ : :: std :: os :: raw :: c_int) > , pub store_coprocessor : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , CRd : uint32 , N : uint32 , Options : uint32 , type_ : :: std :: os :: raw :: c_int) -> uint32 > , pub reset : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , hard_reset : :: std :: os :: raw :: c_int) > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of arm_coprocessor_interface\"] [:: std :: mem :: size_of :: < arm_coprocessor_interface > () - 64usize] ; [\"Alignment of arm_coprocessor_interface\"] [:: std :: mem :: align_of :: < arm_coprocessor_interface > () - 8usize] ; [\"Offset of field: arm_coprocessor_interface::process_data\"] [:: std :: mem :: offset_of ! (arm_coprocessor_interface , process_data) - 0usize] ; [\"Offset of field: arm_coprocessor_interface::load_coprocessor\"] [:: std :: mem :: offset_of ! (arm_coprocessor_interface , load_coprocessor) - 8usize] ; [\"Offset of field: arm_coprocessor_interface::read_register\"] [:: std :: mem :: offset_of ! (arm_coprocessor_interface , read_register) - 16usize] ; [\"Offset of field: arm_coprocessor_interface::write_register\"] [:: std :: mem :: offset_of ! (arm_coprocessor_interface , write_register) - 24usize] ; [\"Offset of field: arm_coprocessor_interface::read_register_64_bit\"] [:: std :: mem :: offset_of ! (arm_coprocessor_interface , read_register_64_bit) - 32usize] ; [\"Offset of field: arm_coprocessor_interface::write_register_64_bit\"] [:: std :: mem :: offset_of ! (arm_coprocessor_interface , write_register_64_bit) - 40usize] ; [\"Offset of field: arm_coprocessor_interface::store_coprocessor\"] [:: std :: mem :: offset_of ! (arm_coprocessor_interface , store_coprocessor) - 48usize] ; [\"Offset of field: arm_coprocessor_interface::reset\"] [:: std :: mem :: offset_of ! (arm_coprocessor_interface , reset) - 56usize] ; } ; # [doc = \" <add id=\\\"arm_avic_interface_t\\\">\\n\\nThe <iface>ARM AVIC</iface> interface makes it possible for an ARM\\nprocessor to get the interrupt vector address from an AVIC device\\nconnected to the processor core. Both processor and AVIC must\\nenable the AVIC interface to support this feature.\\n\\nThe processor calls <fun>get_interrupt_address</fun> function to\\nget the interrupt vector address. The AVIC returns an\\n<em>arm_avic_t</em> struct with a <i>valid</i> field and an\\n<i>address</i> field, the <i>address</i> field is only valid when\\nthe <i>valid</i> is not <tt>0</tt>.\\n\\n<insert-until text=\\\"// ADD INTERFACE arm_avic_interface\\\"/>\\n</add>\\n<add id=\\\"arm_avic_interface_exec_context\\\">\\nCell Context for all methods.\\n</add>\"] # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct arm_avic { pub valid : :: std :: os :: raw :: c_int , pub address : uint32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of arm_avic\"] [:: std :: mem :: size_of :: < arm_avic > () - 8usize] ; [\"Alignment of arm_avic\"] [:: std :: mem :: align_of :: < arm_avic > () - 4usize] ; [\"Offset of field: arm_avic::valid\"] [:: std :: mem :: offset_of ! (arm_avic , valid) - 0usize] ; [\"Offset of field: arm_avic::address\"] [:: std :: mem :: offset_of ! (arm_avic , address) - 4usize] ; } ; # [doc = \" <add id=\\\"arm_avic_interface_t\\\">\\n\\nThe <iface>ARM AVIC</iface> interface makes it possible for an ARM\\nprocessor to get the interrupt vector address from an AVIC device\\nconnected to the processor core. Both processor and AVIC must\\nenable the AVIC interface to support this feature.\\n\\nThe processor calls <fun>get_interrupt_address</fun> function to\\nget the interrupt vector address. The AVIC returns an\\n<em>arm_avic_t</em> struct with a <i>valid</i> field and an\\n<i>address</i> field, the <i>address</i> field is only valid when\\nthe <i>valid</i> is not <tt>0</tt>.\\n\\n<insert-until text=\\\"// ADD INTERFACE arm_avic_interface\\\"/>\\n</add>\\n<add id=\\\"arm_avic_interface_exec_context\\\">\\nCell Context for all methods.\\n</add>\"] pub type arm_avic_t = arm_avic ; pub type arm_avic_interface_t = arm_avic_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct arm_avic_interface { pub get_interrupt_address : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t) -> arm_avic_t > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of arm_avic_interface\"] [:: std :: mem :: size_of :: < arm_avic_interface > () - 8usize] ; [\"Alignment of arm_avic_interface\"] [:: std :: mem :: align_of :: < arm_avic_interface > () - 8usize] ; [\"Offset of field: arm_avic_interface::get_interrupt_address\"] [:: std :: mem :: offset_of ! (arm_avic_interface , get_interrupt_address) - 0usize] ; } ; # [repr (u32)] # [doc = \" <add id=\\\"arm_trustzone_interface_t\\\">\\n\\nThis interface is implemented by ARM processors that supports the arm ARM\\nTrustZone feature. The <fun>get_security_mode</fun> function returns the\\ncurrent state of the processor, whereas <fun>mem_op_security_mode</fun>\\nextracts the mode of a memory operation in progress.\\n\\nThe <fun>get_security_mode</fun> functions corresponds to the expression\\n<tt>(cpsr.mode != Monitor &amp;&amp; scr.ns) ? Arm_Trustzone_Non_Secure :\\nArm_Trustzone_Secure</tt>. The <fun>mem_op_security_mode</fun> function\\nalways returns <tt>Arm_Trustzone_Non_Secure</tt> when the processor is in\\nnon-secure mode, in secure mode it returns the <tt>ns</tt> bit in the\\nfirst-level page table entry for the actual area being accessed.\\n\\n<insert-until text=\\\"// END INTERFACE trustzone_arm\\\"/>\\n</add>\\n<add id=\\\"arm_trustzone_interface_exec_context\\\">\\nCell Context for all methods.\\n</add>\"] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub enum arm_trustzone_mode_t { Arm_Trustzone_Secure = 0 , Arm_Trustzone_Non_Secure = 1 , } pub type arm_trustzone_interface_t = arm_trustzone_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct arm_trustzone_interface { pub get_security_mode : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t) -> arm_trustzone_mode_t > , pub mem_op_security_mode : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , memop : * mut generic_transaction_t) -> arm_trustzone_mode_t > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of arm_trustzone_interface\"] [:: std :: mem :: size_of :: < arm_trustzone_interface > () - 16usize] ; [\"Alignment of arm_trustzone_interface\"] [:: std :: mem :: align_of :: < arm_trustzone_interface > () - 8usize] ; [\"Offset of field: arm_trustzone_interface::get_security_mode\"] [:: std :: mem :: offset_of ! (arm_trustzone_interface , get_security_mode) - 0usize] ; [\"Offset of field: arm_trustzone_interface::mem_op_security_mode\"] [:: std :: mem :: offset_of ! (arm_trustzone_interface , mem_op_security_mode) - 8usize] ; } ; pub type arm_external_debug_interface_t = arm_external_debug_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct arm_external_debug_interface { pub handle_semihosting : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t) > , pub read_reg : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , offset : :: std :: os :: raw :: c_int) -> uint64 > , pub write_reg : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , offset : :: std :: os :: raw :: c_int , v : uint64) > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of arm_external_debug_interface\"] [:: std :: mem :: size_of :: < arm_external_debug_interface > () - 24usize] ; [\"Alignment of arm_external_debug_interface\"] [:: std :: mem :: align_of :: < arm_external_debug_interface > () - 8usize] ; [\"Offset of field: arm_external_debug_interface::handle_semihosting\"] [:: std :: mem :: offset_of ! (arm_external_debug_interface , handle_semihosting) - 0usize] ; [\"Offset of field: arm_external_debug_interface::read_reg\"] [:: std :: mem :: offset_of ! (arm_external_debug_interface , read_reg) - 8usize] ; [\"Offset of field: arm_external_debug_interface::write_reg\"] [:: std :: mem :: offset_of ! (arm_external_debug_interface , write_reg) - 16usize] ; } ; # [doc = \" <add id=\\\"arm_gic_interface_t\\\"> This <iface>arm_gic</iface> interface is used\\naccessing registers in a device implementing the Generic Interrupt\\nController architecture..\\n\\nThe <fun>read_register</fun> function is called reading the registers in GIC\\ndevice.\\n\\nThe <fun>write_register</fun> function is called writing the registers in\\nGIC device.\\n\\nThe <fun>cpu_state_changed</fun> function is called to notify the GIC device\\nthat the cpu has changed state. This function is only called when the cpu\\nchanges state with an interrupt pending. </add>\\n\\n<add id=\\\"arm_gic_interface_exec_context\\\">\\nCell Context for all methods.\\n</add>\"] # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct arm_cpu_state { # [doc = \" scr_el3.irq\"] pub fmo_set : bool , pub imo_set : bool , # [doc = \" scr_el3.irq\"] pub irq_set : bool , # [doc = \" scr_el3.fiq\"] pub fiq_set : bool , pub ns : bool , pub el : :: std :: os :: raw :: c_int , pub mpidr : uint32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of arm_cpu_state\"] [:: std :: mem :: size_of :: < arm_cpu_state > () - 16usize] ; [\"Alignment of arm_cpu_state\"] [:: std :: mem :: align_of :: < arm_cpu_state > () - 4usize] ; [\"Offset of field: arm_cpu_state::fmo_set\"] [:: std :: mem :: offset_of ! (arm_cpu_state , fmo_set) - 0usize] ; [\"Offset of field: arm_cpu_state::imo_set\"] [:: std :: mem :: offset_of ! (arm_cpu_state , imo_set) - 1usize] ; [\"Offset of field: arm_cpu_state::irq_set\"] [:: std :: mem :: offset_of ! (arm_cpu_state , irq_set) - 2usize] ; [\"Offset of field: arm_cpu_state::fiq_set\"] [:: std :: mem :: offset_of ! (arm_cpu_state , fiq_set) - 3usize] ; [\"Offset of field: arm_cpu_state::ns\"] [:: std :: mem :: offset_of ! (arm_cpu_state , ns) - 4usize] ; [\"Offset of field: arm_cpu_state::el\"] [:: std :: mem :: offset_of ! (arm_cpu_state , el) - 8usize] ; [\"Offset of field: arm_cpu_state::mpidr\"] [:: std :: mem :: offset_of ! (arm_cpu_state , mpidr) - 12usize] ; } ; # [doc = \" <add id=\\\"arm_gic_interface_t\\\"> This <iface>arm_gic</iface> interface is used\\naccessing registers in a device implementing the Generic Interrupt\\nController architecture..\\n\\nThe <fun>read_register</fun> function is called reading the registers in GIC\\ndevice.\\n\\nThe <fun>write_register</fun> function is called writing the registers in\\nGIC device.\\n\\nThe <fun>cpu_state_changed</fun> function is called to notify the GIC device\\nthat the cpu has changed state. This function is only called when the cpu\\nchanges state with an interrupt pending. </add>\\n\\n<add id=\\\"arm_gic_interface_exec_context\\\">\\nCell Context for all methods.\\n</add>\"] pub type arm_cpu_state_t = arm_cpu_state ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct gic_reg_info { pub op1 : :: std :: os :: raw :: c_int , pub crn : :: std :: os :: raw :: c_int , pub crm : :: std :: os :: raw :: c_int , pub op2 : :: std :: os :: raw :: c_int , pub cpu_state : arm_cpu_state_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of gic_reg_info\"] [:: std :: mem :: size_of :: < gic_reg_info > () - 32usize] ; [\"Alignment of gic_reg_info\"] [:: std :: mem :: align_of :: < gic_reg_info > () - 4usize] ; [\"Offset of field: gic_reg_info::op1\"] [:: std :: mem :: offset_of ! (gic_reg_info , op1) - 0usize] ; [\"Offset of field: gic_reg_info::crn\"] [:: std :: mem :: offset_of ! (gic_reg_info , crn) - 4usize] ; [\"Offset of field: gic_reg_info::crm\"] [:: std :: mem :: offset_of ! (gic_reg_info , crm) - 8usize] ; [\"Offset of field: gic_reg_info::op2\"] [:: std :: mem :: offset_of ! (gic_reg_info , op2) - 12usize] ; [\"Offset of field: gic_reg_info::cpu_state\"] [:: std :: mem :: offset_of ! (gic_reg_info , cpu_state) - 16usize] ; } ; pub type gic_reg_info_t = gic_reg_info ; pub type arm_gic_interface_t = arm_gic_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct arm_gic_interface { pub read_register : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , reg_info : gic_reg_info_t , inquiry : bool) -> uint64 > , pub write_register : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , reg_info : gic_reg_info_t , value : uint64) > , pub cpu_state_changed : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , cpu_state : arm_cpu_state_t) > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of arm_gic_interface\"] [:: std :: mem :: size_of :: < arm_gic_interface > () - 24usize] ; [\"Alignment of arm_gic_interface\"] [:: std :: mem :: align_of :: < arm_gic_interface > () - 8usize] ; [\"Offset of field: arm_gic_interface::read_register\"] [:: std :: mem :: offset_of ! (arm_gic_interface , read_register) - 0usize] ; [\"Offset of field: arm_gic_interface::write_register\"] [:: std :: mem :: offset_of ! (arm_gic_interface , write_register) - 8usize] ; [\"Offset of field: arm_gic_interface::cpu_state_changed\"] [:: std :: mem :: offset_of ! (arm_gic_interface , cpu_state_changed) - 16usize] ; } ; pub type arm_gic_cpu_state_interface_t = arm_gic_cpu_state_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct arm_gic_cpu_state_interface { pub get_cpu_state : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t) -> arm_cpu_state_t > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of arm_gic_cpu_state_interface\"] [:: std :: mem :: size_of :: < arm_gic_cpu_state_interface > () - 8usize] ; [\"Alignment of arm_gic_cpu_state_interface\"] [:: std :: mem :: align_of :: < arm_gic_cpu_state_interface > () - 8usize] ; [\"Offset of field: arm_gic_cpu_state_interface::get_cpu_state\"] [:: std :: mem :: offset_of ! (arm_gic_cpu_state_interface , get_cpu_state) - 0usize] ; } ; # [repr (u32)] # [doc = \" <add-type id=\\\"arm_mem_type_t def\\\"></add-type>\"] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub enum arm_mem_type_t { Arm_MemType_Normal = 0 , Arm_MemType_Device = 1 , } # [repr (u32)] # [doc = \" <add-type id=\\\"arm_device_type_t def\\\"></add-type>\"] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub enum arm_device_type_t { Arm_DeviceType_nGnRnE = 0 , Arm_DeviceType_nGnRE = 1 , Arm_DeviceType_nGRE = 2 , Arm_DeviceType_GRE = 3 , Arm_DeviceType_Unknown = 4 , } # [repr (u32)] # [doc = \" <add-type id=\\\"arm_mem_attr_t def\\\"></add-type>\"] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub enum arm_mem_attr_t { # [doc = \" Non-cacheable\"] Arm_MemAttr_NC = 0 , # [doc = \" Write-through\"] Arm_MemAttr_WT = 2 , # [doc = \" Write-back\"] Arm_MemAttr_WB = 3 , Arm_MemAttr_Unknown = 4 , } # [repr (u32)] # [doc = \" <add-type id=\\\"arm_mem_hint_t def\\\"></add-type>\"] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub enum arm_mem_hint_t { # [doc = \" No Read-Allocate, No Write-Allocate\"] Arm_MemHint_No = 0 , # [doc = \" No Read-Allocate, Write-Allocate\"] Arm_MemHint_WA = 1 , # [doc = \" Read-Allocate, No Write-Allocate\"] Arm_MemHint_RA = 2 , # [doc = \" Read-Allocate, Write-Allocate\"] Arm_MemHint_RWA = 3 , Arm_MemHint_Unknown = 4 , } # [repr (u32)] # [doc = \" <add-type id=\\\"arm_mem_transient_t def\\\"></add-type>\"] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub enum arm_mem_transient_t { Arm_Transient_True = 0 , Arm_Transient_False = 1 , Arm_Transient_Unknown = 2 , } # [doc = \" <add-type id=\\\"arm_memory_attributes_encoding_t def\\\"></add-type>\"] # [repr (C)] # [derive (Copy , Clone)] pub union arm_memory_attributes_encoding_t { pub u : arm_memory_attributes_encoding_t__bindgen_ty_1 , pub u64_ : uint64 , } # [repr (C)] # [repr (align (8))] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct arm_memory_attributes_encoding_t__bindgen_ty_1 { pub _bitfield_align_1 : [u8 ; 0] , pub _bitfield_1 : __BindgenBitfieldUnit < [u8 ; 3usize] > , pub __bindgen_padding_0 : [u8 ; 5usize] , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of arm_memory_attributes_encoding_t__bindgen_ty_1\"] [:: std :: mem :: size_of :: < arm_memory_attributes_encoding_t__bindgen_ty_1 > () - 8usize] ; [\"Alignment of arm_memory_attributes_encoding_t__bindgen_ty_1\"] [:: std :: mem :: align_of :: < arm_memory_attributes_encoding_t__bindgen_ty_1 > () - 8usize] ; } ; impl arm_memory_attributes_encoding_t__bindgen_ty_1 { # [inline] pub fn memory_type (& self) -> uint64 { unsafe { :: std :: mem :: transmute (self . _bitfield_1 . get (0usize , 2u8) as u64) } } # [inline] pub fn set_memory_type (& mut self , val : uint64) { unsafe { let val : u64 = :: std :: mem :: transmute (val) ; self . _bitfield_1 . set (0usize , 2u8 , val as u64) } } # [inline] pub fn device_type (& self) -> uint64 { unsafe { :: std :: mem :: transmute (self . _bitfield_1 . get (2usize , 3u8) as u64) } } # [inline] pub fn set_device_type (& mut self , val : uint64) { unsafe { let val : u64 = :: std :: mem :: transmute (val) ; self . _bitfield_1 . set (2usize , 3u8 , val as u64) } } # [inline] pub fn inner_cacheability (& self) -> uint64 { unsafe { :: std :: mem :: transmute (self . _bitfield_1 . get (5usize , 3u8) as u64) } } # [inline] pub fn set_inner_cacheability (& mut self , val : uint64) { unsafe { let val : u64 = :: std :: mem :: transmute (val) ; self . _bitfield_1 . set (5usize , 3u8 , val as u64) } } # [inline] pub fn inner_allocation_hint (& self) -> uint64 { unsafe { :: std :: mem :: transmute (self . _bitfield_1 . get (8usize , 3u8) as u64) } } # [inline] pub fn set_inner_allocation_hint (& mut self , val : uint64) { unsafe { let val : u64 = :: std :: mem :: transmute (val) ; self . _bitfield_1 . set (8usize , 3u8 , val as u64) } } # [inline] pub fn inner_transcience_hint (& self) -> uint64 { unsafe { :: std :: mem :: transmute (self . _bitfield_1 . get (11usize , 2u8) as u64) } } # [inline] pub fn set_inner_transcience_hint (& mut self , val : uint64) { unsafe { let val : u64 = :: std :: mem :: transmute (val) ; self . _bitfield_1 . set (11usize , 2u8 , val as u64) } } # [inline] pub fn outer_cacheability (& self) -> uint64 { unsafe { :: std :: mem :: transmute (self . _bitfield_1 . get (13usize , 3u8) as u64) } } # [inline] pub fn set_outer_cacheability (& mut self , val : uint64) { unsafe { let val : u64 = :: std :: mem :: transmute (val) ; self . _bitfield_1 . set (13usize , 3u8 , val as u64) } } # [inline] pub fn outer_allocation_hint (& self) -> uint64 { unsafe { :: std :: mem :: transmute (self . _bitfield_1 . get (16usize , 3u8) as u64) } } # [inline] pub fn set_outer_allocation_hint (& mut self , val : uint64) { unsafe { let val : u64 = :: std :: mem :: transmute (val) ; self . _bitfield_1 . set (16usize , 3u8 , val as u64) } } # [inline] pub fn outer_transcience_hint (& self) -> uint64 { unsafe { :: std :: mem :: transmute (self . _bitfield_1 . get (19usize , 2u8) as u64) } } # [inline] pub fn set_outer_transcience_hint (& mut self , val : uint64) { unsafe { let val : u64 = :: std :: mem :: transmute (val) ; self . _bitfield_1 . set (19usize , 2u8 , val as u64) } } # [inline] pub fn shareable (& self) -> uint64 { unsafe { :: std :: mem :: transmute (self . _bitfield_1 . get (21usize , 1u8) as u64) } } # [inline] pub fn set_shareable (& mut self , val : uint64) { unsafe { let val : u64 = :: std :: mem :: transmute (val) ; self . _bitfield_1 . set (21usize , 1u8 , val as u64) } } # [inline] pub fn outer_shareable (& self) -> uint64 { unsafe { :: std :: mem :: transmute (self . _bitfield_1 . get (22usize , 1u8) as u64) } } # [inline] pub fn set_outer_shareable (& mut self , val : uint64) { unsafe { let val : u64 = :: std :: mem :: transmute (val) ; self . _bitfield_1 . set (22usize , 1u8 , val as u64) } } # [inline] pub fn new_bitfield_1 (memory_type : uint64 , device_type : uint64 , inner_cacheability : uint64 , inner_allocation_hint : uint64 , inner_transcience_hint : uint64 , outer_cacheability : uint64 , outer_allocation_hint : uint64 , outer_transcience_hint : uint64 , shareable : uint64 , outer_shareable : uint64) -> __BindgenBitfieldUnit < [u8 ; 3usize] > { let mut __bindgen_bitfield_unit : __BindgenBitfieldUnit < [u8 ; 3usize] > = Default :: default () ; __bindgen_bitfield_unit . set (0usize , 2u8 , { let memory_type : u64 = unsafe { :: std :: mem :: transmute (memory_type) } ; memory_type as u64 }) ; __bindgen_bitfield_unit . set (2usize , 3u8 , { let device_type : u64 = unsafe { :: std :: mem :: transmute (device_type) } ; device_type as u64 }) ; __bindgen_bitfield_unit . set (5usize , 3u8 , { let inner_cacheability : u64 = unsafe { :: std :: mem :: transmute (inner_cacheability) } ; inner_cacheability as u64 }) ; __bindgen_bitfield_unit . set (8usize , 3u8 , { let inner_allocation_hint : u64 = unsafe { :: std :: mem :: transmute (inner_allocation_hint) } ; inner_allocation_hint as u64 }) ; __bindgen_bitfield_unit . set (11usize , 2u8 , { let inner_transcience_hint : u64 = unsafe { :: std :: mem :: transmute (inner_transcience_hint) } ; inner_transcience_hint as u64 }) ; __bindgen_bitfield_unit . set (13usize , 3u8 , { let outer_cacheability : u64 = unsafe { :: std :: mem :: transmute (outer_cacheability) } ; outer_cacheability as u64 }) ; __bindgen_bitfield_unit . set (16usize , 3u8 , { let outer_allocation_hint : u64 = unsafe { :: std :: mem :: transmute (outer_allocation_hint) } ; outer_allocation_hint as u64 }) ; __bindgen_bitfield_unit . set (19usize , 2u8 , { let outer_transcience_hint : u64 = unsafe { :: std :: mem :: transmute (outer_transcience_hint) } ; outer_transcience_hint as u64 }) ; __bindgen_bitfield_unit . set (21usize , 1u8 , { let shareable : u64 = unsafe { :: std :: mem :: transmute (shareable) } ; shareable as u64 }) ; __bindgen_bitfield_unit . set (22usize , 1u8 , { let outer_shareable : u64 = unsafe { :: std :: mem :: transmute (outer_shareable) } ; outer_shareable as u64 }) ; __bindgen_bitfield_unit } } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of arm_memory_attributes_encoding_t\"] [:: std :: mem :: size_of :: < arm_memory_attributes_encoding_t > () - 8usize] ; [\"Alignment of arm_memory_attributes_encoding_t\"] [:: std :: mem :: align_of :: < arm_memory_attributes_encoding_t > () - 8usize] ; [\"Offset of field: arm_memory_attributes_encoding_t::u\"] [:: std :: mem :: offset_of ! (arm_memory_attributes_encoding_t , u) - 0usize] ; [\"Offset of field: arm_memory_attributes_encoding_t::u64_\"] [:: std :: mem :: offset_of ! (arm_memory_attributes_encoding_t , u64_) - 0usize] ; } ; impl Default for arm_memory_attributes_encoding_t { fn default () -> Self { let mut s = :: std :: mem :: MaybeUninit :: < Self > :: uninit () ; unsafe { :: std :: ptr :: write_bytes (s . as_mut_ptr () , 0 , 1) ; s . assume_init () } } } # [doc = \" <add-type id=\\\"arm_smmu_attributes_t def\\\"></add-type>\"] # [repr (C)] # [derive (Copy , Clone)] pub union arm_smmu_attributes_t { pub u : arm_smmu_attributes_t__bindgen_ty_1 , pub u64_ : uint64 , } # [repr (C)] # [repr (align (8))] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct arm_smmu_attributes_t__bindgen_ty_1 { pub _bitfield_align_1 : [u32 ; 0] , pub _bitfield_1 : __BindgenBitfieldUnit < [u8 ; 7usize] > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of arm_smmu_attributes_t__bindgen_ty_1\"] [:: std :: mem :: size_of :: < arm_smmu_attributes_t__bindgen_ty_1 > () - 8usize] ; [\"Alignment of arm_smmu_attributes_t__bindgen_ty_1\"] [:: std :: mem :: align_of :: < arm_smmu_attributes_t__bindgen_ty_1 > () - 8usize] ; } ; impl arm_smmu_attributes_t__bindgen_ty_1 { # [inline] pub fn sid (& self) -> uint64 { unsafe { :: std :: mem :: transmute (self . _bitfield_1 . get (0usize , 32u8) as u64) } } # [inline] pub fn set_sid (& mut self , val : uint64) { unsafe { let val : u64 = :: std :: mem :: transmute (val) ; self . _bitfield_1 . set (0usize , 32u8 , val as u64) } } # [inline] pub fn ssid (& self) -> uint64 { unsafe { :: std :: mem :: transmute (self . _bitfield_1 . get (32usize , 20u8) as u64) } } # [inline] pub fn set_ssid (& mut self , val : uint64) { unsafe { let val : u64 = :: std :: mem :: transmute (val) ; self . _bitfield_1 . set (32usize , 20u8 , val as u64) } } # [inline] pub fn secsid (& self) -> uint64 { unsafe { :: std :: mem :: transmute (self . _bitfield_1 . get (52usize , 1u8) as u64) } } # [inline] pub fn set_secsid (& mut self , val : uint64) { unsafe { let val : u64 = :: std :: mem :: transmute (val) ; self . _bitfield_1 . set (52usize , 1u8 , val as u64) } } # [inline] pub fn ssidv (& self) -> uint64 { unsafe { :: std :: mem :: transmute (self . _bitfield_1 . get (53usize , 1u8) as u64) } } # [inline] pub fn set_ssidv (& mut self , val : uint64) { unsafe { let val : u64 = :: std :: mem :: transmute (val) ; self . _bitfield_1 . set (53usize , 1u8 , val as u64) } } # [inline] pub fn atst (& self) -> uint64 { unsafe { :: std :: mem :: transmute (self . _bitfield_1 . get (54usize , 1u8) as u64) } } # [inline] pub fn set_atst (& mut self , val : uint64) { unsafe { let val : u64 = :: std :: mem :: transmute (val) ; self . _bitfield_1 . set (54usize , 1u8 , val as u64) } } # [inline] pub fn new_bitfield_1 (sid : uint64 , ssid : uint64 , secsid : uint64 , ssidv : uint64 , atst : uint64) -> __BindgenBitfieldUnit < [u8 ; 7usize] > { let mut __bindgen_bitfield_unit : __BindgenBitfieldUnit < [u8 ; 7usize] > = Default :: default () ; __bindgen_bitfield_unit . set (0usize , 32u8 , { let sid : u64 = unsafe { :: std :: mem :: transmute (sid) } ; sid as u64 }) ; __bindgen_bitfield_unit . set (32usize , 20u8 , { let ssid : u64 = unsafe { :: std :: mem :: transmute (ssid) } ; ssid as u64 }) ; __bindgen_bitfield_unit . set (52usize , 1u8 , { let secsid : u64 = unsafe { :: std :: mem :: transmute (secsid) } ; secsid as u64 }) ; __bindgen_bitfield_unit . set (53usize , 1u8 , { let ssidv : u64 = unsafe { :: std :: mem :: transmute (ssidv) } ; ssidv as u64 }) ; __bindgen_bitfield_unit . set (54usize , 1u8 , { let atst : u64 = unsafe { :: std :: mem :: transmute (atst) } ; atst as u64 }) ; __bindgen_bitfield_unit } } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of arm_smmu_attributes_t\"] [:: std :: mem :: size_of :: < arm_smmu_attributes_t > () - 8usize] ; [\"Alignment of arm_smmu_attributes_t\"] [:: std :: mem :: align_of :: < arm_smmu_attributes_t > () - 8usize] ; [\"Offset of field: arm_smmu_attributes_t::u\"] [:: std :: mem :: offset_of ! (arm_smmu_attributes_t , u) - 0usize] ; [\"Offset of field: arm_smmu_attributes_t::u64_\"] [:: std :: mem :: offset_of ! (arm_smmu_attributes_t , u64_) - 0usize] ; } ; impl Default for arm_smmu_attributes_t { fn default () -> Self { let mut s = :: std :: mem :: MaybeUninit :: < Self > :: uninit () ; unsafe { :: std :: ptr :: write_bytes (s . as_mut_ptr () , 0 , 1) ; s . assume_init () } } } pub type arm_cpu_group_exclusive_interface_t = arm_cpu_group_exclusive_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct arm_cpu_group_exclusive_interface { pub mark_exclusive : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , address : physical_address_t , size : physical_address_t) > , pub clear_and_probe_exclusive : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , clear_address : physical_address_t , clear_size : physical_address_t , probe_address : physical_address_t , probe_size : physical_address_t) -> bool > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of arm_cpu_group_exclusive_interface\"] [:: std :: mem :: size_of :: < arm_cpu_group_exclusive_interface > () - 16usize] ; [\"Alignment of arm_cpu_group_exclusive_interface\"] [:: std :: mem :: align_of :: < arm_cpu_group_exclusive_interface > () - 8usize] ; [\"Offset of field: arm_cpu_group_exclusive_interface::mark_exclusive\"] [:: std :: mem :: offset_of ! (arm_cpu_group_exclusive_interface , mark_exclusive) - 0usize] ; [\"Offset of field: arm_cpu_group_exclusive_interface::clear_and_probe_exclusive\"] [:: std :: mem :: offset_of ! (arm_cpu_group_exclusive_interface , clear_and_probe_exclusive) - 8usize] ; } ; pub type arm_cpu_group_event_interface_t = arm_cpu_group_event_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct arm_cpu_group_event_interface { pub signal_event : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t) > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of arm_cpu_group_event_interface\"] [:: std :: mem :: size_of :: < arm_cpu_group_event_interface > () - 8usize] ; [\"Alignment of arm_cpu_group_event_interface\"] [:: std :: mem :: align_of :: < arm_cpu_group_event_interface > () - 8usize] ; [\"Offset of field: arm_cpu_group_event_interface::signal_event\"] [:: std :: mem :: offset_of ! (arm_cpu_group_event_interface , signal_event) - 0usize] ; } ; # [repr (u32)] # [doc = \" <add-type id=\\\"arm_translation_regime_t def\\\"></add-type>\"] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub enum arm_translation_regime_t { # [doc = \" EL3\"] Arm_TR_EL3 = 0 , # [doc = \" EL2   PL2\"] Arm_TR_EL2 = 1 , # [doc = \" EL2&0\"] Arm_TR_EL20 = 2 , # [doc = \" EL1&0 PL1&0\"] Arm_TR_EL10 = 3 , } pub type arm_cpu_group_tlb_interface_t = arm_cpu_group_tlb_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct arm_cpu_group_tlb_interface { pub invalidate_tlb : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , translation_regime : arm_translation_regime_t , by_virtual_address : bool , virtual_address : logical_address_t) > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of arm_cpu_group_tlb_interface\"] [:: std :: mem :: size_of :: < arm_cpu_group_tlb_interface > () - 8usize] ; [\"Alignment of arm_cpu_group_tlb_interface\"] [:: std :: mem :: align_of :: < arm_cpu_group_tlb_interface > () - 8usize] ; [\"Offset of field: arm_cpu_group_tlb_interface::invalidate_tlb\"] [:: std :: mem :: offset_of ! (arm_cpu_group_tlb_interface , invalidate_tlb) - 0usize] ; } ; # [repr (u32)] # [doc = \" <add-type id=\\\"x86_access_type_t\\\">\\nSee online help for expanded output of this type:\\napi-help x86_access_type_t\\n</add-type>\"] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub enum x86_access_type { X86_Other = 0 , X86_Vanilla = 1 , X86_Instruction = 2 , X86_Clflush = 3 , X86_Fpu_Env = 4 , X86_Fpu_State = 5 , X86_Idt = 6 , X86_Gdt = 7 , X86_Ldt = 8 , X86_Task_Segment = 9 , X86_Task_Switch = 10 , X86_Far_Call_Parameter = 11 , X86_Stack = 12 , X86_Pml4 = 13 , X86_Pdp = 14 , X86_Pd = 15 , X86_Pt = 16 , X86_Sse = 17 , X86_Fpu = 18 , X86_Access_Simple = 19 , X86_Microcode_Update = 20 , X86_Non_Temporal = 21 , X86_Prefetch_3DNow = 22 , X86_Prefetchw_3DNow = 23 , X86_Prefetch_T0 = 24 , X86_Prefetch_T1 = 25 , X86_Prefetch_T2 = 26 , X86_Prefetch_NTA = 27 , X86_Loadall = 28 , X86_Atomic_Info = 29 , X86_Cmpxchg16b = 30 , X86_Smm_State = 31 , X86_Vmcs = 32 , X86_Vmx_IO_Bitmap = 33 , X86_Vmx_Vapic = 34 , X86_Vmx_Msr = 35 , X86_Vmx_Msr_Bitmaps = 36 , X86_Pml4e = 37 , X86_Pdpte = 38 , X86_Pde = 39 , X86_Pte = 40 , X86_Invept_Descriptor = 41 , X86_Shadow_Stack = 42 , X86_Invvpid_Descriptor = 43 , X86_Processor_Trace = 44 , X86_Pml5 = 45 , X86_Pml5e = 46 , X86_Pdp_Pae = 47 , X86_Vmx_EPTP_List = 48 , X86_Vmx_VE_Info = 49 , X86_Sppt = 50 , X86_Pml_Log = 51 , X86_Pebs = 52 , X86_Vmx_Pasid_Translation = 53 , X86_Stack_Explicit = 54 , X86_Mtt_Metadata = 55 , X86_Prefetch_Other = 56 , X86_Access_Type_Last = 57 , } # [doc = \" <add-type id=\\\"x86_access_type_t\\\">\\nSee online help for expanded output of this type:\\napi-help x86_access_type_t\\n</add-type>\"] pub use self :: x86_access_type as x86_access_type_t ; pub type x86_access_type_interface_t = x86_access_type_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct x86_access_type_interface { pub get_enum_name : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , at : x86_access_type_t) -> * const :: std :: os :: raw :: c_char > , pub get_short_name : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , at : x86_access_type_t) -> * const :: std :: os :: raw :: c_char > , pub get_description : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , at : x86_access_type_t) -> * const :: std :: os :: raw :: c_char > , pub implicit : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , at : x86_access_type_t) -> bool > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of x86_access_type_interface\"] [:: std :: mem :: size_of :: < x86_access_type_interface > () - 32usize] ; [\"Alignment of x86_access_type_interface\"] [:: std :: mem :: align_of :: < x86_access_type_interface > () - 8usize] ; [\"Offset of field: x86_access_type_interface::get_enum_name\"] [:: std :: mem :: offset_of ! (x86_access_type_interface , get_enum_name) - 0usize] ; [\"Offset of field: x86_access_type_interface::get_short_name\"] [:: std :: mem :: offset_of ! (x86_access_type_interface , get_short_name) - 8usize] ; [\"Offset of field: x86_access_type_interface::get_description\"] [:: std :: mem :: offset_of ! (x86_access_type_interface , get_description) - 16usize] ; [\"Offset of field: x86_access_type_interface::implicit\"] [:: std :: mem :: offset_of ! (x86_access_type_interface , implicit) - 24usize] ; } ; # [repr (u32)] # [doc = \" <add-type id=\\\"x86_memory_type_t\\\"> </add-type>\"] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub enum x86_memory_type_t { X86_None = 0 , # [doc = \" UC\"] X86_Strong_Uncacheable = 1 , # [doc = \" UC-\"] X86_Uncacheable = 2 , # [doc = \" WC\"] X86_Write_Combining = 3 , # [doc = \" WT\"] X86_Write_Through = 4 , # [doc = \" WB\"] X86_Write_Back = 5 , # [doc = \" WP\"] X86_Write_Protected = 6 , } # [repr (u32)] # [doc = \" <add-type id=\\\"x86_sync_instruction_type_t def\\\"></add-type>\"] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub enum x86_sync_instruction_type_t { X86_SFence = 1 , X86_LFence = 2 , X86_MFence = 3 , } # [repr (u32)] # [doc = \" <add-type id=\\\"x86_register_id type\\\"><ndx>x86_register_id_t</ndx>\\n</add-type>\"] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub enum x86_register_id_t { X86_Reg_Id_Rax = 0 , X86_Reg_Id_Rcx = 1 , X86_Reg_Id_Rdx = 2 , X86_Reg_Id_Rbx = 3 , X86_Reg_Id_Rsp = 4 , X86_Reg_Id_Rbp = 5 , X86_Reg_Id_Rsi = 6 , X86_Reg_Id_Rdi = 7 , X86_Reg_Id_R8 = 8 , X86_Reg_Id_R9 = 9 , X86_Reg_Id_R10 = 10 , X86_Reg_Id_R11 = 11 , X86_Reg_Id_R12 = 12 , X86_Reg_Id_R13 = 13 , X86_Reg_Id_R14 = 14 , X86_Reg_Id_R15 = 15 , X86_Reg_Id_Xmm0 = 16 , X86_Reg_Id_Xmm1 = 17 , X86_Reg_Id_Xmm2 = 18 , X86_Reg_Id_Xmm3 = 19 , X86_Reg_Id_Xmm4 = 20 , X86_Reg_Id_Xmm5 = 21 , X86_Reg_Id_Xmm6 = 22 , X86_Reg_Id_Xmm7 = 23 , X86_Reg_Id_Xmm8 = 24 , X86_Reg_Id_Xmm9 = 25 , X86_Reg_Id_Xmm10 = 26 , X86_Reg_Id_Xmm11 = 27 , X86_Reg_Id_Xmm12 = 28 , X86_Reg_Id_Xmm13 = 29 , X86_Reg_Id_Xmm14 = 30 , X86_Reg_Id_Xmm15 = 31 , X86_Reg_Id_Mm0 = 32 , X86_Reg_Id_Mm1 = 33 , X86_Reg_Id_Mm2 = 34 , X86_Reg_Id_Mm3 = 35 , X86_Reg_Id_Mm4 = 36 , X86_Reg_Id_Mm5 = 37 , X86_Reg_Id_Mm6 = 38 , X86_Reg_Id_Mm7 = 39 , # [doc = \" this is RIP\"] X86_Reg_Id_PC = 40 , # [doc = \" integer condition code flags\"] X86_Reg_Id_CF = 41 , # [doc = \" DST field used to cache PF flag\"] X86_Reg_Id_DST = 42 , X86_Reg_Id_AF = 43 , X86_Reg_Id_ZF = 44 , X86_Reg_Id_SF = 45 , X86_Reg_Id_OF = 46 , X86_Reg_Id_DF = 47 , # [doc = \" the whole 32 bits eflags\"] X86_Reg_Id_EFLAGS = 48 , # [doc = \" floating point cc flags\"] X86_Reg_Id_C0 = 49 , X86_Reg_Id_C1 = 50 , X86_Reg_Id_C2 = 51 , X86_Reg_Id_C3 = 52 , # [doc = \" floating point stack top\"] X86_Reg_Id_Top = 53 , # [doc = \" dummy number that can be used\"] X86_Reg_Id_Not_Used = 54 , # [doc = \" keep this one last\"] X86_Reg_Id_Local_Max = 55 , } # [repr (u32)] # [doc = \" <add-type id=\\\"x86_memory_or_io_t\\\"> </add-type>\"] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub enum x86_memory_or_io_t { X86_Memory = 0 , X86_IO = 1 , } # [doc = \" <add id=\\\"x86_memory_transaction_t def\\\">\\n<insert-until text=\\\"// JDOCU INSERT-UNTIL x86_memory_transaction_t\\\"/>\\n</add-type>\"] # [repr (C)] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct x86_memory_transaction { # [doc = \" Superclass\"] pub s : generic_transaction_t , pub linear_address : linear_address_t , pub guest_physical_address : physical_address_t , # [doc = \" segment number\"] pub segnum : uint16 , pub _bitfield_align_1 : [u8 ; 0] , pub _bitfield_1 : __BindgenBitfieldUnit < [u8 ; 1usize] > , pub mode : processor_mode_t , pub access_type : x86_access_type_t , pub pat_type : x86_memory_type_t , pub mtrr_type : x86_memory_type_t , pub effective_type : x86_memory_type_t , # [doc = \" used for -stall\"] pub sequence_number : :: std :: os :: raw :: c_int , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of x86_memory_transaction\"] [:: std :: mem :: size_of :: < x86_memory_transaction > () - 152usize] ; [\"Alignment of x86_memory_transaction\"] [:: std :: mem :: align_of :: < x86_memory_transaction > () - 8usize] ; [\"Offset of field: x86_memory_transaction::s\"] [:: std :: mem :: offset_of ! (x86_memory_transaction , s) - 0usize] ; [\"Offset of field: x86_memory_transaction::linear_address\"] [:: std :: mem :: offset_of ! (x86_memory_transaction , linear_address) - 104usize] ; [\"Offset of field: x86_memory_transaction::guest_physical_address\"] [:: std :: mem :: offset_of ! (x86_memory_transaction , guest_physical_address) - 112usize] ; [\"Offset of field: x86_memory_transaction::segnum\"] [:: std :: mem :: offset_of ! (x86_memory_transaction , segnum) - 120usize] ; [\"Offset of field: x86_memory_transaction::mode\"] [:: std :: mem :: offset_of ! (x86_memory_transaction , mode) - 124usize] ; [\"Offset of field: x86_memory_transaction::access_type\"] [:: std :: mem :: offset_of ! (x86_memory_transaction , access_type) - 128usize] ; [\"Offset of field: x86_memory_transaction::pat_type\"] [:: std :: mem :: offset_of ! (x86_memory_transaction , pat_type) - 132usize] ; [\"Offset of field: x86_memory_transaction::mtrr_type\"] [:: std :: mem :: offset_of ! (x86_memory_transaction , mtrr_type) - 136usize] ; [\"Offset of field: x86_memory_transaction::effective_type\"] [:: std :: mem :: offset_of ! (x86_memory_transaction , effective_type) - 140usize] ; [\"Offset of field: x86_memory_transaction::sequence_number\"] [:: std :: mem :: offset_of ! (x86_memory_transaction , sequence_number) - 144usize] ; } ; impl Default for x86_memory_transaction { fn default () -> Self { let mut s = :: std :: mem :: MaybeUninit :: < Self > :: uninit () ; unsafe { :: std :: ptr :: write_bytes (s . as_mut_ptr () , 0 , 1) ; s . assume_init () } } } impl x86_memory_transaction { # [inline] pub fn access_linear (& self) -> uint16 { unsafe { :: std :: mem :: transmute (self . _bitfield_1 . get (0usize , 1u8) as u16) } } # [inline] pub fn set_access_linear (& mut self , val : uint16) { unsafe { let val : u16 = :: std :: mem :: transmute (val) ; self . _bitfield_1 . set (0usize , 1u8 , val as u64) } } # [inline] pub fn io (& self) -> uint16 { unsafe { :: std :: mem :: transmute (self . _bitfield_1 . get (1usize , 1u8) as u16) } } # [inline] pub fn set_io (& mut self , val : uint16) { unsafe { let val : u16 = :: std :: mem :: transmute (val) ; self . _bitfield_1 . set (1usize , 1u8 , val as u64) } } # [inline] pub fn fault_as_if_write (& self) -> uint16 { unsafe { :: std :: mem :: transmute (self . _bitfield_1 . get (2usize , 1u8) as u16) } } # [inline] pub fn set_fault_as_if_write (& mut self , val : uint16) { unsafe { let val : u16 = :: std :: mem :: transmute (val) ; self . _bitfield_1 . set (2usize , 1u8 , val as u64) } } # [inline] pub fn guest_phys_valid (& self) -> uint16 { unsafe { :: std :: mem :: transmute (self . _bitfield_1 . get (3usize , 1u8) as u16) } } # [inline] pub fn set_guest_phys_valid (& mut self , val : uint16) { unsafe { let val : u16 = :: std :: mem :: transmute (val) ; self . _bitfield_1 . set (3usize , 1u8 , val as u64) } } # [inline] pub fn new_bitfield_1 (access_linear : uint16 , io : uint16 , fault_as_if_write : uint16 , guest_phys_valid : uint16) -> __BindgenBitfieldUnit < [u8 ; 1usize] > { let mut __bindgen_bitfield_unit : __BindgenBitfieldUnit < [u8 ; 1usize] > = Default :: default () ; __bindgen_bitfield_unit . set (0usize , 1u8 , { let access_linear : u16 = unsafe { :: std :: mem :: transmute (access_linear) } ; access_linear as u64 }) ; __bindgen_bitfield_unit . set (1usize , 1u8 , { let io : u16 = unsafe { :: std :: mem :: transmute (io) } ; io as u64 }) ; __bindgen_bitfield_unit . set (2usize , 1u8 , { let fault_as_if_write : u16 = unsafe { :: std :: mem :: transmute (fault_as_if_write) } ; fault_as_if_write as u64 }) ; __bindgen_bitfield_unit . set (3usize , 1u8 , { let guest_phys_valid : u16 = unsafe { :: std :: mem :: transmute (guest_phys_valid) } ; guest_phys_valid as u64 }) ; __bindgen_bitfield_unit } } # [doc = \" <add id=\\\"x86_memory_transaction_t def\\\">\\n<insert-until text=\\\"// JDOCU INSERT-UNTIL x86_memory_transaction_t\\\"/>\\n</add-type>\"] pub type x86_memory_transaction_t = x86_memory_transaction ; extern \"C\" { # [doc = \" JDOCU INSERT-UNTIL x86_memory_transaction_t\"] pub fn SIM_x86_mem_trans_from_generic (mop : * mut generic_transaction_t) -> * mut x86_memory_transaction_t ; } # [doc = \" old alias for compatibility, deprecated\"] pub type p2_memory_transaction_t = x86_memory_transaction ; # [doc = \" <add id=\\\"x86_tlb_interface_t\\\">\\nThe x86 tlb interface is used for communication between an x86 cpu\\nand its TLB. The TLB is implemented as a separate class for greater\\nflexibility. The TLB object does no memory operations itself.\\n\\n<ndx>tagged_physical_address_t</ndx>\\n<insert-until text=\\\"// ADD INTERFACE x86_tlb_interface\\\"/>\\n\\nAll functions in the interface get the <i>object</i> implementing\\nthe interface as their first parameter.\\n\\n<b>flush_all</b> is called when all TLB entries should be\\nflushed. If <i>keep_global_entries</i> is set, then TLB entries\\nwith their global bit set should not be flushed.\\n\\n<b>flush_page</b> is invoked when pages containing <i>laddr</i> are\\nto be removed from the TLB.\\n\\n<b>lookup</b> is used by the CPU when a memory access misses the\\nSTC. It must return true (non-zero) if and only if the memory\\noperation specified by <i>mem_tr</i> hits the TLB and does not\\nraise an exception. The <i>mode</i>, <i>linear_address</i> are valid when\\nthe method is invoked. The other fields passed through <i>mem_tr</i>\\nare undefined. If the method returns true, the\\n<i>s.physical_address</i>, <i>pat_type</i>, and <i>mtrr_type</i>\\nfields of <i>mem_tr</i> must be updated by <b>lookup</b>.\\n\\nAn access that misses in <b>lookup</b> but does not raise a fault\\nis inserted into the TLB with <b>add</b>. The <i>page_size</i>\\nencoding is 0 for 4 kb pages, 1 for 2 Mb pages, and 2 for 4 Mb\\npages.\\n\\n<b>itlb_lookup</b> is a simplified version of <b>lookup</b> used\\nonly for instruction TLB lookups. If the lookup is successful\\n<i>valid</i> and <i>paddr</i> should be set, otherwise <i>valid</i>\\nshould be cleared.\\n\\n<b>set_pae_mode</b> is invoked when the cpu changes the\\nPAE enable bit.\\n\\nIt class implementing the interface must make sure that only\\naddresses mapped in the TLB are present in the STCs.\\n\\nThis interface may be changed or replaced with an architecture\\nindependent interface in future versions of Simics.\\n\\n</add>\\n<add id=\\\"x86_tlb_interface_exec_context\\\">\\nCell Context for all methods.\\n</add>\"] # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct tagged_physical_address_t { pub valid : :: std :: os :: raw :: c_int , pub paddr : physical_address_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of tagged_physical_address_t\"] [:: std :: mem :: size_of :: < tagged_physical_address_t > () - 16usize] ; [\"Alignment of tagged_physical_address_t\"] [:: std :: mem :: align_of :: < tagged_physical_address_t > () - 8usize] ; [\"Offset of field: tagged_physical_address_t::valid\"] [:: std :: mem :: offset_of ! (tagged_physical_address_t , valid) - 0usize] ; [\"Offset of field: tagged_physical_address_t::paddr\"] [:: std :: mem :: offset_of ! (tagged_physical_address_t , paddr) - 8usize] ; } ; pub type x86_tlb_interface_t = x86_tlb_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct x86_tlb_interface { pub flush_all : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , keep_global_entries : :: std :: os :: raw :: c_int) > , pub flush_page : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , laddr : linear_address_t) > , pub lookup : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , mem_tr : * mut x86_memory_transaction_t) -> :: std :: os :: raw :: c_int > , pub add : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , mode : processor_mode_t , read_or_write : read_or_write_t , data_or_instr : data_or_instr_t , global_page : :: std :: os :: raw :: c_int , pat_type : x86_memory_type_t , mtrr_type : x86_memory_type_t , laddr : linear_address_t , paddr : physical_address_t , page_size : :: std :: os :: raw :: c_int) > , pub itlb_lookup : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , laddr : linear_address_t , mode : processor_mode_t) -> tagged_physical_address_t > , pub set_pae_mode : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , pae_mode : bool) > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of x86_tlb_interface\"] [:: std :: mem :: size_of :: < x86_tlb_interface > () - 48usize] ; [\"Alignment of x86_tlb_interface\"] [:: std :: mem :: align_of :: < x86_tlb_interface > () - 8usize] ; [\"Offset of field: x86_tlb_interface::flush_all\"] [:: std :: mem :: offset_of ! (x86_tlb_interface , flush_all) - 0usize] ; [\"Offset of field: x86_tlb_interface::flush_page\"] [:: std :: mem :: offset_of ! (x86_tlb_interface , flush_page) - 8usize] ; [\"Offset of field: x86_tlb_interface::lookup\"] [:: std :: mem :: offset_of ! (x86_tlb_interface , lookup) - 16usize] ; [\"Offset of field: x86_tlb_interface::add\"] [:: std :: mem :: offset_of ! (x86_tlb_interface , add) - 24usize] ; [\"Offset of field: x86_tlb_interface::itlb_lookup\"] [:: std :: mem :: offset_of ! (x86_tlb_interface , itlb_lookup) - 32usize] ; [\"Offset of field: x86_tlb_interface::set_pae_mode\"] [:: std :: mem :: offset_of ! (x86_tlb_interface , set_pae_mode) - 40usize] ; } ; # [doc = \" ADD INTERFACE x86_tlb_interface\"] # [repr (C)] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct x86_tlb_attrs_t { pub supervisor_access : access_t , pub user_access : access_t , pub global_page : bool , pub pat_type : x86_memory_type_t , pub mtrr_type : x86_memory_type_t , pub page_size_k : :: std :: os :: raw :: c_uint , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of x86_tlb_attrs_t\"] [:: std :: mem :: size_of :: < x86_tlb_attrs_t > () - 24usize] ; [\"Alignment of x86_tlb_attrs_t\"] [:: std :: mem :: align_of :: < x86_tlb_attrs_t > () - 4usize] ; [\"Offset of field: x86_tlb_attrs_t::supervisor_access\"] [:: std :: mem :: offset_of ! (x86_tlb_attrs_t , supervisor_access) - 0usize] ; [\"Offset of field: x86_tlb_attrs_t::user_access\"] [:: std :: mem :: offset_of ! (x86_tlb_attrs_t , user_access) - 4usize] ; [\"Offset of field: x86_tlb_attrs_t::global_page\"] [:: std :: mem :: offset_of ! (x86_tlb_attrs_t , global_page) - 8usize] ; [\"Offset of field: x86_tlb_attrs_t::pat_type\"] [:: std :: mem :: offset_of ! (x86_tlb_attrs_t , pat_type) - 12usize] ; [\"Offset of field: x86_tlb_attrs_t::mtrr_type\"] [:: std :: mem :: offset_of ! (x86_tlb_attrs_t , mtrr_type) - 16usize] ; [\"Offset of field: x86_tlb_attrs_t::page_size_k\"] [:: std :: mem :: offset_of ! (x86_tlb_attrs_t , page_size_k) - 20usize] ; } ; impl Default for x86_tlb_attrs_t { fn default () -> Self { let mut s = :: std :: mem :: MaybeUninit :: < Self > :: uninit () ; unsafe { :: std :: ptr :: write_bytes (s . as_mut_ptr () , 0 , 1) ; s . assume_init () } } } # [repr (C)] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct x86_tlb_entry_t { pub linear_page_start : linear_address_t , pub physical_page_start : physical_address_t , pub attrs : x86_tlb_attrs_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of x86_tlb_entry_t\"] [:: std :: mem :: size_of :: < x86_tlb_entry_t > () - 40usize] ; [\"Alignment of x86_tlb_entry_t\"] [:: std :: mem :: align_of :: < x86_tlb_entry_t > () - 8usize] ; [\"Offset of field: x86_tlb_entry_t::linear_page_start\"] [:: std :: mem :: offset_of ! (x86_tlb_entry_t , linear_page_start) - 0usize] ; [\"Offset of field: x86_tlb_entry_t::physical_page_start\"] [:: std :: mem :: offset_of ! (x86_tlb_entry_t , physical_page_start) - 8usize] ; [\"Offset of field: x86_tlb_entry_t::attrs\"] [:: std :: mem :: offset_of ! (x86_tlb_entry_t , attrs) - 16usize] ; } ; impl Default for x86_tlb_entry_t { fn default () -> Self { let mut s = :: std :: mem :: MaybeUninit :: < Self > :: uninit () ; unsafe { :: std :: ptr :: write_bytes (s . as_mut_ptr () , 0 , 1) ; s . assume_init () } } } pub type x86_tlb_v2_interface_t = x86_tlb_v2_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct x86_tlb_v2_interface { pub flush_all : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , keep_global_entries : :: std :: os :: raw :: c_int) > , pub flush_page : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , laddr : linear_address_t) > , pub lookup : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , mem_tr : * mut x86_memory_transaction_t) -> * const x86_tlb_entry_t > , pub add : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , laddr : linear_address_t , paddr : physical_address_t , attrs : x86_tlb_attrs_t) > , pub itlb_lookup : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , laddr : linear_address_t , mode : processor_mode_t) -> tagged_physical_address_t > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of x86_tlb_v2_interface\"] [:: std :: mem :: size_of :: < x86_tlb_v2_interface > () - 40usize] ; [\"Alignment of x86_tlb_v2_interface\"] [:: std :: mem :: align_of :: < x86_tlb_v2_interface > () - 8usize] ; [\"Offset of field: x86_tlb_v2_interface::flush_all\"] [:: std :: mem :: offset_of ! (x86_tlb_v2_interface , flush_all) - 0usize] ; [\"Offset of field: x86_tlb_v2_interface::flush_page\"] [:: std :: mem :: offset_of ! (x86_tlb_v2_interface , flush_page) - 8usize] ; [\"Offset of field: x86_tlb_v2_interface::lookup\"] [:: std :: mem :: offset_of ! (x86_tlb_v2_interface , lookup) - 16usize] ; [\"Offset of field: x86_tlb_v2_interface::add\"] [:: std :: mem :: offset_of ! (x86_tlb_v2_interface , add) - 24usize] ; [\"Offset of field: x86_tlb_v2_interface::itlb_lookup\"] [:: std :: mem :: offset_of ! (x86_tlb_v2_interface , itlb_lookup) - 32usize] ; } ; # [doc = \" <add-type id=\\\"x86_tlb_attrs_v3_t def\\\"> </add-type>\"] # [repr (C)] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct x86_tlb_attrs_v3_t { pub pte_attrs : uint64 , pub pat_type : x86_memory_type_t , pub mtrr_type : x86_memory_type_t , pub page_size_k : :: std :: os :: raw :: c_uint , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of x86_tlb_attrs_v3_t\"] [:: std :: mem :: size_of :: < x86_tlb_attrs_v3_t > () - 24usize] ; [\"Alignment of x86_tlb_attrs_v3_t\"] [:: std :: mem :: align_of :: < x86_tlb_attrs_v3_t > () - 8usize] ; [\"Offset of field: x86_tlb_attrs_v3_t::pte_attrs\"] [:: std :: mem :: offset_of ! (x86_tlb_attrs_v3_t , pte_attrs) - 0usize] ; [\"Offset of field: x86_tlb_attrs_v3_t::pat_type\"] [:: std :: mem :: offset_of ! (x86_tlb_attrs_v3_t , pat_type) - 8usize] ; [\"Offset of field: x86_tlb_attrs_v3_t::mtrr_type\"] [:: std :: mem :: offset_of ! (x86_tlb_attrs_v3_t , mtrr_type) - 12usize] ; [\"Offset of field: x86_tlb_attrs_v3_t::page_size_k\"] [:: std :: mem :: offset_of ! (x86_tlb_attrs_v3_t , page_size_k) - 16usize] ; } ; impl Default for x86_tlb_attrs_v3_t { fn default () -> Self { let mut s = :: std :: mem :: MaybeUninit :: < Self > :: uninit () ; unsafe { :: std :: ptr :: write_bytes (s . as_mut_ptr () , 0 , 1) ; s . assume_init () } } } # [doc = \" <add-type id=\\\"x86_tlb_entry_v3_t def\\\"> </add-type>\"] # [repr (C)] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct x86_tlb_entry_v3_t { pub linear_page_start : linear_address_t , pub physical_page_start : physical_address_t , pub attrs : x86_tlb_attrs_v3_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of x86_tlb_entry_v3_t\"] [:: std :: mem :: size_of :: < x86_tlb_entry_v3_t > () - 40usize] ; [\"Alignment of x86_tlb_entry_v3_t\"] [:: std :: mem :: align_of :: < x86_tlb_entry_v3_t > () - 8usize] ; [\"Offset of field: x86_tlb_entry_v3_t::linear_page_start\"] [:: std :: mem :: offset_of ! (x86_tlb_entry_v3_t , linear_page_start) - 0usize] ; [\"Offset of field: x86_tlb_entry_v3_t::physical_page_start\"] [:: std :: mem :: offset_of ! (x86_tlb_entry_v3_t , physical_page_start) - 8usize] ; [\"Offset of field: x86_tlb_entry_v3_t::attrs\"] [:: std :: mem :: offset_of ! (x86_tlb_entry_v3_t , attrs) - 16usize] ; } ; impl Default for x86_tlb_entry_v3_t { fn default () -> Self { let mut s = :: std :: mem :: MaybeUninit :: < Self > :: uninit () ; unsafe { :: std :: ptr :: write_bytes (s . as_mut_ptr () , 0 , 1) ; s . assume_init () } } } # [repr (u32)] # [doc = \" <add-type id=\\\"x86_tlb_inv_t def\\\"> </add-type>\"] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub enum x86_tlb_inv_t { X86_Tlb_Invalidate_Page = 0 , X86_Tlb_Invalidate_Address_Space = 4 , X86_Tlb_Invalidate_Address_Space_NonGlobal = 1 , X86_Tlb_Invalidate_All = 2 , X86_Tlb_Invalidate_All_NonGlobal = 3 , } pub type x86_tlb_v3_interface_t = x86_tlb_v3_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct x86_tlb_v3_interface { pub add : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , hint : uint64 , laddr : linear_address_t , paddr : physical_address_t , attrs : x86_tlb_attrs_v3_t) > , pub lookup : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , hint : uint64 , mem_tr : * mut x86_memory_transaction_t) -> * const x86_tlb_entry_v3_t > , pub itlb_lookup : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , hint : uint64 , laddr : linear_address_t , mode : processor_mode_t) -> tagged_physical_address_t > , pub invalidate_page : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , hint : uint64 , laddr : linear_address_t) > , pub invalidate : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , type_ : uint32 , hint : uint64 , la : linear_address_t) > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of x86_tlb_v3_interface\"] [:: std :: mem :: size_of :: < x86_tlb_v3_interface > () - 40usize] ; [\"Alignment of x86_tlb_v3_interface\"] [:: std :: mem :: align_of :: < x86_tlb_v3_interface > () - 8usize] ; [\"Offset of field: x86_tlb_v3_interface::add\"] [:: std :: mem :: offset_of ! (x86_tlb_v3_interface , add) - 0usize] ; [\"Offset of field: x86_tlb_v3_interface::lookup\"] [:: std :: mem :: offset_of ! (x86_tlb_v3_interface , lookup) - 8usize] ; [\"Offset of field: x86_tlb_v3_interface::itlb_lookup\"] [:: std :: mem :: offset_of ! (x86_tlb_v3_interface , itlb_lookup) - 16usize] ; [\"Offset of field: x86_tlb_v3_interface::invalidate_page\"] [:: std :: mem :: offset_of ! (x86_tlb_v3_interface , invalidate_page) - 24usize] ; [\"Offset of field: x86_tlb_v3_interface::invalidate\"] [:: std :: mem :: offset_of ! (x86_tlb_v3_interface , invalidate) - 32usize] ; } ; # [repr (u32)] # [doc = \" <add-type id=\\\"x86_pin_t\\\"> </add-type>\"] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub enum x86_pin_t { Pin_Init = 0 , Pin_Smi = 1 , Pin_Nmi = 2 , Pin_Ignne = 3 , Pin_Mcerr = 4 , Pin_Cmci = 5 , } # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct tagged_linear_address_t { pub valid : bool , pub addr : linear_address_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of tagged_linear_address_t\"] [:: std :: mem :: size_of :: < tagged_linear_address_t > () - 16usize] ; [\"Alignment of tagged_linear_address_t\"] [:: std :: mem :: align_of :: < tagged_linear_address_t > () - 8usize] ; [\"Offset of field: tagged_linear_address_t::valid\"] [:: std :: mem :: offset_of ! (tagged_linear_address_t , valid) - 0usize] ; [\"Offset of field: tagged_linear_address_t::addr\"] [:: std :: mem :: offset_of ! (tagged_linear_address_t , addr) - 8usize] ; } ; pub type x86_interface_t = x86_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct x86_interface { pub set_pin_status : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , pin : x86_pin_t , status : :: std :: os :: raw :: c_int) > , pub start_up : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , start_address : uint32) > , pub interrupt : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , ack : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t) -> :: std :: os :: raw :: c_int > , data : * mut conf_object_t) -> :: std :: os :: raw :: c_int > , pub uninterrupt : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , ack : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t) -> :: std :: os :: raw :: c_int >) > , pub has_pending_interrupt : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t) -> :: std :: os :: raw :: c_int > , pub has_waiting_interrupt : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t) -> :: std :: os :: raw :: c_int > , pub logical_to_linear : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , segment : :: std :: os :: raw :: c_int , addr : logical_address_t) -> tagged_linear_address_t > , pub linear_to_physical : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , d_or_i : data_or_instr_t , addr : linear_address_t) -> physical_address_t > , pub enter_acpi_c2_state : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t) > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of x86_interface\"] [:: std :: mem :: size_of :: < x86_interface > () - 72usize] ; [\"Alignment of x86_interface\"] [:: std :: mem :: align_of :: < x86_interface > () - 8usize] ; [\"Offset of field: x86_interface::set_pin_status\"] [:: std :: mem :: offset_of ! (x86_interface , set_pin_status) - 0usize] ; [\"Offset of field: x86_interface::start_up\"] [:: std :: mem :: offset_of ! (x86_interface , start_up) - 8usize] ; [\"Offset of field: x86_interface::interrupt\"] [:: std :: mem :: offset_of ! (x86_interface , interrupt) - 16usize] ; [\"Offset of field: x86_interface::uninterrupt\"] [:: std :: mem :: offset_of ! (x86_interface , uninterrupt) - 24usize] ; [\"Offset of field: x86_interface::has_pending_interrupt\"] [:: std :: mem :: offset_of ! (x86_interface , has_pending_interrupt) - 32usize] ; [\"Offset of field: x86_interface::has_waiting_interrupt\"] [:: std :: mem :: offset_of ! (x86_interface , has_waiting_interrupt) - 40usize] ; [\"Offset of field: x86_interface::logical_to_linear\"] [:: std :: mem :: offset_of ! (x86_interface , logical_to_linear) - 48usize] ; [\"Offset of field: x86_interface::linear_to_physical\"] [:: std :: mem :: offset_of ! (x86_interface , linear_to_physical) - 56usize] ; [\"Offset of field: x86_interface::enter_acpi_c2_state\"] [:: std :: mem :: offset_of ! (x86_interface , enter_acpi_c2_state) - 64usize] ; } ; # [doc = \" ADD INTERFACE x86_interface\"] # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct cpuid_ret_t { pub taken : :: std :: os :: raw :: c_int , pub out_a : uint64 , pub out_b : uint64 , pub out_c : uint64 , pub out_d : uint64 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of cpuid_ret_t\"] [:: std :: mem :: size_of :: < cpuid_ret_t > () - 40usize] ; [\"Alignment of cpuid_ret_t\"] [:: std :: mem :: align_of :: < cpuid_ret_t > () - 8usize] ; [\"Offset of field: cpuid_ret_t::taken\"] [:: std :: mem :: offset_of ! (cpuid_ret_t , taken) - 0usize] ; [\"Offset of field: cpuid_ret_t::out_a\"] [:: std :: mem :: offset_of ! (cpuid_ret_t , out_a) - 8usize] ; [\"Offset of field: cpuid_ret_t::out_b\"] [:: std :: mem :: offset_of ! (cpuid_ret_t , out_b) - 16usize] ; [\"Offset of field: cpuid_ret_t::out_c\"] [:: std :: mem :: offset_of ! (cpuid_ret_t , out_c) - 24usize] ; [\"Offset of field: cpuid_ret_t::out_d\"] [:: std :: mem :: offset_of ! (cpuid_ret_t , out_d) - 32usize] ; } ; pub type x86_cpuid_interface_t = x86_cpuid_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct x86_cpuid_interface { pub cpuid : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , cpu : * mut conf_object_t , in_eax : uint32 , in_ebx : uint32 , in_ecx : uint32 , in_edx : uint32) -> cpuid_ret_t > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of x86_cpuid_interface\"] [:: std :: mem :: size_of :: < x86_cpuid_interface > () - 8usize] ; [\"Alignment of x86_cpuid_interface\"] [:: std :: mem :: align_of :: < x86_cpuid_interface > () - 8usize] ; [\"Offset of field: x86_cpuid_interface::cpuid\"] [:: std :: mem :: offset_of ! (x86_cpuid_interface , cpuid) - 0usize] ; } ; # [doc = \" ADD INTERFACE x86_cpuid_interface\"] # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct cpuid_value_t { pub a : uint64 , pub b : uint64 , pub c : uint64 , pub d : uint64 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of cpuid_value_t\"] [:: std :: mem :: size_of :: < cpuid_value_t > () - 32usize] ; [\"Alignment of cpuid_value_t\"] [:: std :: mem :: align_of :: < cpuid_value_t > () - 8usize] ; [\"Offset of field: cpuid_value_t::a\"] [:: std :: mem :: offset_of ! (cpuid_value_t , a) - 0usize] ; [\"Offset of field: cpuid_value_t::b\"] [:: std :: mem :: offset_of ! (cpuid_value_t , b) - 8usize] ; [\"Offset of field: cpuid_value_t::c\"] [:: std :: mem :: offset_of ! (cpuid_value_t , c) - 16usize] ; [\"Offset of field: cpuid_value_t::d\"] [:: std :: mem :: offset_of ! (cpuid_value_t , d) - 24usize] ; } ; pub type x86_cpuid_query_interface_t = x86_cpuid_query_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct x86_cpuid_query_interface { pub cpuid_query : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , leaf : uint32 , subleaf : uint32) -> cpuid_value_t > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of x86_cpuid_query_interface\"] [:: std :: mem :: size_of :: < x86_cpuid_query_interface > () - 8usize] ; [\"Alignment of x86_cpuid_query_interface\"] [:: std :: mem :: align_of :: < x86_cpuid_query_interface > () - 8usize] ; [\"Offset of field: x86_cpuid_query_interface::cpuid_query\"] [:: std :: mem :: offset_of ! (x86_cpuid_query_interface , cpuid_query) - 0usize] ; } ; # [repr (u32)] # [doc = \" <add-type id=\\\"local_apic_interrupt_t\\\"></add-type>\"] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub enum local_apic_interrupt_t { Apic_Lvt_2e = 736 , Apic_CMCI = 752 , Apic_Performance_Counter = 832 , Apic_Thermal_Sensor = 816 , } pub type apic_cpu_interface_t = apic_cpu_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct apic_cpu_interface { pub tpr_r : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t) -> uint64 > , pub tpr_w : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , tpr : uint64) > , pub local_int : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , int_type : local_apic_interrupt_t) > , pub power_on : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , bsp : bool , apic_id : :: std :: os :: raw :: c_int) > , pub init : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t) > , pub enabled_r : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t) -> bool > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of apic_cpu_interface\"] [:: std :: mem :: size_of :: < apic_cpu_interface > () - 48usize] ; [\"Alignment of apic_cpu_interface\"] [:: std :: mem :: align_of :: < apic_cpu_interface > () - 8usize] ; [\"Offset of field: apic_cpu_interface::tpr_r\"] [:: std :: mem :: offset_of ! (apic_cpu_interface , tpr_r) - 0usize] ; [\"Offset of field: apic_cpu_interface::tpr_w\"] [:: std :: mem :: offset_of ! (apic_cpu_interface , tpr_w) - 8usize] ; [\"Offset of field: apic_cpu_interface::local_int\"] [:: std :: mem :: offset_of ! (apic_cpu_interface , local_int) - 16usize] ; [\"Offset of field: apic_cpu_interface::power_on\"] [:: std :: mem :: offset_of ! (apic_cpu_interface , power_on) - 24usize] ; [\"Offset of field: apic_cpu_interface::init\"] [:: std :: mem :: offset_of ! (apic_cpu_interface , init) - 32usize] ; [\"Offset of field: apic_cpu_interface::enabled_r\"] [:: std :: mem :: offset_of ! (apic_cpu_interface , enabled_r) - 40usize] ; } ; pub type a20_interface_t = a20_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct a20_interface { pub set_a20_line : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , value : :: std :: os :: raw :: c_int) > , pub get_a20_line : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t) -> :: std :: os :: raw :: c_int > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of a20_interface\"] [:: std :: mem :: size_of :: < a20_interface > () - 16usize] ; [\"Alignment of a20_interface\"] [:: std :: mem :: align_of :: < a20_interface > () - 8usize] ; [\"Offset of field: a20_interface::set_a20_line\"] [:: std :: mem :: offset_of ! (a20_interface , set_a20_line) - 0usize] ; [\"Offset of field: a20_interface::get_a20_line\"] [:: std :: mem :: offset_of ! (a20_interface , get_a20_line) - 8usize] ; } ; # [repr (u32)] # [doc = \" <add-type id=\\\"x86_msr_access_type_t def\\\"></add-type>\"] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub enum x86_msr_access_type_t { # [doc = \" Access from a rdmsr/wrmsr instruction\"] Sim_X86_Msr_Instruction_Access = 0 , # [doc = \" Access through attribute\"] Sim_X86_Msr_Attribute_Access = 1 , # [doc = \" Access through int_register interface\"] Sim_X86_Msr_Int_Register_Access = 2 , # [doc = \" Access during VMX entry/exit\"] Sim_X86_Msr_VMX_Access = 3 , # [doc = \" Architectural access without side effects within the CPU model, only\\nreads or writes the register value. However, if it is sent to the\\nplatform as a non-inquiry access, that may cause side effects.\"] Sim_X86_Msr_Architectural_Access = 4 , } # [repr (u32)] # [doc = \" <add-type id=\\\"x86_msr_ret_t def\\\"></add-type>\"] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub enum x86_msr_ret_t { # [doc = \" Access was OK\"] Sim_X86_Msr_Ok = 0 , # [doc = \" Raise #GP fault\"] Sim_X86_Msr_GP_Fault = 1 , # [doc = \" Pass on to next handler\"] Sim_X86_Msr_Not_Handled = 2 , } # [doc = \" <add-type id=\\\"x86_msr_getter_ret_t def\\\"></add-type>\"] # [repr (C)] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct x86_msr_getter_ret_t { pub status : x86_msr_ret_t , pub value : uint64 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of x86_msr_getter_ret_t\"] [:: std :: mem :: size_of :: < x86_msr_getter_ret_t > () - 16usize] ; [\"Alignment of x86_msr_getter_ret_t\"] [:: std :: mem :: align_of :: < x86_msr_getter_ret_t > () - 8usize] ; [\"Offset of field: x86_msr_getter_ret_t::status\"] [:: std :: mem :: offset_of ! (x86_msr_getter_ret_t , status) - 0usize] ; [\"Offset of field: x86_msr_getter_ret_t::value\"] [:: std :: mem :: offset_of ! (x86_msr_getter_ret_t , value) - 8usize] ; } ; impl Default for x86_msr_getter_ret_t { fn default () -> Self { let mut s = :: std :: mem :: MaybeUninit :: < Self > :: uninit () ; unsafe { :: std :: ptr :: write_bytes (s . as_mut_ptr () , 0 , 1) ; s . assume_init () } } } # [doc = \" <add-type id=\\\"x86_msr_getter_func_t def\\\"></add-type>\"] pub type x86_msr_getter_func_t = :: std :: option :: Option < unsafe extern \"C\" fn (cpu : * mut conf_object_t , number : int64 , type_ : x86_msr_access_type_t , user_data : * mut lang_void) -> x86_msr_getter_ret_t > ; # [doc = \" <add-type id=\\\"x86_msr_setter_func_t def\\\"></add-type>\"] pub type x86_msr_setter_func_t = :: std :: option :: Option < unsafe extern \"C\" fn (cpu : * mut conf_object_t , spr_number : int64 , value : uint64 , type_ : x86_msr_access_type_t , user_data : * mut lang_void) -> x86_msr_ret_t > ; pub type x86_msr_interface_t = x86_msr_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct x86_msr_interface { pub register_handlers : :: std :: option :: Option < unsafe extern \"C\" fn (cpu : * mut conf_object_t , number : int64 , getter : x86_msr_getter_func_t , getter_data : * mut lang_void , setter : x86_msr_setter_func_t , setter_data : * mut lang_void , name : * const :: std :: os :: raw :: c_char) > , pub unregister_handlers : :: std :: option :: Option < unsafe extern \"C\" fn (cpu : * mut conf_object_t , number : int64) > , pub get : :: std :: option :: Option < unsafe extern \"C\" fn (cpu : * mut conf_object_t , number : int64 , type_ : x86_msr_access_type_t) -> x86_msr_getter_ret_t > , pub set : :: std :: option :: Option < unsafe extern \"C\" fn (cpu : * mut conf_object_t , number : int64 , value : uint64 , type_ : x86_msr_access_type_t) -> x86_msr_ret_t > , pub get_name : :: std :: option :: Option < unsafe extern \"C\" fn (cpu : * mut conf_object_t , number : int64) -> * const :: std :: os :: raw :: c_char > , pub get_number : :: std :: option :: Option < unsafe extern \"C\" fn (cpu : * mut conf_object_t , name : * const :: std :: os :: raw :: c_char) -> int64 > , pub get_all_valid_numbers : :: std :: option :: Option < unsafe extern \"C\" fn (cpu : * mut conf_object_t) -> attr_value_t > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of x86_msr_interface\"] [:: std :: mem :: size_of :: < x86_msr_interface > () - 56usize] ; [\"Alignment of x86_msr_interface\"] [:: std :: mem :: align_of :: < x86_msr_interface > () - 8usize] ; [\"Offset of field: x86_msr_interface::register_handlers\"] [:: std :: mem :: offset_of ! (x86_msr_interface , register_handlers) - 0usize] ; [\"Offset of field: x86_msr_interface::unregister_handlers\"] [:: std :: mem :: offset_of ! (x86_msr_interface , unregister_handlers) - 8usize] ; [\"Offset of field: x86_msr_interface::get\"] [:: std :: mem :: offset_of ! (x86_msr_interface , get) - 16usize] ; [\"Offset of field: x86_msr_interface::set\"] [:: std :: mem :: offset_of ! (x86_msr_interface , set) - 24usize] ; [\"Offset of field: x86_msr_interface::get_name\"] [:: std :: mem :: offset_of ! (x86_msr_interface , get_name) - 32usize] ; [\"Offset of field: x86_msr_interface::get_number\"] [:: std :: mem :: offset_of ! (x86_msr_interface , get_number) - 40usize] ; [\"Offset of field: x86_msr_interface::get_all_valid_numbers\"] [:: std :: mem :: offset_of ! (x86_msr_interface , get_all_valid_numbers) - 48usize] ; } ; pub type x86_cache_flush_interface_t = x86_cache_flush_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct x86_cache_flush_interface { pub flush : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , cpu : * mut conf_object_t , writeback : bool) > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of x86_cache_flush_interface\"] [:: std :: mem :: size_of :: < x86_cache_flush_interface > () - 8usize] ; [\"Alignment of x86_cache_flush_interface\"] [:: std :: mem :: align_of :: < x86_cache_flush_interface > () - 8usize] ; [\"Offset of field: x86_cache_flush_interface::flush\"] [:: std :: mem :: offset_of ! (x86_cache_flush_interface , flush) - 0usize] ; } ; # [doc = \" Attribute format:\\ntype    bit 0..3\\ns       bit 4\\ndpl     bit 5..6\\np       bit 7\\navl     bit 12\\nl       bit 13\\ndb      bit 14\\ng       bit 15\\ninvalid bit 16\"] # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct smm_reg_state_t { pub gpr : [uint64 ; 16usize] , pub seg_sel : [uint16 ; 6usize] , pub tr_sel : uint16 , pub ldtr_sel : uint16 , pub seg_base : [uint64 ; 6usize] , pub tr_base : uint64 , pub ldtr_base : uint64 , pub seg_attr : [uint32 ; 6usize] , pub tr_attr : uint32 , pub ldtr_attr : uint32 , pub seg_limit : [uint32 ; 6usize] , pub tr_limit : uint32 , pub ldtr_limit : uint32 , pub cr0 : uint64 , pub cr2 : uint64 , pub cr3 : uint64 , pub cr4 : uint64 , pub cr8 : uint64 , pub ia32_efer : uint64 , pub rip : uint64 , pub rflags : uint64 , pub dr : [uint64 ; 4usize] , pub dr6 : uint64 , pub dr7 : uint64 , pub smbase : uint32 , pub idtr_limit : uint16 , pub gdtr_limit : uint16 , pub idtr_base : uint64 , pub gdtr_base : uint64 , pub activity_hlt : bool , pub io_instr_restart : bool , pub block_nmi : bool , pub vmx_mode : uint8 , pub ept_is_on : bool , pub reserved : [bool ; 3usize] , pub io_rip : uint64 , pub io_lin_addr : uint64 , pub io_instr_info : uint32 , pub reserved2 : uint32 , # [doc = \" MPX state\"] pub bndcfgs : uint64 , # [doc = \" valid only if EPT is on\"] pub eptp : uint64 , pub pdpte : [uint64 ; 4usize] , pub ssp : uint64 , pub reserved3 : [uint64 ; 6usize] , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of smm_reg_state_t\"] [:: std :: mem :: size_of :: < smm_reg_state_t > () - 544usize] ; [\"Alignment of smm_reg_state_t\"] [:: std :: mem :: align_of :: < smm_reg_state_t > () - 8usize] ; [\"Offset of field: smm_reg_state_t::gpr\"] [:: std :: mem :: offset_of ! (smm_reg_state_t , gpr) - 0usize] ; [\"Offset of field: smm_reg_state_t::seg_sel\"] [:: std :: mem :: offset_of ! (smm_reg_state_t , seg_sel) - 128usize] ; [\"Offset of field: smm_reg_state_t::tr_sel\"] [:: std :: mem :: offset_of ! (smm_reg_state_t , tr_sel) - 140usize] ; [\"Offset of field: smm_reg_state_t::ldtr_sel\"] [:: std :: mem :: offset_of ! (smm_reg_state_t , ldtr_sel) - 142usize] ; [\"Offset of field: smm_reg_state_t::seg_base\"] [:: std :: mem :: offset_of ! (smm_reg_state_t , seg_base) - 144usize] ; [\"Offset of field: smm_reg_state_t::tr_base\"] [:: std :: mem :: offset_of ! (smm_reg_state_t , tr_base) - 192usize] ; [\"Offset of field: smm_reg_state_t::ldtr_base\"] [:: std :: mem :: offset_of ! (smm_reg_state_t , ldtr_base) - 200usize] ; [\"Offset of field: smm_reg_state_t::seg_attr\"] [:: std :: mem :: offset_of ! (smm_reg_state_t , seg_attr) - 208usize] ; [\"Offset of field: smm_reg_state_t::tr_attr\"] [:: std :: mem :: offset_of ! (smm_reg_state_t , tr_attr) - 232usize] ; [\"Offset of field: smm_reg_state_t::ldtr_attr\"] [:: std :: mem :: offset_of ! (smm_reg_state_t , ldtr_attr) - 236usize] ; [\"Offset of field: smm_reg_state_t::seg_limit\"] [:: std :: mem :: offset_of ! (smm_reg_state_t , seg_limit) - 240usize] ; [\"Offset of field: smm_reg_state_t::tr_limit\"] [:: std :: mem :: offset_of ! (smm_reg_state_t , tr_limit) - 264usize] ; [\"Offset of field: smm_reg_state_t::ldtr_limit\"] [:: std :: mem :: offset_of ! (smm_reg_state_t , ldtr_limit) - 268usize] ; [\"Offset of field: smm_reg_state_t::cr0\"] [:: std :: mem :: offset_of ! (smm_reg_state_t , cr0) - 272usize] ; [\"Offset of field: smm_reg_state_t::cr2\"] [:: std :: mem :: offset_of ! (smm_reg_state_t , cr2) - 280usize] ; [\"Offset of field: smm_reg_state_t::cr3\"] [:: std :: mem :: offset_of ! (smm_reg_state_t , cr3) - 288usize] ; [\"Offset of field: smm_reg_state_t::cr4\"] [:: std :: mem :: offset_of ! (smm_reg_state_t , cr4) - 296usize] ; [\"Offset of field: smm_reg_state_t::cr8\"] [:: std :: mem :: offset_of ! (smm_reg_state_t , cr8) - 304usize] ; [\"Offset of field: smm_reg_state_t::ia32_efer\"] [:: std :: mem :: offset_of ! (smm_reg_state_t , ia32_efer) - 312usize] ; [\"Offset of field: smm_reg_state_t::rip\"] [:: std :: mem :: offset_of ! (smm_reg_state_t , rip) - 320usize] ; [\"Offset of field: smm_reg_state_t::rflags\"] [:: std :: mem :: offset_of ! (smm_reg_state_t , rflags) - 328usize] ; [\"Offset of field: smm_reg_state_t::dr\"] [:: std :: mem :: offset_of ! (smm_reg_state_t , dr) - 336usize] ; [\"Offset of field: smm_reg_state_t::dr6\"] [:: std :: mem :: offset_of ! (smm_reg_state_t , dr6) - 368usize] ; [\"Offset of field: smm_reg_state_t::dr7\"] [:: std :: mem :: offset_of ! (smm_reg_state_t , dr7) - 376usize] ; [\"Offset of field: smm_reg_state_t::smbase\"] [:: std :: mem :: offset_of ! (smm_reg_state_t , smbase) - 384usize] ; [\"Offset of field: smm_reg_state_t::idtr_limit\"] [:: std :: mem :: offset_of ! (smm_reg_state_t , idtr_limit) - 388usize] ; [\"Offset of field: smm_reg_state_t::gdtr_limit\"] [:: std :: mem :: offset_of ! (smm_reg_state_t , gdtr_limit) - 390usize] ; [\"Offset of field: smm_reg_state_t::idtr_base\"] [:: std :: mem :: offset_of ! (smm_reg_state_t , idtr_base) - 392usize] ; [\"Offset of field: smm_reg_state_t::gdtr_base\"] [:: std :: mem :: offset_of ! (smm_reg_state_t , gdtr_base) - 400usize] ; [\"Offset of field: smm_reg_state_t::activity_hlt\"] [:: std :: mem :: offset_of ! (smm_reg_state_t , activity_hlt) - 408usize] ; [\"Offset of field: smm_reg_state_t::io_instr_restart\"] [:: std :: mem :: offset_of ! (smm_reg_state_t , io_instr_restart) - 409usize] ; [\"Offset of field: smm_reg_state_t::block_nmi\"] [:: std :: mem :: offset_of ! (smm_reg_state_t , block_nmi) - 410usize] ; [\"Offset of field: smm_reg_state_t::vmx_mode\"] [:: std :: mem :: offset_of ! (smm_reg_state_t , vmx_mode) - 411usize] ; [\"Offset of field: smm_reg_state_t::ept_is_on\"] [:: std :: mem :: offset_of ! (smm_reg_state_t , ept_is_on) - 412usize] ; [\"Offset of field: smm_reg_state_t::reserved\"] [:: std :: mem :: offset_of ! (smm_reg_state_t , reserved) - 413usize] ; [\"Offset of field: smm_reg_state_t::io_rip\"] [:: std :: mem :: offset_of ! (smm_reg_state_t , io_rip) - 416usize] ; [\"Offset of field: smm_reg_state_t::io_lin_addr\"] [:: std :: mem :: offset_of ! (smm_reg_state_t , io_lin_addr) - 424usize] ; [\"Offset of field: smm_reg_state_t::io_instr_info\"] [:: std :: mem :: offset_of ! (smm_reg_state_t , io_instr_info) - 432usize] ; [\"Offset of field: smm_reg_state_t::reserved2\"] [:: std :: mem :: offset_of ! (smm_reg_state_t , reserved2) - 436usize] ; [\"Offset of field: smm_reg_state_t::bndcfgs\"] [:: std :: mem :: offset_of ! (smm_reg_state_t , bndcfgs) - 440usize] ; [\"Offset of field: smm_reg_state_t::eptp\"] [:: std :: mem :: offset_of ! (smm_reg_state_t , eptp) - 448usize] ; [\"Offset of field: smm_reg_state_t::pdpte\"] [:: std :: mem :: offset_of ! (smm_reg_state_t , pdpte) - 456usize] ; [\"Offset of field: smm_reg_state_t::ssp\"] [:: std :: mem :: offset_of ! (smm_reg_state_t , ssp) - 488usize] ; [\"Offset of field: smm_reg_state_t::reserved3\"] [:: std :: mem :: offset_of ! (smm_reg_state_t , reserved3) - 496usize] ; } ; pub type x86_smm_state_interface_t = x86_smm_state_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct x86_smm_state_interface { pub get_state : :: std :: option :: Option < unsafe extern \"C\" fn (cpu : * mut conf_object_t , state : * mut smm_reg_state_t) > , pub set_state : :: std :: option :: Option < unsafe extern \"C\" fn (cpu : * mut conf_object_t , state : * const smm_reg_state_t) > , pub smram_read : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , smram_offs : :: std :: os :: raw :: c_uint , len : :: std :: os :: raw :: c_uint) -> uint64 > , pub smram_write : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , smram_offs : :: std :: os :: raw :: c_uint , len : :: std :: os :: raw :: c_uint , val : uint64) > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of x86_smm_state_interface\"] [:: std :: mem :: size_of :: < x86_smm_state_interface > () - 32usize] ; [\"Alignment of x86_smm_state_interface\"] [:: std :: mem :: align_of :: < x86_smm_state_interface > () - 8usize] ; [\"Offset of field: x86_smm_state_interface::get_state\"] [:: std :: mem :: offset_of ! (x86_smm_state_interface , get_state) - 0usize] ; [\"Offset of field: x86_smm_state_interface::set_state\"] [:: std :: mem :: offset_of ! (x86_smm_state_interface , set_state) - 8usize] ; [\"Offset of field: x86_smm_state_interface::smram_read\"] [:: std :: mem :: offset_of ! (x86_smm_state_interface , smram_read) - 16usize] ; [\"Offset of field: x86_smm_state_interface::smram_write\"] [:: std :: mem :: offset_of ! (x86_smm_state_interface , smram_write) - 24usize] ; } ; pub type x86_smm_interface_t = x86_smm_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct x86_smm_interface { pub save_state : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , cpu : * mut conf_object_t) > , pub restore_state : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , cpu : * mut conf_object_t) > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of x86_smm_interface\"] [:: std :: mem :: size_of :: < x86_smm_interface > () - 16usize] ; [\"Alignment of x86_smm_interface\"] [:: std :: mem :: align_of :: < x86_smm_interface > () - 8usize] ; [\"Offset of field: x86_smm_interface::save_state\"] [:: std :: mem :: offset_of ! (x86_smm_interface , save_state) - 0usize] ; [\"Offset of field: x86_smm_interface::restore_state\"] [:: std :: mem :: offset_of ! (x86_smm_interface , restore_state) - 8usize] ; } ; # [doc = \" <add-type id=\\\"x86_xmode_info_t\\\"> </add-type>\"] # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct x86_xmode_info_t { pub efer_lma : bool , pub cs_l : bool , pub cs_d : bool , pub ss_b : bool , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of x86_xmode_info_t\"] [:: std :: mem :: size_of :: < x86_xmode_info_t > () - 4usize] ; [\"Alignment of x86_xmode_info_t\"] [:: std :: mem :: align_of :: < x86_xmode_info_t > () - 1usize] ; [\"Offset of field: x86_xmode_info_t::efer_lma\"] [:: std :: mem :: offset_of ! (x86_xmode_info_t , efer_lma) - 0usize] ; [\"Offset of field: x86_xmode_info_t::cs_l\"] [:: std :: mem :: offset_of ! (x86_xmode_info_t , cs_l) - 1usize] ; [\"Offset of field: x86_xmode_info_t::cs_d\"] [:: std :: mem :: offset_of ! (x86_xmode_info_t , cs_d) - 2usize] ; [\"Offset of field: x86_xmode_info_t::ss_b\"] [:: std :: mem :: offset_of ! (x86_xmode_info_t , ss_b) - 3usize] ; } ; # [doc = \" x86_seg_reg_t describes a segment register and its hidden fields. If valid\\nis false, the segment is unusable and attempts to use it will trigger a\\nfault in non-64-bit mode. The meaning of each bit in attr is as follows:\\ntype    bit 0..3\\nS       bit 4\\nDPL     bit 5..6\\nP       bit 7\\nL       bit 13\\nD/B     bit 14\\nG       bit 15\"] # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct x86_seg_reg_t { pub valid : bool , pub sel : uint16 , pub base : uint64 , pub attr : uint32 , pub limit : uint32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of x86_seg_reg_t\"] [:: std :: mem :: size_of :: < x86_seg_reg_t > () - 24usize] ; [\"Alignment of x86_seg_reg_t\"] [:: std :: mem :: align_of :: < x86_seg_reg_t > () - 8usize] ; [\"Offset of field: x86_seg_reg_t::valid\"] [:: std :: mem :: offset_of ! (x86_seg_reg_t , valid) - 0usize] ; [\"Offset of field: x86_seg_reg_t::sel\"] [:: std :: mem :: offset_of ! (x86_seg_reg_t , sel) - 2usize] ; [\"Offset of field: x86_seg_reg_t::base\"] [:: std :: mem :: offset_of ! (x86_seg_reg_t , base) - 8usize] ; [\"Offset of field: x86_seg_reg_t::attr\"] [:: std :: mem :: offset_of ! (x86_seg_reg_t , attr) - 16usize] ; [\"Offset of field: x86_seg_reg_t::limit\"] [:: std :: mem :: offset_of ! (x86_seg_reg_t , limit) - 20usize] ; } ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct x86_system_seg_reg_t { pub base : uint64 , pub limit : uint16 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of x86_system_seg_reg_t\"] [:: std :: mem :: size_of :: < x86_system_seg_reg_t > () - 16usize] ; [\"Alignment of x86_system_seg_reg_t\"] [:: std :: mem :: align_of :: < x86_system_seg_reg_t > () - 8usize] ; [\"Offset of field: x86_system_seg_reg_t::base\"] [:: std :: mem :: offset_of ! (x86_system_seg_reg_t , base) - 0usize] ; [\"Offset of field: x86_system_seg_reg_t::limit\"] [:: std :: mem :: offset_of ! (x86_system_seg_reg_t , limit) - 8usize] ; } ; # [repr (u32)] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub enum x86_system_seg_t { X86_Gdtr = 0 , X86_Idtr = 1 , } # [repr (u32)] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub enum x86_cr_t { X86_Cr0 = 0 , X86_Cr2 = 2 , X86_Cr3 = 3 , X86_Cr4 = 4 , X86_Cr8 = 8 , } # [repr (u32)] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub enum x86_dr_t { X86_Dr0 = 0 , X86_Dr1 = 1 , X86_Dr2 = 2 , X86_Dr3 = 3 , X86_Dr6 = 6 , X86_Dr7 = 7 , } # [repr (u32)] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub enum x86_xcr_t { X86_Xcr0 = 0 , } # [repr (u32)] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub enum x86_activity_t { X86_Activity_Normal = 0 , X86_Activity_Hlt = 1 , X86_Activity_Shutdown = 2 , X86_Activity_Wait_For_SIPI = 3 , X86_Activity_Cx_State = 4 , X86_Activity_MWait = 5 , X86_Activity_Senter_Sleep_State = 6 , } # [doc = \" <add-type id=\\\"ymm_reg_t\\\"> </add-type>\"] # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct ymm_reg_t { pub llo64 : uint64 , pub lhi64 : uint64 , pub hlo64 : uint64 , pub hhi64 : uint64 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of ymm_reg_t\"] [:: std :: mem :: size_of :: < ymm_reg_t > () - 32usize] ; [\"Alignment of ymm_reg_t\"] [:: std :: mem :: align_of :: < ymm_reg_t > () - 8usize] ; [\"Offset of field: ymm_reg_t::llo64\"] [:: std :: mem :: offset_of ! (ymm_reg_t , llo64) - 0usize] ; [\"Offset of field: ymm_reg_t::lhi64\"] [:: std :: mem :: offset_of ! (ymm_reg_t , lhi64) - 8usize] ; [\"Offset of field: ymm_reg_t::hlo64\"] [:: std :: mem :: offset_of ! (ymm_reg_t , hlo64) - 16usize] ; [\"Offset of field: ymm_reg_t::hhi64\"] [:: std :: mem :: offset_of ! (ymm_reg_t , hhi64) - 24usize] ; } ; # [doc = \" <add-type id=\\\"xmm_reg_t\\\"> </add-type>\"] # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct xmm_reg_t { pub lo64 : uint64 , pub hi64 : uint64 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of xmm_reg_t\"] [:: std :: mem :: size_of :: < xmm_reg_t > () - 16usize] ; [\"Alignment of xmm_reg_t\"] [:: std :: mem :: align_of :: < xmm_reg_t > () - 8usize] ; [\"Offset of field: xmm_reg_t::lo64\"] [:: std :: mem :: offset_of ! (xmm_reg_t , lo64) - 0usize] ; [\"Offset of field: xmm_reg_t::hi64\"] [:: std :: mem :: offset_of ! (xmm_reg_t , hi64) - 8usize] ; } ; # [repr (u32)] # [doc = \" <add-type id=\\\"x86_exec_mode_t\\\"> </add-type>\"] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub enum x86_exec_mode_t { X86_Exec_Mode_Real = 0 , X86_Exec_Mode_V86 = 1 , X86_Exec_Mode_Prot = 2 , X86_Exec_Mode_Compat = 3 , X86_Exec_Mode_64 = 4 , } # [repr (u32)] # [doc = \" <add-type id=\\\"x86_detailed_exec_mode_t\\\"> </add-type>\"] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub enum x86_detailed_exec_mode_t { X86_Detailed_Exec_Mode_Real_16 = 0 , X86_Detailed_Exec_Mode_Real_32 = 1 , X86_Detailed_Exec_Mode_V86 = 2 , X86_Detailed_Exec_Mode_Protected_16 = 3 , X86_Detailed_Exec_Mode_Protected_32 = 4 , X86_Detailed_Exec_Mode_Protected_64 = 5 , X86_Detailed_Exec_Mode_Compatibility_16 = 6 , X86_Detailed_Exec_Mode_Compatibility_32 = 7 , } # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct x86_monitor_info_t { pub armed : bool , pub address : uint64 , pub extensions : uint64 , pub hints : uint64 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of x86_monitor_info_t\"] [:: std :: mem :: size_of :: < x86_monitor_info_t > () - 32usize] ; [\"Alignment of x86_monitor_info_t\"] [:: std :: mem :: align_of :: < x86_monitor_info_t > () - 8usize] ; [\"Offset of field: x86_monitor_info_t::armed\"] [:: std :: mem :: offset_of ! (x86_monitor_info_t , armed) - 0usize] ; [\"Offset of field: x86_monitor_info_t::address\"] [:: std :: mem :: offset_of ! (x86_monitor_info_t , address) - 8usize] ; [\"Offset of field: x86_monitor_info_t::extensions\"] [:: std :: mem :: offset_of ! (x86_monitor_info_t , extensions) - 16usize] ; [\"Offset of field: x86_monitor_info_t::hints\"] [:: std :: mem :: offset_of ! (x86_monitor_info_t , hints) - 24usize] ; } ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct x86_mwait_info_t { pub extensions : uint64 , pub hints : uint64 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of x86_mwait_info_t\"] [:: std :: mem :: size_of :: < x86_mwait_info_t > () - 16usize] ; [\"Alignment of x86_mwait_info_t\"] [:: std :: mem :: align_of :: < x86_mwait_info_t > () - 8usize] ; [\"Offset of field: x86_mwait_info_t::extensions\"] [:: std :: mem :: offset_of ! (x86_mwait_info_t , extensions) - 0usize] ; [\"Offset of field: x86_mwait_info_t::hints\"] [:: std :: mem :: offset_of ! (x86_mwait_info_t , hints) - 8usize] ; } ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct x86_pending_debug_exc_t { pub pending : bool , pub pending_dr6 : uint64 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of x86_pending_debug_exc_t\"] [:: std :: mem :: size_of :: < x86_pending_debug_exc_t > () - 16usize] ; [\"Alignment of x86_pending_debug_exc_t\"] [:: std :: mem :: align_of :: < x86_pending_debug_exc_t > () - 8usize] ; [\"Offset of field: x86_pending_debug_exc_t::pending\"] [:: std :: mem :: offset_of ! (x86_pending_debug_exc_t , pending) - 0usize] ; [\"Offset of field: x86_pending_debug_exc_t::pending_dr6\"] [:: std :: mem :: offset_of ! (x86_pending_debug_exc_t , pending_dr6) - 8usize] ; } ; # [doc = \" <add-type id=\\\"x86_fpu_reg_t\\\"> </add-type>\"] # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct x86_fpu_reg_t { pub low : uint64 , pub high : uint16 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of x86_fpu_reg_t\"] [:: std :: mem :: size_of :: < x86_fpu_reg_t > () - 16usize] ; [\"Alignment of x86_fpu_reg_t\"] [:: std :: mem :: align_of :: < x86_fpu_reg_t > () - 8usize] ; [\"Offset of field: x86_fpu_reg_t::low\"] [:: std :: mem :: offset_of ! (x86_fpu_reg_t , low) - 0usize] ; [\"Offset of field: x86_fpu_reg_t::high\"] [:: std :: mem :: offset_of ! (x86_fpu_reg_t , high) - 8usize] ; } ; # [doc = \" <add-type id=\\\"x86_fpu_env_t\\\"> </add-type>\"] # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct x86_fpu_env_t { pub cw : uint16 , pub sw : uint16 , pub tag : uint16 , pub opc : uint16 , pub last_instr_ptr : uint64 , pub last_operand_ptr : uint64 , pub last_instr_sel : uint16 , pub last_operand_sel : uint16 , pub pad : uint32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of x86_fpu_env_t\"] [:: std :: mem :: size_of :: < x86_fpu_env_t > () - 32usize] ; [\"Alignment of x86_fpu_env_t\"] [:: std :: mem :: align_of :: < x86_fpu_env_t > () - 8usize] ; [\"Offset of field: x86_fpu_env_t::cw\"] [:: std :: mem :: offset_of ! (x86_fpu_env_t , cw) - 0usize] ; [\"Offset of field: x86_fpu_env_t::sw\"] [:: std :: mem :: offset_of ! (x86_fpu_env_t , sw) - 2usize] ; [\"Offset of field: x86_fpu_env_t::tag\"] [:: std :: mem :: offset_of ! (x86_fpu_env_t , tag) - 4usize] ; [\"Offset of field: x86_fpu_env_t::opc\"] [:: std :: mem :: offset_of ! (x86_fpu_env_t , opc) - 6usize] ; [\"Offset of field: x86_fpu_env_t::last_instr_ptr\"] [:: std :: mem :: offset_of ! (x86_fpu_env_t , last_instr_ptr) - 8usize] ; [\"Offset of field: x86_fpu_env_t::last_operand_ptr\"] [:: std :: mem :: offset_of ! (x86_fpu_env_t , last_operand_ptr) - 16usize] ; [\"Offset of field: x86_fpu_env_t::last_instr_sel\"] [:: std :: mem :: offset_of ! (x86_fpu_env_t , last_instr_sel) - 24usize] ; [\"Offset of field: x86_fpu_env_t::last_operand_sel\"] [:: std :: mem :: offset_of ! (x86_fpu_env_t , last_operand_sel) - 26usize] ; [\"Offset of field: x86_fpu_env_t::pad\"] [:: std :: mem :: offset_of ! (x86_fpu_env_t , pad) - 28usize] ; } ; # [repr (u32)] # [doc = \" <add-type id=\\\"x86_seg_t\\\"> </add-type>\"] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub enum x86_seg_t { X86_Seg_ES = 0 , X86_Seg_CS = 1 , X86_Seg_SS = 2 , X86_Seg_DS = 3 , X86_Seg_FS = 4 , X86_Seg_GS = 5 , X86_Seg_LDTR = 6 , X86_Seg_TR = 7 , X86_Seg_None = 8 , } # [repr (u32)] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub enum x86_intstate_t { X86_Intstate_Not_Blocking = 0 , X86_Intstate_Blocking_INT_Sti = 1 , X86_Intstate_Blocking_INT_Mov_Ss = 2 , X86_Intstate_Blocking_INIT = 4 , X86_Intstate_Blocking_SMI = 8 , X86_Intstate_Blocking_NMI = 16 , } pub type x86_reg_access_interface_t = x86_reg_access_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct x86_reg_access_interface { pub get_gpr : :: std :: option :: Option < unsafe extern \"C\" fn (cpu : * mut conf_object_t , index : :: std :: os :: raw :: c_uint) -> uint64 > , pub set_gpr : :: std :: option :: Option < unsafe extern \"C\" fn (cpu : * mut conf_object_t , index : :: std :: os :: raw :: c_uint , val : uint64) > , pub get_rip : :: std :: option :: Option < unsafe extern \"C\" fn (cpu : * mut conf_object_t) -> uint64 > , pub set_rip : :: std :: option :: Option < unsafe extern \"C\" fn (cpu : * mut conf_object_t , rip : uint64) > , pub get_rflags : :: std :: option :: Option < unsafe extern \"C\" fn (cpu : * mut conf_object_t) -> uint64 > , pub set_rflags : :: std :: option :: Option < unsafe extern \"C\" fn (cpu : * mut conf_object_t , rflags : uint64) > , # [doc = \" Possibly faster method for setting only cf,pf,af,zf,sf,of\"] pub set_status_flags : :: std :: option :: Option < unsafe extern \"C\" fn (cpu : * mut conf_object_t , flags : uint16) > , # [doc = \" Regular segment registers\"] pub get_seg : :: std :: option :: Option < unsafe extern \"C\" fn (cpu : * mut conf_object_t , n : x86_seg_t) -> x86_seg_reg_t > , pub set_seg : :: std :: option :: Option < unsafe extern \"C\" fn (cpu : * mut conf_object_t , n : x86_seg_t , seg : x86_seg_reg_t) > , # [doc = \" IDTR and GDTR\"] pub get_system_seg : :: std :: option :: Option < unsafe extern \"C\" fn (cpu : * mut conf_object_t , n : x86_system_seg_t) -> x86_system_seg_reg_t > , pub set_system_seg : :: std :: option :: Option < unsafe extern \"C\" fn (cpu : * mut conf_object_t , n : x86_system_seg_t , seg : x86_system_seg_reg_t) > , # [doc = \" Control registers\"] pub get_cr : :: std :: option :: Option < unsafe extern \"C\" fn (cpu : * mut conf_object_t , n : x86_cr_t) -> uint64 > , pub set_cr : :: std :: option :: Option < unsafe extern \"C\" fn (cpu : * mut conf_object_t , n : x86_cr_t , val : uint64) > , pub get_efer : :: std :: option :: Option < unsafe extern \"C\" fn (cpu : * mut conf_object_t) -> uint64 > , pub set_efer : :: std :: option :: Option < unsafe extern \"C\" fn (cpu : * mut conf_object_t , efer : uint64) > , pub get_xcr : :: std :: option :: Option < unsafe extern \"C\" fn (cpu : * mut conf_object_t , n : x86_xcr_t) -> uint64 > , pub set_xcr : :: std :: option :: Option < unsafe extern \"C\" fn (cpu : * mut conf_object_t , n : x86_xcr_t , val : uint64) > , # [doc = \" x87 FPU\"] pub get_freg : :: std :: option :: Option < unsafe extern \"C\" fn (cpu : * mut conf_object_t , index : :: std :: os :: raw :: c_uint) -> x86_fpu_reg_t > , pub set_freg : :: std :: option :: Option < unsafe extern \"C\" fn (cpu : * mut conf_object_t , index : :: std :: os :: raw :: c_uint , freg : x86_fpu_reg_t) > , pub get_fpu_env : :: std :: option :: Option < unsafe extern \"C\" fn (cpu : * mut conf_object_t) -> x86_fpu_env_t > , pub set_fpu_env : :: std :: option :: Option < unsafe extern \"C\" fn (cpu : * mut conf_object_t , state : x86_fpu_env_t) > , # [doc = \" SIMD\"] pub get_xmm : :: std :: option :: Option < unsafe extern \"C\" fn (cpu : * mut conf_object_t , index : :: std :: os :: raw :: c_uint) -> xmm_reg_t > , pub set_xmm : :: std :: option :: Option < unsafe extern \"C\" fn (cpu : * mut conf_object_t , index : :: std :: os :: raw :: c_uint , val : xmm_reg_t) > , pub get_ymm : :: std :: option :: Option < unsafe extern \"C\" fn (cpu : * mut conf_object_t , index : :: std :: os :: raw :: c_uint) -> ymm_reg_t > , pub set_ymm : :: std :: option :: Option < unsafe extern \"C\" fn (cpu : * mut conf_object_t , index : :: std :: os :: raw :: c_uint , val : ymm_reg_t) > , pub get_mxcsr : :: std :: option :: Option < unsafe extern \"C\" fn (cpu : * mut conf_object_t) -> uint32 > , pub set_mxcsr : :: std :: option :: Option < unsafe extern \"C\" fn (cpu : * mut conf_object_t , mxcsr : uint32) > , # [doc = \" Debug registers\"] pub get_dr : :: std :: option :: Option < unsafe extern \"C\" fn (cpu : * mut conf_object_t , n : x86_dr_t) -> uint64 > , pub set_dr : :: std :: option :: Option < unsafe extern \"C\" fn (cpu : * mut conf_object_t , n : x86_dr_t , val : uint64) > , # [doc = \" SMM\"] pub get_in_smm : :: std :: option :: Option < unsafe extern \"C\" fn (cpu : * mut conf_object_t) -> bool > , pub set_in_smm : :: std :: option :: Option < unsafe extern \"C\" fn (cpu : * mut conf_object_t , val : bool) > , pub get_smm_base : :: std :: option :: Option < unsafe extern \"C\" fn (cpu : * mut conf_object_t) -> uint64 > , pub set_smm_base : :: std :: option :: Option < unsafe extern \"C\" fn (cpu : * mut conf_object_t , val : uint64) > , # [doc = \" Monitor/Mwait\"] pub get_monitor_info : :: std :: option :: Option < unsafe extern \"C\" fn (cpu : * mut conf_object_t) -> x86_monitor_info_t > , pub set_monitor_info : :: std :: option :: Option < unsafe extern \"C\" fn (cpu : * mut conf_object_t , val : x86_monitor_info_t) > , pub get_mwait_info : :: std :: option :: Option < unsafe extern \"C\" fn (cpu : * mut conf_object_t) -> x86_mwait_info_t > , pub set_mwait_info : :: std :: option :: Option < unsafe extern \"C\" fn (cpu : * mut conf_object_t , val : x86_mwait_info_t) > , # [doc = \" Non-register state\"] pub get_activity_state : :: std :: option :: Option < unsafe extern \"C\" fn (cpu : * mut conf_object_t) -> x86_activity_t > , pub set_activity_state : :: std :: option :: Option < unsafe extern \"C\" fn (cpu : * mut conf_object_t , val : x86_activity_t) > , pub get_interruptibility_state : :: std :: option :: Option < unsafe extern \"C\" fn (cpu : * mut conf_object_t) -> x86_intstate_t > , pub set_interruptibility_state : :: std :: option :: Option < unsafe extern \"C\" fn (cpu : * mut conf_object_t , val : x86_intstate_t) > , # [doc = \" A debug exception is pending if triggered by the last instruction,\\nbut not yet taken.\"] pub get_pending_debug_exc : :: std :: option :: Option < unsafe extern \"C\" fn (cpu : * mut conf_object_t) -> x86_pending_debug_exc_t > , pub set_pending_debug_exc : :: std :: option :: Option < unsafe extern \"C\" fn (cpu : * mut conf_object_t , val : x86_pending_debug_exc_t) > , # [doc = \" Derived state for fast/easy access\"] pub get_xmode_info : :: std :: option :: Option < unsafe extern \"C\" fn (cpu : * mut conf_object_t) -> x86_xmode_info_t > , pub get_exec_mode : :: std :: option :: Option < unsafe extern \"C\" fn (cpu : * mut conf_object_t) -> x86_exec_mode_t > , # [doc = \" This is configuration info. No need for a set method.\"] pub get_mxcsr_mask : :: std :: option :: Option < unsafe extern \"C\" fn (cpu : * mut conf_object_t) -> uint32 > , # [doc = \" Extension state dirty bit modification (for XSAVE)\"] pub get_ext_state_dirty_bits : :: std :: option :: Option < unsafe extern \"C\" fn (cpu : * mut conf_object_t) -> uint64 > , pub or_ext_state_dirty_bits : :: std :: option :: Option < unsafe extern \"C\" fn (cpu : * mut conf_object_t , dirty_bits : uint64) > , pub and_ext_state_dirty_bits : :: std :: option :: Option < unsafe extern \"C\" fn (cpu : * mut conf_object_t , dirty_bits : uint64) > , # [doc = \" PDPTE registers used in PAE paging mode\"] pub get_pdpte : :: std :: option :: Option < unsafe extern \"C\" fn (cpu : * mut conf_object_t , num : :: std :: os :: raw :: c_int) -> uint64 > , pub set_pdpte : :: std :: option :: Option < unsafe extern \"C\" fn (cpu : * mut conf_object_t , num : :: std :: os :: raw :: c_int , val : uint64) > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of x86_reg_access_interface\"] [:: std :: mem :: size_of :: < x86_reg_access_interface > () - 408usize] ; [\"Alignment of x86_reg_access_interface\"] [:: std :: mem :: align_of :: < x86_reg_access_interface > () - 8usize] ; [\"Offset of field: x86_reg_access_interface::get_gpr\"] [:: std :: mem :: offset_of ! (x86_reg_access_interface , get_gpr) - 0usize] ; [\"Offset of field: x86_reg_access_interface::set_gpr\"] [:: std :: mem :: offset_of ! (x86_reg_access_interface , set_gpr) - 8usize] ; [\"Offset of field: x86_reg_access_interface::get_rip\"] [:: std :: mem :: offset_of ! (x86_reg_access_interface , get_rip) - 16usize] ; [\"Offset of field: x86_reg_access_interface::set_rip\"] [:: std :: mem :: offset_of ! (x86_reg_access_interface , set_rip) - 24usize] ; [\"Offset of field: x86_reg_access_interface::get_rflags\"] [:: std :: mem :: offset_of ! (x86_reg_access_interface , get_rflags) - 32usize] ; [\"Offset of field: x86_reg_access_interface::set_rflags\"] [:: std :: mem :: offset_of ! (x86_reg_access_interface , set_rflags) - 40usize] ; [\"Offset of field: x86_reg_access_interface::set_status_flags\"] [:: std :: mem :: offset_of ! (x86_reg_access_interface , set_status_flags) - 48usize] ; [\"Offset of field: x86_reg_access_interface::get_seg\"] [:: std :: mem :: offset_of ! (x86_reg_access_interface , get_seg) - 56usize] ; [\"Offset of field: x86_reg_access_interface::set_seg\"] [:: std :: mem :: offset_of ! (x86_reg_access_interface , set_seg) - 64usize] ; [\"Offset of field: x86_reg_access_interface::get_system_seg\"] [:: std :: mem :: offset_of ! (x86_reg_access_interface , get_system_seg) - 72usize] ; [\"Offset of field: x86_reg_access_interface::set_system_seg\"] [:: std :: mem :: offset_of ! (x86_reg_access_interface , set_system_seg) - 80usize] ; [\"Offset of field: x86_reg_access_interface::get_cr\"] [:: std :: mem :: offset_of ! (x86_reg_access_interface , get_cr) - 88usize] ; [\"Offset of field: x86_reg_access_interface::set_cr\"] [:: std :: mem :: offset_of ! (x86_reg_access_interface , set_cr) - 96usize] ; [\"Offset of field: x86_reg_access_interface::get_efer\"] [:: std :: mem :: offset_of ! (x86_reg_access_interface , get_efer) - 104usize] ; [\"Offset of field: x86_reg_access_interface::set_efer\"] [:: std :: mem :: offset_of ! (x86_reg_access_interface , set_efer) - 112usize] ; [\"Offset of field: x86_reg_access_interface::get_xcr\"] [:: std :: mem :: offset_of ! (x86_reg_access_interface , get_xcr) - 120usize] ; [\"Offset of field: x86_reg_access_interface::set_xcr\"] [:: std :: mem :: offset_of ! (x86_reg_access_interface , set_xcr) - 128usize] ; [\"Offset of field: x86_reg_access_interface::get_freg\"] [:: std :: mem :: offset_of ! (x86_reg_access_interface , get_freg) - 136usize] ; [\"Offset of field: x86_reg_access_interface::set_freg\"] [:: std :: mem :: offset_of ! (x86_reg_access_interface , set_freg) - 144usize] ; [\"Offset of field: x86_reg_access_interface::get_fpu_env\"] [:: std :: mem :: offset_of ! (x86_reg_access_interface , get_fpu_env) - 152usize] ; [\"Offset of field: x86_reg_access_interface::set_fpu_env\"] [:: std :: mem :: offset_of ! (x86_reg_access_interface , set_fpu_env) - 160usize] ; [\"Offset of field: x86_reg_access_interface::get_xmm\"] [:: std :: mem :: offset_of ! (x86_reg_access_interface , get_xmm) - 168usize] ; [\"Offset of field: x86_reg_access_interface::set_xmm\"] [:: std :: mem :: offset_of ! (x86_reg_access_interface , set_xmm) - 176usize] ; [\"Offset of field: x86_reg_access_interface::get_ymm\"] [:: std :: mem :: offset_of ! (x86_reg_access_interface , get_ymm) - 184usize] ; [\"Offset of field: x86_reg_access_interface::set_ymm\"] [:: std :: mem :: offset_of ! (x86_reg_access_interface , set_ymm) - 192usize] ; [\"Offset of field: x86_reg_access_interface::get_mxcsr\"] [:: std :: mem :: offset_of ! (x86_reg_access_interface , get_mxcsr) - 200usize] ; [\"Offset of field: x86_reg_access_interface::set_mxcsr\"] [:: std :: mem :: offset_of ! (x86_reg_access_interface , set_mxcsr) - 208usize] ; [\"Offset of field: x86_reg_access_interface::get_dr\"] [:: std :: mem :: offset_of ! (x86_reg_access_interface , get_dr) - 216usize] ; [\"Offset of field: x86_reg_access_interface::set_dr\"] [:: std :: mem :: offset_of ! (x86_reg_access_interface , set_dr) - 224usize] ; [\"Offset of field: x86_reg_access_interface::get_in_smm\"] [:: std :: mem :: offset_of ! (x86_reg_access_interface , get_in_smm) - 232usize] ; [\"Offset of field: x86_reg_access_interface::set_in_smm\"] [:: std :: mem :: offset_of ! (x86_reg_access_interface , set_in_smm) - 240usize] ; [\"Offset of field: x86_reg_access_interface::get_smm_base\"] [:: std :: mem :: offset_of ! (x86_reg_access_interface , get_smm_base) - 248usize] ; [\"Offset of field: x86_reg_access_interface::set_smm_base\"] [:: std :: mem :: offset_of ! (x86_reg_access_interface , set_smm_base) - 256usize] ; [\"Offset of field: x86_reg_access_interface::get_monitor_info\"] [:: std :: mem :: offset_of ! (x86_reg_access_interface , get_monitor_info) - 264usize] ; [\"Offset of field: x86_reg_access_interface::set_monitor_info\"] [:: std :: mem :: offset_of ! (x86_reg_access_interface , set_monitor_info) - 272usize] ; [\"Offset of field: x86_reg_access_interface::get_mwait_info\"] [:: std :: mem :: offset_of ! (x86_reg_access_interface , get_mwait_info) - 280usize] ; [\"Offset of field: x86_reg_access_interface::set_mwait_info\"] [:: std :: mem :: offset_of ! (x86_reg_access_interface , set_mwait_info) - 288usize] ; [\"Offset of field: x86_reg_access_interface::get_activity_state\"] [:: std :: mem :: offset_of ! (x86_reg_access_interface , get_activity_state) - 296usize] ; [\"Offset of field: x86_reg_access_interface::set_activity_state\"] [:: std :: mem :: offset_of ! (x86_reg_access_interface , set_activity_state) - 304usize] ; [\"Offset of field: x86_reg_access_interface::get_interruptibility_state\"] [:: std :: mem :: offset_of ! (x86_reg_access_interface , get_interruptibility_state) - 312usize] ; [\"Offset of field: x86_reg_access_interface::set_interruptibility_state\"] [:: std :: mem :: offset_of ! (x86_reg_access_interface , set_interruptibility_state) - 320usize] ; [\"Offset of field: x86_reg_access_interface::get_pending_debug_exc\"] [:: std :: mem :: offset_of ! (x86_reg_access_interface , get_pending_debug_exc) - 328usize] ; [\"Offset of field: x86_reg_access_interface::set_pending_debug_exc\"] [:: std :: mem :: offset_of ! (x86_reg_access_interface , set_pending_debug_exc) - 336usize] ; [\"Offset of field: x86_reg_access_interface::get_xmode_info\"] [:: std :: mem :: offset_of ! (x86_reg_access_interface , get_xmode_info) - 344usize] ; [\"Offset of field: x86_reg_access_interface::get_exec_mode\"] [:: std :: mem :: offset_of ! (x86_reg_access_interface , get_exec_mode) - 352usize] ; [\"Offset of field: x86_reg_access_interface::get_mxcsr_mask\"] [:: std :: mem :: offset_of ! (x86_reg_access_interface , get_mxcsr_mask) - 360usize] ; [\"Offset of field: x86_reg_access_interface::get_ext_state_dirty_bits\"] [:: std :: mem :: offset_of ! (x86_reg_access_interface , get_ext_state_dirty_bits) - 368usize] ; [\"Offset of field: x86_reg_access_interface::or_ext_state_dirty_bits\"] [:: std :: mem :: offset_of ! (x86_reg_access_interface , or_ext_state_dirty_bits) - 376usize] ; [\"Offset of field: x86_reg_access_interface::and_ext_state_dirty_bits\"] [:: std :: mem :: offset_of ! (x86_reg_access_interface , and_ext_state_dirty_bits) - 384usize] ; [\"Offset of field: x86_reg_access_interface::get_pdpte\"] [:: std :: mem :: offset_of ! (x86_reg_access_interface , get_pdpte) - 392usize] ; [\"Offset of field: x86_reg_access_interface::set_pdpte\"] [:: std :: mem :: offset_of ! (x86_reg_access_interface , set_pdpte) - 400usize] ; } ; pub type x86_exception_interface_t = x86_exception_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct x86_exception_interface { pub DE_fault : :: std :: option :: Option < unsafe extern \"C\" fn (cpu : * mut conf_object_t) > , pub BR_fault : :: std :: option :: Option < unsafe extern \"C\" fn (cpu : * mut conf_object_t) > , pub UD_fault : :: std :: option :: Option < unsafe extern \"C\" fn (cpu : * mut conf_object_t) > , pub NM_fault : :: std :: option :: Option < unsafe extern \"C\" fn (cpu : * mut conf_object_t) > , pub DF_abort : :: std :: option :: Option < unsafe extern \"C\" fn (cpu : * mut conf_object_t , desc : * const :: std :: os :: raw :: c_char) > , pub TS_fault : :: std :: option :: Option < unsafe extern \"C\" fn (cpu : * mut conf_object_t , sel : uint16) > , pub NP_fault : :: std :: option :: Option < unsafe extern \"C\" fn (cpu : * mut conf_object_t , sel_vec : uint16 , is_vec : bool) > , pub SS_fault : :: std :: option :: Option < unsafe extern \"C\" fn (cpu : * mut conf_object_t , sel : uint16) > , pub GP_fault : :: std :: option :: Option < unsafe extern \"C\" fn (cpu : * mut conf_object_t , sel_vec : uint16 , is_vec : bool , desc : * const :: std :: os :: raw :: c_char) > , pub PF_fault : :: std :: option :: Option < unsafe extern \"C\" fn (cpu : * mut conf_object_t , laddr : linear_address_t , ecode : uint32) > , pub MF_fault : :: std :: option :: Option < unsafe extern \"C\" fn (cpu : * mut conf_object_t) > , pub AC_fault : :: std :: option :: Option < unsafe extern \"C\" fn (cpu : * mut conf_object_t) > , pub XM_fault : :: std :: option :: Option < unsafe extern \"C\" fn (cpu : * mut conf_object_t) > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of x86_exception_interface\"] [:: std :: mem :: size_of :: < x86_exception_interface > () - 104usize] ; [\"Alignment of x86_exception_interface\"] [:: std :: mem :: align_of :: < x86_exception_interface > () - 8usize] ; [\"Offset of field: x86_exception_interface::DE_fault\"] [:: std :: mem :: offset_of ! (x86_exception_interface , DE_fault) - 0usize] ; [\"Offset of field: x86_exception_interface::BR_fault\"] [:: std :: mem :: offset_of ! (x86_exception_interface , BR_fault) - 8usize] ; [\"Offset of field: x86_exception_interface::UD_fault\"] [:: std :: mem :: offset_of ! (x86_exception_interface , UD_fault) - 16usize] ; [\"Offset of field: x86_exception_interface::NM_fault\"] [:: std :: mem :: offset_of ! (x86_exception_interface , NM_fault) - 24usize] ; [\"Offset of field: x86_exception_interface::DF_abort\"] [:: std :: mem :: offset_of ! (x86_exception_interface , DF_abort) - 32usize] ; [\"Offset of field: x86_exception_interface::TS_fault\"] [:: std :: mem :: offset_of ! (x86_exception_interface , TS_fault) - 40usize] ; [\"Offset of field: x86_exception_interface::NP_fault\"] [:: std :: mem :: offset_of ! (x86_exception_interface , NP_fault) - 48usize] ; [\"Offset of field: x86_exception_interface::SS_fault\"] [:: std :: mem :: offset_of ! (x86_exception_interface , SS_fault) - 56usize] ; [\"Offset of field: x86_exception_interface::GP_fault\"] [:: std :: mem :: offset_of ! (x86_exception_interface , GP_fault) - 64usize] ; [\"Offset of field: x86_exception_interface::PF_fault\"] [:: std :: mem :: offset_of ! (x86_exception_interface , PF_fault) - 72usize] ; [\"Offset of field: x86_exception_interface::MF_fault\"] [:: std :: mem :: offset_of ! (x86_exception_interface , MF_fault) - 80usize] ; [\"Offset of field: x86_exception_interface::AC_fault\"] [:: std :: mem :: offset_of ! (x86_exception_interface , AC_fault) - 88usize] ; [\"Offset of field: x86_exception_interface::XM_fault\"] [:: std :: mem :: offset_of ! (x86_exception_interface , XM_fault) - 96usize] ; } ; # [repr (u32)] # [doc = \" <add-type id=\\\"x86_exception_source\\\">\\nDefines different exception sources for a given exception/interrupt.\\n</add-type>\"] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub enum x86_exception_source_t { X86_Exc_Hardware = 0 , X86_Exc_Software = 1 , X86_Exc_External = 2 , X86_Exc_Software_Debug = 3 , X86_Exc_Software_Priv = 4 , X86_Exc_Triple_Fault = 5 , X86_Exc_NMI = 6 , X86_Exc_Other_Event = 7 , } # [repr (u32)] # [doc = \" <add-type id=\\\"x86_processor_mode_t\\\"> </add-type>\"] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub enum x86_processor_mode_t { X86_Processor_Mode_Privileged = 0 , X86_Processor_Mode_User = 1 , X86_Processor_Mode_Current = 2 , } # [repr (u32)] # [doc = \" <add-type id=\\\"x86_alignment_t\\\"> </add-type>\"] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub enum x86_alignment_t { X86_Alignment_Not_Required = 0 , X86_Alignment_Required = 1 , } # [doc = \" <add-type id=\\\"x86_read_physical_ret_t\\\"> </add-type>\"] # [repr (C)] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct x86_read_physical_ret_t { pub value : uint64 , pub exception : exception_type_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of x86_read_physical_ret_t\"] [:: std :: mem :: size_of :: < x86_read_physical_ret_t > () - 16usize] ; [\"Alignment of x86_read_physical_ret_t\"] [:: std :: mem :: align_of :: < x86_read_physical_ret_t > () - 8usize] ; [\"Offset of field: x86_read_physical_ret_t::value\"] [:: std :: mem :: offset_of ! (x86_read_physical_ret_t , value) - 0usize] ; [\"Offset of field: x86_read_physical_ret_t::exception\"] [:: std :: mem :: offset_of ! (x86_read_physical_ret_t , exception) - 8usize] ; } ; impl Default for x86_read_physical_ret_t { fn default () -> Self { let mut s = :: std :: mem :: MaybeUninit :: < Self > :: uninit () ; unsafe { :: std :: ptr :: write_bytes (s . as_mut_ptr () , 0 , 1) ; s . assume_init () } } } pub type x86_memory_access_interface_t = x86_memory_access_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct x86_memory_access_interface { pub read_logical : :: std :: option :: Option < unsafe extern \"C\" fn (cpu : * mut conf_object_t , offs : logical_address_t , seg : x86_seg_t , len : :: std :: os :: raw :: c_uint , mode : x86_processor_mode_t , access_type : x86_access_type_t) -> uint64 > , pub read_logical_buf : :: std :: option :: Option < unsafe extern \"C\" fn (cpu : * mut conf_object_t , offs : logical_address_t , seg : x86_seg_t , len : :: std :: os :: raw :: c_uint , p : * mut :: std :: os :: raw :: c_void , mode : x86_processor_mode_t , access_type : x86_access_type_t , alignment : x86_alignment_t) > , pub write_logical : :: std :: option :: Option < unsafe extern \"C\" fn (cpu : * mut conf_object_t , offs : logical_address_t , seg : x86_seg_t , len : :: std :: os :: raw :: c_uint , val : uint64 , mode : x86_processor_mode_t , access_type : x86_access_type_t) > , pub write_logical_buf : :: std :: option :: Option < unsafe extern \"C\" fn (cpu : * mut conf_object_t , offs : logical_address_t , seg : x86_seg_t , len : :: std :: os :: raw :: c_uint , p : * const :: std :: os :: raw :: c_void , mode : x86_processor_mode_t , access_type : x86_access_type_t , alignment : x86_alignment_t) > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of x86_memory_access_interface\"] [:: std :: mem :: size_of :: < x86_memory_access_interface > () - 32usize] ; [\"Alignment of x86_memory_access_interface\"] [:: std :: mem :: align_of :: < x86_memory_access_interface > () - 8usize] ; [\"Offset of field: x86_memory_access_interface::read_logical\"] [:: std :: mem :: offset_of ! (x86_memory_access_interface , read_logical) - 0usize] ; [\"Offset of field: x86_memory_access_interface::read_logical_buf\"] [:: std :: mem :: offset_of ! (x86_memory_access_interface , read_logical_buf) - 8usize] ; [\"Offset of field: x86_memory_access_interface::write_logical\"] [:: std :: mem :: offset_of ! (x86_memory_access_interface , write_logical) - 16usize] ; [\"Offset of field: x86_memory_access_interface::write_logical_buf\"] [:: std :: mem :: offset_of ! (x86_memory_access_interface , write_logical_buf) - 24usize] ; } ; pub type x86_memory_operation_interface_t = x86_memory_operation_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct x86_memory_operation_interface { pub read_logical : :: std :: option :: Option < unsafe extern \"C\" fn (cpu : * mut conf_object_t , seg : x86_seg_t , offs : logical_address_t , size : :: std :: os :: raw :: c_uint , mode : x86_processor_mode_t , access_type : x86_access_type_t) -> uint64 > , pub read_logical_buf : :: std :: option :: Option < unsafe extern \"C\" fn (cpu : * mut conf_object_t , dst : * mut uint8 , seg : x86_seg_t , offs : logical_address_t , size : :: std :: os :: raw :: c_uint , mode : x86_processor_mode_t , access_type : x86_access_type_t) > , pub write_logical : :: std :: option :: Option < unsafe extern \"C\" fn (cpu : * mut conf_object_t , val : uint64 , seg : x86_seg_t , offs : logical_address_t , size : :: std :: os :: raw :: c_uint , mode : x86_processor_mode_t , access_type : x86_access_type_t) > , pub write_logical_buf : :: std :: option :: Option < unsafe extern \"C\" fn (cpu : * mut conf_object_t , src : * const uint8 , seg : x86_seg_t , offs : logical_address_t , size : :: std :: os :: raw :: c_uint , mode : x86_processor_mode_t , access_type : x86_access_type_t) > , pub read_physical : :: std :: option :: Option < unsafe extern \"C\" fn (cpu : * mut conf_object_t , address : physical_address_t , size : :: std :: os :: raw :: c_uint , access_type : x86_access_type_t) -> x86_read_physical_ret_t > , pub read_physical_buf : :: std :: option :: Option < unsafe extern \"C\" fn (cpu : * mut conf_object_t , dst : * mut uint8 , address : physical_address_t , size : :: std :: os :: raw :: c_uint , access_type : x86_access_type_t) -> exception_type_t > , pub write_physical : :: std :: option :: Option < unsafe extern \"C\" fn (cpu : * mut conf_object_t , val : uint64 , address : physical_address_t , size : :: std :: os :: raw :: c_uint , access_type : x86_access_type_t) -> exception_type_t > , pub write_physical_buf : :: std :: option :: Option < unsafe extern \"C\" fn (cpu : * mut conf_object_t , src : * const uint8 , address : physical_address_t , size : :: std :: os :: raw :: c_uint , access_type : x86_access_type_t) -> exception_type_t > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of x86_memory_operation_interface\"] [:: std :: mem :: size_of :: < x86_memory_operation_interface > () - 64usize] ; [\"Alignment of x86_memory_operation_interface\"] [:: std :: mem :: align_of :: < x86_memory_operation_interface > () - 8usize] ; [\"Offset of field: x86_memory_operation_interface::read_logical\"] [:: std :: mem :: offset_of ! (x86_memory_operation_interface , read_logical) - 0usize] ; [\"Offset of field: x86_memory_operation_interface::read_logical_buf\"] [:: std :: mem :: offset_of ! (x86_memory_operation_interface , read_logical_buf) - 8usize] ; [\"Offset of field: x86_memory_operation_interface::write_logical\"] [:: std :: mem :: offset_of ! (x86_memory_operation_interface , write_logical) - 16usize] ; [\"Offset of field: x86_memory_operation_interface::write_logical_buf\"] [:: std :: mem :: offset_of ! (x86_memory_operation_interface , write_logical_buf) - 24usize] ; [\"Offset of field: x86_memory_operation_interface::read_physical\"] [:: std :: mem :: offset_of ! (x86_memory_operation_interface , read_physical) - 32usize] ; [\"Offset of field: x86_memory_operation_interface::read_physical_buf\"] [:: std :: mem :: offset_of ! (x86_memory_operation_interface , read_physical_buf) - 40usize] ; [\"Offset of field: x86_memory_operation_interface::write_physical\"] [:: std :: mem :: offset_of ! (x86_memory_operation_interface , write_physical) - 48usize] ; [\"Offset of field: x86_memory_operation_interface::write_physical_buf\"] [:: std :: mem :: offset_of ! (x86_memory_operation_interface , write_physical_buf) - 56usize] ; } ; pub type x86_vmp_control_interface_t = x86_vmp_control_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct x86_vmp_control_interface { pub get_block_count : :: std :: option :: Option < unsafe extern \"C\" fn (cpu : * mut conf_object_t) -> :: std :: os :: raw :: c_uint > , pub set_block_count : :: std :: option :: Option < unsafe extern \"C\" fn (cpu : * mut conf_object_t , cnt : :: std :: os :: raw :: c_uint) > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of x86_vmp_control_interface\"] [:: std :: mem :: size_of :: < x86_vmp_control_interface > () - 16usize] ; [\"Alignment of x86_vmp_control_interface\"] [:: std :: mem :: align_of :: < x86_vmp_control_interface > () - 8usize] ; [\"Offset of field: x86_vmp_control_interface::get_block_count\"] [:: std :: mem :: offset_of ! (x86_vmp_control_interface , get_block_count) - 0usize] ; [\"Offset of field: x86_vmp_control_interface::set_block_count\"] [:: std :: mem :: offset_of ! (x86_vmp_control_interface , set_block_count) - 8usize] ; } ; # [repr (u32)] # [doc = \" ADD INTERFACE x86_vmp_control_interface\"] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub enum vmp_feature_t { Vmp_Feature_Ept = 0 , Vmp_Feature_Tpr_Threshold = 1 , Vmp_Feature_Unrestricted_Guest = 2 , Vmp_Feature_Backoff = 3 , Vmp_Feature_Shadow_VMCS = 4 , Vmp_Feature_Nested_EPT = 5 , Vmp_Feature_Direct_Rdtsc = 6 , } # [repr (u32)] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub enum vmp_info_t { Vmp_Info_Cpu_Version = 0 , Vmp_Info_Vmxmon_Version = 1 , } pub type vmp_interface_t = vmp_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct vmp_interface { pub class_has_support : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t) -> bool > , pub host_support : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t) -> bool > , pub compatible_config : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t) -> bool > , pub enable : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t) -> bool > , pub disable : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t) > , pub enabled : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t) -> bool > , pub set_threshold : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , threshold : :: std :: os :: raw :: c_int) > , pub get_feature : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , feature : vmp_feature_t) -> bool > , pub set_feature : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , feature : vmp_feature_t , val : bool) -> bool > , pub get_info : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , info : vmp_info_t) -> uint64 > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of vmp_interface\"] [:: std :: mem :: size_of :: < vmp_interface > () - 80usize] ; [\"Alignment of vmp_interface\"] [:: std :: mem :: align_of :: < vmp_interface > () - 8usize] ; [\"Offset of field: vmp_interface::class_has_support\"] [:: std :: mem :: offset_of ! (vmp_interface , class_has_support) - 0usize] ; [\"Offset of field: vmp_interface::host_support\"] [:: std :: mem :: offset_of ! (vmp_interface , host_support) - 8usize] ; [\"Offset of field: vmp_interface::compatible_config\"] [:: std :: mem :: offset_of ! (vmp_interface , compatible_config) - 16usize] ; [\"Offset of field: vmp_interface::enable\"] [:: std :: mem :: offset_of ! (vmp_interface , enable) - 24usize] ; [\"Offset of field: vmp_interface::disable\"] [:: std :: mem :: offset_of ! (vmp_interface , disable) - 32usize] ; [\"Offset of field: vmp_interface::enabled\"] [:: std :: mem :: offset_of ! (vmp_interface , enabled) - 40usize] ; [\"Offset of field: vmp_interface::set_threshold\"] [:: std :: mem :: offset_of ! (vmp_interface , set_threshold) - 48usize] ; [\"Offset of field: vmp_interface::get_feature\"] [:: std :: mem :: offset_of ! (vmp_interface , get_feature) - 56usize] ; [\"Offset of field: vmp_interface::set_feature\"] [:: std :: mem :: offset_of ! (vmp_interface , set_feature) - 64usize] ; [\"Offset of field: vmp_interface::get_info\"] [:: std :: mem :: offset_of ! (vmp_interface , get_info) - 72usize] ; } ; # [repr (u32)] # [doc = \" ADD INTERFACE vmp_interface\"] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub enum xed_data_type_t { Xed_Iform = 0 , } pub type xed_access_interface_t = xed_access_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct xed_access_interface { pub get_last : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , type_ : xed_data_type_t) -> :: std :: os :: raw :: c_int > , pub decode : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , type_ : xed_data_type_t , bytes : bytes_t) -> :: std :: os :: raw :: c_int > , pub to_string : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , type_ : xed_data_type_t , value : :: std :: os :: raw :: c_int) -> * const :: std :: os :: raw :: c_char > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of xed_access_interface\"] [:: std :: mem :: size_of :: < xed_access_interface > () - 24usize] ; [\"Alignment of xed_access_interface\"] [:: std :: mem :: align_of :: < xed_access_interface > () - 8usize] ; [\"Offset of field: xed_access_interface::get_last\"] [:: std :: mem :: offset_of ! (xed_access_interface , get_last) - 0usize] ; [\"Offset of field: xed_access_interface::decode\"] [:: std :: mem :: offset_of ! (xed_access_interface , decode) - 8usize] ; [\"Offset of field: xed_access_interface::to_string\"] [:: std :: mem :: offset_of ! (xed_access_interface , to_string) - 16usize] ; } ; pub type x86_ept_interface_t = x86_ept_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct x86_ept_interface { pub guest_physical_to_physical : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , address : generic_address_t , cpu_mode : x86_processor_mode_t , access : access_t) -> physical_block_t > , pub is_ept_active : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t) -> bool > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of x86_ept_interface\"] [:: std :: mem :: size_of :: < x86_ept_interface > () - 16usize] ; [\"Alignment of x86_ept_interface\"] [:: std :: mem :: align_of :: < x86_ept_interface > () - 8usize] ; [\"Offset of field: x86_ept_interface::guest_physical_to_physical\"] [:: std :: mem :: offset_of ! (x86_ept_interface , guest_physical_to_physical) - 0usize] ; [\"Offset of field: x86_ept_interface::is_ept_active\"] [:: std :: mem :: offset_of ! (x86_ept_interface , is_ept_active) - 8usize] ; } ; pub type x86_instruction_query_interface_t = x86_instruction_query_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct x86_instruction_query_interface { pub linear_address : :: std :: option :: Option < unsafe extern \"C\" fn (cpu : * mut conf_object_t , handle : * mut instruction_handle_t) -> linear_address_t > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of x86_instruction_query_interface\"] [:: std :: mem :: size_of :: < x86_instruction_query_interface > () - 8usize] ; [\"Alignment of x86_instruction_query_interface\"] [:: std :: mem :: align_of :: < x86_instruction_query_interface > () - 8usize] ; [\"Offset of field: x86_instruction_query_interface::linear_address\"] [:: std :: mem :: offset_of ! (x86_instruction_query_interface , linear_address) - 0usize] ; } ; pub type x86_memory_query_interface_t = x86_memory_query_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct x86_memory_query_interface { pub linear_address : :: std :: option :: Option < unsafe extern \"C\" fn (cpu : * mut conf_object_t , handle : * mut memory_handle_t) -> linear_address_t > , pub segment : :: std :: option :: Option < unsafe extern \"C\" fn (cpu : * mut conf_object_t , handle : * mut memory_handle_t) -> x86_seg_t > , pub access_type : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , handle : * mut memory_handle_t) -> x86_access_type_t > , pub memory_type : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , handle : * mut memory_handle_t) -> x86_memory_type_t > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of x86_memory_query_interface\"] [:: std :: mem :: size_of :: < x86_memory_query_interface > () - 32usize] ; [\"Alignment of x86_memory_query_interface\"] [:: std :: mem :: align_of :: < x86_memory_query_interface > () - 8usize] ; [\"Offset of field: x86_memory_query_interface::linear_address\"] [:: std :: mem :: offset_of ! (x86_memory_query_interface , linear_address) - 0usize] ; [\"Offset of field: x86_memory_query_interface::segment\"] [:: std :: mem :: offset_of ! (x86_memory_query_interface , segment) - 8usize] ; [\"Offset of field: x86_memory_query_interface::access_type\"] [:: std :: mem :: offset_of ! (x86_memory_query_interface , access_type) - 16usize] ; [\"Offset of field: x86_memory_query_interface::memory_type\"] [:: std :: mem :: offset_of ! (x86_memory_query_interface , memory_type) - 24usize] ; } ; pub type x86_exception_query_interface_t = x86_exception_query_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct x86_exception_query_interface { pub vector : :: std :: option :: Option < unsafe extern \"C\" fn (cpu : * mut conf_object_t , handle : * mut exception_handle_t) -> uint8 > , pub source : :: std :: option :: Option < unsafe extern \"C\" fn (cpu : * mut conf_object_t , handle : * mut exception_handle_t) -> x86_exception_source_t > , pub error_code : :: std :: option :: Option < unsafe extern \"C\" fn (cpu : * mut conf_object_t , handle : * mut exception_handle_t) -> uint32 > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of x86_exception_query_interface\"] [:: std :: mem :: size_of :: < x86_exception_query_interface > () - 24usize] ; [\"Alignment of x86_exception_query_interface\"] [:: std :: mem :: align_of :: < x86_exception_query_interface > () - 8usize] ; [\"Offset of field: x86_exception_query_interface::vector\"] [:: std :: mem :: offset_of ! (x86_exception_query_interface , vector) - 0usize] ; [\"Offset of field: x86_exception_query_interface::source\"] [:: std :: mem :: offset_of ! (x86_exception_query_interface , source) - 8usize] ; [\"Offset of field: x86_exception_query_interface::error_code\"] [:: std :: mem :: offset_of ! (x86_exception_query_interface , error_code) - 16usize] ; } ; pub type x86_address_query_interface_t = x86_address_query_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct x86_address_query_interface { pub segment : :: std :: option :: Option < unsafe extern \"C\" fn (cpu : * mut conf_object_t , handle : * mut address_handle_t) -> x86_seg_t > , pub get_page_crossing_info : :: std :: option :: Option < unsafe extern \"C\" fn (cpu : * mut conf_object_t , handle : * mut address_handle_t) -> page_crossing_info_t > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of x86_address_query_interface\"] [:: std :: mem :: size_of :: < x86_address_query_interface > () - 16usize] ; [\"Alignment of x86_address_query_interface\"] [:: std :: mem :: align_of :: < x86_address_query_interface > () - 8usize] ; [\"Offset of field: x86_address_query_interface::segment\"] [:: std :: mem :: offset_of ! (x86_address_query_interface , segment) - 0usize] ; [\"Offset of field: x86_address_query_interface::get_page_crossing_info\"] [:: std :: mem :: offset_of ! (x86_address_query_interface , get_page_crossing_info) - 8usize] ; } ; # [doc = \" <add-type id=\\\"x86_mode_switch_cb_t\\\"></add-type>\"] pub type x86_mode_switch_cb_t = :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , cpu : * mut conf_object_t , mode : x86_detailed_exec_mode_t , user_data : * mut lang_void) > ; pub type x86_instrumentation_subscribe_interface_t = x86_instrumentation_subscribe_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct x86_instrumentation_subscribe_interface { pub register_mode_switch_cb : :: std :: option :: Option < unsafe extern \"C\" fn (cpu : * mut conf_object_t , connection : * mut conf_object_t , cb : x86_mode_switch_cb_t , user_data : * mut lang_void) -> * mut cpu_cb_handle_t > , pub register_illegal_instruction_cb : :: std :: option :: Option < unsafe extern \"C\" fn (cpu : * mut conf_object_t , connection : * mut conf_object_t , cb : cpu_instruction_decoder_cb_t , disass_cb : cpu_instruction_disassemble_cb_t , data : * mut lang_void) -> * mut cpu_cb_handle_t > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of x86_instrumentation_subscribe_interface\"] [:: std :: mem :: size_of :: < x86_instrumentation_subscribe_interface > () - 16usize] ; [\"Alignment of x86_instrumentation_subscribe_interface\"] [:: std :: mem :: align_of :: < x86_instrumentation_subscribe_interface > () - 8usize] ; [\"Offset of field: x86_instrumentation_subscribe_interface::register_mode_switch_cb\"] [:: std :: mem :: offset_of ! (x86_instrumentation_subscribe_interface , register_mode_switch_cb) - 0usize] ; [\"Offset of field: x86_instrumentation_subscribe_interface::register_illegal_instruction_cb\"] [:: std :: mem :: offset_of ! (x86_instrumentation_subscribe_interface , register_illegal_instruction_cb) - 8usize] ; } ; pub type x86_instrumentation_subscribe_v2_interface_t = x86_instrumentation_subscribe_v2_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct x86_instrumentation_subscribe_v2_interface { pub register_mode_enter_cb : :: std :: option :: Option < unsafe extern \"C\" fn (cpu : * mut conf_object_t , connection : * mut conf_object_t , cb : x86_mode_switch_cb_t , user_data : * mut lang_void) -> * mut cpu_cb_handle_t > , pub register_mode_leave_cb : :: std :: option :: Option < unsafe extern \"C\" fn (cpu : * mut conf_object_t , connection : * mut conf_object_t , cb : x86_mode_switch_cb_t , user_data : * mut lang_void) -> * mut cpu_cb_handle_t > , pub register_illegal_instruction_cb : :: std :: option :: Option < unsafe extern \"C\" fn (cpu : * mut conf_object_t , connection : * mut conf_object_t , cb : cpu_instruction_decoder_cb_t , disass_cb : cpu_instruction_disassemble_cb_t , data : * mut lang_void) -> * mut cpu_cb_handle_t > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of x86_instrumentation_subscribe_v2_interface\"] [:: std :: mem :: size_of :: < x86_instrumentation_subscribe_v2_interface > () - 24usize] ; [\"Alignment of x86_instrumentation_subscribe_v2_interface\"] [:: std :: mem :: align_of :: < x86_instrumentation_subscribe_v2_interface > () - 8usize] ; [\"Offset of field: x86_instrumentation_subscribe_v2_interface::register_mode_enter_cb\"] [:: std :: mem :: offset_of ! (x86_instrumentation_subscribe_v2_interface , register_mode_enter_cb) - 0usize] ; [\"Offset of field: x86_instrumentation_subscribe_v2_interface::register_mode_leave_cb\"] [:: std :: mem :: offset_of ! (x86_instrumentation_subscribe_v2_interface , register_mode_leave_cb) - 8usize] ; [\"Offset of field: x86_instrumentation_subscribe_v2_interface::register_illegal_instruction_cb\"] [:: std :: mem :: offset_of ! (x86_instrumentation_subscribe_v2_interface , register_illegal_instruction_cb) - 16usize] ; } ; # [repr (u32)] # [doc = \" <add-type id=\\\"vmx_mode_t\\\"> This enum is used to distinguish VMX modes. It is\\nused by the <type>vmx_mode_switch_cb_t</type>.\\n</add-type>\"] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub enum vmx_mode_t { Vmx_Off = 0 , Vmx_Root = 1 , Vmx_Non_Root = 2 , } # [doc = \" <add-type id=\\\"vmx_mode_switch_cb_t\\\">\\nThis callback type is used by the\\n<iface>vmx_instrumentation_subscribe</iface> to implements VMX mode switch\\ninstrumentation.\\n</add-type>\"] pub type vmx_mode_switch_cb_t = :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , cpu : * mut conf_object_t , mode : vmx_mode_t , vmcs_address : physical_address_t , user_data : * mut lang_void) > ; pub type vmx_instrumentation_subscribe_interface_t = vmx_instrumentation_subscribe_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct vmx_instrumentation_subscribe_interface { pub register_vmx_mode_leave_cb : :: std :: option :: Option < unsafe extern \"C\" fn (cpu : * mut conf_object_t , connection : * mut conf_object_t , cb : vmx_mode_switch_cb_t , user_data : * mut lang_void) -> * mut cpu_cb_handle_t > , pub register_vmx_mode_enter_cb : :: std :: option :: Option < unsafe extern \"C\" fn (cpu : * mut conf_object_t , connection : * mut conf_object_t , cb : vmx_mode_switch_cb_t , user_data : * mut lang_void) -> * mut cpu_cb_handle_t > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of vmx_instrumentation_subscribe_interface\"] [:: std :: mem :: size_of :: < vmx_instrumentation_subscribe_interface > () - 16usize] ; [\"Alignment of vmx_instrumentation_subscribe_interface\"] [:: std :: mem :: align_of :: < vmx_instrumentation_subscribe_interface > () - 8usize] ; [\"Offset of field: vmx_instrumentation_subscribe_interface::register_vmx_mode_leave_cb\"] [:: std :: mem :: offset_of ! (vmx_instrumentation_subscribe_interface , register_vmx_mode_leave_cb) - 0usize] ; [\"Offset of field: vmx_instrumentation_subscribe_interface::register_vmx_mode_enter_cb\"] [:: std :: mem :: offset_of ! (vmx_instrumentation_subscribe_interface , register_vmx_mode_enter_cb) - 8usize] ; } ; # [doc = \" <add-type id=\\\"smm_switch_cb_t\\\">\\nThis callback type is used by the\\n<iface>smm_instrumentation_subscribe</iface> to implement instrumentation.\\n</add-type>\"] pub type smm_switch_cb_t = :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , cpu : * mut conf_object_t , user_data : * mut lang_void) > ; pub type smm_instrumentation_subscribe_interface_t = smm_instrumentation_subscribe_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct smm_instrumentation_subscribe_interface { pub register_smm_enter_before_cb : :: std :: option :: Option < unsafe extern \"C\" fn (cpu : * mut conf_object_t , connection : * mut conf_object_t , cb : smm_switch_cb_t , user_data : * mut lang_void) -> * mut cpu_cb_handle_t > , pub register_smm_enter_after_cb : :: std :: option :: Option < unsafe extern \"C\" fn (cpu : * mut conf_object_t , connection : * mut conf_object_t , cb : smm_switch_cb_t , user_data : * mut lang_void) -> * mut cpu_cb_handle_t > , pub register_smm_leave_before_cb : :: std :: option :: Option < unsafe extern \"C\" fn (cpu : * mut conf_object_t , connection : * mut conf_object_t , cb : smm_switch_cb_t , user_data : * mut lang_void) -> * mut cpu_cb_handle_t > , pub register_smm_leave_after_cb : :: std :: option :: Option < unsafe extern \"C\" fn (cpu : * mut conf_object_t , connection : * mut conf_object_t , cb : smm_switch_cb_t , user_data : * mut lang_void) -> * mut cpu_cb_handle_t > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of smm_instrumentation_subscribe_interface\"] [:: std :: mem :: size_of :: < smm_instrumentation_subscribe_interface > () - 32usize] ; [\"Alignment of smm_instrumentation_subscribe_interface\"] [:: std :: mem :: align_of :: < smm_instrumentation_subscribe_interface > () - 8usize] ; [\"Offset of field: smm_instrumentation_subscribe_interface::register_smm_enter_before_cb\"] [:: std :: mem :: offset_of ! (smm_instrumentation_subscribe_interface , register_smm_enter_before_cb) - 0usize] ; [\"Offset of field: smm_instrumentation_subscribe_interface::register_smm_enter_after_cb\"] [:: std :: mem :: offset_of ! (smm_instrumentation_subscribe_interface , register_smm_enter_after_cb) - 8usize] ; [\"Offset of field: smm_instrumentation_subscribe_interface::register_smm_leave_before_cb\"] [:: std :: mem :: offset_of ! (smm_instrumentation_subscribe_interface , register_smm_leave_before_cb) - 16usize] ; [\"Offset of field: smm_instrumentation_subscribe_interface::register_smm_leave_after_cb\"] [:: std :: mem :: offset_of ! (smm_instrumentation_subscribe_interface , register_smm_leave_after_cb) - 24usize] ; } ; # [repr (u32)] # [doc = \" ADD INTERFACE smm_instrumentation_subscribe\"] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub enum x86_stream_enum_t { X86_Stream_Instruction_LA = 32 , X86_Stream_Instruction_LA_After = 33 , X86_Stream_Read_Memory = 34 , X86_Stream_Write_Memory = 35 , X86_Stream_Last = 36 , } # [doc = \" <add-type id=\\\"mips_memory_transaction_t def\\\">\\n</add-type>\"] # [repr (C)] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct mips_memory_transaction { # [doc = \" generic transaction\"] pub s : generic_transaction_t , pub _bitfield_align_1 : [u8 ; 0] , pub _bitfield_1 : __BindgenBitfieldUnit < [u8 ; 1usize] > , pub __bindgen_padding_0 : [u8 ; 7usize] , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of mips_memory_transaction\"] [:: std :: mem :: size_of :: < mips_memory_transaction > () - 112usize] ; [\"Alignment of mips_memory_transaction\"] [:: std :: mem :: align_of :: < mips_memory_transaction > () - 8usize] ; [\"Offset of field: mips_memory_transaction::s\"] [:: std :: mem :: offset_of ! (mips_memory_transaction , s) - 0usize] ; } ; impl Default for mips_memory_transaction { fn default () -> Self { let mut s = :: std :: mem :: MaybeUninit :: < Self > :: uninit () ; unsafe { :: std :: ptr :: write_bytes (s . as_mut_ptr () , 0 , 1) ; s . assume_init () } } } impl mips_memory_transaction { # [inline] pub fn cache_coherency (& self) -> :: std :: os :: raw :: c_uint { unsafe { :: std :: mem :: transmute (self . _bitfield_1 . get (0usize , 3u8) as u32) } } # [inline] pub fn set_cache_coherency (& mut self , val : :: std :: os :: raw :: c_uint) { unsafe { let val : u32 = :: std :: mem :: transmute (val) ; self . _bitfield_1 . set (0usize , 3u8 , val as u64) } } # [inline] pub fn new_bitfield_1 (cache_coherency : :: std :: os :: raw :: c_uint) -> __BindgenBitfieldUnit < [u8 ; 1usize] > { let mut __bindgen_bitfield_unit : __BindgenBitfieldUnit < [u8 ; 1usize] > = Default :: default () ; __bindgen_bitfield_unit . set (0usize , 3u8 , { let cache_coherency : u32 = unsafe { :: std :: mem :: transmute (cache_coherency) } ; cache_coherency as u64 }) ; __bindgen_bitfield_unit } } # [doc = \" <add-type id=\\\"mips_memory_transaction_t def\\\">\\n</add-type>\"] pub type mips_memory_transaction_t = mips_memory_transaction ; extern \"C\" { pub fn SIM_mips_mem_trans_from_generic (mop : * mut generic_transaction_t) -> * mut mips_memory_transaction_t ; } pub type mips_interface_t = mips_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct mips_interface { pub dummy : :: std :: os :: raw :: c_int , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of mips_interface\"] [:: std :: mem :: size_of :: < mips_interface > () - 4usize] ; [\"Alignment of mips_interface\"] [:: std :: mem :: align_of :: < mips_interface > () - 4usize] ; [\"Offset of field: mips_interface::dummy\"] [:: std :: mem :: offset_of ! (mips_interface , dummy) - 0usize] ; } ; pub type mips_coprocessor_interface_t = mips_coprocessor_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct mips_coprocessor_interface { pub read_register : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , thread_id : uint32 , reg : uint32 , sel : uint32) -> uint64 > , pub write_register : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , thread_id : uint32 , value : uint64 , reg : uint32 , sel : uint32) > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of mips_coprocessor_interface\"] [:: std :: mem :: size_of :: < mips_coprocessor_interface > () - 16usize] ; [\"Alignment of mips_coprocessor_interface\"] [:: std :: mem :: align_of :: < mips_coprocessor_interface > () - 8usize] ; [\"Offset of field: mips_coprocessor_interface::read_register\"] [:: std :: mem :: offset_of ! (mips_coprocessor_interface , read_register) - 0usize] ; [\"Offset of field: mips_coprocessor_interface::write_register\"] [:: std :: mem :: offset_of ! (mips_coprocessor_interface , write_register) - 8usize] ; } ; pub type fmn_station_control_interface_t = fmn_station_control_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct fmn_station_control_interface { pub send_message : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , thread_id : uint32 , rt_value : uint64) -> uint64 > , pub load_message : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , thread_id : uint32 , bucket : uint8) > , pub wait : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , thread_id : uint32 , vector : uint8) -> :: std :: os :: raw :: c_int > , pub sync : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , thread_id : uint32) > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of fmn_station_control_interface\"] [:: std :: mem :: size_of :: < fmn_station_control_interface > () - 32usize] ; [\"Alignment of fmn_station_control_interface\"] [:: std :: mem :: align_of :: < fmn_station_control_interface > () - 8usize] ; [\"Offset of field: fmn_station_control_interface::send_message\"] [:: std :: mem :: offset_of ! (fmn_station_control_interface , send_message) - 0usize] ; [\"Offset of field: fmn_station_control_interface::load_message\"] [:: std :: mem :: offset_of ! (fmn_station_control_interface , load_message) - 8usize] ; [\"Offset of field: fmn_station_control_interface::wait\"] [:: std :: mem :: offset_of ! (fmn_station_control_interface , wait) - 16usize] ; [\"Offset of field: fmn_station_control_interface::sync\"] [:: std :: mem :: offset_of ! (fmn_station_control_interface , sync) - 24usize] ; } ; pub type fmn_station_control_v2_interface_t = fmn_station_control_v2_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct fmn_station_control_v2_interface { pub send_message : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , thread_id : uint32 , rt_value : uint64) -> uint64 > , pub load_message : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , thread_id : uint32 , rt_value : uint64) -> uint64 > , pub wait : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , thread_id : uint32 , rt_value : uint64) -> :: std :: os :: raw :: c_int > , pub sync : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , thread_id : uint32) > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of fmn_station_control_v2_interface\"] [:: std :: mem :: size_of :: < fmn_station_control_v2_interface > () - 32usize] ; [\"Alignment of fmn_station_control_v2_interface\"] [:: std :: mem :: align_of :: < fmn_station_control_v2_interface > () - 8usize] ; [\"Offset of field: fmn_station_control_v2_interface::send_message\"] [:: std :: mem :: offset_of ! (fmn_station_control_v2_interface , send_message) - 0usize] ; [\"Offset of field: fmn_station_control_v2_interface::load_message\"] [:: std :: mem :: offset_of ! (fmn_station_control_v2_interface , load_message) - 8usize] ; [\"Offset of field: fmn_station_control_v2_interface::wait\"] [:: std :: mem :: offset_of ! (fmn_station_control_v2_interface , wait) - 16usize] ; [\"Offset of field: fmn_station_control_v2_interface::sync\"] [:: std :: mem :: offset_of ! (fmn_station_control_v2_interface , sync) - 24usize] ; } ; pub type mips_cache_instruction_interface_t = mips_cache_instruction_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct mips_cache_instruction_interface { pub cache_instruction : :: std :: option :: Option < unsafe extern \"C\" fn (self_ : * mut conf_object_t , cpu : * mut conf_object_t , op : uint32 , vaddr : logical_address_t) -> :: std :: os :: raw :: c_int > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of mips_cache_instruction_interface\"] [:: std :: mem :: size_of :: < mips_cache_instruction_interface > () - 8usize] ; [\"Alignment of mips_cache_instruction_interface\"] [:: std :: mem :: align_of :: < mips_cache_instruction_interface > () - 8usize] ; [\"Offset of field: mips_cache_instruction_interface::cache_instruction\"] [:: std :: mem :: offset_of ! (mips_cache_instruction_interface , cache_instruction) - 0usize] ; } ; pub type mips_ite_interface_t = mips_ite_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct mips_ite_interface { pub set_dtag_lo : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , value : uint32) > , pub get_dtag_lo : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t) -> uint32 > , pub get_errctl : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t) -> uint32 > , pub block_tc : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t) > , pub gated_exception : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t) > , pub current_tc_num : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t) -> :: std :: os :: raw :: c_int > , pub unblock_tc : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , tc_num : :: std :: os :: raw :: c_int) > , pub is_big_endian : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t) -> bool > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of mips_ite_interface\"] [:: std :: mem :: size_of :: < mips_ite_interface > () - 64usize] ; [\"Alignment of mips_ite_interface\"] [:: std :: mem :: align_of :: < mips_ite_interface > () - 8usize] ; [\"Offset of field: mips_ite_interface::set_dtag_lo\"] [:: std :: mem :: offset_of ! (mips_ite_interface , set_dtag_lo) - 0usize] ; [\"Offset of field: mips_ite_interface::get_dtag_lo\"] [:: std :: mem :: offset_of ! (mips_ite_interface , get_dtag_lo) - 8usize] ; [\"Offset of field: mips_ite_interface::get_errctl\"] [:: std :: mem :: offset_of ! (mips_ite_interface , get_errctl) - 16usize] ; [\"Offset of field: mips_ite_interface::block_tc\"] [:: std :: mem :: offset_of ! (mips_ite_interface , block_tc) - 24usize] ; [\"Offset of field: mips_ite_interface::gated_exception\"] [:: std :: mem :: offset_of ! (mips_ite_interface , gated_exception) - 32usize] ; [\"Offset of field: mips_ite_interface::current_tc_num\"] [:: std :: mem :: offset_of ! (mips_ite_interface , current_tc_num) - 40usize] ; [\"Offset of field: mips_ite_interface::unblock_tc\"] [:: std :: mem :: offset_of ! (mips_ite_interface , unblock_tc) - 48usize] ; [\"Offset of field: mips_ite_interface::is_big_endian\"] [:: std :: mem :: offset_of ! (mips_ite_interface , is_big_endian) - 56usize] ; } ; pub type mips_eic_interface_t = mips_eic_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct mips_eic_interface { pub cpu_pending_irqs : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , cause : uint32) > , pub requested_ipl : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t) -> uint32 > , pub requested_offset : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t) -> uint32 > , pub requested_vect_num : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t) -> uint32 > , pub reg_set : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t) -> uint32 > , pub handled : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t) > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of mips_eic_interface\"] [:: std :: mem :: size_of :: < mips_eic_interface > () - 48usize] ; [\"Alignment of mips_eic_interface\"] [:: std :: mem :: align_of :: < mips_eic_interface > () - 8usize] ; [\"Offset of field: mips_eic_interface::cpu_pending_irqs\"] [:: std :: mem :: offset_of ! (mips_eic_interface , cpu_pending_irqs) - 0usize] ; [\"Offset of field: mips_eic_interface::requested_ipl\"] [:: std :: mem :: offset_of ! (mips_eic_interface , requested_ipl) - 8usize] ; [\"Offset of field: mips_eic_interface::requested_offset\"] [:: std :: mem :: offset_of ! (mips_eic_interface , requested_offset) - 16usize] ; [\"Offset of field: mips_eic_interface::requested_vect_num\"] [:: std :: mem :: offset_of ! (mips_eic_interface , requested_vect_num) - 24usize] ; [\"Offset of field: mips_eic_interface::reg_set\"] [:: std :: mem :: offset_of ! (mips_eic_interface , reg_set) - 32usize] ; [\"Offset of field: mips_eic_interface::handled\"] [:: std :: mem :: offset_of ! (mips_eic_interface , handled) - 40usize] ; } ; pub type mips_exception_query_interface_t = mips_exception_query_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct mips_exception_query_interface { pub return_pc : :: std :: option :: Option < unsafe extern \"C\" fn (cpu : * mut conf_object_t , handle : * mut exception_handle_t) -> logical_address_t > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of mips_exception_query_interface\"] [:: std :: mem :: size_of :: < mips_exception_query_interface > () - 8usize] ; [\"Alignment of mips_exception_query_interface\"] [:: std :: mem :: align_of :: < mips_exception_query_interface > () - 8usize] ; [\"Offset of field: mips_exception_query_interface::return_pc\"] [:: std :: mem :: offset_of ! (mips_exception_query_interface , return_pc) - 0usize] ; } ; pub type sparc_v8_interface_t = sparc_v8_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct sparc_v8_interface { pub read_window_register : :: std :: option :: Option < unsafe extern \"C\" fn (cpu : * mut conf_object_t , window : :: std :: os :: raw :: c_int , reg : :: std :: os :: raw :: c_int) -> uint64 > , pub write_window_register : :: std :: option :: Option < unsafe extern \"C\" fn (cpu : * mut conf_object_t , window : :: std :: os :: raw :: c_int , reg : :: std :: os :: raw :: c_int , value : uint64) > , pub power_down : :: std :: option :: Option < unsafe extern \"C\" fn (cpu : * mut conf_object_t) > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of sparc_v8_interface\"] [:: std :: mem :: size_of :: < sparc_v8_interface > () - 24usize] ; [\"Alignment of sparc_v8_interface\"] [:: std :: mem :: align_of :: < sparc_v8_interface > () - 8usize] ; [\"Offset of field: sparc_v8_interface::read_window_register\"] [:: std :: mem :: offset_of ! (sparc_v8_interface , read_window_register) - 0usize] ; [\"Offset of field: sparc_v8_interface::write_window_register\"] [:: std :: mem :: offset_of ! (sparc_v8_interface , write_window_register) - 8usize] ; [\"Offset of field: sparc_v8_interface::power_down\"] [:: std :: mem :: offset_of ! (sparc_v8_interface , power_down) - 16usize] ; } ; pub type sparc_v8_ecc_fault_injection_interface_t = sparc_v8_ecc_fault_injection_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct sparc_v8_ecc_fault_injection_interface { pub inject_instr_access_exception : :: std :: option :: Option < unsafe extern \"C\" fn (cpu : * mut conf_object_t) > , pub inject_data_access_exception : :: std :: option :: Option < unsafe extern \"C\" fn (cpu : * mut conf_object_t) > , pub inject_reg_access_error : :: std :: option :: Option < unsafe extern \"C\" fn (cpu : * mut conf_object_t) > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of sparc_v8_ecc_fault_injection_interface\"] [:: std :: mem :: size_of :: < sparc_v8_ecc_fault_injection_interface > () - 24usize] ; [\"Alignment of sparc_v8_ecc_fault_injection_interface\"] [:: std :: mem :: align_of :: < sparc_v8_ecc_fault_injection_interface > () - 8usize] ; [\"Offset of field: sparc_v8_ecc_fault_injection_interface::inject_instr_access_exception\"] [:: std :: mem :: offset_of ! (sparc_v8_ecc_fault_injection_interface , inject_instr_access_exception) - 0usize] ; [\"Offset of field: sparc_v8_ecc_fault_injection_interface::inject_data_access_exception\"] [:: std :: mem :: offset_of ! (sparc_v8_ecc_fault_injection_interface , inject_data_access_exception) - 8usize] ; [\"Offset of field: sparc_v8_ecc_fault_injection_interface::inject_reg_access_error\"] [:: std :: mem :: offset_of ! (sparc_v8_ecc_fault_injection_interface , inject_reg_access_error) - 16usize] ; } ; # [doc = \" <add-type id=\\\"nios_memory_transaction_t def\\\"></add-type>\"] # [repr (C)] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct nios_memory_transaction { # [doc = \" generic transaction\"] pub s : generic_transaction_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of nios_memory_transaction\"] [:: std :: mem :: size_of :: < nios_memory_transaction > () - 104usize] ; [\"Alignment of nios_memory_transaction\"] [:: std :: mem :: align_of :: < nios_memory_transaction > () - 8usize] ; [\"Offset of field: nios_memory_transaction::s\"] [:: std :: mem :: offset_of ! (nios_memory_transaction , s) - 0usize] ; } ; impl Default for nios_memory_transaction { fn default () -> Self { let mut s = :: std :: mem :: MaybeUninit :: < Self > :: uninit () ; unsafe { :: std :: ptr :: write_bytes (s . as_mut_ptr () , 0 , 1) ; s . assume_init () } } } # [doc = \" <add-type id=\\\"nios_memory_transaction_t def\\\"></add-type>\"] pub type nios_memory_transaction_t = nios_memory_transaction ; pub type nios_interface_t = nios_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct nios_interface { pub dummy : :: std :: os :: raw :: c_int , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of nios_interface\"] [:: std :: mem :: size_of :: < nios_interface > () - 4usize] ; [\"Alignment of nios_interface\"] [:: std :: mem :: align_of :: < nios_interface > () - 4usize] ; [\"Offset of field: nios_interface::dummy\"] [:: std :: mem :: offset_of ! (nios_interface , dummy) - 0usize] ; } ; pub type nios_eic_interface_t = nios_eic_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct nios_eic_interface { pub handler : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t) -> logical_address_t > , pub level : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t) -> uint32 > , pub reg_set : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t) -> uint32 > , pub nmi : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t) -> bool > , pub handled : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t) > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of nios_eic_interface\"] [:: std :: mem :: size_of :: < nios_eic_interface > () - 40usize] ; [\"Alignment of nios_eic_interface\"] [:: std :: mem :: align_of :: < nios_eic_interface > () - 8usize] ; [\"Offset of field: nios_eic_interface::handler\"] [:: std :: mem :: offset_of ! (nios_eic_interface , handler) - 0usize] ; [\"Offset of field: nios_eic_interface::level\"] [:: std :: mem :: offset_of ! (nios_eic_interface , level) - 8usize] ; [\"Offset of field: nios_eic_interface::reg_set\"] [:: std :: mem :: offset_of ! (nios_eic_interface , reg_set) - 16usize] ; [\"Offset of field: nios_eic_interface::nmi\"] [:: std :: mem :: offset_of ! (nios_eic_interface , nmi) - 24usize] ; [\"Offset of field: nios_eic_interface::handled\"] [:: std :: mem :: offset_of ! (nios_eic_interface , handled) - 32usize] ; } ; pub type nios_cache_interface_t = nios_cache_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct nios_cache_interface { pub flushd : :: std :: option :: Option < unsafe extern \"C\" fn (self_ : * mut conf_object_t , addr : logical_address_t) > , pub flushda : :: std :: option :: Option < unsafe extern \"C\" fn (self_ : * mut conf_object_t , addr : logical_address_t) > , pub flushi : :: std :: option :: Option < unsafe extern \"C\" fn (self_ : * mut conf_object_t , addr : logical_address_t) > , pub flushp : :: std :: option :: Option < unsafe extern \"C\" fn (self_ : * mut conf_object_t) > , pub initd : :: std :: option :: Option < unsafe extern \"C\" fn (self_ : * mut conf_object_t , addr : logical_address_t) > , pub initda : :: std :: option :: Option < unsafe extern \"C\" fn (self_ : * mut conf_object_t , addr : logical_address_t) > , pub initi : :: std :: option :: Option < unsafe extern \"C\" fn (self_ : * mut conf_object_t , addr : logical_address_t) > , pub sync : :: std :: option :: Option < unsafe extern \"C\" fn (self_ : * mut conf_object_t) > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of nios_cache_interface\"] [:: std :: mem :: size_of :: < nios_cache_interface > () - 64usize] ; [\"Alignment of nios_cache_interface\"] [:: std :: mem :: align_of :: < nios_cache_interface > () - 8usize] ; [\"Offset of field: nios_cache_interface::flushd\"] [:: std :: mem :: offset_of ! (nios_cache_interface , flushd) - 0usize] ; [\"Offset of field: nios_cache_interface::flushda\"] [:: std :: mem :: offset_of ! (nios_cache_interface , flushda) - 8usize] ; [\"Offset of field: nios_cache_interface::flushi\"] [:: std :: mem :: offset_of ! (nios_cache_interface , flushi) - 16usize] ; [\"Offset of field: nios_cache_interface::flushp\"] [:: std :: mem :: offset_of ! (nios_cache_interface , flushp) - 24usize] ; [\"Offset of field: nios_cache_interface::initd\"] [:: std :: mem :: offset_of ! (nios_cache_interface , initd) - 32usize] ; [\"Offset of field: nios_cache_interface::initda\"] [:: std :: mem :: offset_of ! (nios_cache_interface , initda) - 40usize] ; [\"Offset of field: nios_cache_interface::initi\"] [:: std :: mem :: offset_of ! (nios_cache_interface , initi) - 48usize] ; [\"Offset of field: nios_cache_interface::sync\"] [:: std :: mem :: offset_of ! (nios_cache_interface , sync) - 56usize] ; } ; pub type nios_custom_interface_t = nios_custom_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct nios_custom_interface { pub custom : :: std :: option :: Option < unsafe extern \"C\" fn (self_ : * mut conf_object_t , n : uint32 , a : uint32 , b : uint32 , c : uint32 , rA : uint32 , rB : uint32 , readra : bool , readrb : bool , writerc : bool) -> uint32 > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of nios_custom_interface\"] [:: std :: mem :: size_of :: < nios_custom_interface > () - 8usize] ; [\"Alignment of nios_custom_interface\"] [:: std :: mem :: align_of :: < nios_custom_interface > () - 8usize] ; [\"Offset of field: nios_custom_interface::custom\"] [:: std :: mem :: offset_of ! (nios_custom_interface , custom) - 0usize] ; } ; # [repr (u32)] # [doc = \" <add-type id=\\\"ppc_mc_exc_t type\\\"><ndx>ppc_mc_exc_t</ndx></add-type>\"] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub enum ppc_mc_exc_t { Sim_PPC_Generic_MC = 0 , Sim_PPC_MC_TEA = 1 , Sim_PPC_MC_MCP = 2 , Sim_PPC_Bus_Address_Parity = 3 , Sim_PPC_Bus_Data_Parity = 4 , Sim_PPC_Instruction_Cache_Parity = 5 , Sim_PPC_Data_Cache_Parity = 6 , Sim_PPC_L2_Data_Parity = 7 , Sim_PPC_L3_Data_Parity = 8 , Sim_PPC_L3_Address_Parity = 9 , Sim_PPC970_Data_Cache_Parity = 10 , Sim_PPC970_Data_Cache_Tag_Parity = 11 , Sim_PPC970_D_ERAT_Parity = 12 , Sim_PPC970_TLB_Parity = 13 , Sim_PPC970_SLB_Parity = 14 , Sim_PPC970_L2_Load_ECC_Parity = 15 , Sim_PPC970_L2_Page_Table_ECC_Parity = 16 , Sim_PPC970_Uncacheable_Load_Parity = 17 , Sim_PPC970_MC_External = 18 , } # [repr (u32)] # [doc = \" <add-type id=\\\"ppc_mem_instr_origin_t def\\\"></add-type>\"] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub enum ppc_mem_instr_origin_t { # [doc = \" Normal load or store instructions\"] Normal_Load_Store = 0 , # [doc = \" No data touched by the load/store will be placed in cache\"] Caching_Inhibited = 1 , # [doc = \" load/store multiple\"] Instr_Multiple = 2 , # [doc = \" load/store string\"] Instr_String = 3 , # [doc = \" Altivec load/store element\"] Instr_Altivec_Element = 4 , # [doc = \" data cache block touch\"] Instr_dcbt = 5 , # [doc = \" data cache block store\"] Instr_dcbst = 6 , # [doc = \" data cache block touch for store\"] Instr_dcbtst = 7 , # [doc = \" data cache block invalidate\"] Instr_dcbi = 8 , # [doc = \" data cache block flush\"] Instr_dcbf = 9 , # [doc = \" data cache block flush local\"] Instr_dcbfl = 10 , # [doc = \" data cache block allocate\"] Instr_dcba = 11 , # [doc = \" data cache block to zero\"] Instr_dcbz = 12 , # [doc = \" instruction cache block invalidate\"] Instr_icbi = 13 , # [doc = \" data stream touch\"] Instr_dst = 14 , # [doc = \" data stream touch transient\"] Instr_dstt = 15 , # [doc = \" data stream touch for store\"] Instr_dstst = 16 , # [doc = \" data stream touch for store transient\"] Instr_dststt = 17 , # [doc = \" data cache block lock clear (L1)\"] Instr_dcblc_l1 = 18 , # [doc = \" data cache block lock clear (L2)\"] Instr_dcblc_l2 = 19 , # [doc = \" data cache block touch and lock set (L1)\"] Instr_dcbtls_l1 = 20 , # [doc = \" data cache block touch and lock set (L1)\"] Instr_dcbtls_l2 = 21 , # [doc = \" data cache block touch for store and lock\\nset (L1)\"] Instr_dcbtstls_l1 = 22 , # [doc = \" data cache block touch for store and lock\\nset (L1)\"] Instr_dcbtstls_l2 = 23 , # [doc = \" instruction cache block clear (L1)\"] Instr_icblc_l1 = 24 , # [doc = \" instruction cache block clear (L2)\"] Instr_icblc_l2 = 25 , # [doc = \" instruction cache block touch and lock\\nset (L1)\"] Instr_icbtls_l1 = 26 , # [doc = \" instruction cache block touch and lock\\nset (L1)\"] Instr_icbtls_l2 = 27 , # [doc = \" Other loads/stores or cache affecting instructions\"] Instr_lwarx = 28 , # [doc = \" Other loads/stores or cache affecting instructions\"] Instr_stwcx = 29 , # [doc = \" Other loads/stores or cache affecting instructions\"] Instr_ldarx = 30 , # [doc = \" Other loads/stores or cache affecting instructions\"] Instr_stdcx = 31 , # [doc = \" Other loads/stores or cache affecting instructions\"] Instr_lq = 32 , # [doc = \" Other loads/stores or cache affecting instructions\"] Instr_stq = 33 , # [doc = \" Other cache affecting instructions\"] Instr_sync = 34 , # [doc = \" Other cache affecting instructions\"] Instr_eieio = 35 , # [doc = \" Other cache affecting instructions\"] Instr_ecowx = 36 , # [doc = \" Other cache affecting instructions\"] Instr_eciwx = 37 , # [doc = \" Other cache affecting instructions\"] Instr_tlbie = 38 , # [doc = \" Other cache affecting instructions\"] Instr_tlbsync = 39 , # [doc = \" Other cache affecting instructions\"] Instr_isync = 40 , # [doc = \" Load Floating point Double Pair\"] Instr_lfdp = 41 , # [doc = \" Store Floating point Double Pair\"] Instr_stfdp = 42 , Instr_spe = 43 , # [doc = \" Obsolete - use Instr_dcba.\"] Instr_dcbal = 44 , # [doc = \" data cache block lock clear\"] Instr_dcblc_pc = 45 , # [doc = \" data cache block touch and lock set\"] Instr_dcbtls_pc = 46 , # [doc = \" data cache block touch for store and lock\\nset\"] Instr_dcbtstls_pc = 47 , # [doc = \" instruction cache block clear\"] Instr_icblc_pc = 48 , # [doc = \" instruction cache block touch and lock\\nset\"] Instr_icbtls_pc = 49 , # [doc = \" Load/store from FPU unit\"] Instr_Fpu = 50 , } # [repr (u32)] # [doc = \" <add-type id=\\\"ppc_decoration_type_t def\\\"></add-type>\"] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub enum ppc_decoration_type_t { Decoration_None = 0 , Decoration_Notify = 1 , Decoration_Load = 2 , Decoration_Store = 3 , } # [doc = \" <add-type id=\\\"ppc_decoration_t def\\\"></add-type>\"] # [repr (C)] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct ppc_decoration_t { pub type_ : ppc_decoration_type_t , pub data : uint64 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of ppc_decoration_t\"] [:: std :: mem :: size_of :: < ppc_decoration_t > () - 16usize] ; [\"Alignment of ppc_decoration_t\"] [:: std :: mem :: align_of :: < ppc_decoration_t > () - 8usize] ; [\"Offset of field: ppc_decoration_t::type_\"] [:: std :: mem :: offset_of ! (ppc_decoration_t , type_) - 0usize] ; [\"Offset of field: ppc_decoration_t::data\"] [:: std :: mem :: offset_of ! (ppc_decoration_t , data) - 8usize] ; } ; impl Default for ppc_decoration_t { fn default () -> Self { let mut s = :: std :: mem :: MaybeUninit :: < Self > :: uninit () ; unsafe { :: std :: ptr :: write_bytes (s . as_mut_ptr () , 0 , 1) ; s . assume_init () } } } # [doc = \" <add-type id=\\\"ppc_memory_transaction_t def\\\">\\n</add-type>\"] # [repr (C)] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct ppc_memory_transaction { # [doc = \" generic transaction\"] pub s : generic_transaction_t , pub mode : processor_mode_t , pub instr_origin : ppc_mem_instr_origin_t , pub ea_origin : logical_address_t , pub wimg : uint8 , pub alignment : uint8 , # [doc = \" cache operations may flag this to cause prefetches to be no-ops\"] pub inhibit_exception : uint8 , # [doc = \" External PID\"] pub external_pid : uint8 , # [doc = \" Decorated storage\"] pub decoration : ppc_decoration_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of ppc_memory_transaction\"] [:: std :: mem :: size_of :: < ppc_memory_transaction > () - 144usize] ; [\"Alignment of ppc_memory_transaction\"] [:: std :: mem :: align_of :: < ppc_memory_transaction > () - 8usize] ; [\"Offset of field: ppc_memory_transaction::s\"] [:: std :: mem :: offset_of ! (ppc_memory_transaction , s) - 0usize] ; [\"Offset of field: ppc_memory_transaction::mode\"] [:: std :: mem :: offset_of ! (ppc_memory_transaction , mode) - 104usize] ; [\"Offset of field: ppc_memory_transaction::instr_origin\"] [:: std :: mem :: offset_of ! (ppc_memory_transaction , instr_origin) - 108usize] ; [\"Offset of field: ppc_memory_transaction::ea_origin\"] [:: std :: mem :: offset_of ! (ppc_memory_transaction , ea_origin) - 112usize] ; [\"Offset of field: ppc_memory_transaction::wimg\"] [:: std :: mem :: offset_of ! (ppc_memory_transaction , wimg) - 120usize] ; [\"Offset of field: ppc_memory_transaction::alignment\"] [:: std :: mem :: offset_of ! (ppc_memory_transaction , alignment) - 121usize] ; [\"Offset of field: ppc_memory_transaction::inhibit_exception\"] [:: std :: mem :: offset_of ! (ppc_memory_transaction , inhibit_exception) - 122usize] ; [\"Offset of field: ppc_memory_transaction::external_pid\"] [:: std :: mem :: offset_of ! (ppc_memory_transaction , external_pid) - 123usize] ; [\"Offset of field: ppc_memory_transaction::decoration\"] [:: std :: mem :: offset_of ! (ppc_memory_transaction , decoration) - 128usize] ; } ; impl Default for ppc_memory_transaction { fn default () -> Self { let mut s = :: std :: mem :: MaybeUninit :: < Self > :: uninit () ; unsafe { :: std :: ptr :: write_bytes (s . as_mut_ptr () , 0 , 1) ; s . assume_init () } } } # [doc = \" <add-type id=\\\"ppc_memory_transaction_t def\\\">\\n</add-type>\"] pub type ppc_memory_transaction_t = ppc_memory_transaction ; extern \"C\" { pub fn SIM_ppc_mem_trans_from_generic (mop : * mut generic_transaction_t) -> * mut ppc_memory_transaction_t ; } # [repr (u32)] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub enum ppc_sleep_state_t { # [doc = \" Not sleeping at all, this is the normal mode\"] PPC_Sleep_Awake = 0 , # [doc = \" Old version of power saving, the only level\"] PPC_Sleep_MSR = 1 , # [doc = \" Lowest level of power saving in new version\"] PPC_Sleep_Doze = 2 , PPC_Sleep_Nap = 3 , PPC_Sleep_Sleep = 4 , # [doc = \" Highest level\"] PPC_Sleep_Rvwinkle = 5 , # [doc = \" Wait instruction\"] PPC_Sleep_Wait = 6 , # [doc = \" Wait reservation\"] PPC_Sleep_Waitrsv = 7 , } # [doc = \" <add-type id=\\\"ppc_spr_user_setter_func_t def\\\"></add-type>\"] pub type ppc_spr_user_setter_func_t = gen_spr_user_setter_func_t ; # [doc = \" <add-type id=\\\"ppc_spr_user_getter_func_t def\\\"></add-type>\"] pub type ppc_spr_user_getter_func_t = gen_spr_user_getter_func_t ; pub type ppc_interface_t = ppc_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct ppc_interface { pub clear_atomic_reservation_bit : :: std :: option :: Option < unsafe extern \"C\" fn (cpu : * mut conf_object_t) > , pub raise_machine_check_exception : :: std :: option :: Option < unsafe extern \"C\" fn (cpu : * mut conf_object_t , exc : ppc_mc_exc_t) > , # [doc = \" Timebase\"] pub get_timebase_enabled : :: std :: option :: Option < unsafe extern \"C\" fn (cpu : * mut conf_object_t) -> :: std :: os :: raw :: c_uint > , pub set_timebase_enabled : :: std :: option :: Option < unsafe extern \"C\" fn (cpu : * mut conf_object_t , enabled : :: std :: os :: raw :: c_uint) > , # [doc = \" Power mode\"] pub get_sleep_state : :: std :: option :: Option < unsafe extern \"C\" fn (cpu : * mut conf_object_t) -> ppc_sleep_state_t > , pub set_sleep_state : :: std :: option :: Option < unsafe extern \"C\" fn (cpu : * mut conf_object_t , state : ppc_sleep_state_t) > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of ppc_interface\"] [:: std :: mem :: size_of :: < ppc_interface > () - 48usize] ; [\"Alignment of ppc_interface\"] [:: std :: mem :: align_of :: < ppc_interface > () - 8usize] ; [\"Offset of field: ppc_interface::clear_atomic_reservation_bit\"] [:: std :: mem :: offset_of ! (ppc_interface , clear_atomic_reservation_bit) - 0usize] ; [\"Offset of field: ppc_interface::raise_machine_check_exception\"] [:: std :: mem :: offset_of ! (ppc_interface , raise_machine_check_exception) - 8usize] ; [\"Offset of field: ppc_interface::get_timebase_enabled\"] [:: std :: mem :: offset_of ! (ppc_interface , get_timebase_enabled) - 16usize] ; [\"Offset of field: ppc_interface::set_timebase_enabled\"] [:: std :: mem :: offset_of ! (ppc_interface , set_timebase_enabled) - 24usize] ; [\"Offset of field: ppc_interface::get_sleep_state\"] [:: std :: mem :: offset_of ! (ppc_interface , get_sleep_state) - 32usize] ; [\"Offset of field: ppc_interface::set_sleep_state\"] [:: std :: mem :: offset_of ! (ppc_interface , set_sleep_state) - 40usize] ; } ; pub type spr_interface_t = spr_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct spr_interface { pub register_user_handlers : :: std :: option :: Option < unsafe extern \"C\" fn (cpu : * mut conf_object_t , spr_number : int64 , getter : gen_spr_user_getter_func_t , user_getter_data : * mut lang_void , setter : gen_spr_user_setter_func_t , user_setter_data : * mut lang_void , privilege_checks : :: std :: os :: raw :: c_int) > , pub unregister_user_handlers : :: std :: option :: Option < unsafe extern \"C\" fn (cpu : * mut conf_object_t , spr_number : int64) > , pub set_target_value : :: std :: option :: Option < unsafe extern \"C\" fn (cpu : * mut conf_object_t , value : uint64) > , pub stash_value : :: std :: option :: Option < unsafe extern \"C\" fn (cpu : * mut conf_object_t , spr_number : int64 , value : uint64) > , pub fetch_value : :: std :: option :: Option < unsafe extern \"C\" fn (cpu : * mut conf_object_t , spr_number : int64) -> uint64 > , pub default_getter : :: std :: option :: Option < unsafe extern \"C\" fn (cpu : * mut conf_object_t , spr_number : int64 , type_ : gen_spr_access_type_t) -> gen_spr_ret_t > , pub default_setter : :: std :: option :: Option < unsafe extern \"C\" fn (cpu : * mut conf_object_t , spr_number : int64 , value : uint64 , type_ : gen_spr_access_type_t) -> gen_spr_ret_t > , pub get_name : :: std :: option :: Option < unsafe extern \"C\" fn (cpu : * mut conf_object_t , spr_number : int64) -> * const :: std :: os :: raw :: c_char > , pub get_number : :: std :: option :: Option < unsafe extern \"C\" fn (cpu : * mut conf_object_t , spr_name : * const :: std :: os :: raw :: c_char) -> int64 > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of spr_interface\"] [:: std :: mem :: size_of :: < spr_interface > () - 72usize] ; [\"Alignment of spr_interface\"] [:: std :: mem :: align_of :: < spr_interface > () - 8usize] ; [\"Offset of field: spr_interface::register_user_handlers\"] [:: std :: mem :: offset_of ! (spr_interface , register_user_handlers) - 0usize] ; [\"Offset of field: spr_interface::unregister_user_handlers\"] [:: std :: mem :: offset_of ! (spr_interface , unregister_user_handlers) - 8usize] ; [\"Offset of field: spr_interface::set_target_value\"] [:: std :: mem :: offset_of ! (spr_interface , set_target_value) - 16usize] ; [\"Offset of field: spr_interface::stash_value\"] [:: std :: mem :: offset_of ! (spr_interface , stash_value) - 24usize] ; [\"Offset of field: spr_interface::fetch_value\"] [:: std :: mem :: offset_of ! (spr_interface , fetch_value) - 32usize] ; [\"Offset of field: spr_interface::default_getter\"] [:: std :: mem :: offset_of ! (spr_interface , default_getter) - 40usize] ; [\"Offset of field: spr_interface::default_setter\"] [:: std :: mem :: offset_of ! (spr_interface , default_setter) - 48usize] ; [\"Offset of field: spr_interface::get_name\"] [:: std :: mem :: offset_of ! (spr_interface , get_name) - 56usize] ; [\"Offset of field: spr_interface::get_number\"] [:: std :: mem :: offset_of ! (spr_interface , get_number) - 64usize] ; } ; pub type pmr_interface_t = pmr_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct pmr_interface { pub get : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , pmr_number : :: std :: os :: raw :: c_int , instruction_read : bool) -> uint64 > , pub set : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , pmr_number : :: std :: os :: raw :: c_int , value : uint64 , instruction_write : bool) > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of pmr_interface\"] [:: std :: mem :: size_of :: < pmr_interface > () - 16usize] ; [\"Alignment of pmr_interface\"] [:: std :: mem :: align_of :: < pmr_interface > () - 8usize] ; [\"Offset of field: pmr_interface::get\"] [:: std :: mem :: offset_of ! (pmr_interface , get) - 0usize] ; [\"Offset of field: pmr_interface::set\"] [:: std :: mem :: offset_of ! (pmr_interface , set) - 8usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct controllable_cache_t { pub obj : * mut conf_object_t , pub ifc : * const cache_control_interface_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of controllable_cache_t\"] [:: std :: mem :: size_of :: < controllable_cache_t > () - 16usize] ; [\"Alignment of controllable_cache_t\"] [:: std :: mem :: align_of :: < controllable_cache_t > () - 8usize] ; [\"Offset of field: controllable_cache_t::obj\"] [:: std :: mem :: offset_of ! (controllable_cache_t , obj) - 0usize] ; [\"Offset of field: controllable_cache_t::ifc\"] [:: std :: mem :: offset_of ! (controllable_cache_t , ifc) - 8usize] ; } ; impl Default for controllable_cache_t { fn default () -> Self { let mut s = :: std :: mem :: MaybeUninit :: < Self > :: uninit () ; unsafe { :: std :: ptr :: write_bytes (s . as_mut_ptr () , 0 , 1) ; s . assume_init () } } } pub type i8051_interrupt_interface_t = i8051_interrupt_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct i8051_interrupt_interface { pub active_interrupt : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t) -> :: std :: os :: raw :: c_int > , pub reti : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t) > , pub suppress_irq : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , addr : uint32) -> bool > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of i8051_interrupt_interface\"] [:: std :: mem :: size_of :: < i8051_interrupt_interface > () - 24usize] ; [\"Alignment of i8051_interrupt_interface\"] [:: std :: mem :: align_of :: < i8051_interrupt_interface > () - 8usize] ; [\"Offset of field: i8051_interrupt_interface::active_interrupt\"] [:: std :: mem :: offset_of ! (i8051_interrupt_interface , active_interrupt) - 0usize] ; [\"Offset of field: i8051_interrupt_interface::reti\"] [:: std :: mem :: offset_of ! (i8051_interrupt_interface , reti) - 8usize] ; [\"Offset of field: i8051_interrupt_interface::suppress_irq\"] [:: std :: mem :: offset_of ! (i8051_interrupt_interface , suppress_irq) - 16usize] ; } ; pub type i8051_timer_interface_t = i8051_timer_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct i8051_timer_interface { pub change_mode : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , mode : uint8) > , pub switch_timer : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , caller : uint8 , onoff : bool) > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of i8051_timer_interface\"] [:: std :: mem :: size_of :: < i8051_timer_interface > () - 16usize] ; [\"Alignment of i8051_timer_interface\"] [:: std :: mem :: align_of :: < i8051_timer_interface > () - 8usize] ; [\"Offset of field: i8051_timer_interface::change_mode\"] [:: std :: mem :: offset_of ! (i8051_timer_interface , change_mode) - 0usize] ; [\"Offset of field: i8051_timer_interface::switch_timer\"] [:: std :: mem :: offset_of ! (i8051_timer_interface , switch_timer) - 8usize] ; } ; pub type sh_interrupt_interface_t = sh_interrupt_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct sh_interrupt_interface { pub change_pending : :: std :: option :: Option < unsafe extern \"C\" fn (cpu_obj : * mut conf_object_t , level : :: std :: os :: raw :: c_int , intevt : uint32 , mod_imask_flag : :: std :: os :: raw :: c_int) > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of sh_interrupt_interface\"] [:: std :: mem :: size_of :: < sh_interrupt_interface > () - 8usize] ; [\"Alignment of sh_interrupt_interface\"] [:: std :: mem :: align_of :: < sh_interrupt_interface > () - 8usize] ; [\"Offset of field: sh_interrupt_interface::change_pending\"] [:: std :: mem :: offset_of ! (sh_interrupt_interface , change_pending) - 0usize] ; } ; # [repr (u32)] # [doc = \" <add-type id=\\\"riscv_cpu_mode_t def\\\"></add-type>\"] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub enum riscv_cpu_mode_t { Riscv_Mode_User = 0 , Riscv_Mode_Supervisor = 1 , Riscv_Mode_Reserved = 2 , Riscv_Mode_Machine = 3 , Riscv_Mode_Guest_User = 16 , Riscv_Mode_Guest_Supervisor = 17 , } pub type riscv_coprocessor_interface_t = riscv_coprocessor_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct riscv_coprocessor_interface { pub read_register : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , number : uint64) -> uint64 > , pub write_register : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , number : uint64 , value : uint64) > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of riscv_coprocessor_interface\"] [:: std :: mem :: size_of :: < riscv_coprocessor_interface > () - 16usize] ; [\"Alignment of riscv_coprocessor_interface\"] [:: std :: mem :: align_of :: < riscv_coprocessor_interface > () - 8usize] ; [\"Offset of field: riscv_coprocessor_interface::read_register\"] [:: std :: mem :: offset_of ! (riscv_coprocessor_interface , read_register) - 0usize] ; [\"Offset of field: riscv_coprocessor_interface::write_register\"] [:: std :: mem :: offset_of ! (riscv_coprocessor_interface , write_register) - 8usize] ; } ; # [repr (i32)] # [doc = \" <add id=\\\"riscv_imsic_file_id_t DOC\\\">\\n<ndx>riscv_imsic_file_id_t</ndx>\\n<name index=\\\"true\\\">riscv_imsic_file_id_t</name>\\n<doc>\\n<doc-item name=\\\"NAME\\\">riscv_imsic_file_id_t</doc-item>\\n<doc-item name=\\\"SYNOPSIS\\\"><insert id=\\\"riscv_imsic_file_id_t def\\\"/>\\n</doc-item>\\n<doc-item name=\\\"DESCRIPTION\\\">\\n\\nType used with the internal interface riscv_imsic_interface_t.\\n\\n</doc-item>\\n</doc>\\n</add>\\n\\n<add-type id=\\\"riscv_imsic_file_id_t def\\\"></add-type>\"] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub enum riscv_imsic_file_id_t { Riscv_Imsic_Machine_File = - 1 , Riscv_Imsic_Supervisor_File = 0 , } pub type riscv_imsic_interface_t = riscv_imsic_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct riscv_imsic_interface { # [doc = \" GEILEN\"] pub num_guest_files : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t) -> uint32 > , # [doc = \" id is either one of the standard files, machine or supervisor,\\n or one of the guest files (vgein).\"] pub read_irq_file : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , id : riscv_imsic_file_id_t , offset : uint32) -> uint64 > , pub read_and_write_irq_file : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , id : riscv_imsic_file_id_t , offset : uint32 , new_value : uint64 , mask : uint64) -> uint64 > , pub read_xtopei : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , id : riscv_imsic_file_id_t) -> uint64 > , pub read_and_write_xtopei : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , id : riscv_imsic_file_id_t , value : uint64 , mask : uint64) -> uint64 > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of riscv_imsic_interface\"] [:: std :: mem :: size_of :: < riscv_imsic_interface > () - 40usize] ; [\"Alignment of riscv_imsic_interface\"] [:: std :: mem :: align_of :: < riscv_imsic_interface > () - 8usize] ; [\"Offset of field: riscv_imsic_interface::num_guest_files\"] [:: std :: mem :: offset_of ! (riscv_imsic_interface , num_guest_files) - 0usize] ; [\"Offset of field: riscv_imsic_interface::read_irq_file\"] [:: std :: mem :: offset_of ! (riscv_imsic_interface , read_irq_file) - 8usize] ; [\"Offset of field: riscv_imsic_interface::read_and_write_irq_file\"] [:: std :: mem :: offset_of ! (riscv_imsic_interface , read_and_write_irq_file) - 16usize] ; [\"Offset of field: riscv_imsic_interface::read_xtopei\"] [:: std :: mem :: offset_of ! (riscv_imsic_interface , read_xtopei) - 24usize] ; [\"Offset of field: riscv_imsic_interface::read_and_write_xtopei\"] [:: std :: mem :: offset_of ! (riscv_imsic_interface , read_and_write_xtopei) - 32usize] ; } ; pub type riscv_signal_sgeip_interface_t = riscv_signal_sgeip_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct riscv_signal_sgeip_interface { pub signal_raise : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , vgein : uint64) > , pub signal_lower : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , vgein : uint64) > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of riscv_signal_sgeip_interface\"] [:: std :: mem :: size_of :: < riscv_signal_sgeip_interface > () - 16usize] ; [\"Alignment of riscv_signal_sgeip_interface\"] [:: std :: mem :: align_of :: < riscv_signal_sgeip_interface > () - 8usize] ; [\"Offset of field: riscv_signal_sgeip_interface::signal_raise\"] [:: std :: mem :: offset_of ! (riscv_signal_sgeip_interface , signal_raise) - 0usize] ; [\"Offset of field: riscv_signal_sgeip_interface::signal_lower\"] [:: std :: mem :: offset_of ! (riscv_signal_sgeip_interface , signal_lower) - 8usize] ; } ; # [repr (u32)] # [doc = \" ADD INTERFACE riscv_signal_sgeip_interface\"] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub enum riscv_vectoring_mode_t { Riscv_Non_Vectoring = 0 , Riscv_Selective_Hardware_Vectoring = 1 , } pub type riscv_clic_interrupt_interface_t = riscv_clic_interrupt_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct riscv_clic_interrupt_interface { pub set_active_interrupt : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , id : uint64 , level : uint64 , vect_mode : riscv_vectoring_mode_t , cpu_mode : riscv_cpu_mode_t) > , pub clear_interrupt : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t) > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of riscv_clic_interrupt_interface\"] [:: std :: mem :: size_of :: < riscv_clic_interrupt_interface > () - 16usize] ; [\"Alignment of riscv_clic_interrupt_interface\"] [:: std :: mem :: align_of :: < riscv_clic_interrupt_interface > () - 8usize] ; [\"Offset of field: riscv_clic_interrupt_interface::set_active_interrupt\"] [:: std :: mem :: offset_of ! (riscv_clic_interrupt_interface , set_active_interrupt) - 0usize] ; [\"Offset of field: riscv_clic_interrupt_interface::clear_interrupt\"] [:: std :: mem :: offset_of ! (riscv_clic_interrupt_interface , clear_interrupt) - 8usize] ; } ; pub type riscv_clic_interface_t = riscv_clic_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct riscv_clic_interface { pub acknowledge_interrupt : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , id : uint64) > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of riscv_clic_interface\"] [:: std :: mem :: size_of :: < riscv_clic_interface > () - 8usize] ; [\"Alignment of riscv_clic_interface\"] [:: std :: mem :: align_of :: < riscv_clic_interface > () - 8usize] ; [\"Offset of field: riscv_clic_interface::acknowledge_interrupt\"] [:: std :: mem :: offset_of ! (riscv_clic_interface , acknowledge_interrupt) - 0usize] ; } ; # [doc = \" <add-type id=\\\"xtensa_memory_transaction_t def\\\"></add-type>\"] # [repr (C)] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct xtensa_memory_transaction { # [doc = \" generic transaction\"] pub s : generic_transaction_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of xtensa_memory_transaction\"] [:: std :: mem :: size_of :: < xtensa_memory_transaction > () - 104usize] ; [\"Alignment of xtensa_memory_transaction\"] [:: std :: mem :: align_of :: < xtensa_memory_transaction > () - 8usize] ; [\"Offset of field: xtensa_memory_transaction::s\"] [:: std :: mem :: offset_of ! (xtensa_memory_transaction , s) - 0usize] ; } ; impl Default for xtensa_memory_transaction { fn default () -> Self { let mut s = :: std :: mem :: MaybeUninit :: < Self > :: uninit () ; unsafe { :: std :: ptr :: write_bytes (s . as_mut_ptr () , 0 , 1) ; s . assume_init () } } } # [doc = \" <add-type id=\\\"xtensa_memory_transaction_t def\\\"></add-type>\"] pub type xtensa_memory_transaction_t = xtensa_memory_transaction ; pub type xtensa_tie_lookup_interface_t = xtensa_tie_lookup_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct xtensa_tie_lookup_interface { pub data : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , out_width : uint32 , out_data : * const uint32 , in_width : uint32 , in_data : * mut uint32) > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of xtensa_tie_lookup_interface\"] [:: std :: mem :: size_of :: < xtensa_tie_lookup_interface > () - 8usize] ; [\"Alignment of xtensa_tie_lookup_interface\"] [:: std :: mem :: align_of :: < xtensa_tie_lookup_interface > () - 8usize] ; [\"Offset of field: xtensa_tie_lookup_interface::data\"] [:: std :: mem :: offset_of ! (xtensa_tie_lookup_interface , data) - 0usize] ; } ; pub type xtensa_tie_export_state_interface_t = xtensa_tie_export_state_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct xtensa_tie_export_state_interface { pub data : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , bit_width : uint32 , out_data : * const uint32) > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of xtensa_tie_export_state_interface\"] [:: std :: mem :: size_of :: < xtensa_tie_export_state_interface > () - 8usize] ; [\"Alignment of xtensa_tie_export_state_interface\"] [:: std :: mem :: align_of :: < xtensa_tie_export_state_interface > () - 8usize] ; [\"Offset of field: xtensa_tie_export_state_interface::data\"] [:: std :: mem :: offset_of ! (xtensa_tie_export_state_interface , data) - 0usize] ; } ; pub type xtensa_tie_output_queue_interface_t = xtensa_tie_output_queue_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct xtensa_tie_output_queue_interface { pub full : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t) -> bool > , pub data : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , bit_width : uint32 , reserve_only : bool , out_data : * const uint32) > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of xtensa_tie_output_queue_interface\"] [:: std :: mem :: size_of :: < xtensa_tie_output_queue_interface > () - 16usize] ; [\"Alignment of xtensa_tie_output_queue_interface\"] [:: std :: mem :: align_of :: < xtensa_tie_output_queue_interface > () - 8usize] ; [\"Offset of field: xtensa_tie_output_queue_interface::full\"] [:: std :: mem :: offset_of ! (xtensa_tie_output_queue_interface , full) - 0usize] ; [\"Offset of field: xtensa_tie_output_queue_interface::data\"] [:: std :: mem :: offset_of ! (xtensa_tie_output_queue_interface , data) - 8usize] ; } ; pub type xtensa_tie_input_queue_interface_t = xtensa_tie_input_queue_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct xtensa_tie_input_queue_interface { pub empty : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t) -> bool > , pub data : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , bit_width : uint32 , is_peek : bool , in_data : * mut uint32) > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of xtensa_tie_input_queue_interface\"] [:: std :: mem :: size_of :: < xtensa_tie_input_queue_interface > () - 16usize] ; [\"Alignment of xtensa_tie_input_queue_interface\"] [:: std :: mem :: align_of :: < xtensa_tie_input_queue_interface > () - 8usize] ; [\"Offset of field: xtensa_tie_input_queue_interface::empty\"] [:: std :: mem :: offset_of ! (xtensa_tie_input_queue_interface , empty) - 0usize] ; [\"Offset of field: xtensa_tie_input_queue_interface::data\"] [:: std :: mem :: offset_of ! (xtensa_tie_input_queue_interface , data) - 8usize] ; } ; pub type xtensa_tie_import_wire_interface_t = xtensa_tie_import_wire_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct xtensa_tie_import_wire_interface { pub data : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , bit_width : uint32 , in_data : * mut uint32) > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of xtensa_tie_import_wire_interface\"] [:: std :: mem :: size_of :: < xtensa_tie_import_wire_interface > () - 8usize] ; [\"Alignment of xtensa_tie_import_wire_interface\"] [:: std :: mem :: align_of :: < xtensa_tie_import_wire_interface > () - 8usize] ; [\"Offset of field: xtensa_tie_import_wire_interface::data\"] [:: std :: mem :: offset_of ! (xtensa_tie_import_wire_interface , data) - 0usize] ; } ; pub type xtensa_lookup_interface_t = xtensa_lookup_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct xtensa_lookup_interface { pub register_lookup : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , user_object : * mut lang_void , lookup_func : * mut lang_void) > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of xtensa_lookup_interface\"] [:: std :: mem :: size_of :: < xtensa_lookup_interface > () - 8usize] ; [\"Alignment of xtensa_lookup_interface\"] [:: std :: mem :: align_of :: < xtensa_lookup_interface > () - 8usize] ; [\"Offset of field: xtensa_lookup_interface::register_lookup\"] [:: std :: mem :: offset_of ! (xtensa_lookup_interface , register_lookup) - 0usize] ; } ; pub type xtensa_export_state_interface_t = xtensa_export_state_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct xtensa_export_state_interface { pub register_export_state : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , user_object : * mut lang_void , export_state_func : * mut lang_void) > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of xtensa_export_state_interface\"] [:: std :: mem :: size_of :: < xtensa_export_state_interface > () - 8usize] ; [\"Alignment of xtensa_export_state_interface\"] [:: std :: mem :: align_of :: < xtensa_export_state_interface > () - 8usize] ; [\"Offset of field: xtensa_export_state_interface::register_export_state\"] [:: std :: mem :: offset_of ! (xtensa_export_state_interface , register_export_state) - 0usize] ; } ; pub type xtensa_output_queue_interface_t = xtensa_output_queue_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct xtensa_output_queue_interface { pub register_output_queue : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , user_object : * mut lang_void , full_callback : * mut lang_void , data_callback : * mut lang_void) > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of xtensa_output_queue_interface\"] [:: std :: mem :: size_of :: < xtensa_output_queue_interface > () - 8usize] ; [\"Alignment of xtensa_output_queue_interface\"] [:: std :: mem :: align_of :: < xtensa_output_queue_interface > () - 8usize] ; [\"Offset of field: xtensa_output_queue_interface::register_output_queue\"] [:: std :: mem :: offset_of ! (xtensa_output_queue_interface , register_output_queue) - 0usize] ; } ; pub type xtensa_input_queue_interface_t = xtensa_input_queue_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct xtensa_input_queue_interface { pub register_input_queue : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , user_object : * mut lang_void , empty_callback : * mut lang_void , data_callback : * mut lang_void) > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of xtensa_input_queue_interface\"] [:: std :: mem :: size_of :: < xtensa_input_queue_interface > () - 8usize] ; [\"Alignment of xtensa_input_queue_interface\"] [:: std :: mem :: align_of :: < xtensa_input_queue_interface > () - 8usize] ; [\"Offset of field: xtensa_input_queue_interface::register_input_queue\"] [:: std :: mem :: offset_of ! (xtensa_input_queue_interface , register_input_queue) - 0usize] ; } ; pub type xtensa_import_wire_interface_t = xtensa_import_wire_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct xtensa_import_wire_interface { pub register_import_wire : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , user_object : * mut lang_void , import_wire_func : * mut lang_void) > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of xtensa_import_wire_interface\"] [:: std :: mem :: size_of :: < xtensa_import_wire_interface > () - 8usize] ; [\"Alignment of xtensa_import_wire_interface\"] [:: std :: mem :: align_of :: < xtensa_import_wire_interface > () - 8usize] ; [\"Offset of field: xtensa_import_wire_interface::register_import_wire\"] [:: std :: mem :: offset_of ! (xtensa_import_wire_interface , register_import_wire) - 0usize] ; } ; extern \"C\" { pub fn VT_push_exc_ppg_entry (key : * mut :: std :: os :: raw :: c_void) ; } extern \"C\" { pub fn VT_pop_exc_ppg_entry (key : * mut :: std :: os :: raw :: c_void , function : * const :: std :: os :: raw :: c_char) -> bool ; } extern \"C\" { pub fn VT_report_uncaught_exceptions () ; } extern \"C\" { pub fn VT_obtain_python_lock () -> bool ; } extern \"C\" { pub fn VT_release_python_lock (old_lock_state : bool) ; } extern \"C\" { pub fn VT_save_and_release_python_lock () -> * mut :: std :: os :: raw :: c_void ; } extern \"C\" { pub fn VT_obtain_and_restore_python_lock (saved : * mut :: std :: os :: raw :: c_void) ; } # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct trampoline_data { # [doc = \" trampoline template\"] pub templ : :: std :: option :: Option < unsafe extern \"C\" fn () > , # [doc = \" size of the trampoline template\"] pub size : usize , pub offsets : trampoline_data__bindgen_ty_1 , } # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct trampoline_data__bindgen_ty_1 { # [doc = \" offsets of hi/lo 32 bits of the C function address\"] pub function_hi : usize , # [doc = \" offsets of hi/lo 32 bits of the C function address\"] pub function_lo : usize , # [doc = \" offsets of hi/lo 32 bits of the data address\"] pub data_hi : usize , # [doc = \" offsets of hi/lo 32 bits of the data address\"] pub data_lo : usize , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of trampoline_data__bindgen_ty_1\"] [:: std :: mem :: size_of :: < trampoline_data__bindgen_ty_1 > () - 32usize] ; [\"Alignment of trampoline_data__bindgen_ty_1\"] [:: std :: mem :: align_of :: < trampoline_data__bindgen_ty_1 > () - 8usize] ; [\"Offset of field: trampoline_data__bindgen_ty_1::function_hi\"] [:: std :: mem :: offset_of ! (trampoline_data__bindgen_ty_1 , function_hi) - 0usize] ; [\"Offset of field: trampoline_data__bindgen_ty_1::function_lo\"] [:: std :: mem :: offset_of ! (trampoline_data__bindgen_ty_1 , function_lo) - 8usize] ; [\"Offset of field: trampoline_data__bindgen_ty_1::data_hi\"] [:: std :: mem :: offset_of ! (trampoline_data__bindgen_ty_1 , data_hi) - 16usize] ; [\"Offset of field: trampoline_data__bindgen_ty_1::data_lo\"] [:: std :: mem :: offset_of ! (trampoline_data__bindgen_ty_1 , data_lo) - 24usize] ; } ; # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of trampoline_data\"] [:: std :: mem :: size_of :: < trampoline_data > () - 48usize] ; [\"Alignment of trampoline_data\"] [:: std :: mem :: align_of :: < trampoline_data > () - 8usize] ; [\"Offset of field: trampoline_data::templ\"] [:: std :: mem :: offset_of ! (trampoline_data , templ) - 0usize] ; [\"Offset of field: trampoline_data::size\"] [:: std :: mem :: offset_of ! (trampoline_data , size) - 8usize] ; [\"Offset of field: trampoline_data::offsets\"] [:: std :: mem :: offset_of ! (trampoline_data , offsets) - 16usize] ; } ; pub type trampoline_data_t = trampoline_data ; pub type opaque_type_t = opaque_type ; extern \"C\" { # [doc = \" obsolete, for ABI compatibility with simics < 6.0.161\"] pub fn VT_register_py_interface (iface_name : * const :: std :: os :: raw :: c_char , pytype : * mut _typeobject) -> :: std :: os :: raw :: c_int ; } extern \"C\" { # [doc = \" obsolete,  for ABI compatibility with simics < 6.0.161\"] pub fn VT_get_py_interface (iface_name : * const :: std :: os :: raw :: c_char) -> * mut _typeobject ; } extern \"C\" { # [doc = \" obsolete, for ABI compatibility with simics < 6.0.162\"] pub fn VT_register_python_interface (iface_name : * const :: std :: os :: raw :: c_char , ot : * mut opaque_type_t) -> :: std :: os :: raw :: c_int ; } extern \"C\" { # [doc = \" obsolete, for ABI compatibility with simics < 6.0.162\"] pub fn VT_get_python_interface (iface_name : * const :: std :: os :: raw :: c_char) -> * mut opaque_type_t ; } extern \"C\" { pub fn VT_python_wrap_conf_object (data : * mut conf_object_t) -> * mut _object ; } extern \"C\" { pub fn VT_python_unwrap_conf_object (pyobj : * mut _object) -> * mut conf_object_t ; } extern \"C\" { pub fn VT_handle_python_exception (return_source : * mut _object , signature : * const :: std :: os :: raw :: c_char) ; } extern \"C\" { pub fn VT_raise_python_exception (exc_type : sim_exception_t , str_ : * const :: std :: os :: raw :: c_char) ; } extern \"C\" { pub fn VT_attr_value_to_python_obj (value : * mut attr_value_t , err_msg : * mut * const :: std :: os :: raw :: c_char) -> * mut _object ; } extern \"C\" { pub fn VT_python_obj_to_attr_value_with_error (obj : * mut _object , ret : * mut attr_value_t) -> :: std :: os :: raw :: c_int ; } extern \"C\" { pub fn VT_byte_string_to_pyobject (bstr : byte_string_t , po : * mut * mut _object) ; } extern \"C\" { pub fn VT_pyobject_to_byte_string (po : * mut _object , bstr : * mut byte_string_t) -> :: std :: os :: raw :: c_int ; } extern \"C\" { pub fn VT_pyobject_to_buffer_t (b : * mut buffer_t , obj : * mut _object) -> bool ; } extern \"C\" { pub fn VT_buffer_t_to_pyobject (b : buffer_t) -> * mut _object ; } extern \"C\" { pub fn VT_buffer_t_pyobject_invalidate (obj : * mut _object) ; } # [doc = \" struct to hold data about each type of generated trampolines (one\\nper signature)\"] pub type py_wrap_c_func_t = py_wrap_c_func ; # [doc = \" converter functions from/to a struct field type\"] # [repr (C)] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct field_type_t { # [doc = \" of type\"] pub name : * const :: std :: os :: raw :: c_char , # [doc = \" conversion from Python: return 0 on success, -1 on error\"] pub from_py : :: std :: option :: Option < unsafe extern \"C\" fn (generic_dst : * mut :: std :: os :: raw :: c_void , pysrc : * mut _object) -> :: std :: os :: raw :: c_int > , # [doc = \" conversion to Python: shouldn\'t fail\"] pub to_py : :: std :: option :: Option < unsafe extern \"C\" fn (generic_src : * mut :: std :: os :: raw :: c_void , object : * mut conf_object_t) -> * mut _object > , # [doc = \" optional function to free C data; must not fail\"] pub free_fn : :: std :: option :: Option < unsafe extern \"C\" fn (generic_data : * mut :: std :: os :: raw :: c_void) > , # [doc = \" wrap data, used for converting function pointer types\"] pub fn_wrap_data : * mut py_wrap_c_func_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of field_type_t\"] [:: std :: mem :: size_of :: < field_type_t > () - 40usize] ; [\"Alignment of field_type_t\"] [:: std :: mem :: align_of :: < field_type_t > () - 8usize] ; [\"Offset of field: field_type_t::name\"] [:: std :: mem :: offset_of ! (field_type_t , name) - 0usize] ; [\"Offset of field: field_type_t::from_py\"] [:: std :: mem :: offset_of ! (field_type_t , from_py) - 8usize] ; [\"Offset of field: field_type_t::to_py\"] [:: std :: mem :: offset_of ! (field_type_t , to_py) - 16usize] ; [\"Offset of field: field_type_t::free_fn\"] [:: std :: mem :: offset_of ! (field_type_t , free_fn) - 24usize] ; [\"Offset of field: field_type_t::fn_wrap_data\"] [:: std :: mem :: offset_of ! (field_type_t , fn_wrap_data) - 32usize] ; } ; impl Default for field_type_t { fn default () -> Self { let mut s = :: std :: mem :: MaybeUninit :: < Self > :: uninit () ; unsafe { :: std :: ptr :: write_bytes (s . as_mut_ptr () , 0 , 1) ; s . assume_init () } } } # [doc = \" struct member information\"] # [repr (C)] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct struct_member { pub name : * const :: std :: os :: raw :: c_char , # [doc = \" set this member to a Python value: 0 on success, -1 on error\"] pub set : :: std :: option :: Option < unsafe extern \"C\" fn (c_struct : * mut :: std :: os :: raw :: c_void , member : * const struct_member , pysrc : * mut _object) -> :: std :: os :: raw :: c_int > , # [doc = \" retrieve this member as a Python value; object is only used\\nfor interfaces\"] pub get : :: std :: option :: Option < unsafe extern \"C\" fn (c_struct : * mut :: std :: os :: raw :: c_void , object : * mut conf_object_t , member : * const struct_member) -> * mut _object > , # [doc = \" member byte offset in struct\"] pub ofs : usize , pub type_ : * const field_type_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of struct_member\"] [:: std :: mem :: size_of :: < struct_member > () - 40usize] ; [\"Alignment of struct_member\"] [:: std :: mem :: align_of :: < struct_member > () - 8usize] ; [\"Offset of field: struct_member::name\"] [:: std :: mem :: offset_of ! (struct_member , name) - 0usize] ; [\"Offset of field: struct_member::set\"] [:: std :: mem :: offset_of ! (struct_member , set) - 8usize] ; [\"Offset of field: struct_member::get\"] [:: std :: mem :: offset_of ! (struct_member , get) - 16usize] ; [\"Offset of field: struct_member::ofs\"] [:: std :: mem :: offset_of ! (struct_member , ofs) - 24usize] ; [\"Offset of field: struct_member::type_\"] [:: std :: mem :: offset_of ! (struct_member , type_) - 32usize] ; } ; impl Default for struct_member { fn default () -> Self { let mut s = :: std :: mem :: MaybeUninit :: < Self > :: uninit () ; unsafe { :: std :: ptr :: write_bytes (s . as_mut_ptr () , 0 , 1) ; s . assume_init () } } } # [doc = \" struct member information\"] pub type struct_member_t = struct_member ; extern \"C\" { pub fn VT_python_cbdata_type () -> * const cbdata_type_t ; } extern \"C\" { pub fn VT_cbdata_python_type () -> * mut _object ; } # [doc = \" struct to hold data about each type of generated trampolines (one\\nper signature)\"] # [repr (C)] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct py_wrap_c_func { # [doc = \" Python definition\"] pub meth : PyMethodDef , # [doc = \" C function that converts arguments and calls Python\"] pub python_caller : :: std :: option :: Option < unsafe extern \"C\" fn () > , # [doc = \" information about generated trampolines\"] pub trampoline_data : * const trampoline_data , # [doc = \" non-zero if this is a \\\"method\\\" function that can bind to an\\nobject\"] pub is_method : bool , # [doc = \" Number of arguments the function takes, including the first \\\"object\\\"\\nargument if it is a method.\"] pub arity : :: std :: os :: raw :: c_uchar , # [doc = \" Python wrapper, indexed by a hash of the C function and\\nbound object\"] pub c_to_py_table : * mut ht_int_table_t , # [doc = \" PyDictObject with PyCObject(C wrapper), indexed by Python object\"] pub py_to_c_dict : * mut PyObject , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of py_wrap_c_func\"] [:: std :: mem :: size_of :: < py_wrap_c_func > () - 72usize] ; [\"Alignment of py_wrap_c_func\"] [:: std :: mem :: align_of :: < py_wrap_c_func > () - 8usize] ; [\"Offset of field: py_wrap_c_func::meth\"] [:: std :: mem :: offset_of ! (py_wrap_c_func , meth) - 0usize] ; [\"Offset of field: py_wrap_c_func::python_caller\"] [:: std :: mem :: offset_of ! (py_wrap_c_func , python_caller) - 32usize] ; [\"Offset of field: py_wrap_c_func::trampoline_data\"] [:: std :: mem :: offset_of ! (py_wrap_c_func , trampoline_data) - 40usize] ; [\"Offset of field: py_wrap_c_func::is_method\"] [:: std :: mem :: offset_of ! (py_wrap_c_func , is_method) - 48usize] ; [\"Offset of field: py_wrap_c_func::arity\"] [:: std :: mem :: offset_of ! (py_wrap_c_func , arity) - 49usize] ; [\"Offset of field: py_wrap_c_func::c_to_py_table\"] [:: std :: mem :: offset_of ! (py_wrap_c_func , c_to_py_table) - 56usize] ; [\"Offset of field: py_wrap_c_func::py_to_c_dict\"] [:: std :: mem :: offset_of ! (py_wrap_c_func , py_to_c_dict) - 64usize] ; } ; impl Default for py_wrap_c_func { fn default () -> Self { let mut s = :: std :: mem :: MaybeUninit :: < Self > :: uninit () ; unsafe { :: std :: ptr :: write_bytes (s . as_mut_ptr () , 0 , 1) ; s . assume_init () } } } # [doc = \" py_opaque_type_t is used to wrap C structures whose contents cannot\\n be accessed by Python without getter/setter functions\"] # [repr (C)] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct py_opaque_type_t { pub ob_base : PyObject , # [doc = \" true if struct should be freed at\\ndestruction\"] pub malloced : bool , # [doc = \" true if fields should be freed at\\ndestruction\"] pub free_fields : bool , # [doc = \" true if data is allowed to change\"] pub mutable : bool , pub data : * mut :: std :: os :: raw :: c_void , # [doc = \" used for interfaces only\"] pub object : * mut conf_object_t , pub type_ : * mut opaque_type_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of py_opaque_type_t\"] [:: std :: mem :: size_of :: < py_opaque_type_t > () - 48usize] ; [\"Alignment of py_opaque_type_t\"] [:: std :: mem :: align_of :: < py_opaque_type_t > () - 8usize] ; [\"Offset of field: py_opaque_type_t::ob_base\"] [:: std :: mem :: offset_of ! (py_opaque_type_t , ob_base) - 0usize] ; [\"Offset of field: py_opaque_type_t::malloced\"] [:: std :: mem :: offset_of ! (py_opaque_type_t , malloced) - 16usize] ; [\"Offset of field: py_opaque_type_t::free_fields\"] [:: std :: mem :: offset_of ! (py_opaque_type_t , free_fields) - 17usize] ; [\"Offset of field: py_opaque_type_t::mutable\"] [:: std :: mem :: offset_of ! (py_opaque_type_t , mutable) - 18usize] ; [\"Offset of field: py_opaque_type_t::data\"] [:: std :: mem :: offset_of ! (py_opaque_type_t , data) - 24usize] ; [\"Offset of field: py_opaque_type_t::object\"] [:: std :: mem :: offset_of ! (py_opaque_type_t , object) - 32usize] ; [\"Offset of field: py_opaque_type_t::type_\"] [:: std :: mem :: offset_of ! (py_opaque_type_t , type_) - 40usize] ; } ; impl Default for py_opaque_type_t { fn default () -> Self { let mut s = :: std :: mem :: MaybeUninit :: < Self > :: uninit () ; unsafe { :: std :: ptr :: write_bytes (s . as_mut_ptr () , 0 , 1) ; s . assume_init () } } } # [repr (C)] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct opaque_type { pub pytype : * mut PyTypeObject , pub name : * const :: std :: os :: raw :: c_char , pub pyspec : PyType_Spec , pub size : :: std :: os :: raw :: c_uint , pub members : * const struct_member_t , pub nmembers : :: std :: os :: raw :: c_int , pub is_interface : bool , pub get_dict : :: std :: option :: Option < unsafe extern \"C\" fn (c_struct : * mut :: std :: os :: raw :: c_void , ot : * mut opaque_type) -> * mut PyObject > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of opaque_type\"] [:: std :: mem :: size_of :: < opaque_type > () - 80usize] ; [\"Alignment of opaque_type\"] [:: std :: mem :: align_of :: < opaque_type > () - 8usize] ; [\"Offset of field: opaque_type::pytype\"] [:: std :: mem :: offset_of ! (opaque_type , pytype) - 0usize] ; [\"Offset of field: opaque_type::name\"] [:: std :: mem :: offset_of ! (opaque_type , name) - 8usize] ; [\"Offset of field: opaque_type::pyspec\"] [:: std :: mem :: offset_of ! (opaque_type , pyspec) - 16usize] ; [\"Offset of field: opaque_type::size\"] [:: std :: mem :: offset_of ! (opaque_type , size) - 48usize] ; [\"Offset of field: opaque_type::members\"] [:: std :: mem :: offset_of ! (opaque_type , members) - 56usize] ; [\"Offset of field: opaque_type::nmembers\"] [:: std :: mem :: offset_of ! (opaque_type , nmembers) - 64usize] ; [\"Offset of field: opaque_type::is_interface\"] [:: std :: mem :: offset_of ! (opaque_type , is_interface) - 68usize] ; [\"Offset of field: opaque_type::get_dict\"] [:: std :: mem :: offset_of ! (opaque_type , get_dict) - 72usize] ; } ; impl Default for opaque_type { fn default () -> Self { let mut s = :: std :: mem :: MaybeUninit :: < Self > :: uninit () ; unsafe { :: std :: ptr :: write_bytes (s . as_mut_ptr () , 0 , 1) ; s . assume_init () } } } # [repr (C)] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct py_method_t { pub ob_base : PyObject , # [doc = \" actual signature may vary\"] pub func : :: std :: option :: Option < unsafe extern \"C\" fn () > , pub object : * mut conf_object_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of py_method_t\"] [:: std :: mem :: size_of :: < py_method_t > () - 32usize] ; [\"Alignment of py_method_t\"] [:: std :: mem :: align_of :: < py_method_t > () - 8usize] ; [\"Offset of field: py_method_t::ob_base\"] [:: std :: mem :: offset_of ! (py_method_t , ob_base) - 0usize] ; [\"Offset of field: py_method_t::func\"] [:: std :: mem :: offset_of ! (py_method_t , func) - 16usize] ; [\"Offset of field: py_method_t::object\"] [:: std :: mem :: offset_of ! (py_method_t , object) - 24usize] ; } ; impl Default for py_method_t { fn default () -> Self { let mut s = :: std :: mem :: MaybeUninit :: < Self > :: uninit () ; unsafe { :: std :: ptr :: write_bytes (s . as_mut_ptr () , 0 , 1) ; s . assume_init () } } } # [repr (C)] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct python_cbdata_t { pub ob_base : PyObject , pub cbdata : cbdata_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of python_cbdata_t\"] [:: std :: mem :: size_of :: < python_cbdata_t > () - 32usize] ; [\"Alignment of python_cbdata_t\"] [:: std :: mem :: align_of :: < python_cbdata_t > () - 8usize] ; [\"Offset of field: python_cbdata_t::ob_base\"] [:: std :: mem :: offset_of ! (python_cbdata_t , ob_base) - 0usize] ; [\"Offset of field: python_cbdata_t::cbdata\"] [:: std :: mem :: offset_of ! (python_cbdata_t , cbdata) - 16usize] ; } ; impl Default for python_cbdata_t { fn default () -> Self { let mut s = :: std :: mem :: MaybeUninit :: < Self > :: uninit () ; unsafe { :: std :: ptr :: write_bytes (s . as_mut_ptr () , 0 , 1) ; s . assume_init () } } } extern \"C\" { pub fn VT_init_python_wrappings () -> * mut _object ; } extern \"C\" { pub fn VT_lookup_python_opaque_type (name : * const :: std :: os :: raw :: c_char) -> * mut opaque_type_t ; } extern \"C\" { pub fn VT_lookup_python_opaque_type_name (type_ : * mut opaque_type_t) -> * const :: std :: os :: raw :: c_char ; } extern \"C\" { # [doc = \" obsolete, for ABI compatibility with simics < 6.0.162\"] pub fn VT_register_opaque_type (type_ : * mut opaque_type_t) ; } extern \"C\" { pub fn VT_register_opaque_python_type (type_ : * mut opaque_type_t , pytype : * mut _typeobject) ; } extern \"C\" { pub fn VT_get_opaque_python_type (ot : * mut opaque_type_t) -> * mut _typeobject ; } extern \"C\" { pub fn VT_get_py_c_wrap (func : * const :: std :: os :: raw :: c_void , object : * mut conf_object_t , data : * mut py_wrap_c_func_t) -> * mut _object ; } extern \"C\" { pub fn VT_get_c_py_wrap (dst : * mut * const :: std :: os :: raw :: c_void , src : * mut _object , data : * mut py_wrap_c_func_t , ignore_arity : bool) -> :: std :: os :: raw :: c_int ; } pub type frequency_interface_t = frequency_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct frequency_interface { pub get : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t) -> f64 > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of frequency_interface\"] [:: std :: mem :: size_of :: < frequency_interface > () - 8usize] ; [\"Alignment of frequency_interface\"] [:: std :: mem :: align_of :: < frequency_interface > () - 8usize] ; [\"Offset of field: frequency_interface::get\"] [:: std :: mem :: offset_of ! (frequency_interface , get) - 0usize] ; } ; pub type frequency_listener_interface_t = frequency_listener_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct frequency_listener_interface { pub set : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , numerator : uint64 , denominator : uint64) > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of frequency_listener_interface\"] [:: std :: mem :: size_of :: < frequency_listener_interface > () - 8usize] ; [\"Alignment of frequency_listener_interface\"] [:: std :: mem :: align_of :: < frequency_listener_interface > () - 8usize] ; [\"Offset of field: frequency_listener_interface::set\"] [:: std :: mem :: offset_of ! (frequency_listener_interface , set) - 0usize] ; } ; pub type scale_factor_listener_interface_t = scale_factor_listener_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct scale_factor_listener_interface { pub set : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , numerator : uint64 , denominator : uint64) > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of scale_factor_listener_interface\"] [:: std :: mem :: size_of :: < scale_factor_listener_interface > () - 8usize] ; [\"Alignment of scale_factor_listener_interface\"] [:: std :: mem :: align_of :: < scale_factor_listener_interface > () - 8usize] ; [\"Offset of field: scale_factor_listener_interface::set\"] [:: std :: mem :: offset_of ! (scale_factor_listener_interface , set) - 0usize] ; } ; pub type simple_dispatcher_interface_t = simple_dispatcher_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct simple_dispatcher_interface { pub subscribe : :: std :: option :: Option < unsafe extern \"C\" fn (bus : * mut conf_object_t , listener : * mut conf_object_t , listener_port : * const :: std :: os :: raw :: c_char) > , pub unsubscribe : :: std :: option :: Option < unsafe extern \"C\" fn (bus : * mut conf_object_t , listener : * mut conf_object_t , listener_port : * const :: std :: os :: raw :: c_char) > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of simple_dispatcher_interface\"] [:: std :: mem :: size_of :: < simple_dispatcher_interface > () - 16usize] ; [\"Alignment of simple_dispatcher_interface\"] [:: std :: mem :: align_of :: < simple_dispatcher_interface > () - 8usize] ; [\"Offset of field: simple_dispatcher_interface::subscribe\"] [:: std :: mem :: offset_of ! (simple_dispatcher_interface , subscribe) - 0usize] ; [\"Offset of field: simple_dispatcher_interface::unsubscribe\"] [:: std :: mem :: offset_of ! (simple_dispatcher_interface , unsubscribe) - 8usize] ; } ; # [doc = \" <add-type id=\\\"interrupt_ack_interface_t|interrupt_cpu_interface_t\\\">\\nThe <tt>interrupt_ack_fn_t</tt> function is called by an interrupt target\\nto ack an interrupt. Returns the interrupt vector.\\n<ndx>interrupt_ack_fn_t</ndx>\\n</add-type>\"] pub type interrupt_ack_fn_t = :: std :: option :: Option < unsafe extern \"C\" fn (arg1 : * mut conf_object_t) -> :: std :: os :: raw :: c_int > ; pub type interrupt_ack_interface_t = interrupt_ack_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct interrupt_ack_interface { pub raise_interrupt : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , cb : interrupt_ack_fn_t , ack_obj : * mut conf_object_t) > , pub lower_interrupt : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , cb : interrupt_ack_fn_t) > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of interrupt_ack_interface\"] [:: std :: mem :: size_of :: < interrupt_ack_interface > () - 16usize] ; [\"Alignment of interrupt_ack_interface\"] [:: std :: mem :: align_of :: < interrupt_ack_interface > () - 8usize] ; [\"Offset of field: interrupt_ack_interface::raise_interrupt\"] [:: std :: mem :: offset_of ! (interrupt_ack_interface , raise_interrupt) - 0usize] ; [\"Offset of field: interrupt_ack_interface::lower_interrupt\"] [:: std :: mem :: offset_of ! (interrupt_ack_interface , lower_interrupt) - 8usize] ; } ; pub type interrupt_cpu_interface_t = interrupt_cpu_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct interrupt_cpu_interface { pub ack : interrupt_ack_fn_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of interrupt_cpu_interface\"] [:: std :: mem :: size_of :: < interrupt_cpu_interface > () - 8usize] ; [\"Alignment of interrupt_cpu_interface\"] [:: std :: mem :: align_of :: < interrupt_cpu_interface > () - 8usize] ; [\"Offset of field: interrupt_cpu_interface::ack\"] [:: std :: mem :: offset_of ! (interrupt_cpu_interface , ack) - 0usize] ; } ; pub type io_memory_interface_t = io_memory_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct io_memory_interface { pub _deprecated_map : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , memory_or_io : addr_space_t , map_info : map_info_t) -> :: std :: os :: raw :: c_int > , pub operation : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , mem_op : * mut generic_transaction_t , map_info : map_info_t) -> exception_type_t > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of io_memory_interface\"] [:: std :: mem :: size_of :: < io_memory_interface > () - 16usize] ; [\"Alignment of io_memory_interface\"] [:: std :: mem :: align_of :: < io_memory_interface > () - 8usize] ; [\"Offset of field: io_memory_interface::_deprecated_map\"] [:: std :: mem :: offset_of ! (io_memory_interface , _deprecated_map) - 0usize] ; [\"Offset of field: io_memory_interface::operation\"] [:: std :: mem :: offset_of ! (io_memory_interface , operation) - 8usize] ; } ; extern \"C\" { pub fn VT_io_memory_operation (obj : * mut conf_object_t , iface : * mut io_memory_interface_t , memop : * mut generic_transaction_t , data : bytes_t , info : map_info_t) -> bytes_t ; } pub type map_demap_interface_t = map_demap_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct map_demap_interface { # [doc = \" old-style\"] pub add_map : :: std :: option :: Option < unsafe extern \"C\" fn (space : * mut conf_object_t , dev : * mut conf_object_t , target : * mut conf_object_t , map_info : map_info_t) -> :: std :: os :: raw :: c_int > , pub remove_map : :: std :: option :: Option < unsafe extern \"C\" fn (space : * mut conf_object_t , dev : * mut conf_object_t , function : :: std :: os :: raw :: c_int) -> :: std :: os :: raw :: c_int > , pub add_default : :: std :: option :: Option < unsafe extern \"C\" fn (space : * mut conf_object_t , dev : * mut conf_object_t , target : * mut conf_object_t , map_info : map_info_t) -> :: std :: os :: raw :: c_int > , pub remove_default : :: std :: option :: Option < unsafe extern \"C\" fn (space : * mut conf_object_t) > , # [doc = \" new-style\"] pub map_simple : :: std :: option :: Option < unsafe extern \"C\" fn (space : * mut conf_object_t , dev : * mut conf_object_t , dev_port : * const :: std :: os :: raw :: c_char , map_info : map_info_t) -> :: std :: os :: raw :: c_int > , pub map_bridge : :: std :: option :: Option < unsafe extern \"C\" fn (space : * mut conf_object_t , dev : * mut conf_object_t , dev_port : * const :: std :: os :: raw :: c_char , target : * mut conf_object_t , target_port : * const :: std :: os :: raw :: c_char , map_info : map_info_t) -> :: std :: os :: raw :: c_int > , pub unmap : :: std :: option :: Option < unsafe extern \"C\" fn (space : * mut conf_object_t , dev : * mut conf_object_t , dev_port : * const :: std :: os :: raw :: c_char) -> :: std :: os :: raw :: c_int > , pub unmap_address : :: std :: option :: Option < unsafe extern \"C\" fn (space : * mut conf_object_t , dev : * mut conf_object_t , base : physical_address_t , dev_port : * const :: std :: os :: raw :: c_char) -> :: std :: os :: raw :: c_int > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of map_demap_interface\"] [:: std :: mem :: size_of :: < map_demap_interface > () - 64usize] ; [\"Alignment of map_demap_interface\"] [:: std :: mem :: align_of :: < map_demap_interface > () - 8usize] ; [\"Offset of field: map_demap_interface::add_map\"] [:: std :: mem :: offset_of ! (map_demap_interface , add_map) - 0usize] ; [\"Offset of field: map_demap_interface::remove_map\"] [:: std :: mem :: offset_of ! (map_demap_interface , remove_map) - 8usize] ; [\"Offset of field: map_demap_interface::add_default\"] [:: std :: mem :: offset_of ! (map_demap_interface , add_default) - 16usize] ; [\"Offset of field: map_demap_interface::remove_default\"] [:: std :: mem :: offset_of ! (map_demap_interface , remove_default) - 24usize] ; [\"Offset of field: map_demap_interface::map_simple\"] [:: std :: mem :: offset_of ! (map_demap_interface , map_simple) - 32usize] ; [\"Offset of field: map_demap_interface::map_bridge\"] [:: std :: mem :: offset_of ! (map_demap_interface , map_bridge) - 40usize] ; [\"Offset of field: map_demap_interface::unmap\"] [:: std :: mem :: offset_of ! (map_demap_interface , unmap) - 48usize] ; [\"Offset of field: map_demap_interface::unmap_address\"] [:: std :: mem :: offset_of ! (map_demap_interface , unmap_address) - 56usize] ; } ; pub type memory_space_interface_t = memory_space_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct memory_space_interface { pub space_lookup : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , mop : * mut generic_transaction_t , mapinfo : map_info_t) -> * mut map_list_t > , pub access : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , mop : * mut generic_transaction_t) -> exception_type_t > , pub access_simple : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , initiator : * mut conf_object_t , addr : physical_address_t , buf : * mut uint8 , len : physical_address_t , type_ : read_or_write_t , endian : endianness_t) -> exception_type_t > , pub access_simple_inq : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , initiator : * mut conf_object_t , addr : physical_address_t , buf : * mut uint8 , len : physical_address_t , type_ : read_or_write_t , endian : endianness_t) -> exception_type_t > , pub read : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , initiator : * mut conf_object_t , addr : physical_address_t , length : :: std :: os :: raw :: c_int , inquiry : :: std :: os :: raw :: c_int) -> attr_value_t > , pub write : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , initiator : * mut conf_object_t , addr : physical_address_t , data : attr_value_t , inquiry : :: std :: os :: raw :: c_int) -> exception_type_t > , pub timing_model_operate : :: std :: option :: Option < unsafe extern \"C\" fn (space : * mut conf_object_t , mop : * mut generic_transaction_t) -> cycles_t > , pub fill : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , start : physical_address_t , size : uint64 , value : uint8 , inquiry : bool) -> uint64 > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of memory_space_interface\"] [:: std :: mem :: size_of :: < memory_space_interface > () - 64usize] ; [\"Alignment of memory_space_interface\"] [:: std :: mem :: align_of :: < memory_space_interface > () - 8usize] ; [\"Offset of field: memory_space_interface::space_lookup\"] [:: std :: mem :: offset_of ! (memory_space_interface , space_lookup) - 0usize] ; [\"Offset of field: memory_space_interface::access\"] [:: std :: mem :: offset_of ! (memory_space_interface , access) - 8usize] ; [\"Offset of field: memory_space_interface::access_simple\"] [:: std :: mem :: offset_of ! (memory_space_interface , access_simple) - 16usize] ; [\"Offset of field: memory_space_interface::access_simple_inq\"] [:: std :: mem :: offset_of ! (memory_space_interface , access_simple_inq) - 24usize] ; [\"Offset of field: memory_space_interface::read\"] [:: std :: mem :: offset_of ! (memory_space_interface , read) - 32usize] ; [\"Offset of field: memory_space_interface::write\"] [:: std :: mem :: offset_of ! (memory_space_interface , write) - 40usize] ; [\"Offset of field: memory_space_interface::timing_model_operate\"] [:: std :: mem :: offset_of ! (memory_space_interface , timing_model_operate) - 48usize] ; [\"Offset of field: memory_space_interface::fill\"] [:: std :: mem :: offset_of ! (memory_space_interface , fill) - 56usize] ; } ; pub type port_space_interface_t = port_space_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct port_space_interface { pub port_operation : :: std :: option :: Option < unsafe extern \"C\" fn (pspace_obj : * mut conf_object_t , mop : * mut generic_transaction_t , map_info : map_info_t) -> exception_type_t > , pub read : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , initiator : * mut conf_object_t , addr : physical_address_t , length : :: std :: os :: raw :: c_int , inquiry : :: std :: os :: raw :: c_int) -> attr_value_t > , pub write : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , initiator : * mut conf_object_t , addr : physical_address_t , data : attr_value_t , inquiry : :: std :: os :: raw :: c_int) -> exception_type_t > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of port_space_interface\"] [:: std :: mem :: size_of :: < port_space_interface > () - 24usize] ; [\"Alignment of port_space_interface\"] [:: std :: mem :: align_of :: < port_space_interface > () - 8usize] ; [\"Offset of field: port_space_interface::port_operation\"] [:: std :: mem :: offset_of ! (port_space_interface , port_operation) - 0usize] ; [\"Offset of field: port_space_interface::read\"] [:: std :: mem :: offset_of ! (port_space_interface , read) - 8usize] ; [\"Offset of field: port_space_interface::write\"] [:: std :: mem :: offset_of ! (port_space_interface , write) - 16usize] ; } ; pub type translate_interface_t = translate_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct translate_interface { pub translate : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , mem_op : * mut generic_transaction_t , mapinfo : map_info_t) -> * mut conf_object_t > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of translate_interface\"] [:: std :: mem :: size_of :: < translate_interface > () - 8usize] ; [\"Alignment of translate_interface\"] [:: std :: mem :: align_of :: < translate_interface > () - 8usize] ; [\"Offset of field: translate_interface::translate\"] [:: std :: mem :: offset_of ! (translate_interface , translate) - 0usize] ; } ; pub type bridge_interface_t = bridge_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct bridge_interface { pub not_taken : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , src_space : * mut conf_object_t , dst_space : * mut conf_object_t , ex : exception_type_t , mem_op : * mut generic_transaction_t , mapinfo : map_info_t) -> exception_type_t > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of bridge_interface\"] [:: std :: mem :: size_of :: < bridge_interface > () - 8usize] ; [\"Alignment of bridge_interface\"] [:: std :: mem :: align_of :: < bridge_interface > () - 8usize] ; [\"Offset of field: bridge_interface::not_taken\"] [:: std :: mem :: offset_of ! (bridge_interface , not_taken) - 0usize] ; } ; pub type signal_interface_t = signal_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct signal_interface { pub signal_raise : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t) > , pub signal_lower : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t) > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of signal_interface\"] [:: std :: mem :: size_of :: < signal_interface > () - 16usize] ; [\"Alignment of signal_interface\"] [:: std :: mem :: align_of :: < signal_interface > () - 8usize] ; [\"Offset of field: signal_interface::signal_raise\"] [:: std :: mem :: offset_of ! (signal_interface , signal_raise) - 0usize] ; [\"Offset of field: signal_interface::signal_lower\"] [:: std :: mem :: offset_of ! (signal_interface , signal_lower) - 8usize] ; } ; pub type multi_level_signal_interface_t = multi_level_signal_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct multi_level_signal_interface { pub signal_level_change : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , level : uint64) > , pub signal_current_level : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , level : uint64) > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of multi_level_signal_interface\"] [:: std :: mem :: size_of :: < multi_level_signal_interface > () - 16usize] ; [\"Alignment of multi_level_signal_interface\"] [:: std :: mem :: align_of :: < multi_level_signal_interface > () - 8usize] ; [\"Offset of field: multi_level_signal_interface::signal_level_change\"] [:: std :: mem :: offset_of ! (multi_level_signal_interface , signal_level_change) - 0usize] ; [\"Offset of field: multi_level_signal_interface::signal_current_level\"] [:: std :: mem :: offset_of ! (multi_level_signal_interface , signal_current_level) - 8usize] ; } ; pub type pulse_interface_t = pulse_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct pulse_interface { pub pulse : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t) > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of pulse_interface\"] [:: std :: mem :: size_of :: < pulse_interface > () - 8usize] ; [\"Alignment of pulse_interface\"] [:: std :: mem :: align_of :: < pulse_interface > () - 8usize] ; [\"Offset of field: pulse_interface::pulse\"] [:: std :: mem :: offset_of ! (pulse_interface , pulse) - 0usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct craff_file { _unused : [u8 ; 0] , } pub type craff_file_t = craff_file ; # [repr (u32)] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub enum craff_compr_t { Compr_None = 0 , # [doc = \" 1 used to be bz2 compression\"] Compr_Gz = 2 , } # [doc = \" Craff file creation parameters; see vin0010 for a more thorough description\\nof these.\"] # [repr (C)] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct craff_params_t { # [doc = \" log2(block size in bytes)\"] pub block_bits : :: std :: os :: raw :: c_int , # [doc = \" log2(sub-blocks per block)\"] pub sub_bits : :: std :: os :: raw :: c_int , # [doc = \" log2(directory entries per node)\"] pub directory_bits : :: std :: os :: raw :: c_int , pub compression : craff_compr_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of craff_params_t\"] [:: std :: mem :: size_of :: < craff_params_t > () - 16usize] ; [\"Alignment of craff_params_t\"] [:: std :: mem :: align_of :: < craff_params_t > () - 4usize] ; [\"Offset of field: craff_params_t::block_bits\"] [:: std :: mem :: offset_of ! (craff_params_t , block_bits) - 0usize] ; [\"Offset of field: craff_params_t::sub_bits\"] [:: std :: mem :: offset_of ! (craff_params_t , sub_bits) - 4usize] ; [\"Offset of field: craff_params_t::directory_bits\"] [:: std :: mem :: offset_of ! (craff_params_t , directory_bits) - 8usize] ; [\"Offset of field: craff_params_t::compression\"] [:: std :: mem :: offset_of ! (craff_params_t , compression) - 12usize] ; } ; impl Default for craff_params_t { fn default () -> Self { let mut s = :: std :: mem :: MaybeUninit :: < Self > :: uninit () ; unsafe { :: std :: ptr :: write_bytes (s . as_mut_ptr () , 0 , 1) ; s . assume_init () } } } # [repr (C)] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct craff_info_t { pub size : uint64 , pub block_bits : :: std :: os :: raw :: c_int , pub sub_bits : :: std :: os :: raw :: c_int , pub directory_bits : :: std :: os :: raw :: c_int , pub compression : craff_compr_t , pub version : :: std :: os :: raw :: c_int , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of craff_info_t\"] [:: std :: mem :: size_of :: < craff_info_t > () - 32usize] ; [\"Alignment of craff_info_t\"] [:: std :: mem :: align_of :: < craff_info_t > () - 8usize] ; [\"Offset of field: craff_info_t::size\"] [:: std :: mem :: offset_of ! (craff_info_t , size) - 0usize] ; [\"Offset of field: craff_info_t::block_bits\"] [:: std :: mem :: offset_of ! (craff_info_t , block_bits) - 8usize] ; [\"Offset of field: craff_info_t::sub_bits\"] [:: std :: mem :: offset_of ! (craff_info_t , sub_bits) - 12usize] ; [\"Offset of field: craff_info_t::directory_bits\"] [:: std :: mem :: offset_of ! (craff_info_t , directory_bits) - 16usize] ; [\"Offset of field: craff_info_t::compression\"] [:: std :: mem :: offset_of ! (craff_info_t , compression) - 20usize] ; [\"Offset of field: craff_info_t::version\"] [:: std :: mem :: offset_of ! (craff_info_t , version) - 24usize] ; } ; impl Default for craff_info_t { fn default () -> Self { let mut s = :: std :: mem :: MaybeUninit :: < Self > :: uninit () ; unsafe { :: std :: ptr :: write_bytes (s . as_mut_ptr () , 0 , 1) ; s . assume_init () } } } # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct craff_interv_t { pub ofs : uint64 , pub len : uint64 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of craff_interv_t\"] [:: std :: mem :: size_of :: < craff_interv_t > () - 16usize] ; [\"Alignment of craff_interv_t\"] [:: std :: mem :: align_of :: < craff_interv_t > () - 8usize] ; [\"Offset of field: craff_interv_t::ofs\"] [:: std :: mem :: offset_of ! (craff_interv_t , ofs) - 0usize] ; [\"Offset of field: craff_interv_t::len\"] [:: std :: mem :: offset_of ! (craff_interv_t , len) - 8usize] ; } ; # [repr (u32)] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub enum craff_errclass_t { # [doc = \" no error\"] Craff_Err_Success = 0 , # [doc = \" out of disk space or quota\"] Craff_Err_Nospace = 1 , # [doc = \" corrupt craff file\"] Craff_Err_Corrupt = 2 , # [doc = \" wrong magic number (not a craff file)\"] Craff_Err_Notcraff = 3 , # [doc = \" not a dmg image\"] Craff_Err_Notdmg = 4 , # [doc = \" image not writable (read-only)\"] Craff_Err_ReadOnly = 5 , # [doc = \" file not found\"] Craff_Err_Notfound = 6 , # [doc = \" Unsupported feature\"] Craff_Err_Nosupport = 7 , # [doc = \" any other error\"] Craff_Err_Other = 8 , } # [doc = \" craff error state - can be shared between multiple file objects\"] # [repr (C)] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct craff_error { # [doc = \" malloced, owned by this struct\"] pub msg : * mut :: std :: os :: raw :: c_char , pub errclass : craff_errclass_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of craff_error\"] [:: std :: mem :: size_of :: < craff_error > () - 16usize] ; [\"Alignment of craff_error\"] [:: std :: mem :: align_of :: < craff_error > () - 8usize] ; [\"Offset of field: craff_error::msg\"] [:: std :: mem :: offset_of ! (craff_error , msg) - 0usize] ; [\"Offset of field: craff_error::errclass\"] [:: std :: mem :: offset_of ! (craff_error , errclass) - 8usize] ; } ; impl Default for craff_error { fn default () -> Self { let mut s = :: std :: mem :: MaybeUninit :: < Self > :: uninit () ; unsafe { :: std :: ptr :: write_bytes (s . as_mut_ptr () , 0 , 1) ; s . assume_init () } } } # [doc = \" craff error state - can be shared between multiple file objects\"] pub type craff_error_t = craff_error ; # [repr (u32)] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub enum craff_mode_t { Craff_Read_Only = 0 , # [doc = \" uncompressed craffs only\"] Craff_Read_Write = 1 , # [doc = \" craff_recover() not possible\"] Craff_Read_Write_Allow_Compression = 2 , } # [repr (C)] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct craff_interv_vec_t { pub size : :: std :: os :: raw :: c_int , pub used : :: std :: os :: raw :: c_int , pub elements : * mut craff_interv_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of craff_interv_vec_t\"] [:: std :: mem :: size_of :: < craff_interv_vec_t > () - 16usize] ; [\"Alignment of craff_interv_vec_t\"] [:: std :: mem :: align_of :: < craff_interv_vec_t > () - 8usize] ; [\"Offset of field: craff_interv_vec_t::size\"] [:: std :: mem :: offset_of ! (craff_interv_vec_t , size) - 0usize] ; [\"Offset of field: craff_interv_vec_t::used\"] [:: std :: mem :: offset_of ! (craff_interv_vec_t , used) - 4usize] ; [\"Offset of field: craff_interv_vec_t::elements\"] [:: std :: mem :: offset_of ! (craff_interv_vec_t , elements) - 8usize] ; } ; impl Default for craff_interv_vec_t { fn default () -> Self { let mut s = :: std :: mem :: MaybeUninit :: < Self > :: uninit () ; unsafe { :: std :: ptr :: write_bytes (s . as_mut_ptr () , 0 , 1) ; s . assume_init () } } } extern \"C\" { pub fn craff_new_error () -> * mut craff_error_t ; } extern \"C\" { pub fn craff_free_error (ce : * mut craff_error_t) ; } extern \"C\" { pub fn craff_get_error_class (ce : * mut craff_error_t) -> craff_errclass_t ; } extern \"C\" { pub fn craff_get_error (ce : * mut craff_error_t) -> * const :: std :: os :: raw :: c_char ; } extern \"C\" { pub fn craff_open (ce : * mut craff_error_t , file : * const :: std :: os :: raw :: c_char , mode : craff_mode_t) -> * mut craff_file_t ; } extern \"C\" { pub fn craff_creat (ce : * mut craff_error_t , file : * const :: std :: os :: raw :: c_char , size : uint64 , params : * mut craff_params_t) -> * mut craff_file_t ; } extern \"C\" { pub fn craff_close (cf : * mut craff_file_t) -> :: std :: os :: raw :: c_int ; } extern \"C\" { pub fn craff_flush (cf : * mut craff_file_t) -> :: std :: os :: raw :: c_int ; } extern \"C\" { pub fn craff_recover (cf : * mut craff_file_t) -> :: std :: os :: raw :: c_int ; } extern \"C\" { pub fn craff_write (cf : * mut craff_file_t , buf : * const :: std :: os :: raw :: c_void , ofs : uint64 , len : usize) -> :: std :: os :: raw :: c_int ; } extern \"C\" { pub fn craff_read (cf : * mut craff_file_t , buf : * mut :: std :: os :: raw :: c_void , ofs : uint64 , len : usize , gaps : * mut craff_interv_vec_t) -> :: std :: os :: raw :: c_int ; } extern \"C\" { pub fn craff_next_data (cf : * mut craff_file_t , ofs : uint64 , limit : uint64) -> uint64 ; } extern \"C\" { pub fn craff_get_info (cf : * mut craff_file_t , info : * mut craff_info_t) ; } extern \"C\" { pub fn craff_file_error (cf : * mut craff_file_t) -> * mut craff_error_t ; } extern \"C\" { pub fn craff_file_get_error (cf : * mut craff_file_t) -> * const :: std :: os :: raw :: c_char ; } pub type os_char_t = :: std :: os :: raw :: c_char ; extern \"C\" { pub fn initialize_encoding () ; } extern \"C\" { pub fn VT_simics_to_filename (ustr : * const :: std :: os :: raw :: c_char) -> * mut os_char_t ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct vhdx_file { _unused : [u8 ; 0] , } pub type vhdx_file_t = vhdx_file ; # [doc = \" UUID of the Microsoft kind. The byte-order of the on-disk format is\\ndifferent from the standard representation.\"] # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct vhdx_muuid_t { # [doc = \" Fields d1-d3 are apparently in little-endian order, despite the\\nclaims of the VHD spec.\"] pub d1 : uint32 , pub d2 : uint16 , pub d3 : uint16 , # [doc = \" In straight order (BE).\"] pub d4 : [uint8 ; 8usize] , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of vhdx_muuid_t\"] [:: std :: mem :: size_of :: < vhdx_muuid_t > () - 16usize] ; [\"Alignment of vhdx_muuid_t\"] [:: std :: mem :: align_of :: < vhdx_muuid_t > () - 4usize] ; [\"Offset of field: vhdx_muuid_t::d1\"] [:: std :: mem :: offset_of ! (vhdx_muuid_t , d1) - 0usize] ; [\"Offset of field: vhdx_muuid_t::d2\"] [:: std :: mem :: offset_of ! (vhdx_muuid_t , d2) - 4usize] ; [\"Offset of field: vhdx_muuid_t::d3\"] [:: std :: mem :: offset_of ! (vhdx_muuid_t , d3) - 6usize] ; [\"Offset of field: vhdx_muuid_t::d4\"] [:: std :: mem :: offset_of ! (vhdx_muuid_t , d4) - 8usize] ; } ; # [repr (C)] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct vhdx_info_t { # [doc = \" From VHDX specification: \\\"Contains a UTF-16 string that can be null\\nterminated. This field is optional; the implementation fills it in\\nduring the creation of the VHDX file to identify, uniquely, the\\ncreator of the VHDX file. Implementation MUST NOT use this field as\\na mechanism to influence implementation behavior; it exists for\\ndiagnostic purposes only.\\\"\"] pub creator : [:: std :: os :: raw :: c_char ; 512usize] , # [doc = \" the size of the virtual disk, in bytes\"] pub size : uint64 , # [doc = \" the virtual disk\'s sector size, in bytes\"] pub logical_sector_size : uint32 , # [doc = \" the virtual disk\'s physical sector size, in bytes\"] pub physical_sector_size : uint32 , # [doc = \" A GUID that specifies the identification of the disk.\"] pub virtual_disk_id : vhdx_muuid_t , # [doc = \" A GUID that identifies the file\'s contents.\"] pub file_write_guid : vhdx_muuid_t , # [doc = \" A GUID that identifies the contents of user visible data.\\nIt is used for the validation of a differential VHDX chain.\"] pub data_write_guid : vhdx_muuid_t , # [doc = \" Specifies the version of the VHDX format used\\nwithin the VHDX file.\"] pub version : uint16 , # [doc = \" Specifies whether this file has a parent VHDX file. If set, the file\\nis a differencing file, and one or more parent locators specify the\\nlocation and identity of the parent.\"] pub has_parent : bool , # [doc = \" the size of each payload block in bytes\"] pub block_size : uint32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of vhdx_info_t\"] [:: std :: mem :: size_of :: < vhdx_info_t > () - 584usize] ; [\"Alignment of vhdx_info_t\"] [:: std :: mem :: align_of :: < vhdx_info_t > () - 8usize] ; [\"Offset of field: vhdx_info_t::creator\"] [:: std :: mem :: offset_of ! (vhdx_info_t , creator) - 0usize] ; [\"Offset of field: vhdx_info_t::size\"] [:: std :: mem :: offset_of ! (vhdx_info_t , size) - 512usize] ; [\"Offset of field: vhdx_info_t::logical_sector_size\"] [:: std :: mem :: offset_of ! (vhdx_info_t , logical_sector_size) - 520usize] ; [\"Offset of field: vhdx_info_t::physical_sector_size\"] [:: std :: mem :: offset_of ! (vhdx_info_t , physical_sector_size) - 524usize] ; [\"Offset of field: vhdx_info_t::virtual_disk_id\"] [:: std :: mem :: offset_of ! (vhdx_info_t , virtual_disk_id) - 528usize] ; [\"Offset of field: vhdx_info_t::file_write_guid\"] [:: std :: mem :: offset_of ! (vhdx_info_t , file_write_guid) - 544usize] ; [\"Offset of field: vhdx_info_t::data_write_guid\"] [:: std :: mem :: offset_of ! (vhdx_info_t , data_write_guid) - 560usize] ; [\"Offset of field: vhdx_info_t::version\"] [:: std :: mem :: offset_of ! (vhdx_info_t , version) - 576usize] ; [\"Offset of field: vhdx_info_t::has_parent\"] [:: std :: mem :: offset_of ! (vhdx_info_t , has_parent) - 578usize] ; [\"Offset of field: vhdx_info_t::block_size\"] [:: std :: mem :: offset_of ! (vhdx_info_t , block_size) - 580usize] ; } ; impl Default for vhdx_info_t { fn default () -> Self { let mut s = :: std :: mem :: MaybeUninit :: < Self > :: uninit () ; unsafe { :: std :: ptr :: write_bytes (s . as_mut_ptr () , 0 , 1) ; s . assume_init () } } } extern \"C\" { pub fn vhdx_open (fname : * const :: std :: os :: raw :: c_char , writable : bool , ce : * mut craff_error_t) -> * mut vhdx_file_t ; } # [repr (C)] # [derive (Debug , Copy , Clone)] pub struct vhdx_params { _unused : [u8 ; 0] , } pub type vhdx_params_t = vhdx_params ; extern \"C\" { pub fn vhdx_creat (fname : * const :: std :: os :: raw :: c_char , size : uint64 , ce : * mut craff_error_t , params : * mut vhdx_params_t) -> * mut vhdx_file_t ; } extern \"C\" { pub fn vhdx_close (file : * mut vhdx_file_t) -> :: std :: os :: raw :: c_int ; } extern \"C\" { pub fn vhdx_write (file : * mut vhdx_file_t , buf : * const :: std :: os :: raw :: c_void , ofs : uint64 , len : usize) -> :: std :: os :: raw :: c_int ; } extern \"C\" { pub fn vhdx_read (file : * mut vhdx_file_t , buf : * mut :: std :: os :: raw :: c_void , ofs : uint64 , len : usize , gaps : * mut craff_interv_vec_t) -> :: std :: os :: raw :: c_int ; } extern \"C\" { pub fn vhdx_virtual_disk_size (file : * mut vhdx_file_t) -> uint64 ; } extern \"C\" { pub fn vhdx_get_info (file : * mut vhdx_file_t , info : * mut vhdx_info_t , info_size : usize) ; } extern \"C\" { pub fn vhdx_file_error_message (file : * mut vhdx_file_t) -> * const :: std :: os :: raw :: c_char ; } extern \"C\" { pub fn vhdx_muuid_to_str (vhdx_muuid : vhdx_muuid_t) -> * mut :: std :: os :: raw :: c_char ; } pub type sata_interface_t = sata_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct sata_interface { pub receive_fis : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , fis : bytes_t) > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of sata_interface\"] [:: std :: mem :: size_of :: < sata_interface > () - 8usize] ; [\"Alignment of sata_interface\"] [:: std :: mem :: align_of :: < sata_interface > () - 8usize] ; [\"Offset of field: sata_interface::receive_fis\"] [:: std :: mem :: offset_of ! (sata_interface , receive_fis) - 0usize] ; } ; pub type mod_def_t = :: std :: os :: raw :: c_int ; pub type gbic_transceiver_interface_t = gbic_transceiver_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct gbic_transceiver_interface { pub read_mod_def : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t) -> mod_def_t > , pub write_mod_def : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , mod_def : mod_def_t) > , pub loopback : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , loopback : :: std :: os :: raw :: c_int) > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of gbic_transceiver_interface\"] [:: std :: mem :: size_of :: < gbic_transceiver_interface > () - 24usize] ; [\"Alignment of gbic_transceiver_interface\"] [:: std :: mem :: align_of :: < gbic_transceiver_interface > () - 8usize] ; [\"Offset of field: gbic_transceiver_interface::read_mod_def\"] [:: std :: mem :: offset_of ! (gbic_transceiver_interface , read_mod_def) - 0usize] ; [\"Offset of field: gbic_transceiver_interface::write_mod_def\"] [:: std :: mem :: offset_of ! (gbic_transceiver_interface , write_mod_def) - 8usize] ; [\"Offset of field: gbic_transceiver_interface::loopback\"] [:: std :: mem :: offset_of ! (gbic_transceiver_interface , loopback) - 16usize] ; } ; pub type serial_device_interface_t = serial_device_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct serial_device_interface { pub write : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , value : :: std :: os :: raw :: c_int) -> :: std :: os :: raw :: c_int > , pub receive_ready : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t) > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of serial_device_interface\"] [:: std :: mem :: size_of :: < serial_device_interface > () - 16usize] ; [\"Alignment of serial_device_interface\"] [:: std :: mem :: align_of :: < serial_device_interface > () - 8usize] ; [\"Offset of field: serial_device_interface::write\"] [:: std :: mem :: offset_of ! (serial_device_interface , write) - 0usize] ; [\"Offset of field: serial_device_interface::receive_ready\"] [:: std :: mem :: offset_of ! (serial_device_interface , receive_ready) - 8usize] ; } ; pub type extended_serial_interface_t = extended_serial_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct extended_serial_interface { pub write_at : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , value : :: std :: os :: raw :: c_int , x : :: std :: os :: raw :: c_int , y : :: std :: os :: raw :: c_int , fg : :: std :: os :: raw :: c_int , bg : :: std :: os :: raw :: c_int) > , pub graphics_mode : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , in_graphics_mode : :: std :: os :: raw :: c_int) > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of extended_serial_interface\"] [:: std :: mem :: size_of :: < extended_serial_interface > () - 16usize] ; [\"Alignment of extended_serial_interface\"] [:: std :: mem :: align_of :: < extended_serial_interface > () - 8usize] ; [\"Offset of field: extended_serial_interface::write_at\"] [:: std :: mem :: offset_of ! (extended_serial_interface , write_at) - 0usize] ; [\"Offset of field: extended_serial_interface::graphics_mode\"] [:: std :: mem :: offset_of ! (extended_serial_interface , graphics_mode) - 8usize] ; } ; pub type rs232_device_interface_t = rs232_device_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct rs232_device_interface { # [doc = \" Flow control lines\"] pub cts : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , status : :: std :: os :: raw :: c_int) > , pub dsr : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , status : :: std :: os :: raw :: c_int) > , # [doc = \" Ring indicator\"] pub ring : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , status : :: std :: os :: raw :: c_int) > , # [doc = \" Carrier detect\"] pub carrier : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , status : :: std :: os :: raw :: c_int) > , # [doc = \" Break\"] pub got_break : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t) > , # [doc = \" Frame error\"] pub got_frame_error : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t) > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of rs232_device_interface\"] [:: std :: mem :: size_of :: < rs232_device_interface > () - 48usize] ; [\"Alignment of rs232_device_interface\"] [:: std :: mem :: align_of :: < rs232_device_interface > () - 8usize] ; [\"Offset of field: rs232_device_interface::cts\"] [:: std :: mem :: offset_of ! (rs232_device_interface , cts) - 0usize] ; [\"Offset of field: rs232_device_interface::dsr\"] [:: std :: mem :: offset_of ! (rs232_device_interface , dsr) - 8usize] ; [\"Offset of field: rs232_device_interface::ring\"] [:: std :: mem :: offset_of ! (rs232_device_interface , ring) - 16usize] ; [\"Offset of field: rs232_device_interface::carrier\"] [:: std :: mem :: offset_of ! (rs232_device_interface , carrier) - 24usize] ; [\"Offset of field: rs232_device_interface::got_break\"] [:: std :: mem :: offset_of ! (rs232_device_interface , got_break) - 32usize] ; [\"Offset of field: rs232_device_interface::got_frame_error\"] [:: std :: mem :: offset_of ! (rs232_device_interface , got_frame_error) - 40usize] ; } ; # [repr (u32)] # [doc = \" <add id=\\\"rs232_console_interface_t\\\">\\nCurrently Simics internal.\\n\\n<insert-until text=\\\"// ADD INTERFACE rs232_console_interface\\\"/>\\n\\n</add>\\n<add id=\\\"rs232_console_interface_exec_context\\\">\\nCell Context for all methods.\\n</add>\"] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub enum stop_bits_t { Stop_Bits_1 = 0 , Stop_Bits_1p5 = 1 , Stop_Bits_2 = 2 , } # [repr (u32)] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub enum parity_mode_t { Parity_None = 0 , Parity_Even = 1 , Parity_Odd = 2 , } pub type rs232_console_interface_t = rs232_console_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct rs232_console_interface { # [doc = \" Set line parameters\"] pub set_baudrate : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , rate : :: std :: os :: raw :: c_int , commit : :: std :: os :: raw :: c_int) > , pub set_data_bits : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , bits : :: std :: os :: raw :: c_int , commit : :: std :: os :: raw :: c_int) > , pub set_stop_bits : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , stop_bits : stop_bits_t , commit : :: std :: os :: raw :: c_int) > , pub set_parity_mode : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , parity_mode : parity_mode_t , commit : :: std :: os :: raw :: c_int) > , # [doc = \" Flow control lines\"] pub set_dtr : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , status : :: std :: os :: raw :: c_int) > , pub set_rts : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , status : :: std :: os :: raw :: c_int) > , # [doc = \" Break\"] pub set_break : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , status : :: std :: os :: raw :: c_int) > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of rs232_console_interface\"] [:: std :: mem :: size_of :: < rs232_console_interface > () - 56usize] ; [\"Alignment of rs232_console_interface\"] [:: std :: mem :: align_of :: < rs232_console_interface > () - 8usize] ; [\"Offset of field: rs232_console_interface::set_baudrate\"] [:: std :: mem :: offset_of ! (rs232_console_interface , set_baudrate) - 0usize] ; [\"Offset of field: rs232_console_interface::set_data_bits\"] [:: std :: mem :: offset_of ! (rs232_console_interface , set_data_bits) - 8usize] ; [\"Offset of field: rs232_console_interface::set_stop_bits\"] [:: std :: mem :: offset_of ! (rs232_console_interface , set_stop_bits) - 16usize] ; [\"Offset of field: rs232_console_interface::set_parity_mode\"] [:: std :: mem :: offset_of ! (rs232_console_interface , set_parity_mode) - 24usize] ; [\"Offset of field: rs232_console_interface::set_dtr\"] [:: std :: mem :: offset_of ! (rs232_console_interface , set_dtr) - 32usize] ; [\"Offset of field: rs232_console_interface::set_rts\"] [:: std :: mem :: offset_of ! (rs232_console_interface , set_rts) - 40usize] ; [\"Offset of field: rs232_console_interface::set_break\"] [:: std :: mem :: offset_of ! (rs232_console_interface , set_break) - 48usize] ; } ; # [repr (u32)] # [doc = \" <add-type id=\\\"firewire_ack_code_t\\\"></add-type>\"] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub enum firewire_ack_code_t { # [doc = \" Values defined in the FireWire specification\"] Firewire_Ack_Complete = 1 , # [doc = \" Values defined in the FireWire specification\"] Firewire_Ack_Pending = 2 , # [doc = \" Values defined in the FireWire specification\"] Firewire_Ack_Busy_X = 4 , # [doc = \" Values defined in the FireWire specification\"] Firewire_Ack_Busy_A = 5 , # [doc = \" Values defined in the FireWire specification\"] Firewire_Ack_Busy_B = 6 , # [doc = \" Values defined in the FireWire specification\"] Firewire_Ack_Tardy = 11 , # [doc = \" Values defined in the FireWire specification\"] Firewire_Ack_Conflict_Error = 12 , # [doc = \" Values defined in the FireWire specification\"] Firewire_Ack_Data_Error = 13 , # [doc = \" Values defined in the FireWire specification\"] Firewire_Ack_Type_Error = 14 , # [doc = \" Values defined in the FireWire specification\"] Firewire_Ack_Address_Error = 15 , # [doc = \" no destination found\"] Firewire_Ack_No_Destination = 16 , # [doc = \" no ack signal sent for packet\"] Firewire_Ack_No_Ack = 17 , } # [repr (u32)] # [doc = \" <add-type id=\\\"firewire_response_code_t\\\"></add-type>\"] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub enum firewire_response_code_t { Firewire_Response_Complete = 0 , # [doc = \"Firewire_Response_Conflict    = 4,\"] Firewire_Response_Data_Error = 5 , # [doc = \"Firewire_Response_Conflict    = 4,\"] Firewire_Response_Type_Error = 6 , # [doc = \"Firewire_Response_Conflict    = 4,\"] Firewire_Response_Address_Error = 7 , } # [repr (u32)] # [doc = \" <add-type id=\\\"firewire_transaction_code_t\\\"></add-type>\"] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub enum firewire_transaction_code_t { Firewire_Write_Quadlet = 0 , Firewire_Write_Block = 1 , Firewire_Write_Response = 2 , Firewire_Read_Quadlet = 4 , Firewire_Read_Block = 5 , Firewire_Read_Quadlet_Response = 6 , Firewire_Read_Block_Response = 7 , Firewire_Cycle_Start = 8 , Firewire_Lock = 9 , Firewire_Streaming = 10 , Firewire_Lock_Response = 11 , } # [repr (u32)] # [doc = \" <add-type id=\\\"firewire_async_lock_code_t\\\"></add-type>\"] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub enum firewire_async_lock_code_t { Firewire_Lock_Maskswap = 1 , Firewire_Lock_Compareswap = 2 , Firewire_Lock_Fetchadd = 3 , Firewire_Lock_Littleadd = 4 , Firewire_Lock_Boundedadd = 5 , Firewire_Lock_Wrapadd = 6 , Firewire_Lock_Vendor = 7 , } # [repr (u32)] # [doc = \" <add-type id=\\\"firewire_iso_tag_t\\\"></add-type>\"] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub enum firewire_iso_tag_t { Firewire_Tag_Unformatted = 0 , } # [repr (u32)] # [doc = \" <add-type id=\\\"firewire_port_status_t\\\"></add-type>\"] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub enum firewire_port_status_t { Firewire_Port_No_Port = 0 , Firewire_Port_Not_Connected = 1 , Firewire_Port_Parent = 2 , Firewire_Port_Child = 3 , } pub type firewire_bus_interface_t = firewire_bus_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct firewire_bus_interface { pub connect_device : :: std :: option :: Option < unsafe extern \"C\" fn (bus : * mut conf_object_t , dev : * mut conf_object_t) -> :: std :: os :: raw :: c_int > , pub disconnect_device : :: std :: option :: Option < unsafe extern \"C\" fn (bus : * mut conf_object_t , dev : * mut conf_object_t) -> :: std :: os :: raw :: c_int > , pub set_device_bus_id : :: std :: option :: Option < unsafe extern \"C\" fn (bus : * mut conf_object_t , dev : * mut conf_object_t , bus_id : uint16) > , pub set_id_mask : :: std :: option :: Option < unsafe extern \"C\" fn (bus : * mut conf_object_t , dev : * mut conf_object_t , id_mask : uint16) > , pub transfer : :: std :: option :: Option < unsafe extern \"C\" fn (bus : * mut conf_object_t , source : * mut conf_object_t , packet : * mut dbuffer_t , crc_calculated : :: std :: os :: raw :: c_int) -> firewire_ack_code_t > , pub register_channel : :: std :: option :: Option < unsafe extern \"C\" fn (bus : * mut conf_object_t , dev : * mut conf_object_t , channel : uint32) -> :: std :: os :: raw :: c_int > , pub unregister_channel : :: std :: option :: Option < unsafe extern \"C\" fn (bus : * mut conf_object_t , dev : * mut conf_object_t , channel : uint32) -> :: std :: os :: raw :: c_int > , pub reset : :: std :: option :: Option < unsafe extern \"C\" fn (bus : * mut conf_object_t) > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of firewire_bus_interface\"] [:: std :: mem :: size_of :: < firewire_bus_interface > () - 64usize] ; [\"Alignment of firewire_bus_interface\"] [:: std :: mem :: align_of :: < firewire_bus_interface > () - 8usize] ; [\"Offset of field: firewire_bus_interface::connect_device\"] [:: std :: mem :: offset_of ! (firewire_bus_interface , connect_device) - 0usize] ; [\"Offset of field: firewire_bus_interface::disconnect_device\"] [:: std :: mem :: offset_of ! (firewire_bus_interface , disconnect_device) - 8usize] ; [\"Offset of field: firewire_bus_interface::set_device_bus_id\"] [:: std :: mem :: offset_of ! (firewire_bus_interface , set_device_bus_id) - 16usize] ; [\"Offset of field: firewire_bus_interface::set_id_mask\"] [:: std :: mem :: offset_of ! (firewire_bus_interface , set_id_mask) - 24usize] ; [\"Offset of field: firewire_bus_interface::transfer\"] [:: std :: mem :: offset_of ! (firewire_bus_interface , transfer) - 32usize] ; [\"Offset of field: firewire_bus_interface::register_channel\"] [:: std :: mem :: offset_of ! (firewire_bus_interface , register_channel) - 40usize] ; [\"Offset of field: firewire_bus_interface::unregister_channel\"] [:: std :: mem :: offset_of ! (firewire_bus_interface , unregister_channel) - 48usize] ; [\"Offset of field: firewire_bus_interface::reset\"] [:: std :: mem :: offset_of ! (firewire_bus_interface , reset) - 56usize] ; } ; # [doc = \" <add-type id=\\\"uint32_array_t\\\">\\nAn array of unsigned 32-bit integers.\\n</add-type>\"] # [repr (C)] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct uint32_array_t { pub len : usize , pub data : * mut uint32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of uint32_array_t\"] [:: std :: mem :: size_of :: < uint32_array_t > () - 16usize] ; [\"Alignment of uint32_array_t\"] [:: std :: mem :: align_of :: < uint32_array_t > () - 8usize] ; [\"Offset of field: uint32_array_t::len\"] [:: std :: mem :: offset_of ! (uint32_array_t , len) - 0usize] ; [\"Offset of field: uint32_array_t::data\"] [:: std :: mem :: offset_of ! (uint32_array_t , data) - 8usize] ; } ; impl Default for uint32_array_t { fn default () -> Self { let mut s = :: std :: mem :: MaybeUninit :: < Self > :: uninit () ; unsafe { :: std :: ptr :: write_bytes (s . as_mut_ptr () , 0 , 1) ; s . assume_init () } } } pub type firewire_device_interface_t = firewire_device_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct firewire_device_interface { pub transfer : :: std :: option :: Option < unsafe extern \"C\" fn (dev : * mut conf_object_t , packet : * mut dbuffer_t , crc_calculated : :: std :: os :: raw :: c_int) -> firewire_ack_code_t > , pub reset : :: std :: option :: Option < unsafe extern \"C\" fn (dev : * mut conf_object_t , id : uint16 , root_id : uint8 , self_ids : uint32_array_t) > , pub get_self_id_template : :: std :: option :: Option < unsafe extern \"C\" fn (dev : * mut conf_object_t) -> uint32 > , pub get_rhb : :: std :: option :: Option < unsafe extern \"C\" fn (dev : * mut conf_object_t) -> :: std :: os :: raw :: c_int > , pub get_port_count : :: std :: option :: Option < unsafe extern \"C\" fn (dev : * mut conf_object_t) -> uint8 > , pub get_port_mask : :: std :: option :: Option < unsafe extern \"C\" fn (dev : * mut conf_object_t) -> uint16 > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of firewire_device_interface\"] [:: std :: mem :: size_of :: < firewire_device_interface > () - 48usize] ; [\"Alignment of firewire_device_interface\"] [:: std :: mem :: align_of :: < firewire_device_interface > () - 8usize] ; [\"Offset of field: firewire_device_interface::transfer\"] [:: std :: mem :: offset_of ! (firewire_device_interface , transfer) - 0usize] ; [\"Offset of field: firewire_device_interface::reset\"] [:: std :: mem :: offset_of ! (firewire_device_interface , reset) - 8usize] ; [\"Offset of field: firewire_device_interface::get_self_id_template\"] [:: std :: mem :: offset_of ! (firewire_device_interface , get_self_id_template) - 16usize] ; [\"Offset of field: firewire_device_interface::get_rhb\"] [:: std :: mem :: offset_of ! (firewire_device_interface , get_rhb) - 24usize] ; [\"Offset of field: firewire_device_interface::get_port_count\"] [:: std :: mem :: offset_of ! (firewire_device_interface , get_port_count) - 32usize] ; [\"Offset of field: firewire_device_interface::get_port_mask\"] [:: std :: mem :: offset_of ! (firewire_device_interface , get_port_mask) - 40usize] ; } ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct coreint_reply_t { pub enabled : bool , pub vector : uint64 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of coreint_reply_t\"] [:: std :: mem :: size_of :: < coreint_reply_t > () - 16usize] ; [\"Alignment of coreint_reply_t\"] [:: std :: mem :: align_of :: < coreint_reply_t > () - 8usize] ; [\"Offset of field: coreint_reply_t::enabled\"] [:: std :: mem :: offset_of ! (coreint_reply_t , enabled) - 0usize] ; [\"Offset of field: coreint_reply_t::vector\"] [:: std :: mem :: offset_of ! (coreint_reply_t , vector) - 8usize] ; } ; pub type coreint_interface_t = coreint_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct coreint_interface { pub acknowledge : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , core : * mut conf_object_t) -> coreint_reply_t > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of coreint_interface\"] [:: std :: mem :: size_of :: < coreint_interface > () - 8usize] ; [\"Alignment of coreint_interface\"] [:: std :: mem :: align_of :: < coreint_interface > () - 8usize] ; [\"Offset of field: coreint_interface::acknowledge\"] [:: std :: mem :: offset_of ! (coreint_interface , acknowledge) - 0usize] ; } ; # [repr (u32)] # [doc = \" <add-type id=\\\"apic_destination_mode_t\\\"> </add-type>\"] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub enum apic_destination_mode_t { Apic_Destination_Mode_Physical = 0 , Apic_Destination_Mode_Logical = 1 , } # [repr (u32)] # [doc = \" <add-type id=\\\"apic_delivery_mode_t\\\"> </add-type>\"] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub enum apic_delivery_mode_t { Apic_Delivery_Mode_Fixed = 0 , Apic_Delivery_Mode_Lowest_Priority = 1 , Apic_Delivery_Mode_SMI = 2 , Apic_Delivery_Mode_Remote_Read = 3 , Apic_Delivery_Mode_NMI = 4 , Apic_Delivery_Mode_INIT = 5 , Apic_Delivery_Mode_Start_Up = 6 , Apic_Delivery_Mode_Ext_INT = 7 , } # [repr (u32)] # [doc = \" <add-type id=\\\"apic_trigger_mode_t\\\"> </add-type>\"] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub enum apic_trigger_mode_t { Apic_Trigger_Mode_Edge = 0 , Apic_Trigger_Mode_Level = 1 , } # [repr (u32)] # [doc = \" <add-type id=\\\"apic_delivery_status_t\\\"> </add-type>\"] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub enum apic_delivery_status_t { Apic_Delivery_Status_Idle = 0 , Apic_Delivery_Status_Send_Pending = 1 , } # [repr (u32)] # [doc = \" <add-type id=\\\"apic_rr_status_t\\\"> </add-type>\"] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub enum apic_rr_status_t { Apic_RR_Invalid = 0 , Apic_RR_Pending = 1 , Apic_RR_Valid = 2 , } # [repr (u32)] # [doc = \" <add-type id=\\\"apic_bus_status_t\\\"> </add-type>\"] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub enum apic_bus_status_t { Apic_Bus_Accepted = 0 , Apic_Bus_Retry = 1 , Apic_Bus_No_Target = 2 , Apic_Bus_Invalid = 3 , } pub type apic_bus_interface_t = apic_bus_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct apic_bus_interface { pub interrupt : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , dest_mode : apic_destination_mode_t , delivery_mode : apic_delivery_mode_t , level_assert : :: std :: os :: raw :: c_int , trigger_mode : apic_trigger_mode_t , vector : uint8 , destination : uint8) -> apic_bus_status_t > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of apic_bus_interface\"] [:: std :: mem :: size_of :: < apic_bus_interface > () - 8usize] ; [\"Alignment of apic_bus_interface\"] [:: std :: mem :: align_of :: < apic_bus_interface > () - 8usize] ; [\"Offset of field: apic_bus_interface::interrupt\"] [:: std :: mem :: offset_of ! (apic_bus_interface , interrupt) - 0usize] ; } ; # [repr (u32)] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub enum serial_peripheral_interface_flags { SPI_Flags_CPHA = 1 , SPI_Flags_CPOL = 2 , } pub use self :: serial_peripheral_interface_flags as serial_peripheral_interface_flags_t ; pub type serial_peripheral_interface_master_interface_t = serial_peripheral_interface_master_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct serial_peripheral_interface_master_interface { pub spi_response : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , bits : :: std :: os :: raw :: c_int , payload : * mut dbuffer_t) > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of serial_peripheral_interface_master_interface\"] [:: std :: mem :: size_of :: < serial_peripheral_interface_master_interface > () - 8usize] ; [\"Alignment of serial_peripheral_interface_master_interface\"] [:: std :: mem :: align_of :: < serial_peripheral_interface_master_interface > () - 8usize] ; [\"Offset of field: serial_peripheral_interface_master_interface::spi_response\"] [:: std :: mem :: offset_of ! (serial_peripheral_interface_master_interface , spi_response) - 0usize] ; } ; pub type serial_peripheral_interface_slave_interface_t = serial_peripheral_interface_slave_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct serial_peripheral_interface_slave_interface { pub spi_request : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , first : :: std :: os :: raw :: c_int , last : :: std :: os :: raw :: c_int , bits : :: std :: os :: raw :: c_int , payload : * mut dbuffer_t) > , pub connect_master : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , master : * mut conf_object_t , port : * const :: std :: os :: raw :: c_char , flags : serial_peripheral_interface_flags_t) > , pub disconnect_master : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , master : * mut conf_object_t) > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of serial_peripheral_interface_slave_interface\"] [:: std :: mem :: size_of :: < serial_peripheral_interface_slave_interface > () - 24usize] ; [\"Alignment of serial_peripheral_interface_slave_interface\"] [:: std :: mem :: align_of :: < serial_peripheral_interface_slave_interface > () - 8usize] ; [\"Offset of field: serial_peripheral_interface_slave_interface::spi_request\"] [:: std :: mem :: offset_of ! (serial_peripheral_interface_slave_interface , spi_request) - 0usize] ; [\"Offset of field: serial_peripheral_interface_slave_interface::connect_master\"] [:: std :: mem :: offset_of ! (serial_peripheral_interface_slave_interface , connect_master) - 8usize] ; [\"Offset of field: serial_peripheral_interface_slave_interface::disconnect_master\"] [:: std :: mem :: offset_of ! (serial_peripheral_interface_slave_interface , disconnect_master) - 16usize] ; } ; # [doc = \" <add id=\\\"link_message_t DOC\\\">\\n<ndx>link_message_t</ndx>\\n<doc>\\n<doc-item name=\\\"NAME\\\">link_message_t</doc-item>\\n<doc-item name=\\\"SYNOPSIS\\\">\\ntypedef struct link_message link_message_t;\\n</doc-item>\\n<doc-item name=\\\"DESCRIPTION\\\">\\nGeneric part of a link message. This structure should always be the\\nfirst member of the link message data structure, so that the link\\nlibrary can access the generic part with a simple cast.\\n</doc-item>\\n<doc-item name=\\\"EXAMPLE\\\">\\nThe <class>datagram_link</class> example defines its link message in\\nthe following way:\\n<insert id=\\\"dl_msg_t\\\"/>\\n</doc-item>\\n<doc-item name=\\\"SEE ALSO\\\">\\nlink_type_t,\\nSIMLINK_init_message\\n</doc-item>\\n</doc>\\n</add>\"] # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct link_message_t { pub refcount : atomic_counter_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of link_message_t\"] [:: std :: mem :: size_of :: < link_message_t > () - 4usize] ; [\"Alignment of link_message_t\"] [:: std :: mem :: align_of :: < link_message_t > () - 4usize] ; [\"Offset of field: link_message_t::refcount\"] [:: std :: mem :: offset_of ! (link_message_t , refcount) - 0usize] ; } ; # [doc = \" <add id=\\\"link_type_t DOC\\\">\\n<ndx>link_type_t</ndx>\\n<doc>\\n<doc-item name=\\\"NAME\\\">link_type_t</doc-item>\\n<doc-item name=\\\"SYNOPSIS\\\"><insert id=\\\"link_type_t def\\\"/></doc-item>\\n<doc-item name=\\\"DESCRIPTION\\\">\\nFunctions to be defined by the specific link implementation.\\n\\nThese functions can be classified in four groups:\\n\\n<dl>\\n\\n<dt>Message Links Manipulation</dt>\\n\\n<dd>The first five functions are related to the link-specific\\nmessages.\\n\\nAll five functions can be called in any execution context and should\\nbe thread-safe. They all take the link object as argument, in case it\\ncontains information necessary to perform the operation. As the link\\nobject is shared between the cells in which it is connected, it\\nshould not be modified during execution. Mutable state should be kept\\nin the endpoint objects instead.\\n\\n<fun>msg_to_attr()</fun> transforms the message <param>msg</param>\\ninto an <type>attr_value_t</type> value. It is used to checkpoint\\nin-flight messages waiting to be delivered. The value returned will\\nbe passed unchanged as argument <param>attr</param> to\\n<fun>msg_from_attr()</fun> when loading a checkpoint with pending\\nlink messages. Neither function is expected to return an error,\\nalthough <fun>msg_from_attr()</fun> is allowed to return NULL when\\ntranslating a message it does not care to restore. This can be useful\\nto keep checkpoint compatibility with older versions of the same link\\nthat do not always have the same message protocol.\\n\\nUsing the <class>datagram_link</class> as an example, the\\n<class>datagram-link</class> message is defined as:\\n\\n<insert id=\\\"dl_msg_t\\\"/>\\n\\n<fun>msg_to_attr()</fun> and <fun>msg_from_attr()</fun> are thus\\ndefined as:\\n\\n<insert id=\\\"dl_to_a\\\"/>\\n<insert id=\\\"dl_fr_a\\\"/>\\n\\n<fun>free_msg()</fun> is called when the message <param>msg</param>\\nhas been delivered to all its destinations and is no longer\\nneeded. All memory allocated for <param>msg</param> is expected to be\\nfreed, including <param>msg</param> itself. The\\n<class>datagram_link</class> defines <fun>free_msg()</fun> as:\\n\\n<insert id=\\\"dl_free\\\"/>\\n\\n<fun>marshal()</fun> is called when the message <param>msg</param>\\nshould be transmitted over a distributed simulation. Its purpose is\\nto serialize the message into a <type>frags_t</type>\\nrepresentation. Rather than returning the marshaled message,\\n<fun>marshal()</fun> takes the <param>finish</param> and\\n<param>finish_data</param> arguments, that it is expected to call\\nonce the message has been marshaled.\\n\\nThe reason behind this mechanism is that it allows\\n<fun>marshal()</fun> to perform its operations with a\\n<type>frags_t</type> variable allocated on the stack, and thus to\\nskip any heap allocation when sending the message. In case memory was\\nallocated anyway, it should be freed just after <param>finish</param>\\nhas returned.\\n\\n<insert id=\\\"dl_mrsh\\\"/>\\n\\n<fun>unmarshal()</fun> does the opposite of <fun>marshal()</fun>: it\\ntakes a serialized <type>frags_t</type> representation of the message\\ncalled <param>data</param> and returns a newly allocated link\\nmessage.\\n\\n<insert id=\\\"dl_unm\\\"/>\\n\\n</dd>\\n\\n<dt>Endpoint Configuration</dt>\\n\\n<dd>Link endpoints are created as needed by the link\\ncomponent. Depending on how they are created, they may not know yet\\nwhich device they are connected to, so it might not be possible yet,\\nfor example, to cache the device\'s communication interface in the\\nendpoint\'s <fun>finalize()</fun> function. Additionally, there are\\ncases where the device the endpoint talks to may be changed, such as\\nwhen inserting a probe object to listen to the traffic.\\n\\nIn all of these cases, the <fun>device_changed()</fun> callback will\\nbe called when the endpoint\'s device attribute is changed\\n<em>and</em> the endpoint has reached to finalize phase. In that\\ncallback, the new device can be obtained via\\n<fun>SIMLINK_endpoint_device()</fun> and additional operations, such\\nas interface caching, can be safely performed. The old device the\\nendpoint was connected to is provided for convenience as an argument\\nto <fun>device_changed()</fun>.\\n\\nNote that if no device related operations are necessary, this\\ncallback may be left unimplemented.\\n\\nThe <class>ser_link</class> implementation of\\n<fun>device_changed</fun> is the following:\\n\\n<insert id=\\\"sl_dev_changed\\\"/>\\n\\n</dd>\\n\\n<dt>Message Delivery</dt>\\n\\n<dd>Messages are delivered to the link by calling the\\n<fun>deliver()</fun> function. The arguments of <fun>deliver()</fun>\\nare the endpoint <param>ep</param> that received the message and the\\nmessage <param>msg</param> itself. The implementation of\\n<fun>deliver()</fun> is expected to call the correct device\'s\\nfunction to deliver the message.\\n\\nNote that <fun>deliver()</fun> can be called in any execution context\\nand should be thread-safe. The link object is shared between the\\ncells in which it is connected, and should not be modified during\\nexecution. Mutable state should be kept in the endpoint objects\\ninstead.\\n\\nThe <class>datagram_link</class> implementation of\\n<fun>deliver()</fun> is the following:\\n\\n<insert id=\\\"dl_dlv\\\"/>\\n\\n</dd>\\n\\n<dt>Configuration</dt>\\n\\n<dd>The last two functions of <type>link_type_t</type> are taking\\ncare of the link configuration itself. In the same way messages needs\\nto be marshaled when sent over a network, the global link\\nconfiguration needs to be agreed upon when running the simulation in\\nseveral processes.\\n\\n<fun>update_config_value()</fun> is called whenever a configuration\\nparameter has been added or updated. The configuration parameter\'s\\nname is provided as <param>key</param> and its new value as\\n<param>value</param>, encoded as a <type>frags_t</type>.\\n\\n<fun>remove_config_value()</fun> is called whenever the configuration\\nvalue <param>key</param> has been removed.\\n\\nThe interpretation of the link configuration messages is link\\nspecific. The only configuration parameter that is defined by the\\nlink library itself is <var>goal_latency</var>. This is handled\\nentirely internally, although with the same mechanism as exposed\\nhere. Configuration changes are initiated by the link objects\\nthemselves with the Link Library API functions\\n<fun>SIMLINK_config_update_value()</fun> and\\n<fun>SIMLINK_config_remove_value()</fun>.\\n\\nNote that the link object that initiates the configuration change is\\nalso called back via <fun>update_config_value()</fun> and\\n<fun>remove_config_value()</fun>. Note also that the configuration\\nchanges may be buffered and sent later if they are initiated too soon\\nfor the configuration message to propagate.\\n\\nConfiguration changes should only be initiated while in Global\\nContext, so the two configuration functions above will only be called\\nin Global Context. This allows them to modify properties of\\nthe link object itself without needing to care about thread safety.\\n\\nAs an example, here is how <class>ser_link</class> defines these two\\nfunctions. The serial link keeps track of all endpoints connected to\\nit by saving their ID as a configuration parameter. It also uses a\\nconfigurable buffer size.\\n\\nFinally, it is important to note that these two callbacks may be\\ncalled from a non-execution thread. They should call the Simics API\\nonly via <fun>SIM_thread_safe_callback()</fun>. This includes calling\\nthe <fun>SIM_log_*</fun> functions.\\n\\n<insert id=\\\"sl_cfg_up\\\"/>\\n<insert id=\\\"sl_cfg_rm\\\"/>\\n\\n</dd>\\n\\n</dl>\\n\\n</doc-item>\\n<doc-item name=\\\"SEE ALSO\\\">\\nlink_message_t,\\nSIMLINK_init\\n</doc-item>\\n\\n</doc>\\n</add>\\n<add-type id=\\\"link_type_t def\\\"></add-type>\"] # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct link_type_t { pub msg_to_attr : :: std :: option :: Option < unsafe extern \"C\" fn (link : * mut conf_object_t , msg : * const link_message_t) -> attr_value_t > , pub msg_from_attr : :: std :: option :: Option < unsafe extern \"C\" fn (link : * mut conf_object_t , attr : attr_value_t) -> * mut link_message_t > , pub free_msg : :: std :: option :: Option < unsafe extern \"C\" fn (link : * mut conf_object_t , msg : * mut link_message_t) > , pub marshal : :: std :: option :: Option < unsafe extern \"C\" fn (link : * mut conf_object_t , msg : * const link_message_t , finish : :: std :: option :: Option < unsafe extern \"C\" fn (data : * mut :: std :: os :: raw :: c_void , msg : * const frags_t) > , finish_data : * mut :: std :: os :: raw :: c_void) > , pub unmarshal : :: std :: option :: Option < unsafe extern \"C\" fn (link : * mut conf_object_t , msg : * const frags_t) -> * mut link_message_t > , pub deliver : :: std :: option :: Option < unsafe extern \"C\" fn (ep : * mut conf_object_t , msg : * const link_message_t) > , pub update_config_value : :: std :: option :: Option < unsafe extern \"C\" fn (link : * mut conf_object_t , key : * const :: std :: os :: raw :: c_char , value : * const frags_t) > , pub remove_config_value : :: std :: option :: Option < unsafe extern \"C\" fn (link : * mut conf_object_t , key : * const :: std :: os :: raw :: c_char) > , pub device_changed : :: std :: option :: Option < unsafe extern \"C\" fn (ep : * mut conf_object_t , old_dev : * mut conf_object_t) > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of link_type_t\"] [:: std :: mem :: size_of :: < link_type_t > () - 72usize] ; [\"Alignment of link_type_t\"] [:: std :: mem :: align_of :: < link_type_t > () - 8usize] ; [\"Offset of field: link_type_t::msg_to_attr\"] [:: std :: mem :: offset_of ! (link_type_t , msg_to_attr) - 0usize] ; [\"Offset of field: link_type_t::msg_from_attr\"] [:: std :: mem :: offset_of ! (link_type_t , msg_from_attr) - 8usize] ; [\"Offset of field: link_type_t::free_msg\"] [:: std :: mem :: offset_of ! (link_type_t , free_msg) - 16usize] ; [\"Offset of field: link_type_t::marshal\"] [:: std :: mem :: offset_of ! (link_type_t , marshal) - 24usize] ; [\"Offset of field: link_type_t::unmarshal\"] [:: std :: mem :: offset_of ! (link_type_t , unmarshal) - 32usize] ; [\"Offset of field: link_type_t::deliver\"] [:: std :: mem :: offset_of ! (link_type_t , deliver) - 40usize] ; [\"Offset of field: link_type_t::update_config_value\"] [:: std :: mem :: offset_of ! (link_type_t , update_config_value) - 48usize] ; [\"Offset of field: link_type_t::remove_config_value\"] [:: std :: mem :: offset_of ! (link_type_t , remove_config_value) - 56usize] ; [\"Offset of field: link_type_t::device_changed\"] [:: std :: mem :: offset_of ! (link_type_t , device_changed) - 64usize] ; } ; extern \"C\" { pub fn SIMLINK_endpoint_link (ep : * const conf_object_t) -> * mut conf_object_t ; } extern \"C\" { pub fn SIMLINK_endpoint_id (ep : * const conf_object_t) -> uint64 ; } extern \"C\" { pub fn SIMLINK_endpoint_clock (ep : * const conf_object_t) -> * mut conf_object_t ; } extern \"C\" { pub fn SIMLINK_endpoint_is_device (ep : * const conf_object_t) -> bool ; } extern \"C\" { pub fn SIMLINK_endpoint_device (ep : * const conf_object_t) -> * mut conf_object_t ; } extern \"C\" { pub fn SIMLINK_endpoint_port (ep : * const conf_object_t) -> * const :: std :: os :: raw :: c_char ; } extern \"C\" { pub fn SIMLINK_endpoint_dev_name (ep : * const conf_object_t , scratch : buffer_t) -> * const :: std :: os :: raw :: c_char ; } extern \"C\" { pub fn SIMLINK_init_library () ; } extern \"C\" { pub fn SIMLINK_init_message (msg : * mut link_message_t) ; } extern \"C\" { pub fn SIMLINK_register_class (cls : * mut conf_class_t) ; } extern \"C\" { pub fn SIMLINK_register_endpoint_class (cls : * mut conf_class_t , msg_type : * const :: std :: os :: raw :: c_char) ; } extern \"C\" { pub fn SIMLINK_register_snoop_endpoint_class (cls : * mut conf_class_t) ; } extern \"C\" { pub fn SIMLINK_init (obj : * mut conf_object_t , type_ : * const link_type_t) ; } extern \"C\" { pub fn SIMLINK_endpoint_init (ep_obj : * mut conf_object_t , snoop : bool) ; } extern \"C\" { pub fn SIMLINK_finalize (link : * mut conf_object_t) ; } extern \"C\" { pub fn SIMLINK_endpoint_finalize (ep : * mut conf_object_t) ; } extern \"C\" { pub fn SIMLINK_endpoint_disconnect (ep : * mut conf_object_t) ; } extern \"C\" { pub fn SIMLINK_pre_delete (obj : * mut conf_object_t) ; } extern \"C\" { pub fn SIMLINK_snoop_endpoint_create (cls : * mut conf_class_t , link : * mut conf_object_t , clock : * mut conf_object_t , attrs : attr_value_t) -> * mut conf_object_t ; } extern \"C\" { pub fn SIMLINK_config_update_value (link : * mut conf_object_t , key : * const :: std :: os :: raw :: c_char , value : * const frags_t) ; } extern \"C\" { pub fn SIMLINK_config_remove_value (link : * mut conf_object_t , key : * const :: std :: os :: raw :: c_char) ; } extern \"C\" { pub fn SIMLINK_find_endpoint_by_id (link : * mut conf_object_t , id : uint64) -> * mut conf_object_t ; } extern \"C\" { pub fn SIMLINK_send_message (src_ep : * mut conf_object_t , dst_id : uint64 , msg : * mut link_message_t) ; } extern \"C\" { pub fn SIMLINK_send_message_multi (src_ep : * mut conf_object_t , num_dsts : :: std :: os :: raw :: c_uint , dst_ids : * const uint64 , msg : * mut link_message_t) ; } # [repr (u32)] # [doc = \" <add-type id=\\\"eth_frame_crc_status_t\\\">\\n<ul>\\n<li><tt>Eth_Frame_CRC_Match</tt> means that the frame contents are\\ncorrect. The CRC field in the frame should not be relied upon as its\\ncomputation may have been skipped for optimization, and it may contain any\\nvalue, including zero, a random value or a correctly computed CRC.</li>\\n\\n<li><tt>Eth_Frame_CRC_Mismatch</tt> means that the frame contents are\\nincorrect. The CRC field in the frame must contain a CRC that does not\\nmatch the frame contents, i.e., to send an incorrect frame on the link,\\nyou must make sure that the CRC field will not match when computed.</li>\\n\\n<li><tt>Eth_Frame_CRC_Unknown</tt> means that the relation between the\\nframe contents and the CRC field is unknown. The relation can be\\nestablished by computing the frame\'s CRC and comparing it to the frame\'s\\nCRC field.</li>\\n</ul>\\n</add-type>\"] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub enum eth_frame_crc_status_t { Eth_Frame_CRC_Match = 0 , Eth_Frame_CRC_Mismatch = 1 , Eth_Frame_CRC_Unknown = 2 , } pub type ethernet_common_interface_t = ethernet_common_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct ethernet_common_interface { pub frame : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , frame : * const frags_t , crc_status : eth_frame_crc_status_t) > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of ethernet_common_interface\"] [:: std :: mem :: size_of :: < ethernet_common_interface > () - 8usize] ; [\"Alignment of ethernet_common_interface\"] [:: std :: mem :: align_of :: < ethernet_common_interface > () - 8usize] ; [\"Offset of field: ethernet_common_interface::frame\"] [:: std :: mem :: offset_of ! (ethernet_common_interface , frame) - 0usize] ; } ; pub type ethernet_cable_interface_t = ethernet_cable_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct ethernet_cable_interface { pub link_status : :: std :: option :: Option < unsafe extern \"C\" fn (ep : * mut conf_object_t , link_up : bool) > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of ethernet_cable_interface\"] [:: std :: mem :: size_of :: < ethernet_cable_interface > () - 8usize] ; [\"Alignment of ethernet_cable_interface\"] [:: std :: mem :: align_of :: < ethernet_cable_interface > () - 8usize] ; [\"Offset of field: ethernet_cable_interface::link_status\"] [:: std :: mem :: offset_of ! (ethernet_cable_interface , link_status) - 0usize] ; } ; # [doc = \" <add-type id=\\\"ethernet_link_snoop_t\\\"></add-type>\"] pub type ethernet_link_snoop_t = :: std :: option :: Option < unsafe extern \"C\" fn (user_data : * mut lang_void , clock : * mut conf_object_t , packet : * const frags_t , crc_status : eth_frame_crc_status_t) > ; pub type ethernet_snoop_interface_t = ethernet_snoop_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct ethernet_snoop_interface { pub attach : :: std :: option :: Option < unsafe extern \"C\" fn (link : * mut conf_object_t , clock : * mut conf_object_t , snoop_fun : ethernet_link_snoop_t , user_data : * mut lang_void) -> * mut conf_object_t > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of ethernet_snoop_interface\"] [:: std :: mem :: size_of :: < ethernet_snoop_interface > () - 8usize] ; [\"Alignment of ethernet_snoop_interface\"] [:: std :: mem :: align_of :: < ethernet_snoop_interface > () - 8usize] ; [\"Offset of field: ethernet_snoop_interface::attach\"] [:: std :: mem :: offset_of ! (ethernet_snoop_interface , attach) - 0usize] ; } ; pub type ethernet_vlan_snoop_interface_t = ethernet_vlan_snoop_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct ethernet_vlan_snoop_interface { pub attach : :: std :: option :: Option < unsafe extern \"C\" fn (link : * mut conf_object_t , clock : * mut conf_object_t , snoop_fun : ethernet_link_snoop_t , user_data : * mut lang_void , vlan_id : uint16 , is_vlan_trunk : bool) -> * mut conf_object_t > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of ethernet_vlan_snoop_interface\"] [:: std :: mem :: size_of :: < ethernet_vlan_snoop_interface > () - 8usize] ; [\"Alignment of ethernet_vlan_snoop_interface\"] [:: std :: mem :: align_of :: < ethernet_vlan_snoop_interface > () - 8usize] ; [\"Offset of field: ethernet_vlan_snoop_interface::attach\"] [:: std :: mem :: offset_of ! (ethernet_vlan_snoop_interface , attach) - 0usize] ; } ; pub type translator_interface_t = translator_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct translator_interface { pub translate : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , addr : physical_address_t , access : access_t , default_target : * const map_target_t) -> translation_t > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of translator_interface\"] [:: std :: mem :: size_of :: < translator_interface > () - 8usize] ; [\"Alignment of translator_interface\"] [:: std :: mem :: align_of :: < translator_interface > () - 8usize] ; [\"Offset of field: translator_interface::translate\"] [:: std :: mem :: offset_of ! (translator_interface , translate) - 0usize] ; } ; pub type transaction_translator_interface_t = transaction_translator_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct transaction_translator_interface { pub translate : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , addr : uint64 , access : access_t , t : * mut transaction_t , callback : :: std :: option :: Option < unsafe extern \"C\" fn (translation : translation_t , transaction : * mut transaction_t , data : cbdata_call_t) -> exception_type_t > , data : cbdata_register_t) -> exception_type_t > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of transaction_translator_interface\"] [:: std :: mem :: size_of :: < transaction_translator_interface > () - 8usize] ; [\"Alignment of transaction_translator_interface\"] [:: std :: mem :: align_of :: < transaction_translator_interface > () - 8usize] ; [\"Offset of field: transaction_translator_interface::translate\"] [:: std :: mem :: offset_of ! (transaction_translator_interface , translate) - 0usize] ; } ; pub type translation_flush_interface_t = translation_flush_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct translation_flush_interface { pub flush_range : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , base : uint64 , size : uint64 , access : access_t , default_target : * const map_target_t) -> bool > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of translation_flush_interface\"] [:: std :: mem :: size_of :: < translation_flush_interface > () - 8usize] ; [\"Alignment of translation_flush_interface\"] [:: std :: mem :: align_of :: < translation_flush_interface > () - 8usize] ; [\"Offset of field: translation_flush_interface::flush_range\"] [:: std :: mem :: offset_of ! (translation_flush_interface , flush_range) - 0usize] ; } ; # [repr (u32)] # [doc = \" <add id=\\\"usb_transfer_t DOC\\\">\\n<ndx>usb_transfer_t</ndx>\\n<doc>\\n<doc-item name=\\\"NAME\\\">usb_transfer_t</doc-item>\\n<doc-item name=\\\"SYNOPSIS\\\"><insert id=\\\"usb_transfer_t\\\"/></doc-item>\\n<doc-item name=\\\"DESCRIPTION\\\">\\n<insert id=\\\"usb_transfer_t description\\\"/>\\n</doc-item>\\n</doc>\\n</add>\\n\\n<add id=\\\"usb_transfer_t description\\\">\\n\\nAll USB related data types are Simics internal, and should not be\\nused by user-defined classes.  The data types may change in future\\nversions of Simics.\\n\\nThe <type>usb_transfer_t</type> type is independent of USB host and\\nUSB device implementations and is used for sending data over USB.\\n\\nThere are two fields to identify the pipe: <var>function_address</var> is\\nthe function/device address for the target USB device;\\n<var>endpoint_number</var> specifies the endpoint number.\\n\\nThe type of transfer is defined using the <var>type</var> field. The type is\\neither control, bulk, interrupt, or isochronous. The\\n<var>u.control_request</var> field is only valid for control transfers. It\\ncontains the information that would be in the setup packet of a control\\ntransfer. The <var>u.periodic_time</var> field is only valid for periodic\\ntransfers, i.e., interrupt and isochronous transfers. It specifies the\\nminimum response time for a transfer expected by the USB host. A USB device\\ndo not need to fulfill the expectation. It is merely a way to tell the USB\\ndevice how to keep the timing specified in the periodic list scheduling.\\n\\nThe <var>usb_direction</var> field specifies the direction of the data in\\nthe USB transfer. Only the actual data packet is used to specify the\\ndirection, even if a real transfer consists of a mix of SETUP/OUT/IN/STATUS\\npackets. <const>USB_Direction_None</const> means that the transfer does not\\ncontain any data, for example, in <type>Set_Address</type> control\\ntransfers. <var>size</var> is the number of bytes the USB host can\\nreceive for IN transfers and the number of bytes sent for OUT\\ntransfers. <var>buf</var> contains the IN or OUT data. Note that <i>buf</i>\\ncan contain data for several data packets concatenated together. The\\nendpoint descriptors in USB host and USB device define the maximum packet\\nsize for the pipe, but there is no limitation in Simics.\\n\\nThe <var>status</var> field contains the status for the transfer. The status\\nis typically only set by the USB device. The USB host does not set the\\nstatus field when it has completed an IN transfer.\\n\\n</add>\\n\\n<add id=\\\"usb_transfer_t\\\">\\n<name>usb_transfer_t</name>\\n<insert-until text=\\\"// JDOCU INSERT-UNTIL usb_transfer_t\\\"/>\\n</add>\"] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub enum usb_transfer_completion_t { USB_Transfer_Completed = 0 , USB_Transfer_Not_Ready = 1 , } # [repr (u32)] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub enum usb_direction_t { USB_Direction_None = 0 , USB_Direction_In = 1 , USB_Direction_Out = 2 , } # [repr (u32)] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub enum usb_status_t { USB_Status_Undef = 0 , USB_Status_Ack = 1 , USB_Status_Nak = 2 , USB_Status_Stall = 3 , } # [repr (u32)] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub enum usb_type_t { USB_Type_Control = 0 , USB_Type_Interrupt = 1 , USB_Type_Isochronous = 2 , USB_Type_Bulk = 3 , } # [repr (u32)] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub enum usb_speed_t { USB_Speed_Low = 0 , USB_Speed_Full = 1 , USB_Speed_High = 2 , } # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct usb_device_request_t { pub bmRequestType : uint8 , pub bRequest : uint8 , pub wValue : uint16 , pub wIndex : uint16 , pub wLength : uint16 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of usb_device_request_t\"] [:: std :: mem :: size_of :: < usb_device_request_t > () - 8usize] ; [\"Alignment of usb_device_request_t\"] [:: std :: mem :: align_of :: < usb_device_request_t > () - 2usize] ; [\"Offset of field: usb_device_request_t::bmRequestType\"] [:: std :: mem :: offset_of ! (usb_device_request_t , bmRequestType) - 0usize] ; [\"Offset of field: usb_device_request_t::bRequest\"] [:: std :: mem :: offset_of ! (usb_device_request_t , bRequest) - 1usize] ; [\"Offset of field: usb_device_request_t::wValue\"] [:: std :: mem :: offset_of ! (usb_device_request_t , wValue) - 2usize] ; [\"Offset of field: usb_device_request_t::wIndex\"] [:: std :: mem :: offset_of ! (usb_device_request_t , wIndex) - 4usize] ; [\"Offset of field: usb_device_request_t::wLength\"] [:: std :: mem :: offset_of ! (usb_device_request_t , wLength) - 6usize] ; } ; # [repr (C)] # [derive (Copy , Clone)] pub struct usb_transfer_t { # [doc = \" Endpoint/function specific information\"] pub function_address : uint8 , pub endpoint_number : uint8 , # [doc = \" Type specific information\"] pub type_ : usb_type_t , pub u : usb_transfer_t__bindgen_ty_1 , # [doc = \" Data specific\"] pub direction : usb_direction_t , pub size : :: std :: os :: raw :: c_int , pub buf : * mut dbuffer_t , # [doc = \" Status\"] pub status : usb_status_t , } # [repr (C)] # [derive (Copy , Clone)] pub union usb_transfer_t__bindgen_ty_1 { pub control_request : usb_device_request_t , pub periodic_time : nano_secs_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of usb_transfer_t__bindgen_ty_1\"] [:: std :: mem :: size_of :: < usb_transfer_t__bindgen_ty_1 > () - 8usize] ; [\"Alignment of usb_transfer_t__bindgen_ty_1\"] [:: std :: mem :: align_of :: < usb_transfer_t__bindgen_ty_1 > () - 8usize] ; [\"Offset of field: usb_transfer_t__bindgen_ty_1::control_request\"] [:: std :: mem :: offset_of ! (usb_transfer_t__bindgen_ty_1 , control_request) - 0usize] ; [\"Offset of field: usb_transfer_t__bindgen_ty_1::periodic_time\"] [:: std :: mem :: offset_of ! (usb_transfer_t__bindgen_ty_1 , periodic_time) - 0usize] ; } ; impl Default for usb_transfer_t__bindgen_ty_1 { fn default () -> Self { let mut s = :: std :: mem :: MaybeUninit :: < Self > :: uninit () ; unsafe { :: std :: ptr :: write_bytes (s . as_mut_ptr () , 0 , 1) ; s . assume_init () } } } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of usb_transfer_t\"] [:: std :: mem :: size_of :: < usb_transfer_t > () - 40usize] ; [\"Alignment of usb_transfer_t\"] [:: std :: mem :: align_of :: < usb_transfer_t > () - 8usize] ; [\"Offset of field: usb_transfer_t::function_address\"] [:: std :: mem :: offset_of ! (usb_transfer_t , function_address) - 0usize] ; [\"Offset of field: usb_transfer_t::endpoint_number\"] [:: std :: mem :: offset_of ! (usb_transfer_t , endpoint_number) - 1usize] ; [\"Offset of field: usb_transfer_t::type_\"] [:: std :: mem :: offset_of ! (usb_transfer_t , type_) - 4usize] ; [\"Offset of field: usb_transfer_t::u\"] [:: std :: mem :: offset_of ! (usb_transfer_t , u) - 8usize] ; [\"Offset of field: usb_transfer_t::direction\"] [:: std :: mem :: offset_of ! (usb_transfer_t , direction) - 16usize] ; [\"Offset of field: usb_transfer_t::size\"] [:: std :: mem :: offset_of ! (usb_transfer_t , size) - 20usize] ; [\"Offset of field: usb_transfer_t::buf\"] [:: std :: mem :: offset_of ! (usb_transfer_t , buf) - 24usize] ; [\"Offset of field: usb_transfer_t::status\"] [:: std :: mem :: offset_of ! (usb_transfer_t , status) - 32usize] ; } ; impl Default for usb_transfer_t { fn default () -> Self { let mut s = :: std :: mem :: MaybeUninit :: < Self > :: uninit () ; unsafe { :: std :: ptr :: write_bytes (s . as_mut_ptr () , 0 , 1) ; s . assume_init () } } } pub type usb_device_interface_t = usb_device_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct usb_device_interface { pub submit_transfer : :: std :: option :: Option < unsafe extern \"C\" fn (dev_obj : * mut conf_object_t , transfer : * mut usb_transfer_t) -> usb_transfer_completion_t > , pub abort_transfer : :: std :: option :: Option < unsafe extern \"C\" fn (dev_obj : * mut conf_object_t , transfer : * mut usb_transfer_t) > , pub reset : :: std :: option :: Option < unsafe extern \"C\" fn (dev_obj : * mut conf_object_t) > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of usb_device_interface\"] [:: std :: mem :: size_of :: < usb_device_interface > () - 24usize] ; [\"Alignment of usb_device_interface\"] [:: std :: mem :: align_of :: < usb_device_interface > () - 8usize] ; [\"Offset of field: usb_device_interface::submit_transfer\"] [:: std :: mem :: offset_of ! (usb_device_interface , submit_transfer) - 0usize] ; [\"Offset of field: usb_device_interface::abort_transfer\"] [:: std :: mem :: offset_of ! (usb_device_interface , abort_transfer) - 8usize] ; [\"Offset of field: usb_device_interface::reset\"] [:: std :: mem :: offset_of ! (usb_device_interface , reset) - 16usize] ; } ; pub type usb_interface_t = usb_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct usb_interface { pub connect_device : :: std :: option :: Option < unsafe extern \"C\" fn (bus_obj : * mut conf_object_t , dev_obj : * mut conf_object_t , speed : usb_speed_t) -> :: std :: os :: raw :: c_int > , pub disconnect_device : :: std :: option :: Option < unsafe extern \"C\" fn (bus_obj : * mut conf_object_t , dev_obj : * mut conf_object_t) -> :: std :: os :: raw :: c_int > , pub complete_transfer : :: std :: option :: Option < unsafe extern \"C\" fn (bus_obj : * mut conf_object_t , dev_obj : * mut conf_object_t , transfer : * mut usb_transfer_t) > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of usb_interface\"] [:: std :: mem :: size_of :: < usb_interface > () - 24usize] ; [\"Alignment of usb_interface\"] [:: std :: mem :: align_of :: < usb_interface > () - 8usize] ; [\"Offset of field: usb_interface::connect_device\"] [:: std :: mem :: offset_of ! (usb_interface , connect_device) - 0usize] ; [\"Offset of field: usb_interface::disconnect_device\"] [:: std :: mem :: offset_of ! (usb_interface , disconnect_device) - 8usize] ; [\"Offset of field: usb_interface::complete_transfer\"] [:: std :: mem :: offset_of ! (usb_interface , complete_transfer) - 16usize] ; } ; # [doc = \" <add id=\\\"pci_memory_transaction_t DOC\\\">\\n<ndx>pci_memory_transaction_t</ndx>\\n<doc>\\n<doc-item name=\\\"NAME\\\">pci_memory_transaction_t</doc-item>\\n<doc-item name=\\\"SYNOPSIS\\\"><insert id=\\\"pci_memory_transaction_t def\\\"/>\\n</doc-item>\\n<doc-item name=\\\"DESCRIPTION\\\">\\n\\nThe <type>pci_memory_transaction_t</type> is used for memory accesses\\ninitiated by PCI devices.\\n\\n<note>All struct fields are internal and should never be used\\ndirectly.</note>\\n\\nA <type>generic_transaction_t</type> can be converted to a\\n<type>pci_memory_transaction_t</type> via the\\n<fun>SIM_pci_mem_trans_from_generic()</fun> function. Never explicitly cast\\none struct to the other, always use the Simics API functions.</doc-item>\\n<doc-item name=\\\"SEE ALSO\\\">\\n<fun>SIM_pci_mem_trans_from_generic</fun>,\\n<type>generic_transaction_t</type>\\n</doc-item>\\n</doc></add>\\n\\n<add-type id=\\\"pci_memory_transaction_t def\\\"></add-type>\"] pub type pci_memory_transaction_t = pci_memory_transaction ; # [repr (C)] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct pci_memory_transaction { pub _internal_s : generic_transaction_t , pub _internal_original_size : uint32 , pub _internal_bus_address : :: std :: os :: raw :: c_int , pub _internal_bus_number : :: std :: os :: raw :: c_int , pub _internal_device_number : :: std :: os :: raw :: c_int , pub _internal_function_number : :: std :: os :: raw :: c_int , pub _internal_tlp_prefix : uint32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of pci_memory_transaction\"] [:: std :: mem :: size_of :: < pci_memory_transaction > () - 128usize] ; [\"Alignment of pci_memory_transaction\"] [:: std :: mem :: align_of :: < pci_memory_transaction > () - 8usize] ; [\"Offset of field: pci_memory_transaction::_internal_s\"] [:: std :: mem :: offset_of ! (pci_memory_transaction , _internal_s) - 0usize] ; [\"Offset of field: pci_memory_transaction::_internal_original_size\"] [:: std :: mem :: offset_of ! (pci_memory_transaction , _internal_original_size) - 104usize] ; [\"Offset of field: pci_memory_transaction::_internal_bus_address\"] [:: std :: mem :: offset_of ! (pci_memory_transaction , _internal_bus_address) - 108usize] ; [\"Offset of field: pci_memory_transaction::_internal_bus_number\"] [:: std :: mem :: offset_of ! (pci_memory_transaction , _internal_bus_number) - 112usize] ; [\"Offset of field: pci_memory_transaction::_internal_device_number\"] [:: std :: mem :: offset_of ! (pci_memory_transaction , _internal_device_number) - 116usize] ; [\"Offset of field: pci_memory_transaction::_internal_function_number\"] [:: std :: mem :: offset_of ! (pci_memory_transaction , _internal_function_number) - 120usize] ; [\"Offset of field: pci_memory_transaction::_internal_tlp_prefix\"] [:: std :: mem :: offset_of ! (pci_memory_transaction , _internal_tlp_prefix) - 124usize] ; } ; impl Default for pci_memory_transaction { fn default () -> Self { let mut s = :: std :: mem :: MaybeUninit :: < Self > :: uninit () ; unsafe { :: std :: ptr :: write_bytes (s . as_mut_ptr () , 0 , 1) ; s . assume_init () } } } extern \"C\" { # [doc = \" The documentation for these EXPORTED methods are in mop.c and in the API RM\"] pub fn SIM_pci_mem_trans_from_generic (mop : * mut generic_transaction_t) -> * mut pci_memory_transaction_t ; } extern \"C\" { pub fn VT_get_pci_mem_op_requester_id (mop : * const pci_memory_transaction_t) -> uint16 ; } extern \"C\" { pub fn VT_get_pci_mem_op_tlp_prefix (mop : * const pci_memory_transaction_t) -> uint32 ; } extern \"C\" { pub fn VT_set_pci_mem_op_tlp_prefix (mop : * mut pci_memory_transaction_t , tlp_prefix : uint32) ; } pub type pci_device_interface_t = pci_device_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct pci_device_interface { pub bus_reset : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t) > , pub _deprecated_interrupt_acknowledge : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t) -> :: std :: os :: raw :: c_int > , pub _deprecated_special_cycle : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , value : uint32) > , # [doc = \" System Error\"] pub system_error : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t) > , # [doc = \" peer-to-peer interrupt mechanism\"] pub interrupt_raised : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , pin : :: std :: os :: raw :: c_int) > , pub interrupt_lowered : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , pin : :: std :: os :: raw :: c_int) > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of pci_device_interface\"] [:: std :: mem :: size_of :: < pci_device_interface > () - 48usize] ; [\"Alignment of pci_device_interface\"] [:: std :: mem :: align_of :: < pci_device_interface > () - 8usize] ; [\"Offset of field: pci_device_interface::bus_reset\"] [:: std :: mem :: offset_of ! (pci_device_interface , bus_reset) - 0usize] ; [\"Offset of field: pci_device_interface::_deprecated_interrupt_acknowledge\"] [:: std :: mem :: offset_of ! (pci_device_interface , _deprecated_interrupt_acknowledge) - 8usize] ; [\"Offset of field: pci_device_interface::_deprecated_special_cycle\"] [:: std :: mem :: offset_of ! (pci_device_interface , _deprecated_special_cycle) - 16usize] ; [\"Offset of field: pci_device_interface::system_error\"] [:: std :: mem :: offset_of ! (pci_device_interface , system_error) - 24usize] ; [\"Offset of field: pci_device_interface::interrupt_raised\"] [:: std :: mem :: offset_of ! (pci_device_interface , interrupt_raised) - 32usize] ; [\"Offset of field: pci_device_interface::interrupt_lowered\"] [:: std :: mem :: offset_of ! (pci_device_interface , interrupt_lowered) - 40usize] ; } ; pub type pci_bus_interface_t = pci_bus_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct pci_bus_interface { # [doc = \" Deprecated; memory_access\"] pub memory_access : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , mem_op : * mut generic_transaction_t) -> exception_type_t > , pub raise_interrupt : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , dev : * mut conf_object_t , pin : :: std :: os :: raw :: c_int) > , pub lower_interrupt : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , dev : * mut conf_object_t , pin : :: std :: os :: raw :: c_int) > , # [doc = \" Deprecated; interrupt_acknowledge\"] pub interrupt_acknowledge : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t) -> :: std :: os :: raw :: c_int > , pub add_map : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , dev : * mut conf_object_t , space : addr_space_t , target : * mut conf_object_t , info : map_info_t) -> :: std :: os :: raw :: c_int > , pub remove_map : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , dev : * mut conf_object_t , space : addr_space_t , function : :: std :: os :: raw :: c_int) -> :: std :: os :: raw :: c_int > , pub set_bus_number : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , bus_id : :: std :: os :: raw :: c_int) > , pub set_sub_bus_number : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , bus_id : :: std :: os :: raw :: c_int) > , # [doc = \" Deprecated; add_default, remove_default\"] pub add_default : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , dev : * mut conf_object_t , space : addr_space_t , target : * mut conf_object_t , info : map_info_t) > , pub remove_default : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , space : addr_space_t) > , pub bus_reset : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t) > , # [doc = \" Deprecated; special_cycle\"] pub special_cycle : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , value : uint32) > , pub system_error : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t) > , pub get_bus_address : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , dev : * mut conf_object_t) -> :: std :: os :: raw :: c_int > , pub set_device_status : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , device : :: std :: os :: raw :: c_int , function : :: std :: os :: raw :: c_int , enabled : :: std :: os :: raw :: c_int) > , # [doc = \" Memory spaces\"] pub configuration_space : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t) -> * mut conf_object_t > , pub io_space : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t) -> * mut conf_object_t > , pub memory_space : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t) -> * mut conf_object_t > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of pci_bus_interface\"] [:: std :: mem :: size_of :: < pci_bus_interface > () - 144usize] ; [\"Alignment of pci_bus_interface\"] [:: std :: mem :: align_of :: < pci_bus_interface > () - 8usize] ; [\"Offset of field: pci_bus_interface::memory_access\"] [:: std :: mem :: offset_of ! (pci_bus_interface , memory_access) - 0usize] ; [\"Offset of field: pci_bus_interface::raise_interrupt\"] [:: std :: mem :: offset_of ! (pci_bus_interface , raise_interrupt) - 8usize] ; [\"Offset of field: pci_bus_interface::lower_interrupt\"] [:: std :: mem :: offset_of ! (pci_bus_interface , lower_interrupt) - 16usize] ; [\"Offset of field: pci_bus_interface::interrupt_acknowledge\"] [:: std :: mem :: offset_of ! (pci_bus_interface , interrupt_acknowledge) - 24usize] ; [\"Offset of field: pci_bus_interface::add_map\"] [:: std :: mem :: offset_of ! (pci_bus_interface , add_map) - 32usize] ; [\"Offset of field: pci_bus_interface::remove_map\"] [:: std :: mem :: offset_of ! (pci_bus_interface , remove_map) - 40usize] ; [\"Offset of field: pci_bus_interface::set_bus_number\"] [:: std :: mem :: offset_of ! (pci_bus_interface , set_bus_number) - 48usize] ; [\"Offset of field: pci_bus_interface::set_sub_bus_number\"] [:: std :: mem :: offset_of ! (pci_bus_interface , set_sub_bus_number) - 56usize] ; [\"Offset of field: pci_bus_interface::add_default\"] [:: std :: mem :: offset_of ! (pci_bus_interface , add_default) - 64usize] ; [\"Offset of field: pci_bus_interface::remove_default\"] [:: std :: mem :: offset_of ! (pci_bus_interface , remove_default) - 72usize] ; [\"Offset of field: pci_bus_interface::bus_reset\"] [:: std :: mem :: offset_of ! (pci_bus_interface , bus_reset) - 80usize] ; [\"Offset of field: pci_bus_interface::special_cycle\"] [:: std :: mem :: offset_of ! (pci_bus_interface , special_cycle) - 88usize] ; [\"Offset of field: pci_bus_interface::system_error\"] [:: std :: mem :: offset_of ! (pci_bus_interface , system_error) - 96usize] ; [\"Offset of field: pci_bus_interface::get_bus_address\"] [:: std :: mem :: offset_of ! (pci_bus_interface , get_bus_address) - 104usize] ; [\"Offset of field: pci_bus_interface::set_device_status\"] [:: std :: mem :: offset_of ! (pci_bus_interface , set_device_status) - 112usize] ; [\"Offset of field: pci_bus_interface::configuration_space\"] [:: std :: mem :: offset_of ! (pci_bus_interface , configuration_space) - 120usize] ; [\"Offset of field: pci_bus_interface::io_space\"] [:: std :: mem :: offset_of ! (pci_bus_interface , io_space) - 128usize] ; [\"Offset of field: pci_bus_interface::memory_space\"] [:: std :: mem :: offset_of ! (pci_bus_interface , memory_space) - 136usize] ; } ; pub type pcie_adapter_compat_interface_t = pcie_adapter_compat_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct pcie_adapter_compat_interface { pub set_secondary_bus_number : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , secondary_bus_number : :: std :: os :: raw :: c_int) > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of pcie_adapter_compat_interface\"] [:: std :: mem :: size_of :: < pcie_adapter_compat_interface > () - 8usize] ; [\"Alignment of pcie_adapter_compat_interface\"] [:: std :: mem :: align_of :: < pcie_adapter_compat_interface > () - 8usize] ; [\"Offset of field: pcie_adapter_compat_interface::set_secondary_bus_number\"] [:: std :: mem :: offset_of ! (pcie_adapter_compat_interface , set_secondary_bus_number) - 0usize] ; } ; pub type pci_upstream_interface_t = pci_upstream_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct pci_upstream_interface { pub operation : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , mem_op : * mut generic_transaction_t , space : addr_space_t) -> exception_type_t > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of pci_upstream_interface\"] [:: std :: mem :: size_of :: < pci_upstream_interface > () - 8usize] ; [\"Alignment of pci_upstream_interface\"] [:: std :: mem :: align_of :: < pci_upstream_interface > () - 8usize] ; [\"Offset of field: pci_upstream_interface::operation\"] [:: std :: mem :: offset_of ! (pci_upstream_interface , operation) - 0usize] ; } ; pub type pci_upstream_operation_interface_t = pci_upstream_operation_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct pci_upstream_operation_interface { pub read : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , initiator : * mut conf_object_t , rid : uint16 , space : addr_space_t , address : physical_address_t , buffer : buffer_t) -> exception_type_t > , pub write : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , initiator : * mut conf_object_t , rid : uint16 , space : addr_space_t , address : physical_address_t , buffer : bytes_t) -> exception_type_t > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of pci_upstream_operation_interface\"] [:: std :: mem :: size_of :: < pci_upstream_operation_interface > () - 16usize] ; [\"Alignment of pci_upstream_operation_interface\"] [:: std :: mem :: align_of :: < pci_upstream_operation_interface > () - 8usize] ; [\"Offset of field: pci_upstream_operation_interface::read\"] [:: std :: mem :: offset_of ! (pci_upstream_operation_interface , read) - 0usize] ; [\"Offset of field: pci_upstream_operation_interface::write\"] [:: std :: mem :: offset_of ! (pci_upstream_operation_interface , write) - 8usize] ; } ; pub type pci_downstream_interface_t = pci_downstream_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct pci_downstream_interface { pub operation : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , mem_op : * mut generic_transaction_t , space : addr_space_t) -> exception_type_t > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of pci_downstream_interface\"] [:: std :: mem :: size_of :: < pci_downstream_interface > () - 8usize] ; [\"Alignment of pci_downstream_interface\"] [:: std :: mem :: align_of :: < pci_downstream_interface > () - 8usize] ; [\"Offset of field: pci_downstream_interface::operation\"] [:: std :: mem :: offset_of ! (pci_downstream_interface , operation) - 0usize] ; } ; pub type pci_bridge_interface_t = pci_bridge_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct pci_bridge_interface { pub system_error : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t) > , pub raise_interrupt : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , pci_bus : * mut conf_object_t , device : :: std :: os :: raw :: c_int , pin : :: std :: os :: raw :: c_int) > , pub lower_interrupt : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , pci_bus : * mut conf_object_t , device : :: std :: os :: raw :: c_int , pin : :: std :: os :: raw :: c_int) > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of pci_bridge_interface\"] [:: std :: mem :: size_of :: < pci_bridge_interface > () - 24usize] ; [\"Alignment of pci_bridge_interface\"] [:: std :: mem :: align_of :: < pci_bridge_interface > () - 8usize] ; [\"Offset of field: pci_bridge_interface::system_error\"] [:: std :: mem :: offset_of ! (pci_bridge_interface , system_error) - 0usize] ; [\"Offset of field: pci_bridge_interface::raise_interrupt\"] [:: std :: mem :: offset_of ! (pci_bridge_interface , raise_interrupt) - 8usize] ; [\"Offset of field: pci_bridge_interface::lower_interrupt\"] [:: std :: mem :: offset_of ! (pci_bridge_interface , lower_interrupt) - 16usize] ; } ; pub type pci_interrupt_interface_t = pci_interrupt_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct pci_interrupt_interface { pub raise_interrupt : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , pci_bus : * mut conf_object_t , device : :: std :: os :: raw :: c_int , pin : :: std :: os :: raw :: c_int) > , pub lower_interrupt : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , pci_bus : * mut conf_object_t , device : :: std :: os :: raw :: c_int , pin : :: std :: os :: raw :: c_int) > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of pci_interrupt_interface\"] [:: std :: mem :: size_of :: < pci_interrupt_interface > () - 16usize] ; [\"Alignment of pci_interrupt_interface\"] [:: std :: mem :: align_of :: < pci_interrupt_interface > () - 8usize] ; [\"Offset of field: pci_interrupt_interface::raise_interrupt\"] [:: std :: mem :: offset_of ! (pci_interrupt_interface , raise_interrupt) - 0usize] ; [\"Offset of field: pci_interrupt_interface::lower_interrupt\"] [:: std :: mem :: offset_of ! (pci_interrupt_interface , lower_interrupt) - 8usize] ; } ; # [repr (u32)] # [doc = \"<add-type id=\\\"pci_interrupt_pin_t def\\\">\\n</add-type>\"] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub enum pci_interrupt_pin_t { # [doc = \" As encoded in the PCIe spec; Interrupt Pin register\"] PCI_INTERRUPT_INTA = 1 , # [doc = \" As encoded in the PCIe spec; Interrupt Pin register\"] PCI_INTERRUPT_INTB = 2 , # [doc = \" As encoded in the PCIe spec; Interrupt Pin register\"] PCI_INTERRUPT_INTC = 3 , # [doc = \" As encoded in the PCIe spec; Interrupt Pin register\"] PCI_INTERRUPT_INTD = 4 , } impl pcie_message_type_t { pub const PCIE_Locked_Transaction : pcie_message_type_t = pcie_message_type_t :: PCIE_Unlock ; } # [repr (i32)] # [doc = \"<add-type id=\\\"pcie_message_type_t def\\\">\\n</add-type>\"] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub enum pcie_message_type_t { # [doc = \" Address Translation\"] PCIE_ATS_Invalidate = 1 , # [doc = \" Address Translation\"] PCIE_PRS_Request = 4 , # [doc = \" Address Translation\"] PCIE_PRS_Response = 5 , # [doc = \" Address Translation\"] PCIE_Latency_Tolerance_Reporting = 16 , # [doc = \" Address Translation\"] PCIE_Optimized_Buffer_Flush_Fill = 18 , # [doc = \" INTx emulation\"] PCIE_Msg_Assert_INTA = 32 , # [doc = \" INTx emulation\"] PCIE_Msg_Assert_INTB = 33 , # [doc = \" INTx emulation\"] PCIE_Msg_Assert_INTC = 34 , # [doc = \" INTx emulation\"] PCIE_Msg_Assert_INTD = 35 , # [doc = \" INTx emulation\"] PCIE_Msg_Deassert_INTA = 36 , # [doc = \" INTx emulation\"] PCIE_Msg_Deassert_INTB = 37 , # [doc = \" INTx emulation\"] PCIE_Msg_Deassert_INTC = 38 , # [doc = \" INTx emulation\"] PCIE_Msg_Deassert_INTD = 39 , # [doc = \" Power Management\"] PCIE_PM_Active_State_Nak = 20 , # [doc = \" Power Management\"] PCIE_PM_PME = 24 , # [doc = \" Power Management\"] PCIE_PM_Turn_Off = 25 , # [doc = \" Power Management\"] PCIE_PM_PME_TO_Ack = 27 , # [doc = \" Error Messages\"] PCIE_ERR_COR = 48 , # [doc = \" Error Messages\"] PCIE_ERR_NONFATAL = 49 , # [doc = \" Error Messages\"] PCIE_ERR_FATAL = 51 , # [doc = \" Locked Transaction\"] PCIE_Unlock = 0 , # [doc = \" Slot Power Limit\"] PCIE_Set_Slot_Power_Limit = 80 , # [doc = \" Slot Power Limit\"] PCIE_Precision_Time_Measurement = 82 , # [doc = \" Hot Plug Messages\"] PCIE_HP_Power_Indicator_On = 69 , # [doc = \" Hot Plug Messages\"] PCIE_HP_Power_Indicator_Blink = 71 , # [doc = \" Hot Plug Messages\"] PCIE_HP_Power_Indicator_Off = 68 , # [doc = \" Hot Plug Messages\"] PCIE_HP_Attention_Button_Pressed = 72 , # [doc = \" Hot Plug Messages\"] PCIE_HP_Attention_Indicator_On = 65 , # [doc = \" Hot Plug Messages\"] PCIE_HP_Attention_Indicator_Blink = 67 , # [doc = \" Hot Plug Messages\"] PCIE_HP_Attention_Indicator_Off = 64 , # [doc = \" Hot Plug Messages\"] PCIE_Vendor_Defined_Type_0 = 126 , # [doc = \" Hot Plug Messages\"] PCIE_Vendor_Defined_Type_1 = 127 , # [doc = \" Data Link Layer (virtual) Messages\\n\\nNOTE: these messages only exist on Simics simulator, as they are\\nnormally part of the Data Link Layer which is below the level of\\nabstraction for Simics PCIe models\\n\\nAccording to PCIe rev 2.0, when a target receives a message that it\\ndoes not recognize or support, except for the \\\"Vendor Defined Type\\n1\\\" message, it should treat the request as an \\\"Unsupported Request\\\"\\nand report it accordingly (see sec 2.3.1 for reference).\\n\\nHence models that comply with rev 2.0 must be updated to either\\n1) handle these messages or 2) ignore these messages.\\n\\nIdeally we would like to use a new pcie_link interface to transmit\\nthis information - see bug 17849 for more info.\"] PCIE_DLL_Link_Down = - 1 , # [doc = \" Data Link Layer (virtual) Messages\\n\\nNOTE: these messages only exist on Simics simulator, as they are\\nnormally part of the Data Link Layer which is below the level of\\nabstraction for Simics PCIe models\\n\\nAccording to PCIe rev 2.0, when a target receives a message that it\\ndoes not recognize or support, except for the \\\"Vendor Defined Type\\n1\\\" message, it should treat the request as an \\\"Unsupported Request\\\"\\nand report it accordingly (see sec 2.3.1 for reference).\\n\\nHence models that comply with rev 2.0 must be updated to either\\n1) handle these messages or 2) ignore these messages.\\n\\nIdeally we would like to use a new pcie_link interface to transmit\\nthis information - see bug 17849 for more info.\"] PCIE_DLL_Link_Up = - 2 , } pub type pci_express_interface_t = pci_express_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct pci_express_interface { pub send_message : :: std :: option :: Option < unsafe extern \"C\" fn (dst : * mut conf_object_t , src : * mut conf_object_t , type_ : pcie_message_type_t , payload : byte_string_t) -> :: std :: os :: raw :: c_int > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of pci_express_interface\"] [:: std :: mem :: size_of :: < pci_express_interface > () - 8usize] ; [\"Alignment of pci_express_interface\"] [:: std :: mem :: align_of :: < pci_express_interface > () - 8usize] ; [\"Offset of field: pci_express_interface::send_message\"] [:: std :: mem :: offset_of ! (pci_express_interface , send_message) - 0usize] ; } ; pub type pci_express_hotplug_interface_t = pci_express_hotplug_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct pci_express_hotplug_interface { # [doc = \" This is sent when a device is added or removed from the bus.\"] pub presence_change : :: std :: option :: Option < unsafe extern \"C\" fn (dst : * mut conf_object_t , src : * mut conf_object_t , is_present : :: std :: os :: raw :: c_int) > , pub inject_power_fault : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t) > , pub press_attention_button : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t) > , pub set_mrl_state : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , locked : :: std :: os :: raw :: c_int) > , pub get_mrl_state : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t) -> :: std :: os :: raw :: c_int > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of pci_express_hotplug_interface\"] [:: std :: mem :: size_of :: < pci_express_hotplug_interface > () - 40usize] ; [\"Alignment of pci_express_hotplug_interface\"] [:: std :: mem :: align_of :: < pci_express_hotplug_interface > () - 8usize] ; [\"Offset of field: pci_express_hotplug_interface::presence_change\"] [:: std :: mem :: offset_of ! (pci_express_hotplug_interface , presence_change) - 0usize] ; [\"Offset of field: pci_express_hotplug_interface::inject_power_fault\"] [:: std :: mem :: offset_of ! (pci_express_hotplug_interface , inject_power_fault) - 8usize] ; [\"Offset of field: pci_express_hotplug_interface::press_attention_button\"] [:: std :: mem :: offset_of ! (pci_express_hotplug_interface , press_attention_button) - 16usize] ; [\"Offset of field: pci_express_hotplug_interface::set_mrl_state\"] [:: std :: mem :: offset_of ! (pci_express_hotplug_interface , set_mrl_state) - 24usize] ; [\"Offset of field: pci_express_hotplug_interface::get_mrl_state\"] [:: std :: mem :: offset_of ! (pci_express_hotplug_interface , get_mrl_state) - 32usize] ; } ; pub type pci_multi_function_device_interface_t = pci_multi_function_device_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct pci_multi_function_device_interface { pub supported_functions : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t) -> attr_value_t > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of pci_multi_function_device_interface\"] [:: std :: mem :: size_of :: < pci_multi_function_device_interface > () - 8usize] ; [\"Alignment of pci_multi_function_device_interface\"] [:: std :: mem :: align_of :: < pci_multi_function_device_interface > () - 8usize] ; [\"Offset of field: pci_multi_function_device_interface::supported_functions\"] [:: std :: mem :: offset_of ! (pci_multi_function_device_interface , supported_functions) - 0usize] ; } ; # [repr (u32)] # [doc = \" <add id=\\\"pcie_device_interface_t\\\">\\n\\nThis interface must be implemented by all PCIe devices that can receive\\ndownstream transactions.\\n\\n<fun>connected</fun> and <fun>disconnected</fun> are used to indicate that\\nthe device is (dis)connected to <arg>port_obj</arg> with device id\\n<arg>device_id</arg> and may use the <iface>pcie_map</iface> interface to\\nadd/remove functions and claim/release other resources\\n\\n<fun>hot_reset</fun> is used to indicate that a Hot Reset has been signaled\\non the PCIe link to which the device is connected. It is up to the device to\\nreset functions and other resources mapped using the <iface>pcie_map</iface>\\ninterface.\\n\\nNote: This interface is considered tech-preview and may change without\\nnotice.\\n\\n<insert-until text=\\\"// ADD INTERFACE pcie_device_interface\\\"/>\\n</add>\\n\\n<add id=\\\"pcie_device_interface_exec_context\\\">\\nGlobal Context for all methods.\\n</add>\"] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub enum pcie_type_t { PCIE_Type_Not_Set = 0 , PCIE_Type_Mem = 1 , PCIE_Type_IO = 2 , PCIE_Type_Cfg = 3 , PCIE_Type_Msg = 4 , PCIE_Type_Other = 5 , } pub type pcie_device_interface_t = pcie_device_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct pcie_device_interface { pub connected : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , port_obj : * mut conf_object_t , device_id : uint16) > , pub disconnected : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , port_obj : * mut conf_object_t , device_id : uint16) > , pub hot_reset : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t) > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of pcie_device_interface\"] [:: std :: mem :: size_of :: < pcie_device_interface > () - 24usize] ; [\"Alignment of pcie_device_interface\"] [:: std :: mem :: align_of :: < pcie_device_interface > () - 8usize] ; [\"Offset of field: pcie_device_interface::connected\"] [:: std :: mem :: offset_of ! (pcie_device_interface , connected) - 0usize] ; [\"Offset of field: pcie_device_interface::disconnected\"] [:: std :: mem :: offset_of ! (pcie_device_interface , disconnected) - 8usize] ; [\"Offset of field: pcie_device_interface::hot_reset\"] [:: std :: mem :: offset_of ! (pcie_device_interface , hot_reset) - 16usize] ; } ; pub type pcie_map_interface_t = pcie_map_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct pcie_map_interface { pub add_map : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , map_obj : * mut conf_object_t , nfo : map_info_t , type_ : pcie_type_t) > , pub del_map : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , map_obj : * mut conf_object_t , base : physical_address_t , type_ : pcie_type_t) > , pub add_function : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , map_obj : * mut conf_object_t , function_id : uint16) > , pub del_function : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , map_obj : * mut conf_object_t , function_id : uint16) > , pub enable_function : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , function_id : uint16) > , pub disable_function : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , function_id : uint16) > , pub get_device_id : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , dev_obj : * mut conf_object_t) -> uint16 > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of pcie_map_interface\"] [:: std :: mem :: size_of :: < pcie_map_interface > () - 56usize] ; [\"Alignment of pcie_map_interface\"] [:: std :: mem :: align_of :: < pcie_map_interface > () - 8usize] ; [\"Offset of field: pcie_map_interface::add_map\"] [:: std :: mem :: offset_of ! (pcie_map_interface , add_map) - 0usize] ; [\"Offset of field: pcie_map_interface::del_map\"] [:: std :: mem :: offset_of ! (pcie_map_interface , del_map) - 8usize] ; [\"Offset of field: pcie_map_interface::add_function\"] [:: std :: mem :: offset_of ! (pcie_map_interface , add_function) - 16usize] ; [\"Offset of field: pcie_map_interface::del_function\"] [:: std :: mem :: offset_of ! (pcie_map_interface , del_function) - 24usize] ; [\"Offset of field: pcie_map_interface::enable_function\"] [:: std :: mem :: offset_of ! (pcie_map_interface , enable_function) - 32usize] ; [\"Offset of field: pcie_map_interface::disable_function\"] [:: std :: mem :: offset_of ! (pcie_map_interface , disable_function) - 40usize] ; [\"Offset of field: pcie_map_interface::get_device_id\"] [:: std :: mem :: offset_of ! (pcie_map_interface , get_device_id) - 48usize] ; } ; pub type pcie_port_control_interface_t = pcie_port_control_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct pcie_port_control_interface { pub set_secondary_bus_number : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , value : uint64) > , pub hot_reset : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t) > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of pcie_port_control_interface\"] [:: std :: mem :: size_of :: < pcie_port_control_interface > () - 16usize] ; [\"Alignment of pcie_port_control_interface\"] [:: std :: mem :: align_of :: < pcie_port_control_interface > () - 8usize] ; [\"Offset of field: pcie_port_control_interface::set_secondary_bus_number\"] [:: std :: mem :: offset_of ! (pcie_port_control_interface , set_secondary_bus_number) - 0usize] ; [\"Offset of field: pcie_port_control_interface::hot_reset\"] [:: std :: mem :: offset_of ! (pcie_port_control_interface , hot_reset) - 8usize] ; } ; # [repr (u32)] # [doc = \"<add-type id=\\\"pcie_hotplug_pd_t def\\\">\\n</add-type>\"] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub enum pcie_hotplug_pd_t { PCIE_HP_PD_Adapter_Not_Present = 0 , PCIE_HP_PD_Adapter_Present = 1 , } # [repr (u32)] # [doc = \"<add-type id=\\\"pcie_hotplug_mrl_t def\\\">\\n</add-type>\"] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub enum pcie_hotplug_mrl_t { PCIE_HP_MRL_Closed = 0 , PCIE_HP_MRL_Open = 1 , } pub type pcie_hotplug_events_interface_t = pcie_hotplug_events_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct pcie_hotplug_events_interface { pub presence_change : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , state : pcie_hotplug_pd_t) > , pub power_fault : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t) > , pub attention_button_pressed : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t) > , pub mrl_sensor : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , state : pcie_hotplug_mrl_t) > , pub data_link_layer : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , is_active : bool) > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of pcie_hotplug_events_interface\"] [:: std :: mem :: size_of :: < pcie_hotplug_events_interface > () - 40usize] ; [\"Alignment of pcie_hotplug_events_interface\"] [:: std :: mem :: align_of :: < pcie_hotplug_events_interface > () - 8usize] ; [\"Offset of field: pcie_hotplug_events_interface::presence_change\"] [:: std :: mem :: offset_of ! (pcie_hotplug_events_interface , presence_change) - 0usize] ; [\"Offset of field: pcie_hotplug_events_interface::power_fault\"] [:: std :: mem :: offset_of ! (pcie_hotplug_events_interface , power_fault) - 8usize] ; [\"Offset of field: pcie_hotplug_events_interface::attention_button_pressed\"] [:: std :: mem :: offset_of ! (pcie_hotplug_events_interface , attention_button_pressed) - 16usize] ; [\"Offset of field: pcie_hotplug_events_interface::mrl_sensor\"] [:: std :: mem :: offset_of ! (pcie_hotplug_events_interface , mrl_sensor) - 24usize] ; [\"Offset of field: pcie_hotplug_events_interface::data_link_layer\"] [:: std :: mem :: offset_of ! (pcie_hotplug_events_interface , data_link_layer) - 32usize] ; } ; pub type pcie_link_training_interface_t = pcie_link_training_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct pcie_link_training_interface { pub trigger : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , device_id : uint16) -> bool > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of pcie_link_training_interface\"] [:: std :: mem :: size_of :: < pcie_link_training_interface > () - 8usize] ; [\"Alignment of pcie_link_training_interface\"] [:: std :: mem :: align_of :: < pcie_link_training_interface > () - 8usize] ; [\"Offset of field: pcie_link_training_interface::trigger\"] [:: std :: mem :: offset_of ! (pcie_link_training_interface , trigger) - 0usize] ; } ; # [repr (u32)] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub enum pcie_msg_route_t { PCIE_Msg_Route_Not_Set = 0 , # [doc = \" To RC\"] PCIE_Msg_Route_Upstream = 1 , # [doc = \" IO and Memory\"] PCIE_Msg_Route_Address = 2 , # [doc = \" Messages\"] PCIE_Msg_Route_ID = 3 , # [doc = \" From RC\"] PCIE_Msg_Route_Broadcast = 4 , # [doc = \" INTx\"] PCIE_Msg_Route_Terminate = 5 , # [doc = \" PME_Turn_Off_Ack\"] PCIE_Msg_Route_Gather = 6 , } # [repr (u32)] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub enum pcie_at_t { PCIE_AT_Not_Set = 0 , PCIE_AT_Untranslated = 1 , PCIE_AT_Translation_Request = 2 , PCIE_AT_Translated = 3 , } # [repr (u32)] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub enum pcie_error_t { PCIE_Error_Not_Set = 0 , PCIE_Error_Unsupported_Request = 1 , PCIE_Error_Completer_Abort = 2 , PCIE_Error_Master_Abort = 3 , PCIE_Error_No_Error = 4 , PCIE_Error_Configuration_Request_Retry_Status = 5 , } # [repr (C)] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct pcie_error_ret_t { pub val : pcie_error_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of pcie_error_ret_t\"] [:: std :: mem :: size_of :: < pcie_error_ret_t > () - 4usize] ; [\"Alignment of pcie_error_ret_t\"] [:: std :: mem :: align_of :: < pcie_error_ret_t > () - 4usize] ; [\"Offset of field: pcie_error_ret_t::val\"] [:: std :: mem :: offset_of ! (pcie_error_ret_t , val) - 0usize] ; } ; impl Default for pcie_error_ret_t { fn default () -> Self { let mut s = :: std :: mem :: MaybeUninit :: < Self > :: uninit () ; unsafe { :: std :: ptr :: write_bytes (s . as_mut_ptr () , 0 , 1) ; s . assume_init () } } } # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct pcie_byte_count_ret_t { pub val : uint64 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of pcie_byte_count_ret_t\"] [:: std :: mem :: size_of :: < pcie_byte_count_ret_t > () - 8usize] ; [\"Alignment of pcie_byte_count_ret_t\"] [:: std :: mem :: align_of :: < pcie_byte_count_ret_t > () - 8usize] ; [\"Offset of field: pcie_byte_count_ret_t::val\"] [:: std :: mem :: offset_of ! (pcie_byte_count_ret_t , val) - 0usize] ; } ; # [repr (u32)] # [doc = \"<add id=\\\"pcie_link_speed_t DOC\\\">\\n<ndx>pcie_link_speed_t</ndx>\\n<doc>\\n<doc-item name=\\\"NAME\\\">pcie_link_speed_t</doc-item>\\n<doc-item name=\\\"DESCRIPTION\\\">\\nThis type is used to indicate PCIe link speeds.\\n</doc-item>\\n</doc>\\n</add>\"] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub enum pcie_link_speed_t { PCIE_Link_Speed_Undefined = 0 , PCIE_Link_Speed_2_5 = 1 , PCIE_Link_Speed_5 = 2 , PCIE_Link_Speed_8 = 4 , PCIE_Link_Speed_16 = 8 , PCIE_Link_Speed_32 = 16 , PCIE_Link_Speed_64 = 32 , } # [repr (u32)] # [doc = \"<add id=\\\"pcie_link_width_t DOC\\\">\\n<ndx>pcie_link_width_t</ndx>\\n<doc>\\n<doc-item name=\\\"NAME\\\">pcie_link_width_t</doc-item>\\n<doc-item name=\\\"DESCRIPTION\\\">\\nThis type is used to indicate PCIe link widths.\\n</doc-item>\\n</doc>\\n</add>\"] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub enum pcie_link_width_t { PCIE_Link_Width_Undefined = 0 , PCIE_Link_Width_x1 = 1 , PCIE_Link_Width_x2 = 2 , PCIE_Link_Width_x4 = 4 , PCIE_Link_Width_x8 = 8 , PCIE_Link_Width_x16 = 16 , } # [doc = \"<add id=\\\"pcie_link_negotiation_t DOC\\\">\\n<ndx>pcie_link_negotiation_t</ndx>\\n<doc>\\n<doc-item name=\\\"NAME\\\">pcie_link_negotiation_t</doc-item>\\n<doc-item name=\\\"DESCRIPTION\\\">\\nThis type is used to send desired (maximum) link attributes to a peer who\\nthen sets the negotiated link speed and width based on the supported\\nvalues of both peers.\\n</doc-item>\\n</doc>\\n</add>\"] # [repr (C)] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct pcie_link_negotiation_t { pub maximum_link_speed : pcie_link_speed_t , pub maximum_link_width : pcie_link_width_t , pub negotiated_link_speed : pcie_link_speed_t , pub negotiated_link_width : pcie_link_width_t , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of pcie_link_negotiation_t\"] [:: std :: mem :: size_of :: < pcie_link_negotiation_t > () - 16usize] ; [\"Alignment of pcie_link_negotiation_t\"] [:: std :: mem :: align_of :: < pcie_link_negotiation_t > () - 4usize] ; [\"Offset of field: pcie_link_negotiation_t::maximum_link_speed\"] [:: std :: mem :: offset_of ! (pcie_link_negotiation_t , maximum_link_speed) - 0usize] ; [\"Offset of field: pcie_link_negotiation_t::maximum_link_width\"] [:: std :: mem :: offset_of ! (pcie_link_negotiation_t , maximum_link_width) - 4usize] ; [\"Offset of field: pcie_link_negotiation_t::negotiated_link_speed\"] [:: std :: mem :: offset_of ! (pcie_link_negotiation_t , negotiated_link_speed) - 8usize] ; [\"Offset of field: pcie_link_negotiation_t::negotiated_link_width\"] [:: std :: mem :: offset_of ! (pcie_link_negotiation_t , negotiated_link_width) - 12usize] ; } ; impl Default for pcie_link_negotiation_t { fn default () -> Self { let mut s = :: std :: mem :: MaybeUninit :: < Self > :: uninit () ; unsafe { :: std :: ptr :: write_bytes (s . as_mut_ptr () , 0 , 1) ; s . assume_init () } } } # [repr (u32)] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub enum ieee_802_3_media_t { # [doc = \" not connected at all\"] IEEE_no_media = 0 , # [doc = \" media type is unknown\"] IEEE_media_unknown = 1 , # [doc = \" 10 Mb/s CSMA/CD LAN over RG 58 coaxial cable\"] IEEE_10base2 = 2 , # [doc = \" 10 Mb/s CSMA/CD LAN over coaxial cable\\n(i.e., thicknet)\"] IEEE_10base5 = 3 , # [doc = \" 10 Mb/s CSMA/CD LAN over fiber optic cable\"] IEEE_10baseF = 4 , # [doc = \" 10 Mb/s CSMA/CD LAN over two pairs of\\ntwisted-pair telephone wire\"] IEEE_10baseT = 5 , # [doc = \" 100 Mb/s CSMA/CD LAN over two optical fibers\"] IEEE_100baseFX = 6 , # [doc = \" 100 Mb/s CSMA/CD LAN\"] IEEE_100baseT = 7 , # [doc = \" 100 Mb/s CSMA/CD LAN over two pairs of cat 3\\nor better balanced cabling\"] IEEE_100baseT2 = 8 , # [doc = \" 100 Mb/s CSMA/CD LAN over four pairs of cat 3,\\n4, and 5 UTP wire\"] IEEE_100baseT4 = 9 , # [doc = \" 100 Mb/s CSMA/CD LAN over two pairs of cat 5\\nUTP or STP wire\"] IEEE_100baseTX = 10 , # [doc = \" 100 Mb/s CSMA/CD LAN with PMD and MDI of\\nISO/IEC 9314 by ASC X3T12 (FDDI)\"] IEEE_100baseX = 11 , # [doc = \" 1000 Mb/s CSMA/CD LAN derived from\\nANSI X3.230-1994 (FC-PH) [B20]11\"] IEEE_1000baseX = 12 , # [doc = \" 1000BASE-X over specially shielded balanced\\ncopper jumper cable assemblies\"] IEEE_1000baseCX = 13 , # [doc = \" 1000BASE-X using long wavelength laser over\\nmultimode and single-mode fiber\"] IEEE_1000baseLX = 14 , # [doc = \" 1000BASE-X using short wavelength laser over\\nmultimode fiber\"] IEEE_1000baseSX = 15 , # [doc = \" 1000 Mb/s CSMA/CD LAN using four pairs of cat 5\\nbalanced copper cabling\"] IEEE_1000baseT = 16 , # [doc = \" 10 Mb/s CSMA/CD LAN over single broadband\\ncable\"] IEEE_10broad36 = 17 , # [doc = \" 1 Mb/s CSMA/CD LAN over two pairs of\\ntwisted-pair telephone wire\"] IEEE_1base5 = 18 , } # [repr (u32)] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub enum ieee_802_3_duplex_mode_t { IEEE_half_duplex = 0 , IEEE_full_duplex = 1 , } # [repr (u32)] # [doc = \" <add-type id=\\\"ieee_802_3_link_status_t\\\"></add-type>\"] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub enum ieee_802_3_link_status_t { IEEE_link_unconnected = 0 , IEEE_link_down = 1 , IEEE_link_up = 2 , } pub type ieee_802_3_phy_interface_t = ieee_802_3_phy_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct ieee_802_3_phy_interface { pub send_frame : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , buf : * mut dbuffer_t , replace_crc : :: std :: os :: raw :: c_int) -> :: std :: os :: raw :: c_int > , pub check_tx_bandwidth : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t) -> :: std :: os :: raw :: c_int > , pub add_mac : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , mac : * const uint8) > , pub del_mac : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , mac : * const uint8) > , pub add_mac_mask : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , mac : * const uint8 , mask : * const uint8) > , pub del_mac_mask : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , mac : * const uint8 , mask : * const uint8) > , pub set_promiscous_mode : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , enable : :: std :: os :: raw :: c_int) > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of ieee_802_3_phy_interface\"] [:: std :: mem :: size_of :: < ieee_802_3_phy_interface > () - 56usize] ; [\"Alignment of ieee_802_3_phy_interface\"] [:: std :: mem :: align_of :: < ieee_802_3_phy_interface > () - 8usize] ; [\"Offset of field: ieee_802_3_phy_interface::send_frame\"] [:: std :: mem :: offset_of ! (ieee_802_3_phy_interface , send_frame) - 0usize] ; [\"Offset of field: ieee_802_3_phy_interface::check_tx_bandwidth\"] [:: std :: mem :: offset_of ! (ieee_802_3_phy_interface , check_tx_bandwidth) - 8usize] ; [\"Offset of field: ieee_802_3_phy_interface::add_mac\"] [:: std :: mem :: offset_of ! (ieee_802_3_phy_interface , add_mac) - 16usize] ; [\"Offset of field: ieee_802_3_phy_interface::del_mac\"] [:: std :: mem :: offset_of ! (ieee_802_3_phy_interface , del_mac) - 24usize] ; [\"Offset of field: ieee_802_3_phy_interface::add_mac_mask\"] [:: std :: mem :: offset_of ! (ieee_802_3_phy_interface , add_mac_mask) - 32usize] ; [\"Offset of field: ieee_802_3_phy_interface::del_mac_mask\"] [:: std :: mem :: offset_of ! (ieee_802_3_phy_interface , del_mac_mask) - 40usize] ; [\"Offset of field: ieee_802_3_phy_interface::set_promiscous_mode\"] [:: std :: mem :: offset_of ! (ieee_802_3_phy_interface , set_promiscous_mode) - 48usize] ; } ; pub type ieee_802_3_phy_v2_interface_t = ieee_802_3_phy_v2_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct ieee_802_3_phy_v2_interface { pub send_frame : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , buf : * mut dbuffer_t , replace_crc : :: std :: os :: raw :: c_int) -> :: std :: os :: raw :: c_int > , pub check_tx_bandwidth : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t) -> :: std :: os :: raw :: c_int > , pub add_mac : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , mac : byte_string_t) > , pub del_mac : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , mac : byte_string_t) > , pub add_mac_mask : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , mac : byte_string_t , mask : byte_string_t) > , pub del_mac_mask : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , mac : byte_string_t , mask : byte_string_t) > , pub set_promiscous_mode : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , enable : :: std :: os :: raw :: c_int) > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of ieee_802_3_phy_v2_interface\"] [:: std :: mem :: size_of :: < ieee_802_3_phy_v2_interface > () - 56usize] ; [\"Alignment of ieee_802_3_phy_v2_interface\"] [:: std :: mem :: align_of :: < ieee_802_3_phy_v2_interface > () - 8usize] ; [\"Offset of field: ieee_802_3_phy_v2_interface::send_frame\"] [:: std :: mem :: offset_of ! (ieee_802_3_phy_v2_interface , send_frame) - 0usize] ; [\"Offset of field: ieee_802_3_phy_v2_interface::check_tx_bandwidth\"] [:: std :: mem :: offset_of ! (ieee_802_3_phy_v2_interface , check_tx_bandwidth) - 8usize] ; [\"Offset of field: ieee_802_3_phy_v2_interface::add_mac\"] [:: std :: mem :: offset_of ! (ieee_802_3_phy_v2_interface , add_mac) - 16usize] ; [\"Offset of field: ieee_802_3_phy_v2_interface::del_mac\"] [:: std :: mem :: offset_of ! (ieee_802_3_phy_v2_interface , del_mac) - 24usize] ; [\"Offset of field: ieee_802_3_phy_v2_interface::add_mac_mask\"] [:: std :: mem :: offset_of ! (ieee_802_3_phy_v2_interface , add_mac_mask) - 32usize] ; [\"Offset of field: ieee_802_3_phy_v2_interface::del_mac_mask\"] [:: std :: mem :: offset_of ! (ieee_802_3_phy_v2_interface , del_mac_mask) - 40usize] ; [\"Offset of field: ieee_802_3_phy_v2_interface::set_promiscous_mode\"] [:: std :: mem :: offset_of ! (ieee_802_3_phy_v2_interface , set_promiscous_mode) - 48usize] ; } ; pub type ieee_802_3_phy_v3_interface_t = ieee_802_3_phy_v3_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct ieee_802_3_phy_v3_interface { pub send_frame : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , frame : * const frags_t , replace_crc : :: std :: os :: raw :: c_int) -> :: std :: os :: raw :: c_int > , pub check_tx_bandwidth : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t) -> :: std :: os :: raw :: c_int > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of ieee_802_3_phy_v3_interface\"] [:: std :: mem :: size_of :: < ieee_802_3_phy_v3_interface > () - 16usize] ; [\"Alignment of ieee_802_3_phy_v3_interface\"] [:: std :: mem :: align_of :: < ieee_802_3_phy_v3_interface > () - 8usize] ; [\"Offset of field: ieee_802_3_phy_v3_interface::send_frame\"] [:: std :: mem :: offset_of ! (ieee_802_3_phy_v3_interface , send_frame) - 0usize] ; [\"Offset of field: ieee_802_3_phy_v3_interface::check_tx_bandwidth\"] [:: std :: mem :: offset_of ! (ieee_802_3_phy_v3_interface , check_tx_bandwidth) - 8usize] ; } ; pub type ieee_802_3_mac_interface_t = ieee_802_3_mac_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct ieee_802_3_mac_interface { pub receive_frame : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , phy : :: std :: os :: raw :: c_int , buf : * mut dbuffer_t , crc_ok : :: std :: os :: raw :: c_int) -> :: std :: os :: raw :: c_int > , pub tx_bandwidth_available : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , phy : :: std :: os :: raw :: c_int) > , pub link_status_changed : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , phy : :: std :: os :: raw :: c_int , status : ieee_802_3_link_status_t) > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of ieee_802_3_mac_interface\"] [:: std :: mem :: size_of :: < ieee_802_3_mac_interface > () - 24usize] ; [\"Alignment of ieee_802_3_mac_interface\"] [:: std :: mem :: align_of :: < ieee_802_3_mac_interface > () - 8usize] ; [\"Offset of field: ieee_802_3_mac_interface::receive_frame\"] [:: std :: mem :: offset_of ! (ieee_802_3_mac_interface , receive_frame) - 0usize] ; [\"Offset of field: ieee_802_3_mac_interface::tx_bandwidth_available\"] [:: std :: mem :: offset_of ! (ieee_802_3_mac_interface , tx_bandwidth_available) - 8usize] ; [\"Offset of field: ieee_802_3_mac_interface::link_status_changed\"] [:: std :: mem :: offset_of ! (ieee_802_3_mac_interface , link_status_changed) - 16usize] ; } ; pub type ieee_802_3_mac_v3_interface_t = ieee_802_3_mac_v3_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct ieee_802_3_mac_v3_interface { pub receive_frame : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , phy : :: std :: os :: raw :: c_int , frame : * const frags_t , crc_ok : :: std :: os :: raw :: c_int) > , pub tx_bandwidth_available : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , phy : :: std :: os :: raw :: c_int) > , pub link_status_changed : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , phy : :: std :: os :: raw :: c_int , status : ieee_802_3_link_status_t) > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of ieee_802_3_mac_v3_interface\"] [:: std :: mem :: size_of :: < ieee_802_3_mac_v3_interface > () - 24usize] ; [\"Alignment of ieee_802_3_mac_v3_interface\"] [:: std :: mem :: align_of :: < ieee_802_3_mac_v3_interface > () - 8usize] ; [\"Offset of field: ieee_802_3_mac_v3_interface::receive_frame\"] [:: std :: mem :: offset_of ! (ieee_802_3_mac_v3_interface , receive_frame) - 0usize] ; [\"Offset of field: ieee_802_3_mac_v3_interface::tx_bandwidth_available\"] [:: std :: mem :: offset_of ! (ieee_802_3_mac_v3_interface , tx_bandwidth_available) - 8usize] ; [\"Offset of field: ieee_802_3_mac_v3_interface::link_status_changed\"] [:: std :: mem :: offset_of ! (ieee_802_3_mac_v3_interface , link_status_changed) - 16usize] ; } ; pub type nand_flash_interface_t = nand_flash_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct nand_flash_interface { pub read_access : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t) -> uint16 > , pub write_access : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , value : uint16) > , pub set_command_latch_enable : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , value : :: std :: os :: raw :: c_int) > , pub set_address_latch_enable : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , value : :: std :: os :: raw :: c_int) > , pub set_write_protect : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , value : :: std :: os :: raw :: c_int) > , pub set_spare_area_enable : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , value : :: std :: os :: raw :: c_int) > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of nand_flash_interface\"] [:: std :: mem :: size_of :: < nand_flash_interface > () - 48usize] ; [\"Alignment of nand_flash_interface\"] [:: std :: mem :: align_of :: < nand_flash_interface > () - 8usize] ; [\"Offset of field: nand_flash_interface::read_access\"] [:: std :: mem :: offset_of ! (nand_flash_interface , read_access) - 0usize] ; [\"Offset of field: nand_flash_interface::write_access\"] [:: std :: mem :: offset_of ! (nand_flash_interface , write_access) - 8usize] ; [\"Offset of field: nand_flash_interface::set_command_latch_enable\"] [:: std :: mem :: offset_of ! (nand_flash_interface , set_command_latch_enable) - 16usize] ; [\"Offset of field: nand_flash_interface::set_address_latch_enable\"] [:: std :: mem :: offset_of ! (nand_flash_interface , set_address_latch_enable) - 24usize] ; [\"Offset of field: nand_flash_interface::set_write_protect\"] [:: std :: mem :: offset_of ! (nand_flash_interface , set_write_protect) - 32usize] ; [\"Offset of field: nand_flash_interface::set_spare_area_enable\"] [:: std :: mem :: offset_of ! (nand_flash_interface , set_spare_area_enable) - 40usize] ; } ; # [repr (u32)] # [doc = \" <add id=\\\"i3c_master_interface_t\\\">\\n<insert-until text=\\\"// ADD INTERFACE i3c_master_interface\\\"/>\\n\\nThe interfaces <iface>i3c_master</iface> <iface>i3c_slave</iface>\\nand <iface>i3c_daa_snoop</iface> are used together to model\\ncommunication over an I3C bus.\\nThere are four kinds of devices roles on the I3C bus: Main Master,\\nSecondary Master, Slave and Legacy I2C Slave. Exactly one device\\nmust be the Main Master; this is typically configured statically.\\nMain Master should implement the <iface>i3c_master</iface> interface,\\nwhile slave should implement the <iface>i3c_slave</iface> interface.\\nSecondary Master should implement both.\\nMost calls to a method in the slave device interfaces expect a response\\ncall to a method in the master device interfaces. One exception is the\\nmethod <fun>sdr_write</fun> in the <fun>i3c_slave</fun> interface, master\\nexpects no response when calling it.\\nIt is up to each device to find the caller\'s interfaces; usually it is\\nconfigured with attributes in both the master and slave device.\\n\\nTwo I3C devices can communicate directly if one implements the\\n<iface>i3c_master</iface> interface and the other one implements the\\n<iface>i3c_slave</iface> interface. An I3C bus with multiple masters\\nor slaves is typically modelled using an <class>i3c-link</class> object,\\nwhere each device is connected to an endpoint object.\\n\\nAn I3C bus consists of a number of <em>master</em> devices and a number\\nof <em>slave</em> devices. Each I3C slave device listens to one or more\\n<em>7-bit addresses</em>. The slave devices can be I3C slave devices or\\nLegacy I2C slave devices. This is because I3C protocol is compatible with\\nI2C protocol, so that I3C master device can communicate with I2C slave\\ndevices.\\nFor legacy I2C slave device, the address it listens to is\\npre-configured by the device, i.e. static address. For I3C slave device,\\nthe address it listens to can be either static address or dynamic address.\\nThe dynamic address is assigned by master during Dynamic Address Assignment\\nprocess. It is an error to connect two slave devices to the same\\nbus if they listen to the same address.\\nIn a communication, the Current Master refers to the device who now drives\\nthe bus. It can be Main Master, or Secondary Master.\\nUsually, communication over the bus is initiated by the Current Master,\\nwhich can communicate with one or more slave devices at a time.\\nA slave device can request to initiate an communication, i.e., issue\\nan ibi_request, in three cases:\\nHot-Join, In-Band Interrupt and as a Secondary Master other than the\\nCurrent Master requesting to become Current Master.\\nOnly one device on a bus can communicate at a time.\\n\\nThe <fun>start</fun> method starts a transfer. The <param>address</param>\\nparameter is the address header combined with read/write bit encoded as an\\n8-bit number. The least significant bit is the read/write bit and the other\\nbits is the 7-bit address header.\\nIf the <fun>start</fun> method is called from master, the address header\\ncan be address pattern 0x7E for broadcast, or specific slave address (either\\nI2C slave static address or I3C slave dynamic address).\\n\\nIn I3C bus or link implementation, every start request will broadcast to\\nall other devices. So does the stop request. This will monitor bus/link\\nstatus to all devices.\\n\\nNormally, master starts a transfer, then the slave responds to\\n<fun>start</fun> using the <fun>acknowledge</fun> method (implemented by\\nmaster side interface). The <param>ack</param> parameter may be\\n<const>I3C_ack</const> or <const>I3C_noack</const> if the start is acked or\\nnoacked, respectively.\\n\\nThere are five types of different start requests:\\n<dl><dt>I3C master read transaction</dt>\\n<dd>If a master\'s start with specific slave address was acked by other\\ndevice, and read/write bit in the <param>address</param> parameter of\\nthe <fun>start</fun> method was 1, then master proceeds with a sequence\\nof <fun>read</fun> calls. Each call is followed by a <fun>read_response</fun>\\ncall from the slave. Parameter <param>data</param> in the method\\n<fun>read_response</fun> is the data transferred. The procedure is no\\ndifference with regard to read from I3C slave or read from I2C slave.\\nIn hardware, the ACK/T bit is handled differently for i2c and i3c, and\\nthe master is supposed to know whether the slave is an i2c or i3c device.\\nIn the i3c case, the slave is supposed to pass the T bit in the\\n<param>more</param> argument of <fun>read_response</fun>, while an i2c\\ndevice always passes <param>more</param> as true. Further more, in the\\ni2c case, a master sends an ACK bit, which is not represented explicitly\\nin the interface. The value of this bit can be deduced from whether the\\nfollowing operation is START/STOP or READ. For i3c case, parameter\\n<param>more</param> in method <fun>read_response</fun> indicates if\\nthere are still data waiting to be transferred from slave to master.\\n<param>more</param> is true when there are still data left, false otherwise.\\n</dd>\\n\\n<dt>I3C master write transaction (write to I3C slave)</dt>\\n<dd>If a master\'s start with specific slave address was acked by other\\ndevice, and the read/write bit in the <param>address</param> parameter\\nof <fun>start</fun> method was 0, the master proceeds with a\\n<fun>sdr_write</fun> call, no response is expected. Parameter\\n<param>data</param> in method <fun>write</fun> is the data transferred.\\nThe parity bit is not passed explicitly in sdr_write, and that the slave\\ncan assume the parity bit is correctly set.\\n</dd>\\n\\n<dt>I3C master write transaction (write to I2C slave)</dt>\\n<dd>When the master\'s start request is to write to I2C slave, i.e.,\\nmaster issues a start request to I2C slave address with read/write bit\\nis 0, then master proceeds with a sequence of <fun>write</fun> calls,\\neach call expects a response call to a method <fun>acknowledge</fun>.\\nThis is quite similar to I2C write transaction.</dd>\\n\\n<dt>I3C broadcast transaction</dt>\\n<dd>When master starts a transfer with I3C Broadcast Address 0x7E which\\nis passed as address header, i.e., address 0xFC passed in the\\n<param>address</param> argument of method <fun>start</fun>, a typical\\nI3C message transfer is initiated.\\n\\nMultiple I3C slave devices may acknowledge the start request. The master\\nwill conceive a request as being acknowledged if it was acknowledged by\\nat least one of the slaves. Note that there will be a single\\n<fun>acknowledge</fun> call in the master; the link or bus handles\\naggregation of acks.\\n\\nMaster sends the I3C Commands (Common Command Code, CCC) using\\n<fun>sdr_write</fun> method after receiving ACK, showing to communicate\\nwith either all Slaves (Broadcast CCCs) or specific individual Slaves\\n(Direct CCCs). This operation expects no response, and master will proceed.\\n\\nIf Broadcast CCC sent previously, master calls <fun>sdr_write</fun> method\\nto transfer data to all slaves who acked the initial access.</dd>\\n\\n<dt>I3C direct transaction</dt>\\n<dd>After sending a Direct CCC, master continues with a repeated start\\nrequest along with one specific I3C slave address. The transaction goes\\non just like master is communicating with only one slave. After the\\ncommunication with one slave, master may be issue a repeated start request\\nto another slave. Further communication is routed only to the targeted\\nslave device.</dd>\\n</dl>\\n\\nAfter sending a number of reads or a number of writes, the master may\\nchoose to either call the <fun>stop</fun> method to issue a <em>stop\\ncondition</em> which terminates the transfer, or to call the <fun>start</fun>\\nmethod again to issue a <em>repeated start condition</em>. The repeated start\\ncondition works like a normal start condition.\\n\\nThe <fun>start</fun> method and <fun>read</fun> method in the slave\\ninterfaces are allowed to respond synchronously; i.e., the\\n<fun>acknowledge</fun> or <fun>read</fun> method may be called before the\\ncorresponding method in the slave interfaces has returned. A master that\\nneeds to connect directly to a slave device needs to take this into\\nconsideration; however, when communicating via an <class>i3c-link</class>\\nobject, the link guarantees that all responses are asynchronous.\\n\\nThe method <fun>daa_read</fun> and method <fun>daa_response</fun> are used\\nin Dynamic Address Assignment process.\\nMethod <fun>daa_read</fun> is called from master to signal a daa read request.\\nMethod <fun>daa_response</fun> is called from slave to send slave specific\\n8-bytes data (48-bit Unique ID, BCR, DCR) to master. The parameter\\n<param>id</param>, <param>bcr</param> and <param>dcr</param> in method\\n<fun>daa_response</fun> represent the slave specific daa data.\\nIf multiple slaves response daa data, the slave with the lowest data wins\\nand it will get the assigned address this time.\\nMaster calls method <fun>write</fun> in slave interfaces to send assigned\\ndynamic address to the slave who wins. This operation expects a response\\ncall to method <fun>acknowledge</fun> in master side. Parameter\\n<param>data</param> in method <fun>write</fun> stores the assigned address.\\n\\nMaster should implement the method <fun>stop</fun> in the interface\\n<iface>i3c_slave</iface> in case there is secondary master in the\\nconfiguration which may issue start request.\\n\\nSlave can request to start a communication through <fun>ibi_request</fun>.\\nThe request is sent to Current Master which drives the bus now.\\nIf the master chooses to continue the slave request, <fun>ibi_start</fun>\\nis called, this ibi start will broadcast to all devices in the configuration.\\nThen slave can send its address header with <fun>ibi_address</fun>\\nargument <arg>address</arg>. The address header can be 0x02 for Hot-Join,\\nor the address of the slave itself for IBI and secondary master with\\nread/write bit 1 and 0 respectively.\\nIf more than one slave issues <fun>ibi_address</fun>, arbitration occurs,\\nthe slave with lowest address header wins and the winning address will be\\ndelivered to master by link or bus.\\nAt that time, master issues <fun>ibi_acknowledge</fun> to the slave who wins.\\nOther slaves which do not receive <fun>ibi_acknowledge</fun> will consume it\\nlost arbitration already.\\n\\n</add>\\n<add id=\\\"i3c_master_interface_exec_context\\\">\\nCell Context for all methods.\\n</add>\"] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub enum i3c_ack_t { I3C_ack = 0 , I3C_noack = 1 , } pub type i3c_master_interface_t = i3c_master_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct i3c_master_interface { pub acknowledge : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , ack : i3c_ack_t) > , pub read_response : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , value : uint8 , more : bool) > , pub daa_response : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , id : uint64 , bcr : uint8 , dcr : uint8) > , pub ibi_request : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t) > , pub ibi_address : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , address : uint8) > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of i3c_master_interface\"] [:: std :: mem :: size_of :: < i3c_master_interface > () - 40usize] ; [\"Alignment of i3c_master_interface\"] [:: std :: mem :: align_of :: < i3c_master_interface > () - 8usize] ; [\"Offset of field: i3c_master_interface::acknowledge\"] [:: std :: mem :: offset_of ! (i3c_master_interface , acknowledge) - 0usize] ; [\"Offset of field: i3c_master_interface::read_response\"] [:: std :: mem :: offset_of ! (i3c_master_interface , read_response) - 8usize] ; [\"Offset of field: i3c_master_interface::daa_response\"] [:: std :: mem :: offset_of ! (i3c_master_interface , daa_response) - 16usize] ; [\"Offset of field: i3c_master_interface::ibi_request\"] [:: std :: mem :: offset_of ! (i3c_master_interface , ibi_request) - 24usize] ; [\"Offset of field: i3c_master_interface::ibi_address\"] [:: std :: mem :: offset_of ! (i3c_master_interface , ibi_address) - 32usize] ; } ; pub type i3c_slave_interface_t = i3c_slave_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct i3c_slave_interface { pub start : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , address : uint8) > , pub write : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , value : uint8) > , pub sdr_write : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , data : bytes_t) > , pub read : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t) > , pub daa_read : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t) > , pub stop : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t) > , pub ibi_start : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t) > , pub ibi_acknowledge : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , ack : i3c_ack_t) > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of i3c_slave_interface\"] [:: std :: mem :: size_of :: < i3c_slave_interface > () - 64usize] ; [\"Alignment of i3c_slave_interface\"] [:: std :: mem :: align_of :: < i3c_slave_interface > () - 8usize] ; [\"Offset of field: i3c_slave_interface::start\"] [:: std :: mem :: offset_of ! (i3c_slave_interface , start) - 0usize] ; [\"Offset of field: i3c_slave_interface::write\"] [:: std :: mem :: offset_of ! (i3c_slave_interface , write) - 8usize] ; [\"Offset of field: i3c_slave_interface::sdr_write\"] [:: std :: mem :: offset_of ! (i3c_slave_interface , sdr_write) - 16usize] ; [\"Offset of field: i3c_slave_interface::read\"] [:: std :: mem :: offset_of ! (i3c_slave_interface , read) - 24usize] ; [\"Offset of field: i3c_slave_interface::daa_read\"] [:: std :: mem :: offset_of ! (i3c_slave_interface , daa_read) - 32usize] ; [\"Offset of field: i3c_slave_interface::stop\"] [:: std :: mem :: offset_of ! (i3c_slave_interface , stop) - 40usize] ; [\"Offset of field: i3c_slave_interface::ibi_start\"] [:: std :: mem :: offset_of ! (i3c_slave_interface , ibi_start) - 48usize] ; [\"Offset of field: i3c_slave_interface::ibi_acknowledge\"] [:: std :: mem :: offset_of ! (i3c_slave_interface , ibi_acknowledge) - 56usize] ; } ; pub type i3c_daa_snoop_interface_t = i3c_daa_snoop_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct i3c_daa_snoop_interface { pub assigned_address : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , id : uint64 , bcr : uint8 , dcr : uint8 , address : uint8) > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of i3c_daa_snoop_interface\"] [:: std :: mem :: size_of :: < i3c_daa_snoop_interface > () - 8usize] ; [\"Alignment of i3c_daa_snoop_interface\"] [:: std :: mem :: align_of :: < i3c_daa_snoop_interface > () - 8usize] ; [\"Offset of field: i3c_daa_snoop_interface::assigned_address\"] [:: std :: mem :: offset_of ! (i3c_daa_snoop_interface , assigned_address) - 0usize] ; } ; pub type microwire_interface_t = microwire_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct microwire_interface { pub set_cs : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , cs : :: std :: os :: raw :: c_int) > , pub set_sk : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , sk : :: std :: os :: raw :: c_int) > , pub set_di : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , di : :: std :: os :: raw :: c_int) > , pub get_do : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t) -> :: std :: os :: raw :: c_int > , pub read_word : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , offset : :: std :: os :: raw :: c_int) -> uint16 > , pub write_word : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , offset : :: std :: os :: raw :: c_int , value : uint16) > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of microwire_interface\"] [:: std :: mem :: size_of :: < microwire_interface > () - 48usize] ; [\"Alignment of microwire_interface\"] [:: std :: mem :: align_of :: < microwire_interface > () - 8usize] ; [\"Offset of field: microwire_interface::set_cs\"] [:: std :: mem :: offset_of ! (microwire_interface , set_cs) - 0usize] ; [\"Offset of field: microwire_interface::set_sk\"] [:: std :: mem :: offset_of ! (microwire_interface , set_sk) - 8usize] ; [\"Offset of field: microwire_interface::set_di\"] [:: std :: mem :: offset_of ! (microwire_interface , set_di) - 16usize] ; [\"Offset of field: microwire_interface::get_do\"] [:: std :: mem :: offset_of ! (microwire_interface , get_do) - 24usize] ; [\"Offset of field: microwire_interface::read_word\"] [:: std :: mem :: offset_of ! (microwire_interface , read_word) - 32usize] ; [\"Offset of field: microwire_interface::write_word\"] [:: std :: mem :: offset_of ! (microwire_interface , write_word) - 40usize] ; } ; # [doc = \" <add id=\\\"x86_cstate_interface_t\\\">\\n\\nThe methods in this interface can be used to read or change the current\\npower state the CPU is in. A state value of 0 corresponds to C0, a value of\\n1 corresponds to C1, etc. HLT will be reported as state 1, substate 0.\\nMWAIT will reported based upon the eax hint, decoded as state = (eax[7:4] +\\n1) mod 16, substate = eax[3:0].\\n\\n<fun>set_cstate</fun> will perform side-effects such as putting the\\nprocessor to sleep or waking it up, and call the registered cstate\\nlisteners.\\n\\n<insert-until text=\\\"// ADD INTERFACE x86_cstate_interface\\\"/>\\n\\n</add>\\n<add id=\\\"x86_cstate_interface_exec_context\\\">\\nCell Context for all methods.\\n</add>\"] # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct x86_cstate_t { pub state : uint32 , pub sub_state : uint32 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of x86_cstate_t\"] [:: std :: mem :: size_of :: < x86_cstate_t > () - 8usize] ; [\"Alignment of x86_cstate_t\"] [:: std :: mem :: align_of :: < x86_cstate_t > () - 4usize] ; [\"Offset of field: x86_cstate_t::state\"] [:: std :: mem :: offset_of ! (x86_cstate_t , state) - 0usize] ; [\"Offset of field: x86_cstate_t::sub_state\"] [:: std :: mem :: offset_of ! (x86_cstate_t , sub_state) - 4usize] ; } ; pub type x86_cstate_interface_t = x86_cstate_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct x86_cstate_interface { pub get_cstate : :: std :: option :: Option < unsafe extern \"C\" fn (cpu_obj : * mut conf_object_t) -> x86_cstate_t > , pub set_cstate : :: std :: option :: Option < unsafe extern \"C\" fn (cpu_obj : * mut conf_object_t , state : uint32 , sub_state : uint32) > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of x86_cstate_interface\"] [:: std :: mem :: size_of :: < x86_cstate_interface > () - 16usize] ; [\"Alignment of x86_cstate_interface\"] [:: std :: mem :: align_of :: < x86_cstate_interface > () - 8usize] ; [\"Offset of field: x86_cstate_interface::get_cstate\"] [:: std :: mem :: offset_of ! (x86_cstate_interface , get_cstate) - 0usize] ; [\"Offset of field: x86_cstate_interface::set_cstate\"] [:: std :: mem :: offset_of ! (x86_cstate_interface , set_cstate) - 8usize] ; } ; pub type x86_pkg_cstate_interface_t = x86_pkg_cstate_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct x86_pkg_cstate_interface { pub get_pkg_cstate : :: std :: option :: Option < unsafe extern \"C\" fn (cpu_obj : * mut conf_object_t) -> x86_cstate_t > , pub set_pkg_cstate : :: std :: option :: Option < unsafe extern \"C\" fn (cpu_obj : * mut conf_object_t , state : uint32 , sub_state : uint32) > , pub pkg_cstate_update : :: std :: option :: Option < unsafe extern \"C\" fn (cpu_obj : * mut conf_object_t , notify : bool) > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of x86_pkg_cstate_interface\"] [:: std :: mem :: size_of :: < x86_pkg_cstate_interface > () - 24usize] ; [\"Alignment of x86_pkg_cstate_interface\"] [:: std :: mem :: align_of :: < x86_pkg_cstate_interface > () - 8usize] ; [\"Offset of field: x86_pkg_cstate_interface::get_pkg_cstate\"] [:: std :: mem :: offset_of ! (x86_pkg_cstate_interface , get_pkg_cstate) - 0usize] ; [\"Offset of field: x86_pkg_cstate_interface::set_pkg_cstate\"] [:: std :: mem :: offset_of ! (x86_pkg_cstate_interface , set_pkg_cstate) - 8usize] ; [\"Offset of field: x86_pkg_cstate_interface::pkg_cstate_update\"] [:: std :: mem :: offset_of ! (x86_pkg_cstate_interface , pkg_cstate_update) - 16usize] ; } ; pub type x86_cstate_notification_interface_t = x86_cstate_notification_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct x86_cstate_notification_interface { pub notification : :: std :: option :: Option < unsafe extern \"C\" fn (listener : * mut conf_object_t , cpu : * mut conf_object_t , state : uint32 , sub_state : uint32) > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of x86_cstate_notification_interface\"] [:: std :: mem :: size_of :: < x86_cstate_notification_interface > () - 8usize] ; [\"Alignment of x86_cstate_notification_interface\"] [:: std :: mem :: align_of :: < x86_cstate_notification_interface > () - 8usize] ; [\"Offset of field: x86_cstate_notification_interface::notification\"] [:: std :: mem :: offset_of ! (x86_cstate_notification_interface , notification) - 0usize] ; } ; # [repr (u32)] # [doc = \" <add id=\\\"eth_probe_side_t\\\">\\n<insert-until text=\\\"// END eth_probe_side_t\\\"/>\\n</add>\"] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub enum eth_probe_side_t { Eth_Probe_Port_A = 0 , Eth_Probe_Port_B = 1 , } # [doc = \" <add id=\\\"ethernet_probe_snoop_t\\\">\\n<insert-until text=\\\"// END ethernet_probe_snoop_t\\\"/>\\n</add>\"] pub type ethernet_probe_snoop_t = :: std :: option :: Option < unsafe extern \"C\" fn (user_data : * mut lang_void , probe : * mut conf_object_t , to_side : eth_probe_side_t , frame : * const frags_t , crc_status : eth_frame_crc_status_t) > ; pub type ethernet_probe_interface_t = ethernet_probe_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct ethernet_probe_interface { pub attach_snooper : :: std :: option :: Option < unsafe extern \"C\" fn (probe : * mut conf_object_t , snoop_fun : ethernet_probe_snoop_t , user_data : * mut lang_void) > , pub attach_probe : :: std :: option :: Option < unsafe extern \"C\" fn (probe : * mut conf_object_t , snoop_fun : ethernet_probe_snoop_t , user_data : * mut lang_void) > , pub detach : :: std :: option :: Option < unsafe extern \"C\" fn (probe : * mut conf_object_t) > , pub send_frame : :: std :: option :: Option < unsafe extern \"C\" fn (probe : * mut conf_object_t , to_side : eth_probe_side_t , frame : * const frags_t , crc_status : eth_frame_crc_status_t) > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of ethernet_probe_interface\"] [:: std :: mem :: size_of :: < ethernet_probe_interface > () - 32usize] ; [\"Alignment of ethernet_probe_interface\"] [:: std :: mem :: align_of :: < ethernet_probe_interface > () - 8usize] ; [\"Offset of field: ethernet_probe_interface::attach_snooper\"] [:: std :: mem :: offset_of ! (ethernet_probe_interface , attach_snooper) - 0usize] ; [\"Offset of field: ethernet_probe_interface::attach_probe\"] [:: std :: mem :: offset_of ! (ethernet_probe_interface , attach_probe) - 8usize] ; [\"Offset of field: ethernet_probe_interface::detach\"] [:: std :: mem :: offset_of ! (ethernet_probe_interface , detach) - 16usize] ; [\"Offset of field: ethernet_probe_interface::send_frame\"] [:: std :: mem :: offset_of ! (ethernet_probe_interface , send_frame) - 24usize] ; } ; pub type datagram_link_interface_t = datagram_link_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct datagram_link_interface { # [doc = \" Transmit a message to the object.\"] pub receive : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , msg : bytes_t) > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of datagram_link_interface\"] [:: std :: mem :: size_of :: < datagram_link_interface > () - 8usize] ; [\"Alignment of datagram_link_interface\"] [:: std :: mem :: align_of :: < datagram_link_interface > () - 8usize] ; [\"Offset of field: datagram_link_interface::receive\"] [:: std :: mem :: offset_of ! (datagram_link_interface , receive) - 0usize] ; } ; pub type hpi_interface_t = hpi_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct hpi_interface { # [doc = \" HCNTL = 0\"] pub read_hpic : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t) -> uint32 > , pub write_hpic : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , value : uint32) > , # [doc = \" HCNTL = 1\"] pub read_hpia : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t) -> uint32 > , pub write_hpia : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , value : uint32) > , # [doc = \" HCNTL = 1 (autoincrement == 0) */\\n/* HCNTL = 2 (autoincrement == 1)\"] pub read_hpid : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , autoincrement : :: std :: os :: raw :: c_int) -> uint32 > , pub write_hpid : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , value : uint32 , autoincrement : :: std :: os :: raw :: c_int) > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of hpi_interface\"] [:: std :: mem :: size_of :: < hpi_interface > () - 48usize] ; [\"Alignment of hpi_interface\"] [:: std :: mem :: align_of :: < hpi_interface > () - 8usize] ; [\"Offset of field: hpi_interface::read_hpic\"] [:: std :: mem :: offset_of ! (hpi_interface , read_hpic) - 0usize] ; [\"Offset of field: hpi_interface::write_hpic\"] [:: std :: mem :: offset_of ! (hpi_interface , write_hpic) - 8usize] ; [\"Offset of field: hpi_interface::read_hpia\"] [:: std :: mem :: offset_of ! (hpi_interface , read_hpia) - 16usize] ; [\"Offset of field: hpi_interface::write_hpia\"] [:: std :: mem :: offset_of ! (hpi_interface , write_hpia) - 24usize] ; [\"Offset of field: hpi_interface::read_hpid\"] [:: std :: mem :: offset_of ! (hpi_interface , read_hpid) - 32usize] ; [\"Offset of field: hpi_interface::write_hpid\"] [:: std :: mem :: offset_of ! (hpi_interface , write_hpid) - 40usize] ; } ; pub type mii_management_interface_t = mii_management_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct mii_management_interface { pub serial_access : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , data_in : :: std :: os :: raw :: c_int , clock : :: std :: os :: raw :: c_int) -> :: std :: os :: raw :: c_int > , pub read_register : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , phy : :: std :: os :: raw :: c_int , reg : :: std :: os :: raw :: c_int) -> uint16 > , pub write_register : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , phy : :: std :: os :: raw :: c_int , reg : :: std :: os :: raw :: c_int , value : uint16) > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of mii_management_interface\"] [:: std :: mem :: size_of :: < mii_management_interface > () - 24usize] ; [\"Alignment of mii_management_interface\"] [:: std :: mem :: align_of :: < mii_management_interface > () - 8usize] ; [\"Offset of field: mii_management_interface::serial_access\"] [:: std :: mem :: offset_of ! (mii_management_interface , serial_access) - 0usize] ; [\"Offset of field: mii_management_interface::read_register\"] [:: std :: mem :: offset_of ! (mii_management_interface , read_register) - 8usize] ; [\"Offset of field: mii_management_interface::write_register\"] [:: std :: mem :: offset_of ! (mii_management_interface , write_register) - 16usize] ; } ; pub type mii_interface_t = mii_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct mii_interface { pub serial_access : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , data_in : :: std :: os :: raw :: c_int , clock : :: std :: os :: raw :: c_int) -> :: std :: os :: raw :: c_int > , pub read_register : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , index : :: std :: os :: raw :: c_int) -> uint16 > , pub write_register : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , index : :: std :: os :: raw :: c_int , value : uint16) > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of mii_interface\"] [:: std :: mem :: size_of :: < mii_interface > () - 24usize] ; [\"Alignment of mii_interface\"] [:: std :: mem :: align_of :: < mii_interface > () - 8usize] ; [\"Offset of field: mii_interface::serial_access\"] [:: std :: mem :: offset_of ! (mii_interface , serial_access) - 0usize] ; [\"Offset of field: mii_interface::read_register\"] [:: std :: mem :: offset_of ! (mii_interface , read_register) - 8usize] ; [\"Offset of field: mii_interface::write_register\"] [:: std :: mem :: offset_of ! (mii_interface , write_register) - 16usize] ; } ; pub type mdio45_bus_interface_t = mdio45_bus_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct mdio45_bus_interface { pub read_register : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , phy : :: std :: os :: raw :: c_int , mmd : :: std :: os :: raw :: c_int , reg : :: std :: os :: raw :: c_int) -> uint16 > , pub write_register : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , phy : :: std :: os :: raw :: c_int , mdd : :: std :: os :: raw :: c_int , reg : :: std :: os :: raw :: c_int , value : uint16) > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of mdio45_bus_interface\"] [:: std :: mem :: size_of :: < mdio45_bus_interface > () - 16usize] ; [\"Alignment of mdio45_bus_interface\"] [:: std :: mem :: align_of :: < mdio45_bus_interface > () - 8usize] ; [\"Offset of field: mdio45_bus_interface::read_register\"] [:: std :: mem :: offset_of ! (mdio45_bus_interface , read_register) - 0usize] ; [\"Offset of field: mdio45_bus_interface::write_register\"] [:: std :: mem :: offset_of ! (mdio45_bus_interface , write_register) - 8usize] ; } ; pub type mdio45_phy_interface_t = mdio45_phy_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct mdio45_phy_interface { pub read_register : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , mmd : :: std :: os :: raw :: c_int , reg : :: std :: os :: raw :: c_int) -> uint16 > , pub write_register : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , mmd : :: std :: os :: raw :: c_int , reg : :: std :: os :: raw :: c_int , value : uint16) > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of mdio45_phy_interface\"] [:: std :: mem :: size_of :: < mdio45_phy_interface > () - 16usize] ; [\"Alignment of mdio45_phy_interface\"] [:: std :: mem :: align_of :: < mdio45_phy_interface > () - 8usize] ; [\"Offset of field: mdio45_phy_interface::read_register\"] [:: std :: mem :: offset_of ! (mdio45_phy_interface , read_register) - 0usize] ; [\"Offset of field: mdio45_phy_interface::write_register\"] [:: std :: mem :: offset_of ! (mdio45_phy_interface , write_register) - 8usize] ; } ; pub type vectored_interrupt_interface_t = vectored_interrupt_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct vectored_interrupt_interface { pub set_level : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , source : * mut conf_object_t , level : :: std :: os :: raw :: c_int) > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of vectored_interrupt_interface\"] [:: std :: mem :: size_of :: < vectored_interrupt_interface > () - 8usize] ; [\"Alignment of vectored_interrupt_interface\"] [:: std :: mem :: align_of :: < vectored_interrupt_interface > () - 8usize] ; [\"Offset of field: vectored_interrupt_interface::set_level\"] [:: std :: mem :: offset_of ! (vectored_interrupt_interface , set_level) - 0usize] ; } ; pub type vectored_interrupt_source_interface_t = vectored_interrupt_source_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct vectored_interrupt_source_interface { pub acknowledge : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , target : * mut conf_object_t , level : :: std :: os :: raw :: c_int) -> :: std :: os :: raw :: c_int > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of vectored_interrupt_source_interface\"] [:: std :: mem :: size_of :: < vectored_interrupt_source_interface > () - 8usize] ; [\"Alignment of vectored_interrupt_source_interface\"] [:: std :: mem :: align_of :: < vectored_interrupt_source_interface > () - 8usize] ; [\"Offset of field: vectored_interrupt_source_interface::acknowledge\"] [:: std :: mem :: offset_of ! (vectored_interrupt_source_interface , acknowledge) - 0usize] ; } ; # [repr (u32)] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub enum interrupt_source_t { Interrupt_Source_Icr_Ipr = 0 , Interrupt_Source_Msi = 1 , Interrupt_Source_Virtual_Wire = 2 , Interrupt_Source_Nmi_Pin = 3 , Interrupt_Source_Lvt = 4 , Interrupt_Source_Iommu = 5 , Interrupt_Source_Int2 = 6 , Interrupt_Source_Vmcs_Injection = 7 , Interrupt_Source_Legacy_Apic_Vector = 8 , Interrupt_Source_Self_Ipi = 9 , Interrupt_Source_Unknown = 10 , } pub type interrupt_subscriber_interface_t = interrupt_subscriber_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct interrupt_subscriber_interface { pub notify : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , delivery_mode : apic_delivery_mode_t , level_assert : bool , trigger_mode : apic_trigger_mode_t , vector : uint8 , source : interrupt_source_t) > , pub reset : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t) > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of interrupt_subscriber_interface\"] [:: std :: mem :: size_of :: < interrupt_subscriber_interface > () - 16usize] ; [\"Alignment of interrupt_subscriber_interface\"] [:: std :: mem :: align_of :: < interrupt_subscriber_interface > () - 8usize] ; [\"Offset of field: interrupt_subscriber_interface::notify\"] [:: std :: mem :: offset_of ! (interrupt_subscriber_interface , notify) - 0usize] ; [\"Offset of field: interrupt_subscriber_interface::reset\"] [:: std :: mem :: offset_of ! (interrupt_subscriber_interface , reset) - 8usize] ; } ; pub type simple_interrupt_interface_t = simple_interrupt_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct simple_interrupt_interface { pub interrupt : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , value : :: std :: os :: raw :: c_int) > , pub interrupt_clear : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , value : :: std :: os :: raw :: c_int) > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of simple_interrupt_interface\"] [:: std :: mem :: size_of :: < simple_interrupt_interface > () - 16usize] ; [\"Alignment of simple_interrupt_interface\"] [:: std :: mem :: align_of :: < simple_interrupt_interface > () - 8usize] ; [\"Offset of field: simple_interrupt_interface::interrupt\"] [:: std :: mem :: offset_of ! (simple_interrupt_interface , interrupt) - 0usize] ; [\"Offset of field: simple_interrupt_interface::interrupt_clear\"] [:: std :: mem :: offset_of ! (simple_interrupt_interface , interrupt_clear) - 8usize] ; } ; # [doc = \"This interrupt_query interface is used by devices connected to interrupt\\ncontrollers to query whether their irq level is enabled in the interrupt\\ncontroller or not. This is done by the is_enabled function.\\n\\nIt can also be used to register a callback function to be called when the\\nirq is enabled or disabled through the register_callback function.\\n\\nThis is very old design, do not use in new models!\"] pub type interrupt_changed_state_callback_t = :: std :: option :: Option < unsafe extern \"C\" fn (interrupt_controller : * mut conf_object_t , device : * mut conf_object_t , irq_level : :: std :: os :: raw :: c_int , enabled : :: std :: os :: raw :: c_int , data : * mut :: std :: os :: raw :: c_void) > ; pub type interrupt_query_interface_t = interrupt_query_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct interrupt_query_interface { pub is_enabled : :: std :: option :: Option < unsafe extern \"C\" fn (interrupt_controller : * mut conf_object_t , irq_level : :: std :: os :: raw :: c_int) -> :: std :: os :: raw :: c_int > , pub register_callback : :: std :: option :: Option < unsafe extern \"C\" fn (interrupt_controller : * mut conf_object_t , device : * mut conf_object_t , irq_level : :: std :: os :: raw :: c_int , cb : interrupt_changed_state_callback_t , cb_data : * mut :: std :: os :: raw :: c_void) > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of interrupt_query_interface\"] [:: std :: mem :: size_of :: < interrupt_query_interface > () - 16usize] ; [\"Alignment of interrupt_query_interface\"] [:: std :: mem :: align_of :: < interrupt_query_interface > () - 8usize] ; [\"Offset of field: interrupt_query_interface::is_enabled\"] [:: std :: mem :: offset_of ! (interrupt_query_interface , is_enabled) - 0usize] ; [\"Offset of field: interrupt_query_interface::register_callback\"] [:: std :: mem :: offset_of ! (interrupt_query_interface , register_callback) - 8usize] ; } ; # [repr (u32)] # [doc = \" <add-type id=\\\"ms1553_phase_t def\\\">\\n</add-type>\"] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub enum ms1553_phase_t { MS1553_Phase_Idle = 0 , MS1553_Phase_T_Command = 1 , MS1553_Phase_R_Command = 2 , MS1553_Phase_M_T_Command = 3 , MS1553_Phase_M_R_Command = 4 , MS1553_Phase_M_N_Command = 5 , MS1553_Phase_Data = 6 , MS1553_Phase_Status = 7 , MS1553_Num_Phases = 8 , } # [repr (u32)] # [doc = \" <add-type id=\\\"ms1553_error_t def\\\">\\n</add-type>\"] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub enum ms1553_error_t { MS1553_Err_Manchester = 0 , MS1553_Err_Sync_Field = 1 , MS1553_Err_Word_Count = 2 , MS1553_Err_Parity = 3 , MS1553_Err_Protocol = 4 , } # [repr (u32)] # [doc = \" <add-type id=\\\"ms1553_mode_code_t def\\\">\\n</add-type>\"] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub enum ms1553_mode_code_t { MS1553_Dynamic_Bus_Control = 0 , MS1553_Synchronize_T = 1 , MS1553_Transmit_Status_word = 2 , MS1553_Initiate_Self_Test = 3 , MS1553_Transmitter_Shutdown = 4 , MS1553_Override_Transmitter_Shutdown = 5 , MS1553_Inhibit_Terminal_Flag_Bit = 6 , MS1553_Override_Inhibit_Terminal_Flag_Bit = 7 , MS1553_Reset_Remote_Terminal = 8 , MS1553_Transmit_Vector_Word = 16 , MS1553_Synchronize_R = 17 , MS1553_Transmit_Last_Command_Word = 18 , MS1553_Transmit_BIT_Vector = 19 , MS1553_Selected_Transmitter_Shutdown = 20 , MS1553_Override_Selected_Transmitter_Shutdown = 21 , } # [doc = \" <add-type id=\\\"ms1553_words_t def\\\">\\n</add-type>\"] # [repr (C)] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct ms1553_words_t { pub length : :: std :: os :: raw :: c_int , pub data : * const uint16 , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of ms1553_words_t\"] [:: std :: mem :: size_of :: < ms1553_words_t > () - 16usize] ; [\"Alignment of ms1553_words_t\"] [:: std :: mem :: align_of :: < ms1553_words_t > () - 8usize] ; [\"Offset of field: ms1553_words_t::length\"] [:: std :: mem :: offset_of ! (ms1553_words_t , length) - 0usize] ; [\"Offset of field: ms1553_words_t::data\"] [:: std :: mem :: offset_of ! (ms1553_words_t , data) - 8usize] ; } ; impl Default for ms1553_words_t { fn default () -> Self { let mut s = :: std :: mem :: MaybeUninit :: < Self > :: uninit () ; unsafe { :: std :: ptr :: write_bytes (s . as_mut_ptr () , 0 , 1) ; s . assume_init () } } } pub type ms1553_link_interface_t = ms1553_link_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct ms1553_link_interface { pub connect_terminal : :: std :: option :: Option < unsafe extern \"C\" fn (link : * mut conf_object_t , obj : * mut conf_object_t) -> :: std :: os :: raw :: c_int > , pub disconnect_terminal : :: std :: option :: Option < unsafe extern \"C\" fn (link : * mut conf_object_t , id : :: std :: os :: raw :: c_int) > , pub send_data : :: std :: option :: Option < unsafe extern \"C\" fn (link : * mut conf_object_t , id : :: std :: os :: raw :: c_int , phase : ms1553_phase_t , data : ms1553_words_t) > , pub set_terminal_address : :: std :: option :: Option < unsafe extern \"C\" fn (link : * mut conf_object_t , id : :: std :: os :: raw :: c_int , address : :: std :: os :: raw :: c_int) > , pub clr_terminal_address : :: std :: option :: Option < unsafe extern \"C\" fn (link : * mut conf_object_t , id : :: std :: os :: raw :: c_int) > , pub set_idle : :: std :: option :: Option < unsafe extern \"C\" fn (link : * mut conf_object_t , id : :: std :: os :: raw :: c_int) > , pub inject_data : :: std :: option :: Option < unsafe extern \"C\" fn (link : * mut conf_object_t , phase : ms1553_phase_t , data : ms1553_words_t) > , pub inject_error : :: std :: option :: Option < unsafe extern \"C\" fn (link : * mut conf_object_t , err : ms1553_error_t) > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of ms1553_link_interface\"] [:: std :: mem :: size_of :: < ms1553_link_interface > () - 64usize] ; [\"Alignment of ms1553_link_interface\"] [:: std :: mem :: align_of :: < ms1553_link_interface > () - 8usize] ; [\"Offset of field: ms1553_link_interface::connect_terminal\"] [:: std :: mem :: offset_of ! (ms1553_link_interface , connect_terminal) - 0usize] ; [\"Offset of field: ms1553_link_interface::disconnect_terminal\"] [:: std :: mem :: offset_of ! (ms1553_link_interface , disconnect_terminal) - 8usize] ; [\"Offset of field: ms1553_link_interface::send_data\"] [:: std :: mem :: offset_of ! (ms1553_link_interface , send_data) - 16usize] ; [\"Offset of field: ms1553_link_interface::set_terminal_address\"] [:: std :: mem :: offset_of ! (ms1553_link_interface , set_terminal_address) - 24usize] ; [\"Offset of field: ms1553_link_interface::clr_terminal_address\"] [:: std :: mem :: offset_of ! (ms1553_link_interface , clr_terminal_address) - 32usize] ; [\"Offset of field: ms1553_link_interface::set_idle\"] [:: std :: mem :: offset_of ! (ms1553_link_interface , set_idle) - 40usize] ; [\"Offset of field: ms1553_link_interface::inject_data\"] [:: std :: mem :: offset_of ! (ms1553_link_interface , inject_data) - 48usize] ; [\"Offset of field: ms1553_link_interface::inject_error\"] [:: std :: mem :: offset_of ! (ms1553_link_interface , inject_error) - 56usize] ; } ; pub type ms1553_terminal_interface_t = ms1553_terminal_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct ms1553_terminal_interface { pub receive_data : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , link : * mut conf_object_t , id : :: std :: os :: raw :: c_int , phase : ms1553_phase_t , data : ms1553_words_t) > , pub receive_error : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , link : * mut conf_object_t , id : :: std :: os :: raw :: c_int , err : ms1553_error_t) > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of ms1553_terminal_interface\"] [:: std :: mem :: size_of :: < ms1553_terminal_interface > () - 16usize] ; [\"Alignment of ms1553_terminal_interface\"] [:: std :: mem :: align_of :: < ms1553_terminal_interface > () - 8usize] ; [\"Offset of field: ms1553_terminal_interface::receive_data\"] [:: std :: mem :: offset_of ! (ms1553_terminal_interface , receive_data) - 0usize] ; [\"Offset of field: ms1553_terminal_interface::receive_error\"] [:: std :: mem :: offset_of ! (ms1553_terminal_interface , receive_error) - 8usize] ; } ; # [repr (u32)] # [doc = \" <add-type id=\\\"rapidio_operation_t def\\\"></add-type>\"] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub enum rapidio_operation_t { RapidIO_Read = 0 , RapidIO_Write = 1 , RapidIO_Increment = 2 , RapidIO_Decrement = 3 , RapidIO_Test_and_Swap = 4 , RapidIO_Set = 5 , RapidIO_Clear = 6 , RapidIO_Compare_and_Swap = 7 , RapidIO_Swap = 8 , } pub type rapidio_v3_interface_t = rapidio_v3_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct rapidio_v3_interface { pub memory_operation : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , destination : uint16 , source : uint16 , addr : physical_address_t , buf : * mut dbuffer_t , op : rapidio_operation_t) > , pub doorbell : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , destination : uint16 , source : uint16 , data : uint16) > , pub deliver_message : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , destination : uint16 , source : uint16 , mbox : uint16 , letter : uint16 , data : * mut dbuffer_t) > , pub read_register : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , destination : uint16 , source : uint16 , hopcount : uint8 , reg_no : :: std :: os :: raw :: c_int) -> uint32 > , pub write_register : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , destination : uint16 , source : uint16 , hopcount : uint8 , reg_no : :: std :: os :: raw :: c_int , value : uint32) > , pub port_write : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , target_id : uint16 , source_id : uint16 , hopcount : uint8 , msg : * mut dbuffer_t) > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of rapidio_v3_interface\"] [:: std :: mem :: size_of :: < rapidio_v3_interface > () - 48usize] ; [\"Alignment of rapidio_v3_interface\"] [:: std :: mem :: align_of :: < rapidio_v3_interface > () - 8usize] ; [\"Offset of field: rapidio_v3_interface::memory_operation\"] [:: std :: mem :: offset_of ! (rapidio_v3_interface , memory_operation) - 0usize] ; [\"Offset of field: rapidio_v3_interface::doorbell\"] [:: std :: mem :: offset_of ! (rapidio_v3_interface , doorbell) - 8usize] ; [\"Offset of field: rapidio_v3_interface::deliver_message\"] [:: std :: mem :: offset_of ! (rapidio_v3_interface , deliver_message) - 16usize] ; [\"Offset of field: rapidio_v3_interface::read_register\"] [:: std :: mem :: offset_of ! (rapidio_v3_interface , read_register) - 24usize] ; [\"Offset of field: rapidio_v3_interface::write_register\"] [:: std :: mem :: offset_of ! (rapidio_v3_interface , write_register) - 32usize] ; [\"Offset of field: rapidio_v3_interface::port_write\"] [:: std :: mem :: offset_of ! (rapidio_v3_interface , port_write) - 40usize] ; } ; pub type rapidio_v4_interface_t = rapidio_v4_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct rapidio_v4_interface { pub transaction_request : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , target_id : uint16 , source_id : uint16 , addr : uint64 , op : rapidio_operation_t , msg : bytes_t , id : uint64) > , pub transaction_response : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , msg : bytes_t , id : uint64) > , pub doorbell : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , target_id : uint16 , source_id : uint16 , val : uint16) > , pub deliver_message : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , target_id : uint16 , source_id : uint16 , mbox : uint16 , letter : uint16 , msg : bytes_t) > , pub read_register_request : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , target_id : uint16 , source_id : uint16 , hopcount : uint8 , reg_no : uint32 , id : uint64) > , pub read_register_response : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , val : uint32 , id : uint64) > , pub write_register : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , target_id : uint16 , source_id : uint16 , hopcount : uint8 , reg_no : uint32 , val : uint32) > , pub port_write : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , target_id : uint16 , source_id : uint16 , hopcount : uint8 , msg : bytes_t) > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of rapidio_v4_interface\"] [:: std :: mem :: size_of :: < rapidio_v4_interface > () - 64usize] ; [\"Alignment of rapidio_v4_interface\"] [:: std :: mem :: align_of :: < rapidio_v4_interface > () - 8usize] ; [\"Offset of field: rapidio_v4_interface::transaction_request\"] [:: std :: mem :: offset_of ! (rapidio_v4_interface , transaction_request) - 0usize] ; [\"Offset of field: rapidio_v4_interface::transaction_response\"] [:: std :: mem :: offset_of ! (rapidio_v4_interface , transaction_response) - 8usize] ; [\"Offset of field: rapidio_v4_interface::doorbell\"] [:: std :: mem :: offset_of ! (rapidio_v4_interface , doorbell) - 16usize] ; [\"Offset of field: rapidio_v4_interface::deliver_message\"] [:: std :: mem :: offset_of ! (rapidio_v4_interface , deliver_message) - 24usize] ; [\"Offset of field: rapidio_v4_interface::read_register_request\"] [:: std :: mem :: offset_of ! (rapidio_v4_interface , read_register_request) - 32usize] ; [\"Offset of field: rapidio_v4_interface::read_register_response\"] [:: std :: mem :: offset_of ! (rapidio_v4_interface , read_register_response) - 40usize] ; [\"Offset of field: rapidio_v4_interface::write_register\"] [:: std :: mem :: offset_of ! (rapidio_v4_interface , write_register) - 48usize] ; [\"Offset of field: rapidio_v4_interface::port_write\"] [:: std :: mem :: offset_of ! (rapidio_v4_interface , port_write) - 56usize] ; } ; pub type rapidio_v5_interface_t = rapidio_v5_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct rapidio_v5_interface { pub transaction_request : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , target_id : uint16 , source_id : uint16 , transport_class : uint32 , addr : uint64 , op : rapidio_operation_t , msg : bytes_t , id : uint64) > , pub transaction_response : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , msg : bytes_t , id : uint64) > , pub doorbell : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , target_id : uint16 , source_id : uint16 , transport_class : uint32 , val : uint16) > , pub deliver_message : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , target_id : uint16 , source_id : uint16 , transport_class : uint32 , mbox : uint16 , letter : uint16 , msg : bytes_t) > , pub read_register_request : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , target_id : uint16 , source_id : uint16 , transport_class : uint32 , hopcount : uint8 , reg_no : uint32 , id : uint64) > , pub read_register_response : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , val : uint32 , id : uint64) > , pub write_register : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , target_id : uint16 , source_id : uint16 , transport_class : uint32 , hopcount : uint8 , reg_no : uint32 , val : uint32) > , pub port_write : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , target_id : uint16 , source_id : uint16 , transport_class : uint32 , hopcount : uint8 , msg : bytes_t) > , pub stream_data : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , target_id : uint16 , source_id : uint16 , transport_class : uint32 , cos : uint8 , xh : uint8 , stream_id : uint16 , pdu : bytes_t) > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of rapidio_v5_interface\"] [:: std :: mem :: size_of :: < rapidio_v5_interface > () - 72usize] ; [\"Alignment of rapidio_v5_interface\"] [:: std :: mem :: align_of :: < rapidio_v5_interface > () - 8usize] ; [\"Offset of field: rapidio_v5_interface::transaction_request\"] [:: std :: mem :: offset_of ! (rapidio_v5_interface , transaction_request) - 0usize] ; [\"Offset of field: rapidio_v5_interface::transaction_response\"] [:: std :: mem :: offset_of ! (rapidio_v5_interface , transaction_response) - 8usize] ; [\"Offset of field: rapidio_v5_interface::doorbell\"] [:: std :: mem :: offset_of ! (rapidio_v5_interface , doorbell) - 16usize] ; [\"Offset of field: rapidio_v5_interface::deliver_message\"] [:: std :: mem :: offset_of ! (rapidio_v5_interface , deliver_message) - 24usize] ; [\"Offset of field: rapidio_v5_interface::read_register_request\"] [:: std :: mem :: offset_of ! (rapidio_v5_interface , read_register_request) - 32usize] ; [\"Offset of field: rapidio_v5_interface::read_register_response\"] [:: std :: mem :: offset_of ! (rapidio_v5_interface , read_register_response) - 40usize] ; [\"Offset of field: rapidio_v5_interface::write_register\"] [:: std :: mem :: offset_of ! (rapidio_v5_interface , write_register) - 48usize] ; [\"Offset of field: rapidio_v5_interface::port_write\"] [:: std :: mem :: offset_of ! (rapidio_v5_interface , port_write) - 56usize] ; [\"Offset of field: rapidio_v5_interface::stream_data\"] [:: std :: mem :: offset_of ! (rapidio_v5_interface , stream_data) - 64usize] ; } ; # [repr (u32)] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub enum i2c_device_state { I2C_idle = 0 , I2C_master_transmit = 1 , I2C_master_receive = 2 , I2C_slave_transmit = 3 , I2C_slave_receive = 4 , I2C_max_states = 5 , } pub use self :: i2c_device_state as i2c_device_state_t ; # [repr (u32)] # [doc = \" <add-type id=\\\"i2c_device_flag_t def\\\">\\n</add-type>\"] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub enum i2c_device_flag_t { I2C_flag_exclusive = 0 , I2C_flag_shared = 1 , } pub type i2c_bus_interface_t = i2c_bus_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct i2c_bus_interface { pub start : :: std :: option :: Option < unsafe extern \"C\" fn (i2c_bus : * mut conf_object_t , address : uint8) -> :: std :: os :: raw :: c_int > , pub stop : :: std :: option :: Option < unsafe extern \"C\" fn (i2c_bus : * mut conf_object_t) -> :: std :: os :: raw :: c_int > , pub read_data : :: std :: option :: Option < unsafe extern \"C\" fn (i2c_bus : * mut conf_object_t) -> uint8 > , pub write_data : :: std :: option :: Option < unsafe extern \"C\" fn (i2c_bus : * mut conf_object_t , value : uint8) > , pub register_device : :: std :: option :: Option < unsafe extern \"C\" fn (i2c_bus : * mut conf_object_t , device : * mut conf_object_t , address : uint8 , mask : uint8 , flags : i2c_device_flag_t) -> :: std :: os :: raw :: c_int > , pub unregister_device : :: std :: option :: Option < unsafe extern \"C\" fn (i2c_bus : * mut conf_object_t , device : * mut conf_object_t , address : uint8 , mask : uint8) > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of i2c_bus_interface\"] [:: std :: mem :: size_of :: < i2c_bus_interface > () - 48usize] ; [\"Alignment of i2c_bus_interface\"] [:: std :: mem :: align_of :: < i2c_bus_interface > () - 8usize] ; [\"Offset of field: i2c_bus_interface::start\"] [:: std :: mem :: offset_of ! (i2c_bus_interface , start) - 0usize] ; [\"Offset of field: i2c_bus_interface::stop\"] [:: std :: mem :: offset_of ! (i2c_bus_interface , stop) - 8usize] ; [\"Offset of field: i2c_bus_interface::read_data\"] [:: std :: mem :: offset_of ! (i2c_bus_interface , read_data) - 16usize] ; [\"Offset of field: i2c_bus_interface::write_data\"] [:: std :: mem :: offset_of ! (i2c_bus_interface , write_data) - 24usize] ; [\"Offset of field: i2c_bus_interface::register_device\"] [:: std :: mem :: offset_of ! (i2c_bus_interface , register_device) - 32usize] ; [\"Offset of field: i2c_bus_interface::unregister_device\"] [:: std :: mem :: offset_of ! (i2c_bus_interface , unregister_device) - 40usize] ; } ; pub type i2c_device_interface_t = i2c_device_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct i2c_device_interface { pub set_state : :: std :: option :: Option < unsafe extern \"C\" fn (device : * mut conf_object_t , state : i2c_device_state_t , address : uint8) -> :: std :: os :: raw :: c_int > , pub read_data : :: std :: option :: Option < unsafe extern \"C\" fn (device : * mut conf_object_t) -> uint8 > , pub write_data : :: std :: option :: Option < unsafe extern \"C\" fn (device : * mut conf_object_t , value : uint8) > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of i2c_device_interface\"] [:: std :: mem :: size_of :: < i2c_device_interface > () - 24usize] ; [\"Alignment of i2c_device_interface\"] [:: std :: mem :: align_of :: < i2c_device_interface > () - 8usize] ; [\"Offset of field: i2c_device_interface::set_state\"] [:: std :: mem :: offset_of ! (i2c_device_interface , set_state) - 0usize] ; [\"Offset of field: i2c_device_interface::read_data\"] [:: std :: mem :: offset_of ! (i2c_device_interface , read_data) - 8usize] ; [\"Offset of field: i2c_device_interface::write_data\"] [:: std :: mem :: offset_of ! (i2c_device_interface , write_data) - 16usize] ; } ; # [repr (u32)] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub enum i2c_status_t { # [doc = \" The ACK bit related to the operation was 0. This typically\\nmeans that the operation was successful\"] I2C_status_success = 0 , # [doc = \" The ACK bit related to the operation was 1. This typically\\nmeans that the operation was unsuccessful\"] I2C_status_noack = 1 , # [doc = \" The operation could not be carried out, because the link is\\ncurrently in use by another master\"] I2C_status_bus_busy = 2 , } pub type i2c_link_interface_t = i2c_link_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct i2c_link_interface { pub register_slave_address : :: std :: option :: Option < unsafe extern \"C\" fn (i2c_link : * mut conf_object_t , slave : * mut conf_object_t , address : uint32 , mask : uint32) > , pub unregister_slave_address : :: std :: option :: Option < unsafe extern \"C\" fn (i2c_link : * mut conf_object_t , slave : * mut conf_object_t , address : uint32 , mask : uint32) > , pub register_bridge : :: std :: option :: Option < unsafe extern \"C\" fn (i2c_link : * mut conf_object_t , bridge : * mut conf_object_t) > , pub disconnect_device : :: std :: option :: Option < unsafe extern \"C\" fn (i2c_link : * mut conf_object_t , device : * mut conf_object_t) > , pub start_request : :: std :: option :: Option < unsafe extern \"C\" fn (i2c_link : * mut conf_object_t , master : * mut conf_object_t , address : uint32) > , pub read_request : :: std :: option :: Option < unsafe extern \"C\" fn (i2c_link : * mut conf_object_t , master : * mut conf_object_t) > , pub ack_read_request : :: std :: option :: Option < unsafe extern \"C\" fn (i2c_link : * mut conf_object_t , master : * mut conf_object_t , ack : i2c_status_t) > , pub write_request : :: std :: option :: Option < unsafe extern \"C\" fn (i2c_link : * mut conf_object_t , master : * mut conf_object_t , value : uint8) > , pub read_response : :: std :: option :: Option < unsafe extern \"C\" fn (i2c_link : * mut conf_object_t , slave : * mut conf_object_t , value : uint8) > , pub ack_read_response : :: std :: option :: Option < unsafe extern \"C\" fn (i2c_link : * mut conf_object_t , slave : * mut conf_object_t) > , pub write_response : :: std :: option :: Option < unsafe extern \"C\" fn (i2c_link : * mut conf_object_t , slave : * mut conf_object_t , status : i2c_status_t) > , pub start_response : :: std :: option :: Option < unsafe extern \"C\" fn (i2c_link : * mut conf_object_t , slave : * mut conf_object_t , status : i2c_status_t) > , pub stop : :: std :: option :: Option < unsafe extern \"C\" fn (i2c_link : * mut conf_object_t , master : * mut conf_object_t) > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of i2c_link_interface\"] [:: std :: mem :: size_of :: < i2c_link_interface > () - 104usize] ; [\"Alignment of i2c_link_interface\"] [:: std :: mem :: align_of :: < i2c_link_interface > () - 8usize] ; [\"Offset of field: i2c_link_interface::register_slave_address\"] [:: std :: mem :: offset_of ! (i2c_link_interface , register_slave_address) - 0usize] ; [\"Offset of field: i2c_link_interface::unregister_slave_address\"] [:: std :: mem :: offset_of ! (i2c_link_interface , unregister_slave_address) - 8usize] ; [\"Offset of field: i2c_link_interface::register_bridge\"] [:: std :: mem :: offset_of ! (i2c_link_interface , register_bridge) - 16usize] ; [\"Offset of field: i2c_link_interface::disconnect_device\"] [:: std :: mem :: offset_of ! (i2c_link_interface , disconnect_device) - 24usize] ; [\"Offset of field: i2c_link_interface::start_request\"] [:: std :: mem :: offset_of ! (i2c_link_interface , start_request) - 32usize] ; [\"Offset of field: i2c_link_interface::read_request\"] [:: std :: mem :: offset_of ! (i2c_link_interface , read_request) - 40usize] ; [\"Offset of field: i2c_link_interface::ack_read_request\"] [:: std :: mem :: offset_of ! (i2c_link_interface , ack_read_request) - 48usize] ; [\"Offset of field: i2c_link_interface::write_request\"] [:: std :: mem :: offset_of ! (i2c_link_interface , write_request) - 56usize] ; [\"Offset of field: i2c_link_interface::read_response\"] [:: std :: mem :: offset_of ! (i2c_link_interface , read_response) - 64usize] ; [\"Offset of field: i2c_link_interface::ack_read_response\"] [:: std :: mem :: offset_of ! (i2c_link_interface , ack_read_response) - 72usize] ; [\"Offset of field: i2c_link_interface::write_response\"] [:: std :: mem :: offset_of ! (i2c_link_interface , write_response) - 80usize] ; [\"Offset of field: i2c_link_interface::start_response\"] [:: std :: mem :: offset_of ! (i2c_link_interface , start_response) - 88usize] ; [\"Offset of field: i2c_link_interface::stop\"] [:: std :: mem :: offset_of ! (i2c_link_interface , stop) - 96usize] ; } ; pub type i2c_slave_interface_t = i2c_slave_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct i2c_slave_interface { pub start_request : :: std :: option :: Option < unsafe extern \"C\" fn (device : * mut conf_object_t , address : uint32) > , pub read_request : :: std :: option :: Option < unsafe extern \"C\" fn (device : * mut conf_object_t) > , pub ack_read_request : :: std :: option :: Option < unsafe extern \"C\" fn (device : * mut conf_object_t , ack : i2c_status_t) > , pub write_request : :: std :: option :: Option < unsafe extern \"C\" fn (device : * mut conf_object_t , value : uint8) > , pub stop : :: std :: option :: Option < unsafe extern \"C\" fn (device : * mut conf_object_t , repeated_start : uint8) > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of i2c_slave_interface\"] [:: std :: mem :: size_of :: < i2c_slave_interface > () - 40usize] ; [\"Alignment of i2c_slave_interface\"] [:: std :: mem :: align_of :: < i2c_slave_interface > () - 8usize] ; [\"Offset of field: i2c_slave_interface::start_request\"] [:: std :: mem :: offset_of ! (i2c_slave_interface , start_request) - 0usize] ; [\"Offset of field: i2c_slave_interface::read_request\"] [:: std :: mem :: offset_of ! (i2c_slave_interface , read_request) - 8usize] ; [\"Offset of field: i2c_slave_interface::ack_read_request\"] [:: std :: mem :: offset_of ! (i2c_slave_interface , ack_read_request) - 16usize] ; [\"Offset of field: i2c_slave_interface::write_request\"] [:: std :: mem :: offset_of ! (i2c_slave_interface , write_request) - 24usize] ; [\"Offset of field: i2c_slave_interface::stop\"] [:: std :: mem :: offset_of ! (i2c_slave_interface , stop) - 32usize] ; } ; pub type i2c_master_interface_t = i2c_master_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct i2c_master_interface { pub bus_freed : :: std :: option :: Option < unsafe extern \"C\" fn (device : * mut conf_object_t) > , pub read_response : :: std :: option :: Option < unsafe extern \"C\" fn (device : * mut conf_object_t , value : uint8) > , pub ack_read_response : :: std :: option :: Option < unsafe extern \"C\" fn (device : * mut conf_object_t) > , pub write_response : :: std :: option :: Option < unsafe extern \"C\" fn (device : * mut conf_object_t , status : i2c_status_t) > , pub start_response : :: std :: option :: Option < unsafe extern \"C\" fn (device : * mut conf_object_t , status : i2c_status_t) > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of i2c_master_interface\"] [:: std :: mem :: size_of :: < i2c_master_interface > () - 40usize] ; [\"Alignment of i2c_master_interface\"] [:: std :: mem :: align_of :: < i2c_master_interface > () - 8usize] ; [\"Offset of field: i2c_master_interface::bus_freed\"] [:: std :: mem :: offset_of ! (i2c_master_interface , bus_freed) - 0usize] ; [\"Offset of field: i2c_master_interface::read_response\"] [:: std :: mem :: offset_of ! (i2c_master_interface , read_response) - 8usize] ; [\"Offset of field: i2c_master_interface::ack_read_response\"] [:: std :: mem :: offset_of ! (i2c_master_interface , ack_read_response) - 16usize] ; [\"Offset of field: i2c_master_interface::write_response\"] [:: std :: mem :: offset_of ! (i2c_master_interface , write_response) - 24usize] ; [\"Offset of field: i2c_master_interface::start_response\"] [:: std :: mem :: offset_of ! (i2c_master_interface , start_response) - 32usize] ; } ; pub type i2c_bridge_interface_t = i2c_bridge_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct i2c_bridge_interface { pub address_added : :: std :: option :: Option < unsafe extern \"C\" fn (device : * mut conf_object_t , addr : uint32 , mask : uint32) > , pub address_removed : :: std :: option :: Option < unsafe extern \"C\" fn (device : * mut conf_object_t , addr : uint32 , mask : uint32) > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of i2c_bridge_interface\"] [:: std :: mem :: size_of :: < i2c_bridge_interface > () - 16usize] ; [\"Alignment of i2c_bridge_interface\"] [:: std :: mem :: align_of :: < i2c_bridge_interface > () - 8usize] ; [\"Offset of field: i2c_bridge_interface::address_added\"] [:: std :: mem :: offset_of ! (i2c_bridge_interface , address_added) - 0usize] ; [\"Offset of field: i2c_bridge_interface::address_removed\"] [:: std :: mem :: offset_of ! (i2c_bridge_interface , address_removed) - 8usize] ; } ; pub type i2c_slave_v2_interface_t = i2c_slave_v2_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct i2c_slave_v2_interface { pub start : :: std :: option :: Option < unsafe extern \"C\" fn (device : * mut conf_object_t , address : uint8) > , pub read : :: std :: option :: Option < unsafe extern \"C\" fn (device : * mut conf_object_t) > , pub write : :: std :: option :: Option < unsafe extern \"C\" fn (device : * mut conf_object_t , value : uint8) > , pub stop : :: std :: option :: Option < unsafe extern \"C\" fn (device : * mut conf_object_t) > , pub addresses : :: std :: option :: Option < unsafe extern \"C\" fn (device : * mut conf_object_t) -> attr_value_t > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of i2c_slave_v2_interface\"] [:: std :: mem :: size_of :: < i2c_slave_v2_interface > () - 40usize] ; [\"Alignment of i2c_slave_v2_interface\"] [:: std :: mem :: align_of :: < i2c_slave_v2_interface > () - 8usize] ; [\"Offset of field: i2c_slave_v2_interface::start\"] [:: std :: mem :: offset_of ! (i2c_slave_v2_interface , start) - 0usize] ; [\"Offset of field: i2c_slave_v2_interface::read\"] [:: std :: mem :: offset_of ! (i2c_slave_v2_interface , read) - 8usize] ; [\"Offset of field: i2c_slave_v2_interface::write\"] [:: std :: mem :: offset_of ! (i2c_slave_v2_interface , write) - 16usize] ; [\"Offset of field: i2c_slave_v2_interface::stop\"] [:: std :: mem :: offset_of ! (i2c_slave_v2_interface , stop) - 24usize] ; [\"Offset of field: i2c_slave_v2_interface::addresses\"] [:: std :: mem :: offset_of ! (i2c_slave_v2_interface , addresses) - 32usize] ; } ; # [repr (u32)] # [doc = \" <add id=\\\"i2c_master_v2_interface_t\\\">\\n<insert-until text=\\\"// ADD INTERFACE i2c_master_v2_interface\\\"/>\\n\\nThe <iface>i2c_master_v2</iface> interface should be implemented\\nby devices that intend to act as a master on an I2C link.\\n\\nThe function <fun>acknowledge</fun> is called in response to a\\n<fun>start</fun> or <fun>write</fun> call in the\\n<iface>i2c_slave_v2</iface> interface of the slave device.\\n<fun>read_response</fun> is called as response to a\\n<fun>read</fun> call.  More details can be found in the\\ndocumentation of the <nref\\nlabel=\\\"__rm_interface_i2c_slave_v2\\\">i2c_slave_v2</nref> interface.\\n\\n</add>\\n<add id=\\\"i2c_master_v2_interface_exec_context\\\">\\nCell Context for all methods.\\n</add>\"] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub enum i2c_ack_t { I2C_ack = 0 , I2C_noack = 1 , } pub type i2c_master_v2_interface_t = i2c_master_v2_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct i2c_master_v2_interface { pub acknowledge : :: std :: option :: Option < unsafe extern \"C\" fn (device : * mut conf_object_t , ack : i2c_ack_t) > , pub read_response : :: std :: option :: Option < unsafe extern \"C\" fn (device : * mut conf_object_t , value : uint8) > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of i2c_master_v2_interface\"] [:: std :: mem :: size_of :: < i2c_master_v2_interface > () - 16usize] ; [\"Alignment of i2c_master_v2_interface\"] [:: std :: mem :: align_of :: < i2c_master_v2_interface > () - 8usize] ; [\"Offset of field: i2c_master_v2_interface::acknowledge\"] [:: std :: mem :: offset_of ! (i2c_master_v2_interface , acknowledge) - 0usize] ; [\"Offset of field: i2c_master_v2_interface::read_response\"] [:: std :: mem :: offset_of ! (i2c_master_v2_interface , read_response) - 8usize] ; } ; # [doc = \" <add-type id=\\\"telemetry_class_id_t def\\\"> </add-type>\"] pub type telemetry_class_id_t = :: std :: os :: raw :: c_int ; # [doc = \" <add-type id=\\\"telemetry_id_t def\\\"> </add-type>\"] pub type telemetry_id_t = :: std :: os :: raw :: c_int ; pub type telemetry_interface_t = telemetry_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct telemetry_interface { pub get_telemetry_class_id : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , telemetry_class_name : * const :: std :: os :: raw :: c_char) -> telemetry_class_id_t > , pub get_telemetry_class_name : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , telemetry_class_id : telemetry_class_id_t) -> * const :: std :: os :: raw :: c_char > , pub get_telemetry_class_description : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , telemetry_class_id : telemetry_class_id_t) -> * const :: std :: os :: raw :: c_char > , pub get_telemetry_id : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , telemetry_class_id : telemetry_class_id_t , telemetry_name : * const :: std :: os :: raw :: c_char) -> telemetry_id_t > , pub get_telemetry_name : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , telemetry_class_id : telemetry_class_id_t , telemetry_id : telemetry_id_t) -> * const :: std :: os :: raw :: c_char > , pub get_telemetry_description : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , telemetry_class_id : telemetry_class_id_t , telemetry_id : telemetry_id_t) -> * const :: std :: os :: raw :: c_char > , pub get_value : :: std :: option :: Option < unsafe extern \"C\" fn (obj : * mut conf_object_t , telemetry_class_id : telemetry_class_id_t , telemetry_id : telemetry_id_t) -> attr_value_t > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of telemetry_interface\"] [:: std :: mem :: size_of :: < telemetry_interface > () - 56usize] ; [\"Alignment of telemetry_interface\"] [:: std :: mem :: align_of :: < telemetry_interface > () - 8usize] ; [\"Offset of field: telemetry_interface::get_telemetry_class_id\"] [:: std :: mem :: offset_of ! (telemetry_interface , get_telemetry_class_id) - 0usize] ; [\"Offset of field: telemetry_interface::get_telemetry_class_name\"] [:: std :: mem :: offset_of ! (telemetry_interface , get_telemetry_class_name) - 8usize] ; [\"Offset of field: telemetry_interface::get_telemetry_class_description\"] [:: std :: mem :: offset_of ! (telemetry_interface , get_telemetry_class_description) - 16usize] ; [\"Offset of field: telemetry_interface::get_telemetry_id\"] [:: std :: mem :: offset_of ! (telemetry_interface , get_telemetry_id) - 24usize] ; [\"Offset of field: telemetry_interface::get_telemetry_name\"] [:: std :: mem :: offset_of ! (telemetry_interface , get_telemetry_name) - 32usize] ; [\"Offset of field: telemetry_interface::get_telemetry_description\"] [:: std :: mem :: offset_of ! (telemetry_interface , get_telemetry_description) - 40usize] ; [\"Offset of field: telemetry_interface::get_value\"] [:: std :: mem :: offset_of ! (telemetry_interface , get_value) - 48usize] ; } ; pub type arinc429_bus_interface_t = arinc429_bus_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct arinc429_bus_interface { pub send_word : :: std :: option :: Option < unsafe extern \"C\" fn (bus : * mut conf_object_t , word : uint32 , parity_ok : :: std :: os :: raw :: c_int) > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of arinc429_bus_interface\"] [:: std :: mem :: size_of :: < arinc429_bus_interface > () - 8usize] ; [\"Alignment of arinc429_bus_interface\"] [:: std :: mem :: align_of :: < arinc429_bus_interface > () - 8usize] ; [\"Offset of field: arinc429_bus_interface::send_word\"] [:: std :: mem :: offset_of ! (arinc429_bus_interface , send_word) - 0usize] ; } ; pub type arinc429_receiver_interface_t = arinc429_receiver_interface ; # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct arinc429_receiver_interface { pub receive_word : :: std :: option :: Option < unsafe extern \"C\" fn (dev : * mut conf_object_t , word : uint32 , parity_ok : :: std :: os :: raw :: c_int) > , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of arinc429_receiver_interface\"] [:: std :: mem :: size_of :: < arinc429_receiver_interface > () - 8usize] ; [\"Alignment of arinc429_receiver_interface\"] [:: std :: mem :: align_of :: < arinc429_receiver_interface > () - 8usize] ; [\"Offset of field: arinc429_receiver_interface::receive_word\"] [:: std :: mem :: offset_of ! (arinc429_receiver_interface , receive_word) - 0usize] ; } ; # [doc = \" Index: Indices not supported\\n Description: This hap is triggered on every word sent on a arinc429_bus object. In the hap handler, the last_word attribute can be read or modified. Setting it to -1 will drop the packet.\"] pub type arinc429_word_hap_callback = :: std :: option :: Option < unsafe extern \"C\" fn (callback_data : * mut lang_void , trigger_obj : * mut conf_object_t) > ; # [doc = \" Index: Indices not supported\\n Description: Triggered when a CLI command is defined.\"] pub type cli_command_added_hap_callback = :: std :: option :: Option < unsafe extern \"C\" fn (callback_data : * mut lang_void , trigger_obj : * mut conf_object_t , command_name : * mut :: std :: os :: raw :: c_char) > ; # [doc = \" Index: Indices not supported\\n Description: Internal: Similar to Component_Hierarchy_Change but also triggered for components that are not part of any complete hierarchy including non-instantiated components.\"] pub type component_change_hap_callback = :: std :: option :: Option < unsafe extern \"C\" fn (callback_data : * mut lang_void , trigger_obj : * mut conf_object_t) > ; # [doc = \" Index: Indices not supported\\n Description: Internal: Triggered when an instantiated component hierarchy is modified. The hap is associated with the top-level component of the modified hierarchy.\"] pub type component_hierarchy_change_hap_callback = :: std :: option :: Option < unsafe extern \"C\" fn (callback_data : * mut lang_void , trigger_obj : * mut conf_object_t , top_level_component : * mut conf_object_t) > ; # [doc = \" Index: break_id\\n Description: Triggered when the output matches a string set to break on. The\"] pub type console_break_string_hap_callback = :: std :: option :: Option < unsafe extern \"C\" fn (callback_data : * mut lang_void , trigger_obj : * mut conf_object_t , break_string : * mut :: std :: os :: raw :: c_char) > ; # [doc = \" Index: Indices not supported\\n Description: Triggered when an access to a memory-space has no target and the access does not match any entry in the\"] pub type core_address_not_mapped_hap_callback = :: std :: option :: Option < unsafe extern \"C\" fn (callback_data : * mut lang_void , trigger_obj : * mut conf_object_t , physical_address : int64 , access_type : int64 , size : int64) > ; # [doc = \" Index: trap_number\\n Description: SPARC: Triggered when an asynchronous trap occurs. This is either an external interrupt\"] pub type core_asynchronous_trap_hap_callback = :: std :: option :: Option < unsafe extern \"C\" fn (callback_data : * mut lang_void , trigger_obj : * mut conf_object_t , trap_number : int64) > ; # [doc = \" Index: Indices not supported\\n Description: Triggered, typically by\"] pub type core_at_exit_hap_callback = :: std :: option :: Option < unsafe extern \"C\" fn (callback_data : * mut lang_void , trigger_obj : * mut conf_object_t) > ; # [doc = \" Index: Indices not supported\\n Description: Deprecated.\"] pub type core_back_to_front_hap_callback = :: std :: option :: Option < unsafe extern \"C\" fn (callback_data : * mut lang_void , trigger_obj : * mut conf_object_t) > ; # [doc = \" Index: Indices not supported\\n Description: Triggered on an object when breakpoints attached to that object are inserted, deleted or changed in any way.\"] pub type core_breakpoint_change_hap_callback = :: std :: option :: Option < unsafe extern \"C\" fn (callback_data : * mut lang_void , trigger_obj : * mut conf_object_t) > ; # [doc = \" Index: breakpoint_number\\n Description: Triggered when a breakpoint is triggered.\"] pub type core_breakpoint_memop_hap_callback = :: std :: option :: Option < unsafe extern \"C\" fn (callback_data : * mut lang_void , trigger_obj : * mut conf_object_t , breakpoint_number : int64 , memop : * mut generic_transaction_t) > ; # [doc = \" Index: Indices not supported\\n Description: Triggered, typically by\"] pub type core_clean_at_exit_hap_callback = :: std :: option :: Option < unsafe extern \"C\" fn (callback_data : * mut lang_void , trigger_obj : * mut conf_object_t) > ; # [doc = \" Index: Indices not supported\\n Description: Triggered when a new configuration class has been registered. Called in Global Context.\"] pub type core_conf_class_register_hap_callback = :: std :: option :: Option < unsafe extern \"C\" fn (callback_data : * mut lang_void , trigger_obj : * mut conf_object_t , class_name : * mut :: std :: os :: raw :: c_char) > ; # [doc = \" Index: Indices not supported\\n Description: Triggered when a configuration class has been unregistered. Called in Global Context.\"] pub type core_conf_class_unregister_hap_callback = :: std :: option :: Option < unsafe extern \"C\" fn (callback_data : * mut lang_void , trigger_obj : * mut conf_object_t , class_name : * mut :: std :: os :: raw :: c_char) > ; # [doc = \" Index: Indices not supported\\n Description: Triggered when a clock object changes cell\"] pub type core_conf_clock_change_cell_hap_callback = :: std :: option :: Option < unsafe extern \"C\" fn (callback_data : * mut lang_void , trigger_obj : * mut conf_object_t , old_cell : * mut conf_object_t , new_cell : * mut conf_object_t) > ; # [doc = \" Index: Indices not supported\\n Description: Triggered when an object\'s reference clock is changed\"] pub type core_conf_object_change_clock_hap_callback = :: std :: option :: Option < unsafe extern \"C\" fn (callback_data : * mut lang_void , trigger_obj : * mut conf_object_t , old_clock : * mut conf_object_t , new_clock : * mut conf_object_t) > ; # [doc = \" Index: Indices not supported\\n Description: Triggered when a new configuration object\'s\"] pub type core_conf_object_create_hap_callback = :: std :: option :: Option < unsafe extern \"C\" fn (callback_data : * mut lang_void , trigger_obj : * mut conf_object_t) > ; # [doc = \" Index: Indices not supported\\n Description: Triggered when a configuration object has been created and finalized. This hap will always be followed by a Core_Conf_Objects_Created hap, but this hap can be triggered for more than one object before the Core_Conf_Objects_Created hap.\"] pub type core_conf_object_created_hap_callback = :: std :: option :: Option < unsafe extern \"C\" fn (callback_data : * mut lang_void , trigger_obj : * mut conf_object_t) > ; # [doc = \" Index: Indices not supported\\n Description: Triggered after a configuration object has been deleted. Called in Global Context.\"] pub type core_conf_object_delete_hap_callback = :: std :: option :: Option < unsafe extern \"C\" fn (callback_data : * mut lang_void , trigger_obj : * mut conf_object_t , object_name : * mut :: std :: os :: raw :: c_char) > ; # [doc = \" Index: Indices not supported\\n Description: Triggered just before a configuration object is deleted. Called in Global Context.\"] pub type core_conf_object_pre_delete_hap_callback = :: std :: option :: Option < unsafe extern \"C\" fn (callback_data : * mut lang_void , trigger_obj : * mut conf_object_t) > ; # [doc = \" Index: Indices not supported\\n Description: Triggered after an object\'s name has changed. Called in Global Context.\"] pub type core_conf_object_rename_hap_callback = :: std :: option :: Option < unsafe extern \"C\" fn (callback_data : * mut lang_void , trigger_obj : * mut conf_object_t , old_name : * mut :: std :: os :: raw :: c_char) > ; # [doc = \" Index: Indices not supported\\n Description: Triggered if and only if at least one Core_Conf_Object_Created hap has been triggered.\"] pub type core_conf_objects_created_hap_callback = :: std :: option :: Option < unsafe extern \"C\" fn (callback_data : * mut lang_void , trigger_obj : * mut conf_object_t) > ; # [doc = \" Index: Indices not supported\\n Description: Triggered when one or more objects have been deleted from the configuration after the Core_Conf_Object_Delete hap has been triggered for all of the objects. Called in Global Context.\"] pub type core_conf_objects_deleted_hap_callback = :: std :: option :: Option < unsafe extern \"C\" fn (callback_data : * mut lang_void , trigger_obj : * mut conf_object_t) > ; # [doc = \" Index: Indices not supported\\n Description: Triggered when a configuration has been loaded. This hap can be triggered several times during a session since it is possible to append a new configuration to the existing one. In most cases it is better to use the\"] pub type core_configuration_loaded_hap_callback = :: std :: option :: Option < unsafe extern \"C\" fn (callback_data : * mut lang_void , trigger_obj : * mut conf_object_t) > ; # [doc = \" Index: Indices not supported\\n Description: Triggered when this context replaces another context as the current context of a processor.\"] pub type core_context_activate_hap_callback = :: std :: option :: Option < unsafe extern \"C\" fn (callback_data : * mut lang_void , trigger_obj : * mut conf_object_t , other_ctx : * mut conf_object_t , cpu : * mut conf_object_t) > ; # [doc = \" Index: Indices not supported\\n Description: Triggered when the context is set to the current context for a processor.\"] pub type core_context_change_hap_callback = :: std :: option :: Option < unsafe extern \"C\" fn (callback_data : * mut lang_void , trigger_obj : * mut conf_object_t , cpu : * mut conf_object_t) > ; # [doc = \" Index: Indices not supported\\n Description: Triggered when another context replaces this context as the current context of a processor.\"] pub type core_context_deactivate_hap_callback = :: std :: option :: Option < unsafe extern \"C\" fn (callback_data : * mut lang_void , trigger_obj : * mut conf_object_t , other_ctx : * mut conf_object_t , cpu : * mut conf_object_t) > ; # [doc = \" Index: Indices not supported\\n Description: Triggered when the context is updated in some way.\"] pub type core_context_updated_hap_callback = :: std :: option :: Option < unsafe extern \"C\" fn (callback_data : * mut lang_void , trigger_obj : * mut conf_object_t) > ; # [doc = \" Index: Indices not supported\\n Description: Triggered at the (re)start of the simulation. The\"] pub type core_continuation_hap_callback = :: std :: option :: Option < unsafe extern \"C\" fn (callback_data : * mut lang_void , trigger_obj : * mut conf_object_t) > ; # [doc = \" Index: register_number\\n Description: Triggered when a control register is read. The hap is called before the read is performed; thus no registers have been modified.\"] pub type core_control_register_read_hap_callback = :: std :: option :: Option < unsafe extern \"C\" fn (callback_data : * mut lang_void , trigger_obj : * mut conf_object_t , register_number : int64) > ; # [doc = \" Index: register_number\\n Description: Triggered when a control register is written. Note that\"] pub type core_control_register_write_hap_callback = :: std :: option :: Option < unsafe extern \"C\" fn (callback_data : * mut lang_void , trigger_obj : * mut conf_object_t , register_number : int64 , value : int64) > ; # [doc = \" Index: Indices not supported\\n Description: Triggered when the DSTC flushes a line\'s hit counter. It reports how many hits the STC recorded since the line was inserted.\"] pub type core_dstc_flush_counter_hap_callback = :: std :: option :: Option < unsafe extern \"C\" fn (callback_data : * mut lang_void , trigger_obj : * mut conf_object_t , type_ : int64 , virtual_address : int64 , physical_address : int64 , counter : int64) > ; # [doc = \" Index: Indices not supported\\n Description: Triggered when a device access is performed.\"] pub type core_device_access_memop_hap_callback = :: std :: option :: Option < unsafe extern \"C\" fn (callback_data : * mut lang_void , trigger_obj : * mut conf_object_t , memop : * mut generic_transaction_t) > ; # [doc = \" Index: Indices not supported\\n Description: Disable (or reenable) all breakpoints. This hap is primarily used to improve reverse performance in certain situations.\"] pub type core_disable_breakpoints_hap_callback = :: std :: option :: Option < unsafe extern \"C\" fn (callback_data : * mut lang_void , trigger_obj : * mut conf_object_t , reenable : :: std :: os :: raw :: c_int) > ; # [doc = \" Index: Indices not supported\\n Description: Triggered when recorded events should be forgotten. Called in Global Context.\"] pub type core_discard_future_hap_callback = :: std :: option :: Option < unsafe extern \"C\" fn (callback_data : * mut lang_void , trigger_obj : * mut conf_object_t) > ; # [doc = \" Index: exception_number\\n Description: Triggered when an exception/trap is taken by a processor. The hap occurs before side-effects, control transfers included, have taken place.\"] pub type core_exception_hap_callback = :: std :: option :: Option < unsafe extern \"C\" fn (callback_data : * mut lang_void , trigger_obj : * mut conf_object_t , exception_number : int64) > ; # [doc = \" Index: exception_number\\n Description: Triggered when an exception/trap handler finishes execution. The hap is triggered before any processor state has changed.\"] pub type core_exception_return_hap_callback = :: std :: option :: Option < unsafe extern \"C\" fn (callback_data : * mut lang_void , trigger_obj : * mut conf_object_t , exception_number : int64) > ; # [doc = \" Index: source_mid\\n Description: (SPARC only) Triggered when a processor receives an external interrupt. The trigger object is the receiving cpu, and\"] pub type core_external_interrupt_hap_callback = :: std :: option :: Option < unsafe extern \"C\" fn (callback_data : * mut lang_void , trigger_obj : * mut conf_object_t , source_mid : int64) > ; # [doc = \" Index: Indices not supported\\n Description: Triggered when the frequency of a cycle queue has changed. Parameters are the old and new frequencies in Hz.\"] pub type core_frequency_changed_hap_callback = :: std :: option :: Option < unsafe extern \"C\" fn (callback_data : * mut lang_void , trigger_obj : * mut conf_object_t , old_freq : int64 , new_freq : int64) > ; # [doc = \" Index: Indices not supported\\n Description: Experimental\"] pub type core_global_message_hap_callback = :: std :: option :: Option < unsafe extern \"C\" fn (callback_data : * mut lang_void , trigger_obj : * mut conf_object_t , message : * mut :: std :: os :: raw :: c_char) > ; # [doc = \" Index: hap_number\\n Description: Triggered before a callback is installed. The callback called by this hap is not allowed to install any hap callbacks.\"] pub type core_hap_callback_installed_hap_callback = :: std :: option :: Option < unsafe extern \"C\" fn (callback_data : * mut lang_void , trigger_obj : * mut conf_object_t , hap_number : int64 , range_low : int64 , range_high : int64) > ; # [doc = \" Index: hap_number\\n Description: Triggered after a callback has been unregistered. The callback called by this hap is not allowed to remove any hap callbacks.\"] pub type core_hap_callback_removed_hap_callback = :: std :: option :: Option < unsafe extern \"C\" fn (callback_data : * mut lang_void , trigger_obj : * mut conf_object_t , hap_number : int64 , range_low : int64 , range_high : int64) > ; # [doc = \" Index: Indices not supported\\n Description: Triggered when a new hap type is added to the simulator. The hap is not triggered for the initial set of core haps. Callbacks called in Global Context.\"] pub type core_hap_type_added_hap_callback = :: std :: option :: Option < unsafe extern \"C\" fn (callback_data : * mut lang_void , trigger_obj : * mut conf_object_t , hap_name : * mut :: std :: os :: raw :: c_char) > ; # [doc = \" Index: Indices not supported\\n Description: Triggered on I/O activity in an image object.\"] pub type core_image_activity_hap_callback = :: std :: option :: Option < unsafe extern \"C\" fn (callback_data : * mut lang_void , trigger_obj : * mut conf_object_t , type_ : :: std :: os :: raw :: c_int , onoff : :: std :: os :: raw :: c_int) > ; # [doc = \" Index: Indices not supported\\n Description: Deprecated - Use the Core_Configuration_Loaded hap instead.\"] pub type core_initial_configuration_hap_callback = :: std :: option :: Option < unsafe extern \"C\" fn (callback_data : * mut lang_void , trigger_obj : * mut conf_object_t) > ; # [doc = \" Index: Indices not supported\\n Description: Triggered when the active log groups of an object changes\"] pub type core_log_groups_change_hap_callback = :: std :: option :: Option < unsafe extern \"C\" fn (callback_data : * mut lang_void , trigger_obj : * mut conf_object_t , log_group_mask : :: std :: os :: raw :: c_int) > ; # [doc = \" Index: Indices not supported\\n Description: Triggered when the log level of an object changes\"] pub type core_log_level_change_hap_callback = :: std :: option :: Option < unsafe extern \"C\" fn (callback_data : * mut lang_void , trigger_obj : * mut conf_object_t , new_log_level : :: std :: os :: raw :: c_int) > ; # [doc = \" Index: log type\\n Description: Triggered when a log message is registered that is supposed to be logged, i.e. with matching type and group(s) and level.\"] pub type core_log_message_hap_callback = :: std :: option :: Option < unsafe extern \"C\" fn (callback_data : * mut lang_void , trigger_obj : * mut conf_object_t , type_ : :: std :: os :: raw :: c_int , message : * mut :: std :: os :: raw :: c_char) > ; # [doc = \" Index: Indices not supported\\n Description: Triggered when a log message is registered that is supposed to be logged according to the log level.\"] pub type core_log_message_extended_hap_callback = :: std :: option :: Option < unsafe extern \"C\" fn (callback_data : * mut lang_void , trigger_obj : * mut conf_object_t , type_ : :: std :: os :: raw :: c_int , message : * mut :: std :: os :: raw :: c_char , level : :: std :: os :: raw :: c_int , group : int64) > ; # [doc = \" Index: Indices not supported\\n Description: Triggered when a log message is registered that is supposed to be logged, i.e. with matching type and group(s) and level.\"] pub type core_log_message_filtered_hap_callback = :: std :: option :: Option < unsafe extern \"C\" fn (callback_data : * mut lang_void , trigger_obj : * mut conf_object_t , type_ : :: std :: os :: raw :: c_int , message : * mut :: std :: os :: raw :: c_char , level : :: std :: os :: raw :: c_int , group : int64) > ; # [doc = \" Index: parameter\\n Description: Triggered when Simics executes a magic instruction. The parameter is taken from the instruction and is architecture-dependent.\"] pub type core_magic_instruction_hap_callback = :: std :: option :: Option < unsafe extern \"C\" fn (callback_data : * mut lang_void , trigger_obj : * mut conf_object_t , parameter : int64) > ; # [doc = \" Index: Indices not supported\\n Description: Experimental\"] pub type core_memory_space_map_changed_hap_callback = :: std :: option :: Option < unsafe extern \"C\" fn (callback_data : * mut lang_void , trigger_obj : * mut conf_object_t) > ; # [doc = \" Index: Indices not supported\\n Description: Triggered when a processor changes privilege mode for whatever reason; usually an exception or return from an exception. The hap occurs after the processor has changed mode but before any instructions have been executed in the new mode.\"] pub type core_mode_change_hap_callback = :: std :: option :: Option < unsafe extern \"C\" fn (callback_data : * mut lang_void , trigger_obj : * mut conf_object_t , old_mode : int64 , new_mode : int64) > ; # [doc = \" Index: Indices not supported\\n Description: Triggered when a module is loaded into Simics. Called in Global Context.\"] pub type core_module_loaded_hap_callback = :: std :: option :: Option < unsafe extern \"C\" fn (callback_data : * mut lang_void , trigger_obj : * mut conf_object_t , module_name : * mut :: std :: os :: raw :: c_char) > ; # [doc = \" Index: Indices not supported\\n Description: Triggered when the multicore-accelerator feature is enabled or disabled.\"] pub type core_multicore_acceleration_changed_hap_callback = :: std :: option :: Option < unsafe extern \"C\" fn (callback_data : * mut lang_void , trigger_obj : * mut conf_object_t , on_off : :: std :: os :: raw :: c_int) > ; # [doc = \" Index: Indices not supported\\n Description: Triggered when multithreaded simulation is enabled or disabled.\"] pub type core_multithreading_changed_hap_callback = :: std :: option :: Option < unsafe extern \"C\" fn (callback_data : * mut lang_void , trigger_obj : * mut conf_object_t , on_off : :: std :: os :: raw :: c_int) > ; # [doc = \" Index: Indices not supported\\n Description: Triggered when the simulator encounters unimplemented functionality.\"] pub type core_not_implemented_hap_callback = :: std :: option :: Option < unsafe extern \"C\" fn (callback_data : * mut lang_void , trigger_obj : * mut conf_object_t , line : :: std :: os :: raw :: c_int , file : * mut :: std :: os :: raw :: c_char , rcsid : * mut :: std :: os :: raw :: c_char , message : * mut :: std :: os :: raw :: c_char , data : int64) > ; # [doc = \" Index: Indices not supported\\n Description: Triggered when an attribute in the prefs object is written. Called in Global Context.\"] pub type core_preferences_changed_hap_callback = :: std :: option :: Option < unsafe extern \"C\" fn (callback_data : * mut lang_void , trigger_obj : * mut conf_object_t) > ; # [doc = \" Index: Indices not supported\\n Description: Triggered when the scheduling order of the processors has changed. Called in Global Context.\"] pub type core_processor_schedule_changed_hap_callback = :: std :: option :: Option < unsafe extern \"C\" fn (callback_data : * mut lang_void , trigger_obj : * mut conf_object_t) > ; # [doc = \" Index: Indices not supported\\n Description: Triggered when a new Simics project directory is selected. Called in Global Context.\"] pub type core_project_changed_hap_callback = :: std :: option :: Option < unsafe extern \"C\" fn (callback_data : * mut lang_void , trigger_obj : * mut conf_object_t) > ; # [doc = \" Index: Indices not supported\\n Description: Triggered when the list of recently used files has changed. Called in Global Context.\"] pub type core_recent_files_changed_hap_callback = :: std :: option :: Option < unsafe extern \"C\" fn (callback_data : * mut lang_void , trigger_obj : * mut conf_object_t) > ; # [doc = \" Index: Indices not supported\\n Description: Triggered when reverse execution support is activated or deactivated. Called in Global Context.\"] pub type core_rexec_active_hap_callback = :: std :: option :: Option < unsafe extern \"C\" fn (callback_data : * mut lang_void , trigger_obj : * mut conf_object_t , active_flag : :: std :: os :: raw :: c_int) > ; # [doc = \" Index: simulation_mode\\n Description: Triggered when the simulation mode for the processor has changed.\"] pub type core_simulation_mode_change_hap_callback = :: std :: option :: Option < unsafe extern \"C\" fn (callback_data : * mut lang_void , trigger_obj : * mut conf_object_t , simulation_mode : :: std :: os :: raw :: c_int) > ; # [doc = \" Index: exception\\n Description: Triggered when the simulation stops. The\"] pub type core_simulation_stopped_hap_callback = :: std :: option :: Option < unsafe extern \"C\" fn (callback_data : * mut lang_void , trigger_obj : * mut conf_object_t , exception : int64 , error_string : * mut :: std :: os :: raw :: c_char) > ; # [doc = \" Index: Indices not supported\\n Description: Triggered with an estimate of skip-to progress. Called in Global Context.\"] pub type core_skipto_progress_hap_callback = :: std :: option :: Option < unsafe extern \"C\" fn (callback_data : * mut lang_void , trigger_obj : * mut conf_object_t , progress : :: std :: os :: raw :: c_int) > ; # [doc = \" Index: type\\n Description: Triggered when an synchronizing instruction is executed. The\"] pub type core_sync_instruction_hap_callback = :: std :: option :: Option < unsafe extern \"C\" fn (callback_data : * mut lang_void , trigger_obj : * mut conf_object_t , type_ : int64) > ; # [doc = \" Index: Indices not supported\\n Description: Triggered whenever there is a transition between the past and the present. Called in Global Context.\"] pub type core_time_transition_hap_callback = :: std :: option :: Option < unsafe extern \"C\" fn (callback_data : * mut lang_void , trigger_obj : * mut conf_object_t , in_the_past : :: std :: os :: raw :: c_int) > ; # [doc = \" Index: Indices not supported\\n Description: Triggered on an object when a timing model or snoop device is inserted, deleted, or changed.\"] pub type core_timing_model_change_hap_callback = :: std :: option :: Option < unsafe extern \"C\" fn (callback_data : * mut lang_void , trigger_obj : * mut conf_object_t) > ; # [doc = \" Index: Indices not supported\\n Description: Triggered when the list of user comments for a session has changed\"] pub type core_user_comments_changed_hap_callback = :: std :: option :: Option < unsafe extern \"C\" fn (callback_data : * mut lang_void , trigger_obj : * mut conf_object_t) > ; # [doc = \" Index: Indices not supported\\n Description: Deprecated - Use the checkpoint interface instead\"] pub type core_write_configuration_hap_callback = :: std :: option :: Option < unsafe extern \"C\" fn (callback_data : * mut lang_void , trigger_obj : * mut conf_object_t , file_name : * mut :: std :: os :: raw :: c_char) > ; # [doc = \" Index: Indices not supported\\n Description: Triggered by the\"] pub type eth_injector_pcap_eof_hap_callback = :: std :: option :: Option < unsafe extern \"C\" fn (callback_data : * mut lang_void , trigger_obj : * mut conf_object_t , pcap_file : * mut :: std :: os :: raw :: c_char , num_injected : :: std :: os :: raw :: c_int , pcap_num_pkgs : :: std :: os :: raw :: c_int , auto_restart : :: std :: os :: raw :: c_int) > ; # [doc = \" Index: Indices not supported\\n Description: Triggered when the bus is reset. It is invoked after calculating the default topology. During the hap the self_ids attribute can be used to change the self id packets sent to the devices on the bus. The connected_devices attribute can also be changed to modify the mapping from physical id to device.\"] pub type firewire_reset_hap_callback = :: std :: option :: Option < unsafe extern \"C\" fn (callback_data : * mut lang_void , trigger_obj : * mut conf_object_t) > ; # [doc = \" Index: Indices not supported\\n Description: Triggered when an packet travels through a firewire bus. During the hap handler the current_transfer attribute of the bus can be used to inspect and/or change the current transfer. If you set it to NULL the transfer is aborted and Firewire_V2_Ack_No_Ack is returned to the initiator of the transfer.\"] pub type firewire_transfer_hap_callback = :: std :: option :: Option < unsafe extern \"C\" fn (callback_data : * mut lang_void , trigger_obj : * mut conf_object_t) > ; # [doc = \" Index: break_id\\n Description: Triggered when a graphical breakpoint matches the screen.\"] pub type gfx_break_hap_callback = :: std :: option :: Option < unsafe extern \"C\" fn (callback_data : * mut lang_void , trigger_obj : * mut conf_object_t , gfx_break : int64) > ; # [doc = \" Index: break_id\\n Description: Triggered when a graphics breakpoint matches the screen.\"] pub type gfx_break_string_hap_callback = :: std :: option :: Option < unsafe extern \"C\" fn (callback_data : * mut lang_void , trigger_obj : * mut conf_object_t , break_id : int64) > ; # [doc = \" Index: Indices not supported\\n Description: Triggered when the console is assigned a new title.\"] pub type graphics_console_new_title_hap_callback = :: std :: option :: Option < unsafe extern \"C\" fn (callback_data : * mut lang_void , trigger_obj : * mut conf_object_t , title : * mut :: std :: os :: raw :: c_char) > ; # [doc = \" Index: Indices not supported\\n Description: Triggered when the console is shown or hidden. The hap argument is 1 when the console is shown and 0 when hidden.\"] pub type graphics_console_show_hide_hap_callback = :: std :: option :: Option < unsafe extern \"C\" fn (callback_data : * mut lang_void , trigger_obj : * mut conf_object_t , state : :: std :: os :: raw :: c_int) > ; # [doc = \" Index: Indices not supported\\n Description: Simics internal. Triggered when a bookmark has been added or deleted.\"] pub type internal_bookmark_list_changed_hap_callback = :: std :: option :: Option < unsafe extern \"C\" fn (callback_data : * mut lang_void , trigger_obj : * mut conf_object_t) > ; # [doc = \" Index: Indices not supported\\n Description: Simics internal. Triggered on a break-io access.\"] pub type internal_break_io_hap_callback = :: std :: option :: Option < unsafe extern \"C\" fn (callback_data : * mut lang_void , trigger_obj : * mut conf_object_t , break_id : :: std :: os :: raw :: c_int) > ; # [doc = \" Index: trace-io\\n Description: Simics internal. Triggered on an access to a device register traced with\"] pub type internal_device_reg_access_hap_callback = :: std :: option :: Option < unsafe extern \"C\" fn (callback_data : * mut lang_void , trigger_obj : * mut conf_object_t , memop : * mut generic_transaction_t , port : * mut :: std :: os :: raw :: c_char , idx : :: std :: os :: raw :: c_int , func : :: std :: os :: raw :: c_int , offset : int64) > ; # [doc = \" Index:\\n Description: Simics internal\"] pub type internal_micro_checkpoint_loaded_hap_callback = :: std :: option :: Option < unsafe extern \"C\" fn (callback_data : * mut lang_void , trigger_obj : * mut conf_object_t) > ; # [doc = \" Index: id\\n Description: Simics internal\"] pub type internal_sb_wait_hap_callback = :: std :: option :: Option < unsafe extern \"C\" fn (callback_data : * mut lang_void , trigger_obj : * mut conf_object_t) > ; # [doc = \" Index:\\n Description: Simics internal. \'rev\' is 1 when reverse execution is initiated, and 0 when reverse execution stops. In addition, a number of haps with rev = -1 may be fired during reverse execution at reverse chronologically ordered moments. This is typically used to update the user interface during reverse execution.\"] pub type internal_time_direction_changed_hap_callback = :: std :: option :: Option < unsafe extern \"C\" fn (callback_data : * mut lang_void , trigger_obj : * mut conf_object_t , rev : :: std :: os :: raw :: c_int) > ; # [doc = \" Index: Indices not supported\\n Description: Simics internal. Triggered when the time quantum has changed. The hap is supported in Simics 5 even though it is marked as internal.\"] pub type internal_time_quantum_changed_hap_callback = :: std :: option :: Option < unsafe extern \"C\" fn (callback_data : * mut lang_void , trigger_obj : * mut conf_object_t) > ; # [doc = \" Index: Indices not supported\\n Description: Internal\"] pub type rec_state_changed_hap_callback = :: std :: option :: Option < unsafe extern \"C\" fn (callback_data : * mut lang_void , trigger_obj : * mut conf_object_t , recording : :: std :: os :: raw :: c_int , playback : :: std :: os :: raw :: c_int) > ; # [doc = \" Index: index\\n Description: This hap is triggered when the DS12887-c NVRAM memory is changed.\"] pub type rtc_nvram_update_hap_callback = :: std :: option :: Option < unsafe extern \"C\" fn (callback_data : * mut lang_void , trigger_obj : * mut conf_object_t , index : int64 , old_value : int64 , new_value : int64) > ; # [doc = \" Index: Indices not supported\\n Description: Internal: Notifies change of realtime enabled status\"] pub type realtime_enabled_hap_callback = :: std :: option :: Option < unsafe extern \"C\" fn (callback_data : * mut lang_void , trigger_obj : * mut conf_object_t , enabled : :: std :: os :: raw :: c_int) > ; # [doc = \" Index: limit_type\\n Description: Triggered when a reverse execution resource limit is exceeded.\"] pub type rexec_limit_exceeded_hap_callback = :: std :: option :: Option < unsafe extern \"C\" fn (callback_data : * mut lang_void , trigger_obj : * mut conf_object_t , limit_type : :: std :: os :: raw :: c_int) > ; # [doc = \" Index: command_number\\n Description: Triggered when a SCSI command is received by a SCSI device. The parameters\"] pub type scsi_disk_command_hap_callback = :: std :: option :: Option < unsafe extern \"C\" fn (callback_data : * mut lang_void , trigger_obj : * mut conf_object_t , command_number : int64 , start : int64 , len : int64) > ; # [doc = \" Index:\\n Description: Triggered when NAPT is enabled or disabled in a service-node.The argument is 0 when disabled and 1 when enabled.\"] pub type sn_napt_enabled_hap_callback = :: std :: option :: Option < unsafe extern \"C\" fn (callback_data : * mut lang_void , trigger_obj : * mut conf_object_t , enabled : :: std :: os :: raw :: c_int) > ; # [doc = \" Index: page_size\\n Description: Triggered when a TLB entry is filled after a table walk. Page size encoding: 0==4k, 1==2M, 2==4M, 3==1G.\"] pub type tlb_fill_data_hap_callback = :: std :: option :: Option < unsafe extern \"C\" fn (callback_data : * mut lang_void , trigger_obj : * mut conf_object_t , linear : int64 , physical : int64 , page_size : int64) > ; # [doc = \" Index: page_size\\n Description: Triggered when a TLB entry is filled after a table walk. Page size encoding: 0==4k, 1==2M, 2==4M, 3==1G.\"] pub type tlb_fill_instruction_hap_callback = :: std :: option :: Option < unsafe extern \"C\" fn (callback_data : * mut lang_void , trigger_obj : * mut conf_object_t , linear : int64 , physical : int64 , page_size : int64) > ; # [doc = \" Index: page_size\\n Description: Triggered when a TLB entry is invalidated. The invalidation can be caused by an INVLPG instruction, a write to CR3, or by changes to paging bits in CR0 and CR4. Page size encoding: 0==4k, 1==2M, 2==4M, 3==1G.\"] pub type tlb_invalidate_data_hap_callback = :: std :: option :: Option < unsafe extern \"C\" fn (callback_data : * mut lang_void , trigger_obj : * mut conf_object_t , linear : int64 , physical : int64 , page_size : int64) > ; # [doc = \" Index: page_size\\n Description: Triggered when a TLB entry is invalidated. The invalidation can be caused by an INVLPG instruction, a write to CR3, or by changes to paging bits in CR0 and CR4. Page size encoding: 0==4k, 1==2M, 2==4M, 3==1G.\"] pub type tlb_invalidate_instruction_hap_callback = :: std :: option :: Option < unsafe extern \"C\" fn (callback_data : * mut lang_void , trigger_obj : * mut conf_object_t , linear : int64 , physical : int64 , page_size : int64) > ; # [doc = \" Index: linear_address\\n Description: Triggered when a DTLB miss occurs.\"] pub type tlb_miss_data_hap_callback = :: std :: option :: Option < unsafe extern \"C\" fn (callback_data : * mut lang_void , trigger_obj : * mut conf_object_t , linear_address : int64) > ; # [doc = \" Index: linear_address\\n Description: Triggered when an ITLB miss occurs.\"] pub type tlb_miss_instruction_hap_callback = :: std :: option :: Option < unsafe extern \"C\" fn (callback_data : * mut lang_void , trigger_obj : * mut conf_object_t , linear_address : int64) > ; # [doc = \" Index: page_size\\n Description: This hap is triggered when a TLB entry is replaced by another. The parameters relate to the old entry, and the insertion of the new entry will trigger a fill hap. Page size encoding: 0==4k, 1==2M, 2==4M, 3==1G.\"] pub type tlb_replace_data_hap_callback = :: std :: option :: Option < unsafe extern \"C\" fn (callback_data : * mut lang_void , trigger_obj : * mut conf_object_t , linear : int64 , physical : int64 , page_size : int64) > ; # [doc = \" Index: page_size\\n Description: This hap is triggered when a TLB entry is replaced by another. The parameters relate to the old entry, and the insertion of the new entry will trigger a fill hap. Page size encoding: 0==4k, 1==2M, 2==4M, 3==1G.\"] pub type tlb_replace_instruction_hap_callback = :: std :: option :: Option < unsafe extern \"C\" fn (callback_data : * mut lang_void , trigger_obj : * mut conf_object_t , linear : int64 , physical : int64 , page_size : int64) > ; # [doc = \" Index: Indices not supported\\n Description: Triggered when the console is assigned a new title.\"] pub type text_console_new_title_hap_callback = :: std :: option :: Option < unsafe extern \"C\" fn (callback_data : * mut lang_void , trigger_obj : * mut conf_object_t , new_title : * mut :: std :: os :: raw :: c_char) > ; # [doc = \" Index: Indices not supported\\n Description: Triggered when the console is shown or hidden.\"] pub type text_console_show_hide_hap_callback = :: std :: option :: Option < unsafe extern \"C\" fn (callback_data : * mut lang_void , trigger_obj : * mut conf_object_t , is_shown : :: std :: os :: raw :: c_int) > ; # [doc = \" Index: Indices not supported\\n Description: Internal\"] pub type ui_record_state_changed_hap_callback = :: std :: option :: Option < unsafe extern \"C\" fn (callback_data : * mut lang_void , trigger_obj : * mut conf_object_t , record : :: std :: os :: raw :: c_int , playback : :: std :: os :: raw :: c_int) > ; # [doc = \" Index: Indices not supported\\n Description: Triggered when the run state changes; not triggered in batch mode. The argument is one of:\"] pub type ui_run_state_changed_hap_callback = :: std :: option :: Option < unsafe extern \"C\" fn (callback_data : * mut lang_void , trigger_obj : * mut conf_object_t , state : * mut :: std :: os :: raw :: c_char) > ; # [doc = \" Index: string_id\\n Description: Triggered when output matches a string set to break on. The\"] pub type vga_break_string_hap_callback = :: std :: option :: Option < unsafe extern \"C\" fn (callback_data : * mut lang_void , trigger_obj : * mut conf_object_t , string : * mut :: std :: os :: raw :: c_char) > ; # [doc = \" Index: Indices not supported\\n Description: Triggered before picture on screen is updated\"] pub type vga_refresh_triggered_hap_callback = :: std :: option :: Option < unsafe extern \"C\" fn (callback_data : * mut lang_void , trigger_obj : * mut conf_object_t) > ; # [doc = \" Index: break_id\\n Description:\"] pub type xterm_break_string_hap_callback = :: std :: option :: Option < unsafe extern \"C\" fn (callback_data : * mut lang_void , trigger_obj : * mut conf_object_t , break_string : * mut :: std :: os :: raw :: c_char) > ; pub type __builtin_va_list = [__va_list_tag ; 1usize] ; # [repr (C)] # [derive (Debug , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct __va_list_tag { pub gp_offset : :: std :: os :: raw :: c_uint , pub fp_offset : :: std :: os :: raw :: c_uint , pub overflow_arg_area : * mut :: std :: os :: raw :: c_void , pub reg_save_area : * mut :: std :: os :: raw :: c_void , } # [allow (clippy :: unnecessary_operation , clippy :: identity_op)] const _ : () = { [\"Size of __va_list_tag\"] [:: std :: mem :: size_of :: < __va_list_tag > () - 24usize] ; [\"Alignment of __va_list_tag\"] [:: std :: mem :: align_of :: < __va_list_tag > () - 8usize] ; [\"Offset of field: __va_list_tag::gp_offset\"] [:: std :: mem :: offset_of ! (__va_list_tag , gp_offset) - 0usize] ; [\"Offset of field: __va_list_tag::fp_offset\"] [:: std :: mem :: offset_of ! (__va_list_tag , fp_offset) - 4usize] ; [\"Offset of field: __va_list_tag::overflow_arg_area\"] [:: std :: mem :: offset_of ! (__va_list_tag , overflow_arg_area) - 8usize] ; [\"Offset of field: __va_list_tag::reg_save_area\"] [:: std :: mem :: offset_of ! (__va_list_tag , reg_save_area) - 16usize] ; } ; impl Default for __va_list_tag { fn default () -> Self { let mut s = :: std :: mem :: MaybeUninit :: < Self > :: uninit () ; unsafe { :: std :: ptr :: write_bytes (s . as_mut_ptr () , 0 , 1) ; s . assume_init () } } } # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct _dictkeysobject { pub _address : u8 , } # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct proplist { pub _address : u8 , } # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct log_info { pub _address : u8 , } # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct confdata { pub _address : u8 , } # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct extension_data { pub _address : u8 , } # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct thread_domain { pub _address : u8 , } # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct transaction_cache { pub _address : u8 , } # [doc = \" Back-pointer to interface.\"] # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct iface { pub _address : u8 , } # [doc = \" NULL if no intervals here\"] # [repr (C)] # [derive (Debug , Default , Copy , Clone , Hash , PartialOrd , Ord , PartialEq , Eq)] pub struct interval_bucket { pub _address : u8 , }";