alias qid uint16;
message request_device_info();
- message queue_init_data(cap registers, uint64 macaddr, cap mac_stat);
+ message queue_init_data(cap registers, uint64 macaddr);
/* Upon initialization the queue driver registers its memory with
the device manager. */
message unregister_filter(uint64 filter);
message filter_unregistered(uint64 filter, errval err);
-
- /*****************************************************
- * Control path for userspace networking
- * (used by interface_raw.c)
- *****************************************************/
- /*
- call get_queue(uint16 qid);
- response get_queue_response(cap rx,
- cap tx,
- cap registers,
- uint32 rx_size,
- uint32 tx_size,
- bool userspace);
-*/
};
void qd_argument(const char *arg) __attribute__((weak));
void qd_interrupt(void) __attribute__((weak));
void qd_queue_init_data(struct sfn5122f_binding *b, struct capref registers,
- uint64_t macaddr, struct capref mac_stat) __attribute__((weak));
+ uint64_t macaddr) __attribute__((weak));
void qd_queue_memory_registered(struct sfn5122f_binding *b) __attribute__((weak));
void qd_write_queue_tails(struct sfn5122f_binding *b) __attribute__((weak));
static void idc_queue_init_data(struct sfn5122f_binding *b,
struct capref registers,
- uint64_t macaddr,
- struct capref mac_stat)
-
+ uint64_t macaddr)
{
errval_t r;
- r = sfn5122f_queue_init_data__tx(b, NOP_CONT, registers, macaddr, mac_stat);
+ r = sfn5122f_queue_init_data__tx(b, NOP_CONT, registers, macaddr);
// TODO: handle busy
assert(err_is_ok(r));
}
void cd_request_device_info(struct sfn5122f_binding *b)
{
if (b == NULL) {
- qd_queue_init_data(b, *regframe, d_mac[pci_function], mac_stats);
+ qd_queue_init_data(b, *regframe, d_mac[pci_function]);
return;
}
- idc_queue_init_data(b, *regframe, d_mac[pci_function], mac_stats);
+ idc_queue_init_data(b, *regframe, d_mac[pci_function]);
}
/** Request from queue driver to initialize hardware queue. */
parse_cmdline(argc, argv);
/* Register our device driver */
- printf("SFN5122F register PCI\n");
r = pci_client_connect();
- printf("SFN5122F register PCI end \n");
assert(err_is_ok(r));
r = pci_register_driver_irq(pci_init_card, PCI_CLASS_ETHERNET,
PCI_DONT_CARE, PCI_DONT_CARE,
pci_bus, pci_device, pci_function,
interrupt_handler, NULL);
- printf("SFN5122F register driver end \n");
while (!initialized) {
event_dispatch(get_default_waitset());
}
static void idc_terminate_queue(void);
void qd_queue_init_data(struct sfn5122f_binding *b, struct capref registers,
- uint64_t macaddr, struct capref mac_stat);
+ uint64_t macaddr);
void qd_queue_memory_registered(struct sfn5122f_binding *b);
void qd_write_queue_tails(struct sfn5122f_binding *b);
/** Capability for hardware EV ring */
static struct capref ev_frame;
-/** Capability for MAC statistics */
-static struct capref mac_stats;
//static void* mac_virt;
uint64_t mac_stats_array[NUM_MAC_STATS];
// Callback from device manager
void qd_queue_init_data(struct sfn5122f_binding *b, struct capref registers,
- uint64_t macaddr, struct capref mac_stat)
+ uint64_t macaddr)
{
struct frame_identity frameid = { .base = 0, .bytes = 0 };
errval_t err;
DEBUG_QUEUE("idc_queue_init_data\n");
mac_address = macaddr;
- mac_stats = mac_stat;
// Map device registers
invoke_frame_identify(registers, &frameid);