tag | line | file | source code |
info | 90 | arch/i386/kernel/vm86.c | struct vm86_struct info; |
info | 100 | arch/i386/kernel/vm86.c | memcpy_fromfs(&info,v86,sizeof(info)); |
info | 104 | arch/i386/kernel/vm86.c | info.regs.__null_ds = 0; |
info | 105 | arch/i386/kernel/vm86.c | info.regs.__null_es = 0; |
info | 106 | arch/i386/kernel/vm86.c | info.regs.__null_fs = 0; |
info | 107 | arch/i386/kernel/vm86.c | info.regs.__null_gs = 0; |
info | 113 | arch/i386/kernel/vm86.c | VEFLAGS = info.regs.eflags; |
info | 114 | arch/i386/kernel/vm86.c | info.regs.eflags &= SAFE_MASK; |
info | 115 | arch/i386/kernel/vm86.c | info.regs.eflags |= pt_regs->eflags & ~SAFE_MASK; |
info | 116 | arch/i386/kernel/vm86.c | info.regs.eflags |= VM_MASK; |
info | 118 | arch/i386/kernel/vm86.c | switch (info.cpu_type) { |
info | 141 | arch/i386/kernel/vm86.c | current->tss.screen_bitmap = info.screen_bitmap; |
info | 142 | arch/i386/kernel/vm86.c | if (info.flags & VM86_SCREEN_BITMAP) |
info | 147 | arch/i386/kernel/vm86.c | :"r" (&info.regs)); |
info | 679 | arch/i386/math-emu/fpu_entry.c | void math_abort(struct info * info, unsigned int signal) |
info | 686 | arch/i386/math-emu/fpu_entry.c | __asm__("movl %0,%%esp ; ret": :"g" (((long) info)-4)); |
info | 55 | arch/i386/math-emu/fpu_proto.h | extern void math_abort(struct info *info, unsigned int signal); |
info | 20 | arch/i386/math-emu/fpu_system.h | #define SETUP_DATA_AREA(arg) FPU_info = (struct info *) &arg |
info | 36 | arch/i386/math-emu/fpu_system.h | #define FPU_info (I387.soft.info) |
info | 34 | arch/i386/math-emu/get_address.c | offsetof(struct info,___eax), |
info | 35 | arch/i386/math-emu/get_address.c | offsetof(struct info,___ecx), |
info | 36 | arch/i386/math-emu/get_address.c | offsetof(struct info,___edx), |
info | 37 | arch/i386/math-emu/get_address.c | offsetof(struct info,___ebx), |
info | 38 | arch/i386/math-emu/get_address.c | offsetof(struct info,___esp), |
info | 39 | arch/i386/math-emu/get_address.c | offsetof(struct info,___ebp), |
info | 40 | arch/i386/math-emu/get_address.c | offsetof(struct info,___esi), |
info | 41 | arch/i386/math-emu/get_address.c | offsetof(struct info,___edi) |
info | 47 | arch/i386/math-emu/get_address.c | offsetof(struct info,___cs), |
info | 48 | arch/i386/math-emu/get_address.c | offsetof(struct info,___vm86_ds), |
info | 49 | arch/i386/math-emu/get_address.c | offsetof(struct info,___vm86_es), |
info | 50 | arch/i386/math-emu/get_address.c | offsetof(struct info,___vm86_fs), |
info | 51 | arch/i386/math-emu/get_address.c | offsetof(struct info,___vm86_gs), |
info | 52 | arch/i386/math-emu/get_address.c | offsetof(struct info,___ss), |
info | 53 | arch/i386/math-emu/get_address.c | offsetof(struct info,___vm86_ds) |
info | 60 | arch/i386/math-emu/get_address.c | offsetof(struct info,___cs), |
info | 61 | arch/i386/math-emu/get_address.c | offsetof(struct info,___ds), |
info | 62 | arch/i386/math-emu/get_address.c | offsetof(struct info,___es), |
info | 63 | arch/i386/math-emu/get_address.c | offsetof(struct info,___fs), |
info | 64 | arch/i386/math-emu/get_address.c | offsetof(struct info,___gs), |
info | 65 | arch/i386/math-emu/get_address.c | offsetof(struct info,___ss), |
info | 66 | arch/i386/math-emu/get_address.c | offsetof(struct info,___ds) |
info | 71 | drivers/block/ide-cd.c | byte info[4]; |
info | 332 | drivers/block/ide-cd.c | struct cdrom_info *info = &cdrom_info[dev->hwif][dev->select.b.drive]; |
info | 343 | drivers/block/ide-cd.c | if (info->sector_buffer == NULL) |
info | 345 | drivers/block/ide-cd.c | info->sector_buffer = (char *) kmalloc (SECTOR_BUFFER_SIZE, GFP_ATOMIC); |
info | 348 | drivers/block/ide-cd.c | if (info->sector_buffer == NULL) |
info | 353 | drivers/block/ide-cd.c | info->sector_buffered = sector; |
info | 354 | drivers/block/ide-cd.c | info->nsectors_buffered = sectors_to_buffer; |
info | 357 | drivers/block/ide-cd.c | dest = info->sector_buffer; |
info | 537 | drivers/block/ide-cd.c | struct cdrom_info *info = &cdrom_info[dev->hwif][dev->select.b.drive]; |
info | 541 | drivers/block/ide-cd.c | if (info->sector_buffer == NULL) return 0; |
info | 546 | drivers/block/ide-cd.c | rq->sector >= info->sector_buffered && |
info | 547 | drivers/block/ide-cd.c | rq->sector < info->sector_buffered + info->nsectors_buffered) |
info | 553 | drivers/block/ide-cd.c | info->sector_buffer + |
info | 554 | drivers/block/ide-cd.c | (rq->sector - info->sector_buffered) * SECTOR_SIZE, |
info | 345 | drivers/char/cyclades.c | serial_paranoia_check(struct cyclades_port *info, |
info | 356 | drivers/char/cyclades.c | if (!info) { |
info | 361 | drivers/char/cyclades.c | if( (long)info < (long)(&cy_port[0]) |
info | 362 | drivers/char/cyclades.c | || (long)(&cy_port[NR_PORTS]) < (long)info ){ |
info | 367 | drivers/char/cyclades.c | if (info->magic != CYCLADES_MAGIC) { |
info | 441 | drivers/char/cyclades.c | struct cyclades_port *info = (struct cyclades_port *)tty->driver_data; |
info | 447 | drivers/char/cyclades.c | printk("cy_stop ttyC%d\n", info->line); /* */ |
info | 450 | drivers/char/cyclades.c | if (serial_paranoia_check(info, tty->device, "cy_stop")) |
info | 453 | drivers/char/cyclades.c | cinfo = &cy_card[info->card]; |
info | 454 | drivers/char/cyclades.c | channel = info->line - cinfo->first_line; |
info | 458 | drivers/char/cyclades.c | (cy_card[info->card].base_addr + chip * CyRegSize); |
info | 472 | drivers/char/cyclades.c | struct cyclades_port *info = (struct cyclades_port *)tty->driver_data; |
info | 478 | drivers/char/cyclades.c | printk("cy_start ttyC%d\n", info->line); /* */ |
info | 481 | drivers/char/cyclades.c | if (serial_paranoia_check(info, tty->device, "cy_start")) |
info | 484 | drivers/char/cyclades.c | cinfo = &cy_card[info->card]; |
info | 485 | drivers/char/cyclades.c | channel = info->line - cinfo->first_line; |
info | 489 | drivers/char/cyclades.c | (cy_card[info->card].base_addr + chip * CyRegSize); |
info | 507 | drivers/char/cyclades.c | cy_sched_event(struct cyclades_port *info, int event) |
info | 509 | drivers/char/cyclades.c | info->event |= 1 << event; /* remember what kind of event and who */ |
info | 510 | drivers/char/cyclades.c | queue_task_irq_off(&info->tqueue, &tq_cyclades); /* it belongs to */ |
info | 538 | drivers/char/cyclades.c | struct cyclades_port *info; |
info | 583 | drivers/char/cyclades.c | info = &cy_port[i]; |
info | 584 | drivers/char/cyclades.c | info->last_active = jiffies; |
info | 589 | drivers/char/cyclades.c | if(info->tty == 0){ |
info | 600 | drivers/char/cyclades.c | tty = info->tty; |
info | 604 | drivers/char/cyclades.c | if(data & info->ignore_status_mask){ |
info | 609 | drivers/char/cyclades.c | if (data & info->read_status_mask){ |
info | 615 | drivers/char/cyclades.c | if (info->flags & ASYNC_SAK){ |
info | 697 | drivers/char/cyclades.c | info = &cy_port[i]; |
info | 698 | drivers/char/cyclades.c | info->last_active = jiffies; |
info | 699 | drivers/char/cyclades.c | if(info->tty == 0){ |
info | 705 | drivers/char/cyclades.c | char_count = info->xmit_fifo_size; |
info | 708 | drivers/char/cyclades.c | if(info->x_char) { /* send special char */ |
info | 709 | drivers/char/cyclades.c | outch = info->x_char; |
info | 712 | drivers/char/cyclades.c | info->x_char = 0; |
info | 715 | drivers/char/cyclades.c | if (info->x_break){ |
info | 728 | drivers/char/cyclades.c | base_addr[CyTDR] = info->x_break*200/HZ; |
info | 732 | drivers/char/cyclades.c | info->x_break = 0; |
info | 736 | drivers/char/cyclades.c | if (!info->xmit_cnt){ |
info | 740 | drivers/char/cyclades.c | if (info->tty->stopped || info->tty->hw_stopped){ |
info | 755 | drivers/char/cyclades.c | outch = info->xmit_buf[info->xmit_tail]; |
info | 757 | drivers/char/cyclades.c | info->xmit_cnt--; |
info | 758 | drivers/char/cyclades.c | info->xmit_tail = (info->xmit_tail + 1) |
info | 763 | drivers/char/cyclades.c | info->xmit_cnt--; |
info | 764 | drivers/char/cyclades.c | info->xmit_tail = (info->xmit_tail + 1) |
info | 775 | drivers/char/cyclades.c | if (info->xmit_cnt < WAKEUP_CHARS) { |
info | 776 | drivers/char/cyclades.c | cy_sched_event(info, Cy_EVENT_WRITE_WAKEUP); |
info | 790 | drivers/char/cyclades.c | info = &cy_port[channel + chip * 4 + cinfo->first_line]; |
info | 791 | drivers/char/cyclades.c | info->last_active = jiffies; |
info | 798 | drivers/char/cyclades.c | if(info->tty == 0){ /* nowhere to put the data, ignore it */ |
info | 802 | drivers/char/cyclades.c | && (info->flags & ASYNC_CHECK_CD)){ |
info | 805 | drivers/char/cyclades.c | cy_sched_event(info, Cy_EVENT_OPEN_WAKEUP); |
info | 806 | drivers/char/cyclades.c | }else if(!((info->flags & ASYNC_CALLOUT_ACTIVE) |
info | 807 | drivers/char/cyclades.c | &&(info->flags & ASYNC_CALLOUT_NOHUP))){ |
info | 809 | drivers/char/cyclades.c | cy_sched_event(info, Cy_EVENT_HANGUP); |
info | 813 | drivers/char/cyclades.c | && (info->flags & ASYNC_CTS_FLOW)){ |
info | 814 | drivers/char/cyclades.c | if(info->tty->stopped){ |
info | 817 | drivers/char/cyclades.c | info->tty->stopped = 0; |
info | 819 | drivers/char/cyclades.c | cy_sched_event(info, Cy_EVENT_WRITE_WAKEUP); |
info | 824 | drivers/char/cyclades.c | info->tty->stopped = 1; |
info | 879 | drivers/char/cyclades.c | struct cyclades_port *info = (struct cyclades_port *) private_; |
info | 882 | drivers/char/cyclades.c | tty = info->tty; |
info | 886 | drivers/char/cyclades.c | if (clear_bit(Cy_EVENT_HANGUP, &info->event)) { |
info | 887 | drivers/char/cyclades.c | tty_hangup(info->tty); |
info | 888 | drivers/char/cyclades.c | wake_up_interruptible(&info->open_wait); |
info | 889 | drivers/char/cyclades.c | info->flags &= ~(ASYNC_NORMAL_ACTIVE| |
info | 892 | drivers/char/cyclades.c | if (clear_bit(Cy_EVENT_OPEN_WAKEUP, &info->event)) { |
info | 893 | drivers/char/cyclades.c | wake_up_interruptible(&info->open_wait); |
info | 895 | drivers/char/cyclades.c | if (clear_bit(Cy_EVENT_WRITE_WAKEUP, &info->event)) { |
info | 1075 | drivers/char/cyclades.c | startup(struct cyclades_port * info) |
info | 1081 | drivers/char/cyclades.c | if (info->flags & ASYNC_INITIALIZED){ |
info | 1085 | drivers/char/cyclades.c | if (!info->type){ |
info | 1086 | drivers/char/cyclades.c | if (info->tty){ |
info | 1087 | drivers/char/cyclades.c | set_bit(TTY_IO_ERROR, &info->tty->flags); |
info | 1091 | drivers/char/cyclades.c | if (!info->xmit_buf){ |
info | 1092 | drivers/char/cyclades.c | info->xmit_buf = (unsigned char *) get_free_page (GFP_KERNEL); |
info | 1093 | drivers/char/cyclades.c | if (!info->xmit_buf){ |
info | 1098 | drivers/char/cyclades.c | config_setup(info); |
info | 1100 | drivers/char/cyclades.c | card = info->card; |
info | 1101 | drivers/char/cyclades.c | channel = (info->line) - (cy_card[card].first_line); |
info | 1130 | drivers/char/cyclades.c | info->flags |= ASYNC_INITIALIZED; |
info | 1132 | drivers/char/cyclades.c | if (info->tty){ |
info | 1133 | drivers/char/cyclades.c | clear_bit(TTY_IO_ERROR, &info->tty->flags); |
info | 1135 | drivers/char/cyclades.c | info->xmit_cnt = info->xmit_head = info->xmit_tail = 0; |
info | 1146 | drivers/char/cyclades.c | start_xmit( struct cyclades_port *info ) |
info | 1152 | drivers/char/cyclades.c | card = info->card; |
info | 1153 | drivers/char/cyclades.c | channel = (info->line) - (cy_card[card].first_line); |
info | 1169 | drivers/char/cyclades.c | shutdown(struct cyclades_port * info) |
info | 1175 | drivers/char/cyclades.c | if (!(info->flags & ASYNC_INITIALIZED)){ |
info | 1180 | drivers/char/cyclades.c | card = info->card; |
info | 1181 | drivers/char/cyclades.c | channel = info->line - cy_card[card].first_line; |
info | 1199 | drivers/char/cyclades.c | if (info->xmit_buf){ |
info | 1200 | drivers/char/cyclades.c | free_page((unsigned long) info->xmit_buf); |
info | 1201 | drivers/char/cyclades.c | info->xmit_buf = 0; |
info | 1205 | drivers/char/cyclades.c | if (!info->tty || (info->tty->termios->c_cflag & HUPCL)) { |
info | 1218 | drivers/char/cyclades.c | if (info->tty){ |
info | 1219 | drivers/char/cyclades.c | set_bit(TTY_IO_ERROR, &info->tty->flags); |
info | 1221 | drivers/char/cyclades.c | info->flags &= ~ASYNC_INITIALIZED; |
info | 1234 | drivers/char/cyclades.c | config_setup(struct cyclades_port * info) |
info | 1242 | drivers/char/cyclades.c | if (!info->tty || !info->tty->termios){ |
info | 1245 | drivers/char/cyclades.c | if (info->line == -1){ |
info | 1248 | drivers/char/cyclades.c | cflag = info->tty->termios->c_cflag; |
info | 1271 | drivers/char/cyclades.c | info->tty->termios->c_cflag &= ~CBAUDEX; |
info | 1275 | drivers/char/cyclades.c | if ((info->flags & ASYNC_SPD_MASK) == ASYNC_SPD_HI) |
info | 1277 | drivers/char/cyclades.c | if ((info->flags & ASYNC_SPD_MASK) == ASYNC_SPD_VHI) |
info | 1280 | drivers/char/cyclades.c | info->tbpr = baud_bpr[i]; /* Tx BPR */ |
info | 1281 | drivers/char/cyclades.c | info->tco = baud_co[i]; /* Tx CO */ |
info | 1282 | drivers/char/cyclades.c | info->rbpr = baud_bpr[i]; /* Rx BPR */ |
info | 1283 | drivers/char/cyclades.c | info->rco = baud_co[i]; /* Rx CO */ |
info | 1285 | drivers/char/cyclades.c | info->timeout = (info->xmit_fifo_size*HZ*30/269) + 2; |
info | 1288 | drivers/char/cyclades.c | info->timeout = (info->xmit_fifo_size*HZ*15/baud_table[i]) + 2; |
info | 1291 | drivers/char/cyclades.c | info->timeout = 0; |
info | 1298 | drivers/char/cyclades.c | info->cor5 = 0; |
info | 1299 | drivers/char/cyclades.c | info->cor4 = 0; |
info | 1300 | drivers/char/cyclades.c | info->cor3 = baud_cor3[i]; /* receive threshold */ |
info | 1301 | drivers/char/cyclades.c | info->cor2 = CyETC; |
info | 1304 | drivers/char/cyclades.c | info->cor1 = Cy_5_BITS; |
info | 1307 | drivers/char/cyclades.c | info->cor1 = Cy_6_BITS; |
info | 1310 | drivers/char/cyclades.c | info->cor1 = Cy_7_BITS; |
info | 1313 | drivers/char/cyclades.c | info->cor1 = Cy_8_BITS; |
info | 1317 | drivers/char/cyclades.c | info->cor1 |= Cy_2_STOP; |
info | 1321 | drivers/char/cyclades.c | info->cor1 |= CyPARITY_O; |
info | 1323 | drivers/char/cyclades.c | info->cor1 |= CyPARITY_E; |
info | 1326 | drivers/char/cyclades.c | info->cor1 |= CyPARITY_NONE; |
info | 1331 | drivers/char/cyclades.c | info->flags |= ASYNC_CTS_FLOW; |
info | 1333 | drivers/char/cyclades.c | info->flags &= ~ASYNC_CTS_FLOW; |
info | 1335 | drivers/char/cyclades.c | info->flags &= ~ASYNC_CHECK_CD; |
info | 1337 | drivers/char/cyclades.c | info->flags |= ASYNC_CHECK_CD; |
info | 1340 | drivers/char/cyclades.c | card = info->card; |
info | 1341 | drivers/char/cyclades.c | channel = (info->line) - (cy_card[card].first_line); |
info | 1352 | drivers/char/cyclades.c | base_addr[CyTCOR] = info->tco; |
info | 1353 | drivers/char/cyclades.c | base_addr[CyTBPR] = info->tbpr; |
info | 1354 | drivers/char/cyclades.c | base_addr[CyRCOR] = info->rco; |
info | 1355 | drivers/char/cyclades.c | base_addr[CyRBPR] = info->rbpr; |
info | 1359 | drivers/char/cyclades.c | base_addr[CySCHR1] = START_CHAR(info->tty); |
info | 1360 | drivers/char/cyclades.c | base_addr[CySCHR2] = STOP_CHAR(info->tty); |
info | 1361 | drivers/char/cyclades.c | base_addr[CyCOR1] = info->cor1; |
info | 1362 | drivers/char/cyclades.c | base_addr[CyCOR2] = info->cor2; |
info | 1363 | drivers/char/cyclades.c | base_addr[CyCOR3] = info->cor3; |
info | 1364 | drivers/char/cyclades.c | base_addr[CyCOR4] = info->cor4; |
info | 1365 | drivers/char/cyclades.c | base_addr[CyCOR5] = info->cor5; |
info | 1373 | drivers/char/cyclades.c | if (C_CLOCAL(info->tty)) { |
info | 1408 | drivers/char/cyclades.c | if (C_CRTSCTS(info->tty)) { |
info | 1409 | drivers/char/cyclades.c | info->cor2 |= CyCtsAE; |
info | 1411 | drivers/char/cyclades.c | info->cor2 &= ~CyCtsAE; |
info | 1414 | drivers/char/cyclades.c | if (info->tty){ |
info | 1415 | drivers/char/cyclades.c | clear_bit(TTY_IO_ERROR, &info->tty->flags); |
info | 1426 | drivers/char/cyclades.c | struct cyclades_port *info = (struct cyclades_port *)tty->driver_data; |
info | 1430 | drivers/char/cyclades.c | printk("cy_put_char ttyC%d\n", info->line); |
info | 1433 | drivers/char/cyclades.c | if (serial_paranoia_check(info, tty->device, "cy_put_char")) |
info | 1436 | drivers/char/cyclades.c | if (!tty || !info->xmit_buf) |
info | 1440 | drivers/char/cyclades.c | if (info->xmit_cnt >= PAGE_SIZE - 1) { |
info | 1445 | drivers/char/cyclades.c | info->xmit_buf[info->xmit_head++] = ch; |
info | 1446 | drivers/char/cyclades.c | info->xmit_head &= PAGE_SIZE - 1; |
info | 1447 | drivers/char/cyclades.c | info->xmit_cnt++; |
info | 1455 | drivers/char/cyclades.c | struct cyclades_port *info = (struct cyclades_port *)tty->driver_data; |
info | 1461 | drivers/char/cyclades.c | printk("cy_flush_chars ttyC%d\n", info->line); /* */ |
info | 1464 | drivers/char/cyclades.c | if (serial_paranoia_check(info, tty->device, "cy_flush_chars")) |
info | 1467 | drivers/char/cyclades.c | if (info->xmit_cnt <= 0 || tty->stopped |
info | 1468 | drivers/char/cyclades.c | || tty->hw_stopped || !info->xmit_buf) |
info | 1471 | drivers/char/cyclades.c | card = info->card; |
info | 1472 | drivers/char/cyclades.c | channel = info->line - cy_card[card].first_line; |
info | 1495 | drivers/char/cyclades.c | struct cyclades_port *info = (struct cyclades_port *)tty->driver_data; |
info | 1500 | drivers/char/cyclades.c | printk("cy_write ttyC%d\n", info->line); /* */ |
info | 1503 | drivers/char/cyclades.c | if (serial_paranoia_check(info, tty->device, "cy_write")){ |
info | 1507 | drivers/char/cyclades.c | if (!tty || !info->xmit_buf || !tmp_buf){ |
info | 1513 | drivers/char/cyclades.c | c = MIN(count, MIN(SERIAL_XMIT_SIZE - info->xmit_cnt - 1, |
info | 1514 | drivers/char/cyclades.c | SERIAL_XMIT_SIZE - info->xmit_head)); |
info | 1523 | drivers/char/cyclades.c | c = MIN(c, MIN(SERIAL_XMIT_SIZE - info->xmit_cnt - 1, |
info | 1524 | drivers/char/cyclades.c | SERIAL_XMIT_SIZE - info->xmit_head)); |
info | 1525 | drivers/char/cyclades.c | memcpy(info->xmit_buf + info->xmit_head, tmp_buf, c); |
info | 1528 | drivers/char/cyclades.c | memcpy(info->xmit_buf + info->xmit_head, buf, c); |
info | 1529 | drivers/char/cyclades.c | info->xmit_head = (info->xmit_head + c) & (SERIAL_XMIT_SIZE-1); |
info | 1530 | drivers/char/cyclades.c | info->xmit_cnt += c; |
info | 1538 | drivers/char/cyclades.c | if (info->xmit_cnt |
info | 1541 | drivers/char/cyclades.c | start_xmit(info); |
info | 1550 | drivers/char/cyclades.c | struct cyclades_port *info = (struct cyclades_port *)tty->driver_data; |
info | 1554 | drivers/char/cyclades.c | printk("cy_write_room ttyC%d\n", info->line); /* */ |
info | 1557 | drivers/char/cyclades.c | if (serial_paranoia_check(info, tty->device, "cy_write_room")) |
info | 1559 | drivers/char/cyclades.c | ret = PAGE_SIZE - info->xmit_cnt - 1; |
info | 1569 | drivers/char/cyclades.c | struct cyclades_port *info = (struct cyclades_port *)tty->driver_data; |
info | 1572 | drivers/char/cyclades.c | printk("cy_chars_in_buffer ttyC%d %d\n", info->line, info->xmit_cnt); /* */ |
info | 1575 | drivers/char/cyclades.c | if (serial_paranoia_check(info, tty->device, "cy_chars_in_buffer")) |
info | 1578 | drivers/char/cyclades.c | return info->xmit_cnt; |
info | 1585 | drivers/char/cyclades.c | struct cyclades_port *info = (struct cyclades_port *)tty->driver_data; |
info | 1589 | drivers/char/cyclades.c | printk("cy_flush_buffer ttyC%d\n", info->line); /* */ |
info | 1592 | drivers/char/cyclades.c | if (serial_paranoia_check(info, tty->device, "cy_flush_buffer")) |
info | 1595 | drivers/char/cyclades.c | info->xmit_cnt = info->xmit_head = info->xmit_tail = 0; |
info | 1611 | drivers/char/cyclades.c | struct cyclades_port *info = (struct cyclades_port *)tty->driver_data; |
info | 1621 | drivers/char/cyclades.c | printk("cy_throttle ttyC%d\n", info->line); |
info | 1624 | drivers/char/cyclades.c | if (serial_paranoia_check(info, tty->device, "cy_nthrottle")){ |
info | 1629 | drivers/char/cyclades.c | info->x_char = STOP_CHAR(tty); |
info | 1633 | drivers/char/cyclades.c | card = info->card; |
info | 1634 | drivers/char/cyclades.c | channel = info->line - cy_card[card].first_line; |
info | 1652 | drivers/char/cyclades.c | struct cyclades_port *info = (struct cyclades_port *)tty->driver_data; |
info | 1662 | drivers/char/cyclades.c | printk("cy_unthrottle ttyC%d\n", info->line); |
info | 1665 | drivers/char/cyclades.c | if (serial_paranoia_check(info, tty->device, "cy_nthrottle")){ |
info | 1670 | drivers/char/cyclades.c | info->x_char = START_CHAR(tty); |
info | 1674 | drivers/char/cyclades.c | card = info->card; |
info | 1675 | drivers/char/cyclades.c | channel = info->line - cy_card[card].first_line; |
info | 1690 | drivers/char/cyclades.c | get_serial_info(struct cyclades_port * info, |
info | 1694 | drivers/char/cyclades.c | struct cyclades_card *cinfo = &cy_card[info->card]; |
info | 1700 | drivers/char/cyclades.c | tmp.type = info->type; |
info | 1701 | drivers/char/cyclades.c | tmp.line = info->line; |
info | 1702 | drivers/char/cyclades.c | tmp.port = info->card * 0x100 + info->line - cinfo->first_line; |
info | 1704 | drivers/char/cyclades.c | tmp.flags = info->flags; |
info | 1706 | drivers/char/cyclades.c | tmp.close_delay = info->close_delay; |
info | 1714 | drivers/char/cyclades.c | set_serial_info(struct cyclades_port * info, |
info | 1724 | drivers/char/cyclades.c | old_info = *info; |
info | 1727 | drivers/char/cyclades.c | if ((new_serial.close_delay != info->close_delay) || |
info | 1729 | drivers/char/cyclades.c | (info->flags & ASYNC_FLAGS & ~ASYNC_USR_MASK))) |
info | 1731 | drivers/char/cyclades.c | info->flags = ((info->flags & ~ASYNC_USR_MASK) | |
info | 1742 | drivers/char/cyclades.c | info->flags = ((info->flags & ~ASYNC_FLAGS) | |
info | 1744 | drivers/char/cyclades.c | info->close_delay = new_serial.close_delay; |
info | 1748 | drivers/char/cyclades.c | if (info->flags & ASYNC_INITIALIZED){ |
info | 1749 | drivers/char/cyclades.c | config_setup(info); |
info | 1752 | drivers/char/cyclades.c | return startup(info); |
info | 1757 | drivers/char/cyclades.c | get_modem_info(struct cyclades_port * info, unsigned int *value) |
info | 1765 | drivers/char/cyclades.c | card = info->card; |
info | 1766 | drivers/char/cyclades.c | channel = (info->line) - (cy_card[card].first_line); |
info | 1788 | drivers/char/cyclades.c | set_modem_info(struct cyclades_port * info, unsigned int cmd, |
info | 1796 | drivers/char/cyclades.c | card = info->card; |
info | 1797 | drivers/char/cyclades.c | channel = (info->line) - (cy_card[card].first_line); |
info | 1883 | drivers/char/cyclades.c | send_break( struct cyclades_port * info, int duration) |
info | 1887 | drivers/char/cyclades.c | info->x_break = duration; |
info | 1888 | drivers/char/cyclades.c | if (!info->xmit_cnt ) { |
info | 1889 | drivers/char/cyclades.c | start_xmit(info); |
info | 1899 | drivers/char/cyclades.c | struct cyclades_port * info = (struct cyclades_port *)tty->driver_data; |
info | 1903 | drivers/char/cyclades.c | printk("cy_ioctl ttyC%d, cmd = %x arg = %lx\n", info->line, cmd, arg); /* */ |
info | 1913 | drivers/char/cyclades.c | send_break(info, HZ/4); /* 1/4 second */ |
info | 1920 | drivers/char/cyclades.c | send_break(info, arg ? arg*(HZ/10) : HZ/4); |
info | 1925 | drivers/char/cyclades.c | ret_val = set_modem_info(info, cmd, (unsigned int *) arg); |
info | 1951 | drivers/char/cyclades.c | ret_val = get_modem_info(info, (unsigned int *) arg); |
info | 1960 | drivers/char/cyclades.c | ret_val = get_serial_info(info, |
info | 1964 | drivers/char/cyclades.c | ret_val = set_serial_info(info, |
info | 1984 | drivers/char/cyclades.c | struct cyclades_port *info = (struct cyclades_port *)tty->driver_data; |
info | 1987 | drivers/char/cyclades.c | printk("cy_set_termios ttyC%d\n", info->line); |
info | 1992 | drivers/char/cyclades.c | config_setup(info); |
info | 2002 | drivers/char/cyclades.c | wake_up_interruptible(&info->open_wait); |
info | 2012 | drivers/char/cyclades.c | struct cyclades_port * info = (struct cyclades_port *)tty->driver_data; |
info | 2016 | drivers/char/cyclades.c | printk("cy_close ttyC%d\n", info->line); |
info | 2019 | drivers/char/cyclades.c | if (!info |
info | 2020 | drivers/char/cyclades.c | || serial_paranoia_check(info, tty->device, "cy_close")){ |
info | 2024 | drivers/char/cyclades.c | printk("cy_close ttyC%d, count = %d\n", info->line, info->count); |
info | 2027 | drivers/char/cyclades.c | if ((tty->count == 1) && (info->count != 1)) { |
info | 2036 | drivers/char/cyclades.c | "info->count is %d\n", info->count); |
info | 2037 | drivers/char/cyclades.c | info->count = 1; |
info | 2040 | drivers/char/cyclades.c | printk("cyc: %d: decrementing count to %d\n", __LINE__, info->count - 1); |
info | 2042 | drivers/char/cyclades.c | if (--info->count < 0) { |
info | 2044 | drivers/char/cyclades.c | info->line, info->count); |
info | 2048 | drivers/char/cyclades.c | info->count = 0; |
info | 2050 | drivers/char/cyclades.c | if (info->count) |
info | 2052 | drivers/char/cyclades.c | info->flags |= ASYNC_CLOSING; |
info | 2057 | drivers/char/cyclades.c | if (info->flags & ASYNC_NORMAL_ACTIVE) |
info | 2058 | drivers/char/cyclades.c | info->normal_termios = *tty->termios; |
info | 2059 | drivers/char/cyclades.c | if (info->flags & ASYNC_CALLOUT_ACTIVE) |
info | 2060 | drivers/char/cyclades.c | info->callout_termios = *tty->termios; |
info | 2061 | drivers/char/cyclades.c | if (info->flags & ASYNC_INITIALIZED) |
info | 2063 | drivers/char/cyclades.c | shutdown(info); |
info | 2068 | drivers/char/cyclades.c | info->event = 0; |
info | 2069 | drivers/char/cyclades.c | info->tty = 0; |
info | 2078 | drivers/char/cyclades.c | if (info->blocked_open) { |
info | 2079 | drivers/char/cyclades.c | if (info->close_delay) { |
info | 2081 | drivers/char/cyclades.c | current->timeout = jiffies + info->close_delay; |
info | 2084 | drivers/char/cyclades.c | wake_up_interruptible(&info->open_wait); |
info | 2086 | drivers/char/cyclades.c | info->flags &= ~(ASYNC_NORMAL_ACTIVE|ASYNC_CALLOUT_ACTIVE| |
info | 2088 | drivers/char/cyclades.c | wake_up_interruptible(&info->close_wait); |
info | 2103 | drivers/char/cyclades.c | struct cyclades_port * info = (struct cyclades_port *)tty->driver_data; |
info | 2106 | drivers/char/cyclades.c | printk("cy_hangup ttyC%d\n", info->line); /* */ |
info | 2109 | drivers/char/cyclades.c | if (serial_paranoia_check(info, tty->device, "cy_hangup")) |
info | 2112 | drivers/char/cyclades.c | shutdown(info); |
info | 2114 | drivers/char/cyclades.c | info->event = 0; |
info | 2115 | drivers/char/cyclades.c | info->count = 0; |
info | 2119 | drivers/char/cyclades.c | info->tty = 0; |
info | 2121 | drivers/char/cyclades.c | info->flags &= ~(ASYNC_NORMAL_ACTIVE|ASYNC_CALLOUT_ACTIVE); |
info | 2122 | drivers/char/cyclades.c | wake_up_interruptible(&info->open_wait); |
info | 2135 | drivers/char/cyclades.c | struct cyclades_port *info) |
info | 2148 | drivers/char/cyclades.c | if (info->flags & ASYNC_CLOSING) { |
info | 2149 | drivers/char/cyclades.c | interruptible_sleep_on(&info->close_wait); |
info | 2150 | drivers/char/cyclades.c | if (info->flags & ASYNC_HUP_NOTIFY){ |
info | 2162 | drivers/char/cyclades.c | if (info->flags & ASYNC_NORMAL_ACTIVE){ |
info | 2165 | drivers/char/cyclades.c | if ((info->flags & ASYNC_CALLOUT_ACTIVE) && |
info | 2166 | drivers/char/cyclades.c | (info->flags & ASYNC_SESSION_LOCKOUT) && |
info | 2167 | drivers/char/cyclades.c | (info->session != current->session)){ |
info | 2170 | drivers/char/cyclades.c | if ((info->flags & ASYNC_CALLOUT_ACTIVE) && |
info | 2171 | drivers/char/cyclades.c | (info->flags & ASYNC_PGRP_LOCKOUT) && |
info | 2172 | drivers/char/cyclades.c | (info->pgrp != current->pgrp)){ |
info | 2175 | drivers/char/cyclades.c | info->flags |= ASYNC_CALLOUT_ACTIVE; |
info | 2184 | drivers/char/cyclades.c | if (info->flags & ASYNC_CALLOUT_ACTIVE){ |
info | 2187 | drivers/char/cyclades.c | info->flags |= ASYNC_NORMAL_ACTIVE; |
info | 2199 | drivers/char/cyclades.c | add_wait_queue(&info->open_wait, &wait); |
info | 2202 | drivers/char/cyclades.c | info->line, info->count);/**/ |
info | 2204 | drivers/char/cyclades.c | info->count--; |
info | 2206 | drivers/char/cyclades.c | printk("cyc: %d: decrementing count to %d\n", __LINE__, info->count); |
info | 2208 | drivers/char/cyclades.c | info->blocked_open++; |
info | 2210 | drivers/char/cyclades.c | cinfo = &cy_card[info->card]; |
info | 2211 | drivers/char/cyclades.c | channel = info->line - cinfo->first_line; |
info | 2218 | drivers/char/cyclades.c | if (!(info->flags & ASYNC_CALLOUT_ACTIVE)){ |
info | 2231 | drivers/char/cyclades.c | || !(info->flags & ASYNC_INITIALIZED) ){ |
info | 2232 | drivers/char/cyclades.c | if (info->flags & ASYNC_HUP_NOTIFY) { |
info | 2242 | drivers/char/cyclades.c | if (!(info->flags & ASYNC_CALLOUT_ACTIVE) |
info | 2243 | drivers/char/cyclades.c | && !(info->flags & ASYNC_CLOSING) |
info | 2256 | drivers/char/cyclades.c | info->line, info->count);/**/ |
info | 2261 | drivers/char/cyclades.c | remove_wait_queue(&info->open_wait, &wait); |
info | 2263 | drivers/char/cyclades.c | info->count++; |
info | 2265 | drivers/char/cyclades.c | printk("cyc: %d: incrementing count to %d\n", __LINE__, info->count); |
info | 2268 | drivers/char/cyclades.c | info->blocked_open--; |
info | 2271 | drivers/char/cyclades.c | info->line, info->count);/**/ |
info | 2275 | drivers/char/cyclades.c | info->flags |= ASYNC_NORMAL_ACTIVE; |
info | 2286 | drivers/char/cyclades.c | struct cyclades_port *info; |
info | 2294 | drivers/char/cyclades.c | info = &cy_port[line]; |
info | 2296 | drivers/char/cyclades.c | printk("cy_open ttyC%d\n", info->line); /* */ |
info | 2298 | drivers/char/cyclades.c | if (serial_paranoia_check(info, tty->device, "cy_open")){ |
info | 2302 | drivers/char/cyclades.c | printk("cy_open ttyC%d, count = %d\n", info->line, info->count);/**/ |
info | 2304 | drivers/char/cyclades.c | info->count++; |
info | 2306 | drivers/char/cyclades.c | printk("cyc: %d: incrementing count to %d\n", __LINE__, info->count); |
info | 2308 | drivers/char/cyclades.c | tty->driver_data = info; |
info | 2309 | drivers/char/cyclades.c | info->tty = tty; |
info | 2318 | drivers/char/cyclades.c | if ((info->count == 1) && (info->flags & ASYNC_SPLIT_TERMIOS)) { |
info | 2320 | drivers/char/cyclades.c | *tty->termios = info->normal_termios; |
info | 2322 | drivers/char/cyclades.c | *tty->termios = info->callout_termios; |
info | 2327 | drivers/char/cyclades.c | retval = startup(info); |
info | 2332 | drivers/char/cyclades.c | retval = block_til_ready(tty, filp, info); |
info | 2341 | drivers/char/cyclades.c | info->session = current->session; |
info | 2342 | drivers/char/cyclades.c | info->pgrp = current->pgrp; |
info | 2441 | drivers/char/cyclades.c | struct cyclades_port *info; |
info | 2509 | drivers/char/cyclades.c | info = cy_port; |
info | 2544 | drivers/char/cyclades.c | info->magic = CYCLADES_MAGIC; |
info | 2545 | drivers/char/cyclades.c | info->type = PORT_CIRRUS; |
info | 2546 | drivers/char/cyclades.c | info->card = index; |
info | 2547 | drivers/char/cyclades.c | info->line = port_num; |
info | 2548 | drivers/char/cyclades.c | info->flags = STD_COM_FLAGS; |
info | 2549 | drivers/char/cyclades.c | info->tty = 0; |
info | 2550 | drivers/char/cyclades.c | info->xmit_fifo_size = 12; |
info | 2551 | drivers/char/cyclades.c | info->cor1 = CyPARITY_NONE|Cy_1_STOP|Cy_8_BITS; |
info | 2552 | drivers/char/cyclades.c | info->cor2 = CyETC; |
info | 2553 | drivers/char/cyclades.c | info->cor3 = 0x08; /* _very_ small receive threshold */ |
info | 2554 | drivers/char/cyclades.c | info->cor4 = 0; |
info | 2555 | drivers/char/cyclades.c | info->cor5 = 0; |
info | 2556 | drivers/char/cyclades.c | info->tbpr = baud_bpr[13]; /* Tx BPR */ |
info | 2557 | drivers/char/cyclades.c | info->tco = baud_co[13]; /* Tx CO */ |
info | 2558 | drivers/char/cyclades.c | info->rbpr = baud_bpr[13]; /* Rx BPR */ |
info | 2559 | drivers/char/cyclades.c | info->rco = baud_co[13]; /* Rx CO */ |
info | 2560 | drivers/char/cyclades.c | info->close_delay = 0; |
info | 2561 | drivers/char/cyclades.c | info->x_char = 0; |
info | 2562 | drivers/char/cyclades.c | info->event = 0; |
info | 2563 | drivers/char/cyclades.c | info->count = 0; |
info | 2567 | drivers/char/cyclades.c | info->blocked_open = 0; |
info | 2568 | drivers/char/cyclades.c | info->tqueue.routine = do_softint; |
info | 2569 | drivers/char/cyclades.c | info->tqueue.data = info; |
info | 2570 | drivers/char/cyclades.c | info->callout_termios =cy_callout_driver.init_termios; |
info | 2571 | drivers/char/cyclades.c | info->normal_termios = cy_serial_driver.init_termios; |
info | 2572 | drivers/char/cyclades.c | info->open_wait = 0; |
info | 2573 | drivers/char/cyclades.c | info->close_wait = 0; |
info | 2579 | drivers/char/cyclades.c | printk("ttyC%1d ", info->line); |
info | 2580 | drivers/char/cyclades.c | port_num++;info++; |
info | 2591 | drivers/char/cyclades.c | info->line = -1; |
info | 2592 | drivers/char/cyclades.c | port_num++;info++; |
info | 2603 | drivers/char/cyclades.c | struct cyclades_port * info; |
info | 2606 | drivers/char/cyclades.c | info = &cy_port[line_num]; |
info | 2607 | drivers/char/cyclades.c | card = info->card; |
info | 2608 | drivers/char/cyclades.c | channel = (info->line) - (cy_card[card].first_line); |
info | 2620 | drivers/char/cyclades.c | info->card, info->line, info->flags); |
info | 2622 | drivers/char/cyclades.c | (long)info->tty, info->read_status_mask, |
info | 2623 | drivers/char/cyclades.c | info->timeout, info->xmit_fifo_size); |
info | 2625 | drivers/char/cyclades.c | info->cor1, info->cor2, info->cor3, info->cor4, info->cor5); |
info | 2627 | drivers/char/cyclades.c | info->tbpr, info->tco, info->rbpr, info->rco); |
info | 2629 | drivers/char/cyclades.c | info->close_delay, info->event, info->count); |
info | 2631 | drivers/char/cyclades.c | info->x_char, info->blocked_open); |
info | 2633 | drivers/char/cyclades.c | info->session, info->pgrp, (long)info->open_wait); |
info | 88 | drivers/char/serial.c | static void autoconfig(struct async_struct * info); |
info | 89 | drivers/char/serial.c | static void change_speed(struct async_struct *info); |
info | 203 | drivers/char/serial.c | static inline int serial_paranoia_check(struct async_struct *info, |
info | 212 | drivers/char/serial.c | if (!info) { |
info | 216 | drivers/char/serial.c | if (info->magic != SERIAL_MAGIC) { |
info | 231 | drivers/char/serial.c | static inline unsigned int serial_in(struct async_struct *info, int offset) |
info | 234 | drivers/char/serial.c | if (info->hub6) { |
info | 235 | drivers/char/serial.c | outb(info->hub6 - 1 + offset, info->port); |
info | 236 | drivers/char/serial.c | return inb(info->port+1); |
info | 239 | drivers/char/serial.c | return inb(info->port + offset); |
info | 242 | drivers/char/serial.c | static inline unsigned int serial_inp(struct async_struct *info, int offset) |
info | 245 | drivers/char/serial.c | if (info->hub6) { |
info | 246 | drivers/char/serial.c | outb(info->hub6 - 1 + offset, info->port); |
info | 247 | drivers/char/serial.c | return inb_p(info->port+1); |
info | 251 | drivers/char/serial.c | return inb(info->port + offset); |
info | 253 | drivers/char/serial.c | return inb_p(info->port + offset); |
info | 257 | drivers/char/serial.c | static inline void serial_out(struct async_struct *info, int offset, int value) |
info | 260 | drivers/char/serial.c | if (info->hub6) { |
info | 261 | drivers/char/serial.c | outb(info->hub6 - 1 + offset, info->port); |
info | 262 | drivers/char/serial.c | outb(value, info->port+1); |
info | 265 | drivers/char/serial.c | outb(value, info->port+offset); |
info | 268 | drivers/char/serial.c | static inline void serial_outp(struct async_struct *info, int offset, |
info | 272 | drivers/char/serial.c | if (info->hub6) { |
info | 273 | drivers/char/serial.c | outb(info->hub6 - 1 + offset, info->port); |
info | 274 | drivers/char/serial.c | outb_p(value, info->port+1); |
info | 278 | drivers/char/serial.c | outb(value, info->port+offset); |
info | 280 | drivers/char/serial.c | outb_p(value, info->port+offset); |
info | 294 | drivers/char/serial.c | struct async_struct *info = (struct async_struct *)tty->driver_data; |
info | 297 | drivers/char/serial.c | if (serial_paranoia_check(info, tty->device, "rs_stop")) |
info | 301 | drivers/char/serial.c | if (info->IER & UART_IER_THRI) { |
info | 302 | drivers/char/serial.c | info->IER &= ~UART_IER_THRI; |
info | 303 | drivers/char/serial.c | serial_out(info, UART_IER, info->IER); |
info | 310 | drivers/char/serial.c | struct async_struct *info = (struct async_struct *)tty->driver_data; |
info | 313 | drivers/char/serial.c | if (serial_paranoia_check(info, tty->device, "rs_start")) |
info | 317 | drivers/char/serial.c | if (info->xmit_cnt && info->xmit_buf && !(info->IER & UART_IER_THRI)) { |
info | 318 | drivers/char/serial.c | info->IER |= UART_IER_THRI; |
info | 319 | drivers/char/serial.c | serial_out(info, UART_IER, info->IER); |
info | 360 | drivers/char/serial.c | static _INLINE_ void rs_sched_event(struct async_struct *info, |
info | 363 | drivers/char/serial.c | info->event |= 1 << event; |
info | 364 | drivers/char/serial.c | queue_task_irq_off(&info->tqueue, &tq_serial); |
info | 368 | drivers/char/serial.c | static _INLINE_ void receive_chars(struct async_struct *info, |
info | 371 | drivers/char/serial.c | struct tty_struct *tty = info->tty; |
info | 376 | drivers/char/serial.c | ch = serial_inp(info, UART_RX); |
info | 377 | drivers/char/serial.c | if (*status & info->ignore_status_mask) { |
info | 388 | drivers/char/serial.c | if (info->flags & ASYNC_SAK) |
info | 400 | drivers/char/serial.c | *status = serial_inp(info, UART_LSR) & info->read_status_mask; |
info | 408 | drivers/char/serial.c | static _INLINE_ void transmit_chars(struct async_struct *info, int *intr_done) |
info | 412 | drivers/char/serial.c | if (info->x_char) { |
info | 413 | drivers/char/serial.c | serial_outp(info, UART_TX, info->x_char); |
info | 414 | drivers/char/serial.c | info->x_char = 0; |
info | 419 | drivers/char/serial.c | if ((info->xmit_cnt <= 0) || info->tty->stopped || |
info | 420 | drivers/char/serial.c | info->tty->hw_stopped) { |
info | 421 | drivers/char/serial.c | info->IER &= ~UART_IER_THRI; |
info | 423 | drivers/char/serial.c | serial_out(info, UART_IER, info->IER); |
info | 428 | drivers/char/serial.c | count = info->xmit_fifo_size; |
info | 430 | drivers/char/serial.c | serial_out(info, UART_TX, info->xmit_buf[info->xmit_tail++]); |
info | 431 | drivers/char/serial.c | info->xmit_tail = info->xmit_tail & (SERIAL_XMIT_SIZE-1); |
info | 432 | drivers/char/serial.c | if (--info->xmit_cnt <= 0) |
info | 436 | drivers/char/serial.c | if (info->xmit_cnt < WAKEUP_CHARS) |
info | 437 | drivers/char/serial.c | rs_sched_event(info, RS_EVENT_WRITE_WAKEUP); |
info | 445 | drivers/char/serial.c | if (info->xmit_cnt <= 0) { |
info | 446 | drivers/char/serial.c | info->IER &= ~UART_IER_THRI; |
info | 448 | drivers/char/serial.c | serial_out(info, UART_IER, info->IER); |
info | 453 | drivers/char/serial.c | static _INLINE_ void check_modem_status(struct async_struct *info) |
info | 457 | drivers/char/serial.c | status = serial_in(info, UART_MSR); |
info | 459 | drivers/char/serial.c | if ((info->flags & ASYNC_CHECK_CD) && (status & UART_MSR_DDCD)) { |
info | 461 | drivers/char/serial.c | printk("ttys%d CD now %s...", info->line, |
info | 465 | drivers/char/serial.c | wake_up_interruptible(&info->open_wait); |
info | 466 | drivers/char/serial.c | else if (!((info->flags & ASYNC_CALLOUT_ACTIVE) && |
info | 467 | drivers/char/serial.c | (info->flags & ASYNC_CALLOUT_NOHUP))) { |
info | 471 | drivers/char/serial.c | rs_sched_event(info, RS_EVENT_HANGUP); |
info | 474 | drivers/char/serial.c | if (info->flags & ASYNC_CTS_FLOW) { |
info | 475 | drivers/char/serial.c | if (info->tty->hw_stopped) { |
info | 480 | drivers/char/serial.c | info->tty->hw_stopped = 0; |
info | 481 | drivers/char/serial.c | info->IER |= UART_IER_THRI; |
info | 483 | drivers/char/serial.c | serial_out(info, UART_IER, info->IER); |
info | 485 | drivers/char/serial.c | rs_sched_event(info, RS_EVENT_WRITE_WAKEUP); |
info | 493 | drivers/char/serial.c | info->tty->hw_stopped = 1; |
info | 494 | drivers/char/serial.c | info->IER &= ~UART_IER_THRI; |
info | 496 | drivers/char/serial.c | serial_out(info, UART_IER, info->IER); |
info | 510 | drivers/char/serial.c | struct async_struct * info; |
info | 518 | drivers/char/serial.c | info = IRQ_ports[irq]; |
info | 519 | drivers/char/serial.c | if (!info) |
info | 523 | drivers/char/serial.c | if (!info->tty || |
info | 524 | drivers/char/serial.c | (serial_in(info, UART_IIR) & UART_IIR_NO_INT)) { |
info | 526 | drivers/char/serial.c | end_mark = info; |
info | 531 | drivers/char/serial.c | info->last_active = jiffies; |
info | 533 | drivers/char/serial.c | status = serial_inp(info, UART_LSR) & info->read_status_mask; |
info | 538 | drivers/char/serial.c | receive_chars(info, &status); |
info | 539 | drivers/char/serial.c | check_modem_status(info); |
info | 541 | drivers/char/serial.c | transmit_chars(info, 0); |
info | 544 | drivers/char/serial.c | info = info->next_port; |
info | 545 | drivers/char/serial.c | if (!info) { |
info | 546 | drivers/char/serial.c | info = IRQ_ports[irq]; |
info | 555 | drivers/char/serial.c | } while (end_mark != info); |
info | 568 | drivers/char/serial.c | struct async_struct * info; |
info | 574 | drivers/char/serial.c | info = IRQ_ports[irq]; |
info | 575 | drivers/char/serial.c | if (!info || !info->tty) |
info | 579 | drivers/char/serial.c | status = serial_inp(info, UART_LSR) & info->read_status_mask; |
info | 584 | drivers/char/serial.c | receive_chars(info, &status); |
info | 585 | drivers/char/serial.c | check_modem_status(info); |
info | 587 | drivers/char/serial.c | transmit_chars(info, 0); |
info | 594 | drivers/char/serial.c | } while (!(serial_in(info, UART_IIR) & UART_IIR_NO_INT)); |
info | 595 | drivers/char/serial.c | info->last_active = jiffies; |
info | 609 | drivers/char/serial.c | struct async_struct * info; |
info | 617 | drivers/char/serial.c | info = IRQ_ports[irq]; |
info | 618 | drivers/char/serial.c | if (!info) |
info | 622 | drivers/char/serial.c | if (!info->tty) |
info | 625 | drivers/char/serial.c | serial_outp(info, UART_IER, 0); |
info | 626 | drivers/char/serial.c | status = serial_inp(info, UART_LSR) & info->read_status_mask; |
info | 628 | drivers/char/serial.c | receive_chars(info, &status); |
info | 631 | drivers/char/serial.c | check_modem_status(info); |
info | 633 | drivers/char/serial.c | transmit_chars(info, &done); |
info | 636 | drivers/char/serial.c | info = info->next_port; |
info | 637 | drivers/char/serial.c | if (!info) { |
info | 638 | drivers/char/serial.c | info = IRQ_ports[irq]; |
info | 656 | drivers/char/serial.c | serial_outp(info, UART_IER, info->IER); |
info | 657 | drivers/char/serial.c | while ((info = info->next_port) != NULL); |
info | 666 | drivers/char/serial.c | struct async_struct * info; |
info | 673 | drivers/char/serial.c | info = IRQ_ports[irq]; |
info | 674 | drivers/char/serial.c | if (!info || !info->tty) |
info | 677 | drivers/char/serial.c | serial_outp(info, UART_IER, 0); |
info | 678 | drivers/char/serial.c | status = serial_inp(info, UART_LSR) & info->read_status_mask; |
info | 680 | drivers/char/serial.c | receive_chars(info, &status); |
info | 681 | drivers/char/serial.c | check_modem_status(info); |
info | 683 | drivers/char/serial.c | transmit_chars(info, 0); |
info | 688 | drivers/char/serial.c | serial_outp(info, UART_IER, info->IER); |
info | 715 | drivers/char/serial.c | struct async_struct *info = (struct async_struct *) private_; |
info | 718 | drivers/char/serial.c | tty = info->tty; |
info | 722 | drivers/char/serial.c | if (clear_bit(RS_EVENT_HANGUP, &info->event)) { |
info | 724 | drivers/char/serial.c | wake_up_interruptible(&info->open_wait); |
info | 725 | drivers/char/serial.c | info->flags &= ~(ASYNC_NORMAL_ACTIVE| |
info | 728 | drivers/char/serial.c | if (clear_bit(RS_EVENT_WRITE_WAKEUP, &info->event)) { |
info | 746 | drivers/char/serial.c | struct async_struct *info; |
info | 751 | drivers/char/serial.c | info = IRQ_ports[i]; |
info | 752 | drivers/char/serial.c | if (!info) |
info | 755 | drivers/char/serial.c | if (info->next_port) { |
info | 757 | drivers/char/serial.c | serial_out(info, UART_IER, 0); |
info | 758 | drivers/char/serial.c | info->IER |= UART_IER_THRI; |
info | 759 | drivers/char/serial.c | serial_out(info, UART_IER, info->IER); |
info | 760 | drivers/char/serial.c | info = info->next_port; |
info | 761 | drivers/char/serial.c | } while (info); |
info | 829 | drivers/char/serial.c | struct async_struct *info; |
info | 832 | drivers/char/serial.c | info = IRQ_ports[irq]; |
info | 833 | drivers/char/serial.c | if (!info) { |
info | 837 | drivers/char/serial.c | while (info) { |
info | 838 | drivers/char/serial.c | if (info->timeout < timeout) |
info | 839 | drivers/char/serial.c | timeout = info->timeout; |
info | 840 | drivers/char/serial.c | info = info->next_port; |
info | 847 | drivers/char/serial.c | static int startup(struct async_struct * info) |
info | 854 | drivers/char/serial.c | if (info->flags & ASYNC_INITIALIZED) |
info | 857 | drivers/char/serial.c | if (!info->port || !info->type) { |
info | 858 | drivers/char/serial.c | if (info->tty) |
info | 859 | drivers/char/serial.c | set_bit(TTY_IO_ERROR, &info->tty->flags); |
info | 863 | drivers/char/serial.c | if (!info->xmit_buf) { |
info | 864 | drivers/char/serial.c | info->xmit_buf = (unsigned char *) get_free_page(GFP_KERNEL); |
info | 865 | drivers/char/serial.c | if (!info->xmit_buf) |
info | 872 | drivers/char/serial.c | printk("starting up ttys%d (irq %d)...", info->line, info->irq); |
info | 879 | drivers/char/serial.c | if (info->type == PORT_16550A) { |
info | 880 | drivers/char/serial.c | serial_outp(info, UART_FCR, (UART_FCR_CLEAR_RCVR | |
info | 882 | drivers/char/serial.c | info->xmit_fifo_size = 16; |
info | 884 | drivers/char/serial.c | info->xmit_fifo_size = 1; |
info | 891 | drivers/char/serial.c | if (serial_inp(info, UART_LSR) == 0xff) { |
info | 894 | drivers/char/serial.c | if (info->tty) |
info | 895 | drivers/char/serial.c | set_bit(TTY_IO_ERROR, &info->tty->flags); |
info | 904 | drivers/char/serial.c | if (info->irq && (!IRQ_ports[info->irq] || |
info | 905 | drivers/char/serial.c | !IRQ_ports[info->irq]->next_port)) { |
info | 906 | drivers/char/serial.c | if (IRQ_ports[info->irq]) { |
info | 907 | drivers/char/serial.c | free_irq(info->irq); |
info | 912 | drivers/char/serial.c | retval = request_irq(info->irq, handler, SA_INTERRUPT, "serial"); |
info | 916 | drivers/char/serial.c | if (info->tty) |
info | 918 | drivers/char/serial.c | &info->tty->flags); |
info | 929 | drivers/char/serial.c | (void) serial_inp(info, UART_RX); |
info | 930 | drivers/char/serial.c | (void) serial_inp(info, UART_IIR); |
info | 931 | drivers/char/serial.c | (void) serial_inp(info, UART_MSR); |
info | 936 | drivers/char/serial.c | serial_outp(info, UART_LCR, UART_LCR_WLEN8); /* reset DLAB */ |
info | 937 | drivers/char/serial.c | if (info->flags & ASYNC_FOURPORT) { |
info | 938 | drivers/char/serial.c | info->MCR = UART_MCR_DTR | UART_MCR_RTS; |
info | 939 | drivers/char/serial.c | info->MCR_noint = UART_MCR_DTR | UART_MCR_OUT1; |
info | 941 | drivers/char/serial.c | info->MCR = UART_MCR_DTR | UART_MCR_RTS | UART_MCR_OUT2; |
info | 942 | drivers/char/serial.c | info->MCR_noint = UART_MCR_DTR | UART_MCR_RTS; |
info | 944 | drivers/char/serial.c | if (info->irq == 0) |
info | 945 | drivers/char/serial.c | info->MCR = info->MCR_noint; |
info | 946 | drivers/char/serial.c | serial_outp(info, UART_MCR, info->MCR); |
info | 951 | drivers/char/serial.c | info->IER = UART_IER_MSI | UART_IER_RLSI | UART_IER_RDI; |
info | 952 | drivers/char/serial.c | serial_outp(info, UART_IER, info->IER); /* enable interrupts */ |
info | 954 | drivers/char/serial.c | if (info->flags & ASYNC_FOURPORT) { |
info | 956 | drivers/char/serial.c | ICP = (info->port & 0xFE0) | 0x01F; |
info | 964 | drivers/char/serial.c | (void)serial_inp(info, UART_LSR); |
info | 965 | drivers/char/serial.c | (void)serial_inp(info, UART_RX); |
info | 966 | drivers/char/serial.c | (void)serial_inp(info, UART_IIR); |
info | 967 | drivers/char/serial.c | (void)serial_inp(info, UART_MSR); |
info | 969 | drivers/char/serial.c | if (info->tty) |
info | 970 | drivers/char/serial.c | clear_bit(TTY_IO_ERROR, &info->tty->flags); |
info | 971 | drivers/char/serial.c | info->xmit_cnt = info->xmit_head = info->xmit_tail = 0; |
info | 976 | drivers/char/serial.c | info->prev_port = 0; |
info | 977 | drivers/char/serial.c | info->next_port = IRQ_ports[info->irq]; |
info | 978 | drivers/char/serial.c | if (info->next_port) |
info | 979 | drivers/char/serial.c | info->next_port->prev_port = info; |
info | 980 | drivers/char/serial.c | IRQ_ports[info->irq] = info; |
info | 981 | drivers/char/serial.c | figure_IRQ_timeout(info->irq); |
info | 992 | drivers/char/serial.c | change_speed(info); |
info | 994 | drivers/char/serial.c | info->flags |= ASYNC_INITIALIZED; |
info | 1003 | drivers/char/serial.c | static void shutdown(struct async_struct * info) |
info | 1008 | drivers/char/serial.c | if (!(info->flags & ASYNC_INITIALIZED)) |
info | 1012 | drivers/char/serial.c | printk("Shutting down serial port %d (irq %d)....", info->line, |
info | 1013 | drivers/char/serial.c | info->irq); |
info | 1021 | drivers/char/serial.c | if (info->next_port) |
info | 1022 | drivers/char/serial.c | info->next_port->prev_port = info->prev_port; |
info | 1023 | drivers/char/serial.c | if (info->prev_port) |
info | 1024 | drivers/char/serial.c | info->prev_port->next_port = info->next_port; |
info | 1026 | drivers/char/serial.c | IRQ_ports[info->irq] = info->next_port; |
info | 1027 | drivers/char/serial.c | figure_IRQ_timeout(info->irq); |
info | 1032 | drivers/char/serial.c | if (info->irq && (!IRQ_ports[info->irq] || |
info | 1033 | drivers/char/serial.c | !IRQ_ports[info->irq]->next_port)) { |
info | 1034 | drivers/char/serial.c | if (IRQ_ports[info->irq]) { |
info | 1035 | drivers/char/serial.c | free_irq(info->irq); |
info | 1036 | drivers/char/serial.c | retval = request_irq(info->irq, rs_interrupt_single, SA_INTERRUPT, "serial"); |
info | 1042 | drivers/char/serial.c | free_irq(info->irq); |
info | 1045 | drivers/char/serial.c | if (info->xmit_buf) { |
info | 1046 | drivers/char/serial.c | free_page((unsigned long) info->xmit_buf); |
info | 1047 | drivers/char/serial.c | info->xmit_buf = 0; |
info | 1050 | drivers/char/serial.c | info->IER = 0; |
info | 1051 | drivers/char/serial.c | serial_outp(info, UART_IER, 0x00); /* disable all intrs */ |
info | 1052 | drivers/char/serial.c | if (info->flags & ASYNC_FOURPORT) { |
info | 1054 | drivers/char/serial.c | (void) inb((info->port & 0xFE0) | 0x01F); |
info | 1057 | drivers/char/serial.c | if (!info->tty || (info->tty->termios->c_cflag & HUPCL)) { |
info | 1058 | drivers/char/serial.c | info->MCR &= ~(UART_MCR_DTR|UART_MCR_RTS); |
info | 1059 | drivers/char/serial.c | info->MCR_noint &= ~(UART_MCR_DTR|UART_MCR_RTS); |
info | 1061 | drivers/char/serial.c | serial_outp(info, UART_MCR, info->MCR_noint); |
info | 1064 | drivers/char/serial.c | serial_outp(info, UART_FCR, (UART_FCR_CLEAR_RCVR | |
info | 1066 | drivers/char/serial.c | (void)serial_in(info, UART_RX); /* read data port to reset things */ |
info | 1068 | drivers/char/serial.c | if (info->tty) |
info | 1069 | drivers/char/serial.c | set_bit(TTY_IO_ERROR, &info->tty->flags); |
info | 1071 | drivers/char/serial.c | info->flags &= ~ASYNC_INITIALIZED; |
info | 1079 | drivers/char/serial.c | static void change_speed(struct async_struct *info) |
info | 1086 | drivers/char/serial.c | if (!info->tty || !info->tty->termios) |
info | 1088 | drivers/char/serial.c | cflag = info->tty->termios->c_cflag; |
info | 1089 | drivers/char/serial.c | if (!(port = info->port)) |
info | 1095 | drivers/char/serial.c | info->tty->termios->c_cflag &= ~CBAUDEX; |
info | 1100 | drivers/char/serial.c | if ((info->flags & ASYNC_SPD_MASK) == ASYNC_SPD_HI) |
info | 1102 | drivers/char/serial.c | if ((info->flags & ASYNC_SPD_MASK) == ASYNC_SPD_VHI) |
info | 1104 | drivers/char/serial.c | if ((info->flags & ASYNC_SPD_MASK) == ASYNC_SPD_CUST) |
info | 1105 | drivers/char/serial.c | quot = info->custom_divisor; |
info | 1108 | drivers/char/serial.c | info->timeout = ((info->xmit_fifo_size*HZ*15*quot) / |
info | 1109 | drivers/char/serial.c | info->baud_base) + 2; |
info | 1111 | drivers/char/serial.c | quot = (2*info->baud_base / 269); |
info | 1112 | drivers/char/serial.c | info->timeout = (info->xmit_fifo_size*HZ*30/269) + 2; |
info | 1114 | drivers/char/serial.c | quot = info->baud_base / baud_table[i]; |
info | 1115 | drivers/char/serial.c | info->timeout = (info->xmit_fifo_size*HZ*15/baud_table[i]) + 2; |
info | 1118 | drivers/char/serial.c | info->timeout = 0; |
info | 1121 | drivers/char/serial.c | info->MCR |= UART_MCR_DTR; |
info | 1122 | drivers/char/serial.c | info->MCR_noint |= UART_MCR_DTR; |
info | 1124 | drivers/char/serial.c | serial_out(info, UART_MCR, info->MCR); |
info | 1127 | drivers/char/serial.c | info->MCR &= ~UART_MCR_DTR; |
info | 1128 | drivers/char/serial.c | info->MCR_noint &= ~UART_MCR_DTR; |
info | 1130 | drivers/char/serial.c | serial_out(info, UART_MCR, info->MCR); |
info | 1141 | drivers/char/serial.c | if (info->type == PORT_16550A) { |
info | 1142 | drivers/char/serial.c | if ((info->baud_base / quot) < 2400) |
info | 1150 | drivers/char/serial.c | info->IER &= ~UART_IER_MSI; |
info | 1152 | drivers/char/serial.c | info->flags |= ASYNC_CTS_FLOW; |
info | 1153 | drivers/char/serial.c | info->IER |= UART_IER_MSI; |
info | 1155 | drivers/char/serial.c | info->flags &= ~ASYNC_CTS_FLOW; |
info | 1157 | drivers/char/serial.c | info->flags &= ~ASYNC_CHECK_CD; |
info | 1159 | drivers/char/serial.c | info->flags |= ASYNC_CHECK_CD; |
info | 1160 | drivers/char/serial.c | info->IER |= UART_IER_MSI; |
info | 1162 | drivers/char/serial.c | serial_out(info, UART_IER, info->IER); |
info | 1167 | drivers/char/serial.c | info->read_status_mask = UART_LSR_OE | UART_LSR_THRE | UART_LSR_DR; |
info | 1168 | drivers/char/serial.c | if (I_INPCK(info->tty)) |
info | 1169 | drivers/char/serial.c | info->read_status_mask |= UART_LSR_FE | UART_LSR_PE; |
info | 1170 | drivers/char/serial.c | if (I_BRKINT(info->tty) || I_PARMRK(info->tty)) |
info | 1171 | drivers/char/serial.c | info->read_status_mask |= UART_LSR_BI; |
info | 1173 | drivers/char/serial.c | info->ignore_status_mask = 0; |
info | 1174 | drivers/char/serial.c | if (I_IGNPAR(info->tty)) { |
info | 1175 | drivers/char/serial.c | info->ignore_status_mask |= UART_LSR_PE | UART_LSR_FE; |
info | 1176 | drivers/char/serial.c | info->read_status_mask |= UART_LSR_PE | UART_LSR_FE; |
info | 1178 | drivers/char/serial.c | if (I_IGNBRK(info->tty)) { |
info | 1179 | drivers/char/serial.c | info->ignore_status_mask |= UART_LSR_BI; |
info | 1180 | drivers/char/serial.c | info->read_status_mask |= UART_LSR_BI; |
info | 1185 | drivers/char/serial.c | if (I_IGNPAR(info->tty)) { |
info | 1186 | drivers/char/serial.c | info->ignore_status_mask |= UART_LSR_OE; |
info | 1187 | drivers/char/serial.c | info->read_status_mask |= UART_LSR_OE; |
info | 1192 | drivers/char/serial.c | serial_outp(info, UART_LCR, cval | UART_LCR_DLAB); /* set DLAB */ |
info | 1193 | drivers/char/serial.c | serial_outp(info, UART_DLL, quot & 0xff); /* LS of divisor */ |
info | 1194 | drivers/char/serial.c | serial_outp(info, UART_DLM, quot >> 8); /* MS of divisor */ |
info | 1195 | drivers/char/serial.c | serial_outp(info, UART_LCR, cval); /* reset DLAB */ |
info | 1196 | drivers/char/serial.c | serial_outp(info, UART_FCR, fcr); /* set fcr */ |
info | 1202 | drivers/char/serial.c | struct async_struct *info = (struct async_struct *)tty->driver_data; |
info | 1205 | drivers/char/serial.c | if (serial_paranoia_check(info, tty->device, "rs_put_char")) |
info | 1208 | drivers/char/serial.c | if (!tty || !info->xmit_buf) |
info | 1212 | drivers/char/serial.c | if (info->xmit_cnt >= SERIAL_XMIT_SIZE - 1) { |
info | 1217 | drivers/char/serial.c | info->xmit_buf[info->xmit_head++] = ch; |
info | 1218 | drivers/char/serial.c | info->xmit_head &= SERIAL_XMIT_SIZE-1; |
info | 1219 | drivers/char/serial.c | info->xmit_cnt++; |
info | 1225 | drivers/char/serial.c | struct async_struct *info = (struct async_struct *)tty->driver_data; |
info | 1228 | drivers/char/serial.c | if (serial_paranoia_check(info, tty->device, "rs_flush_chars")) |
info | 1231 | drivers/char/serial.c | if (info->xmit_cnt <= 0 || tty->stopped || tty->hw_stopped || |
info | 1232 | drivers/char/serial.c | !info->xmit_buf) |
info | 1236 | drivers/char/serial.c | info->IER |= UART_IER_THRI; |
info | 1237 | drivers/char/serial.c | serial_out(info, UART_IER, info->IER); |
info | 1245 | drivers/char/serial.c | struct async_struct *info = (struct async_struct *)tty->driver_data; |
info | 1248 | drivers/char/serial.c | if (serial_paranoia_check(info, tty->device, "rs_write")) |
info | 1251 | drivers/char/serial.c | if (!tty || !info->xmit_buf || !tmp_buf) |
info | 1257 | drivers/char/serial.c | c = MIN(count, MIN(SERIAL_XMIT_SIZE - info->xmit_cnt - 1, |
info | 1258 | drivers/char/serial.c | SERIAL_XMIT_SIZE - info->xmit_head)); |
info | 1265 | drivers/char/serial.c | c = MIN(c, MIN(SERIAL_XMIT_SIZE - info->xmit_cnt - 1, |
info | 1266 | drivers/char/serial.c | SERIAL_XMIT_SIZE - info->xmit_head)); |
info | 1267 | drivers/char/serial.c | memcpy(info->xmit_buf + info->xmit_head, tmp_buf, c); |
info | 1270 | drivers/char/serial.c | memcpy(info->xmit_buf + info->xmit_head, buf, c); |
info | 1271 | drivers/char/serial.c | info->xmit_head = (info->xmit_head + c) & (SERIAL_XMIT_SIZE-1); |
info | 1272 | drivers/char/serial.c | info->xmit_cnt += c; |
info | 1278 | drivers/char/serial.c | if (info->xmit_cnt && !tty->stopped && !tty->hw_stopped && |
info | 1279 | drivers/char/serial.c | !(info->IER & UART_IER_THRI)) { |
info | 1280 | drivers/char/serial.c | info->IER |= UART_IER_THRI; |
info | 1281 | drivers/char/serial.c | serial_out(info, UART_IER, info->IER); |
info | 1289 | drivers/char/serial.c | struct async_struct *info = (struct async_struct *)tty->driver_data; |
info | 1292 | drivers/char/serial.c | if (serial_paranoia_check(info, tty->device, "rs_write_room")) |
info | 1294 | drivers/char/serial.c | ret = SERIAL_XMIT_SIZE - info->xmit_cnt - 1; |
info | 1302 | drivers/char/serial.c | struct async_struct *info = (struct async_struct *)tty->driver_data; |
info | 1304 | drivers/char/serial.c | if (serial_paranoia_check(info, tty->device, "rs_chars_in_buffer")) |
info | 1306 | drivers/char/serial.c | return info->xmit_cnt; |
info | 1311 | drivers/char/serial.c | struct async_struct *info = (struct async_struct *)tty->driver_data; |
info | 1313 | drivers/char/serial.c | if (serial_paranoia_check(info, tty->device, "rs_flush_buffer")) |
info | 1316 | drivers/char/serial.c | info->xmit_cnt = info->xmit_head = info->xmit_tail = 0; |
info | 1334 | drivers/char/serial.c | struct async_struct *info = (struct async_struct *)tty->driver_data; |
info | 1342 | drivers/char/serial.c | if (serial_paranoia_check(info, tty->device, "rs_throttle")) |
info | 1346 | drivers/char/serial.c | info->x_char = STOP_CHAR(tty); |
info | 1348 | drivers/char/serial.c | info->MCR &= ~UART_MCR_RTS; |
info | 1349 | drivers/char/serial.c | info->MCR_noint &= ~UART_MCR_RTS; |
info | 1351 | drivers/char/serial.c | serial_out(info, UART_MCR, info->MCR); |
info | 1357 | drivers/char/serial.c | struct async_struct *info = (struct async_struct *)tty->driver_data; |
info | 1365 | drivers/char/serial.c | if (serial_paranoia_check(info, tty->device, "rs_unthrottle")) |
info | 1369 | drivers/char/serial.c | if (info->x_char) |
info | 1370 | drivers/char/serial.c | info->x_char = 0; |
info | 1372 | drivers/char/serial.c | info->x_char = START_CHAR(tty); |
info | 1374 | drivers/char/serial.c | info->MCR |= UART_MCR_RTS; |
info | 1375 | drivers/char/serial.c | info->MCR_noint |= UART_MCR_RTS; |
info | 1377 | drivers/char/serial.c | serial_out(info, UART_MCR, info->MCR); |
info | 1387 | drivers/char/serial.c | static int get_serial_info(struct async_struct * info, |
info | 1395 | drivers/char/serial.c | tmp.type = info->type; |
info | 1396 | drivers/char/serial.c | tmp.line = info->line; |
info | 1397 | drivers/char/serial.c | tmp.port = info->port; |
info | 1398 | drivers/char/serial.c | tmp.irq = info->irq; |
info | 1399 | drivers/char/serial.c | tmp.flags = info->flags; |
info | 1400 | drivers/char/serial.c | tmp.baud_base = info->baud_base; |
info | 1401 | drivers/char/serial.c | tmp.close_delay = info->close_delay; |
info | 1402 | drivers/char/serial.c | tmp.custom_divisor = info->custom_divisor; |
info | 1403 | drivers/char/serial.c | tmp.hub6 = info->hub6; |
info | 1408 | drivers/char/serial.c | static int set_serial_info(struct async_struct * info, |
info | 1419 | drivers/char/serial.c | old_info = *info; |
info | 1421 | drivers/char/serial.c | change_irq = new_serial.irq != info->irq; |
info | 1422 | drivers/char/serial.c | change_port = (new_serial.port != info->port) || (new_serial.hub6 != info->hub6); |
info | 1426 | drivers/char/serial.c | (new_serial.baud_base != info->baud_base) || |
info | 1427 | drivers/char/serial.c | (new_serial.type != info->type) || |
info | 1428 | drivers/char/serial.c | (new_serial.close_delay != info->close_delay) || |
info | 1430 | drivers/char/serial.c | (info->flags & ~ASYNC_USR_MASK))) |
info | 1432 | drivers/char/serial.c | info->flags = ((info->flags & ~ASYNC_USR_MASK) | |
info | 1434 | drivers/char/serial.c | info->custom_divisor = new_serial.custom_divisor; |
info | 1449 | drivers/char/serial.c | if ((info != &rs_table[i]) && |
info | 1455 | drivers/char/serial.c | if ((change_port || change_irq) && (info->count > 1)) |
info | 1463 | drivers/char/serial.c | info->baud_base = new_serial.baud_base; |
info | 1464 | drivers/char/serial.c | info->flags = ((info->flags & ~ASYNC_FLAGS) | |
info | 1466 | drivers/char/serial.c | info->custom_divisor = new_serial.custom_divisor; |
info | 1467 | drivers/char/serial.c | info->type = new_serial.type; |
info | 1468 | drivers/char/serial.c | info->close_delay = new_serial.close_delay; |
info | 1470 | drivers/char/serial.c | release_region(info->port,8); |
info | 1476 | drivers/char/serial.c | shutdown(info); |
info | 1477 | drivers/char/serial.c | info->irq = new_serial.irq; |
info | 1478 | drivers/char/serial.c | info->port = new_serial.port; |
info | 1479 | drivers/char/serial.c | info->hub6 = new_serial.hub6; |
info | 1481 | drivers/char/serial.c | if(info->type != PORT_UNKNOWN) |
info | 1482 | drivers/char/serial.c | request_region(info->port,8,"serial(set)"); |
info | 1486 | drivers/char/serial.c | if (!info->port || !info->type) |
info | 1488 | drivers/char/serial.c | if (info->flags & ASYNC_INITIALIZED) { |
info | 1490 | drivers/char/serial.c | (info->flags & ASYNC_SPD_MASK)) || |
info | 1491 | drivers/char/serial.c | (old_info.custom_divisor != info->custom_divisor)) |
info | 1492 | drivers/char/serial.c | change_speed(info); |
info | 1494 | drivers/char/serial.c | retval = startup(info); |
info | 1509 | drivers/char/serial.c | static int get_lsr_info(struct async_struct * info, unsigned int *value) |
info | 1515 | drivers/char/serial.c | status = serial_in(info, UART_LSR); |
info | 1523 | drivers/char/serial.c | static int get_modem_info(struct async_struct * info, unsigned int *value) |
info | 1528 | drivers/char/serial.c | control = info->MCR; |
info | 1530 | drivers/char/serial.c | status = serial_in(info, UART_MSR); |
info | 1542 | drivers/char/serial.c | static int set_modem_info(struct async_struct * info, unsigned int cmd, |
info | 1555 | drivers/char/serial.c | info->MCR |= UART_MCR_RTS; |
info | 1556 | drivers/char/serial.c | info->MCR_noint |= UART_MCR_RTS; |
info | 1559 | drivers/char/serial.c | info->MCR |= UART_MCR_DTR; |
info | 1560 | drivers/char/serial.c | info->MCR_noint |= UART_MCR_DTR; |
info | 1565 | drivers/char/serial.c | info->MCR &= ~UART_MCR_RTS; |
info | 1566 | drivers/char/serial.c | info->MCR_noint &= ~UART_MCR_RTS; |
info | 1569 | drivers/char/serial.c | info->MCR &= ~UART_MCR_DTR; |
info | 1570 | drivers/char/serial.c | info->MCR_noint &= ~UART_MCR_DTR; |
info | 1574 | drivers/char/serial.c | info->MCR = ((info->MCR & ~(UART_MCR_RTS | UART_MCR_DTR)) |
info | 1577 | drivers/char/serial.c | info->MCR_noint = ((info->MCR_noint |
info | 1586 | drivers/char/serial.c | serial_out(info, UART_MCR, info->MCR); |
info | 1591 | drivers/char/serial.c | static int do_autoconfig(struct async_struct * info) |
info | 1598 | drivers/char/serial.c | if (info->count > 1) |
info | 1601 | drivers/char/serial.c | shutdown(info); |
info | 1604 | drivers/char/serial.c | autoconfig(info); |
info | 1607 | drivers/char/serial.c | retval = startup(info); |
info | 1617 | drivers/char/serial.c | static void send_break( struct async_struct * info, int duration) |
info | 1619 | drivers/char/serial.c | if (!info->port) |
info | 1624 | drivers/char/serial.c | serial_out(info, UART_LCR, serial_inp(info, UART_LCR) | UART_LCR_SBC); |
info | 1626 | drivers/char/serial.c | serial_out(info, UART_LCR, serial_inp(info, UART_LCR) & ~UART_LCR_SBC); |
info | 1678 | drivers/char/serial.c | struct async_struct * info = (struct async_struct *)tty->driver_data; |
info | 1681 | drivers/char/serial.c | if (serial_paranoia_check(info, tty->device, "rs_ioctl")) |
info | 1698 | drivers/char/serial.c | send_break(info, HZ/4); /* 1/4 second */ |
info | 1705 | drivers/char/serial.c | send_break(info, arg ? arg*(HZ/10) : HZ/4); |
info | 1725 | drivers/char/serial.c | return get_modem_info(info, (unsigned int *) arg); |
info | 1729 | drivers/char/serial.c | return set_modem_info(info, cmd, (unsigned int *) arg); |
info | 1735 | drivers/char/serial.c | return get_serial_info(info, |
info | 1738 | drivers/char/serial.c | return set_serial_info(info, |
info | 1741 | drivers/char/serial.c | return do_autoconfig(info); |
info | 1757 | drivers/char/serial.c | return get_lsr_info(info, (unsigned int *) arg); |
info | 1773 | drivers/char/serial.c | info, sizeof(struct async_struct)); |
info | 1784 | drivers/char/serial.c | struct async_struct *info = (struct async_struct *)tty->driver_data; |
info | 1789 | drivers/char/serial.c | change_speed(info); |
info | 1806 | drivers/char/serial.c | wake_up_interruptible(&info->open_wait); |
info | 1822 | drivers/char/serial.c | struct async_struct * info = (struct async_struct *)tty->driver_data; |
info | 1826 | drivers/char/serial.c | if (!info || serial_paranoia_check(info, tty->device, "rs_close")) |
info | 1837 | drivers/char/serial.c | printk("rs_close ttys%d, count = %d\n", info->line, info->count); |
info | 1839 | drivers/char/serial.c | if ((tty->count == 1) && (info->count != 1)) { |
info | 1848 | drivers/char/serial.c | "info->count is %d\n", info->count); |
info | 1849 | drivers/char/serial.c | info->count = 1; |
info | 1851 | drivers/char/serial.c | if (--info->count < 0) { |
info | 1853 | drivers/char/serial.c | info->line, info->count); |
info | 1854 | drivers/char/serial.c | info->count = 0; |
info | 1856 | drivers/char/serial.c | if (info->count) { |
info | 1860 | drivers/char/serial.c | info->flags |= ASYNC_CLOSING; |
info | 1865 | drivers/char/serial.c | if (info->flags & ASYNC_NORMAL_ACTIVE) |
info | 1866 | drivers/char/serial.c | info->normal_termios = *tty->termios; |
info | 1867 | drivers/char/serial.c | if (info->flags & ASYNC_CALLOUT_ACTIVE) |
info | 1868 | drivers/char/serial.c | info->callout_termios = *tty->termios; |
info | 1875 | drivers/char/serial.c | info->IER &= ~UART_IER_RLSI; |
info | 1876 | drivers/char/serial.c | info->read_status_mask &= ~UART_LSR_DR; |
info | 1877 | drivers/char/serial.c | if (info->flags & ASYNC_INITIALIZED) { |
info | 1878 | drivers/char/serial.c | serial_out(info, UART_IER, info->IER); |
info | 1886 | drivers/char/serial.c | while (!(serial_inp(info, UART_LSR) & UART_LSR_TEMT)) { |
info | 1888 | drivers/char/serial.c | current->timeout = jiffies + info->timeout; |
info | 1894 | drivers/char/serial.c | shutdown(info); |
info | 1899 | drivers/char/serial.c | info->event = 0; |
info | 1900 | drivers/char/serial.c | info->tty = 0; |
info | 1909 | drivers/char/serial.c | if (info->blocked_open) { |
info | 1910 | drivers/char/serial.c | if (info->close_delay) { |
info | 1912 | drivers/char/serial.c | current->timeout = jiffies + info->close_delay; |
info | 1915 | drivers/char/serial.c | wake_up_interruptible(&info->open_wait); |
info | 1917 | drivers/char/serial.c | info->flags &= ~(ASYNC_NORMAL_ACTIVE|ASYNC_CALLOUT_ACTIVE| |
info | 1919 | drivers/char/serial.c | wake_up_interruptible(&info->close_wait); |
info | 1928 | drivers/char/serial.c | struct async_struct * info = (struct async_struct *)tty->driver_data; |
info | 1930 | drivers/char/serial.c | if (serial_paranoia_check(info, tty->device, "rs_hangup")) |
info | 1933 | drivers/char/serial.c | shutdown(info); |
info | 1934 | drivers/char/serial.c | info->event = 0; |
info | 1935 | drivers/char/serial.c | info->count = 0; |
info | 1936 | drivers/char/serial.c | info->flags &= ~(ASYNC_NORMAL_ACTIVE|ASYNC_CALLOUT_ACTIVE); |
info | 1937 | drivers/char/serial.c | info->tty = 0; |
info | 1938 | drivers/char/serial.c | wake_up_interruptible(&info->open_wait); |
info | 1947 | drivers/char/serial.c | struct async_struct *info) |
info | 1957 | drivers/char/serial.c | if (info->flags & ASYNC_CLOSING) { |
info | 1958 | drivers/char/serial.c | interruptible_sleep_on(&info->close_wait); |
info | 1960 | drivers/char/serial.c | if (info->flags & ASYNC_HUP_NOTIFY) |
info | 1974 | drivers/char/serial.c | if (info->flags & ASYNC_NORMAL_ACTIVE) |
info | 1976 | drivers/char/serial.c | if ((info->flags & ASYNC_CALLOUT_ACTIVE) && |
info | 1977 | drivers/char/serial.c | (info->flags & ASYNC_SESSION_LOCKOUT) && |
info | 1978 | drivers/char/serial.c | (info->session != current->session)) |
info | 1980 | drivers/char/serial.c | if ((info->flags & ASYNC_CALLOUT_ACTIVE) && |
info | 1981 | drivers/char/serial.c | (info->flags & ASYNC_PGRP_LOCKOUT) && |
info | 1982 | drivers/char/serial.c | (info->pgrp != current->pgrp)) |
info | 1984 | drivers/char/serial.c | info->flags |= ASYNC_CALLOUT_ACTIVE; |
info | 1994 | drivers/char/serial.c | if (info->flags & ASYNC_CALLOUT_ACTIVE) |
info | 1996 | drivers/char/serial.c | info->flags |= ASYNC_NORMAL_ACTIVE; |
info | 2000 | drivers/char/serial.c | if (info->flags & ASYNC_CALLOUT_ACTIVE) { |
info | 2001 | drivers/char/serial.c | if (info->normal_termios.c_cflag & CLOCAL) |
info | 2016 | drivers/char/serial.c | add_wait_queue(&info->open_wait, &wait); |
info | 2019 | drivers/char/serial.c | info->line, info->count); |
info | 2021 | drivers/char/serial.c | info->count--; |
info | 2022 | drivers/char/serial.c | info->blocked_open++; |
info | 2025 | drivers/char/serial.c | if (!(info->flags & ASYNC_CALLOUT_ACTIVE)) |
info | 2026 | drivers/char/serial.c | serial_out(info, UART_MCR, |
info | 2027 | drivers/char/serial.c | serial_inp(info, UART_MCR) | |
info | 2032 | drivers/char/serial.c | !(info->flags & ASYNC_INITIALIZED)) { |
info | 2034 | drivers/char/serial.c | if (info->flags & ASYNC_HUP_NOTIFY) |
info | 2043 | drivers/char/serial.c | if (!(info->flags & ASYNC_CALLOUT_ACTIVE) && |
info | 2044 | drivers/char/serial.c | !(info->flags & ASYNC_CLOSING) && |
info | 2045 | drivers/char/serial.c | (do_clocal || (serial_in(info, UART_MSR) & |
info | 2054 | drivers/char/serial.c | info->line, info->count); |
info | 2059 | drivers/char/serial.c | remove_wait_queue(&info->open_wait, &wait); |
info | 2061 | drivers/char/serial.c | info->count++; |
info | 2062 | drivers/char/serial.c | info->blocked_open--; |
info | 2065 | drivers/char/serial.c | info->line, info->count); |
info | 2069 | drivers/char/serial.c | info->flags |= ASYNC_NORMAL_ACTIVE; |
info | 2081 | drivers/char/serial.c | struct async_struct *info; |
info | 2087 | drivers/char/serial.c | info = rs_table + line; |
info | 2088 | drivers/char/serial.c | if (serial_paranoia_check(info, tty->device, "rs_open")) |
info | 2092 | drivers/char/serial.c | printk("rs_open %s%d, count = %d\n", tty->driver.name, info->line, |
info | 2093 | drivers/char/serial.c | info->count); |
info | 2095 | drivers/char/serial.c | info->count++; |
info | 2096 | drivers/char/serial.c | tty->driver_data = info; |
info | 2097 | drivers/char/serial.c | info->tty = tty; |
info | 2108 | drivers/char/serial.c | retval = startup(info); |
info | 2112 | drivers/char/serial.c | retval = block_til_ready(tty, filp, info); |
info | 2121 | drivers/char/serial.c | if ((info->count == 1) && (info->flags & ASYNC_SPLIT_TERMIOS)) { |
info | 2123 | drivers/char/serial.c | *tty->termios = info->normal_termios; |
info | 2125 | drivers/char/serial.c | *tty->termios = info->callout_termios; |
info | 2126 | drivers/char/serial.c | change_speed(info); |
info | 2129 | drivers/char/serial.c | info->session = current->session; |
info | 2130 | drivers/char/serial.c | info->pgrp = current->pgrp; |
info | 2133 | drivers/char/serial.c | printk("rs_open ttys%d successful...", info->line); |
info | 2171 | drivers/char/serial.c | static int get_auto_irq(struct async_struct *info) |
info | 2174 | drivers/char/serial.c | unsigned short ICP=0, port = info->port; |
info | 2182 | drivers/char/serial.c | save_IER = serial_inp(info, UART_IER); |
info | 2183 | drivers/char/serial.c | save_MCR = serial_inp(info, UART_MCR); |
info | 2184 | drivers/char/serial.c | if (info->flags & ASYNC_FOURPORT) { |
info | 2185 | drivers/char/serial.c | serial_outp(info, UART_MCR, UART_MCR_DTR | UART_MCR_RTS); |
info | 2186 | drivers/char/serial.c | serial_outp(info, UART_IER, 0x0f); /* enable all intrs */ |
info | 2192 | drivers/char/serial.c | serial_outp(info, UART_MCR, |
info | 2194 | drivers/char/serial.c | serial_outp(info, UART_IER, 0x0f); /* enable all intrs */ |
info | 2200 | drivers/char/serial.c | (void)serial_inp(info, UART_LSR); |
info | 2201 | drivers/char/serial.c | (void)serial_inp(info, UART_RX); |
info | 2202 | drivers/char/serial.c | (void)serial_inp(info, UART_IIR); |
info | 2203 | drivers/char/serial.c | (void)serial_inp(info, UART_MSR); |
info | 2214 | drivers/char/serial.c | serial_outp(info, UART_IER, save_IER); |
info | 2215 | drivers/char/serial.c | serial_outp(info, UART_MCR, save_MCR); |
info | 2216 | drivers/char/serial.c | if (info->flags & ASYNC_FOURPORT) |
info | 2226 | drivers/char/serial.c | static int do_auto_irq(struct async_struct * info) |
info | 2228 | drivers/char/serial.c | unsigned port = info->port; |
info | 2244 | drivers/char/serial.c | irq_try_1 = get_auto_irq(info); |
info | 2246 | drivers/char/serial.c | irq_try_2 = get_auto_irq(info); |
info | 2265 | drivers/char/serial.c | static void autoconfig(struct async_struct * info) |
info | 2268 | drivers/char/serial.c | unsigned port = info->port; |
info | 2271 | drivers/char/serial.c | info->type = PORT_UNKNOWN; |
info | 2287 | drivers/char/serial.c | scratch = serial_inp(info, UART_IER); |
info | 2288 | drivers/char/serial.c | serial_outp(info, UART_IER, 0); |
info | 2290 | drivers/char/serial.c | scratch2 = serial_inp(info, UART_IER); |
info | 2291 | drivers/char/serial.c | serial_outp(info, UART_IER, scratch); |
info | 2306 | drivers/char/serial.c | if (!(info->flags & ASYNC_SKIP_TEST)) { |
info | 2307 | drivers/char/serial.c | scratch = serial_inp(info, UART_MCR); |
info | 2308 | drivers/char/serial.c | serial_outp(info, UART_MCR, UART_MCR_LOOP | scratch); |
info | 2309 | drivers/char/serial.c | scratch2 = serial_inp(info, UART_MSR); |
info | 2310 | drivers/char/serial.c | serial_outp(info, UART_MCR, UART_MCR_LOOP | 0x0A); |
info | 2311 | drivers/char/serial.c | status1 = serial_inp(info, UART_MSR) & 0xF0; |
info | 2312 | drivers/char/serial.c | serial_outp(info, UART_MCR, scratch); |
info | 2313 | drivers/char/serial.c | serial_outp(info, UART_MSR, scratch2); |
info | 2324 | drivers/char/serial.c | if (info->flags & ASYNC_AUTO_IRQ) |
info | 2325 | drivers/char/serial.c | info->irq = do_auto_irq(info); |
info | 2327 | drivers/char/serial.c | serial_outp(info, UART_FCR, UART_FCR_ENABLE_FIFO); |
info | 2328 | drivers/char/serial.c | scratch = serial_in(info, UART_IIR) >> 6; |
info | 2329 | drivers/char/serial.c | info->xmit_fifo_size = 1; |
info | 2332 | drivers/char/serial.c | info->type = PORT_16450; |
info | 2335 | drivers/char/serial.c | info->type = PORT_UNKNOWN; |
info | 2338 | drivers/char/serial.c | info->type = PORT_16550; |
info | 2341 | drivers/char/serial.c | info->type = PORT_16550A; |
info | 2342 | drivers/char/serial.c | info->xmit_fifo_size = 16; |
info | 2345 | drivers/char/serial.c | if (info->type == PORT_16450) { |
info | 2346 | drivers/char/serial.c | scratch = serial_in(info, UART_SCR); |
info | 2347 | drivers/char/serial.c | serial_outp(info, UART_SCR, 0xa5); |
info | 2348 | drivers/char/serial.c | status1 = serial_in(info, UART_SCR); |
info | 2349 | drivers/char/serial.c | serial_outp(info, UART_SCR, 0x5a); |
info | 2350 | drivers/char/serial.c | status2 = serial_in(info, UART_SCR); |
info | 2351 | drivers/char/serial.c | serial_outp(info, UART_SCR, scratch); |
info | 2354 | drivers/char/serial.c | info->type = PORT_8250; |
info | 2356 | drivers/char/serial.c | request_region(info->port,8,"serial(auto)"); |
info | 2361 | drivers/char/serial.c | serial_outp(info, UART_MCR, 0x00); |
info | 2362 | drivers/char/serial.c | serial_outp(info, UART_FCR, (UART_FCR_CLEAR_RCVR | |
info | 2364 | drivers/char/serial.c | (void)serial_in(info, UART_RX); |
info | 2375 | drivers/char/serial.c | struct async_struct * info; |
info | 2440 | drivers/char/serial.c | for (i = 0, info = rs_table; i < NR_PORTS; i++,info++) { |
info | 2441 | drivers/char/serial.c | info->magic = SERIAL_MAGIC; |
info | 2442 | drivers/char/serial.c | info->line = i; |
info | 2443 | drivers/char/serial.c | info->tty = 0; |
info | 2444 | drivers/char/serial.c | info->type = PORT_UNKNOWN; |
info | 2445 | drivers/char/serial.c | info->custom_divisor = 0; |
info | 2446 | drivers/char/serial.c | info->close_delay = 50; |
info | 2447 | drivers/char/serial.c | info->x_char = 0; |
info | 2448 | drivers/char/serial.c | info->event = 0; |
info | 2449 | drivers/char/serial.c | info->count = 0; |
info | 2450 | drivers/char/serial.c | info->blocked_open = 0; |
info | 2451 | drivers/char/serial.c | info->tqueue.routine = do_softint; |
info | 2452 | drivers/char/serial.c | info->tqueue.data = info; |
info | 2453 | drivers/char/serial.c | info->callout_termios =callout_driver.init_termios; |
info | 2454 | drivers/char/serial.c | info->normal_termios = serial_driver.init_termios; |
info | 2455 | drivers/char/serial.c | info->open_wait = 0; |
info | 2456 | drivers/char/serial.c | info->close_wait = 0; |
info | 2457 | drivers/char/serial.c | info->next_port = 0; |
info | 2458 | drivers/char/serial.c | info->prev_port = 0; |
info | 2459 | drivers/char/serial.c | if (info->irq == 2) |
info | 2460 | drivers/char/serial.c | info->irq = 9; |
info | 2461 | drivers/char/serial.c | if (!(info->flags & ASYNC_BOOT_AUTOCONF)) |
info | 2463 | drivers/char/serial.c | autoconfig(info); |
info | 2464 | drivers/char/serial.c | if (info->type == PORT_UNKNOWN) |
info | 2466 | drivers/char/serial.c | printk("tty%02d%s at 0x%04x (irq = %d)", info->line, |
info | 2467 | drivers/char/serial.c | (info->flags & ASYNC_FOURPORT) ? " FourPort" : "", |
info | 2468 | drivers/char/serial.c | info->port, info->irq); |
info | 2469 | drivers/char/serial.c | switch (info->type) { |
info | 2498 | drivers/char/serial.c | struct async_struct *info; |
info | 2516 | drivers/char/serial.c | info = &rs_table[i]; |
info | 2523 | drivers/char/serial.c | info->irq = req->irq; |
info | 2524 | drivers/char/serial.c | info->port = req->port; |
info | 2525 | drivers/char/serial.c | autoconfig(info); |
info | 2526 | drivers/char/serial.c | if (info->type == PORT_UNKNOWN) { |
info | 2531 | drivers/char/serial.c | printk("tty%02d at 0x%04x (irq = %d)", info->line, |
info | 2532 | drivers/char/serial.c | info->port, info->irq); |
info | 2533 | drivers/char/serial.c | switch (info->type) { |
info | 2546 | drivers/char/serial.c | return info->line; |
info | 2552 | drivers/char/serial.c | struct async_struct *info = &rs_table[line]; |
info | 2556 | drivers/char/serial.c | if (info->tty) |
info | 2557 | drivers/char/serial.c | tty_hangup(info->tty); |
info | 2558 | drivers/char/serial.c | info->type = PORT_UNKNOWN; |
info | 2559 | drivers/char/serial.c | printk("tty%02d unloaded\n", info->line); |
info | 106 | drivers/net/3c505dta.h | struct Info info; |
info | 305 | drivers/scsi/eata.c | struct eata_info info; |
info | 325 | drivers/scsi/eata.c | if (read_pio(*port_base, (ushort *)&info, (ushort *)&info.ipad[0])) |
info | 329 | drivers/scsi/eata.c | if (info.sign != EATA_SIGNATURE) return FALSE; |
info | 331 | drivers/scsi/eata.c | irq = info.irq; |
info | 335 | drivers/scsi/eata.c | if (!info.haaval || info.ata || info.drqvld || !info.dmasup) { |
info | 345 | drivers/scsi/eata.c | if (!info.haaval || info.ata || !info.drqvld || !info.dmasup) { |
info | 351 | drivers/scsi/eata.c | dma_channel = dma_channel_table[3 - info.drqx]; |
info | 354 | drivers/scsi/eata.c | if (subversion == ESA && !info.irq_tr) |
info | 358 | drivers/scsi/eata.c | if (info.second) |
info | 391 | drivers/scsi/eata.c | sh[j]->sg_tablesize = (ushort) ntohs(info.scatt_size); |
info | 392 | drivers/scsi/eata.c | sh[j]->this_id = (ushort) ntohl(info.host_addr); |
info | 393 | drivers/scsi/eata.c | sh[j]->can_queue = (ushort) ntohs(info.queue_size); |
info | 437 | drivers/scsi/eata.c | name, info.version, info.sync, ntohl(info.data_len), |
info | 438 | drivers/scsi/eata.c | ntohl(info.cp_len), ntohl(info.sp_len)); |
info | 324 | drivers/scsi/hosts.c | if(shpnt->hostt->info) |
info | 325 | drivers/scsi/hosts.c | name = shpnt->hostt->info(shpnt); |
info | 94 | drivers/scsi/hosts.h | const char *(* info)(struct Scsi_Host *); |
info | 2172 | drivers/scsi/scsi.c | if(tpnt->info) |
info | 2173 | drivers/scsi/scsi.c | name = tpnt->info(shpnt); |
info | 551 | drivers/scsi/scsi_debug.c | int scsi_debug_biosparam(Disk * disk, int dev, int* info){ |
info | 553 | drivers/scsi/scsi_debug.c | info[0] = 32; |
info | 554 | drivers/scsi/scsi_debug.c | info[1] = 64; |
info | 555 | drivers/scsi/scsi_debug.c | info[2] = (size + 2047) >> 11; |
info | 556 | drivers/scsi/scsi_debug.c | if (info[2] >= 1024) info[2] = 1024; |
info | 36 | drivers/scsi/scsi_ioctl.c | if(host->hostt->info) |
info | 37 | drivers/scsi/scsi_ioctl.c | string = host->hostt->info(host); |
info | 143 | drivers/sound/dev_table.h | struct synth_info *info; |
info | 162 | drivers/sound/dev_table.h | int (*pmgr_interface) (int dev, struct patmgr_info *info); |
info | 171 | drivers/sound/dev_table.h | struct midi_info info; |
info | 189 | drivers/sound/dev_table.h | struct sound_timer_info info; |
info | 113 | drivers/sound/midi_synth.c | IOCTL_TO_USER ((char *) arg, 0, synth_devs[dev]->info, |
info | 1086 | drivers/sound/mpu401.c | strcpy (mpu401_midi_operations[num_midis].info.name, |
info | 1091 | drivers/sound/mpu401.c | mpu401_synth_operations[devc->devno].info = |
info | 1537 | drivers/sound/sequencer.c | IOCTL_TO_USER ((char *) arg, 0, (char *) &(midi_devs[dev]->info), sizeof (inf)); |
info | 211 | drivers/sound/sound_switch.c | if (!put_status (synth_devs[i]->info->name)) |
info | 226 | drivers/sound/sound_switch.c | if (!put_status (midi_devs[i]->info.name)) |
info | 241 | drivers/sound/sound_switch.c | if (!put_status (sound_timer_devs[i]->info.name)) |
info | 68 | fs/minix/dir.c | struct minix_sb_info * info; |
info | 72 | fs/minix/dir.c | info = &inode->i_sb->u.minix_sb; |
info | 73 | fs/minix/dir.c | if (filp->f_pos & (info->s_dirsize - 1)) |
info | 85 | fs/minix/dir.c | offset += info->s_dirsize; |
info | 86 | fs/minix/dir.c | filp->f_pos += info->s_dirsize; |
info | 90 | fs/minix/dir.c | for (i = 0; i < info->s_namelen; i++) |
info | 42 | fs/minix/namei.c | struct minix_sb_info * info) |
info | 47 | fs/minix/namei.c | *offset += info->s_dirsize; |
info | 48 | fs/minix/namei.c | if (!de->inode || len > info->s_namelen) |
info | 53 | fs/minix/namei.c | return namecompare(len,info->s_namelen,name,de->name); |
info | 69 | fs/minix/namei.c | struct minix_sb_info * info; |
info | 74 | fs/minix/namei.c | info = &dir->i_sb->u.minix_sb; |
info | 75 | fs/minix/namei.c | if (namelen > info->s_namelen) { |
info | 79 | fs/minix/namei.c | namelen = info->s_namelen; |
info | 93 | fs/minix/namei.c | if (minix_match(namelen,name,bh,&offset,info)) |
info | 154 | fs/minix/namei.c | struct minix_sb_info * info; |
info | 160 | fs/minix/namei.c | info = &dir->i_sb->u.minix_sb; |
info | 161 | fs/minix/namei.c | if (namelen > info->s_namelen) { |
info | 165 | fs/minix/namei.c | namelen = info->s_namelen; |
info | 179 | fs/minix/namei.c | offset += info->s_dirsize; |
info | 186 | fs/minix/namei.c | if (namecompare(namelen, info->s_namelen, name, de->name)) { |
info | 193 | fs/minix/namei.c | for (i = 0; i < info->s_namelen ; i++) |
info | 309 | fs/minix/namei.c | struct minix_sb_info * info; |
info | 315 | fs/minix/namei.c | info = &dir->i_sb->u.minix_sb; |
info | 332 | fs/minix/namei.c | inode->i_size = 2 * info->s_dirsize; |
info | 344 | fs/minix/namei.c | de = (struct minix_dir_entry *) (dir_block->b_data + info->s_dirsize); |
info | 379 | fs/minix/namei.c | struct minix_sb_info * info; |
info | 383 | fs/minix/namei.c | info = &inode->i_sb->u.minix_sb; |
info | 386 | fs/minix/namei.c | offset = 2*info->s_dirsize; |
info | 387 | fs/minix/namei.c | if (inode->i_size & (info->s_dirsize-1)) |
info | 397 | fs/minix/namei.c | de = (struct minix_dir_entry *) (bh->b_data + info->s_dirsize); |
info | 409 | fs/minix/namei.c | offset += info->s_dirsize; |
info | 660 | fs/minix/namei.c | (((struct minix_dir_entry *) ((buffer)+info->s_dirsize))->inode) |
info | 678 | fs/minix/namei.c | struct minix_sb_info * info; |
info | 681 | fs/minix/namei.c | info = &old_dir->i_sb->u.minix_sb; |
info | 150 | fs/umsdos/dir.c | struct umsdos_info info; |
info | 153 | fs/umsdos/dir.c | umsdos_parse (entry.name,entry.name_len,&info); |
info | 154 | fs/umsdos/dir.c | info.f_pos = cur_f_pos; |
info | 156 | fs/umsdos/dir.c | umsdos_manglename (&info); |
info | 157 | fs/umsdos/dir.c | lret = umsdos_real_lookup (dir,info.fake.fname |
info | 158 | fs/umsdos/dir.c | ,info.fake.len,&inode); |
info | 160 | fs/umsdos/dir.c | ,info.fake.fname,lret,entry.flags)); |
info | 209 | fs/umsdos/dir.c | ret = umsdos_writeentry (dir,emd_dir,&info,1); |
info | 556 | fs/umsdos/dir.c | struct umsdos_info info; |
info | 557 | fs/umsdos/dir.c | ret = umsdos_parse (name,len,&info); |
info | 558 | fs/umsdos/dir.c | if (ret == 0) ret = umsdos_findentry (dir,&info,0); |
info | 559 | fs/umsdos/dir.c | PRINTK (("lookup %s pos %d ret %d len %d ",info.fake.fname,info.f_pos,ret |
info | 560 | fs/umsdos/dir.c | ,info.fake.len)); |
info | 572 | fs/umsdos/dir.c | ret = umsdos_real_lookup (dir,info.fake.fname,info.fake.len,result); |
info | 576 | fs/umsdos/dir.c | ,info.fake.fname); |
info | 577 | fs/umsdos/dir.c | umsdos_delentry (dir,&info,S_ISDIR(info.entry.mode)); |
info | 579 | fs/umsdos/dir.c | umsdos_lookup_patch (dir,inode,&info.entry,info.f_pos); |
info | 581 | fs/umsdos/dir.c | ,info.entry.flags)); |
info | 582 | fs/umsdos/dir.c | if (info.entry.flags & UMSDOS_HLINK){ |
info | 175 | fs/umsdos/emd.c | struct umsdos_info *info, |
info | 180 | fs/umsdos/emd.c | struct umsdos_dirent *entry = &info->entry; |
info | 202 | fs/umsdos/emd.c | filp.f_pos = info->f_pos; |
info | 204 | fs/umsdos/emd.c | ret = umsdos_emd_dir_write(emd_dir,&filp,(char*)entry,info->recsize); |
info | 277 | fs/umsdos/emd.c | struct umsdos_info *info, /* Hold name and name_len */ |
info | 290 | fs/umsdos/emd.c | struct umsdos_dirent *entry = &info->entry; |
info | 291 | fs/umsdos/emd.c | int recsize = info->recsize; |
info | 315 | fs/umsdos/emd.c | info->f_pos = empty.posok; |
info | 322 | fs/umsdos/emd.c | info->f_pos = file_pos; |
info | 345 | fs/umsdos/emd.c | info->f_pos = empty.posok; |
info | 353 | fs/umsdos/emd.c | info->f_pos = file_pos; |
info | 363 | fs/umsdos/emd.c | umsdos_manglename(info); |
info | 377 | fs/umsdos/emd.c | struct umsdos_info *info) |
info | 380 | fs/umsdos/emd.c | int ret = umsdos_find (dir,info,&emd_dir); |
info | 384 | fs/umsdos/emd.c | ret = umsdos_writeentry(dir,emd_dir,info,0); |
info | 396 | fs/umsdos/emd.c | struct umsdos_info *info) |
info | 400 | fs/umsdos/emd.c | umsdos_parse ("..LINK",6,info); |
info | 401 | fs/umsdos/emd.c | info->entry.name_len = 0; |
info | 402 | fs/umsdos/emd.c | ret = umsdos_find (dir,info,&emd_dir); |
info | 410 | fs/umsdos/emd.c | info->entry.name_len = sprintf (info->entry.name,"..LINK%ld" |
info | 411 | fs/umsdos/emd.c | ,info->f_pos); |
info | 424 | fs/umsdos/emd.c | struct umsdos_info *info, |
info | 428 | fs/umsdos/emd.c | int ret = umsdos_find (dir,info,&emd_dir); |
info | 430 | fs/umsdos/emd.c | if (info->entry.name_len != 0){ |
info | 431 | fs/umsdos/emd.c | if ((isdir != 0) != (S_ISDIR(info->entry.mode) != 0)){ |
info | 432 | fs/umsdos/emd.c | if (S_ISDIR(info->entry.mode)){ |
info | 438 | fs/umsdos/emd.c | ret = umsdos_writeentry(dir,emd_dir,info,1); |
info | 486 | fs/umsdos/emd.c | struct umsdos_info *info, |
info | 492 | fs/umsdos/emd.c | int ret = umsdos_find (dir,info,&emd_dir); |
info | 495 | fs/umsdos/emd.c | if (S_ISDIR(info->entry.mode)){ |
info | 105 | fs/umsdos/ioctl.c | struct umsdos_info info; |
info | 107 | fs/umsdos/ioctl.c | umsdos_parse (entry.name,entry.name_len,&info); |
info | 108 | fs/umsdos/ioctl.c | info.f_pos = f_pos; |
info | 109 | fs/umsdos/ioctl.c | umsdos_manglename(&info); |
info | 113 | fs/umsdos/ioctl.c | ,info.fake.fname,info.fake.len+1); |
info | 155 | fs/umsdos/ioctl.c | struct umsdos_info info; |
info | 158 | fs/umsdos/ioctl.c | memcpy (&info.entry,&data.umsdos_dirent |
info | 161 | fs/umsdos/ioctl.c | ,data.umsdos_dirent.name_len,&info); |
info | 162 | fs/umsdos/ioctl.c | ret = umsdos_newentry (dir,&info); |
info | 172 | fs/umsdos/ioctl.c | struct umsdos_info info; |
info | 175 | fs/umsdos/ioctl.c | memcpy (&info.entry,&data.umsdos_dirent |
info | 178 | fs/umsdos/ioctl.c | ,data.umsdos_dirent.name_len,&info); |
info | 179 | fs/umsdos/ioctl.c | ret = umsdos_delentry (dir,&info |
info | 23 | fs/umsdos/mangle.c | void umsdos_manglename (struct umsdos_info *info) |
info | 25 | fs/umsdos/mangle.c | if (info->msdos_reject){ |
info | 73 | fs/umsdos/mangle.c | char *pt = info->fake.fname + info->fake.len; |
info | 87 | fs/umsdos/mangle.c | u.entry_num = info->f_pos / UMSDOS_REC_SIZE; |
info | 98 | fs/umsdos/mangle.c | info->fake.len += 4; |
info | 99 | fs/umsdos/mangle.c | info->msdos_reject = 0; /* Avoid mangling twice */ |
info | 136 | fs/umsdos/mangle.c | struct umsdos_info *info) |
info | 283 | fs/umsdos/mangle.c | char *pt = info->fake.fname; |
info | 289 | fs/umsdos/mangle.c | memcpy (info->fake.fname,fname,msdos_len); |
info | 292 | fs/umsdos/mangle.c | info->msdos_reject = 1; |
info | 301 | fs/umsdos/mangle.c | strcpy (info->fake.fname,fname); /* GLU C'est sur on a un 0 a la fin */ |
info | 302 | fs/umsdos/mangle.c | info->msdos_reject = 0; |
info | 355 | fs/umsdos/mangle.c | if (memcmp(info->fake.fname,tbdev[i],base_len)==0){ |
info | 356 | fs/umsdos/mangle.c | memcpy (basen,info->fake.fname,base_len); |
info | 362 | fs/umsdos/mangle.c | info->fake.fname[0] = '-'; |
info | 363 | fs/umsdos/mangle.c | strcpy (info->fake.fname+1,basen); /* GLU C'est sur on a un 0 a la fin */ |
info | 365 | fs/umsdos/mangle.c | info->msdos_reject = 1; |
info | 370 | fs/umsdos/mangle.c | info->fake.fname[msdos_len] = '\0'; /* Help doing printk */ |
info | 372 | fs/umsdos/mangle.c | info->fake.len = msdos_len; |
info | 374 | fs/umsdos/mangle.c | memcpy (info->entry.name,fname,len); |
info | 375 | fs/umsdos/mangle.c | info->entry.name_len = len; |
info | 381 | fs/umsdos/mangle.c | info->recsize = umsdos_evalrecsize (len); |
info | 453 | fs/umsdos/mangle.c | struct umsdos_info info; |
info | 454 | fs/umsdos/mangle.c | int ok = umsdos_parse (pttb->fname,strlen(pttb->fname),&info); |
info | 455 | fs/umsdos/mangle.c | if (strcmp(info.fake.fname,pttb->msname)!=0){ |
info | 457 | fs/umsdos/mangle.c | printf ("%s <> %s\n",info.fake.fname,pttb->msname); |
info | 458 | fs/umsdos/mangle.c | }else if (info.msdos_reject != pttb->msdos_reject){ |
info | 460 | fs/umsdos/mangle.c | printf ("%d <> %d\n",info.msdos_reject,pttb->msdos_reject); |
info | 212 | fs/umsdos/namei.c | struct umsdos_info info; |
info | 213 | fs/umsdos/namei.c | ret = umsdos_parse (name,len,&info); |
info | 216 | fs/umsdos/namei.c | info.entry.mode = mode; |
info | 217 | fs/umsdos/namei.c | info.entry.rdev = rdev; |
info | 218 | fs/umsdos/namei.c | info.entry.flags = flags; |
info | 219 | fs/umsdos/namei.c | info.entry.uid = current->fsuid; |
info | 220 | fs/umsdos/namei.c | info.entry.gid = (dir->i_mode & S_ISGID) |
info | 222 | fs/umsdos/namei.c | info.entry.ctime = info.entry.atime = info.entry.mtime |
info | 224 | fs/umsdos/namei.c | info.entry.nlink = 1; |
info | 226 | fs/umsdos/namei.c | ret = umsdos_newentry (dir,&info); |
info | 229 | fs/umsdos/namei.c | ret = msdos_create (dir,info.fake.fname,info.fake.len |
info | 233 | fs/umsdos/namei.c | umsdos_lookup_patch (dir,inode,&info.entry,info.f_pos); |
info | 236 | fs/umsdos/namei.c | ,info.fake.fname,current->pid,info.f_pos)); |
info | 263 | fs/umsdos/namei.c | ,info.fake.fname,-ret,current->pid,info.f_pos); |
info | 265 | fs/umsdos/namei.c | umsdos_delentry (dir,&info,0); |
info | 268 | fs/umsdos/namei.c | ,info.fake.fname,ret,info.f_pos)); |
info | 571 | fs/umsdos/namei.c | struct umsdos_info info; |
info | 572 | fs/umsdos/namei.c | ret = umsdos_newhidden (olddir,&info); |
info | 578 | fs/umsdos/namei.c | ,olddir,info.entry.name,info.entry.name_len |
info | 664 | fs/umsdos/namei.c | struct umsdos_info info; |
info | 665 | fs/umsdos/namei.c | ret = umsdos_parse (name,len,&info); |
info | 668 | fs/umsdos/namei.c | info.entry.mode = mode | S_IFDIR; |
info | 669 | fs/umsdos/namei.c | info.entry.rdev = 0; |
info | 670 | fs/umsdos/namei.c | info.entry.uid = current->fsuid; |
info | 671 | fs/umsdos/namei.c | info.entry.gid = (dir->i_mode & S_ISGID) |
info | 673 | fs/umsdos/namei.c | info.entry.ctime = info.entry.atime = info.entry.mtime |
info | 675 | fs/umsdos/namei.c | info.entry.flags = 0; |
info | 677 | fs/umsdos/namei.c | info.entry.nlink = 1; |
info | 678 | fs/umsdos/namei.c | ret = umsdos_newentry (dir,&info); |
info | 682 | fs/umsdos/namei.c | ret = msdos_mkdir (dir,info.fake.fname,info.fake.len,mode); |
info | 684 | fs/umsdos/namei.c | umsdos_delentry (dir,&info,1); |
info | 697 | fs/umsdos/namei.c | ret = umsdos_real_lookup (dir,info.fake.fname |
info | 698 | fs/umsdos/namei.c | ,info.fake.len,&subdir); |
info | 868 | fs/umsdos/namei.c | struct umsdos_info info; |
info | 870 | fs/umsdos/namei.c | umsdos_parse (name,len,&info); |
info | 873 | fs/umsdos/namei.c | umsdos_findentry (dir,&info,2); |
info | 874 | fs/umsdos/namei.c | ret = msdos_rmdir (dir,info.fake.fname |
info | 875 | fs/umsdos/namei.c | ,info.fake.len); |
info | 877 | fs/umsdos/namei.c | ret = umsdos_delentry (dir,&info,1); |
info | 902 | fs/umsdos/namei.c | struct umsdos_info info; |
info | 905 | fs/umsdos/namei.c | ret = umsdos_parse (name,len,&info); |
info | 908 | fs/umsdos/namei.c | ret = umsdos_findentry(dir,&info,1); |
info | 910 | fs/umsdos/namei.c | PRINTK (("UMSDOS_unlink %s ",info.fake.fname)); |
info | 911 | fs/umsdos/namei.c | if (info.entry.flags & UMSDOS_HLINK){ |
info | 950 | fs/umsdos/namei.c | ret = umsdos_delentry (dir,&info,0); |
info | 952 | fs/umsdos/namei.c | PRINTK (("Avant msdos_unlink %s ",info.fake.fname)); |
info | 954 | fs/umsdos/namei.c | ret = msdos_unlink_umsdos (dir,info.fake.fname |
info | 955 | fs/umsdos/namei.c | ,info.fake.len); |
info | 956 | fs/umsdos/namei.c | PRINTK (("msdos_unlink %s %o ret %d ",info.fake.fname |
info | 957 | fs/umsdos/namei.c | ,info.entry.mode,ret)); |
info | 70 | include/asm-i386/processor.h | struct info *info; |
info | 17 | kernel/info.c | asmlinkage int sys_sysinfo(struct sysinfo *info) |
info | 23 | kernel/info.c | error = verify_area(VERIFY_WRITE, info, sizeof(struct sysinfo)); |
info | 40 | kernel/info.c | memcpy_tofs(info, &val, sizeof(struct sysinfo)); |