uint8_t msix_intdest;
};
-
static bool use_msix = false;
static const char *service_name = "sfn5122f";
static sfn5122f_t *d = NULL;
static size_t cdriver_msix = -1;
static uint8_t cdriver_vector;
+static bool use_interrupt = false;
+
// first to start everything
static bool first = 1;
uint8_t mc_hash[32];
// Filters
+//static uint32_t ip = 175178791;
static uint32_t ip = 0;
enum filter_type_ip {
} else {
reg = sfn5122f_timer_tbl_lo_int_pend_insert(reg, 0);
reg = sfn5122f_timer_tbl_lo_int_armd_insert(reg, 0);
- reg = sfn5122f_timer_tbl_lo_host_notify_mode_insert(reg, 1);
+ if (use_interrupt) {
+ reg = sfn5122f_timer_tbl_lo_host_notify_mode_insert(reg, 0);
+ } else {
+ reg = sfn5122f_timer_tbl_lo_host_notify_mode_insert(reg, 1);
+ }
}
// timer mode disabled
reg = sfn5122f_timer_tbl_lo_timer_mode_insert(reg, 0);
return -1;
}
- DEBUG("RX_QUEUE_%d: buf_off %ld, phys %lx, size %lx \n", n,
- buffer_offset, phys, rx_size);
+ DEBUG("RX_QUEUE_%d: buf_off %ld, phys %lx\n", n,
+ buffer_offset, phys);
/* setup RX queue */
reg_lo = sfn5122f_rx_desc_ptr_tbl_lo_rd(d, n);
reg_hi = sfn5122f_rx_desc_ptr_tbl_hi_rd(d, n);
queue = sfn5122f_int_isr0_reg_lo_rd(d);
DEBUG("AN INTERRUPT OCCURED %d \n", queue);
+
+
+
+
// Don't need to start event queues because we're already polling
}
err = nameservice_register(name, iref);
assert(err_is_ok(err));
DEBUG("Devif Management interface exported\n");
+ initialized = true;
}
init_rx_filter_config();
/* initalize managemnt interface */
initialize_mngif();
- initialized = true;
if (first){
start_all();
while (!initialized) {
event_dispatch(get_default_waitset());
}
+
/* loop myself */
cd_main();
}