Rev 4743 | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 4743 | Rev 4756 | ||
---|---|---|---|
Line 29... | Line 29... | ||
29 | /** @addtogroup dp8390 |
29 | /** @addtogroup dp8390 |
30 | * @{ |
30 | * @{ |
31 | */ |
31 | */ |
32 | 32 | ||
33 | /** @file |
33 | /** @file |
34 | * \todo |
34 | * DP8390 network interface implementation. |
35 | */ |
35 | */ |
36 | 36 | ||
37 | #include <assert.h> |
37 | #include <assert.h> |
38 | #include <async.h> |
38 | #include <async.h> |
39 | #include <ddi.h> |
39 | #include <ddi.h> |
Line 58... | Line 58... | ||
58 | 58 | ||
59 | #include "dp8390.h" |
59 | #include "dp8390.h" |
60 | #include "dp8390_drv.h" |
60 | #include "dp8390_drv.h" |
61 | #include "dp8390_port.h" |
61 | #include "dp8390_port.h" |
62 | 62 | ||
- | 63 | /** DP8390 module name. |
|
- | 64 | */ |
|
63 | #define NAME "dp8390 network interface" |
65 | #define NAME "dp8390 network interface" |
64 | 66 | ||
- | 67 | /** Returns the device from the interrupt call. |
|
- | 68 | * @param[in] call The interrupt call. |
|
- | 69 | */ |
|
65 | #define IRQ_GET_DEVICE( call ) ( device_id_t ) IPC_GET_METHOD( * call ) |
70 | #define IRQ_GET_DEVICE( call ) ( device_id_t ) IPC_GET_METHOD( * call ) |
- | 71 | ||
- | 72 | /** Returns the interrupt status register from the interrupt call. |
|
- | 73 | * @param[in] call The interrupt call. |
|
- | 74 | */ |
|
66 | #define IPC_GET_ISR( call ) ( int ) IPC_GET_ARG2( * call ) |
75 | #define IPC_GET_ISR( call ) ( int ) IPC_GET_ARG2( * call ) |
67 | 76 | ||
- | 77 | /** DP8390 kernel interrupt command sequence. |
|
- | 78 | */ |
|
68 | static irq_cmd_t dp8390_cmds[] = { |
79 | static irq_cmd_t dp8390_cmds[] = { |
69 | { .cmd = CMD_PIO_READ_8, |
80 | { .cmd = CMD_PIO_READ_8, |
70 | .addr = NULL, |
81 | .addr = NULL, |
71 | .dstarg = 2 |
82 | .dstarg = 2 |
72 | }, |
83 | }, |
Line 78... | Line 89... | ||
78 | { |
89 | { |
79 | .cmd = CMD_ACCEPT |
90 | .cmd = CMD_ACCEPT |
80 | } |
91 | } |
81 | }; |
92 | }; |
82 | 93 | ||
- | 94 | /** DP8390 kernel interrupt code. |
|
- | 95 | */ |
|
83 | static irq_code_t dp8390_code = { |
96 | static irq_code_t dp8390_code = { |
84 | sizeof( dp8390_cmds ) / sizeof( irq_cmd_t ), |
97 | sizeof( dp8390_cmds ) / sizeof( irq_cmd_t ), |
85 | dp8390_cmds |
98 | dp8390_cmds |
86 | }; |
99 | }; |
87 | 100 | ||
- | 101 | /** Network interface module global data. |
|
- | 102 | */ |
|
88 | netif_globals_t netif_globals; |
103 | netif_globals_t netif_globals; |
89 | 104 | ||
- | 105 | /** Prints the module name. |
|
- | 106 | * @see NAME |
|
- | 107 | */ |
|
90 | void module_print_name( void ); |
108 | void module_print_name( void ); |
91 | 109 | ||
- | 110 | /** Handles the interrupt messages. |
|
- | 111 | * This is the interrupt handler callback function. |
|
- | 112 | * @param[in] iid The interrupt message identifier. |
|
- | 113 | * @param[in] call The interrupt message. |
|
- | 114 | */ |
|
92 | void irq_handler( ipc_callid_t iid, ipc_call_t * call ); |
115 | void irq_handler( ipc_callid_t iid, ipc_call_t * call ); |
- | 116 | ||
- | 117 | /** Changes the network interface state. |
|
- | 118 | * @param[in,out] device The network interface. |
|
- | 119 | * @param[in] state The new state. |
|
- | 120 | * @returns The new state. |
|
- | 121 | */ |
|
93 | int change_state( device_ref device, device_state_t state ); |
122 | int change_state( device_ref device, device_state_t state ); |
94 | 123 | ||
95 | int netif_specific_message( ipc_callid_t callid, ipc_call_t * call, ipc_call_t * answer, int * answer_count ){ |
124 | int netif_specific_message( ipc_callid_t callid, ipc_call_t * call, ipc_call_t * answer, int * answer_count ){ |
96 | return ENOTSUP; |
125 | return ENOTSUP; |
97 | } |
126 | } |