19#define MODNAME "freepad"
20#define M_PRINTF(format, args...) printf(MODNAME ": " format, ## args)
21#define M_KPRINTF(format, args...) Kprintf(MODNAME ": " format, ## args)
24#define D_PRINTF(format, args...) printf(MODNAME ": " format, ## args)
26#define D_PRINTF(a...) (void)0
29#define PADMAN_THPRI_LO 46
30#define PADMAN_THPRI_HI 20
32#define SB_STAT *((volatile unsigned int*)0xBD000040)
37#define PAD_STATE_DISCONN 0x00
38#define PAD_STATE_FINDPAD 0x01
39#define PAD_STATE_FINDCTP1 0x02
40#define PAD_STATE_EXECCMD 0x05
41#define PAD_STATE_STABLE 0x06
42#define PAD_STATE_ERROR 0x07
47#define PAD_RSTAT_COMPLETE 0x00
48#define PAD_RSTAT_FAILED 0x01
49#define PAD_RSTAT_BUSY 0x02
54#define PAD_TYPE_NEJICON 0x2
55#define PAD_TYPE_KONAMIGUN 0x3
56#define PAD_TYPE_DIGITAL 0x4
57#define PAD_TYPE_ANALOG 0x5
58#define PAD_TYPE_NAMCOGUN 0x6
59#define PAD_TYPE_DUALSHOCK 0x7
61#define PAD_MODEL_DUALSHOCK 0x1
62#define PAD_MODEL_DUALSHOCK2 0x3
64#define MODE_CONFIG_NO_PAD 0x0
65#define MODE_CONFIG_QUERY_PAD 0x1
66#define MODE_CONFIG_READY 0x2
70#define TASK_UPDATE_PAD 1
71#define TASK_QUERY_PAD 2
72#define TASK_PORT_CLOSE 3
73#define TASK_SET_MAIN_MODE 4
74#define TASK_SET_ACT_ALIGN 5
75#define TASK_SET_BUTTON_INFO 6
76#define TASK_SET_VREF_PARAM 7
79#define EF_UPDATE_PAD 0x0001
80#define EF_QUERY_PAD 0x0002
82#define EF_SET_MAIN_MODE 0x0008
83#define EF_SET_ACT_ALIGN 0x0010
84#define EF_SET_SET_BUTTON_INFO 0x0020
85#define EF_SET_VREF_PARAM 0x0040
86#define EF_PAD_TRANSFER_START 0x0080
87#define EF_PAD_TRANSFER_DONE 0x0100
88#define EF_TASK_DONE 0x0200
89#define EF_PORT_CLOSE 0x0400
90#define EF_EXIT_THREAD 0x1000
93#define EF_VB_TRANSFER 0x0001
94#define EF_VB_TRANSFER_DONE 0x0004
95#define EF_VB_WAIT_THREAD_EXIT 0x0008
196 u32 data32[8 /
sizeof(u32)];
198 s16 ee_actDirectSize;
201 u32 data32[8 /
sizeof(u32)];
213 s32 setbuttoninfoTid;
226extern void WaitClearEvent(
int eventflag, u32 bits,
int mode, u32 *resbits_out);
227extern int VblankStart(
void *arg);
228extern int VblankEnd(
void *arg);
231extern s32
padInit(
void * ee_addr);
234extern s32
padPortOpen(s32 port, s32 slot, s32 pad_area_ee_addr, u32 *buf);
238extern u32 padGetButtonMask(u32 port, u32 slot);
239extern u32 padSetButtonInfo(u32 port, u32 slot, u32 info);
240extern u32 padSetVrefParam(u32 port, u32 slot,
const u8 *vparam);
241extern s32
padInfoAct(u32 port, u32 slot, s32 act, u32 val);
242extern s32 padInfoComb(u32 port, u32 slot, s32 listno, u32 offs);
243extern s32
padInfoMode(u32 port, u32 slot, s32 term, u32 offs);
int padPortOpen(int port, int slot, void *padArea)
int padInfoMode(int port, int slot, int infoMode, int index)
unsigned char padInfoAct(int port, int slot, int actuator, int cmd)
int padSetActDirect(int port, int slot, const char actAlign[6])
int padPortClose(int port, int slot)
int padSetMainMode(int port, int slot, int mode, int lock)
int padGetSlotMax(int port)
int padSetActAlign(int port, int slot, const char actAlign[6])