mirror of
https://github.com/wiidev/usbloadergx.git
synced 2024-11-16 00:15:08 +01:00
0e7d37b18b
*Fixed freeze in theme menu when its empty *Optimized the game list loading on fat/ntfs/ext. This should speed up the loading process. *Added cache of game titles. This will speed up the startup after the cache file is written (in other words on second start of this rev). A TitlesCache.bin will be created in the same path as the wiitdb.xml for this. This should especial speed up the startup of fat/ntfs/ext partitions by a lot if no sub folders with the game titles are used, like GAMEID.wbfs only. That must have been painfully slow before on a lot of games. Should be at about the same speed as with sub folders now. I would still recommend to use sub folders. *Removed wiilight (disc slot) blinking when switching USB port on Hermes cIOSes (thanks rodries) *Added the ehcmodule sources from rodries to the branches *Updated language files
145 lines
5.5 KiB
C
145 lines
5.5 KiB
C
#ifndef __GCTYPES_H__
|
|
#define __GCTYPES_H__
|
|
|
|
/*! \file gctypes.h
|
|
\brief Data type definitions
|
|
|
|
*/
|
|
typedef signed char int8_t ;
|
|
typedef unsigned char uint8_t;
|
|
typedef signed short int16_t;
|
|
typedef unsigned short uint16_t;
|
|
typedef signed int int32_t;
|
|
typedef unsigned int uint32_t;
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif /* __cplusplus */
|
|
|
|
/*+----------------------------------------------------------------------------------------------+*/
|
|
typedef unsigned char u8; ///< 8bit unsigned integer
|
|
typedef unsigned short u16; ///< 16bit unsigned integer
|
|
typedef unsigned int u32; ///< 32bit unsigned integer
|
|
typedef unsigned long long u64; ///< 64bit unsigned integer
|
|
/*+----------------------------------------------------------------------------------------------+*/
|
|
typedef signed char s8; ///< 8bit signed integer
|
|
typedef signed short s16; ///< 16bit signed integer
|
|
typedef signed int s32; ///< 32bit signed integer
|
|
typedef signed long long s64; ///< 64bit signed integer
|
|
/*+----------------------------------------------------------------------------------------------+*/
|
|
typedef volatile unsigned char vu8; ///< 8bit unsigned volatile integer
|
|
typedef volatile unsigned short vu16; ///< 16bit unsigned volatile integer
|
|
typedef volatile unsigned int vu32; ///< 32bit unsigned volatile integer
|
|
typedef volatile unsigned long long vu64; ///< 64bit unsigned volatile integer
|
|
/*+----------------------------------------------------------------------------------------------+*/
|
|
typedef volatile signed char vs8; ///< 8bit signed volatile integer
|
|
typedef volatile signed short vs16; ///< 16bit signed volatile integer
|
|
typedef volatile signed int vs32; ///< 32bit signed volatile integer
|
|
typedef volatile signed long long vs64; ///< 64bit signed volatile integer
|
|
/*+----------------------------------------------------------------------------------------------+*/
|
|
// fixed point math typedefs
|
|
typedef s16 sfp16; ///< 1:7:8 fixed point
|
|
typedef s32 sfp32; ///< 1:19:8 fixed point
|
|
typedef u16 ufp16; ///< 8:8 fixed point
|
|
typedef u32 ufp32; ///< 24:8 fixed point
|
|
/*+----------------------------------------------------------------------------------------------+*/
|
|
typedef float f32;
|
|
typedef double f64;
|
|
/*+----------------------------------------------------------------------------------------------+*/
|
|
typedef volatile float vf32;
|
|
typedef volatile double vf64;
|
|
/*+----------------------------------------------------------------------------------------------+*/
|
|
|
|
// bool is a standard type in cplusplus, but not in c.
|
|
#ifndef __cplusplus
|
|
/** C++ compatible bool for C
|
|
|
|
*/
|
|
typedef u8 bool;
|
|
enum { false, true };
|
|
#endif
|
|
|
|
typedef unsigned int BOOL;
|
|
/*+----------------------------------------------------------------------------------------------+*/
|
|
// alias type typedefs
|
|
#define FIXED s32 ///< Alias type for sfp32
|
|
/*+----------------------------------------------------------------------------------------------+*/
|
|
// boolean defines
|
|
#ifndef boolean
|
|
#define boolean u8
|
|
#endif
|
|
/*+----------------------------------------------------------------------------------------------+*/
|
|
#ifndef TRUE
|
|
#define TRUE 1 ///< True
|
|
#endif
|
|
/*+----------------------------------------------------------------------------------------------+*/
|
|
#ifndef FALSE
|
|
#define FALSE 0 ///< False
|
|
#endif
|
|
/*+----------------------------------------------------------------------------------------------+*/
|
|
#ifndef NULL
|
|
#define NULL 0 ///< Pointer to 0
|
|
#endif
|
|
/*+----------------------------------------------------------------------------------------------+*/
|
|
#ifndef LITTLE_ENDIAN
|
|
#define LITTLE_ENDIAN 3412
|
|
#endif /* LITTLE_ENDIAN */
|
|
/*+----------------------------------------------------------------------------------------------+*/
|
|
#ifndef BIG_ENDIAN
|
|
#define BIG_ENDIAN 1234
|
|
#endif /* BIGE_ENDIAN */
|
|
/*+----------------------------------------------------------------------------------------------+*/
|
|
#ifndef BYTE_ORDER
|
|
#define BYTE_ORDER BIG_ENDIAN
|
|
#endif /* BYTE_ORDER */
|
|
/*+----------------------------------------------------------------------------------------------+*/
|
|
|
|
|
|
//! argv structure
|
|
/*! \struct __argv
|
|
|
|
structure used to set up argc/argv
|
|
|
|
*/
|
|
struct __argv {
|
|
int argvMagic; //!< argv magic number, set to 0x5f617267 ('_arg') if valid
|
|
char *commandLine; //!< base address of command line, set of null terminated strings
|
|
int length;//!< total length of command line
|
|
int argc;
|
|
char **argv;
|
|
char **endARGV;
|
|
};
|
|
|
|
//! Default location for the system argv structure.
|
|
extern struct __argv *__system_argv;
|
|
|
|
// argv struct magic number
|
|
#define ARGV_MAGIC 0x5f617267
|
|
|
|
|
|
typedef uint32_t sec_t;
|
|
|
|
/* Attributes */
|
|
#ifndef ATTRIBUTE_ALIGN
|
|
# define ATTRIBUTE_ALIGN(v) __attribute__((aligned(v)))
|
|
#endif
|
|
#ifndef ATTRIBUTE_PACKED
|
|
# define ATTRIBUTE_PACKED __attribute__((packed))
|
|
#endif
|
|
|
|
/* Stack align */
|
|
#define STACK_ALIGN(type, name, cnt, alignment) \
|
|
u8 _al__##name[((sizeof(type)*(cnt)) + (alignment) + (((sizeof(type)*(cnt))%(alignment)) > 0 ? ((alignment) - ((sizeof(type)*(cnt))%(alignment))) : 0))]; \
|
|
type *name = (type*)(((u32)(_al__##name)) + ((alignment) - (((u32)(_al__##name))&((alignment)-1))))
|
|
|
|
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif /* __cplusplus */
|
|
|
|
#endif /* TYPES_H */
|
|
|
|
|
|
/* END OF FILE */
|