ps2sdk  1.1
A collection of Open Source libraries used for developing applications on Sony's PlayStation 2® (PS2).
tamtypes.h
Go to the documentation of this file.
1 /*
2 # _____ ___ ____ ___ ____
3 # ____| | ____| | | |____|
4 # | ___| |____ ___| ____| | \ PS2DEV Open Source Project.
5 #-----------------------------------------------------------------------
6 # Copyright 2001-2004, ps2dev - http://www.ps2dev.org
7 # Licenced under Academic Free License version 2.0
8 # Review ps2sdk README & LICENSE files for further details.
9 */
10 
16 #ifndef __TAMTYPES_H__
17 #define __TAMTYPES_H__
18 
19 #if !defined(_EE) && !defined(_IOP)
20 #error Either _EE or _IOP must be defined!
21 #endif
22 
23 typedef unsigned char u8;
24 typedef unsigned short u16;
25 
26 typedef volatile u8 vu8;
27 typedef volatile u16 vu16;
28 
29 #ifdef _EE
30 typedef unsigned int u32;
31 #if __GNUC__ > 3
32 typedef unsigned long long u64;
33 #else
34 typedef unsigned long u64;
35 #endif
36 typedef unsigned int u128 __attribute__(( mode(TI) ));
37 
38 typedef volatile u32 vu32;
39 typedef volatile u64 vu64;
40 typedef volatile u128 vu128 __attribute__(( mode(TI) ));
41 #endif
42 
43 #ifdef _IOP
44 typedef unsigned long u32;
45 typedef unsigned long long u64;
46 
47 typedef volatile u32 vu32;
48 typedef volatile u64 vu64;
49 #endif
50 
51 typedef signed char s8;
52 typedef signed short s16;
53 
54 typedef volatile s8 vs8;
55 typedef volatile s16 vs16;
56 
57 #ifdef _EE
58 typedef signed int s32;
59 #if __GNUC__ > 3
60 typedef signed long long s64;
61 #else
62 typedef signed long s64;
63 #endif
64 typedef signed int s128 __attribute__(( mode(TI) ));
65 
66 typedef volatile s32 vs32;
67 typedef volatile s64 vs64;
68 typedef volatile s128 vs128 __attribute__(( mode(TI) ));
69 #endif
70 
71 #ifdef _IOP
72 typedef signed long s32;
73 typedef signed long long s64;
74 
75 typedef volatile s32 vs32;
76 typedef volatile s64 vs64;
77 #endif
78 
79 #ifdef _EE
80 typedef union {
82  u8 b[16];
83  u16 hw[8];
84  u32 sw[4];
85  u64 dw[2];
86 } qword_t;
87 
88 #endif
89 
90 #ifndef NULL
91 #define NULL (void *)0
92 #endif
93 
94 static inline u8 _lb(u32 addr) { return *(vu8 *)addr; }
95 static inline u16 _lh(u32 addr) { return *(vu16 *)addr; }
96 static inline u32 _lw(u32 addr) { return *(vu32 *)addr; }
97 
98 static inline void _sb(u8 val, u32 addr) { *(vu8 *)addr = val; }
99 static inline void _sh(u16 val, u32 addr) { *(vu16 *)addr = val; }
100 static inline void _sw(u32 val, u32 addr) { *(vu32 *)addr = val; }
101 
102 #ifdef _EE
103 static inline u64 _ld(u32 addr) { return *(vu64 *)addr; }
104 static inline u128 _lq(u32 addr) { return *(vu128 *)addr; }
105 static inline void _sd(u64 val, u32 addr) { *(vu64 *)addr = val; }
106 static inline void _sq(u128 val, u32 addr) { *(vu128 *)addr = val; }
107 #endif
108 
109 #endif /* __TAMTYPES_H__ */
s32 mode
Definition: rpc_client.c:15
signed int s32
Definition: tamtypes.h:58
volatile s8 vs8
Definition: tamtypes.h:54
unsigned int u32
Definition: tamtypes.h:30
signed long s64
Definition: tamtypes.h:62
signed char s8
Definition: tamtypes.h:51
volatile u8 vu8
Definition: tamtypes.h:26
static u64 _ld(u32 addr)
Definition: tamtypes.h:103
unsigned int u128
Definition: tamtypes.h:36
static u16 _lh(u32 addr)
Definition: tamtypes.h:95
volatile u128 vu128
Definition: tamtypes.h:40
volatile s64 vs64
Definition: tamtypes.h:67
static u128 _lq(u32 addr)
Definition: tamtypes.h:104
signed short s16
Definition: tamtypes.h:52
volatile u16 vu16
Definition: tamtypes.h:27
volatile s32 vs32
Definition: tamtypes.h:66
volatile s128 vs128
Definition: tamtypes.h:68
static void _sh(u16 val, u32 addr)
Definition: tamtypes.h:99
volatile s16 vs16
Definition: tamtypes.h:55
static void _sd(u64 val, u32 addr)
Definition: tamtypes.h:105
static u32 _lw(u32 addr)
Definition: tamtypes.h:96
unsigned short u16
Definition: tamtypes.h:24
static void _sq(u128 val, u32 addr)
Definition: tamtypes.h:106
static u8 _lb(u32 addr)
Definition: tamtypes.h:94
signed int s128
Definition: tamtypes.h:64
static void _sb(u8 val, u32 addr)
Definition: tamtypes.h:98
volatile u32 vu32
Definition: tamtypes.h:38
volatile u64 vu64
Definition: tamtypes.h:39
static void _sw(u32 val, u32 addr)
Definition: tamtypes.h:100
unsigned char u8
Definition: tamtypes.h:23
unsigned long u64
Definition: tamtypes.h:34
u128 qw
Definition: tamtypes.h:81