The Linux Foundation

 
LSB Elements Schema

From The Linux Foundation

(Difference between revisions)
(Standard: + appearedin/withdrawnin)
(Standard: + Stga.)
Line 1,060: Line 1,060:
 
|-
 
|-
 
|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.
 
|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.
 +
|-
 +
|<b><font color="blue">Stag</font></b> || varchar(255) || <nowiki>''</nowiki> || No || A tag that can be used to identify a standard in the LSB specification. Different versions of the same referenced specs (e.g., Gtk 2.4, Gtk 2.8, etc.) should have the same Stag. This Stag can be used in the specification; it will be replaced automatically by scripts with particular version during LSB generation according to LSB version.
 
|-
 
|-
 
|Sappearedin || varchar(5) || <nowiki>''</nowiki> || No || LSB version where the standard was referenced for the first time.
 
|Sappearedin || varchar(5) || <nowiki>''</nowiki> || No || LSB version where the standard was referenced for the first time.

Revision as of 13:11, 12 January 2013

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.

Contents

AbiApi

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

AbiMacro

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

ArchClass

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

ArchConst

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).

ArchDE

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

ArchES

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

ArchInt

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

AIreturn int(10) unsigned '0' No The type returned by the interface (Type.Tid)

ArchLib

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

ArchType

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)

Architecture

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

BaseTypes

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

ClassInfo is the main table describing a class.

Note: There are some fields in this table that stores 'number of <some elements>". The database schema implies that these numbers are the same for all architectures.

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

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. Note: currently the database schema implies that the number of functions in every virtual table is the same on all architectures.

CmdStd

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.

Command

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') 'No' No Is this Command properly documented. Yes/No/Unknown flag.
Ctested enum('Yes','No') 'No' 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') 'No' No Indicates if the command is built in. Yes/No/Unknown flag.
Cdeprecatedsince varchar(5) NULL Yes LSB version where command became deprecated.
Cappearedin varchar(5) '' No LSB version where the command was added.
Cwithdrawnin varchar(5) NULL Yes LSB version where the command was withdrawn.

CommandAttribute

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. One can use <cmd> tag inside this value to point to another commands in the following way: Use <cmd newcmd>newcmd</cmd> instead.. These tags are automatically translated to legal URLs by LSB Navigator, AppChecker and other interested parties.

Constant

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.

Most of Ctypes are just for devchk - it generates different checks for different Ctypes.

Special constants with type 'header_depend' are used to implement 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.

When generating headers, values of 'string' constants are automatically enclosed by braces. Values of other constants are dumped 'as is'.

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 parameter part is present
Ctype enum('int', 'long', 'float', 'double', 'longdouble', 'string', 'macro', 'accessor', 'literal' 'Unknown', 'header_depend', 'version', 'limit') '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

ConstantAttribute

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.
  • Declaration attribute is used to store constant declaration text; if it is present, its value is dumped in the header as is.
  • Value of Condition attribute is dumped before constant declaration; it must be a condition starting with '#if' or '#ifdef' (closing '#endif' will be added after declaration automatically).
CAvalue text No Attribute value

CxxApi

The CxxApi table is an entity table, that represents the front-end for access to C++ API for LSB interfaces. Each table entry relates to an entity in a header. These entires are distinguishable, although data in their rows may conicide; in this case, further unfolding via join tables is necessary.

Field Type Default NULL Description
CAid int(12) unsigned '0' No Unique entity identifier
CAname varchar(100) No No The most immediate name of an entity (without namespace qualification)
CAtype enum ('interface','constant','macro','type') NULL Yes Type of entity, or NULL, if it doesn't belong to any of these types
CAfqn varchar(999) '' No Fully-qualified name of entity.
CAorigin int(10) unsigned No No Reference to SourceHeader table. Denotes the header the entity is physically defined in. Note that this field may be moved to the other table!
CAprovidedby int(12) unsigned '0' Yes Reference to SourceHeader table. Denotes the header the developer should include to gain access to this entity. For entities that are internal and shouldn't be used from outside, the value's set to NULL.

DynamicEntries

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.

