Use linker functions for NIC and medium pre-init
[akaros.git] / kern / src / net / netlog.c
index 6126de9..3e6e8db 100644 (file)
@@ -81,12 +81,15 @@ void
 netloginit(struct Fs *f)
 {
        f->alog = kzmalloc(sizeof(struct Netlog), 0);
+       spinlock_init(&f->alog->lock);
+       qlock_init(&f->alog->qlock);
+       rendez_init(&f->alog->r);
 }
 
 void
 netlogopen(struct Fs *f)
 {
-       ERRSTACK(2);
+       ERRSTACK(1);
        spin_lock(&f->alog->lock);
        if(waserror()){
                spin_unlock(&f->alog->lock);
@@ -106,7 +109,7 @@ netlogopen(struct Fs *f)
 void
 netlogclose(struct Fs *f)
 {
-       ERRSTACK(2);
+       ERRSTACK(1);
        spin_lock(&f->alog->lock);
        if(waserror()){
                spin_unlock(&f->alog->lock);
@@ -132,7 +135,7 @@ netlogready(void *a)
 long
 netlogread(struct Fs *f, void *a, uint32_t unused, long n)
 {
-       ERRSTACK(2);
+       ERRSTACK(1);
        int i, d;
        char *p, *rptr;
 
@@ -178,7 +181,7 @@ netlogread(struct Fs *f, void *a, uint32_t unused, long n)
 void
 netlogctl(struct Fs *f, char* s, int n)
 {
-       ERRSTACK(2);
+       ERRSTACK(1);
        int i, set = 0;
        Netlogflag *fp;
        struct cmdbuf *cb;
@@ -211,6 +214,7 @@ netlogctl(struct Fs *f, char* s, int n)
                else
                        f->alog->iponlyset = 1;
                kfree(cb);
+               poperror();
                return;
 
        default: