Lines Matching full:self

69     def __init__(self):
70 super(SMBIOS, self).__init__()
71 u = unpack.Unpackable(self._header_memory)
72 self.add_field('header', Header(u))
73self._structure_memory = bits.memory(self.header.structure_table_address, self.header.structure_ta…
74 u = unpack.Unpackable(self._structure_memory)
75self.add_field('structures', unpack.unpack_all(u, _smbios_structures, self), unpack.format_each("\…
77 def structure_type(self, num):
80 … types_present = [self.structures[x].smbios_structure_type for x in range(len(self.structures))]
84 matrix[types_present[index]] = self.structures[index]
87 matrix[types_present[index]].append(self.structures[index])
89 matrix[types_present[index]] = [self.structures[index]]
98 def __init__(self, u):
99 super(Header, self).__init__()
100 self.raw_data = u.unpack_rest()
101 u = unpack.Unpackable(self.raw_data)
102 self.add_field('anchor_string', u.unpack_one("4s"))
103 self.add_field('checksum', u.unpack_one("B"))
104 self.add_field('length', u.unpack_one("B"))
105 self.add_field('major_version', u.unpack_one("B"))
106 self.add_field('minor_version', u.unpack_one("B"))
107 self.add_field('max_structure_size', u.unpack_one("<H"))
108 self.add_field('entry_point_revision', u.unpack_one("B"))
109 self.add_field('formatted_area', u.unpack_one("5s"))
110 self.add_field('intermediate_anchor_string', u.unpack_one("5s"))
111 self.add_field('intermediate_checksum', u.unpack_one("B"))
112 self.add_field('structure_table_length', u.unpack_one("<H"))
113 self.add_field('structure_table_address', u.unpack_one("<I"))
114 self.add_field('number_structures', u.unpack_one("<H"))
115 self.add_field('bcd_revision', u.unpack_one("B"))
117 self.add_field('data', u.unpack_rest())
126 def __init__(self, u, sm):
127 super(SmbiosBaseStructure, self).__init__()
128 self.start_offset = u.offset
130 self.raw_data = u.unpack_raw(length)
131 self.u = unpack.Unpackable(self.raw_data)
133 self.strings_offset = u.offset
140 self.strings_length = u.offset - self.strings_offset
141self.raw_strings = str(bits.memory(sm.header.structure_table_address + self.strings_offset, self.s…
144 self.strings = strings
146 self.add_field('type', self.u.unpack_one("B"))
147 self.add_field('length', self.u.unpack_one("B"))
148 self.add_field('handle', self.u.unpack_one("<H"))
150 def fini(self):
151 if not self.u.at_end():
152 self.add_field('data', self.u.unpack_rest())
153 del self.u
155 def fmtstr(self, i):
157 return "{} '{}'".format(i, self.getstr(i))
159 def getstr(self, i):
163 if not hasattr(self, "strings"):
165 if i > len(self.strings):
167 return self.strings[i - 1]
172 def __init__(self, u, sm):
173 super(BIOSInformation, self).__init__(u, sm)
174 u = self.u
176 self.add_field('vendor', u.unpack_one("B"), self.fmtstr)
177 self.add_field('version', u.unpack_one("B"), self.fmtstr)
178 self.add_field('starting_address_segment', u.unpack_one("<H"))
179 self.add_field('release_date', u.unpack_one("B"), self.fmtstr)
180 self.add_field('rom_size', u.unpack_one("B"))
181 self.add_field('characteristics', u.unpack_one("<Q"))
186 characteristic_bytes = self.length - 0x12
187self.add_field('characteristics_extensions', [u.unpack_one("B") for b in range(characteristic_byte…
189 self.add_field('major_release', u.unpack_one("B"))
190 self.add_field('minor_release', u.unpack_one("B"))
191 self.add_field('ec_major_release', u.unpack_one("B"))
192 self.add_field('ec_minor_release', u.unpack_one("B"))
194 self.decode_failure = True
198 self.fini()
203 def __init__(self, u, sm):
204 super(SystemInformation, self).__init__(u, sm)
205 u = self.u
207 self.add_field('manufacturer', u.unpack_one("B"), self.fmtstr)
208 self.add_field('product_name', u.unpack_one("B"), self.fmtstr)
209 self.add_field('version', u.unpack_one("B"), self.fmtstr)
210 self.add_field('serial_number', u.unpack_one("B"), self.fmtstr)
211 if self.length > 0x8:
212 self.add_field('uuid', uuid.UUID(bytes_le=u.unpack_one("16s")))
224self.add_field('wakeup_type', u.unpack_one("B"), unpack.format_table("{}", wakeup_types))
225 if self.length > 0x19:
226 self.add_field('sku_number', u.unpack_one("B"), self.fmtstr)
227 self.add_field('family', u.unpack_one("B"), self.fmtstr)
229 self.decode_failure = True
233 self.fini()
254 def __init__(self, u, sm):
255 super(BaseboardInformation, self).__init__(u, sm)
256 u = self.u
258 self.add_field('manufacturer', u.unpack_one("B"), self.fmtstr)
259 self.add_field('product', u.unpack_one("B"), self.fmtstr)
260 self.add_field('version', u.unpack_one("B"), self.fmtstr)
261 self.add_field('serial_number', u.unpack_one("B"), self.fmtstr)
263 if self.length > 0x8:
264 self.add_field('asset_tag', u.unpack_one("B"), self.fmtstr)
266 if self.length > 0x9:
267 self.add_field('feature_flags', u.unpack_one("B"))
268self.add_field('hosting_board', bool(bitfields.getbits(self.feature_flags, 0)), "feature_flags[0]=…
269self.add_field('requires_daughter_card', bool(bitfields.getbits(self.feature_flags, 1)), "feature_…
270self.add_field('removable', bool(bitfields.getbits(self.feature_flags, 2)), "feature_flags[2]={}")
271self.add_field('replaceable', bool(bitfields.getbits(self.feature_flags, 3)), "feature_flags[3]={}…
272self.add_field('hot_swappable', bool(bitfields.getbits(self.feature_flags, 4)), "feature_flags[4]=…
274 if self.length > 0xA:
275 self.add_field('location', u.unpack_one("B"), self.fmtstr)
277 if self.length > 0xB:
278 self.add_field('chassis_handle', u.unpack_one("<H"))
280 if self.length > 0xD:
281self.add_field('board_type', u.unpack_one("B"), unpack.format_table("{}", _board_types))
283 if self.length > 0xE:
284 self.add_field('handle_count', u.unpack_one("B"))
285 if self.handle_count > 0:
286self.add_field('contained_object_handles', tuple(u.unpack_one("<H") for i in range(self.handle_cou…
288 self.decode_failure = True
292 self.fini()
297 def __init__(self, u, sm):
298 super(SystemEnclosure, self).__init__(u, sm)
299 u = self.u
301 self.add_field('manufacturer', u.unpack_one("B"), self.fmtstr)
302 self.add_field('enumerated_type', u.unpack_one("B"))
303self.add_field('chassis_lock_present', bool(bitfields.getbits(self.enumerated_type, 7)), "enumerat…
335self.add_field('system_enclosure_type', bitfields.getbits(self.enumerated_type, 6, 0), unpack.form…
336 self.add_field('version', u.unpack_one("B"), self.fmtstr)
337 self.add_field('serial_number', u.unpack_one("B"), self.fmtstr)
338 self.add_field('asset_tag', u.unpack_one("B"), self.fmtstr)
340 if self.length > 9:
349self.add_field('bootup_state', u.unpack_one("B"), unpack.format_table("{}", chassis_states))
350self.add_field('power_supply_state', u.unpack_one("B"), unpack.format_table("{}", chassis_states))
351self.add_field('thermal_state', u.unpack_one("B"), unpack.format_table("{}", chassis_states))
359self.add_field('security_status', u.unpack_one("B"), unpack.format_table("{}", security_states))
360 if self.length > 0xd:
361 self.add_field('oem_defined', u.unpack_one("<I"))
362 if self.length > 0x11:
363 self.add_field('height', u.unpack_one("B"))
364 self.add_field('num_power_cords', u.unpack_one("B"))
365 self.add_field('contained_element_count', u.unpack_one("B"))
366 self.add_field('contained_element_length', u.unpack_one("B"))
367 if getattr(self, 'contained_element_count', 0):
368self.add_field('contained_elements', tuple(SystemEnclosureContainedElement(u, self.contained_eleme…
369 …if self.length > (0x15 + (getattr(self, 'contained_element_count', 0) * getattr(self, 'contained_e…
370 self.add_field('sku_number', u.unpack_one("B"), self.fmtstr)
372 self.decode_failure = True
376 self.fini()
379 def __init__(self, u, length):
380 super(SystemEnclosureContainedElement, self).__init__()
381 self.start_offset = u.offset
382 self.raw_data = u.unpack_raw(length)
383 self.u = unpack.Unpackable(self.raw_data)
384 u = self.u
385 self.add_field('contained_element_type', u.unpack_one("B"))
390self.add_field('type_select', bitfields.getbits(self.contained_element_type, 7), unpack.format_tab…
391 self.add_field('type', bitfields.getbits(self.contained_element_type, 6, 0))
392 if self.type_select == 0:
393 self.add_field('smbios_board_type', self.type, unpack.format_table("{}", _board_types))
395 self.add_field('smbios_structure_type', self.type)
396 self.add_field('minimum', u.unpack_one("B"))
397 self.add_field('maximum', u.unpack_one("B"))
399 self.add_field('data', u.unpack_rest())
400 del self.u
405 def __init__(self, u, sm):
406 super(ProcessorInformation, self).__init__(u, sm)
407 u = self.u
409 self.add_field('socket_designation', u.unpack_one("B"), self.fmtstr)
418self.add_field('processor_type', u.unpack_one("B"), unpack.format_table("{}", processor_types))
419 self.add_field('processor_family', u.unpack_one("B"))
420 self.add_field('processor_manufacturer', u.unpack_one("B"), self.fmtstr)
421 self.add_field('processor_id', u.unpack_one("<Q"))
422 self.add_field('processor_version', u.unpack_one("B"), self.fmtstr)
423 self.add_field('voltage', u.unpack_one("B"))
424 self.add_field('external_clock', u.unpack_one("<H"))
425 self.add_field('max_speed', u.unpack_one("<H"))
426 self.add_field('current_speed', u.unpack_one("<H"))
427 self.add_field('status', u.unpack_one("B"))
472self.add_field('processor_upgrade', u.unpack_one("B"), unpack.format_table("{}", processor_upgrade…
473 if self.length > 0x1A:
474 self.add_field('l1_cache_handle', u.unpack_one("<H"))
475 self.add_field('l2_cache_handle', u.unpack_one("<H"))
476 self.add_field('l3_cache_handle', u.unpack_one("<H"))
477 if self.length > 0x20:
478 self.add_field('serial_number', u.unpack_one("B"), self.fmtstr)
479 self.add_field('asset_tag', u.unpack_one("B"), self.fmtstr)
480 self.add_field('part_number', u.unpack_one("B"), self.fmtstr)
481 if self.length > 0x24:
482 self.add_field('core_count', u.unpack_one("B"))
483 self.add_field('core_enabled', u.unpack_one("B"))
484 self.add_field('thread_count', u.unpack_one("B"))
485 self.add_field('processor_characteristics', u.unpack_one("<H"))
486 if self.length > 0x28:
487 self.add_field('processor_family_2', u.unpack_one("<H"))
488 if self.length > 0x2A:
489 self.add_field('core_count2', u.unpack_one("<H"))
490 self.add_field('core_enabled2', u.unpack_one("<H"))
491 self.add_field('thread_count2', u.unpack_one("<H"))
493 self.decode_failure = True
497 self.fini()
502 def __init__(self, u, sm):
503 super(MemoryControllerInformation, self).__init__(u, sm)
504 u = self.u
516self.add_field('error_detecting_method', u.unpack_one("B"), unpack.format_table("{}", _error_detec…
517 self.add_field('error_correcting_capability', u.unpack_one("B"))
527self.add_field('supported_interleave', u.unpack_one("B"), unpack.format_table("{}", _interleaves))
528self.add_field('current_interleave', u.unpack_one("B"), unpack.format_table("{}", _interleaves))
529 self.add_field('max_memory_module_size', u.unpack_one("B"), self.fmtstr)
530 self.add_field('supported_speeds', u.unpack_one("<H"))
531 self.add_field('supported_memory_types', u.unpack_one("<H"))
532 self.add_field('memory_module_voltage', u.unpack_one("B"))
533self.add_field('req_voltage_b2', bitfields.getbits(self.memory_module_voltage, 2), "memory_module_…
534self.add_field('req_voltage_b1', bitfields.getbits(self.memory_module_voltage, 1), "memory_module_…
535self.add_field('req_voltage_b0', bitfields.getbits(self.memory_module_voltage, 0), "memory_module_…
536 self.add_field('num_associated_memory_slots', u.unpack_one("B"))
537self.add_field('memory_module_configuration_handles', u.unpack_one("<(self.num_associated_memory_s…
538 self.add_field('enabled_error_correcting_capabilities', u.unpack_one("B"))
540 self.decode_failure = True
544 self.fini()
549 def __init__(self, u, sm):
550 super(MemoryModuleInformation, self).__init__(u, sm)
551 u = self.u
553 self.add_field('socket_designation', u.unpack_one("B"), self.fmtstr)
554 self.add_field('bank_connections', u.unpack_one("B"))
555 self.add_field('current_speed', u.unpack_one("B"))
556 self.add_field('current_memory_type', u.unpack_one("<H"))
561 self.add_field('installed_mem', u.unpack_one("B"))
562self.add_field('installed_size', bitfields.getbits(self.installed_mem, 6, 0), "installed_mem[6:0]=…
563self.add_field('installed_memory_module_connection', bitfields.getbits(self.installed_mem, 7), unp…
564 self.add_field('enabled_mem', u.unpack_one("B"))
565self.add_field('enabled_size', bitfields.getbits(self.installed_mem, 6, 0), "enabled_mem[6:0]={}")
566self.add_field('enabled_memory_module_connection', bitfields.getbits(self.installed_mem, 7), unpac…
567 self.add_field('error_status', u.unpack_one("B"))
568self.add_field('error_status_info_obstained_from_event_log', bool(bitfields.getbits(self.error_sta…
569self.add_field('correctable_errors_received', bool(bitfields.getbits(self.error_status, 1)), unpac…
570self.add_field('uncorrectable_errors_received', bool(bitfields.getbits(self.error_status, 0)), unp…
572 self.decode_failure = True
576 self.fini()
581 def __init__(self, u, sm):
582 super(CacheInformation, self).__init__(u, sm)
583 u = self.u
585 self.add_field('socket_designation', u.unpack_one("B"), self.fmtstr)
594 self.add_field('cache_configuration', u.unpack_one("<H"))
601self.add_field('operational_mode', bitfields.getbits(self.cache_configuration, 9, 8), unpack.forma…
602self.add_field('enabled_at_boot_time', bool(bitfields.getbits(self.cache_configuration, 7)), "cach…
609self.add_field('location_relative_to_cpu_module', bitfields.getbits(self.cache_configuration, 6, 5…
610self.add_field('cache_socketed', bool(bitfields.getbits(self.cache_configuration, 3)), "cache_conf…
611self.add_field('cache_level', bitfields.getbits(self.cache_configuration, 2, 0), "cache_configurat…
612 self.add_field('max_cache_size', u.unpack_one("<H"))
617self.add_field('max_granularity', bitfields.getbits(self.cache_configuration, 15), unpack.format_t…
618self.add_field('max_size_in_granularity', bitfields.getbits(self.cache_configuration, 14, 0), "max…
619 self.add_field('installed_size', u.unpack_one("<H"))
620 if self.installed_size != 0:
621self.add_field('installed_granularity', bitfields.getbits(self.cache_configuration, 15), unpack.fo…
622self.add_field('installed_size_in_granularity', bitfields.getbits(self.cache_configuration, 14, 0)…
623 self.add_field('supported_sram_type', u.unpack_one("<H"))
624 self.add_field('current_sram_type', u.unpack_one("<H"))
625 if self.length > 0x0F:
626 self.add_field('cache_speed', u.unpack_one("B"))
627 if self.length > 0x10:
636self.add_field('error_correction', u.unpack_one("B"), unpack.format_table("{}", _error_correction))
637 if self.length > 0x10:
645self.add_field('system_cache_type', u.unpack_one("B"), unpack.format_table("{}", _system_cache_typ…
646 if self.length > 0x12:
663self.add_field('associativity', u.unpack_one("B"), unpack.format_table("{}", _associativity))
666 self.decode_failure = True
670 self.fini()
675 def __init__(self, u, sm):
676 super(PortConnectorInfo, self).__init__(u, sm)
677 u = self.u
679 self.add_field('internal_reference_designator', u.unpack_one("B"), self.fmtstr)
723self.add_field('internal_connector_type', u.unpack_one("B"), unpack.format_table("{}", connector_t…
724 self.add_field('external_reference_designator', u.unpack_one("B"), self.fmtstr)
725self.add_field('external_connector_type', u.unpack_one("B"), unpack.format_table("{}", connector_t…
765 self.add_field('port_type', u.unpack_one("B"), unpack.format_table("{}", port_types))
767 self.decodeFailure = True
771 self.fini()
776 def __init__(self, u, sm):
777 super(SystemSlots, self).__init__(u, sm)
778 u = self.u
780 self.add_field('designation', u.unpack_one("B"), self.fmtstr)
825 self.add_field('slot_type', u.unpack_one("B"), unpack.format_table("{}", _slot_types))
842self.add_field('slot_data_bus_width', u.unpack_one('B'), unpack.format_table("{}", _slot_data_bus_…
849self.add_field('current_usage', u.unpack_one('B'), unpack.format_table("{}", _current_usages))
856self.add_field('slot_length', u.unpack_one('B'), unpack.format_table("{}", _slot_lengths))
857 self.add_field('slot_id', u.unpack_one('<H'))
858 self.add_field('characteristics1', u.unpack_one('B'))
859self.add_field('characteristics_unknown', bool(bitfields.getbits(self.characteristics1, 0)), "char…
860self.add_field('provides_5_0_volts', bool(bitfields.getbits(self.characteristics1, 1)), "character…
861self.add_field('provides_3_3_volts', bool(bitfields.getbits(self.characteristics1, 2)), "character…
862self.add_field('shared_slot', bool(bitfields.getbits(self.characteristics1, 3)), "characteristics1…
863self.add_field('supports_pc_card_16', bool(bitfields.getbits(self.characteristics1, 4)), "characte…
864self.add_field('supports_cardbus', bool(bitfields.getbits(self.characteristics1, 5)), "characteris…
865self.add_field('supports_zoom_video', bool(bitfields.getbits(self.characteristics1, 6)), "characte…
866self.add_field('supports_modem_ring_resume', bool(bitfields.getbits(self.characteristics1, 7)), "c…
867 if self.length > 0x0C:
868 self.add_field('characteristics2', u.unpack_one('B'))
869self.add_field('supports_PME', bool(bitfields.getbits(self.characteristics2, 0)), "characteristics…
870self.add_field('supports_hot_plug', bool(bitfields.getbits(self.characteristics2, 1)), "characteri…
871self.add_field('supports_smbus', bool(bitfields.getbits(self.characteristics2, 2)), "characteristi…
872 if self.length > 0x0D:
873 self.add_field('segment_group_number', u.unpack_one('<H'))
874 self.add_field('bus_number', u.unpack_one('B'))
875 self.add_field('device_function_number', u.unpack_one('B'))
876self.add_field('device_number', bitfields.getbits(self.device_function_number, 7, 3), "device_func…
877self.add_field('function_number', bitfields.getbits(self.device_function_number, 2, 0), "device_fu…
879 self.decodeFailure = True
883 self.fini()
888 def __init__(self, u, sm):
889 super(OnBoardDevicesInformation, self).__init__(u, sm)
890 u = self.u
892 self.add_field('device_type', u.unpack_one("B"))
893self.add_field('device_enabled', bool(bitfields.getbits(self.device_type, 7)), "device_type[7]={}")
906self.add_field('type_of_device', bitfields.getbits(self.device_type, 6, 0), unpack.format_table("d…
907 self.add_field('description_string', u.unpack_one("B"), self.fmtstr)
909 self.decodeFailure = True
913 self.fini()
918 def __init__(self, u, sm):
919 super(OEMStrings, self).__init__(u, sm)
920 u = self.u
922 self.add_field('count', u.unpack_one("B"))
924 self.decodeFailure = True
928 self.fini()
933 def __init__(self, u, sm):
934 super(SystemConfigOptions, self).__init__(u, sm)
935 u = self.u
937 self.add_field('count', u.unpack_one("B"))
939 self.decodeFailure = True
943 self.fini()
948 def __init__(self, u, sm):
949 super(BIOSLanguageInformation, self).__init__(u, sm)
950 u = self.u
952 self.add_field('installable_languages', u.unpack_one("B"))
953 if self.length > 0x05:
954 self.add_field('flags', u.unpack_one('B'))
955self.add_field('abbreviated_format', bool(bitfields.getbits(self.flags, 0)), "flags[0]={}")
956 if self.length > 0x6:
958 self.add_field('current_language', u.unpack_one('B'), self.fmtstr)
960 self.decodeFailure = True
964 self.fini()
969 def __init__(self, u, sm):
970 super(GroupAssociations, self).__init__(u, sm)
971 u = self.u
973 self.add_field('group_name', u.unpack_one("B"), self.fmtstr)
974 self.add_field('item_type', u.unpack_one('B'))
975 self.add_field('item_handle', u.unpack_one('<H'))
977 self.decodeFailure = True
981 self.fini()
986 def __init__(self, u, sm):
987 super(SystemEventLog, self).__init__(u, sm)
988 u = self.u
990 self.add_field('log_area_length', u.unpack_one("<H"))
991 self.add_field('log_header_start_offset', u.unpack_one('<H'))
992 self.add_field('log_data_start_offset', u.unpack_one('<H'))
1002self.add_field('access_method', u.unpack_one('B'), unpack.format_table("{}", _access_method))
1003 self.add_field('log_status', u.unpack_one('B'))
1004self.add_field('log_area_full', bool(bitfields.getbits(self.log_status, 1)), "log_status[1]={}")
1005self.add_field('log_area_valid', bool(bitfields.getbits(self.log_status, 0)), "log_status[0]={}")
1006 self.add_field('log_change_token', u.unpack_one('<I'))
1007 self.add_field('access_method_address', u.unpack_one('<I'))
1008 if self.length > 0x14:
1015self.add_field('log_header_format', u.unpack_one("B"), unpack.format_table("{}", _log_header_forma…
1016 if self.length > 0x15:
1017 self.add_field('num_supported_log_type_descriptors', u.unpack_one('B'))
1018 if self.length > 0x16:
1019 self.add_field('length_log_type_descriptor', u.unpack_one('B'))
1020 …if self.length != (0x17 + (self.num_supported_log_type_descriptors * self.length_log_type_descript…
1021 …({}) * length_log_type_descriptor({}))".format(self.length, self.num_supported_log_type_descriptor…
1022 print "structure length = {}".format(self.length)
1023 … print "num_supported_log_type_descriptors = {}".format(self.num_supported_log_type_descriptors)
1024 print "length_log_type_descriptor = {}".format(self.length_log_type_descriptor)
1025 self.decodeFailure = True
1026self.add_field('descriptors', tuple(EventLogDescriptor.unpack(u) for i in range(self.num_supported…
1028 self.decodeFailure = True
1032 self.fini()
1082 def __init__(self, u, sm):
1083 super(PhysicalMemoryArray, self).__init__(u, sm)
1084 u = self.u
1086 if self.length > 0x4:
1103self.add_field('location', u.unpack_one("B"), unpack.format_table("{}", _location_field))
1104 if self.length > 0x05:
1114 self.add_field('use', u.unpack_one('B'), unpack.format_table("{}", _use))
1115 if self.length > 0x06:
1125self.add_field('memory_error_correction', u.unpack_one('B'), unpack.format_table("{}", _error_corr…
1126 if self.length > 0x07:
1127 self.add_field('maximum_capacity', u.unpack_one('<I'))
1128 if self.length > 0x0B:
1129 self.add_field('memory_error_information_handle', u.unpack_one('<H'))
1130 if self.length > 0x0D:
1131 self.add_field('num_memory_devices', u.unpack_one('<H'))
1132 if self.length > 0x0F:
1133 self.add_field('extended_maximum_capacity', u.unpack_one('<Q'))
1135 self.decodeFailure = True
1139 self.fini()
1144 def __init__(self, u, sm):
1145 super(MemoryDevice, self).__init__(u, sm)
1146 u = self.u
1148 if self.length > 0x4:
1149 self.add_field('physical_memory_array_handle', u.unpack_one("<H"))
1150 if self.length > 0x6:
1151 self.add_field('memory_error_information_handle', u.unpack_one("<H"))
1152 if self.length > 0x8:
1153 self.add_field('total_width', u.unpack_one("<H"))
1154 if self.length > 0xA:
1155 self.add_field('data_width', u.unpack_one("<H"))
1156 if self.length > 0xC:
1157 self.add_field('size', u.unpack_one("<H"))
1158 if self.length > 0xE:
1176self.add_field('form_factor', u.unpack_one("B"), unpack.format_table("{}", _form_factors))
1177 if self.length > 0xF:
1178 self.add_field('device_set', u.unpack_one("B"))
1179 if self.length > 0x10:
1180 self.add_field('device_locator', u.unpack_one("B"), self.fmtstr)
1181 if self.length > 0x11:
1182 self.add_field('bank_locator', u.unpack_one("B"), self.fmtstr)
1183 if self.length > 0x12:
1209self.add_field('memory_type', u.unpack_one("B"), unpack.format_table("{}", _memory_types))
1210 if self.length > 0x13:
1211 self.add_field('type_detail', u.unpack_one('<H'))
1212 if self.length > 0x15:
1213 self.add_field('speed', u.unpack_one("<H"))
1214 if self.length > 0x17:
1215 self.add_field('manufacturer', u.unpack_one("B"), self.fmtstr)
1216 if self.length > 0x18:
1217 self.add_field('serial_number', u.unpack_one("B"), self.fmtstr)
1218 if self.length > 0x19:
1219 self.add_field('asset_tag', u.unpack_one("B"), self.fmtstr)
1220 if self.length > 0x1A:
1221 self.add_field('part_number', u.unpack_one("B"), self.fmtstr)
1222 if self.length > 0x1B:
1223 self.add_field('attributes', u.unpack_one("B"))
1224self.add_field('rank', bitfields.getbits(self.attributes, 3, 0), "attributes[3:0]={}")
1225 if self.length > 0x1C:
1226 if self.size == 0x7FFF:
1227 self.add_field('extended_size', u.unpack_one('<I'))
1228self.add_field('mem_size', bitfields.getbits(self.type_detail, 30, 0), "type_detail[30:0]={}")
1231 if self.length > 0x20:
1232 self.add_field('configured_memory_clock_speed', u.unpack_one("<H"))
1233 if self.length > 0x22:
1234 self.add_field('minimum_voltage', u.unpack_one("<H"))
1235 if self.length > 0x24:
1236 self.add_field('maximum_voltage', u.unpack_one("<H"))
1237 if self.length > 0x26:
1238 self.add_field('configured_voltage', u.unpack_one("<H"))
1240 self.decodeFailure = True
1244 self.fini()
1249 def __init__(self, u, sm):
1250 super(MemoryErrorInfo32Bit, self).__init__(u, sm)
1251 u = self.u
1253 if self.length > 0x4:
1270self.add_field('error_type', u.unpack_one("B"), unpack.format_table("{}", _error_types))
1271 if self.length > 0x5:
1278self.add_field('error_granularity', u.unpack_one("B"), unpack.format_table("{}", _error_granularit…
1279 if self.length > 0x6:
1287self.add_field('error_operation', u.unpack_one("B"), unpack.format_table("{}", _error_operation_fi…
1288 if self.length > 0x7:
1289 self.add_field('vendor_syndrome', u.unpack_one("<I"))
1290 if self.length > 0xB:
1291 self.add_field('memory_array_error_address', u.unpack_one("<I"))
1292 if self.length > 0xF:
1293 self.add_field('device_error_address', u.unpack_one("<I"))
1294 if self.length > 0x13:
1295 self.add_field('error_resolution', u.unpack_one("<I"))
1297 self.decodeFailure = True
1301 self.fini()
1306 def __init__(self, u, sm):
1307 super(MemoryArrayMappedAddress, self).__init__(u, sm)
1308 u = self.u
1310 if self.length > 0x4:
1311 self.add_field('starting_address', u.unpack_one("<I"))
1313 if self.length > 0x8:
1314 self.add_field('ending_address', u.unpack_one("<I"))
1315 if self.length > 0xC:
1316 self.add_field('memory_array_handle', u.unpack_one("<H"))
1317 if self.length > 0xE:
1318 self.add_field('partition_width', u.unpack_one("B"))
1319 if self.length > 0xF:
1321 if self.starting_address == 0xFFFFFFFF:
1322 self.add_field('extended_starting_address', u.unpack_one("<Q"))
1323 if self.length > 0x17:
1324 self.add_field('extended_ending_address', u.unpack_one("<Q"))
1329 self.decodeFailure = True
1333 self.fini()
1338 def __init__(self, u, sm):
1339 super(MemoryDeviceMappedAddress, self).__init__(u, sm)
1340 u = self.u
1342 if self.length > 0x4:
1343 self.add_field('starting_address', u.unpack_one("<I"))
1345 if self.length > 0x8:
1346 self.add_field('ending_address', u.unpack_one("<I"))
1347 if self.length > 0xC:
1348 self.add_field('memory_device_handle', u.unpack_one("<H"))
1349 if self.length > 0xE:
1350 self.add_field('memory_array_mapped_address_handle', u.unpack_one("<H"))
1351 if self.length > 0x10:
1352 self.add_field('partition_row_position', u.unpack_one("B"))
1353 if self.length > 0x11:
1354 self.add_field('interleave_position', u.unpack_one("B"))
1355 if self.length > 0x12:
1356 self.add_field('interleave_data_depth', u.unpack_one("B"))
1357 if self.length > 0x13:
1359 if self.starting_address == 0xFFFFFFFF:
1360 self.add_field('extended_starting_address', u.unpack_one("<Q"))
1361 if self.length > 0x1B:
1362 self.add_field('extended_ending_address', u.unpack_one("<Q"))
1366 self.decodeFailure = True
1370 self.fini()
1375 def __init__(self, u, sm):
1376 super(BuiltInPointingDevice, self).__init__(u, sm)
1377 u = self.u
1379 if self.length > 0x4:
1391self.add_field('pointing_device_type', u.unpack_one("B"), unpack.format_table("{}", _pointing_devi…
1392 if self.length > 0x5:
1406self.add_field('interface', u.unpack_one("B"), unpack.format_table("{}", _interfaces))
1407 if self.length > 0x6:
1408 self.add_field('num_buttons', u.unpack_one("B"))
1410 self.decodeFailure = True
1414 self.fini()
1419 def __init__(self, u, sm):
1420 super(PortableBattery, self).__init__(u, sm)
1421 u = self.u
1423 if self.length > 0x4:
1424 self.add_field('location', u.unpack_one("B"), self.fmtstr)
1425 if self.length > 0x5:
1426 self.add_field('manufacturer', u.unpack_one("B"), self.fmtstr)
1427 if self.length > 0x6:
1428 self.add_field('manufacturer_date', u.unpack_one("B"), self.fmtstr)
1429 if self.length > 0x7:
1430 self.add_field('serial_number', u.unpack_one("B"), self.fmtstr)
1431 if self.length > 0x8:
1432 self.add_field('device_name', u.unpack_one("B"), self.fmtstr)
1433 if self.length > 0x9:
1444self.add_field('device_chemistry', u.unpack_one("B"), unpack.format_table("{}", _device_chemistry))
1445 if self.length > 0xA:
1446 self.add_field('design_capacity', u.unpack_one("<H"))
1447 if self.length > 0xC:
1448 self.add_field('design_voltage', u.unpack_one("<H"))
1449 if self.length > 0xE:
1450 self.add_field('sbds_version_number', u.unpack_one("B"), self.fmtstr)
1451 if self.length > 0xF:
1452 self.add_field('max_error_battery_data', u.unpack_one("B"), self.fmtstr)
1453 if self.length > 0x10:
1454 if self.serial_number == 0:
1455 self.add_field('sbds_serial_number', u.unpack_one("<H"))
1458 if self.length > 0x12:
1459 if self.manufacturer_date == 0:
1460 self.add_field('sbds_manufacture_date', u.unpack_one("<H"))
1461self.add_field('year_biased_by_1980', bitfields.getbits(self.sbds_manufacture_date, 15, 9), "sbds_…
1462self.add_field('month', bitfields.getbits(self.sbds_manufacture_date, 8, 5), "sbds_manufacture_dat…
1463self.add_field('date', bitfields.getbits(self.sbds_manufacture_date, 4, 0), "sbds_manufacture_date…
1466 if self.length > 0x14:
1467 if self.device_chemistry == 0x02:
1468 self.add_field('sbds_device_chemistry', u.unpack_one("B"), self.fmtstr)
1471 if self.length > 0x15:
1472 self.add_field('design_capacity_multiplier', u.unpack_one("B"))
1473 if self.length > 0x16:
1474 self.add_field('oem_specific', u.unpack_one("<I"))
1476 self.decodeFailure = True
1480 self.fini()
1485 def __init__(self, u, sm):
1486 super(SystemReset, self).__init__(u, sm)
1487 u = self.u
1489 if self.length > 0x4:
1490 self.add_field('capabilities', u.unpack_one("B"))
1491self.add_field('contains_watchdog_timer', bool(bitfields.getbits(self.capabilities, 5)), "capabili…
1498self.add_field('boot_option_on_limit', bitfields.getbits(self.capabilities, 4, 3), unpack.format_t…
1499self.add_field('boot_option_after_watchdog_reset', bitfields.getbits(self.capabilities, 2, 1), unp…
1500self.add_field('system_reset_enabled_by_user', bool(bitfields.getbits(self.capabilities, 0)), "cap…
1501 if self.length > 0x5:
1502 self.add_field('reset_count', u.unpack_one("<H"))
1503 if self.length > 0x5:
1504 self.add_field('reset_limit', u.unpack_one("<H"))
1505 if self.length > 0x9:
1506 self.add_field('timer_interval', u.unpack_one("<H"))
1507 if self.length > 0xB:
1508 self.add_field('timeout', u.unpack_one("<H"))
1510 self.decodeFailure = True
1514 self.fini()
1519 def __init__(self, u, sm):
1520 super(HardwareSecurity, self).__init__(u, sm)
1521 u = self.u
1523 if self.length > 0x4:
1524 self.add_field('hardware_security_settings', u.unpack_one("B"))
1531self.add_field('power_on_password_status', bitfields.getbits(self.hardware_security_settings, 7, 6…
1532self.add_field('keyboard_password_status', bitfields.getbits(self.hardware_security_settings, 5, 4…
1533self.add_field('admin_password_status', bitfields.getbits(self.hardware_security_settings, 3, 2), …
1534self.add_field('front_panel_reset_status', bitfields.getbits(self.hardware_security_settings, 1, 0…
1536 self.decodeFailure = True
1540 self.fini()
1545 def __init__(self, u, sm):
1546 super(SystemPowerControls, self).__init__(u, sm)
1547 u = self.u
1549 if self.length > 0x4:
1550 self.add_field('next_scheduled_poweron_month', u.unpack_one("B"))
1551 self.add_field('next_scheduled_poweron_day_of_month', u.unpack_one("B"))
1552 self.add_field('next_scheduled_poweron_hour', u.unpack_one("B"))
1553 self.add_field('next_scheduled_poweron_minute', u.unpack_one("B"))
1554 self.add_field('next_scheduled_poweron_second', u.unpack_one("B"))
1556 self.decodeFailure = True
1560 self.fini()
1565 def __init__(self, u, sm):
1566 super(VoltageProbe, self).__init__(u, sm)
1567 u = self.u
1569 if self.length > 0x4:
1570 self.add_field('description', u.unpack_one("B"), self.fmtstr)
1571 if self.length > 0x5:
1572 self.add_field('location_and_status', u.unpack_one("B"))
1594self.add_field('status', bitfields.getbits(self.location_and_status, 7, 5), unpack.format_table("l…
1595self.add_field('location', bitfields.getbits(self.location_and_status, 4, 0), unpack.format_table(…
1596 if self.length > 0x6:
1597 self.add_field('max_value', u.unpack_one("<H"))
1598 if self.length > 0x8:
1599 self.add_field('min_value', u.unpack_one("<H"))
1600 if self.length > 0xA:
1601 self.add_field('resolution', u.unpack_one("<H"))
1602 if self.length > 0xC:
1603 self.add_field('tolerance', u.unpack_one("<H"))
1604 if self.length > 0xE:
1605 self.add_field('accuracy', u.unpack_one("<H"))
1606 if self.length > 0x10:
1607 self.add_field('oem_defined', u.unpack_one("<I"))
1608 if self.length > 0x14:
1609 self.add_field('nominal_value', u.unpack_one("<H"))
1611 self.decodeFailure = True
1615 self.fini()
1620 def __init__(self, u, sm):
1621 super(CoolingDevice, self).__init__(u, sm)
1622 u = self.u
1624 if self.length > 0x4:
1625 self.add_field('temperature_probe_handle', u.unpack_one("<H"))
1626 if self.length > 0x6:
1627 self.add_field('device_type_and_status', u.unpack_one("B"))
1649self.add_field('status', bitfields.getbits(self.device_type_and_status, 7, 5), unpack.format_table…
1650self.add_field('device_type', bitfields.getbits(self.device_type_and_status, 4, 0), unpack.format_…
1651 if self.length > 0x7:
1652 self.add_field('cooling_unit_group', u.unpack_one("B"))
1653 if self.length > 0x8:
1654 self.add_field('OEM_defined', u.unpack_one("<I"))
1655 if self.length > 0xC:
1656 self.add_field('nominal_speed', u.unpack_one("<H"))
1657 if self.length > 0xE:
1658 self.add_field('description', u.unpack_one("B"), self.fmtstr)
1660 self.decodeFailure = True
1664 self.fini()
1669 def __init__(self, u, sm):
1670 super(TemperatureProbe, self).__init__(u, sm)
1671 u = self.u
1673 if self.length > 0x4:
1674 self.add_field('description', u.unpack_one("B"), self.fmtstr)
1675 if self.length > 0x5:
1676 self.add_field('location_and_status', u.unpack_one("B"))
1702self.add_field('status', bitfields.getbits(self.location_and_status, 7, 5), unpack.format_table("l…
1703self.add_field('location', bitfields.getbits(self.location_and_status, 4, 0), unpack.format_table(…
1704 if self.length > 0x6:
1705 self.add_field('maximum_value', u.unpack_one("<H"))
1706 if self.length > 0x8:
1707 self.add_field('minimum_value', u.unpack_one("<H"))
1708 if self.length > 0xA:
1709 self.add_field('resolution', u.unpack_one("<H"))
1710 if self.length > 0xC:
1711 self.add_field('tolerance', u.unpack_one("<H"))
1712 if self.length > 0xE:
1713 self.add_field('accuracy', u.unpack_one("<H"))
1714 if self.length > 0x10:
1715 self.add_field('OEM_defined', u.unpack_one("<I"))
1716 if self.length > 0x14:
1717 self.add_field('nominal_value', u.unpack_one("<H"))
1719 self.decodeFailure = True
1723 self.fini()
1728 def __init__(self, u, sm):
1729 super(ElectricalCurrentProbe, self).__init__(u, sm)
1730 u = self.u
1732 if self.length > 0x4:
1733 self.add_field('description', u.unpack_one("B"), self.fmtstr)
1734 if self.length > 0x5:
1735 self.add_field('location_and_status', u.unpack_one("B"))
1761self.add_field('status', bitfields.getbits(self.location_and_status, 7, 5), unpack.format_table("l…
1762self.add_field('location', bitfields.getbits(self.location_and_status, 4, 0), unpack.format_table(…
1763 if self.length > 0x6:
1764 self.add_field('maximum_value', u.unpack_one("<H"))
1765 if self.length > 0x8:
1766 self.add_field('minimum_value', u.unpack_one("<H"))
1767 if self.length > 0xA:
1768 self.add_field('resolution', u.unpack_one("<H"))
1769 if self.length > 0xC:
1770 self.add_field('tolerance', u.unpack_one("<H"))
1771 if self.length > 0xE:
1772 self.add_field('accuracy', u.unpack_one("<H"))
1773 if self.length > 0x10:
1774 self.add_field('OEM_defined', u.unpack_one("<I"))
1775 if self.length > 0x14:
1776 self.add_field('nominal_value', u.unpack_one("<H"))
1778 self.decodeFailure = True
1782 self.fini()
1787 def __init__(self, u, sm):
1788 super(OutOfBandRemoteAccess, self).__init__(u, sm)
1789 u = self.u
1791 if self.length > 0x4:
1792 self.add_field('manufacturer_name', u.unpack_one("B"), self.fmtstr)
1793 if self.length > 0x5:
1794 self.add_field('connections', u.unpack_one("B"))
1795self.add_field('outbound_connection_enabled', bool(bitfields.getbits(self.connections, 1)), "conne…
1796self.add_field('inbound_connection_enabled', bool(bitfields.getbits(self.connections, 0)), "connec…
1798 self.decodeFailure = True
1802 self.fini()
1810 def __init__(self, u, sm):
1811 super(SystemBootInformation, self).__init__(u, sm)
1812 u = self.u
1814 if self.length > 0xA:
1830self.add_field('boot_status', u.unpack_one("B"), unpack.format_table("{}", _boot_status))
1832 self.decodeFailure = True
1836 self.fini()
1841 def __init__(self, u, sm):
1842 super(MemoryErrorInfo64Bit, self).__init__(u, sm)
1843 u = self.u
1845 if self.length > 0x4:
1862self.add_field('error_type', u.unpack_one("B"), unpack.format_table("{}", _error_types))
1863 if self.length > 0x5:
1870self.add_field('error_granularity', u.unpack_one("B"), unpack.format_table("{}", _error_granularit…
1871 if self.length > 0x6:
1879self.add_field('error_operation', u.unpack_one("B"), unpack.format_table("{}", _error_operation_fi…
1880 if self.length > 0x7:
1881 self.add_field('vendor_syndrome', u.unpack_one("<I"))
1882 if self.length > 0xB:
1883 self.add_field('memory_array_error_address', u.unpack_one("<Q"))
1884 if self.length > 0xF:
1885 self.add_field('device_error_address', u.unpack_one("<Q"))
1886 if self.length > 0x13:
1887 self.add_field('error_resolution', u.unpack_one("<Q"))
1889 self.decodeFailure = True
1893 self.fini()
1898 def __init__(self, u, sm):
1899 super(ManagementDevice, self).__init__(u, sm)
1900 u = self.u
1902 if self.length > 0x4:
1903 self.add_field('description', u.unpack_one("B"), self.fmtstr)
1904 if self.length > 0x5:
1920 self.add_field('device_type', u.unpack_one("B"), unpack.format_table("{}", _type))
1921 if self.length > 0x6:
1922 self.add_field('address', u.unpack_one("<I"))
1923 if self.length > 0xA:
1931self.add_field('address_type', u.unpack_one("B"), unpack.format_table("{}", _address_type))
1933 self.decodeFailure = True
1937 self.fini()
1942 def __init__(self, u, sm):
1943 super(ManagementDeviceComponent, self).__init__(u, sm)
1944 u = self.u
1946 if self.length > 0x4:
1947 self.add_field('description', u.unpack_one("B"), self.fmtstr)
1948 if self.length > 0x5:
1949 self.add_field('management_device_handle', u.unpack_one("<H"))
1950 if self.length > 0x7:
1951 self.add_field('component_handle', u.unpack_one("<H"))
1952 if self.length > 0x9:
1953 self.add_field('threshold_handle', u.unpack_one("<H"))
1955 self.decodeFailure = True
1959 self.fini()
1964 def __init__(self, u, sm):
1965 super(ManagementDeviceThresholdData, self).__init__(u, sm)
1966 u = self.u
1968 if self.length > 0x4:
1969 self.add_field('lower_threshold_noncritical', u.unpack_one("<H"))
1970 if self.length > 0x6:
1971 self.add_field('upper_threshold_noncritical', u.unpack_one("<H"))
1972 if self.length > 0x8:
1973 self.add_field('lower_threshold_critical', u.unpack_one("<H"))
1974 if self.length > 0xA:
1975 self.add_field('upper_threshold_critical', u.unpack_one("<H"))
1976 if self.length > 0xC:
1977 self.add_field('lower_threshold_nonrecoverable', u.unpack_one("<H"))
1978 if self.length > 0xE:
1979 self.add_field('upper_threshold_nonrecoverable', u.unpack_one("<H"))
1981 self.decodeFailure = True
1985 self.fini()
1990 def __init__(self, u, sm):
1991 super(MemoryChannel, self).__init__(u, sm)
1992 u = self.u
1994 if self.length > 0x4:
2001self.add_field('channel_type', u.unpack_one("B"), unpack.format_table("{}", _channel_type))
2002 if self.length > 0x6:
2003 self.add_field('max_channel_load', u.unpack_one("B"))
2004 if self.length > 0x8:
2005 self.add_field('memory_device_count', u.unpack_one("B"))
2006 if self.length > 0xA:
2007 self.add_field('memory_device_load', u.unpack_one("B"))
2008 if self.length > 0xC:
2009 self.add_field('memory_device_handle', u.unpack_one("<H"))
2011 self.decodeFailure = True
2015 self.fini()
2020 def __init__(self, u, sm):
2021 super(IPMIDeviceInformation, self).__init__(u, sm)
2022 u = self.u
2031self.add_field('interface_type', u.unpack_one("B"), unpack.format_table("{}", _interface_type))
2032 self.add_field('ipmi_specification_revision', u.unpack_one("B"))
2033self.add_field('msd_revision', bitfields.getbits(self.ipmi_specification_revision, 7, 4), "ipmi_sp…
2034self.add_field('lsd_revision', bitfields.getbits(self.ipmi_specification_revision, 3, 0), "ipmi_sp…
2036 self.add_field('i2c_slave_address', u.unpack_one("B"))
2037 self.add_field('nv_storage_device_address', u.unpack_one("B"))
2038 self.add_field('base_address', u.unpack_one("<Q"))
2040 self.add_field('base_address_modifier_interrupt_info', u.unpack_one("B"))
2047self.add_field('register_spacing', bitfields.getbits(self.base_address_modifier_interrupt_info, 7,…
2048self.add_field('ls_bit_for_addresses', bitfields.getbits(self.base_address_modifier_interrupt_info…
2049self.add_field('interrupt_info_specified', bool(bitfields.getbits(self.base_address_modifier_inter…
2054self.add_field('interrupt_polarity', bitfields.getbits(self.base_address_modifier_interrupt_info, …
2059self.add_field('interrupt_trigger_mode', bitfields.getbits(self.base_address_modifier_interrupt_in…
2060 self.add_field('interrupt_number', u.unpack_one("B"))
2062 self.decodeFailure = True
2066 self.fini()
2071 def __init__(self, u, sm):
2072 super(SystemPowerSupply, self).__init__(u, sm)
2073 u = self.u
2075 if self.length > 0x4:
2076 self.add_field('power_unit_group', u.unpack_one("B"))
2077 if self.length > 0x5:
2078 self.add_field('location', u.unpack_one("B"), self.fmtstr)
2079 if self.length > 0x6:
2080 self.add_field('device_name', u.unpack_one("B"), self.fmtstr)
2081 if self.length > 0x7:
2082 self.add_field('manufacturer', u.unpack_one("B"), self.fmtstr)
2083 if self.length > 0x8:
2084 self.add_field('serial_number', u.unpack_one("B"), self.fmtstr)
2085 if self.length > 0x9:
2086 self.add_field('asset_tag', u.unpack_one("B"), self.fmtstr)
2087 if self.length > 0xA:
2088 self.add_field('model_part_number', u.unpack_one("B"), self.fmtstr)
2089 if self.length > 0xB:
2090 self.add_field('revision_level', u.unpack_one("B"), self.fmtstr)
2091 if self.length > 0xC:
2092 self.add_field('max_power_capacity', u.unpack_one("<H"))
2093 if self.length > 0xE:
2094 self.add_field('power_supply_characteristics', u.unpack_one("<H"))
2106self.add_field('dmtf_power_supply_type', bitfields.getbits(self.power_supply_characteristics, 13, …
2114self.add_field('status', bitfields.getbits(self.power_supply_characteristics, 9, 7), unpack.format…
2124self.add_field('dmtf_input_voltage_range_switching', bitfields.getbits(self.power_supply_character…
2125self.add_field('power_supply_unplugged', bool(bitfields.getbits(self.power_supply_characteristics,…
2126self.add_field('power_supply_present', bool(bitfields.getbits(self.power_supply_characteristics, 1…
2127self.add_field('power_supply_hot_replaceable', bool(bitfields.getbits(self.power_supply_characteri…
2128 if self.length > 0x10:
2129 self.add_field('input_voltage_probe_handle', u.unpack_one("<H"))
2130 if self.length > 0x12:
2131 self.add_field('cooling_device_handle', u.unpack_one("<H"))
2132 if self.length > 0x14:
2133 self.add_field('input_current_probe_handle', u.unpack_one("<H"))
2135 self.decodeFailure = True
2139 self.fini()
2144 def __init__(self, u, sm):
2145 super(AdditionalInformation, self).__init__(u, sm)
2146 u = self.u
2148 if self.length > 0x4:
2149 self.add_field('num_additional_information_entries', u.unpack_one("B"))
2150 if self.length > 0x5:
2151 self.add_field('additional_information_entry_length', u.unpack_one("B"))
2152 self.add_field('referenced_handle', u.unpack_one("<H"))
2153 self.add_field('referenced_offset', u.unpack_one("B"))
2154 self.add_field('string', u.unpack_one("B"), self.fmtstr)
2155 self.add_field('value', u.unpack_rest())
2157 self.decodeFailure = True
2161 self.fini()
2166 def __init__(self, u, sm):
2167 super(OnboardDevicesExtendedInformation, self).__init__(u, sm)
2168 u = self.u
2170 if self.length > 0x4:
2171 self.add_field('reference_designation', u.unpack_one("B"), self.fmtstr)
2172 if self.length > 0x5:
2173 self.add_field('device_type', u.unpack_one("B"))
2174self.add_field('device_enabled', bool(bitfields.getbits(self.device_type, 7)), "device_type[7]={}")
2187self.add_field('type_of_device', bitfields.getbits(self.device_type, 6, 0), unpack.format_table("d…
2188 if self.length > 0x6:
2189 self.add_field('device_type_instance', u.unpack_one("B"))
2190 if self.length > 0x7:
2191 self.add_field('segment_group_number', u.unpack_one("<H"))
2192 if self.length > 0x9:
2193 self.add_field('bus_number', u.unpack_one("B"), self.fmtstr)
2194 if self.length > 0xA:
2195 self.add_field('device_and_function_number', u.unpack_one("B"))
2196self.add_field('device_number', bitfields.getbits(self.device_type, 7, 3), "device_and_function_nu…
2197self.add_field('function_number', bitfields.getbits(self.device_type, 2, 0), "device_and_function_…
2199 self.decodeFailure = True
2203 self.fini()
2208 def __init__(self, u, sm):
2209 super(ManagementControllerHostInterface, self).__init__(u, sm)
2210 u = self.u
2212 if self.length > 0x4:
2225self.add_field('interface_type', u.unpack_one("B"), unpack.format_table("{}", _interface_types))
2226 if self.length > 0x5:
2227 self.add_field('mc_host_interface_data', u.unpack_rest(), self.fmtstr)
2229 self.decodeFailure = True
2233 self.fini()
2238 def __init__(self, u, sm):
2239 super(Inactive, self).__init__(u, sm)
2240 self.fini()
2245 def __init__(self, u, sm):
2246 super(EndOfTable, self).__init__(u, sm)
2247 self.fini()
2252 def __init__(self, u, sm):
2253 super(SmbiosStructureUnknown, self).__init__(u, sm)
2254 self.fini()