Note: In order to get value of a particular Dynamic Entry included in LSB, please refer to the ArchConst.ACvalue field for the Constant whose name is equal to that dynamic entry.

ElfSections

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

Header

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') 'No' 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

HeaderGroup

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

ILModAttribute

The ILModAttribute table provides a way of simple addition of different interpreted language module attributes without adding new fields in any tables (and, therefore, without large scripts modifications). Each record specifies an attribute of a certain kind, and tools dealing with the db can look for attributes of kind they are interested in.

Field Type Default NULL Description
ILMAid int(10) unsigned '0' No Unique record identifier
ILMAname varchar(255) '' No Module name (InterpretedLanguageModule.ILMname or RawILModule.RILMname)
ILMAlanguage varchar(200) '' No Module language (InterpretedLanguage.ILid)
ILMAtype enum('Recommendation', 'Rejection', 'Custom') 'Custom' No Attribute type. Additional types can be simply added here to provide new kinds of attributes.
ILMAvalue text No Attribute value. One can use <ilmod> tag inside this value to point to another modules in the following way: Use <cmd newmodule>new_module</ilmod> instead.. These tags are automatically translated to legal URLs by LSB Navigator, AppChecker and other interested parties. It is supposed that the referenced module is from the same language as the record itself.

Interface

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') 'Function' 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
Idocumented enum('Yes', 'No') 'No' 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') NULL Yes Is the interface static (makes sense for class members only)
Ivirtual enum('Yes','No') NULL Yes Is the interface virtual (makes sense for class members only)
Iaccess enum('public', 'protected', 'private') NULL Yes Interface access type (makes sense for class members only)
Ifkind enum('Normal', 'Observer', 'Constructor', 'Destructor') NULL Yes Function kind (makes sense for class functions only)
Icharge enum('in-charge', 'not-in-charge', 'in-charge-deleting') NULL Yes 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
Itestable enum('Yes','No') 'Yes' No If this interface can be subjected to runtime testing. Currently, we only test functions (not global variables), and for C++ we only test public and protected class members.
Ithrow enum('Yes','No') 'No' No A flag indicating that a 'throw()' should be added to the function declaration in header.

InterfaceAttribute

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. One can use <int> tag inside this value to point to another interfaces in the following way: Use <int newint>newint</int> instead.. Similarly, <lib> can be used to point to libraries and <const> for constants and macros. Note that for macros, it is not necessary to specify the whole name; if macros can be unambiguously identified by its name without parameters, then the name is enough. The tags are automatically translated to legal URLs by LSB Navigator, AppChecker and other interested parties.

InterfaceComment

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

InterfaceVote

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

InterpretedLanguage

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.

InterpretedLanguageModule

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.

IntStd

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).
ISrefspecurl varchar(255) NULL Yes The same as ISurl, but contains URL for the description in the referenced specification (pointed to by the ISrefpsec field).

LGInt

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)

LibGroup

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

Library

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.

LibraryAttribute

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', 'Rejection_soname', 'Custom') 'Custom' No Attribute type. 'Rejection' means that library is rejected to be included as LSB candidate; 'Rejection_soname' means that particular soname was rejected. 'Recommendation' is just a note. Additional types can be simply added here to provide new kinds of attributes.
LAvalue text No Attribute value. One can use <lib> tag inside this value to point to another libraries in the following way: Use <cmd newlib>newlib</cmd> instead.. These tags are automatically translated to legal URLs by LSB Navigator, AppChecker and other interested parties.

LSBVersion

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

ModSMod

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

Module

The Module table is an Entity table that represents specification modules. Appeared/withdrawn added to support module renaming and consolidation for LSB 5.0.

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.
Mappearedin varchar(5) '' No LSB version where the module was added.
Mwithdrawnin varchar(5) NULL Yes LSB version where the module was withdrawn.

Parameter

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
Pname varchar(255) '' Yes Parameter name

RpmTag

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

SectionTypes

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

SModCmd

The SModCmd table is a Relation table that defines the relationship between SubModule and Command.

