The tables below contain information about different LSB elements, their relationships and some additional information such as testing status. All these tables are a part of the LSB Specification Database (and on its page one can found a legend about tables naming).
The primary keys in all tables are marked green, the unique keys are marked blue. In the composite keys the order of fields is that in which they are declared in description table. Note that now each table has no more that one unique key, so if more than one fields are marked blue for one table then these keys form the composite unique key.
The AbiApi table is a relation table that implements the relation between binary symbols and source level interfaces (for those symbols that are included in binary specification only).
| Field | Type | Default | NULL | Description |
|---|---|---|---|---|
| AAbinint | int(10) unsigned | '0' | No | Index into Interface table (Interface.Iid) corresponding to binary symbol |
| AAsrcint | int(10) unsigned | '0' | No | Index into Interface table (Interface.Iid) corresponding to source level interface |
| AAvalue | text | No | Macro which can be used to declare source level interface through the binary one | |
| AAappearedin | varchar(5) | '' | No | LSB version where the class relation was introduced |
| AAwithdrawnin | varchar(5) | NULL | Yes | LSB version where the relation was withdrawn |
The AbiMacro table is a relation table that implements the relation between binary symbols and macro definitions (for those symbols that are included in binary specification only).
| Field | Type | Default | NULL | Description |
|---|---|---|---|---|
| AMbinint | int(10) unsigned | '0' | No | Index into Interface table (Interface.Iid) corresponding to binary symbol |
| AMmacro | int(10) unsigned | '0' | No | Index into Constant table (Constant.Cid) corresponding to macro |
The ArchClass table is a Relation table that implements the relation between Architecture and ClassInfo.
| Field | Type | Default | NULL | Description |
|---|---|---|---|---|
| ACcid | int(10) unsigned | '0' | No | Index into ClassInfo table (ClassInfo.Cid) |
| ACaid | int(10) unsigned | '1' | No | Index into Architecture table (Architecture.Aid) |
| ACpos | int(11) | '0' | No | Which set of vtable entries this record describes. ClassVtab and ArchClass tables should be joined on ACcid=CVcid and ACpos=CVpos |
| ACbaseoffset | int(11) | '0' | No | Base offset from the 'this' pointer of the Class record |
| ACvoffset | int(11) | '0' | No | Vcall offset |
| ACappearedin | varchar(5) | '' | No | LSB version where the class appeared |
| ACwithdrawnin | varchar(5) | NULL | Yes | LSB version where the class was withdrawn |
The ArchConst table is a Relation table that implements the relation between Architecture and Constant.
| Field | Type | Default | NULL | Description |
|---|---|---|---|---|
| ACaid | int(10) unsigned | '0' | No | Index into Architecture table (Architecture.Aid) |
| ACcid | int(10) unsigned | '0' | No | Index into Constant table (Constant.Cid) |
| ACvalue | text | No | The value of the constant ("right hand side") | |
| ACappearedin | varchar(5) | '' | No | LSB version where the constant appeared |
| ACwithdrawnin | varchar(5) | NULL | Yes | LSB version where the constant was withdrawn |
| ACorder | int(11) | '0' | No | Ordering. When header content is generated, its constants are ordered first by ACorder and then by ACvalue (which is a string, not a number). |
The ArchDE table is a Relation table that implements the relation between Architecture and DynamicEntries.
| Field | Type | Default | NULL | Description |
|---|---|---|---|---|
| ADEdeid | int(10) unsigned | '0' | No | Index into DynamicEntries table (DynamicEntries.DEid) |
| ADEaid | int(10) unsigned | '1' | No | Index into Architecture table (Architecture.Aid) |
| ADEstd | int(10) unsigned | '1' | No | Standard where this entry is defined for this architecture (index into Standard table (Standard.Sid)) |
| ADEdescription | blob | No | Dynamic Entry description | |
| ADEappearedin | varchar(5) | '' | No | LSB version where the dynamic entry appeared |
| ADEwithdrawnin | varchar(5) | NULL | Yes | LSB version where the dynamic entry was withdrawn |
The ArchES table is a Relation table that implements the relation between Architecture and ElfSections.
| Field | Type | Default | NULL | Description |
|---|---|---|---|---|
| AESesid | int(10) unsigned | '0' | No | Index into ElfSections table (ElfSections.ESid) |
| AESaid | int(10) unsigned | '1' | No | Index into Architecture table (Architecture.Aid) |
| AESstd | int(10) unsigned | '1' | No | Standard where this section is defined for this architecture (index into Standard table (Standard.Sid)) |
| AESattributes | varchar(60) | NULL | Yes | Attributes of elf section (SHF_ALLOC, SHF_WRITE etc.). If more than one attribute is specified, then the attributes are divided by '+' character (for example, 'SHF_ALLOC+SHF_WRITE') |
| AEStype | int(10) unsigned | '1' | No | Type of the elf section (index into SectionTypes table (SectionTypes.STid)) |
| AESdescription | blob | No | Elf Section description | |
| AESappearedin | varchar(5) | '' | No | LSB version where the elf section appeared |
| AESwithdrawnin | varchar(5) | NULL | Yes | LSB version where the elf section was withdrawn |
| AESurl | varchar(255) | NULL | Yes | Relative url for detailed section description |
The ArchInt table is a Relation table that implements the N-to-N relation between Architecture and Interface.
| Field | Type | Default | NULL | Description |
|---|---|---|---|---|
| AIarch | int(10) unsigned | '0' | No | Index into Archicture table (Architecture.Aid) |
| AIint | int(10) unsigned | '0' | No | Index into Interface table (Interface.Iid) |
| AIversion | int(10) unsigned | '0' | No | Index into Version table (Version.Vid) |
| AIappearedin | varchar(5) | '' | No | LSB version where the interface appeared |
| AIwithdrawnin | varchar(5) | NULL | Yes | LSB version where the interface was withdrawn |
| AIdeprecatedsince | varchar(5) | NULL | Yes | LSB version where interface became deprecated. This field is in the ArchInt table to allow deprecation of certain versions of the interface |
The ArchLib table is a Relation table that implements the N-to-N relation between Architecture and Library.
| Field | Type | Default | NULL | Description |
|---|---|---|---|---|
| ALlid | int(10) unsigned | '0' | No | Index into Library table (Library.Lid) |
| ALaid | int(10) unsigned | '0' | No | Index into Architecture table (Architecture.Aid) |
| ALrunname | varchar(255) | '0' | No | The exact runtime name of the library for this Architecture, as is listed in a DT_NEEDED record of an application. |
| ALappearedin | varchar(5) | '' | No | LSB version where the library appeared |
| ALwithdrawnin | varchar(5) | NULL | Yes | LSB version where the library was withdrawn |
The ArchType table is a Relation table that implements the N-to-N relation between Architecture and Type.
| Field | Type | Default | NULL | Description |
|---|---|---|---|---|
| ATaid | int(10) unsigned | '0' | No | Index into Architecture table (Architecture.Aid); |
| ATtid | int(10) unsigned | '0' | No | Index into Type table (Type.Tid) |
| ATsize | varchar(255) | '0' | No | Size of the data type on this architecture |
| ATappearedin | varchar(5) | '' | No | LSB version where the type appeared. Please refer to the Type Table Conventions for some aspects of types 'inclusion' |
| ATwithdrawnin | varchar(5) | NULL | Yes | LSB version where the type was withdrawn |
| ATbasetype | int(10) unsigned | '0' | No | Basetype for this type on this architecture (index into Type table, Type.Tid) |
| ATattribute | varchar(64) | NULL | Yes | Special attributes of struct and union types. Attribute can be one of 'aligned', 'packed', 'transparent_union', 'unused', 'deprecated' or 'may_alias' (see gcc documentation for more information) |
The Architecture table is an Entity table that represents Processor Architectures. Portions of the specification vary depending on the Architecture. This table is used to establish this relationship with many other tables. It is assumed that data is either unique to one architecture, or applicable to all architectures.
| Field | Type | Default | NULL | Description |
|---|---|---|---|---|
| Aid | int(10) unsigned | auto_increment | No | Unique architecture identifier |
| Aname | varchar(255) | '' | No | The name of a processor Architecture. The name 'All' is used to indicate applicable to all |
| Aspecifcation | varchar(255) | '' | No | The formal specification of the architecture |
| Asymbol | varchar(60) | '' | No | Specifies the compilation symbol used to test for the architecture |
The BaseTypes table is a relation table joining the ClassInfo and the Interface tables.
| Field | Type | Default | NULL | Description |
|---|---|---|---|---|
| BTcid | int(10) unsigned | '0' | No | The ID of the ClassInfo |
| BTpos | int(10) unsigned | '0' | No | An ordering |
| BTbasetype | int(10) unsigned | '0' | No | The Interface Id (Iid) for the base class RTTI (appropriate Interface.Iunmangled field should have 'typeinfo for <BaseClassUnmangledName>' value) |
| BTaccess | enum('public','private','protected') | 'public' | No | Inheritance type |
ClassInfo is the main table describing a class.
| Field | Type | Default | NULL | Description |
|---|---|---|---|---|
| CIid | int(10) unsigned | auto_increment | No | Unique class identifier |
| CIname | varchar(255) | '' | No | The mangled name of the class |
| CItid | int(10) unsigned | '0' | No | Entry in the Type table that contains the type for the class structure |
| CIvtable | int(10) unsigned | '0' | No | If the class has virtual tables, this field should point to entry in the Interface table that contains the name of the vtable (appropriate Interface.Iunmangled field should have 'vtable for <ThisClassUnmangledName>' value). For classes without virtual tables this field is equal to zero. |
| CInumvfunc | int(10) unsigned | '0' | No | Number of functions in the Vtable for the class |
| CInumvtab | int(10) unsigned | '1' | No | Number of Vtables for the class |
| CIrtti | int(10) unsigned | '0' | No | Entry in the Interface table that is the type identifier symbol (appropriate Interface.Iunmangled field should have 'typeinfo for <ThisClassUnmangledName>' value) |
| CInumbasetype | enum('0','1') | '0' | No | "0" if the class' vtable has no parent vtable, otherwise "1" (including the case when class uses virtual or multiple inheritance). |
| CIbase | int(10) unsigned | '0' | No | Entry in the Interface table for the type information symbol of the base class (appropriate Interface.Iunmangled field should have 'typeinfo for <BaseClassUnmangledName>' value). Note: for virtual or multiple inheritance VMIBaseTypes table should be used. |
| CInumvmitypes | int(10) unsigned | '1' | No | Number of base types for classes using multiple or virtual inheritance |
| CIflags | int(11) | '0' | No | Class flags |
| CIvcalloffset | int(11) | '0' | No | Vcall offset |
| CIbaseoffset | int(11) | '0' | No | Base offset |
| CIbasevtable | int(10) unsigned | '0' | No | Entry into the Interface table pointing to the base of class' vtable. This must point to one of the type info classes in the cxxabiv1 namespace (appropriate Iunmangled field should have 'vtable for __cxxabiv1%' value) |
| CIlibg | int(10) unsigned | '0' | No | Entry into the LibGroup table |
| CIvtclass | enum('1','2') | '1' | No | Class of the virtual table, either "1" or "2" |
| CIvtt | int(10) unsigned | '0' | No | Entry in the Interface table that contains the name of the Virtual Type Table for this class (appropriate Iunmangled field should have 'VTT for <ThisClassUnmangledName>' value) |
| CInumvtt | int(10) unsigned | '0' | No | Number of Virtual Type Tables for classes using virtual inheritance |
| CIunmangled | varchar(255) | NULL | Yes | Unmangled class name |
| CIpurevirtual | int(10) unsigned | '0' | No | Reserved for future use |
ClassVtab is a relation table joining a ClassInfo with one or more Vtable records.
| Field | Type | Default | NULL | Description |
|---|---|---|---|---|
| CVcid | int(10) unsigned | '0' | No | Index into ClassInfo table (ClassInfo.Cid) to which the record belongs |
| CVclass | int(10) unsigned | '0' | No | Vtable category |
| CVpos | int(11) | '0' | No | Which set of vtable entries this record describes |
| CVrtti | int(10) unsigned | '0' | No | The Interface Id (Iid) for the class RTTI (appropriate Interface.Iunmangled field should have 'typeinfo for <ClassUnmangledName>' value, where ClassUnmangled name is taken from ClassInfo record with CIid=CVcid) |
| CVnumvtfuncs | int(10) unsigned | '0' | No | Number of functions in this vtable |
The CmdStd table is a relation table that implements the N-to-N relation between Commands and Standards (though in every LSB version each command is assigned to the single specification, this specification may change between LSB versions).
| Field | Type | Default | NULL | Description |
|---|---|---|---|---|
| CScid | int(10) unsigned | '0' | No | Index into the Command table (Command.Cid) |
| CSsid | int(10) unsigned | '0' | No | Index into the Standard table (Standard.Sid) |
| CSrefspec | int(10) unsigned | '0' | No | Index into the Standard table (Standard.Sid) of the specification referenced in the main document. |
| CSappearedin | varchar(5) | '' | No | LSB version where the command was assigned to the standard for a first time. |
| CSwithdrawnin | varchar(5) | NULL | Yes | LSB version where the command description location changed |
| CSurl | varchar(255) | NULL | Yes | Relative or absolute URL for the given command documentation. The url is considered to be relative if it doesn't start with 'http://'. In this case the ultimate link where documentation for the command is situated can be formed as 'Standard.Sbaselink/CmdStd.CSurl' (where Sbaselink is taken for the Standard this interface is assigned to). Absolute links are printed as is. |
This entity table describes commands in, or considered for, the LSB.
| Field | Type | Default | NULL | Description |
|---|---|---|---|---|
| Cid | int(10) unsigned | auto_increment | No | Unique command identifier |
| Cname | varchar(255) | '' | No | Command name |
| Cpath | varchar(255) | NULL | Yes | Path at which the command is found. This used to describe historical research, but has recently been modified to contain a path only if the LSB specification (directly or by reference to the FHS) requires the command in a specific path, otherwise it must be empty |
| Cdocumented | enum('Yes','No','Unknown') | 'Unknown' | No | Is this Command properly documented. Yes/No/Unknown flag |
| Ctested | enum('Yes','No','Unknown') | 'Unknown' | No | Is this Command properly tested for. Yes/No/Unknown flag |
| Ccandidatefor | varchar(255) | NULL | Yes | LSB version where the command is planned to be included. This field can have 'Unknown' value, which means that the command is planned for future, but decision about particular LSB version is not made yet. |
| Cbuiltin | enum('Yes','No','Unknown') | 'Unknown' | No | Indicates if the command is built in. Yes/No/Unknown flag |
| Cdeprecatedsince | varchar(5) | NULL | Yes | LSB version where command became deprecated |
The CommandAttribute table provides a way of simple addition of different command attributes without adding new fields in any tables (and, therefore, without large scripts modifications). Each record specifies an attribute of a certain kind ('Recommendation' and 'Custom' are currently supported), and tools dealing with the db can look for attributes of kind they are interested in.
| Field | Type | Default | NULL | Description |
|---|---|---|---|---|
| CAid | int(10) unsigned | '0' | No | Unique record identifier |
| CAname | varchar(255) | '' | No | Command name (Command.Cname or RawCommand.RCname) |
| CAtype | enum('Recommendation','Custom') | 'Custom' | No | Attribute type. Additional types can be simply added here to provide new kinds of attributes |
| CAvalue | text | No | Attribute value |
The Constant table is an Entity table that represents constant values defined by the LSB. Typically, these values correspond to source symbols and values that have a constant value. E.g. Symbols expressed by a C preprocessor #define statement. Since the values may be architecture-specific, the !ArchConst table is used to define the values.
Special constants with type 'header_depend' are used to impliment header dependencies that cannot be handle in other way. Such constant's values should be set to proper Header.Hid values - #include directive of the appropriate header file will be printed in generated header, to which the constant belongs.
| Field | Type | Default | NULL | Description |
|---|---|---|---|---|
| Cid | int(10) unsigned | auto_increment | No | Unique constant identifier |
| Cname | varchar(255) | '' | No | This name used to describe this constant value. Note that the "name" may include the "parameters" from a #define statement, for example the name will be "MAX(a,b)" rather than "MAX" if the paramter part is present |
| Ctype | enum('int', 'long', 'float', 'double', 'longdouble', 'string', 'macro', 'accessor', 'Unknown', 'header_depend') | 'Unknown' | No | What type of constant is being represented. The development environment tests need this information to correctly test the constant values |
| Cheadgroup | int(10) unsigned | '0' | No | HeaderGroup to which this constant belongs (HeaderGroup.HGid) |
| Cdescription | varchar(255) | '' | No | Description of the value. It is used to produce a comment when creating the reference headers |
| Ccandidatefor | varchar(255) | NULL | Yes | LSB version where the constant is planned to be included. This field can have 'Unknown' value, which means that the constant is planned for future, but decision about particular LSB version is not made yet. |
| Csrconly | enum('Yes','No','Unknown') | 'Unknown' | No | Indicates that this constant is not part of the ABI, but is required in order to compile a program |
The ConstantAttribute table provides a way of simple addition of different constant attributes without adding new fields in any tables (and, therefore, without large scripts modifications). Each record specifies an attribute of a certain kind ('Condition' and 'Custom' are currently supported), and tools dealing with the db can look for attributes of kind they are interested in.
| Field | Type | Default | NULL | Description |
|---|---|---|---|---|
| CAid | int(10) unsigned | '0' | No | Unique record identifier |
| CAcid | varchar(255) | '' | No | Constant identifier name (Constant.Cid) |
| CAtype | enum('Condition', 'Declaration', 'Custom') | 'Custom' | No | Attribute type. Additional types can be simply added here to provide new kinds of attributes.
|
| CAvalue | text | No | Attribute value |
The DynamicEntries table is an Entity table that represents dynamic entries of the ELF files.
| Field | Type | Default | NULL | Description |
|---|---|---|---|---|
| DEid | int(10) unsigned | auto_increment | No | Unique dynamic entry identifier |
| DEname | varchar(255) | '' | No | The name of dynamic entry |
| DEvalue | varchar(11) | '0' | No | The value of dynamic entry (in hexadecimal form; now it is not used anywhere) |
The ElfSections table is an Entity table that represents sections of the ELF files.
| Field | Type | Default | NULL | Description |
|---|---|---|---|---|
| ESid | int(10) unsigned | auto_increment | No | Unique elf section identifier |
| ESname | varchar(255) | '' | No | The name of elf section |
The Header table is an Entity table that represents header files.
| Field | Type | Default | NULL | Description |
|---|---|---|---|---|
| Hid | int(10) unsigned | auto_increment | No | Unique header identifier |
| Hname | varchar(255) | '' | No | The name of a header, relative to the base include directory (ie `/usr/include`) |
| Hlib | int(10) unsigned | '0' | No | Index into the Library Table (Library.Lid) |
| Hsrcerror | enum('Yes','No','Unknown') | 'Unknown' | No | Indicates if an uncompilable header should be generated, to discourage use of this header by conforming programs |
| Hcandidatefor | varchar(255) | NULL | No | LSB version where the header is planned to be included. This field can have 'Unknown' value, which means that the header is planned for future, but decision about particular LSB version is not made yet. |
| Happearedin | varchar(5) | '' | No | LSB version where the header appeared |
| Hwithdrawnin | varchar(5) | NULL | Yes | LSB version where the header was withdrawn |
The HeaderGroup table is an Entity table that represents organizational groups of Constants, Types, and Prototypes that belong to a Header. These groups are used to organize this information into logical order so that they can be presented in a more meaningful way, and a functional header can be produced.
| Field | Type | Default | NULL | Description |
|---|---|---|---|---|
| HGid | int(10) unsigned | auto_increment | No | Unique HeaderGroup identifier |
| HGname | varchar(255) | '' | No | A common name for the group |
| HGheader | int(10) unsigned | '0' | No | This is a 1-to-N relationship used to indicate to which Header this group belongs |
| HGorder | int(11) | '0' | No | Used to place the groups in a given order |
| HGdescription | text | No | A description of the group. Used to create a comment when producing a header file from this data |
The Interface table is an Entity table that represents symbols found in shared libraries.
| Field | Type | Default | NULL | Description |
|---|---|---|---|---|
| Iid | int(10) unsigned | auto_increment | No | Unique Interface identifier |
| Iname | varchar(255) | '' | No | The name of the Interface (ie function name) |
| Itype | enum('Function', 'Data', 'Alias', 'Common', 'Unknown') | 'Unknown' | No | Indicates if the Interface is a function, or global data |
| Iheader | int(10) unsigned | '0' | No | This is a 1-to-N relationship used to indicate which header file contained the prototype and other definitions associated with this interface |
| Ireturn | int(10) unsigned | '0' | No | This is a 1-to-N relationship used to indicate the (return) type of an interface |
| Idocumented | enum('Yes', 'No', 'Unknown') | 'Unknown' | No | Indicates if the Interface is adequately documented |
| Icomment | varchar(255) | NULL | Yes | Just a comment, not used anywhere |
| Icandidatefor | varchar(255) | NULL | Yes | LSB version where the interface is planned to be included. This field can have 'Unknown' value, which means that the interface is planned for future, but decision about particular LSB version is not made yet. |
| Iunmangled | text | NULL | Yes | Unmangled name of the interface |
| Isrcbin | enum('Both', 'SrcOnly', 'BinOnly') | 'Both' | No | Indicates if this interface is present in both ABI and API or if it is included in ABI only or if it is not part of the ABI, but is required in order to compile a program |
| Ilibrary | varchar(255) | NULL | Yes | Library name to which the interface is assigned |
| Istatic | enum('Yes','No','Unknown') | 'Unknown' | No | Is the interface static (makes sense for class members only) |
| Ivirtual | enum('Yes','No','Unknown') | 'Unknown' | No | Is the interface virtual (makes sense for class members only) |
| Iaccess | enum('public', 'protected', 'private' ,'Unknown') | 'Unknown' | No | Interface access type (makes sense for class members only) |
| Ifkind | enum('Normal', 'Observer', 'Constructor', 'Destructor', 'Unknown') | 'Unknown' | No | Function kind (makes sense for class functions only) |
| Icharge | enum('in-charge', 'not-in-charge', 'in-charge-deleting', 'Unknown') | 'Unknown' | No | Constructor/destructor kind (makes sense for class constructors and destructors only). There can be more than one binary symbol for every class constructors or destructors, this field is used to distinguish them |
| Iclass | int(10) unsigned | '0' | No | Index in Type table (Type.Tid) corresponding to interface's class type |
| Ishortname | varchar(255) | NULL | Yes | Interface short name (i.e. without any prefixes corresponding to class, namespace, etc.). Makes sense for cpp interfaces only |
The InterfaceAttribute table provides a way of simple addition of different interface attributes without adding new fields in any tables (and, therefore, without large scripts modifications). Each record specifies an attribute of a certain kind ('Recommendation', 'Rejection' and 'Custom' are currently supported), and tools dealing with the db can look for attributes of kind they are interested in.
| Field | Type | Default | NULL | Description |
|---|---|---|---|---|
| IAid | int(10) unsigned | '0' | No | Unique record identifier |
| IAiname | varchar(750) | '' | No | Interface name (Interface.Iname or RawInterface.RIname) |
| IAlibrary | varchar(200) | '' | No | Interface library (Interface.Ilibrary or RawInterface.RIlibrary) |
| IAtype | enum('Recommendation','Rejection','Custom') | 'Custom' | No | Attribute type. Additional types can be simply added here to provide new kinds of attributes. Interfaces with 'Rejection' attribute can be filtered out on pages from the AppStats section in the LSB Navigator. |
| IAvalue | text | No | Attribute value |
The InterfaceComment table stores comments that users can leave on individual interface pages in the Navigator. User used by Navigator in the 'browse' mode should have 'INSERT' privilegy on this table.
| Field | Type | Default | NULL | Description |
|---|---|---|---|---|
| ICid | int(10) unsigned | '0' | No | Unique record identifier |
| ICname | varchar(750) | '' | No | Interface name (Interface.Iname or RawInterface.RIname) |
| IClibrary | varchar(200) | '' | No | Interface library (Interface.Ilibrary or RawInterface.RIlibrary) |
| ICauthor | varchar(200) | '' | No | Comment author |
| ICvalue | text | No | Comment itself | |
| ICdate | timestamp | CURRENT_TIMESTAMP | No | Comment date |
The InterfaceVote table stores votes that users can leave on individual interface pages in the Navigator. User used by Navigator in the 'browse' mode should have 'INSERT' privilegy on this table.
| Field | Type | Default | NULL | Description |
|---|---|---|---|---|
| IVid | int(10) unsigned | '0' | No | Unique record identifier |
| IVname | varchar(750) | '' | No | Interface name (Interface.Iname or RawInterface.RIname) |
| IVlibrary | varchar(200) | '' | No | Interface library (Interface.Ilibrary or RawInterface.RIlibrary) |
| IVauthor | varchar(200) | '' | No | Voter |
| IVtype | enum('Include','Exclude') | 'Include' | No | Vote type. Currently users can vote either for adding interface to LSB or for deprecating already inluded symbols (since symbols cannot be simply excluded - we should keep them for some versions with the 'deprecated' status). |
| IVuserid | int(10) unsigned | 0 | No | Voter id on wiki. Note that one cannot vote twice for the same interface. |
| IVdate | timestamp | CURRENT_TIMESTAMP | No | Voting date |
The InterpretedLanguage table represents LSB interpreted languages.
| Field | Type | Default | NULL | Description |
|---|---|---|---|---|
| ILid | int(10) unsigned | auto_increment | No | Unique language identifier |
| ILname | varchar(255) | '' | No | Language name |
| ILversion | varchar(255) | '' | No | Interpreter version required by LSB |
| ILlocation | varchar(255) | '' | No | Interpreter location specified by LSB |
| ILstandard | int(10) unsigned | '0' | No | Standard identifier (Standard.Sid) where the language is described. |
| ILappearedin | varchar(5) | '' | No | LSB version where the language appeared |
| ILwithdrawnin | varchar(5) | NULL | Yes | LSB version where the language was withdrawn |
| ILsmid | int(10) unsigned | '0' | No | SubModule identifier (SubModule.SMid) which the language specification belongs to. |
The InterpretedLanguageModule table represents modules of the LSB interpreted languages.
| Field | Type | Default | NULL | Description |
|---|---|---|---|---|
| ILMid | int(10) unsigned | auto_increment | No | Unique module identifier |
| ILMname | varchar(255) | '' | No | Module name |
| ILMversion | varchar(255) | '' | No | Module version. This field is reserved for future use. |
| ILMlanguage | int(10) unsigned | '0' | No | Language identifier (InterpretedLanguage.ILid) of the module's language. |
| ILMstandard | int(10) unsigned | '0' | No | Standard identifier (Standard.Sid) where the language module is described. |
| ILMappearedin | varchar(5) | '' | No | LSB version where the language module appeared |
| ILMwithdrawnin | varchar(5) | NULL | Yes | LSB version where the language module was withdrawn |
| ILMurl | varchar(255) | NULL | Yes | Url for the module documentaion. This url is relative to Standard.Sbaselink field. |
The IntStd table is a Relation table that implements the N-to-N relation between Interfaces and Standards (though in every LSB version each interface is assigned to the single specification, this specification may change between LSB versions).
| Field | Type | Default | NULL | Description |
|---|---|---|---|---|
| ISiid | int(10) unsigned | '0' | No | Index into the Interface table (Interface.Iid) |
| ISsid | int(10) unsigned | '0' | No | Index into the Standard table (Standard.Sid) |
| ISrefspec | int(10) unsigned | '0' | No | Index into the Standard table (Standard.Sid) of the specification referenced in the main document. |
| ISappearedin | varchar(5) | '' | No | LSB version where the interface was assigned to the standard for a first time. |
| ISwithdrawnin | varchar(5) | NULL | Yes | LSB version where the symbol's description location changed |
| ISurl | varchar(255) | NULL | Yes | Relative or absolute URL for the given interface documentation. The url is considered to be relative if it doesn't start with 'http://'. In this case the ultimate link where documentation for the interface is situated can be formed as 'Standard.Sbaselink/IntStd.ISurl' (where Sbaselink is taken for the Standard this interface is assigned to). Absolute links are printed as is. For links to the LSB Specification which is architecture-specific Iurl can contain '{$arch}' pattern which should be replaced by the real architecture name (or 'generic' word). |
The LGInt table is a Relation table that implements the N-to-N relation between Interfaces and LibGroups.
| Field | Type | Default | NULL | Description |
|---|---|---|---|---|
| LGIint | int(10) unsigned | '0' | No | Index into the Interface table (Interface.Iid) |
| LGIlibg | int(10) unsigned | '0' | No | Index into the LibGroup table (LibGroup.LGid) |
The LibGroup table is an Entity table that represents organizational groups of interfaces that belong to a shared library. These groups are used to break the interfaces in a library into logical groups so that they can be presented in a more meaningful way.
| Field | Type | Default | NULL | Description |
|---|---|---|---|---|
| LGid | int(10) unsigned | auto_increment | No | Unique LibGroup identifier |
| LGname | varchar(255) | '' | No | Common name for a group of functions |
| LGlib | int(10) unsigned | '0' | No | This is a 1-to-N relationship used to indicate to which library this group belongs |
| LGorder | int(11) | '0' | No | Used to place the groups in a given order |
| LGdescription | text | No | The text that is used to describe this group. Appears in the Specification document |
The LibraryAttribute table provides a way of simple addition of different library attributes without adding new fields in any tables (and, therefore, without large scripts modifications). Each record specifies an attribute of a certain kind ('Recommendation' and 'Custom' are currently supported), and tools dealing with the db can look for attributes of kind they are interested in.
| Field | Type | Default | NULL | Description |
|---|---|---|---|---|
| LAid | int(10) unsigned | '0' | No | Unique record identifier |
| LAsoname | varchar(255) | '' | No | Library soname. |
| LAlibname | varchar(255) | '' | No | Library normal name. |
| LAtype | enum('Recommendation','StaticLinkage','Rejection','Custom') | 'Custom' | No | Attribute type. Additional types can be simply added here to provide new kinds of attributes. |
| LAvalue | text | No | Attribute value. |
The LSBVersion table is a table containing information about LSB Specification versions.
| Field | Type | Default | NULL | Description |
|---|---|---|---|---|
| LVid | int(10) unsigned | '0' | No | LSB Version identifier |
| LVvalue | varchar(255) | No | Version itself | |
| LVreleased | enum('Yes','No') | 'No' | No | Has this version been released or it is only being developed |
The Library table is an Entity table that represents shared libraries.
| Field | Type | Default | NULL | Description |
|---|---|---|---|---|
| Lid | int(10) unsigned | auto_increment | No | Unique Library identifier |
| Lname | varchar(255) | '' | No | Symbolic name given to the library. This name is commonly used when referring to the library |
| Lcandidatefor | varchar(255) | NULL | Yes | LSB version where the library is planned to be included. This field can have 'Unknown' value, which means that the library is planned for future, but decision about particular LSB version is not made yet. |
| Ldeprecatedsince | varchar(5) | NULL | Yes | LSB version where the library became deprecated. |
The ModCmd table is a Relation table that defines the relationship between SubModule and Command.
| Field | Type | Default | NULL | Description |
|---|---|---|---|---|
| MCmid | int(10) unsigned | '0' | No | Index into SubModule table (SubModule.SMid) |
| MCcid | int(10) unsigned | '0' | No | Index into Command table (Command.Cid) |
| MCappearedin | varchar(5) | '' | No | LSB version where the command appeared in the module |
| MCwithdrawnin | varchar(5) | NULL | Yes | LSB version where the command was withdrawn from the module |
(NOTE: Currently there are no known use cases for this apart from the 'mkcmdtable' script which potentially needs to be modified to use this table)
The ModLib table is a Relation table that defines the relationship between SubModule and Library. The table exists because there is the potential this is not a one-to-one relationship (libraries could appear in more than one LSB submodule), although there are no current examples of this.
| Field | Type | Default | NULL | Description |
|---|---|---|---|---|
| MLmid | int(10) unsigned | '0' | No | Index into SubModule table (SubModule.SMid) |
| MLlid | int(10) unsigned | '0' | No | Index into Library table (Library.Lid) |
| MLappearedin | varchar(5) | '' | No | LSB version where the library appeared in the module |
| MLwithdrawnin | varchar(5) | NULL | Yes | LSB version where the library was withdrawn from the module |
The ModSMod table implements N-to-N relationship between modules and submodules. The other main objective of this table is to allow submodules migration among modules in different LSB versions.
| Field | Type | Default | NULL | Description |
|---|---|---|---|---|
| MSMmid | int(10) unsigned | 0 | No | Module identifier (Module.Mid) |
| MSMsmid | int(10) unsigned | 0 | No | Submodule identifier (SubModule.SMid) |
| MSMappearedin | varchar(5) | '' | No | LSB version where the submodule appeared in the module |
| MSMwithdrawnin | varchar(5) | NULL | Yes | LSB version where the submodule was withdrawn from the module |
The Module table is an Entity table that represents specification modules.
| Field | Type | Default | NULL | Description |
|---|---|---|---|---|
| Mid | int(10) unsigned | auto_increment | No | Unique module identifier |
| Mname | varchar(255) | '' | No | Name of the module |
| Mcomment | varchar(255) | NULL | Yes | Description of the module |
| Mdeprecatedsince | varchar(5) | NULL | Yes | LSB version where the module became deprecated. |
The Parameter table is an Entity table that represents the parameters to an Interface. This table is the N side of a 1-to-N relation with the Interface table.
| Field | Type | Default | NULL | Description |
|---|---|---|---|---|
| Pint | int(10) unsigned | '0' | No | This is a 1-to-N relationship used to indicate to which Interface this Parameter belongs |
| Ppos | int(11) | '0' | No | Provides an ordering to the Parameters |
| Ptype | int(10) unsigned | '0' | No | This is a 1-to-N relationship used to indicate the Type of this paramter |
| Parsize | smallint(6) | NULL | Yes | If parameter is an array of the fixed size, this size should be specified here |
| Pvalue | varchar(255) | NULL | Yes | Default parameter value |
| Pttid | int(10) unsigned | '0' | No | This is a 1-to-N relationship with TypeType table. Used only by DynChk tool |
| Pnull | enum('Yes','No','Unknown') | 'Unknown' | No | Indicates that parameter can be NULL. Used only by DynChk tool |
This a table of RPM Tag definitions.
| Field | Type | Default | NULL | Description |
|---|---|---|---|---|
| Rid | int(10) unsigned | auto_increment | No | Unique RpmTag identifier |
| Rname | varchar(255) | '' | No | Rpm tag name |
| Rtag | int(11) | '0' | No | Rpm tag value |
| Rtype | enum('NULL_TYPE', 'CHAR_TYPE', 'INT8', 'INT16', 'INT32', 'INT64', 'STRING', 'BIN', 'STRING_ARRAY', 'I18NSTRING') | 'BIN' | No | RPM tag type |
| Rcount | int(11) | '0' | No | Four-byte count that contains the number of data items pointed to by the index entry (see RPM documentation for more details) |
| Rgroup | enum('Private', 'Signature', 'SigDigest', 'SigSigning', 'Header', 'Other', 'Ignore', 'PackageInfo', 'InstallInfo', 'FileDetails', 'Dependencies') | 'Private' | No | RPM tag group |
| Rstatus | enum('Required', 'Optional', 'Informational', 'Deprecated', 'Obsolete', 'Reserved') | 'Required' | No | RPM tag status |
| Rdescription | text | No | RPM tag verbose description | |
| Rappearedin | varchar(5) | '' | No | LSB version where the tag appeared |
| Rwithdrawnin | varchar(5) | NULL | Yes | LSB version where the tag was withdrawn |
An Entity table used to describe ELF section header type (SHT_*) flags.
| Field | Type | Default | NULL | Description |
|---|---|---|---|---|
| STid | int(10) unsigned | auto_increment | No | Unique SectionTypes identifier |
| STname | varchar(255) | '' | No | Section type name |
| STvalue | int(10) unsigned | '0' | No | Value that indicates this section type |
| STstandard | int(10) unsigned | '0' | No | The standard this section is defined in - an index into the Standard table (Standard.Sid) |
| STdescription | blob | No | Description of the section type for inclusion in the specification | |
| STarch | int(10) unsigned | '1' | No | Architecture to which this section type applies |
| STurl | varchar(255) | NULL | Yes | Relative url for section type description |
The Standard table is an Entity table that represents a Source or Reference Standard which is used to provide the behavioral description of commands and Interfaces.
| Field | Type | Default | NULL | Description |
|---|---|---|---|---|
| Sid | int(10) unsigned | auto_increment | No | Unique Standard identifier |
| Sname | varchar(255) | '' | No | The common (or short) name for the standard |
| Sfull | blob | No | The official (or long) name for the standard | |
| Surl | varchar(255) | NULL | Yes | The URL for an official copy of the standard |
| Sdescription | varchar(255) | '' | No | A place to keep a comment |
| Stype | enum('Standard', 'Reference', 'Unknown', 'Implementation') | NULL | Yes | Type of standard, takes one of the following values (Standard,Reference,Implementation,Unknown) |
| Sarch | int(10) unsigned | '1' | No | Architecture to which this standard applies |
| Sshort | varchar(255) | '' | No | Short name of the standard |
| Sbaselink | varchar(255) | NULL | Yes | Baselink for documentation of elements assigned to this standard. Element's url should be joined with this baselink in order to obtain the full URL. This only works now for HTML documentation available online. |
The SubModule table is an Entity table that represents specification submodules.
| Field | Type | Default | NULL | Description |
|---|---|---|---|---|
| SMid | int(10) unsigned | auto_increment | No | Unique submodule identifier |
| SMname | varchar(255) | '' | No | Name of the submodule |
| SMcomment | varchar(255) | NULL | Yes | Description of the submodule |
| SMmandatorysince | varchar(5) | No | LSB version where the submodule became mandatory |
This table describes test cases from every test suite.
| Field | Type | Default | NULL | Description |
|---|---|---|---|---|
| TCSid | int(10) unsigned | auto_increment | No | Unique TestCaseSource identifier |
| TCStsid | int(10) unsigned | 0 | No | TestSuite identifier (TestSuite.TSid) this test case belongs to |
| TCStestcasename | varchar(255) | '' | No | Test case name |
| TCSsourcename | varchar(255) | '' | No | Source name this record belongs to. Usually one test case consists of one or more source files, but the contrary situations are also possible. |
| TCScomment | varchar(255) | NULL | Yes | Comment |
This is a N-to-N relationship table between the Commands Table and the TestSuite tables. This relationship table gives us an indication of which commands are utilised in the test suites.
| Field | Type | Default | NULL | Description |
|---|---|---|---|---|
| TSCcmd | int(10) unsigned | '0' | No | Index into the Commands Table (Commands.Cid) |
| TSCtest | int(10) unsigned | '0' | No | Index into the TestSuite Table (TestSuite.TSid) |
This is the relation table between TestCaseSource and Interface
| Field | Type | Default | NULL | Description |
|---|---|---|---|---|
| TSIint | int(10) unsigned | '0' | No | The index into the Interface table (Interface.Iid) |
| TSItest | int(10) unsigned | '0' | No | The index into the TestCaseSource table (TestCaseSource.TCSid) |
| TSIquality | enum('Deep','Normal','Shallow') | 'Shallow' | No | Interface testing quality by the test case source. Shallow tests are simple tests with the only guaranteed purpose of ensuring the interface does not crash (in many cases it is additionally checked that the interface doesn’t return an error code) being called with some particular correct parameters and in the correct environment. This is close to “existence” or “smoke” or “sanity” tests (but beware - these terms are interpreted differently by different experts). Normal is the most reasonable level of testing quality. Such tests check all the main functionality of a target interface by calling it in several different situations and verifying the results. Normal tests usually also check a few error scenarios. At the Deep level most of the functionality of target interfaces is checked in numerous conditions/states. This level is reasonable for ctitical interfaces only. |
| TSIcomment | varchar(255) | NULL | Yes | Comment |
This entity table describes test suites, whether currently in use or potentially available to use in the future.
| Field | Type | Default | NULL | Description |
|---|---|---|---|---|
| TSid | int(10) unsigned | auto_increment | No | Unique TestSuite identifier |
| TSname | varchar(255) | '' | No | Short name of the test suite |
| TSfullname | varchar(255) | '' | No | Full name of the test suite |
| TSvendor | varchar(255) | '' | No | The owner or source of the test suite |
| TSstatus | enum('Yes','No','Unknown') | 'Unknown' | No | Current status - indicates if the test suite is used now |
| TSpartof | varchar(255) | '' | No | Indicates if this suite is a part of a larger one (for example, Desktop tests actually consists of several separated test suites) |
| TSversion | varchar(255) | '' | No | Test suite version |
| TSappearedin | varchar(5) | '' | No | Since which LSB version this test suite is used for certification purposes |
| TSwithdrawnin | varchar(5) | NULL | Yes | Since which LSB version this test suite is not used |
An Entity table used to describe different types. Please refer to the Type Table Conventions for some aspects concerning this table data.
| Field | Type | Default | NULL | Description |
|---|---|---|---|---|
| Tid | int(10) unsigned | auto_increment | No | Unique Type identifier |
| Tname | varchar(255) | '' | No | The name of the type. For a Class, use the unmangled name. For naming rules types derived from other types (consts, arrays, pointers, references) see Type Table Conventions. |
| Ttype | enum('Intrinsic', 'FuncPtr', 'Enum', 'Pointer', 'Typedef', 'Struct', 'Union', 'Array', 'Literal', 'Const', 'Class', 'Unknown', 'BinVariable', 'Volatile') | 'Unknown' | No | The kind of the type. Most values are self-explained; 'BinVariable' type are used as types of data symbols that are present on binary level only (such as 'typeinfo for ...' or 'vtable for ...') |
| Theadgroup | int(10) unsigned | '0' | No | The index of the HeaderGroup to which this type belongs. Please refer to the Type Table Conventions for some aspects concerning this field. |
| Tdescription | varchar(255) | '' | No | The comment that is provided when generating headers |
| Tarray | varchar(16) | NULL | Yes | Used only by DynChk tool and now it doesn't affect any files generated |
| Tsrconly | enum('Yes','No','Unknown') | 'Unknown' | No | |
| Tconly | enum('Yes','No','Unknown') | 'Unknown' | No | 'Conly' types should be defined in headers only if '__cplusplus' is undefined |
| Tindirect | enum('Yes','No','Unknown') | 'Unknown' | No | Indicates that the type isn't used by interfaces directly (i.e. there are no parameters of this type and no interfaces return the value of this type), but it is required in order to define other types used by interfaces (for example, the type can by the base type for another one, used by interfaces). |
| Tunmangled | text | NULL | Yes | Unmangled names for cpp types |
| Tmemberof | int(10) unsigned | '0' | No | Indicates that the type should be declared inside class and contains Tid of that class type (useful for cpp part of the specification only) |
| Tinstanceof | int(10) unsigned | '0' | No | Indicates that the type is a template instance and contains Tid of that template type (useful for cpp templates only) |
| Tlibrary | varchar(255) | NULL | Yes | Library name to which this type is assigned |
| Tclass | int(10) unsigned | '0' | No | The same as Tmemberof, but contains link to ClassInfo.Cid. Useful, since some classes are private and cannot be acessed on source level (and, therefore, don't have a record in the Type table) |
This table is used to describe the elements of an object types such as struct or union. For function pointers, this table stores types of function parameters.
| Field | Type | Default | NULL | Description |
|---|---|---|---|---|
| TMid | int(10) unsigned | auto_increment | No | Unique TypeMember identifier |
| TMname | varchar(255) | '' | No | The name of this TypeMember within its parent Type (unless parent type is 'FuncPtr') |
| TMtypeid | int(10) unsigned | '0' | No | Points to the type of this TypeMember (for enumerator members the value of this field doesn't matter anything; usually 'int' type is used). |
| TMposition | int(11) | '0' | No | Specify the position of member variable in case of Struct, Union and FuncPtr. For enumerations, this field keeps the value of enumaration constant |
| TMdescription | varchar(255) | '' | No | Description to be displayed in generated header file |
| TMmemberof | int(10) unsigned | '0' | No | Points to the parent type of this TypeMember(should be a Struct, Union, Enum, or FuncPtr) |
| TMarray | varchar(128) | NULL | Yes | Stores the fixed value of enumerator. This field also used to store array bounds, but it is now deprecated |
| TMbitfield | tinyint(4) unsigned | '0' | No | Stores the numbers of bit used for a member in case of bitwise declarations in struct/union |
| TMtypetype | int(10) unsigned | '0' | No | Index in the TypeType table (TypeType.TTid), i.e. limitaions on the type of the member |
| TMappearedin | varchar(5) | '' | No | LSB version where the type member appeared |
| TMwithdrawnin | varchar(5) | NULL | Yes | LSB version where the type member was withdrawn |
| TMaid | int(10) unsigned | '0' | No | Architecture where this type member presents. All type members of the same type (i.e. with the same TMmemberof field) must either have TMaid=1 (in this case the complex type has the same members on all architectures) or there should be no type members with TMaid=1 at all. |
| TMaccess | enum("public','private','protected') | NULL | Yes | Access kind for entities declared inside classes |
| TMvalue | varchar(255) | NULL | Yes | Value for enumeration constants. |
The TypeMemberExtras contains extra specific type members properties, which are mainly used by devchk.
| Field | Type | Default | NULL | Description |
|---|---|---|---|---|
| TMEaid | int(10) unsigned | '0' | No | Index into Architecture table (Architecture.Aid) |
| TMEtmid | int(10) unsigned | '0' | No | Index into TypeMember table (TypeMember.TMid) |
| TMEsize | int(10) unsigned | '0' | No | Value of member size as referenced into the TypeMember table |
| TMEoffset | int(11) | '0' | No | Offset of member as referenced into the TypeMember table |
| TMEreserved | enum('Yes','No') | 'No' | No | Indicates if the type member is reserved for future use (and can be changed in future) |
| TMEdeclaration | text | Yes | Explicit member declaration. If this attribute is present, its value is dumped to header as member declaration. |
Describes types of types, allowing further constraint on ranges of variables. This information is used by the dynamic checker for runtime checking. For example, a variable may be of type mode_t which is 'unsigned int', yet the allowable range is much smaller as indicated by a TypeType of 'filemode'.
| Field | Type | Default | NULL | Description |
|---|---|---|---|---|
| TTid | int(10) unsigned | auto_increment | No | Unique TypeType identifier |
| TTname | varchar(255) | '' | No | TypeType name |
| TTcomment | varchar(255) | NULL | Yes | Comment. Not used anywhere |
VMI stands for "virtual or multiple inheritance". All classes with more than on base class or with virtual inheritance have to be entered here instead of the !BaseTypes table.
| Field | Type | Default | NULL | Description |
|---|---|---|---|---|
| VBTcid | int(10) unsigned | '0' | No | Index into ClassInfo table (ClassInfo.Cid) |
| VBTpos | int(11) | '0' | No | Position of the virtual table for classes with more than one vtable |
| VBTbasetype | int(10) unsigned | '0' | No | The Interface Id (Iid) for the base class RTTI (appropriate Interface.Iunmangled field should have 'typeinfo for <BaseClassUnmangledName>' value) |
| VBTflags | bigint(20) unsigned | '0' | No | Flags. All but the lower 8 bits of are a signed offset, the bottom 8 bits are: 0x1 (i.e. VBTflags % 2 == 1): Base class is virtual; 0x2 (VBTflags % 2 == 0): Base class is public. For a non-virtual base, the offset is the offset in the object of the base subobject. For a virtual base, the offset is the offset in the virtual table of the virtual base offset for the virtual base referenced (negative) |
| VBTaid | int(10) unsigned | '1' | No | Index into Architecture table (Architecture.Aid) |
| VBTaccess | enum('public','private','protected') | 'public' | No | Inheritance type |
| VBToffset | int(11) | 0 | No | Offset from VBTflags in explicit form |
The Version table is an Entity table that contains the all the available version tags that may be associated with interfaces in shared libraries.
| Field | Type | Default | NULL | Description |
|---|---|---|---|---|
| Vid | int(10) unsigned | auto_increment | No | Unique Version index |
| Vname | varchar(255) | '' | No | The symbol version tag |
This tables describes virtual tables for the classes
| Field | Type | Default | NULL | Description |
|---|---|---|---|---|
| VTcid | int(10) unsigned | '0' | No | Entry in the ClassInfo table to which this record belongs |
| VTvtpos | int(11) | '0' | No | Position of the virtual table for classes with more than one vtable |
| VTpos | int(11) | '0' | No | Position of the symbol inside the vtable |
| VTviid | int(10) unsigned | '0' | No | Entry in the Interface table corresponding to the interface which is placed in this position in the virtual table of the class |
| VTarch | int(10) unsigned | '2' | No | Entry in the Architecture table for which this record belongs |