Skip to content

Commit 1ca7d78

Browse files
committed
Add usb_check{recv,send}
1 parent b9f34ab commit 1ca7d78

2 files changed

Lines changed: 32 additions & 2 deletions

File tree

gc/ogc/usbgecko.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,8 @@
99

1010
void usb_flush(s32 chn);
1111
int usb_isgeckoalive(s32 chn);
12+
int usb_checkrecv(s32 chn);
13+
int usb_checksend(s32 chn);
1214
int usb_recvbuffer(s32 chn,void *buffer,int size);
1315
int usb_sendbuffer(s32 chn,const void *buffer,int size);
1416
int usb_recvbuffer_safe(s32 chn,void *buffer,int size);

libogc/usbgecko.c

Lines changed: 30 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,7 @@ static int __usb_recvbyte(s32 chn,char *ch)
8787
return ret;
8888
}
8989

90-
int __usb_checksend(s32 chn)
90+
static int __usb_checksend(s32 chn)
9191
{
9292
s32 ret;
9393
u16 val;
@@ -99,7 +99,7 @@ int __usb_checksend(s32 chn)
9999
return ret;
100100
}
101101

102-
int __usb_checkrecv(s32 chn)
102+
static int __usb_checkrecv(s32 chn)
103103
{
104104
s32 ret;
105105
u16 val;
@@ -150,6 +150,34 @@ int usb_isgeckoalive(s32 chn)
150150
return ret;
151151
}
152152

153+
int usb_checkrecv(s32 chn)
154+
{
155+
s32 ret;
156+
157+
if (!EXI_LockEx(chn, EXI_DEVICE_0))
158+
return 0;
159+
160+
ret = __usb_checkrecv(chn);
161+
162+
EXI_Unlock(chn);
163+
164+
return ret;
165+
}
166+
167+
int usb_checksend(s32 chn)
168+
{
169+
s32 ret;
170+
171+
if (!EXI_LockEx(chn, EXI_DEVICE_0))
172+
return 0;
173+
174+
ret = __usb_checksend(chn);
175+
176+
EXI_Unlock(chn);
177+
178+
return ret;
179+
}
180+
153181
int usb_recvbuffer_ex(s32 chn,void *buffer,int size, int retries)
154182
{
155183
s32 ret;

0 commit comments

Comments
 (0)