Field Type Default NULL Description
SMCsmid int(10) unsigned '0' No Index into SubModule table (SubModule.SMid)
SMCcid int(10) unsigned '0' No Index into Command table (Command.Cid)
SMCappearedin varchar(5) '' No LSB version where the command appeared in the module
SMCwithdrawnin 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)

SModLib

The SModLib 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
SMLsmid int(10) unsigned '0' No Index into SubModule table (SubModule.SMid)
SMLlid int(10) unsigned '0' No Index into Library table (Library.Lid)
SMLappearedin varchar(5) '' No LSB version where the library appeared in the module
SMLwithdrawnin varchar(5) NULL Yes LSB version where the library was withdrawn from the module

SModStd

The SModStd table is a Relation table that defines the relationship between SubModule and Standard.

Field Type Default NULL Description
SMSsmid int(10) unsigned '0' No Index into SubModule table (SubModule.SMid)
SMSsid int(10) unsigned '0' No Index into Standard table (Standard.Sid)
SMSappearedin varchar(5) '' No LSB version where the relation appeared
SMSwithdrawnin varchar(5) NULL Yes LSB version where the relation dissappeared.

SourceBinary

SourceBinary table provides relation between source code of library headers and LSB elements. The relation provided is not mere utilization of foreign key, but rather is a string comparison. NOTE that this table may change its contents in the future.

Field Type Default NULL Description
SBssid int(12) unsigned '0' No Reference to the SourceShadow table. The information in this table's entry is about the entry referenced
SBlname varchar(200) No No Name of the library this entity belongs to.
SBtype enum ('interface','constant','macro','type') NULL Yes Entity type in terms of other LSB DB tables, or NULL, if it doesn't belong to any of these types
SBnormalized varchar(999) '' No The name the entity is identified by. For interfaces it's the name in the form the unmangler would produce, for constants and types it's fully-qualified name, for macros it's macro name. The names are normalized in the sense that all unnecessary whitespaces are stripped and, where necessary, only one space is left.

SourceCode

SourceCode is an entity table that contains pieces of unparsed code necessary for header files to function properly. This table stores inline function bodies, macro bodies and some comments.

Field Type Default NULL Description
SCid int(10) unsigned '0' No Unique source code identifier.
SCshid int(12) No No References the entry in SourceShadow table, to which this piece of code is attached.
SCkind enum('block', 'function-body', 'macro-body', 'macro_begin', 'macro_end', 'comment') 'function-body' No type of this piece of code. For more information see [TODO].
SCtext text '' Yes The contents of the relevant piece of code.

SourceHeader

SourceHeader is an entity table that represents header files API's comprised of. This table contains data for both user-visible and internal headers.

Field Type Default NULL Description
SHid int(10) unsigned '0' No Unique header identifier.
SHname varchar(255) No No The name of a header that is placed to #include <something> statements.
SHlib int(10) '0' Yes References the entry in Library table, to which this header belongs.
SHapi boolean false No Whether this header is allowed for user to include.
SHprefix varchar(255) NULL Yes The real path of the header in the filesystem. Having appended SHname to SHprefix, we get the complete absolute name of the header file.
SHc boolean true No Whether this header should be used with C compiler (by default all headers are supposed to require C++ compiler).

SourceQualifier

SourceQualifier is a relational table that represents interconnection of syntactic elements of source code of headers and defines some of their properties. The syntactic elements in subject are SourceShadow entries. The description below is brief; for more info refer to [TODO].

