/shark/trunk/drivers/serial/include/drivers/scomirq.h |
---|
35,7 → 35,7 |
*/ |
/* |
CVS : $Id: scomirq.h,v 1.1 2004-06-01 14:08:28 giacomo Exp $ |
CVS : $Id: scomirq.h,v 1.2 2004-06-01 14:50:33 giacomo Exp $ |
scomirq.h: |
73,19 → 73,19 |
void (*indication)(unsigned port, BYTE data); |
}; |
extern struct SCom_Access_Type SCom_Access; |
/***************************** |
* Functions |
*****************************/ |
void com_end(unsigned port); |
void com_close_irq(unsigned port); |
void com_irq_enable(unsigned port, unsigned irq); |
void com_irq_disable(unsigned port, unsigned irq); |
void com_init(unsigned port, DWORD speed, BYTE parity, BYTE len, BYTE stop); |
void com_init_irq(unsigned port); |
void com_set_functions(void (*confirm)(unsigned port, BYTE msg_status),void (*indication)(unsigned port, BYTE data)); |
void com_irq_send(unsigned port, BYTE len, BYTE *data); |
#endif |
/shark/trunk/drivers/serial/scomirq.c |
---|
121,7 → 121,7 |
} |
void com_end(unsigned port) |
void com_close_irq(unsigned port) |
{ |
SYS_FLAGS f; |
130,19 → 130,19 |
com_write(port, IER, 0); |
com_read(port, LSR); |
com_read(port, IIR); |
com_close(port); |
handler_remove(com_irq[port]); |
kern_frestore(f); |
} |
void com_init(unsigned port, DWORD speed, BYTE parity, BYTE len, BYTE stop) |
void com_init_irq(unsigned port) |
{ |
SYS_FLAGS f; |
f = kern_fsave(); |
com_open(port, speed, parity, len, stop); |
SCom_Error = 0; |
handler_set(com_irq[port], com_irq_sel, NIL, TRUE); |
com_irq_disable(port, ALL_IRQ); /* Disable interrupts */ |
186,6 → 186,12 |
} |
__inline__ void com_irq_send(unsigned port, BYTE len, BYTE *m) { |
com_send_msg(port, len, m); |
} |
void THRE_handler (unsigned port) /* Transmit Data Register Ready for next byte */ |
{ |
if (SCom_TX_data.ptr < SCom_TX_data.len) |