X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=include%2Flinux%2Fgeneric_serial.h;h=c82cad4bd19f47753847d73df2d25741a20d1b90;hb=f7f1b0f1e2fbadeab12d24236000e778aa9b1ead;hp=f2bd22edba05f887a10f2753feeaed7ecaea70e0;hpb=9bf4aaab3e101692164d49b7ca357651eb691cb6;p=linux-2.6.git diff --git a/include/linux/generic_serial.h b/include/linux/generic_serial.h index f2bd22edb..c82cad4bd 100644 --- a/include/linux/generic_serial.h +++ b/include/linux/generic_serial.h @@ -34,7 +34,7 @@ struct gs_port { int xmit_head; int xmit_tail; int xmit_cnt; - /* struct semaphore port_write_sem; */ + struct semaphore port_write_sem; int flags; wait_queue_head_t open_wait; wait_queue_head_t close_wait; @@ -42,13 +42,14 @@ struct gs_port { int blocked_open; struct tty_struct *tty; unsigned long event; - unsigned short closing_wait; + unsigned int closing_wait; int close_delay; struct real_driver *rd; int wakeup_chars; int baud_base; int baud; int custom_divisor; + spinlock_t driver_lock; }; @@ -70,10 +71,11 @@ struct gs_port { #define GS_DEBUG_STUFF 0x00000008 #define GS_DEBUG_CLOSE 0x00000010 #define GS_DEBUG_FLOW 0x00000020 +#define GS_DEBUG_WRITE 0x00000040 void gs_put_char(struct tty_struct *tty, unsigned char ch); -int gs_write(struct tty_struct *tty, int from_user, +int gs_write(struct tty_struct *tty, const unsigned char *buf, int count); int gs_write_room(struct tty_struct *tty); int gs_chars_in_buffer(struct tty_struct *tty); @@ -82,7 +84,6 @@ void gs_flush_chars(struct tty_struct *tty); void gs_stop(struct tty_struct *tty); void gs_start(struct tty_struct *tty); void gs_hangup(struct tty_struct *tty); -void gs_do_softint(void *private_); int gs_block_til_ready(void *port, struct file *filp); void gs_close(struct tty_struct *tty, struct file *filp); void gs_set_termios (struct tty_struct * tty, @@ -92,6 +93,4 @@ int gs_setserial(struct gs_port *port, struct serial_struct __user *sp); int gs_getserial(struct gs_port *port, struct serial_struct __user *sp); void gs_got_break(struct gs_port *port); -extern int gs_debug; - #endif