AUTOSAR SWS PlatformTypes
AUTOSAR SWS PlatformTypes
AUTOSAR CP R20-11
• Removed SWS_Platform_00063 as
AUTOSAR the influence of Post-build time
2014-10-31 4.2.1 Release configuration parameters on header
Management files is already specified in
SWS_BSWGeneral.
AUTOSAR
2014-03-31 4.1.3 Release • Editorial changes.
Management
Disclaimer
This work (specification and/or software implementation) and the material contained in
it, as released by AUTOSAR, is for the purpose of information only. AUTOSAR and the
companies that have contributed to it shall not be liable for any use of the work.
The material contained in this work is protected by copyright and other types of intel-
lectual property rights. The commercial exploitation of the material contained in this
work requires a license to such intellectual property rights.
This work may be utilized or reproduced without any modification, in any form or by
any means, for informational purposes only. For any other purpose, no part of the work
may be utilized or reproduced, in any form or by any means, without permission in
writing from the publisher.
The work has been developed for automotive applications only. It has neither been
developed, nor tested for non-automotive applications.
The word AUTOSAR and the AUTOSAR logo are registered trademarks.
Table of Contents
1 Introduction and functional overview 7
3 Related documentation 9
3.1 Input documents & related standards and norms . . . . . . . . . . . . 9
3.2 Related specification . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
4 Constraints and assumptions 11
4.1 Limitations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
4.2 Applicability to car domains . . . . . . . . . . . . . . . . . . . . . . . . 11
4.3 Applicability to safety related environments . . . . . . . . . . . . . . . . 11
5 Dependencies to other modules 12
5.1 File structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
5.1.1 Code file structure . . . . . . . . . . . . . . . . . . . . . . . . 12
5.1.2 Header file structure . . . . . . . . . . . . . . . . . . . . . . . 12
6 Requirements Tracing 13
7 Functional specification 20
7.1 General issues . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
7.2 CPU Type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
7.3 Endianess . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
7.3.1 Bit Ordering (Register) . . . . . . . . . . . . . . . . . . . . . 20
7.3.2 Byte Ordering (Memory) . . . . . . . . . . . . . . . . . . . . 21
7.4 Optimized integer data types . . . . . . . . . . . . . . . . . . . . . . . . 23
7.5 Boolean data type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
7.6 Error classification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
7.6.1 Development Errors . . . . . . . . . . . . . . . . . . . . . . . 24
7.6.2 Runtime Errors . . . . . . . . . . . . . . . . . . . . . . . . . . 24
7.6.3 Transient Faults . . . . . . . . . . . . . . . . . . . . . . . . . 24
7.6.4 Production Errors . . . . . . . . . . . . . . . . . . . . . . . . 24
7.6.5 Extended Production Errors . . . . . . . . . . . . . . . . . . . 24
8 API specification 25
8.1 Imported types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
8.2 Type definitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
8.2.1 boolean . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
8.2.2 uint8 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
8.2.3 uint16 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
8.2.4 uint32 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
8.2.5 uint64 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
8.2.6 sint8 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
8.2.7 sint16 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
8.2.8 sint32 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
8.2.9 sint64 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
8.2.10 uint8_least . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
8.2.11 uint16_least . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
8.2.12 uint32_least . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
8.2.13 sint8_least . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
8.2.14 sint16_least . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
8.2.15 sint32_least . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
8.2.16 float32 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
8.2.17 float64 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
8.2.18 VoidPtr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
8.2.19 ConstVoidPtr . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
8.3 Symbol definitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
8.3.1 CPU_TYPE . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
8.3.2 CPU_BIT_ORDER . . . . . . . . . . . . . . . . . . . . . . . . 32
8.3.3 CPU_BYTE_ORDER . . . . . . . . . . . . . . . . . . . . . . 32
8.3.4 TRUE, FALSE . . . . . . . . . . . . . . . . . . . . . . . . . . 33
8.4 Function definitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
8.5 Call-back notifications . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
8.6 Scheduled functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
8.7 Expected Interfaces . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
9 Sequence diagrams 35
10 Configuration specification 36
10.1 Published parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
A Annex 37
A.1 Type definitions - general . . . . . . . . . . . . . . . . . . . . . . . . . . 37
A.2 Type definitions - S12X . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
A.3 Type definitions - ST10 . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
A.4 Type definitions - ST30 . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
A.5 Type definitions - V850 . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
A.6 Type definitions - MPC5554 . . . . . . . . . . . . . . . . . . . . . . . . 39
A.7 Type definitions - TC1796/TC1766 . . . . . . . . . . . . . . . . . . . . 40
A.8 Type definitions - MB91F . . . . . . . . . . . . . . . . . . . . . . . . . . 40
A.9 Type definitions - M16C/M32C . . . . . . . . . . . . . . . . . . . . . . . 41
A.10 Type definitions - SHx . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
A.11 Type definitions - ARM Cortex A53 . . . . . . . . . . . . . . . . . . . . 42
B Not applicable requirements 44
Acronym Description
Rollover mechanism The following example sequence is called ’rollover’:
• An unsigned char has the value of 255.
• It is incremented by 1.
• The result is 0.
SDU Service Data Unit (payload)
Abbreviation Description
int Integer
3 Related documentation
4.1 Limitations
No limitations.
None
Two header file structures are applicable. One is depending on communication related
basic software modules and the second is depending on non-communication related
basic software modules.
6 Requirements Tracing
The following tables reference the requirements specified in General Requirements on
Basic Software Modules [5] and links to the fulfillment of these. Please note that if col-
umn “Satisfied by” is empty for a specific requirement this means that this requirement
is not fulfilled by this document.
Requirement Description Satisfied by
[SRS_BSW_00005] Modules of the µC Abstraction [SWS_Platform_00063]
Layer (MCAL) may not have
hard coded horizontal interfaces
[SRS_BSW_00007] All Basic SW Modules written in [SWS_Platform_00063]
C language shall conform to the
MISRA C 2012 Standard.
[SRS_BSW_00009] All Basic SW Modules shall be [SWS_Platform_00063]
documented according to a
common standard.
[SRS_BSW_00010] The memory consumption of all [SWS_Platform_00063]
Basic SW Modules shall be
documented for a defined
configuration for all supported
platforms.
[SRS_BSW_00101] The Basic Software Module shall [SWS_Platform_00063]
be able to initialize variables and
hardware in a separate
initialization function
[SRS_BSW_00158] No description [SWS_Platform_00063]
[SRS_BSW_00159] All modules of the AUTOSAR [SWS_Platform_00063]
Basic Software shall support a
tool based configuration
[SRS_BSW_00160] Configuration files of AUTOSAR [SWS_Platform_00063]
Basic SW module shall be
readable for human beings
[SRS_BSW_00161] The AUTOSAR Basic Software [SWS_Platform_00063]
shall provide a microcontroller
abstraction layer which provides
a standardized interface to
higher software layers
[SRS_BSW_00162] The AUTOSAR Basic Software [SWS_Platform_00063]
shall provide a hardware
abstraction layer
[SRS_BSW_00164] The Implementation of interrupt [SWS_Platform_00063]
service routines shall be done
by the Operating System,
complex drivers or modules
[SRS_BSW_00167] All AUTOSAR Basic Software [SWS_Platform_00063]
Modules shall provide
configuration rules and
constraints to enable plausibility
checks
[SRS_BSW_00168] SW components shall be tested [SWS_Platform_00063]
by a function defined in a
common API in the Basis-SW
7 Functional specification
7.3 Endianess
The pattern for bit, byte and word ordering in native types, such as integers, is called
endianess.
[SWS_Platform_00043] dFor each platform the appropriate bit order on register level
shall be indicated in the platform types header file using the symbol CPU_BIT_ORDER.c
()
[SWS_Platform_00046] dFor each platform the appropriate byte order on memory
level shall be indicated in the platform types header file using the symbol CPU_BYTE_-
ORDER.c()
Figure 7.1: Big Endian bit ordering versus Little Endian bit ordering
Important Note:
The naming convention Bit0, Bit1, etc. and the bit’s significance within a byte, word, etc.
are different topics and shall not be mixed. The counting scheme of bits in Motorola[6]
µC-architecture’s (Big Endian Bit Order) starts with Bit0 indicating the Most Significant
Bit, whereas all other µC using Little Endian Bit Order assign Bit0 to be the Least
Significant Bit!
The MSB in an accumulator is always stored as the left-most bit regardless of the CPU
type. Hence, Big and Little Endianess bit orders imply different bit-naming conventions.
Naming convention for illustration: The Most Significant Byte within a 16 bit wide
data is named Byte1. The Least Significant Byte within a 16 bit wide data is named
Byte0.
Important Note: The naming convention Byte0 and Byte1 is not unique and may be
different in the manufacturer’s reference documentation for a particular µC.
c(SRS_BSW_00378)
8 API specification
8.2.1 boolean
[SWS_Platform_00026] d
Name boolean
Kind Type
Range FALSE 0 –
TRUE 1 –
Description This standard AUTOSAR type shall only be used together with the definitions TRUE and FALSE.
Variation –
Available via Platform_Types.h
c(SRS_BSW_00378)
See [SWS_Platform_00027] for implementation and usage.
[SWS_Platform_00060] dThe boolean type shall always be mapped to a platform
specific type where pointers can be applied to in order to enable a passing of parame-
ters via API.There are specific BIT types of some HW platforms which are very efficient
but where no pointers can point to.c()
8.2.2 uint8
[SWS_Platform_00013] d
Name uint8
Kind Type
Range 0..255 – 0x00..0xFF
Description This standard AUTOSAR type shall be of 8 bit unsigned.
Variation –
Available via Platform_Types.h
c(SRS_BSW_00304)
8.2.3 uint16
[SWS_Platform_00014] d
Name uint16
Kind Type
Range 0..65535 – 0x0000..0xFFFF
Description This standard AUTOSAR type shall be of 16 bit unsigned.
Variation –
Available via Platform_Types.h
c(SRS_BSW_00304)
8.2.4 uint32
[SWS_Platform_00015] d
Name uint32
Kind Type
Range 0..4294967295 – 0x00000000..0xFFFFFFFF
Description This standard AUTOSAR type shall be 32 bit unsigned.
Variation –
Available via Platform_Types.h
c(SRS_BSW_00304)
8.2.5 uint64
[SWS_Platform_00066] d
Name uint64
Kind Type
Range 0..18446744073709551615 – 0x0000000000000000..0x
FFFFFFFFFFFFFFFF
Description This standard AUTOSAR type shall be 64 bit unsigned.
Variation –
Available via Platform_Types.h
c()
8.2.6 sint8
[SWS_Platform_00016] d
Name sint8
Kind Type
Range -128..+127 – 0x80..0x7F
Description This standard AUTOSAR type shall be of 8 bit signed.
Variation –
Available via Platform_Types.h
c(SRS_BSW_00304)
8.2.7 sint16
[SWS_Platform_00017] d
Name sint16
Kind Type
Range -32768..+32767 – 0x8000..0x7FFF
Description This standard AUTOSAR type shall be of 16 bit signed.
Variation –
Available via Platform_Types.h
c(SRS_BSW_00304)
8.2.8 sint32
[SWS_Platform_00018] d
Name sint32
Kind Type
Range -2147483648..+2147483647 – 0x80000000..0x7FFFFFFF
Description This standard AUTOSAR type shall be 32 bit signed.
Variation –
Available via Platform_Types.h
c(SRS_BSW_00304)
8.2.9 sint64
[SWS_Platform_00067] d
Name sint64
Kind Type
Range -9223372036854775808 .. – 0x8000000000000000 ..
9223372036854775807 0x7FFFFFFFFFFFFFFF
Description This standard AUTOSAR type shall be 64 bit signed.
Variation –
Available via Platform_Types.h
c()
8.2.10 uint8_least
[SWS_Platform_00020] d
Name uint8_least
Kind Type
Derived from uint
Range At least 0..255 – 0x00..0xFF
Description This optimized AUTOSAR type shall be at least 8 bit unsigned.
Available via Platform_Types.h
c(SRS_BSW_00304)
See chapter 7.4 for implementation and usage.
8.2.11 uint16_least
[SWS_Platform_00021] d
Name uint16_least
Kind Type
Derived from uint
Range At least 0..65535 – 0x0000..0xFFFF
Description This optimized AUTOSAR type shall be at least 16 bit unsigned.
Available via Platform_Types.h
c(SRS_BSW_00304)
See chapter 7.4 for implementation and usage.
8.2.12 uint32_least
[SWS_Platform_00022] d
Name uint32_least
Kind Type
Derived from uint
Range At least 0..4294967295 – 0x00000000..0xFFFFFFFF
Description This optimized AUTOSAR type shall be at least 32 bit unsigned.
Available via Platform_Types.h
c(SRS_BSW_00304)
See chapter 7.4 for implementation and usage.
8.2.13 sint8_least
[SWS_Platform_00023] d
Name sint8_least
Kind Type
Derived from sint
Range At least -128..+127 – 0x80..0x7F
Description This optimized AUTOSAR type shall be at least 8 bit signed.
Available via Platform_Types.h
c(SRS_BSW_00304)
See chapter 7.4 for implementation and usage.
8.2.14 sint16_least
[SWS_Platform_00024] d
Name sint16_least
Kind Type
Derived from sint
Range At least -32768..+32767 – 0x8000..0x7FFF
Description This optimized AUTOSAR type shall be at least 16 bit signed.
Available via Platform_Types.h
c(SRS_BSW_00304)
See chapter 7.4 for implementation and usage.
8.2.15 sint32_least
[SWS_Platform_00025] d
Name sint32_least
Kind Type
Derived from sint
Range At least – 0x80000000..0x7FFFFFFF
-2147483648..+2147483647
Description This optimized AUTOSAR type shall be at least 32 bit signed.
Available via Platform_Types.h
c(SRS_BSW_00304)
See chapter 7.4 for implementation and usage.
8.2.16 float32
[SWS_Platform_00041] d
Name float32
Kind Type
Range -3.4028235e+38 .. – –
+3.4028235e+38
Description This standard AUTOSAR type shall follow the 32-bit binary interchange format according to IEEE
754-2008 with encoding parameters specified in chapter 3.6, table 3.5, column "binary32".
Variation –
Available via Platform_Types.h
c()
8.2.17 float64
[SWS_Platform_00042] d
Name float64
Kind Type
Range -1.7976931348623157e+308 .. – –
+1.7976931348623157e+308
Description This standard AUTOSAR type shall follow the 64-bit binary interchange format according to IEEE
754-2008 with encoding parameters specified in chapter 3.6, table 3.5, column "binary64".
Available via Platform_Types.h
c()
8.2.18 VoidPtr
[SWS_Platform_91001] d
Name VoidPtr
Kind Pointer
Type void*
Description This standard AUTOSAR type shall be a void pointer
Note: This type shall be used for buffers that contain data returned to the caller.
Variation –
Available via Platform_Types.h
c()
8.2.19 ConstVoidPtr
[SWS_Platform_91002] d
Name ConstVoidPtr
Kind Const Pointer
Type const void*
Description This standard AUTOSAR type shall be a void pointer to const.
Note: This type shall be used for buffers that are passed to the callee.
Variation –
Available via Platform_Types.h
c()
8.3.1 CPU_TYPE
[SWS_Platform_00064] d
Name CPU_TYPE
Kind Enumeration
Range CPU_TYPE_8 – Indicating a 8 bit processor
CPU_TYPE_16 – Indicating a 16 bit processor
CPU_TYPE_32 – Indicating a 32 bit processor
CPU_TYPE_64 – Indicating a 64 bit processor
Description This symbol shall be defined as #define having one of the values CPU_TYPE_8, CPU_TYPE_16,
CPU_TYPE_32 or CPU_TYPE_64 according to the platform.
Available via Platform_Types.h
c()
8.3.2 CPU_BIT_ORDER
[SWS_Platform_00038] d
Name CPU_BIT_ORDER
Kind Enumeration
Range MSB_FIRST – The most significant bit is the first bit of the bit
sequence.
LSB_FIRST – The least significant bit is the first bit of the bit
sequence.
Description This symbol shall be defined as #define having one of the values MSB_FIRST or LSB_FIRST
according to the platform.
Available via Platform_Types.h
c()
8.3.3 CPU_BYTE_ORDER
[SWS_Platform_00039] d
Name CPU_BYTE_ORDER
Kind Enumeration
Range HIGH_BYTE_FIRST – Within uint16, the high byte is located before
the low byte.
5
4
LOW_BYTE_FIRST – Within uint16, the low byte is located before
the high byte.
Description This symbol shall be defined as #define having one of the values HIGH_BYTE_FIRST or LOW_
BYTE_FIRST according to the platform.
Available via Platform_Types.h
c()
[SWS_Platform_00056] d
Name TRUE_FALSE
Kind Enumeration
Range FALSE 0x00 –
TRUE 0x01 –
Description The symbols TRUE and FALSE shall be defined as follows:
#ifndef TRUE
#define TRUE 1
#endif
#ifndef FALSE
#define FALSE 0
#endif
Available via Platform_Types.h
c()
[SWS_Platform_00054] dIn case of in-built compiler support of the symbols, redefini-
tions shall be avoided using a conditional check.c()
[SWS_Platform_00055] dThese symbols shall only be used in conjunction with the
boolean type defined in Platform_Types.h.c()
9 Sequence diagrams
Not applicable.
10 Configuration specification
A Annex
Types:
1 typedef unsigned char boolean;
2 typedef signed char sint8;
3 typedef unsigned char uint8;
4 typedef signed short sint16;
5 typedef unsigned short uint16;
6 typedef signed long sint32;
7 typedef signed long long sint64;
8 typedef unsigned long uint32;
9 typedef unsigned long long uint64;
10 typedef signed char sint8_least;
11 typedef unsigned char uint8_least;
12 typedef signed short sint16_least;
13 typedef unsigned short uint16_least;
14 typedef signed long sint32_least;
15 typedef unsigned long uint32_least;
16 typedef float float32;
17 typedef double float64;
Symbols:
1 #define CPU_TYPE CPU_TYPE_16
2 #define CPU_BIT_ORDER LSB_FIRST
3 #define CPU_BYTE_ORDER LOW_BYTE_FIRST
Types:
1 typedef unsigned char boolean;
2 typedef signed char sint8;
3 typedef unsigned char uint8;
4 typedef signed short sint16;
5 typedef unsigned short uint16;
6 typedef signed long sint32;
7 typedef signed long long sint64;
8 typedef unsigned long uint32;
9 typedef unsigned long long uint64;
10 typedef unsigned short uint8_least;
11 typedef unsigned short uint16_least;
12 typedef unsigned long uint32_least;
13 typedef signed short sint8_least;
14 typedef signed short sint16_least;
15 typedef signed long sint32_least;
16 typedef float float32;
17 typedef double float64;
Types:
1 typedef unsigned char boolean;
2 typedef signed char sint8;
3 typedef unsigned char uint8;
4 typedef signed short sint16;
5 typedef unsigned short uint16;
6 typedef signed long sint32;
7 typedef signed long long sint64;
8 typedef unsigned long uint32;
9 typedef unsigned long long uint64;
10 typedef unsigned long uint8_least;
11 typedef unsigned long uint16_least;
12 typedef unsigned long uint32_least;
13 typedef signed long sint8_least;
14 typedef signed long sint16_least;
15 typedef signed long sint32_least;
Types:
1 typedef unsigned char boolean;
2 typedef signed char sint8;
3 typedef unsigned char uint8;
4 typedef signed short sint16;
5 typedef unsigned short uint16;
6 typedef signed long sint32;
7 typedef signed long long sint64;
8 typedef unsigned long uint32;
9 typedef unsigned long long uint64;
10 typedef unsigned long uint8_least;
11 typedef unsigned long uint16_least;
12 typedef unsigned long uint32_least;
13 typedef signed long sint8_least;
14 typedef signed long sint16_least;
15 typedef signed long sint32_least;
16 typedef float float32;
17 typedef double float64;
Types:
1 typedef unsigned char boolean;
2 typedef signed char sint8;
3 typedef unsigned char uint8;
4 typedef signed short sint16;
Types:
1 typedef unsigned char boolean;
2 typedef signed char sint8;
3 typedef unsigned char uint8;
4 typedef signed short sint16;
5 typedef unsigned short uint16;
6 typedef signed long sint32;
7 typedef signed long long sint64;
8 typedef unsigned long uint32;
9 typedef unsigned long long uint64;
10 typedef unsigned long uint8_least;
11 typedef unsigned long uint16_least;
12 typedef unsigned long uint32_least;
13 typedef signed long sint8_least;
14 typedef signed long sint16_least;
15 typedef signed long sint32_least;
16 typedef float float32;
17 typedef double float64;
Types:
1 typedef unsigned char boolean;
2 typedef signed char sint8;
3 typedef unsigned char uint8;
4 typedef signed short sint16;
5 typedef unsigned short uint16;
6 typedef signed long sint32;
7 typedef signed long long sint64;
8 typedef unsigned long uint32;
9 typedef unsigned long long uint64;
10 typedef unsigned long uint8_least;
11 typedef unsigned long uint16_least;
12 typedef unsigned long uint32_least;
13 typedef signed long sint8_least;
14 typedef signed long sint16_least;
15 typedef signed long sint32_least;
16 typedef float float32;
17 typedef double float64;
Types:
1 typedef unsigned char boolean;
2 typedef signed char sint8;
3 typedef unsigned char uint8;
4 typedef signed short sint16;
5 typedef unsigned short uint16;
6 typedef signed long sint32;
7 typedef signed long long sint64;
8 typedef unsigned long uint32;
9 typedef unsigned long long uint64;
10 typedef unsigned short uint8_least;
11 typedef unsigned short uint16_least;
12 typedef unsigned long uint32_least;
13 typedef signed short sint8_least;
14 typedef signed short sint16_least;
15 typedef signed long sint32_least;
16 typedef float float32;
17 typedef double float64;
Types:
1 typedef unsigned char boolean;
2 typedef signed char sint8;
3 typedef unsigned char uint8;
4 typedef signed short sint16;
5 typedef unsigned short uint16;
6 typedef signed int sint32;
7 typedef signed long long sint64;
8 typedef unsigned int uint32;
9 typedef unsigned long long uint64;
10 typedef unsigned long uint8_least;
11 typedef unsigned long uint16_least;
12 typedef unsigned long uint32_least;
13 typedef signed long sint8_least;
14 typedef signed long sint16_least;
15 typedef signed long sint32_least;
16 typedef float float32;
17 typedef double float64;
Types:
1 typedef unsigned char boolean;
2 typedef unsigned char uint8;
3 typedef unsigned short uint16;
4 typedef unsigned int uint32;
5 typedef unsigned long long uint64;
6 typedef signed char sint8;
7 typedef signed short sint16;
8 typedef signed int sint32;
9 typedef signed long long sint64;
10 typedef unsigned int uint8_least;