ntdll: Use a common structure for the SMBIOS table entry header.

Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
Hans Leidekker 2019-07-02 15:28:34 +02:00 committed by Alexandre Julliard
parent bd8ce4c1b1
commit 16e5c78bfe
1 changed files with 20 additions and 22 deletions

View File

@ -79,10 +79,14 @@ struct smbios_prologue {
DWORD length; DWORD length;
}; };
struct smbios_bios { struct smbios_header {
BYTE type; BYTE type;
BYTE length; BYTE length;
WORD handle; WORD handle;
};
struct smbios_bios {
struct smbios_header hdr;
BYTE vendor; BYTE vendor;
BYTE version; BYTE version;
WORD start; WORD start;
@ -92,9 +96,7 @@ struct smbios_bios {
}; };
struct smbios_system { struct smbios_system {
BYTE type; struct smbios_header hdr;
BYTE length;
WORD handle;
BYTE vendor; BYTE vendor;
BYTE product; BYTE product;
BYTE version; BYTE version;
@ -102,9 +104,7 @@ struct smbios_system {
}; };
struct smbios_board { struct smbios_board {
BYTE type; struct smbios_header hdr;
BYTE length;
WORD handle;
BYTE vendor; BYTE vendor;
BYTE product; BYTE product;
BYTE version; BYTE version;
@ -112,9 +112,7 @@ struct smbios_board {
}; };
struct smbios_chassis { struct smbios_chassis {
BYTE type; struct smbios_header hdr;
BYTE length;
WORD handle;
BYTE vendor; BYTE vendor;
BYTE shape; BYTE shape;
BYTE version; BYTE version;
@ -2139,9 +2137,9 @@ static NTSTATUS get_firmware_info(SYSTEM_FIRMWARE_TABLE_INFORMATION *sfti, ULONG
string_count = 0; string_count = 0;
bios = (struct smbios_bios*)buffer; bios = (struct smbios_bios*)buffer;
bios->type = 0; bios->hdr.type = 0;
bios->length = sizeof(struct smbios_bios); bios->hdr.length = sizeof(struct smbios_bios);
bios->handle = 0; bios->hdr.handle = 0;
bios->vendor = bios_vendor_len ? ++string_count : 0; bios->vendor = bios_vendor_len ? ++string_count : 0;
bios->version = bios_version_len ? ++string_count : 0; bios->version = bios_version_len ? ++string_count : 0;
bios->start = 0; bios->start = 0;
@ -2158,9 +2156,9 @@ static NTSTATUS get_firmware_info(SYSTEM_FIRMWARE_TABLE_INFORMATION *sfti, ULONG
string_count = 0; string_count = 0;
system = (struct smbios_system*)buffer; system = (struct smbios_system*)buffer;
system->type = 1; system->hdr.type = 1;
system->length = sizeof(struct smbios_system); system->hdr.length = sizeof(struct smbios_system);
system->handle = 0; system->hdr.handle = 0;
system->vendor = system_vendor_len ? ++string_count : 0; system->vendor = system_vendor_len ? ++string_count : 0;
system->product = system_product_len ? ++string_count : 0; system->product = system_product_len ? ++string_count : 0;
system->version = system_version_len ? ++string_count : 0; system->version = system_version_len ? ++string_count : 0;
@ -2176,9 +2174,9 @@ static NTSTATUS get_firmware_info(SYSTEM_FIRMWARE_TABLE_INFORMATION *sfti, ULONG
string_count = 0; string_count = 0;
board = (struct smbios_board*)buffer; board = (struct smbios_board*)buffer;
board->type = 2; board->hdr.type = 2;
board->length = sizeof(struct smbios_board); board->hdr.length = sizeof(struct smbios_board);
board->handle = 0; board->hdr.handle = 0;
board->vendor = board_vendor_len ? ++string_count : 0; board->vendor = board_vendor_len ? ++string_count : 0;
board->product = board_product_len ? ++string_count : 0; board->product = board_product_len ? ++string_count : 0;
board->version = board_version_len ? ++string_count : 0; board->version = board_version_len ? ++string_count : 0;
@ -2194,9 +2192,9 @@ static NTSTATUS get_firmware_info(SYSTEM_FIRMWARE_TABLE_INFORMATION *sfti, ULONG
string_count = 0; string_count = 0;
chassis = (struct smbios_chassis*)buffer; chassis = (struct smbios_chassis*)buffer;
chassis->type = 3; chassis->hdr.type = 3;
chassis->length = sizeof(struct smbios_chassis); chassis->hdr.length = sizeof(struct smbios_chassis);
chassis->handle = 0; chassis->hdr.handle = 0;
chassis->vendor = chassis_vendor_len ? ++string_count : 0; chassis->vendor = chassis_vendor_len ? ++string_count : 0;
chassis->shape = 0x2; /* unknown */ chassis->shape = 0x2; /* unknown */
chassis->version = chassis_version_len ? ++string_count : 0; chassis->version = chassis_version_len ? ++string_count : 0;