forked from Imagelibrary/rtems
Patch to add return status to rtems_termios_enqueue_raw_characters from
Eric Norum per request from Geoffroy Montel: > The rtems_termios_enqueue_raw_characters function type is void. > The problem is that I can't return an error message if the input > buffer is full. > Could we add a return value? Sure, but what would you do with the overflow indication? POSIX says, ``when the input limit is reached, the saved characters are thrown away without notice''. Anyhow, the change is so small I've done it and enclosed the patch.
This commit is contained in:
@@ -156,7 +156,7 @@ rtems_status_code rtems_termios_close (void *arg);
|
||||
rtems_status_code rtems_termios_read (void *arg);
|
||||
rtems_status_code rtems_termios_write (void *arg);
|
||||
rtems_status_code rtems_termios_ioctl (void *arg);
|
||||
void rtems_termios_enqueue_raw_characters (void *ttyp, char *buf, int len);
|
||||
int rtems_termios_enqueue_raw_characters (void *ttyp, char *buf, int len);
|
||||
void rtems_termios_dequeue_characters (void *ttyp, int len);
|
||||
void rtems_termios_reserve_resources(
|
||||
rtems_configuration_table *configuration,
|
||||
|
||||
@@ -837,8 +837,9 @@ rtems_termios_read (void *arg)
|
||||
* Place characters on raw queue.
|
||||
* NOTE: This routine runs in the context of the
|
||||
* device receive interrupt handler.
|
||||
* Returns the number of characters dropped because of overlow.
|
||||
*/
|
||||
void
|
||||
int
|
||||
rtems_termios_enqueue_raw_characters (void *ttyp, char *buf, int len)
|
||||
{
|
||||
struct rtems_termios_tty *tty = ttyp;
|
||||
@@ -855,6 +856,7 @@ rtems_termios_enqueue_raw_characters (void *ttyp, char *buf, int len)
|
||||
tty->rawInBufTail = newTail;
|
||||
}
|
||||
rtems_semaphore_release (tty->rawInBufSemaphore);
|
||||
return len;
|
||||
}
|
||||
|
||||
/*
|
||||
|
||||
@@ -156,7 +156,7 @@ rtems_status_code rtems_termios_close (void *arg);
|
||||
rtems_status_code rtems_termios_read (void *arg);
|
||||
rtems_status_code rtems_termios_write (void *arg);
|
||||
rtems_status_code rtems_termios_ioctl (void *arg);
|
||||
void rtems_termios_enqueue_raw_characters (void *ttyp, char *buf, int len);
|
||||
int rtems_termios_enqueue_raw_characters (void *ttyp, char *buf, int len);
|
||||
void rtems_termios_dequeue_characters (void *ttyp, int len);
|
||||
void rtems_termios_reserve_resources(
|
||||
rtems_configuration_table *configuration,
|
||||
|
||||
@@ -156,7 +156,7 @@ rtems_status_code rtems_termios_close (void *arg);
|
||||
rtems_status_code rtems_termios_read (void *arg);
|
||||
rtems_status_code rtems_termios_write (void *arg);
|
||||
rtems_status_code rtems_termios_ioctl (void *arg);
|
||||
void rtems_termios_enqueue_raw_characters (void *ttyp, char *buf, int len);
|
||||
int rtems_termios_enqueue_raw_characters (void *ttyp, char *buf, int len);
|
||||
void rtems_termios_dequeue_characters (void *ttyp, int len);
|
||||
void rtems_termios_reserve_resources(
|
||||
rtems_configuration_table *configuration,
|
||||
|
||||
@@ -837,8 +837,9 @@ rtems_termios_read (void *arg)
|
||||
* Place characters on raw queue.
|
||||
* NOTE: This routine runs in the context of the
|
||||
* device receive interrupt handler.
|
||||
* Returns the number of characters dropped because of overlow.
|
||||
*/
|
||||
void
|
||||
int
|
||||
rtems_termios_enqueue_raw_characters (void *ttyp, char *buf, int len)
|
||||
{
|
||||
struct rtems_termios_tty *tty = ttyp;
|
||||
@@ -855,6 +856,7 @@ rtems_termios_enqueue_raw_characters (void *ttyp, char *buf, int len)
|
||||
tty->rawInBufTail = newTail;
|
||||
}
|
||||
rtems_semaphore_release (tty->rawInBufSemaphore);
|
||||
return len;
|
||||
}
|
||||
|
||||
/*
|
||||
|
||||
@@ -156,7 +156,7 @@ rtems_status_code rtems_termios_close (void *arg);
|
||||
rtems_status_code rtems_termios_read (void *arg);
|
||||
rtems_status_code rtems_termios_write (void *arg);
|
||||
rtems_status_code rtems_termios_ioctl (void *arg);
|
||||
void rtems_termios_enqueue_raw_characters (void *ttyp, char *buf, int len);
|
||||
int rtems_termios_enqueue_raw_characters (void *ttyp, char *buf, int len);
|
||||
void rtems_termios_dequeue_characters (void *ttyp, int len);
|
||||
void rtems_termios_reserve_resources(
|
||||
rtems_configuration_table *configuration,
|
||||
|
||||
@@ -837,8 +837,9 @@ rtems_termios_read (void *arg)
|
||||
* Place characters on raw queue.
|
||||
* NOTE: This routine runs in the context of the
|
||||
* device receive interrupt handler.
|
||||
* Returns the number of characters dropped because of overlow.
|
||||
*/
|
||||
void
|
||||
int
|
||||
rtems_termios_enqueue_raw_characters (void *ttyp, char *buf, int len)
|
||||
{
|
||||
struct rtems_termios_tty *tty = ttyp;
|
||||
@@ -855,6 +856,7 @@ rtems_termios_enqueue_raw_characters (void *ttyp, char *buf, int len)
|
||||
tty->rawInBufTail = newTail;
|
||||
}
|
||||
rtems_semaphore_release (tty->rawInBufSemaphore);
|
||||
return len;
|
||||
}
|
||||
|
||||
/*
|
||||
|
||||
Reference in New Issue
Block a user