#include <linux/config.h>#include <linux/module.h>#include <linux/errno.h>#include <linux/signal.h>#include <linux/sched.h>#include <linux/timer.h>#include <linux/interrupt.h>#include <linux/tty.h>#include <linux/tty_flip.h>#include <linux/serial.h>#include <linux/serial_reg.h>#include <linux/console.h>#include <linux/major.h>#include <linux/string.h>#include <linux/fcntl.h>#include <linux/ptrace.h>#include <linux/ioport.h>#include <linux/mm.h>#include <linux/malloc.h>#include <linux/init.h>#include <linux/delay.h>#include <asm/sab82532.h>#include <asm/uaccess.h>#include <asm/ebus.h>#include <asm/irq.h>#include "sunserial.h"Include dependency graph for sab82532.c:

Go to the source code of this file.
Defines | |
| #define | SERIAL_BH AURORA_BH |
| #define | WAKEUP_CHARS 256 |
| #define | SERIAL_PARANOIA_CHECK |
| #define | SERIAL_DO_RESTART |
| #define | SERIAL_DEBUG_OVERFLOW 1 |
| #define | BASE_BAUD ( 29491200 / 16 ) |
| #define | MIN(a, b) ((a) < (b) ? (a) : (b)) |
| #define | NR_EBRG_VALUES (sizeof(ebrg_table)/sizeof(struct ebrg_struct)) |
| #define | SAB82532_MAX_TEC_DELAY 2000 |
| #define | RELEVANT_IFLAG(iflag) (iflag & (IGNBRK|BRKINT|IGNPAR|PARMRK|INPCK)) |
Functions | |
| static | DECLARE_TASK_QUEUE (tq_serial) |
| static void | change_speed (struct sab82532 *info) |
| static void | sab82532_wait_until_sent (struct tty_struct *tty, int timeout) |
| static int | serial_paranoia_check (struct sab82532 *info, kdev_t device, const char *routine) |
| static __inline__ void | sab82532_tec_wait (struct sab82532 *info) |
| static __inline__ void | sab82532_start_tx (struct sab82532 *info) |
| static void | sab82532_stop (struct tty_struct *tty) |
| static void | sab82532_start (struct tty_struct *tty) |
| static void | batten_down_hatches (struct sab82532 *info) |
| static void | sab82532_sched_event (struct sab82532 *info, int event) |
| static void | receive_chars (struct sab82532 *info, union sab82532_irq_status *stat) |
| static void | transmit_chars (struct sab82532 *info, union sab82532_irq_status *stat) |
| static void | check_status (struct sab82532 *info, union sab82532_irq_status *stat) |
| static void | sab82532_interrupt (int irq, void *dev_id, struct pt_regs *regs) |
| static void | do_serial_bh (void) |
| static void | do_softint (void *private_) |
| static void | do_serial_hangup (void *private_) |
| static void | sab82532_init_line (struct sab82532 *info) |
| static int | startup (struct sab82532 *info) |
| static void | shutdown (struct sab82532 *info) |
| static void | sab82532_put_char (struct tty_struct *tty, unsigned char ch) |
| static void | sab82532_flush_chars (struct tty_struct *tty) |
| static int | sab82532_write (struct tty_struct *tty, int from_user, const unsigned char *buf, int count) |
| static int | sab82532_write_room (struct tty_struct *tty) |
| static int | sab82532_chars_in_buffer (struct tty_struct *tty) |
| static void | sab82532_flush_buffer (struct tty_struct *tty) |
| static void | sab82532_send_xchar (struct tty_struct *tty, char ch) |
| static void | sab82532_throttle (struct tty_struct *tty) |
| static void | sab82532_unthrottle (struct tty_struct *tty) |
| static int | get_serial_info (struct sab82532 *info, struct serial_struct *retinfo) |
| static int | set_serial_info (struct sab82532 *info, struct serial_struct *new_info) |
| static int | get_lsr_info (struct sab82532 *info, unsigned int *value) |
| static int | get_modem_info (struct sab82532 *info, unsigned int *value) |
| static int | set_modem_info (struct sab82532 *info, unsigned int cmd, unsigned int *value) |
| static void | sab82532_break (struct tty_struct *tty, int break_state) |
| static int | sab82532_ioctl (struct tty_struct *tty, struct file *file, unsigned int cmd, unsigned long arg) |
| static void | sab82532_set_termios (struct tty_struct *tty, struct termios *old_termios) |
| static void | sab82532_close (struct tty_struct *tty, struct file *filp) |
| static void | sab82532_hangup (struct tty_struct *tty) |
| static int | block_til_ready (struct tty_struct *tty, struct file *filp, struct sab82532 *info) |
| static int | sab82532_open (struct tty_struct *tty, struct file *filp) |
| static __inline__ int | line_info (char *buf, struct sab82532 *info) |
| int | sab82532_read_proc (char *page, char **start, off_t off, int count, int *eof, void *data) |
| __initfunc (static int get_sab82532(unsigned long *memory_start)) | |
| __initfunc (static void sab82532_kgdb_hook(int line)) | |
| __initfunc (static inline void show_serial_version(void)) | |
| __initfunc (int sab82532_init(void)) | |
| __initfunc (int sab82532_probe(unsigned long *memory_start)) | |
Variables | |
| static struct tty_driver serial_driver | callout_driver |
| static int | sab82532_refcount |
| static struct sab82532 * | sab82532_chain = 0 |
| static struct tty_struct * | sab82532_table [NR_PORTS] |
| static struct termios * | sab82532_termios [NR_PORTS] |
| static struct termios * | sab82532_termios_locked [NR_PORTS] |
| static char * | sab82532_version [16] |
| static char | serial_version [16] |
| static unsigned char * | tmp_buf = 0 |
| static struct semaphore | tmp_buf_sem = MUTEX |
| static struct ebrg_struct | ebrg_table [] |
| int | su_num_ports |
|
|
Definition at line 77 of file sab82532.c. |
|
|
Definition at line 91 of file sab82532.c. |
|
|
Definition at line 179 of file sab82532.c. Referenced by change_speed(). |
|
|
|
|
|
Definition at line 181 of file sab82532.c. Referenced by sab82532_tec_wait(). |
|
|
Definition at line 43 of file sab82532.c. Referenced by __initfunc(), dz_sched_event(), m68k_rs_init(), rs_init(), rs_sched_event(), sab82532_sched_event(), su_sched_event(), and zs_sched_event(). |
|
|
Definition at line 62 of file sab82532.c. |
|
|
Definition at line 52 of file sab82532.c. |
|
|
Definition at line 51 of file sab82532.c. |
|
|
Definition at line 49 of file sab82532.c. |
|
|
Definition at line 2323 of file sab82532.c. References ENODEV, found, len, prom_getchild(), prom_getproperty(), prom_getsibling(), prom_root_node, prom_searchsiblings(), sunserial_operations::rs_kgdb_hook, rs_ops, strncmp(), and sunserial_setinitfunc(). Here is the call graph for this function: ![]() |
|
|
|
Definition at line 2178 of file sab82532.c. References p, printk, revision, serial_version, strchr, strcpy, and version. |
|
|
Definition at line 2171 of file sab82532.c. References prom_halt(), and prom_printf. Here is the call graph for this function: ![]() |
|
|
Definition at line 2110 of file sab82532.c. References linux_ebus_device::base_address, check_region, ENODEV, for_each_ebus, for_each_ebusdev, i, sab82532_async_wr_regs::ipc, sab82532::irq, linux_ebus_device::irqs, kfree(), kmalloc(), sab82532::line, memset, sab82532::next, offset, printk, linux_ebus_device::prom_name, sab82532::recv_fifo_size, sab82532::regs, request_region, SAB82532_IPC_IC_ACT_LOW, strcmp, sab82532_async_regs::w, and sab82532::xmit_fifo_size. Here is the call graph for this function: ![]() |
|
|
Definition at line 263 of file sab82532.c. References sab82532_async_wr_regs::cmdr, DEBUG_FIRSTVADDR, DEBUG_LASTVADDR, flush_user_windows, linux_dbvec, printk, prom_cmdline(), sab82532_async_regs::r, sab82532::regs, sab82532_async_wr_regs::rfc, sab82532_async_rw_regs::rfc, sab82532_async_rd_regs::rfc, sab82532_async_regs::rw, SAB82532_CMDR_RRES, SAB82532_RFC_RFDF, SAB82532_STAR_CEC, sp_enter_debugger(), sab82532_async_rd_regs::star, stop_a_enabled, udelay, and sab82532_async_regs::w. Referenced by check_status(), receive_chars(), receive_kbd_ms_chars(), receive_serial_chars(), and status_handle(). Here is the call graph for this function: ![]() |
|
||||||||||||||||
|
|
||||||||||||
|
|
|
|
|
Definition at line 675 of file sab82532.c. References run_task_queue(). Here is the call graph for this function: ![]() |
|
|
Definition at line 707 of file sab82532.c. References sab82532::tty, tty, and tty_hangup(). Here is the call graph for this function: ![]() |
|
|
Definition at line 680 of file sab82532.c. References sab82532::event, RS_EVENT_WRITE_WAKEUP, test_and_clear_bit, sab82532::tty, and tty. |
|
||||||||||||
|
Definition at line 1317 of file sab82532.c. References sab82532::irqflags, put_user, result, SAB82532_ALLS, test_bit, TIOCSER_TEMT, and sab82532::xmit_buf. |
|
||||||||||||
|
||||||||||||
|
Definition at line 1276 of file sab82532.c. References copy_to_user, EFAULT, long, and memset. |
|
||||||||||||
|
Definition at line 2005 of file sab82532.c. References __irq_itoa, sab82532::baud, async_icount::brk, cli, async_icount::frame, sab82532::icount, sab82532::irq, sab82532::line, sab82532_async_rd_regs::mode, async_icount::overrun, async_icount::parity, sab82532_async_rd_regs::pvr, sab82532::pvr_dsr_bit, sab82532::pvr_dtr_bit, sab82532_async_regs::r, sab82532::regs, restore_flags, ret, SAB82532_MODE_FRTS, SAB82532_MODE_RTS, SAB82532_STAR_CTS, SAB82532_VSTR_CD, save_flags, sprintf(), sab82532_async_rd_regs::star, strcat, sab82532::type, and sab82532_async_rd_regs::vstr. Here is the call graph for this function: ![]() |
|
||||||||||||
|
||||||||||||
|
Definition at line 1392 of file sab82532.c. References cli, sab82532_async_rw_regs::dafo, jiffies, printk, sab82532::regs, restore_flags, sab82532_async_regs::rw, SAB82532_DAFO_XBRK, save_flags, and serial_paranoia_check(). Referenced by __initfunc(). Here is the call graph for this function: ![]() |
|
|
Definition at line 1169 of file sab82532.c. References serial_paranoia_check(), and sab82532::xmit_cnt. Referenced by __initfunc(). Here is the call graph for this function: ![]() |
|
||||||||||||
|
Definition at line 1584 of file sab82532.c. References ASYNC_CALLOUT_ACTIVE, ASYNC_CLOSING, ASYNC_CLOSING_WAIT_NONE, ASYNC_INITIALIZED, ASYNC_NORMAL_ACTIVE, sab82532::blocked_open, sab82532::callout_termios, cli, sab82532::close_delay, sab82532::close_wait, sab82532::closing_wait, sab82532::count, current, sab82532::event, sab82532::flags, sab82532_async_wr_regs::imr0, sab82532::interrupt_mask0, sab82532::line, MOD_DEC_USE_COUNT, sab82532::normal_termios, sab82532::open_wait, printk, sab82532::regs, restore_flags, SAB82532_IMR0_TCD, sab82532_wait_until_sent(), save_flags, schedule_timeout, serial_paranoia_check(), shutdown(), TASK_INTERRUPTIBLE, sab82532::timeout, sab82532::tty, tty_hung_up_p(), tty_wait_until_sent(), and sab82532_async_regs::w. Referenced by __initfunc(). Here is the call graph for this function: ![]() |
|
|
Definition at line 1178 of file sab82532.c. References cli, serial_paranoia_check(), sti, sab82532::xmit_cnt, sab82532::xmit_head, and sab82532::xmit_tail. Referenced by __initfunc(), and sab82532_hangup(). Here is the call graph for this function: ![]() |
|
|
Definition at line 1082 of file sab82532.c. References cli, sab82532_async_wr_regs::imr1, sab82532::interrupt_mask1, sab82532::regs, restore_flags, SAB82532_IMR1_XPR, sab82532_start_tx(), save_flags, serial_paranoia_check(), sab82532_async_regs::w, sab82532::xmit_buf, and sab82532::xmit_cnt. Referenced by __initfunc(). Here is the call graph for this function: ![]() |
|
|
Definition at line 1732 of file sab82532.c. References ASYNC_CALLOUT_ACTIVE, ASYNC_NORMAL_ACTIVE, sab82532::count, sab82532::event, sab82532::flags, sab82532::is_console, sab82532::open_wait, sab82532_flush_buffer(), serial_paranoia_check(), shutdown(), and sab82532::tty. Referenced by __initfunc(). Here is the call graph for this function: ![]() |
|
|
||||||||||||||||
|
Definition at line 597 of file sab82532.c. References check_status(), done, sab82532_async_rd_regs::gis, sab82532_async_rd_regs::isr0, sab82532_async_rd_regs::isr1, sab82532::line, next, printk, sab82532_async_regs::r, receive_chars(), sab82532::regs, SAB82532_GIS_ISA0, SAB82532_GIS_ISA1, SAB82532_GIS_ISB0, SAB82532_GIS_ISB1, SAB82532_ISR0_CDSC, SAB82532_ISR0_RFO, SAB82532_ISR0_RPF, SAB82532_ISR0_TCD, SAB82532_ISR0_TIME, SAB82532_ISR1_ALLS, SAB82532_ISR1_BRK, SAB82532_ISR1_CSC, SAB82532_ISR1_XPR, sab82532_irq_status::sreg, sab82532_irq_status::stat, and transmit_chars(). Referenced by __initfunc(). Here is the call graph for this function: ![]() |
|
||||||||||||||||||||
|
Definition at line 1415 of file sab82532.c. References cli, CLOCAL, copy_to_user, serial_icounter_struct::cts, async_icount::cts, current, serial_icounter_struct::dcd, async_icount::dcd, serial_icounter_struct::dsr, async_icount::dsr, EFAULT, EIO, ENODEV, ENOIOCTLCMD, ERESTARTSYS, error, |