forked from len0rd/rockbox
Added non-blocking get/put_byte routines.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@8556 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
parent
507120c1b3
commit
c4d24a07ab
2 changed files with 25 additions and 0 deletions
|
|
@ -22,5 +22,7 @@
|
|||
void usb_serial_init(void);
|
||||
void usb_serial_put_byte(int b);
|
||||
int usb_serial_get_byte(void);
|
||||
int usb_serial_try_put_byte(int b);
|
||||
int usb_serial_try_get_byte(void);
|
||||
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -1081,6 +1081,17 @@ int usb_serial_get_byte(void)
|
|||
return fifo_get_byte(&serial_in_fifo);
|
||||
}
|
||||
|
||||
int usb_serial_try_get_byte(void)
|
||||
{
|
||||
int r;
|
||||
if (fifo_empty(&serial_in_fifo))
|
||||
r = -1;
|
||||
else
|
||||
r = fifo_get_byte(&serial_in_fifo);
|
||||
usb_serial_handle();
|
||||
return r;
|
||||
}
|
||||
|
||||
/*
|
||||
Not used:
|
||||
static int usb_serial_out_full(void)
|
||||
|
|
@ -1097,6 +1108,18 @@ void usb_serial_put_byte(int b)
|
|||
usb_serial_handle();
|
||||
}
|
||||
|
||||
int usb_serial_try_put_byte(int b)
|
||||
{
|
||||
int r = -1;
|
||||
if (!fifo_full(&serial_out_fifo))
|
||||
{
|
||||
fifo_put_byte(&serial_out_fifo, b);
|
||||
r = 0;
|
||||
}
|
||||
usb_serial_handle();
|
||||
return r;
|
||||
}
|
||||
|
||||
void usb_serial_init(void)
|
||||
{
|
||||
fifo_init(&serial_in_fifo);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue