1libnvme(9) API Manual libnvme(9)
2
3
4
6 struct nbft_header - NBFT Table - Header (Figure 8)
7
9 struct nbft_header {
10 char signature[4];
11 __le32 length;
12 __u8 major_revision;
13 __u8 checksum;
14 char oem_id[6];
15 char oem_table_id[8];
16 __le32 oem_revision;
17 __le32 creator_id;
18 __le32 creator_revision;
19 __le32 heap_offset;
20 __le32 heap_length;
21 struct nbft_heap_obj driver_dev_path_sig;
22 __u8 minor_revision;
23 __u8 reserved[13];
24 };
25
26
28 signature Signature: An ASCII string representation of the table
29 identifier. This field shall be set to the value 4E424654h
30 (i.e. "NBFT", see #NBFT_HEADER_SIG).
31
32 length Length: The length of the table, in bytes, including the
33 header, starting from offset 0h. This field is used to
34 record the size of the entire table.
35
36 major_revision
37 Major Revision: The major revision of the structure corre‐
38 sponding to the Signature field. Larger major revision num‐
39 bers should not be assumed backward compatible to lower ma‐
40 jor revision numbers with the same signature.
41
42 checksum Checksum: The entire table, including the Checksum field,
43 shall sum to 0h to be considered valid.
44
45 oem_id OEMID shall be populated by the NBFT driver writer by an
46 OEM-supplied string that identifies the OEM. All trailing
47 bytes shall be NULL.
48
49 oem_table_id
50 OEM Table ID: This field shall be populated by the NBFT
51 driver writer with an OEM-supplied string that the OEM uses
52 to identify the particular data table. This field is par‐
53 ticularly useful when defining a definition block to dis‐
54 tinguish definition block functions. The OEM assigns each
55 dissimilar table a new OEM Table ID.
56
57 oem_revision
58 OEM Revision: An OEM-supplied revision number. Larger num‐
59 bers are assumed to be newer revisions.
60
61 creator_id Creator ID: Vendor ID of utility that created the table.
62 For instance, this may be the ID for the ASL Compiler.
63
64 creator_revision
65 Creator Revision: Revision of utility that created the ta‐
66 ble. For instance, this may be the ID for the ASL Compiler.
67
68 heap_offset Heap Offset (HO): This field indicates the offset in bytes
69 of the heap, if any, from byte offset 0h of the NBFT Table
70 Header.
71
72 heap_length Heap Length (HL): The length of the heap, if any.
73
74 driver_dev_path_sig
75 Driver Signature Heap Object Reference: This field indi‐
76 cates the offset in bytes of a heap object containing the
77 Driver Signature, if any, from byte offset 0h of the NBFT
78 Table Header.
79
80 minor_revision
81 Minor Revision: The minor revision of the structure corre‐
82 sponding to the Signature field. If the major revision num‐
83 bers are the same, any minor revision number differences
84 shall be backwards compatible with the same signature.
85
86 reserved Reserved.
87
88
89
90October 2023 struct nbft_header libnvme(9)