Field Type Default NULL Description
SQshid int(12) '0' No Reference to SourceShadow entity, for which the property is defined
SQqual enum('const', 'volatile', 'restrict', 'cv-qualifier' ,'inline', 'static', 'virtual', 'explicit', 'decl-specifier', 'declares' ,'private', 'public', 'protected', 'access-specifier' ,'throw', 'operator', 'abstract_attribute' ,'storage-class-specifier' ,'linkage' ,'size' ,'base' ,'parent' ,'definition_at' ,'return_type', 'is_function', 'parameter' ,'overloads' ,'is_template', 'template_parameter', 'export' ,'specializes' ,'is_template-id', 'template-id_parameter' ,'default_value', 'initializer', 'ctor-init' ,'array_length' ,'friend_link' ,'dependency', 'precedence', 'link-to' ,'scoped', 'declare-scope' ,'typename' ,'pointer-to', 'reference-to', 'modifier-to' ,'macro', 'macro_bottom' ,'GNU_attribute' ,'header', 'order', 'api', 'library', 'iid' ,'hides', 'is_branch' ,'no-escape' ,'compliant', 'incompliant','alteration', 'entity') No No The property this entry defines for SQshid entity
SQpos int(8) '0' Yes If the entity can have several instances of the SQqual property (for example, a class can have several base classes in particular order), then this field defines the position of current property in their list. If the nature of SQqual doesn't allow multiplicity, this field must be zero.
SQvalshid int(12) NULL Yes The value of the property defined by this row. For boolean properties it may be null as the their values are defined by whether the row exists. For some properties this value may hold reference to other table or mere integer value.

SourceShadow

SourceShadow is a back-end representation of an entry in a header file. The entries here are `shadows' of those introduced in the CxxApi table, though an API entry may have several shadows as it can change through time and diverse with architecture.

The description below is brief; for more info refer to [TODO].

Field Type Default NULL Description
SSid int(12) '0' No Unique shadow ID, sometimes referred as 'shid'.
SSvalue varchar(999) '' Yes The (unqualified) name of the entity, if it's necessary for its type.
SStype enum ('shadow', 'indirect', 'unnamed_type', 'formal', 'primitive', 'identifier', 'fake', 'config') 'formal' No The type of the entity. These types define the nature of the entity.
SSkind enum ('namespace', 'linkage', 'using-declaration', 'using-directive', 'class', 'struct', 'union', 'enum', 'typedef', 'variable', 'function', 'friend', 'macro', 'include', 'include_local', 'simple-declaration', 'comment') NULL Yes For entries with SStype equal to 'shadow', an additional subtype is defined.
SSent int(12) NULL Yes Reference to CxxApi table; denotes the entity this entry is a 'shadow' of (i.e. references the appropriate front-end entry).

StandardSource

StandardSource defines LSB versions where source code entries of header files that provide LSB interfaces appear and disappear.

Field Type Default NULL Description
StSappearedin varchar(255) '' No LSB version the entity appeared in
StSwithdrawnin varchar(255) NULL Yes LSB version the entity was withdrawn in
StSkey int(12) '0' Yes Entity ID
StStable enum ('shadow') No No The table StSkey references entity in. This enum contains more values, but they're banned

Standard

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..
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.
Stag varchar(255) '' No A tag that can be used to identify a standard in the LSB specification. Different versions of the same referenced specs (e.g., Gtk 2.4, Gtk 2.8, etc.) should have the same Stag. This Stag can be used in the specification; it will be replaced automatically by scripts with particular version during LSB generation according to LSB version.
Sappearedin varchar(5) '' No LSB version where the standard was referenced for the first time.
Swithdrawnin varchar(5) NULL Yes LSB version starting from which the standard is not referenced any more.

SubModule

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

TestCaseSource

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

TestCmd

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)

TestInt

This is the relation table between TestCaseSource and Interface which indicates which interfaces are covered by tests.

Note that LSB can include several versions of the same symbol; however, not more than one of these versions can be non-deprecated, and we suppose that the tests (if any) are targeted for that non-deprecated version. If all versions are deprecated, then we suppose that the tests are targeted for the most recent version.

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

TestSuite

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

Type

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
Tsrconly enum('Yes','No') 'No' No
Tconly enum('Yes','No') 'No' No 'Conly' types should be defined in headers only if '__cplusplus' is undefined
Tindirect enum('Yes','No') 'No' 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)

TypeMember

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.

TypeMemberExtras

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.

TypeType

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

VMIBaseTypes

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

Version

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

Vtable

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. If the virtual function name (mangled) is the same on all architectures, there should be only one record with VTarch=1. Otherwise, a separate entry should be created for every architecture. Remember: thunks have arch-specific mangled names, even though the same unmangled name.

[Article] [Discussion] [View source] [History]