aboutsummaryrefslogtreecommitdiff
path: root/gator_events_net.c
diff options
context:
space:
mode:
Diffstat (limited to 'gator_events_net.c')
-rw-r--r--gator_events_net.c45
1 files changed, 21 insertions, 24 deletions
diff --git a/gator_events_net.c b/gator_events_net.c
index 15a395e..a921586 100644
--- a/gator_events_net.c
+++ b/gator_events_net.c
@@ -101,22 +101,6 @@ static int gator_events_net_create_files(struct super_block *sb, struct dentry *
return 0;
}
-static int gator_events_net_init(int *key)
-{
- netdrv_key = *key;
- *key = *key + 1;
- netrx_key = *key;
- *key = *key + 1;
- nettx_key = *key;
- *key = *key + 1;
-
- netdrv_enabled = 0;
- netrx_enabled = 0;
- nettx_enabled = 0;
-
- return 0;
-}
-
static int gator_events_net_start(void)
{
get_network_stats(NULL);
@@ -138,7 +122,7 @@ static int gator_events_net_read(int **buffer)
int len, drv_delta, rx_delta, tx_delta;
static int last_drv_delta = 0, last_rx_delta = 0, last_tx_delta = 0;
- if (raw_smp_processor_id() != 0)
+ if (smp_processor_id() != 0)
return 0;
schedule_work(&wq_get_stats);
@@ -169,12 +153,25 @@ static int gator_events_net_read(int **buffer)
return len;
}
-int gator_events_net_install(gator_interface *gi) {
- gi->create_files = gator_events_net_create_files;
- gi->init = gator_events_net_init;
- gi->start = gator_events_net_start;
- gi->stop = gator_events_net_stop;
- gi->read = gator_events_net_read;
+static struct gator_interface gator_events_net_interface = {
+ .create_files = gator_events_net_create_files,
+ .start = gator_events_net_start,
+ .stop = gator_events_net_stop,
+ .read = gator_events_net_read,
+};
+
+int gator_events_net_init(void)
+{
gator_net_traffic++;
- return 0;
+
+ netdrv_key = gator_events_get_key();
+ netrx_key = gator_events_get_key();
+ nettx_key = gator_events_get_key();
+
+ netdrv_enabled = 0;
+ netrx_enabled = 0;
+ nettx_enabled = 0;
+
+ return gator_events_install(&gator_events_net_interface);
}
+gator_events_init(gator_events_net_init);