Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 | /**
* ADR-049: a target is a complete description of the platform facts the
* language depends on (schema version 1).
*
* The keys are spelled exactly as the catalog's `struct TargetDescription`
* members and as the description pragmas, so one name means one fact in all
* three places. `TARGET_DESCRIPTION_FIELDS` is typed over these keys, which is
* what ties the catalog's struct to this interface: the validator checks the
* struct's members against that table, and tsc checks the table against this.
*/
interface ITargetDescription {
readonly name: string;
/** The widest naturally atomic access, in bits */
readonly word_size: number;
/** Exclusive-access read-modify-write instructions exist */
readonly ldrex_strex: boolean;
/** Selective interrupt masking exists (ADR-050) */
readonly basepri: boolean;
readonly char_bits: number;
readonly char_signed: boolean;
readonly short_bits: number;
readonly int_bits: number;
readonly long_bits: number;
readonly long_long_bits: number;
readonly size_t_bits: number;
readonly pointer_bits: number;
readonly float_bits: number;
readonly double_bits: number;
/** Storage size, at least `double_bits` */
readonly long_double_bits: number;
readonly big_endian: boolean;
/** MISRA C:2012 Rule 5.1 */
readonly external_identifier_chars: number;
/** MISRA C:2012 Rule 5.9 (recorded, not yet enforced: #1338) */
readonly internal_identifier_chars: number;
/** A compiler configuration to check generated code against; never changes the program's meaning */
readonly toolchain_triple?: string;
/** As `toolchain_triple` */
readonly toolchain_cpu?: string;
}
export default ITargetDescription;
|