1 #ifndef __GCTYPES_H__
2 #define __GCTYPES_H__
3 
4 /*! \file gctypes.h
5 \brief Data type definitions
6 
7 */
8 
9 #include <stdbool.h>
10 #include <stdint.h>
11 
12 #ifdef __cplusplus
13    extern "C" {
14 #endif /* __cplusplus */
15 
16 /*+----------------------------------------------------------------------------------------------+*/
17 typedef uint8_t u8;					///< 8bit unsigned integer
18 typedef uint16_t u16;				///< 16bit unsigned integer
19 typedef uint32_t u32;				///< 32bit unsigned integer
20 typedef uint64_t u64;				///< 64bit unsigned integer
21 /*+----------------------------------------------------------------------------------------------+*/
22 typedef int8_t s8;					///< 8bit signed integer
23 typedef int16_t s16;				///< 16bit signed integer
24 typedef int32_t s32;				///< 32bit signed integer
25 typedef int64_t s64;				///< 64bit signed integer
26 /*+----------------------------------------------------------------------------------------------+*/
27 typedef volatile u8 vu8;			///< 8bit unsigned volatile integer
28 typedef volatile u16 vu16;			///< 16bit unsigned volatile integer
29 typedef volatile u32 vu32;			///< 32bit unsigned volatile integer
30 typedef volatile u64 vu64;			///< 64bit unsigned volatile integer
31 /*+----------------------------------------------------------------------------------------------+*/
32 typedef volatile s8 vs8;			///< 8bit signed volatile integer
33 typedef volatile s16 vs16;			///< 16bit signed volatile integer
34 typedef volatile s32 vs32;			///< 32bit signed volatile integer
35 typedef volatile s64 vs64;			///< 64bit signed volatile integer
36 /*+----------------------------------------------------------------------------------------------+*/
37 // fixed point math typedefs
38 typedef s16 sfp16;					///< signed 8:8 fixed point
39 typedef s32 sfp32;					///< signed 20:8 fixed point
40 typedef u16 ufp16;					///< unsigned 8:8 fixed point
41 typedef u32 ufp32;					///< unsigned 24:8 fixed point
42 /*+----------------------------------------------------------------------------------------------+*/
43 typedef float f32;
44 typedef double f64;
45 /*+----------------------------------------------------------------------------------------------+*/
46 typedef volatile float vf32;
47 typedef volatile double vf64;
48 /*+----------------------------------------------------------------------------------------------+*/
49 
50 typedef unsigned int BOOL;
51 /*+----------------------------------------------------------------------------------------------+*/
52 // alias type typedefs
53 #define FIXED s32					///< Alias type for sfp32
54 /*+----------------------------------------------------------------------------------------------+*/
55 #ifndef TRUE
56 #define TRUE	1					///< True
57 #endif
58 /*+----------------------------------------------------------------------------------------------+*/
59 #ifndef FALSE
60 #define FALSE	0					///< False
61 #endif
62 /*+----------------------------------------------------------------------------------------------+*/
63 #ifndef NULL
64 #define NULL	0					///< Pointer to 0
65 #endif
66 /*+----------------------------------------------------------------------------------------------+*/
67 #ifndef LITTLE_ENDIAN
68 #define LITTLE_ENDIAN  3412
69 #endif /* LITTLE_ENDIAN */
70 /*+----------------------------------------------------------------------------------------------+*/
71 #ifndef BIG_ENDIAN
72 #define BIG_ENDIAN     1234
73 #endif /* BIGE_ENDIAN */
74 /*+----------------------------------------------------------------------------------------------+*/
75 #ifndef BYTE_ORDER
76 #define BYTE_ORDER     BIG_ENDIAN
77 #endif /* BYTE_ORDER */
78 /*+----------------------------------------------------------------------------------------------+*/
79 
80 //!	argv structure
81 /*!	\struct __argv
82 
83 	structure used to set up argc/argv
84 
85 */
86 struct __argv {
87 	int argvMagic;		//!< argv magic number, set to 0x5f617267 ('_arg') if valid
88 	char *commandLine;	//!< base address of command line, set of null terminated strings
89 	int length;//!< total length of command line
90 	int argc;
91 	char **argv;
92 	char **endARGV;
93 };
94 
95 //!	Default location for the system argv structure.
96 extern struct __argv *__system_argv;
97 
98 // argv struct magic number
99 #define ARGV_MAGIC 0x5f617267
100 
101 #ifdef __cplusplus
102    }
103 #endif /* __cplusplus */
104 
105 #endif /* TYPES_H */
106 
107 /* END OF FILE */
108