summaryrefslogtreecommitdiff
path: root/src/user/app/netstack/netstack.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/user/app/netstack/netstack.c')
-rw-r--r--src/user/app/netstack/netstack.c53
1 files changed, 0 insertions, 53 deletions
diff --git a/src/user/app/netstack/netstack.c b/src/user/app/netstack/netstack.c
deleted file mode 100644
index 2636429..0000000
--- a/src/user/app/netstack/netstack.c
+++ /dev/null
@@ -1,53 +0,0 @@
-#include "proto.h"
-#include "util.h"
-#include <camellia.h>
-#include <camellia/syscalls.h>
-#include <stdbool.h>
-#include <stddef.h>
-#include <stdlib.h>
-#include <string.h>
-#include <thread.h>
-
-struct net_state state = {
- // TODO dynamically get mac
- .mac = {0x52, 0x54, 0x00, 0xCA, 0x77, 0x1A},
-};
-
-void network_thread(void *arg) { (void)arg;
- const size_t buflen = 4096;
- char *buf = malloc(buflen);
- for (;;) {
- long ret = _sys_read(state.raw_h, buf, buflen, -1);
- if (ret < 0) break;
- ether_parse((void*)buf, ret);
- }
- free(buf);
-}
-
-void fs_thread(void *arg);
-
-int main(int argc, char **argv) {
- if (argc < 4) {
- eprintf("usage: netstack iface ip gateway");
- return 1;
- }
- state.raw_h = camellia_open(argv[1], OPEN_RW);
- if (state.raw_h < 0) {
- eprintf("couldn't open %s", argv[1]);
- return 1;
- }
- if (ip_parse(argv[2], &state.ip) < 0) {
- eprintf("invalid ip");
- return -1;
- }
- if (ip_parse(argv[3], &state.gateway) < 0) {
- eprintf("invalid gateway");
- return -1;
- }
- setproctitle(argv[2]);
- arp_request(state.gateway);
- thread_create(0, network_thread, NULL);
- thread_create(0, fs_thread, NULL);
- _sys_await();
- return 0;
-}