taglinefilesource code
scc142arch/mips/kernel/signal.cstruct sigcontext_struct scc;
scc144arch/mips/kernel/signal.c#define scc_offset ((size_t)&((struct sc *)0)->scc)
scc185arch/mips/kernel/signal.cframe->scc.sc_at = regs->reg1;    /* Assembler temporary */
scc186arch/mips/kernel/signal.cframe->scc.sc_v0 = regs->reg2;    /* Result registers */
scc187arch/mips/kernel/signal.cframe->scc.sc_v1 = regs->reg3;
scc188arch/mips/kernel/signal.cframe->scc.sc_a0 = regs->reg4;    /* Argument registers */
scc189arch/mips/kernel/signal.cframe->scc.sc_a1 = regs->reg5;
scc190arch/mips/kernel/signal.cframe->scc.sc_a2 = regs->reg6;
scc191arch/mips/kernel/signal.cframe->scc.sc_a3 = regs->reg7;
scc193arch/mips/kernel/signal.cframe->scc.sc_t0 = regs->reg8;    /* Caller saved */
scc194arch/mips/kernel/signal.cframe->scc.sc_t1 = regs->reg9;
scc195arch/mips/kernel/signal.cframe->scc.sc_t2 = regs->reg10;
scc196arch/mips/kernel/signal.cframe->scc.sc_t3 = regs->reg11;
scc197arch/mips/kernel/signal.cframe->scc.sc_t4 = regs->reg12;
scc198arch/mips/kernel/signal.cframe->scc.sc_t5 = regs->reg13;
scc199arch/mips/kernel/signal.cframe->scc.sc_t6 = regs->reg14;
scc200arch/mips/kernel/signal.cframe->scc.sc_t7 = regs->reg15;
scc202arch/mips/kernel/signal.cframe->scc.sc_s0 = regs->reg16;    /* Callee saved */
scc203arch/mips/kernel/signal.cframe->scc.sc_s1 = regs->reg17;
scc204arch/mips/kernel/signal.cframe->scc.sc_s2 = regs->reg18;
scc205arch/mips/kernel/signal.cframe->scc.sc_s3 = regs->reg19;
scc206arch/mips/kernel/signal.cframe->scc.sc_s4 = regs->reg20;
scc207arch/mips/kernel/signal.cframe->scc.sc_s5 = regs->reg21;
scc208arch/mips/kernel/signal.cframe->scc.sc_s6 = regs->reg22;
scc209arch/mips/kernel/signal.cframe->scc.sc_s7 = regs->reg23;
scc211arch/mips/kernel/signal.cframe->scc.sc_t8 = regs->reg24;    /* Caller saved */
scc212arch/mips/kernel/signal.cframe->scc.sc_t9 = regs->reg25;
scc217arch/mips/kernel/signal.cframe->scc.sc_gp = regs->reg28;    /* global pointer / s8 */
scc218arch/mips/kernel/signal.cframe->scc.sc_sp = regs->reg29;    /* old stack pointer */
scc219arch/mips/kernel/signal.cframe->scc.sc_fp = regs->reg30;    /* old frame pointer */
scc220arch/mips/kernel/signal.cframe->scc.sc_ra = regs->reg31;    /* old return address */
scc222arch/mips/kernel/signal.cframe->scc.sc_epc = regs->cp0_epc;  /* Program counter */
scc223arch/mips/kernel/signal.cframe->scc.sc_cause = regs->cp0_cause;  /* c0_epc register */
scc225arch/mips/kernel/signal.cframe->scc.sc_oldmask = oldmask;
scc210drivers/char/scc.cstatic void alloc_buffer_pool(struct scc_channel *scc);
scc211drivers/char/scc.cstatic void free_buffer_pool(struct scc_channel *scc);
scc212drivers/char/scc.cstatic struct mbuf * scc_get_buffer(struct scc_channel *scc, char type);
scc232drivers/char/scc.cstatic void scc_change_speed(struct scc_channel *scc);
scc233drivers/char/scc.cstatic void kiss_encode(struct scc_channel *scc);
scc235drivers/char/scc.cstatic void init_channel(struct scc_channel *scc);
scc236drivers/char/scc.cstatic void scc_key_trx (struct scc_channel *scc, char tx);
scc237drivers/char/scc.cstatic void scc_txint(register struct scc_channel *scc);
scc238drivers/char/scc.cstatic void scc_exint(register struct scc_channel *scc);
scc239drivers/char/scc.cstatic void scc_rxint(register struct scc_channel *scc);
scc240drivers/char/scc.cstatic void scc_spint(register struct scc_channel *scc);
scc244drivers/char/scc.cstatic void scc_init_timer(struct scc_channel *scc);
scc307drivers/char/scc.cwr(register struct scc_channel *scc, register unsigned char reg, register unsigned char val)
scc309drivers/char/scc.cOutReg(scc->ctrl, reg, (scc->wreg[reg] = val));
scc313drivers/char/scc.cor(register struct scc_channel *scc, register unsigned char reg, register unsigned char val)
scc315drivers/char/scc.cOutReg(scc->ctrl, reg, (scc->wreg[reg] |= val));
scc319drivers/char/scc.ccl(register struct scc_channel *scc, register unsigned char reg, register unsigned char val)
scc321drivers/char/scc.cOutReg(scc->ctrl, reg, (scc->wreg[reg] &= ~val));
scc473drivers/char/scc.calloc_buffer_pool(struct scc_channel *scc)
scc479drivers/char/scc.cbuflen = sizeof(struct mbuf) + scc->stat.bufsize;
scc481drivers/char/scc.cif (scc->stat.bufsize <  336) scc->stat.bufsize = 336;
scc484drivers/char/scc.cscc->stat.bufsize = 4096-sizeof(struct mbuf);
scc488drivers/char/scc.cif (scc->stat.rxbuffers < 4)  scc->stat.rxbuffers = 4;
scc489drivers/char/scc.cif (scc->stat.txbuffers < 4)  scc->stat.txbuffers = 4;
scc495drivers/char/scc.cfor (k = 0; k < scc->stat.rxbuffers ; k++)
scc505drivers/char/scc.cprintk("z8530drv: %s: can't allocate memory for rx buffer pool", kdevname(scc->tty->device));
scc519drivers/char/scc.cscc_enqueue_buffer(&scc->rx_buffer_pool, bptr);
scc524drivers/char/scc.cfor (k = 0; k < scc->stat.txbuffers ; k++)
scc530drivers/char/scc.cprintk("z8530drv: %s: can't allocate memory for tx buffer pool", kdevname(scc->tty->device));
scc538drivers/char/scc.cscc_enqueue_buffer(&scc->tx_buffer_pool, bptr);
scc546drivers/char/scc.cfree_buffer_pool(struct scc_channel *scc)
scc558drivers/char/scc.cbptr = scc->rx_bp;
scc561drivers/char/scc.cscc->rx_bp = NULLBUF;
scc562drivers/char/scc.cscc_enqueue_buffer(&scc->rx_buffer_pool, bptr);
scc565drivers/char/scc.cbptr = scc->tx_bp;  
scc568drivers/char/scc.cscc->tx_bp = NULLBUF;
scc569drivers/char/scc.cscc_enqueue_buffer(&scc->tx_buffer_pool, bptr);
scc572drivers/char/scc.cbptr = scc->kiss_decode_bp;
scc575drivers/char/scc.cscc->kiss_decode_bp = NULLBUF;
scc576drivers/char/scc.cscc_enqueue_buffer(&scc->tx_buffer_pool, bptr);
scc579drivers/char/scc.cbptr = scc->kiss_encode_bp;
scc582drivers/char/scc.cscc->kiss_encode_bp = NULLBUF;
scc583drivers/char/scc.cscc_enqueue_buffer(&scc->rx_buffer_pool, bptr);
scc589drivers/char/scc.cwhile (scc->rx_queue != NULLBUF)
scc591drivers/char/scc.cbptr = scc_dequeue_buffer(&scc->rx_queue);
scc592drivers/char/scc.cscc_enqueue_buffer(&scc->rx_buffer_pool, bptr);
scc595drivers/char/scc.cwhile (scc->tx_queue != NULLBUF)
scc597drivers/char/scc.cbptr = scc_dequeue_buffer(&scc->tx_queue);
scc598drivers/char/scc.cscc_enqueue_buffer(&scc->tx_buffer_pool, bptr);
scc611drivers/char/scc.cwhile (scc->rx_buffer_pool != NULLBUF)
scc613drivers/char/scc.cbptr = scc_dequeue_buffer(&scc->rx_buffer_pool);
scc622drivers/char/scc.cif (cnt < scc->stat.rxbuffers)    /* hmm... hmm... :-( */
scc623drivers/char/scc.cprintk("z8530drv: oops, deallocated only %d of %d rx buffers\n", cnt, scc->stat.rxbuffers);
scc624drivers/char/scc.cif (cnt > scc->stat.rxbuffers)    /* WHAT?!! */
scc625drivers/char/scc.cprintk("z8530drv: oops, deallocated %d instead of %d rx buffers. Very strange.\n", cnt, scc->stat.rxbuffers);
scc629drivers/char/scc.cwhile (scc->tx_buffer_pool != NULLBUF)
scc631drivers/char/scc.cbptr = scc_dequeue_buffer(&scc->tx_buffer_pool);
scc640drivers/char/scc.cif (cnt < scc->stat.txbuffers)
scc641drivers/char/scc.cprintk("z8530drv: oops, deallocated only %d of %d tx buffers\n", cnt, scc->stat.txbuffers);
scc642drivers/char/scc.cif (cnt > scc->stat.txbuffers)
scc643drivers/char/scc.cprintk("z8530drv: oops, deallocated %d instead of %d tx buffers. Very strange.\n", cnt, scc->stat.txbuffers);
scc657drivers/char/scc.cscc_get_buffer(struct scc_channel *scc, char type)
scc663drivers/char/scc.cbptr = scc_dequeue_buffer(&scc->tx_buffer_pool);
scc669drivers/char/scc.cprintk("z8530drv: scc_get_buffer(%s): tx buffer pool empty\n", kdevname(scc->tty->device));
scc673drivers/char/scc.cbptr = scc_dequeue_buffer(&scc->tx_queue);
scc681drivers/char/scc.cbptr = scc_dequeue_buffer(&scc->rx_buffer_pool);
scc685drivers/char/scc.cprintk("z8530drv: scc_get_buffer(%s): rx buffer pool empty\n", kdevname(scc->tty->device));
scc687drivers/char/scc.cbptr = scc_dequeue_buffer(&scc->rx_queue);
scc713drivers/char/scc.cscc_isr_dispatch(register struct scc_channel *scc, register int vector)
scc717drivers/char/scc.ccase TXINT: scc_txint(scc); break;
scc718drivers/char/scc.ccase EXINT: scc_exint(scc); break;
scc719drivers/char/scc.ccase RXINT: scc_rxint(scc); break;
scc720drivers/char/scc.ccase SPINT: scc_spint(scc); break;
scc721drivers/char/scc.cdefault    : printk("scc_isr(): unknown interrupt status (addr %4.4x, state %2.2x)\n",scc->ctrl,vector);
scc738drivers/char/scc.cregister struct scc_channel *scc;
scc762drivers/char/scc.cscc=&SCC_Info[(((vector>>1)&0x7c)^0x04) >> 2];
scc764drivers/char/scc.cif (!scc->tty) break;
scc766drivers/char/scc.cscc_isr_dispatch(scc, vector);
scc768drivers/char/scc.cOutb(scc->ctrl,0x38);              /* Reset Highest IUS" opcode to WR0 */
scc803drivers/char/scc.cscc = &SCC_Info[(((vector >> 1) & 0x7c) ^ 0x04) >> 2];
scc805drivers/char/scc.cif (!scc->tty) break;
scc809drivers/char/scc.cscc_isr_dispatch(scc, vector);
scc828drivers/char/scc.cscc_txint(register struct scc_channel *scc)
scc832drivers/char/scc.cscc->stat.txints++;
scc834drivers/char/scc.cbp = scc->tx_bp;
scc841drivers/char/scc.cscc_enqueue_buffer(&scc->tx_buffer_pool, bp);
scc843drivers/char/scc.cbp = scc_dequeue_buffer(&scc->tx_queue);
scc847drivers/char/scc.cscc->stat.tx_state = TXS_BUSY;
scc848drivers/char/scc.cscc->t_tail = scc->kiss.tailtime;
scc850drivers/char/scc.cOutb(scc->ctrl, RES_Tx_P);  /* clear int */
scc854drivers/char/scc.cif ( scc->kiss.not_slip && (bp->cnt > 0) )
scc863drivers/char/scc.cOutb(scc->ctrl, RES_Tx_CRC);  /* reset CRC generator */
scc864drivers/char/scc.cor(scc,R10,ABUNDER);    /* re-install underrun protection */
scc865drivers/char/scc.cOutb(scc->data,*bp->rw_ptr);  /* send byte */
scc866drivers/char/scc.cif (!scc->enhanced)    /* reset EOM latch */
scc867drivers/char/scc.cOutb(scc->ctrl, RES_EOM_L);
scc869drivers/char/scc.cscc->tx_bp = bp;
scc870drivers/char/scc.cscc->stat.tx_state = TXS_ACTIVE; /* next byte... */
scc874drivers/char/scc.cif (--scc->stat.tx_queued < 0) scc->stat.tx_queued = 0;
scc876drivers/char/scc.cOutb(scc->ctrl, RES_Tx_P);  /* reset pending int */
scc877drivers/char/scc.ccl(scc, R10, ABUNDER);    /* send CRC */
scc878drivers/char/scc.cscc_enqueue_buffer(&scc->tx_buffer_pool, bp);
scc879drivers/char/scc.cscc->tx_bp = NULLBUF;
scc880drivers/char/scc.cscc->stat.tx_state = TXS_NEWFRAME; /* next frame... */
scc883drivers/char/scc.cOutb(scc->data,*bp->rw_ptr);    
scc891drivers/char/scc.cflush_FIFO(register struct scc_channel *scc)
scc896drivers/char/scc.cInb(scc->data);
scc898drivers/char/scc.cif(scc->rx_bp != NULLBUF)  /* did we receive something? */
scc900drivers/char/scc.cscc->stat.rxerrs++;  /* then count it as an error */
scc901drivers/char/scc.cscc_enqueue_buffer(&scc->rx_buffer_pool, scc->rx_bp);
scc903drivers/char/scc.cscc->rx_bp = NULLBUF;
scc910drivers/char/scc.cscc_exint(register struct scc_channel *scc)
scc914drivers/char/scc.cscc->stat.exints++;
scc916drivers/char/scc.cstatus = InReg(scc->ctrl,R0);
scc917drivers/char/scc.cchanges = status ^ scc->status;
scc923drivers/char/scc.cflush_FIFO(scc);
scc933drivers/char/scc.cif (scc->modem.clocksrc != CLK_EXTERNAL)
scc934drivers/char/scc.cOutReg(scc->ctrl,R14,SEARCH|scc->wreg[R14]); /* DPLL: enter search mode */
scc936drivers/char/scc.cor(scc,R3,ENT_HM|RxENABLE); /* enable the receiver, hunt mode */
scc938drivers/char/scc.ccl(scc,R3,ENT_HM|RxENABLE); /* disable the receiver */
scc939drivers/char/scc.cflush_FIFO(scc);
scc948drivers/char/scc.cif (!Running(t_txdel) && scc->kiss.txdelay == 0) /* zero TXDELAY = wait for CTS */
scc949drivers/char/scc.cscc->t_txdel = 0;  /* kick it! */    
scc954drivers/char/scc.cif ( (status & TxEOM) && (scc->stat.tx_state == TXS_ACTIVE) )
scc956drivers/char/scc.cscc->stat.tx_under++;    /* oops, an underrun! count 'em */
scc957drivers/char/scc.cOutb(scc->ctrl, RES_Tx_P);
scc958drivers/char/scc.cOutb(scc->ctrl, RES_EXT_INT);  /* reset ext/status interrupts */
scc959drivers/char/scc.cscc->t_maxk = 1;
scc961drivers/char/scc.cif (scc->tx_bp != NULLBUF)
scc963drivers/char/scc.cscc_enqueue_buffer(&scc->tx_buffer_pool, scc->tx_bp);
scc964drivers/char/scc.cscc->tx_bp = NULLBUF;
scc967drivers/char/scc.cif (--scc->stat.tx_queued < 0) scc->stat.tx_queued = 0;
scc968drivers/char/scc.cor(scc,R10,ABUNDER);
scc973drivers/char/scc.cscc->stat.tx_under = 9999;  /* errr... yes. */
scc974drivers/char/scc.cOutb(scc->ctrl, RES_Tx_P); /* just to be sure */
scc975drivers/char/scc.cscc->t_maxk = 1;
scc977drivers/char/scc.cif (scc->tx_bp != NULLBUF)
scc979drivers/char/scc.cscc_enqueue_buffer(&scc->tx_buffer_pool, scc->tx_bp);
scc980drivers/char/scc.cscc->tx_bp = NULLBUF;
scc983drivers/char/scc.cif (--scc->stat.tx_queued < 0) scc->stat.tx_queued = 0;
scc984drivers/char/scc.cscc->kiss.tx_inhibit = 1;  /* don't try it again! */
scc988drivers/char/scc.cscc->status = status;
scc989drivers/char/scc.cOutb(scc->ctrl,RES_EXT_INT);
scc995drivers/char/scc.cscc_rxint(register struct scc_channel *scc)
scc999drivers/char/scc.cscc->stat.rxints++;
scc1001drivers/char/scc.cif( Running(t_maxk) && !(scc->kiss.fulldup))
scc1003drivers/char/scc.cInb(scc->data);    /* discard char */
scc1004drivers/char/scc.cor(scc,R3,ENT_HM);  /* enter hunt mode for next flag */
scc1008drivers/char/scc.cbp = scc->rx_bp;
scc1012drivers/char/scc.cbp = scc_get_buffer(scc, BT_RECEIVE);
scc1016drivers/char/scc.cInb(scc->data);
scc1017drivers/char/scc.cor(scc, R3, ENT_HM);
scc1018drivers/char/scc.cscc->stat.nospace++;
scc1022drivers/char/scc.cscc->rx_bp = bp;
scc1025drivers/char/scc.cif (bp->cnt > scc->stat.bufsize)
scc1030drivers/char/scc.cscc_enqueue_buffer(&scc->rx_buffer_pool, bp);
scc1031drivers/char/scc.cscc->rx_bp = NULLBUF;
scc1032drivers/char/scc.cInb(scc->data);
scc1033drivers/char/scc.cor(scc, R3, ENT_HM);
scc1038drivers/char/scc.c*bp->rw_ptr = Inb(scc->data);
scc1053drivers/char/scc.ckick_rx_timer(register struct scc_channel *scc)
scc1055drivers/char/scc.cif (scc->rx_t.next)
scc1056drivers/char/scc.cdel_timer(&(scc->rx_t));
scc1058drivers/char/scc.cscc->rx_t.expires = jiffies + 1;
scc1059drivers/char/scc.cscc->rx_t.function = scc_rx_timer;
scc1060drivers/char/scc.cscc->rx_t.data = (unsigned long) scc;
scc1061drivers/char/scc.cadd_timer(&scc->rx_t);
scc1066drivers/char/scc.cscc_spint(register struct scc_channel *scc)
scc1071drivers/char/scc.cscc->stat.spints++;
scc1073drivers/char/scc.cstatus = InReg(scc->ctrl,R1);    /* read receiver status */
scc1075drivers/char/scc.cInb(scc->data);        /* throw away Rx byte */
scc1076drivers/char/scc.cbp = scc->rx_bp;
scc1080drivers/char/scc.cscc->stat.rx_over++;             /* count them */
scc1081drivers/char/scc.cor(scc,R3,ENT_HM);               /* enter hunt mode for next flag */
scc1083drivers/char/scc.cif (bp) scc_enqueue_buffer(&scc->rx_buffer_pool, bp);
scc1084drivers/char/scc.cscc->rx_bp = NULLBUF;
scc1096drivers/char/scc.cscc_enqueue_buffer(&scc->rx_queue, bp);
scc1097drivers/char/scc.cscc->rx_bp = NULLBUF;
scc1098drivers/char/scc.cscc->stat.rxframes++;
scc1099drivers/char/scc.cscc->stat.rx_queued++;
scc1100drivers/char/scc.ckick_rx_timer(scc);
scc1102drivers/char/scc.cscc_enqueue_buffer(&scc->rx_buffer_pool, bp);
scc1103drivers/char/scc.cscc->rx_bp = NULLBUF;
scc1104drivers/char/scc.cscc->stat.rxerrs++;
scc1108drivers/char/scc.cOutb(scc->ctrl,ERR_RES);
scc1119drivers/char/scc.cstatic inline void set_brg(register struct scc_channel *scc, unsigned int tc)
scc1125drivers/char/scc.ccl(scc,R14,BRENABL);    /* disable baudrate generator */
scc1126drivers/char/scc.cwr(scc,R12,tc & 255);    /* brg rate LOW */
scc1127drivers/char/scc.cwr(scc,R13,tc >> 8);       /* brg rate HIGH */
scc1128drivers/char/scc.cor(scc,R14,BRENABL);    /* enable baudrate generator */
scc1133drivers/char/scc.cstatic inline void set_speed(register struct scc_channel *scc)
scc1135drivers/char/scc.cif (scc->modem.speed > 0)  /* paranoia... */
scc1136drivers/char/scc.cset_brg(scc, (unsigned) (scc->clock / (scc->modem.speed * 64)) - 2);
scc1142drivers/char/scc.cstatic inline void init_brg(register struct scc_channel *scc)
scc1144drivers/char/scc.cwr(scc, R14, BRSRC);        /* BRG source = PCLK */
scc1145drivers/char/scc.cOutReg(scc->ctrl, R14, SSBR|scc->wreg[R14]);  /* DPLL source = BRG */
scc1146drivers/char/scc.cOutReg(scc->ctrl, R14, SNRZI|scc->wreg[R14]);  /* DPLL NRZI mode */
scc1195drivers/char/scc.cinit_channel(register struct scc_channel *scc)
scc1199drivers/char/scc.cif (scc->rx_t.next) del_timer(&(scc->rx_t));
scc1200drivers/char/scc.cif (scc->tx_t.next) del_timer(&(scc->tx_t));
scc1204drivers/char/scc.cwr(scc,R4,X1CLK|SDLC);    /* *1 clock, SDLC mode */
scc1205drivers/char/scc.cwr(scc,R1,0);      /* no W/REQ operation */
scc1206drivers/char/scc.cwr(scc,R3,Rx8|RxCRC_ENAB);  /* RX 8 bits/char, CRC, disabled */  
scc1207drivers/char/scc.cwr(scc,R5,Tx8|DTR|TxCRC_ENAB);  /* TX 8 bits/char, disabled, DTR */
scc1208drivers/char/scc.cwr(scc,R6,0);      /* SDLC address zero (not used) */
scc1209drivers/char/scc.cwr(scc,R7,FLAG);    /* SDLC flag value */
scc1210drivers/char/scc.cwr(scc,R9,VIS);      /* vector includes status */
scc1211drivers/char/scc.cwr(scc,R10,(scc->modem.nrz? NRZ : NRZI)|CRCPS|ABUNDER); /* abort on underrun, preset CRC generator, NRZ(I) */
scc1212drivers/char/scc.cwr(scc,R14, 0);
scc1241drivers/char/scc.cswitch(scc->modem.clocksrc)
scc1244drivers/char/scc.cwr(scc, R11, RCDPLL|TCDPLL|TRxCOI|TRxCDP);
scc1245drivers/char/scc.cinit_brg(scc);
scc1249drivers/char/scc.cwr(scc, R11, ((scc->brand & BAYCOM)? TRxCDP : TRxCBR) | RCDPLL|TCRTxCP|TRxCOI);
scc1250drivers/char/scc.cinit_brg(scc);
scc1254drivers/char/scc.cwr(scc, R11, (scc->brand & BAYCOM)? RCTRxCP|TCRTxCP : RCRTxCP|TCTRxCP);
scc1255drivers/char/scc.cOutReg(scc->ctrl, R14, DISDPLL);
scc1260drivers/char/scc.cset_speed(scc);      /* set baudrate */
scc1262drivers/char/scc.cif(scc->enhanced)
scc1264drivers/char/scc.cor(scc,R15,SHDLCE|FIFOE);  /* enable FIFO, SDLC/HDLC Enhancements (From now R7 is R7') */
scc1265drivers/char/scc.cwr(scc,R7,AUTOEOM);
scc1268drivers/char/scc.cif((InReg(scc->ctrl,R0)) & DCD)    /* DCD is now ON */
scc1270drivers/char/scc.cif (scc->modem.clocksrc != CLK_EXTERNAL)
scc1271drivers/char/scc.cor(scc,R14, SEARCH);
scc1273drivers/char/scc.cor(scc,R3,ENT_HM|RxENABLE);  /* enable the receiver, hunt mode */
scc1277drivers/char/scc.cwr(scc,R15,((scc->brand & BAYCOM) ? 0 : CTSIE)|BRKIE|DCDIE|TxUIE);
scc1279drivers/char/scc.cOutb(scc->ctrl,RES_EXT_INT);  /* reset ext/status interrupts */
scc1280drivers/char/scc.cOutb(scc->ctrl,RES_EXT_INT);  /* must be done twice */
scc1282drivers/char/scc.cor(scc,R1,INT_ALL_Rx|TxINT_ENAB|EXT_INT_ENAB); /* enable interrupts */
scc1284drivers/char/scc.cscc->status = InReg(scc->ctrl,R0);  /* read initial status */
scc1286drivers/char/scc.cor(scc,R9,MIE);      /* master interrupt enable */
scc1288drivers/char/scc.cscc_init_timer(scc);
scc1305drivers/char/scc.cscc_key_trx(struct scc_channel *scc, char tx)
scc1309drivers/char/scc.cif (scc->modem.speed < baud_table[1]) 
scc1310drivers/char/scc.cscc->modem.speed = 1200;
scc1312drivers/char/scc.cif (scc->brand & PRIMUS)
scc1313drivers/char/scc.cOutb(scc->ctrl + 4, scc->option | (tx? 0x80 : 0));
scc1315drivers/char/scc.ctime_const = (unsigned) (scc->clock / (scc->modem.speed * (tx? 2:64))) - 2;
scc1317drivers/char/scc.cif (scc->modem.clocksrc == CLK_DPLL)
scc1321drivers/char/scc.ccl(scc,R3,RxENABLE|ENT_HM);  /* then switch off receiver */
scc1323drivers/char/scc.cset_brg(scc, time_const);  /* reprogram baudrate generator */
scc1326drivers/char/scc.cwr(scc, R11, RCDPLL|TCBR|TRxCOI|TRxCBR);
scc1328drivers/char/scc.cor(scc,R5,RTS|TxENAB);    /* set the RTS line and enable TX */
scc1330drivers/char/scc.ccl(scc,R5,RTS|TxENAB);
scc1332drivers/char/scc.cset_brg(scc, time_const);  /* reprogram baudrate generator */
scc1335drivers/char/scc.cwr(scc, R11, RCDPLL|TCDPLL|TRxCOI|TRxCDP);
scc1337drivers/char/scc.cor(scc,R3,RxENABLE|ENT_HM);
scc1341drivers/char/scc.cor(scc,R5,RTS|TxENAB);    /* enable tx */
scc1343drivers/char/scc.ccl(scc,R5,RTS|TxENAB);    /* disable tx */
scc1352drivers/char/scc.cstatic inline int is_grouped(register struct scc_channel *scc)
scc1358drivers/char/scc.cgrp1 = scc->kiss.group;
scc1365drivers/char/scc.cif (scc2 == scc || !(scc2->tty && grp2)) 
scc1381drivers/char/scc.cstatic inline void dw_slot_timeout(register struct scc_channel *scc)
scc1383drivers/char/scc.cscc->t_dwait = TIMER_STOPPED;
scc1384drivers/char/scc.cscc->t_slot = TIMER_STOPPED;
scc1386drivers/char/scc.cif (!scc->kiss.fulldup)
scc1390drivers/char/scc.cif ( (scc->kiss.softdcd? !(scc->status & SYNC_HUNT):(scc->status & DCD))  || (scc->kiss.persist) < Rand || (scc->kiss.group && is_grouped(scc)) )
scc1392drivers/char/scc.cif (scc->t_mbusy == TIMER_STOPPED)
scc1393drivers/char/scc.cscc->t_mbusy = TPS * scc->kiss.maxdefer;
scc1395drivers/char/scc.cscc->t_slot = scc->kiss.slottime;
scc1401drivers/char/scc.cif ( !(scc->wreg[R5] & RTS) )
scc1403drivers/char/scc.cscc->t_txdel = scc->kiss.txdelay;
scc1404drivers/char/scc.cscc_key_trx(scc, TX_ON);
scc1406drivers/char/scc.cscc->t_txdel = 0;
scc1413drivers/char/scc.cstatic inline void txdel_timeout(register struct scc_channel *scc)
scc1415drivers/char/scc.cscc->t_txdel = TIMER_STOPPED;
scc1417drivers/char/scc.cscc->t_maxk = TPS * scc->kiss.maxkeyup;
scc1419drivers/char/scc.cif (scc->tx_bp == NULLBUF)
scc1420drivers/char/scc.cscc_txint(scc);  
scc1425drivers/char/scc.cstatic inline void tail_timeout(register struct scc_channel *scc)
scc1427drivers/char/scc.cscc->t_tail = TIMER_STOPPED;
scc1437drivers/char/scc.cif (scc->kiss.fulldup < 2)
scc1439drivers/char/scc.cif (scc->tx_bp)    /* we had a timeout? */
scc1441drivers/char/scc.cscc->stat.tx_state = TXS_BUSY;
scc1442drivers/char/scc.cscc->t_dwait = TPS * scc->kiss.mintime; /* try again */
scc1445drivers/char/scc.cscc->stat.tx_state = TXS_IDLE;
scc1446drivers/char/scc.cscc->t_maxk = TIMER_STOPPED;
scc1447drivers/char/scc.cscc_key_trx(scc, TX_OFF);
scc1451drivers/char/scc.cif (scc->tx_bp)      /* maxkeyup expired */ /* ?! */
scc1453drivers/char/scc.cscc->stat.tx_state = TXS_BUSY;
scc1454drivers/char/scc.cscc->t_txdel = TPS * scc->kiss.waittime;
scc1458drivers/char/scc.cscc->t_idle = TPS * scc->kiss.idletime;
scc1462drivers/char/scc.cstatic inline void busy_timeout(register struct scc_channel *scc)
scc1467drivers/char/scc.cwhile (bp = scc_dequeue_buffer(&scc->tx_queue))
scc1468drivers/char/scc.cscc_enqueue_buffer(&scc->tx_buffer_pool, bp);
scc1470drivers/char/scc.cscc->tx_queue = NULLBUF;
scc1471drivers/char/scc.cscc->stat.tx_state = TXS_IDLE;
scc1474drivers/char/scc.cscc->t_txdel = scc->kiss.txdelay;  /* brute force ... */
scc1476drivers/char/scc.cscc->t_mbusy = TIMER_STOPPED;
scc1481drivers/char/scc.cstatic inline void maxk_idle_timeout(register struct scc_channel *scc)
scc1483drivers/char/scc.cscc->t_maxk = TIMER_STOPPED;
scc1484drivers/char/scc.cscc->t_idle = TIMER_STOPPED;
scc1486drivers/char/scc.cscc->stat.tx_state = TXS_BUSY;
scc1487drivers/char/scc.cscc->t_tail = scc->kiss.tailtime;
scc1493drivers/char/scc.cregister struct scc_channel *scc;
scc1497drivers/char/scc.cscc = (struct scc_channel *) channel;
scc1499drivers/char/scc.cif (scc->tty && scc->init)
scc1505drivers/char/scc.cif (Expired(t_dwait)) dw_slot_timeout(scc)  ; else
scc1506drivers/char/scc.cif (Expired(t_slot))  dw_slot_timeout(scc)  ; else
scc1507drivers/char/scc.cif (Expired(t_txdel)) txdel_timeout(scc)     ; else
scc1508drivers/char/scc.cif (Expired(t_tail))  tail_timeout(scc)       ;
scc1512drivers/char/scc.cif (Expired(t_mbusy)) busy_timeout(scc);
scc1513drivers/char/scc.cif (Expired(t_maxk))  maxk_idle_timeout(scc);
scc1514drivers/char/scc.cif (Expired(t_idle))  maxk_idle_timeout(scc);
scc1519drivers/char/scc.cscc->tx_t.expires = jiffies + HZ/TPS;
scc1520drivers/char/scc.cadd_timer(&scc->tx_t);
scc1527drivers/char/scc.cregister struct scc_channel *scc;
scc1529drivers/char/scc.cscc = (struct scc_channel *) channel;
scc1531drivers/char/scc.cif (scc->rx_queue && scc->throttled)
scc1533drivers/char/scc.cscc->rx_t.expires = jiffies + HZ/TPS;
scc1534drivers/char/scc.cadd_timer(&scc->rx_t);
scc1538drivers/char/scc.ckiss_encode(scc);
scc1540drivers/char/scc.cif (scc->rx_queue && !scc->throttled)
scc1544drivers/char/scc.ckdevname(scc->tty->device));
scc1546drivers/char/scc.cscc->rx_t.expires = jiffies + HZ/TPS;
scc1547drivers/char/scc.cadd_timer(&scc->rx_t);
scc1552drivers/char/scc.cscc_init_timer(struct scc_channel *scc)
scc1566drivers/char/scc.cscc->stat.tx_state = TXS_IDLE;
scc1568drivers/char/scc.cif (scc->tx_t.next) 
scc1569drivers/char/scc.cdel_timer(&scc->tx_t);
scc1571drivers/char/scc.cscc->tx_t.data = (unsigned long) scc;
scc1572drivers/char/scc.cscc->tx_t.function = scc_tx_timer;
scc1573drivers/char/scc.cscc->tx_t.expires = jiffies + HZ/TPS;
scc1574drivers/char/scc.cadd_timer(&scc->tx_t);
scc1576drivers/char/scc.cscc->rx_t.data = (unsigned long) scc;
scc1577drivers/char/scc.cscc->rx_t.function = scc_rx_timer;
scc1593drivers/char/scc.ckiss_set_param(struct scc_channel *scc,char cmd, unsigned int val)
scc1601drivers/char/scc.cscc->kiss.txdelay = VAL; break;
scc1603drivers/char/scc.cscc->kiss.persist = val; break;
scc1605drivers/char/scc.cscc->kiss.slottime = VAL; break;
scc1607drivers/char/scc.cscc->kiss.tailtime = VAL; break;
scc1609drivers/char/scc.cscc->kiss.fulldup = val; break;
scc1611drivers/char/scc.cscc->kiss.waittime = VAL; break;
scc1613drivers/char/scc.cscc->kiss.maxkeyup = SVAL; break;
scc1615drivers/char/scc.cscc->kiss.mintime = SVAL; break;
scc1617drivers/char/scc.cscc->kiss.idletime = val; break;
scc1619drivers/char/scc.cscc->kiss.maxdefer = SVAL; break;
scc1621drivers/char/scc.cscc->kiss.group = val;  break;
scc1623drivers/char/scc.cscc->kiss.tx_inhibit = val;
scc1625drivers/char/scc.cscc->kiss.softdcd = val;
scc1636drivers/char/scc.cstatic void kiss_interpret_frame(struct scc_channel * scc)
scc1642drivers/char/scc.cbp = scc->kiss_decode_bp;
scc1655drivers/char/scc.cscc_enqueue_buffer(&scc->tx_buffer_pool, bp);
scc1656drivers/char/scc.cscc->kiss_decode_bp = NULLBUF;
scc1662drivers/char/scc.cif (scc->kiss.not_slip)
scc1676drivers/char/scc.cscc_enqueue_buffer(&scc->tx_buffer_pool, bp);
scc1677drivers/char/scc.cscc->kiss_decode_bp = NULLBUF;
scc1688drivers/char/scc.ckiss_set_param(scc, kisscmd, *bp->rw_ptr);
scc1689drivers/char/scc.cscc_enqueue_buffer(&scc->tx_buffer_pool, bp);
scc1690drivers/char/scc.cscc->kiss_decode_bp = NULLBUF;
scc1694drivers/char/scc.cscc_enqueue_buffer(&scc->tx_queue, bp);  /* enqueue frame */
scc1696drivers/char/scc.cscc->stat.txframes++;
scc1697drivers/char/scc.cscc->stat.tx_queued++;
scc1698drivers/char/scc.cscc->kiss_decode_bp = NULLBUF;
scc1702drivers/char/scc.cif(scc->stat.tx_state == TXS_IDLE)
scc1704drivers/char/scc.cscc->stat.tx_state = TXS_BUSY;
scc1705drivers/char/scc.cscc->t_dwait = (scc->kiss.fulldup? 0:scc->kiss.waittime);
scc1711drivers/char/scc.cstatic inline void kiss_store_byte(struct scc_channel *scc, unsigned char ch)
scc1713drivers/char/scc.cregister struct mbuf *bp = scc->kiss_decode_bp;
scc1717drivers/char/scc.cif (bp->cnt > scc->stat.bufsize)
scc1728drivers/char/scc.cstatic inline int kiss_decode(struct scc_channel *scc, unsigned char ch)
scc1730drivers/char/scc.cswitch (scc->stat.tx_kiss_state) 
scc1735drivers/char/scc.cscc->kiss_decode_bp = scc_get_buffer(scc, BT_TRANSMIT);
scc1736drivers/char/scc.cif (scc->kiss_decode_bp == NULLBUF)
scc1739drivers/char/scc.cscc->stat.tx_kiss_state = KISS_DATA;
scc1740drivers/char/scc.c} else scc->stat.txerrs++;
scc1745drivers/char/scc.cscc->stat.tx_kiss_state = KISS_ESCAPE;
scc1748drivers/char/scc.ckiss_interpret_frame(scc);
scc1749drivers/char/scc.cscc->stat.tx_kiss_state = KISS_IDLE;
scc1751drivers/char/scc.celse kiss_store_byte(scc, ch);
scc1757drivers/char/scc.ckiss_store_byte(scc, FEND);
scc1758drivers/char/scc.cscc->stat.tx_kiss_state = KISS_DATA;
scc1762drivers/char/scc.ckiss_store_byte(scc, FESC);
scc1763drivers/char/scc.cscc->stat.tx_kiss_state = KISS_DATA;
scc1767drivers/char/scc.cscc_enqueue_buffer(&scc->tx_buffer_pool, scc->kiss_decode_bp);
scc1768drivers/char/scc.cscc->kiss_decode_bp = NULLBUF;
scc1769drivers/char/scc.cscc->stat.txerrs++;
scc1770drivers/char/scc.cscc->stat.tx_kiss_state = KISS_IDLE;
scc1782drivers/char/scc.ckiss_encode(register struct scc_channel *scc)
scc1785drivers/char/scc.cstruct tty_struct * tty = scc->tty;
scc1788drivers/char/scc.cbp = scc->kiss_encode_bp;
scc1796drivers/char/scc.cbp = scc_dequeue_buffer(&scc->rx_queue);
scc1797drivers/char/scc.cscc->kiss_encode_bp = bp;
scc1801drivers/char/scc.cscc->stat.rx_kiss_state = KISS_IDLE;
scc1809drivers/char/scc.cif (--scc->stat.rx_queued < 0)
scc1810drivers/char/scc.cscc->stat.rx_queued = 0;
scc1812drivers/char/scc.cif (scc->stat.rx_kiss_state == KISS_RXFRAME)  /* new packet? */
scc1815drivers/char/scc.cscc->stat.rx_kiss_state = KISS_IDLE; /* generate FEND for new frame */
scc1818drivers/char/scc.cscc_enqueue_buffer(&scc->rx_buffer_pool, bp);
scc1820drivers/char/scc.cbp = scc->kiss_encode_bp = NULLBUF;
scc1825drivers/char/scc.cif (scc->stat.rx_kiss_state == KISS_IDLE)
scc1829drivers/char/scc.cif (scc->kiss.not_slip)
scc1832drivers/char/scc.cscc->stat.rx_kiss_state = KISS_RXFRAME;
scc1865drivers/char/scc.cstruct scc_channel *scc;
scc1886drivers/char/scc.cscc=&SCC_Info[2*chip];
scc1887drivers/char/scc.cif (!scc->ctrl) continue;
scc1893drivers/char/scc.cif(scc->brand & EAGLE)      /* this is an EAGLE card */
scc1894drivers/char/scc.cOutb(scc->special,0x08);  /* enable interrupt on the board */
scc1896drivers/char/scc.cif(scc->brand & (PC100 | PRIMUS))  /* this is a PC100/EAGLE card */
scc1897drivers/char/scc.cOutb(scc->special,scc->option);  /* set the MODEM mode (0x22) */
scc1904drivers/char/scc.cOutb(scc->ctrl, 0);
scc1905drivers/char/scc.cOutReg(scc->ctrl,R9,FHWRES);    /* force hardware reset */
scc1907drivers/char/scc.cwr(scc, R2, chip*16);      /* interrupt vector */
scc1908drivers/char/scc.cwr(scc, R9, VIS);      /* vector includes status */
scc1926drivers/char/scc.cstatic inline int scc_paranoia_check(struct scc_channel *scc, kdev_t device,
scc1936drivers/char/scc.cif (!scc->init) 
scc1942drivers/char/scc.cif (scc->magic != SCC_MAGIC)
scc1957drivers/char/scc.cstruct scc_channel *scc;
scc1972drivers/char/scc.cscc = &SCC_Info[chan];
scc1974drivers/char/scc.ctty->driver_data = scc;
scc1977drivers/char/scc.cif (scc->magic != SCC_MAGIC)
scc1986drivers/char/scc.cif(scc->tty != NULL)
scc1988drivers/char/scc.cscc->tty_opened++;
scc1992drivers/char/scc.cscc->tty = tty;
scc1993drivers/char/scc.calloc_buffer_pool(scc);
scc1995drivers/char/scc.cif(!scc->init) return 0;
scc1997drivers/char/scc.cscc->throttled = 0;
scc1999drivers/char/scc.cscc->stat.tx_kiss_state = KISS_IDLE;  /* don't change this... */
scc2000drivers/char/scc.cscc->stat.rx_kiss_state = KISS_IDLE;  /* ...or this */
scc2002drivers/char/scc.cinit_channel(scc);
scc2012drivers/char/scc.cstruct scc_channel *scc = tty->driver_data;
scc2015drivers/char/scc.cif (!scc || (scc->magic != SCC_MAGIC))
scc2020drivers/char/scc.cif(scc->tty_opened)
scc2022drivers/char/scc.cscc->tty_opened--;
scc2033drivers/char/scc.cOutb(scc->ctrl,0);    /* Make sure pointer is written */
scc2034drivers/char/scc.cwr(scc,R1,0);      /* disable interrupts */
scc2035drivers/char/scc.cwr(scc,R3,0);
scc2037drivers/char/scc.cscc->tty = NULL;
scc2039drivers/char/scc.cdel_timer(&scc->tx_t);
scc2040drivers/char/scc.cdel_timer(&scc->rx_t);
scc2042drivers/char/scc.cfree_buffer_pool(scc);
scc2046drivers/char/scc.cscc->throttled = 0;
scc2056drivers/char/scc.cscc_change_speed(struct scc_channel * scc)
scc2060drivers/char/scc.cif (scc->tty == NULL)
scc2064drivers/char/scc.cspeed = baud_table[scc->tty->termios->c_cflag & CBAUD];
scc2066drivers/char/scc.cif (speed > 0) scc->modem.speed = speed;
scc2068drivers/char/scc.cif (scc->stat.tx_state == 0)  /* only switch baudrate on rx... ;-) */
scc2069drivers/char/scc.cset_speed(scc);
scc2094drivers/char/scc.cstruct scc_channel * scc = tty->driver_data;
scc2103drivers/char/scc.cif (scc->magic != SCC_MAGIC) 
scc2146drivers/char/scc.ccheck_region(scc->ctrl, 1);
scc2213drivers/char/scc.cscc->tty=tty;
scc2214drivers/char/scc.calloc_buffer_pool(scc);
scc2221drivers/char/scc.cif (!scc->init)
scc2231drivers/char/scc.cmemcpy_fromfs(&scc->modem, (void *) arg, sizeof(struct scc_modem));
scc2235drivers/char/scc.cif (scc->modem.speed < 4800)
scc2237drivers/char/scc.cscc->kiss.txdelay = 36*TPS/100;    /* 360 ms */
scc2238drivers/char/scc.cscc->kiss.persist = 42;            /* 25% persistence */      /* was 25 */
scc2239drivers/char/scc.cscc->kiss.slottime = 16*TPS/100;   /* 160 ms */
scc2240drivers/char/scc.cscc->kiss.tailtime = 4;            /* minimal reasonable value */
scc2241drivers/char/scc.cscc->kiss.fulldup = 0;             /* CSMA */
scc2242drivers/char/scc.cscc->kiss.waittime = 50*TPS/100;   /* 500 ms */
scc2243drivers/char/scc.cscc->kiss.maxkeyup = 10;           /* 10 s */
scc2244drivers/char/scc.cscc->kiss.mintime = 3;             /* 3 s */
scc2245drivers/char/scc.cscc->kiss.idletime = 30;           /* 30 s */
scc2246drivers/char/scc.cscc->kiss.maxdefer = 120;     /* 2 min */
scc2247drivers/char/scc.cscc->kiss.not_slip = 1;       /* KISS mode */
scc2248drivers/char/scc.cscc->kiss.softdcd = 0;       /* hardware dcd */
scc2250drivers/char/scc.cscc->kiss.txdelay = 10*TPS/100;    /* 100 ms */
scc2251drivers/char/scc.cscc->kiss.persist = 64;            /* 25% persistence */      /* was 25 */
scc2252drivers/char/scc.cscc->kiss.slottime = 8*TPS/100;    /* 160 ms */
scc2253drivers/char/scc.cscc->kiss.tailtime = 1;            /* minimal reasonable value */
scc2254drivers/char/scc.cscc->kiss.fulldup = 0;             /* CSMA */
scc2255drivers/char/scc.cscc->kiss.waittime = 50*TPS/100;   /* 500 ms */
scc2256drivers/char/scc.cscc->kiss.maxkeyup = 7;            /* 7 s */
scc2257drivers/char/scc.cscc->kiss.mintime = 3;             /* 3 s */
scc2258drivers/char/scc.cscc->kiss.idletime = 30;           /* 30 s */
scc2259drivers/char/scc.cscc->kiss.maxdefer = 120;     /* 2 min */
scc2260drivers/char/scc.cscc->kiss.not_slip = 1;       /* KISS mode */
scc2261drivers/char/scc.cscc->kiss.softdcd = 0;       /* hardware dcd */
scc2264drivers/char/scc.cscc->init = 1;      
scc2282drivers/char/scc.cresult =  ((scc->wreg[R5] & RTS) ? TIOCM_RTS : 0)
scc2283drivers/char/scc.c| ((scc->wreg[R5] & DTR) ? TIOCM_DTR : 0)
scc2284drivers/char/scc.c| ((InReg(scc->ctrl,R0) & DCD)  ? TIOCM_CAR : 0)
scc2285drivers/char/scc.c| ((InReg(scc->ctrl,R0) & CTS)  ? TIOCM_CTS : 0);
scc2296drivers/char/scc.cscc->wreg[R5] |= DTR;
scc2297drivers/char/scc.cscc->wreg[R5] |= RTS;
scc2300drivers/char/scc.cscc->wreg[R5] &= ~DTR;
scc2301drivers/char/scc.cscc->wreg[R5] &= ~RTS;
scc2307drivers/char/scc.cscc->wreg[R5] |= DTR;
scc2309drivers/char/scc.cscc->wreg[R5] &= ~DTR;
scc2311drivers/char/scc.cscc->wreg[R5] |= RTS;
scc2313drivers/char/scc.cscc->wreg[R5] &= ~RTS;
scc2319drivers/char/scc.cif(scc->stat.tx_state == TXS_IDLE && !Running(t_idle))
scc2320drivers/char/scc.cmaxk_idle_timeout(scc);
scc2333drivers/char/scc.cmemcpy_tofs((void *) arg, scc->tty->termios, sizeof(struct termios));
scc2342drivers/char/scc.cmemcpy_fromfs(scc->tty->termios, (void *) arg, sizeof(struct termios));
scc2343drivers/char/scc.cscc_change_speed(scc);
scc2354drivers/char/scc.cfree_buffer_pool(scc);
scc2355drivers/char/scc.cscc->stat.rxbuffers = memcfg.rxbuffers;
scc2356drivers/char/scc.cscc->stat.txbuffers = memcfg.txbuffers;
scc2357drivers/char/scc.cscc->stat.bufsize   = memcfg.bufsize;
scc2358drivers/char/scc.calloc_buffer_pool(scc);
scc2372drivers/char/scc.cmemcpy_tofs((void *) arg, &scc->stat, sizeof(struct scc_stat));
scc2393drivers/char/scc.ccase PARAM_TXDELAY:  r = CAST(scc->kiss.txdelay*TICKS);  break;
scc2394drivers/char/scc.ccase PARAM_PERSIST:  r = CAST(scc->kiss.persist);     break;
scc2395drivers/char/scc.ccase PARAM_SLOTTIME:  r = CAST(scc->kiss.slottime*TICKS);  break;
scc2396drivers/char/scc.ccase PARAM_TXTAIL:  r = CAST(scc->kiss.tailtime*TICKS);  break;
scc2397drivers/char/scc.ccase PARAM_FULLDUP:  r = CAST(scc->kiss.fulldup);     break;
scc2398drivers/char/scc.ccase PARAM_SOFTDCD:  r = CAST(scc->kiss.softdcd);    break;
scc2399drivers/char/scc.ccase PARAM_DTR:    r = CAST((scc->wreg[R5] & DTR)? 1:0); break;
scc2400drivers/char/scc.ccase PARAM_RTS:    r = CAST((scc->wreg[R5] & RTS)? 1:0); break;
scc2401drivers/char/scc.ccase PARAM_SPEED:  r = CAST(scc->modem.speed);  break;
scc2402drivers/char/scc.ccase PARAM_GROUP:  r = CAST(scc->kiss.group);     break;
scc2403drivers/char/scc.ccase PARAM_IDLE:  r = CAST(scc->kiss.idletime);    break;
scc2404drivers/char/scc.ccase PARAM_MIN:    r = CAST(scc->kiss.mintime);    break;
scc2405drivers/char/scc.ccase PARAM_MAXKEY:  r = CAST(scc->kiss.maxkeyup);    break;
scc2406drivers/char/scc.ccase PARAM_WAIT:  r = CAST(scc->kiss.waittime);    break;
scc2407drivers/char/scc.ccase PARAM_MAXDEFER:  r = CAST(scc->kiss.maxdefer);    break;
scc2408drivers/char/scc.ccase PARAM_TX:    r = CAST(scc->kiss.tx_inhibit);  break;
scc2409drivers/char/scc.ccase PARAM_SLIP:  r = CAST(!scc->kiss.not_slip);    break;
scc2427drivers/char/scc.ccase PARAM_TXDELAY:  scc->kiss.txdelay=VAL;    break;
scc2428drivers/char/scc.ccase PARAM_PERSIST:  scc->kiss.persist=Val;    break;
scc2429drivers/char/scc.ccase PARAM_SLOTTIME:  scc->kiss.slottime=VAL;    break;
scc2430drivers/char/scc.ccase PARAM_TXTAIL:  scc->kiss.tailtime=VAL;    break;
scc2431drivers/char/scc.ccase PARAM_FULLDUP:  scc->kiss.fulldup=Val;    break;
scc2432drivers/char/scc.ccase PARAM_SOFTDCD:  scc->kiss.softdcd=Val;    break;
scc2435drivers/char/scc.ccase PARAM_SPEED:  scc->modem.speed=Val;    break;
scc2436drivers/char/scc.ccase PARAM_GROUP:  scc->kiss.group=Val;    break;
scc2437drivers/char/scc.ccase PARAM_IDLE:  scc->kiss.idletime=Val;    break;
scc2438drivers/char/scc.ccase PARAM_MIN:    scc->kiss.mintime=SVAL;    break;
scc2439drivers/char/scc.ccase PARAM_MAXKEY:  scc->kiss.maxkeyup=SVAL;  break;
scc2440drivers/char/scc.ccase PARAM_WAIT:  scc->kiss.waittime=Val;    break;
scc2441drivers/char/scc.ccase PARAM_MAXDEFER:  scc->kiss.maxdefer=SVAL;  break;
scc2442drivers/char/scc.ccase PARAM_TX:    scc->kiss.tx_inhibit=Val;  break;
scc2443drivers/char/scc.ccase PARAM_SLIP:  scc->kiss.not_slip=!Val;  break;
scc2466drivers/char/scc.cstruct scc_channel * scc = tty->driver_data;
scc2473drivers/char/scc.cif (scc_paranoia_check(scc, tty->device, "scc_write"))
scc2476drivers/char/scc.cif (scc->kiss.tx_inhibit) return count;
scc2512drivers/char/scc.cif (kiss_decode(scc, *p++))
scc2514drivers/char/scc.cscc->stat.nospace++;
scc2530drivers/char/scc.cstruct scc_channel *scc = tty->driver_data;
scc2533drivers/char/scc.cif (scc_paranoia_check(scc, tty->device, "scc_put_char"))
scc2542drivers/char/scc.cstruct scc_channel *scc = tty->driver_data;
scc2544drivers/char/scc.cscc_paranoia_check(scc, tty->device, "scc_flush_chars"); /* just to annoy the user... */
scc2552drivers/char/scc.cstruct scc_channel *scc = tty->driver_data;
scc2554drivers/char/scc.cif (scc_paranoia_check(scc, tty->device, "scc_write_room"))
scc2562drivers/char/scc.cstruct scc_channel *scc = tty->driver_data;
scc2564drivers/char/scc.cif (scc && scc->kiss_decode_bp)
scc2565drivers/char/scc.creturn scc->kiss_decode_bp->cnt;
scc2572drivers/char/scc.cstruct scc_channel *scc = tty->driver_data;
scc2574drivers/char/scc.cif (scc_paranoia_check(scc, tty->device, "scc_flush_buffer"))
scc2584drivers/char/scc.cstruct scc_channel *scc = tty->driver_data;
scc2586drivers/char/scc.cif (scc_paranoia_check(scc, tty->device, "scc_throttle"))
scc2592drivers/char/scc.cscc->throttled = 1;
scc2594drivers/char/scc.cdel_timer(&(scc->rx_t));
scc2595drivers/char/scc.cscc->rx_t.expires = jiffies + HZ/TPS;
scc2596drivers/char/scc.cadd_timer(&scc->rx_t);
scc2601drivers/char/scc.cstruct scc_channel *scc = tty->driver_data;
scc2603drivers/char/scc.cif (scc_paranoia_check(scc, tty->device, "scc_unthrottle"))
scc2609drivers/char/scc.cscc->throttled = 0;
scc2610drivers/char/scc.cdel_timer(&(scc->rx_t));
scc2611drivers/char/scc.cscc_tx_timer(scc->rx_t.data);
scc2618drivers/char/scc.cstruct scc_channel *scc = tty->driver_data;
scc2620drivers/char/scc.cif (scc_paranoia_check(scc, tty->device, "scc_start"))
scc2628drivers/char/scc.cstruct scc_channel *scc = tty->driver_data;
scc2630drivers/char/scc.cif (scc_paranoia_check(scc, tty->device, "scc_stop"))
scc2639drivers/char/scc.cstruct scc_channel *scc = tty->driver_data;
scc2641drivers/char/scc.cif (scc_paranoia_check(scc, tty->device, "scc_set_termios"))
scc2647drivers/char/scc.cscc_change_speed(scc);
scc2653drivers/char/scc.cstruct scc_channel *scc = tty->driver_data;
scc2655drivers/char/scc.cif (scc_paranoia_check(scc, tty->device, "scc_set_ldisc"))
scc2658drivers/char/scc.cscc_change_speed(scc);
scc2758drivers/char/scc.cstruct scc_channel *scc;
scc2778drivers/char/scc.cscc = &SCC_Info[k];
scc2779drivers/char/scc.cif (scc)
scc2781drivers/char/scc.crelease_region(scc->ctrl, 1);
scc2782drivers/char/scc.crelease_region(scc->data, 1);
scc121include/linux/scc.h#define Running(k) (scc->k != TIMER_STOPPED)
scc122include/linux/scc.h#define Expired(k) (scc->k != TIMER_STOPPED) && (!(scc->k) || (--(scc->k) == 0))
scc123include/linux/scc.h#define Stop_Timer(k) scc->k = TIMER_STOPPED