forked from Imagelibrary/rtems
bsp/rtl22xx: Use IRQ extensions API
This commit is contained in:
committed by
Sebastian Huber
parent
818d4b090f
commit
583eb4588f
@@ -3,24 +3,18 @@
|
||||
#include <sys/mbuf.h>
|
||||
#include <bsp/irq.h>
|
||||
#include <libchip/cs8900.h>
|
||||
#include <assert.h>
|
||||
|
||||
#define CS8900_BASE 0x20000300
|
||||
unsigned int bsp_cs8900_io_base = 0;
|
||||
unsigned int bsp_cs8900_memory_base = 0;
|
||||
cs8900_device *g_cs;
|
||||
void cs8900_isr(rtems_irq_hdl_param unused);
|
||||
rtems_irq_connect_data cs8900_isr_data = {LPC22xx_INTERRUPT_EINT2,
|
||||
cs8900_isr,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL};
|
||||
static void cs8900_isr(void *);
|
||||
|
||||
char g_enetbuf[1520];
|
||||
|
||||
void cs8900_isr(rtems_irq_hdl_param unused)
|
||||
static void cs8900_isr(void *arg)
|
||||
{
|
||||
cs8900_interrupt(LPC22xx_INTERRUPT_EINT2, g_cs);
|
||||
cs8900_interrupt(LPC22xx_INTERRUPT_EINT2, arg);
|
||||
}
|
||||
|
||||
/* cs8900_io_set_reg - set one of the I/O addressed registers */
|
||||
@@ -69,13 +63,26 @@ unsigned short cs8900_mem_get_reg (cs8900_device *cs, unsigned long reg)
|
||||
|
||||
void cs8900_attach_interrupt (cs8900_device *cs)
|
||||
{
|
||||
g_cs = cs;
|
||||
BSP_install_rtems_irq_handler(&cs8900_isr_data);
|
||||
rtems_status_code status = RTEMS_SUCCESSFUL;
|
||||
status = rtems_interrupt_handler_install(
|
||||
LPC22xx_INTERRUPT_EINT2,
|
||||
"Network",
|
||||
RTEMS_INTERRUPT_UNIQUE,
|
||||
cs8900_isr,
|
||||
cs
|
||||
);
|
||||
assert(status == RTEMS_SUCCESSFUL);
|
||||
}
|
||||
|
||||
void cs8900_detach_interrupt (cs8900_device *cs)
|
||||
{
|
||||
BSP_remove_rtems_irq_handler(&cs8900_isr_data);
|
||||
rtems_status_code status = RTEMS_SUCCESSFUL;
|
||||
status = rtems_interrupt_handler_remove(
|
||||
LPC22xx_INTERRUPT_EINT2,
|
||||
cs8900_isr,
|
||||
cs
|
||||
);
|
||||
assert(status == RTEMS_SUCCESSFUL);
|
||||
}
|
||||
|
||||
unsigned short cs8900_get_data_block (cs8900_device *cs, unsigned char *data)
|
||||
|
||||
Reference in New Issue
Block a user