ps2sdk  1.1
A collection of Open Source libraries used for developing applications on Sony's PlayStation 2® (PS2).
vif_codes.h
Go to the documentation of this file.
1 
6 #ifndef __VIF_CODES_H__
7 #define __VIF_CODES_H__
8 
9 #include <tamtypes.h>
10 
12 #define VIF_CMD_NOP 0x00
14 #define VIF_CMD_STCYCL 0x01
16 #define VIF_CMD_OFFSET 0x02
18 #define VIF_CMD_BASE 0x03
20 #define VIF_CMD_ITOP 0x04
22 #define VIF_CMD_STMOD 0x05
24 #define VIF_CMD_MSKPATH3 0x06
26 #define VIF_CMD_MARK 0x07
28 #define VIF_CMD_FLUSHE 0x10
30 #define VIF_CMD_FLUSH 0x11
32 #define VIF_CMD_FLUSHA 0x13
34 #define VIF_CMD_MSCAL 0x14
36 #define VIF_CMD_MSCNT 0x17
38 #define VIF_CMD_MSCALF 0x15
40 #define VIF_CMD_STMASK 0x20
42 #define VIF_CMD_STROW 0x30
44 #define VIF_CMD_STCOL 0x31
46 #define VIF_CMD_MPG 0x4A
48 #define VIF_CMD_DIRECT 0x50
50 #define VIF_CMD_DIRECTHL 0x51
51 
52 
53 #define PACK_VIFTAG(Q,W0,W1,W2,W3) \
54  Q->sw[0] = (u32)(W0), \
55  Q->sw[1] = (u32)(W1), \
56  Q->sw[2] = (u32)(W2), \
57  Q->sw[3] = (u32)(W3)
58 
60 #define VIF_CMD_UNPACK(M,VN,VL) \
61  (u32)((VL) & 0x00000003) << 0 | (u32)((VN) & 0x00000003) << 2 | \
62  (u32)((M) & 0x00000001) << 4 | (u32)((3) & 0x00000003) << 5
63 
64 #define STCYCL_IMDT(CL,WL) \
65  (u32)((CL) & 0x000000FF) << 0 | (u32)((WL) & 0x000000FF) << 8
66 
67 #define OFFSET_IMDT(OFFSET) \
68  (u32)((OFFSET) & 0x000003FF)
69 
70 #define BASE_IMDT(BASE) \
71  (u32)((BASE) & 0x000003FF)
72 
73 #define ITOP_IMDT(ADDR) \
74  (u32)((ADDR) & 0x000003FF)
75 
76 #define STMOD_IMDT(MODE) \
77  (u32)((MODE) & 0x00000003)
78 
79 #define MSKPATH3_IMDT(MASK) \
80  (u32)((MASK) & 0x00000001) << 15
81 
82 #define MARK_IMDT(MARK) \
83  (u32)((MARK) & 0x0000FFFF)
84 
85 #define MSCAL_IMDT(EXECADDR) \
86  (u32)((EXECADDR) & 0x0000FFFF)
87 
88 #define MSCALF_IMDT(EXECADDR) \
89  (u32)((EXECADDR) & 0x0000FFFF)
90 
91 #define MPG_IMDT(LOADADDR) \
92  (u32)((LOADADDR) & 0x0000FFFF)
93 
94 #define MPG_NUM(SIZE) \
95  (u32)((SIZE) & 0x000000FF) << 16
96 
97 #define DIRECT_IMDT(SIZE) \
98  (u32)((SIZE) & 0x0000FFFF)
99 
100 #define DIRECTHL_IMDT(EXECADDR) \
101  (u32)((EXECADDR) & 0x0000FFFF)
102 
103 #define UNPACK_IMDT(ADDR,USN,FLG) \
104  (u32)((ADDR) & 0x000003FF) << 0 | (u32)((USN) & 0x00000001) << 14 | \
105  (u32)((FLG) & 0x00000001) << 15
106 
107 #define UNPACK_NUM(SIZE) \
108  (u32)((SIZE) & 0x000000FF) << 16
109 
110 #define VIF_CODE(IMDT,NUM,CMD,IRQ) \
111  (u32)((IMDT) & 0x0000FFFF) << 0 | (u32)((NUM) & 0x000000FF) << 16 | \
112  (u32)((CMD) & 0x000000FF) << 24 | (u32)((IRQ) & 0x00000001) << 31
113 
114 #endif /* __VIF_CODES_H__ */