And now for some files.
authorRonald G. Minnich <rminnich@google.com>
Thu, 16 Jan 2014 23:26:07 +0000 (15:26 -0800)
committerRonald G. Minnich <rminnich@google.com>
Thu, 16 Jan 2014 23:26:07 +0000 (15:26 -0800)
Signed-off-by: Ronald G. Minnich <rminnich@google.com>
kern/drivers/Kbuild
kern/drivers/dev/Kbuild
kern/drivers/dev/alarm.c
kern/drivers/dev/tab.c
kern/include/ip.h
kern/include/ns.h
kern/src/net/nullmedium.c

index 1ad389c..b896147 100644 (file)
@@ -1 +1,2 @@
 obj-y                                          += net/
+obj-y                                          += dev/
index b878dda..bdaec54 100644 (file)
@@ -1 +1,2 @@
-#obj-y                                         += alarm.o
+obj-y                                          += alarm.o
+obj-y                                          += tab.o
index 5b340a5..f85b232 100644 (file)
@@ -222,7 +222,7 @@ static struct walkqid *alarmwalk(struct chan *c, struct chan *nc, char **name,
        return devwalk(c, nc, name, nname, 0, 0, alarmgen);
 }
 
-static long alarmstat(struct chan *c, uint8_t *db, long n)
+static int alarmstat(struct chan *c, uint8_t *db, int n)
 {
        return devstat(c, db, n, 0, 0, alarmgen);
 }
@@ -289,7 +289,7 @@ static struct chan *alarmopen(struct chan *c, int omode)
        return c;
 }
 
-static void alarmcreate(struct chan *c, char *name, int omode, int perm)
+static void alarmcreate(struct chan *c, char *name, int omode, uint32_t perm)
 {
        error(Eperm);
 }
@@ -299,7 +299,7 @@ static void alarmremove(struct chan *c)
        error(Eperm);
 }
 
-static long alarmwstat(struct chan *c, uint8_t *dp, long n)
+static int alarmwstat(struct chan *c, uint8_t *dp, int n)
 {
        error("No alarmwstat");
        return 0;
@@ -421,6 +421,6 @@ struct dev alarmdevtab = {
        alarmremove,
        alarmwstat,
        devpower,
-       devconfig,
-       devchaninfo,
+       //devconfig,
+       //devchaninfo,
 };
index d494be8..1701e54 100644 (file)
@@ -2,18 +2,18 @@
  * Stub.
  */
 //#define DEBUG
-#include <vfs.h>
-#include <kfs.h>
-#include <slab.h>
 #include <kmalloc.h>
-#include <kref.h>
 #include <string.h>
 #include <stdio.h>
 #include <assert.h>
 #include <error.h>
-#include <cpio.h>
 #include <pmap.h>
+#include <sys/queue.h>
 #include <smp.h>
+#include <kref.h>
+#include <atomic.h>
+#include <alarm.h>
+#include <event.h>
 #include <umem.h>
 
 /* at some point this will be done via ldscript Hackes. */
@@ -21,7 +21,7 @@
 // the sooner the better!
 
 extern struct dev alarmdevtab;
-extern struct dev regressdevtab;
+/*extern struct dev regressdevtab;
 extern struct dev pipedevtab;
 extern struct dev procdevtab;
 extern struct dev miscdevtab;
@@ -30,9 +30,10 @@ extern struct dev rootdevtab;
 extern struct dev ipdevtab;
 extern struct dev mntdevtab;
 extern struct dev srvdevtab;
-extern struct dev vmdevtab;
+extern struct dev vmdevtab;*/
 struct dev *devtab[] = {
        &alarmdevtab,
+/*
        &rootdevtab,
        &miscdevtab,
        &regressdevtab,
@@ -42,7 +43,7 @@ struct dev *devtab[] = {
        &ipdevtab,
        &mntdevtab,
        &srvdevtab,
-       &vmdevtab,
+       &vmdevtab,*/
        NULL,
 };
 
@@ -52,7 +53,7 @@ void devtabreset()
        printk("devtabresets\n");
 
        for (i = 0; devtab[i] != NULL; i++)
-               devtab[i]->reset(current);
+               devtab[i]->reset();
 }
 
 void devtabinit()
@@ -61,7 +62,7 @@ void devtabinit()
 
        printk("devtabinit\n");
        for (i = 0; devtab[i] != NULL; i++)
-               devtab[i]->init(current);
+               devtab[i]->init();
 }
 
 void devtabshutdown()
@@ -73,7 +74,7 @@ void devtabshutdown()
         */
        for (i = 0; devtab[i] != NULL; i++) ;
        for (i--; i >= 0; i--)
-               devtab[i]->shutdown(current);
+               devtab[i]->shutdown();
 }
 
 struct dev *devtabget(int dc, int user)
index c87fd70..e3f400f 100644 (file)
@@ -334,7 +334,7 @@ struct Fs
 /* one per default router known to host */
 struct V6router {
        uint8_t inuse;
-       struct ipifc    *ifc;
+       struct Ipifc    *ifc;
        int     ifcid;
        uint8_t routeraddr[IPaddrlen];
        long    ltorigin;
@@ -440,7 +440,7 @@ struct      RouteTree
        uint8_t depth;
        uint8_t type;
        uint8_t ifcid;          /* must match ifc->id */
-       struct ipifc    *ifc;
+       struct Ipifc    *ifc;
        char    tag[4];
        int     ref;
 };
@@ -516,14 +516,14 @@ struct arpent
        struct arpent   *nextrxt;               /* re-transmit chain */
        unsigned int    rtime;                  /* time for next retransmission */
        uint8_t rxtsrem;
-       struct ipifc    *ifc;
+       struct Ipifc    *ifc;
        uint8_t ifcid;                  /* must match ifc->id */
 };
 
 extern void    arpinit(struct Fs*);
 extern int     arpread(struct arp*, char *unused_char_p_t, uint32_t, int);
 extern int     arpwrite(struct Fs*, char *unused_char_p_t, int);
-extern struct arpent*  arpget(struct arp*, struct block *bp, int version, struct ipifc *ifc, uint8_t *ip,
+extern struct arpent*  arpget(struct arp*, struct block *bp, int version, struct Ipifc *ifc, uint8_t *ip,
                             uint8_t *h);
 extern void    arprelease(struct arp*, struct arpent *a);
 extern struct block*   arpresolve(struct arp*, struct arpent *a,
@@ -577,28 +577,28 @@ extern int        ipforme(struct Fs*, uint8_t *addr);
 extern int     iptentative(struct Fs*, uint8_t *addr);
 extern int     ipisbm(uint8_t *);
 extern int     ipismulticast(uint8_t *);
-extern struct ipifc*   findipifc(struct Fs*, uint8_t *remote, int type);
+extern struct Ipifc*   findipifc(struct Fs*, uint8_t *remote, int type);
 extern void    findprimaryip(struct Fs*, uint8_t *unused_uint8_p_t);
 extern void    findlocalip(struct Fs*, uint8_t *local, uint8_t *remote);
-extern int     ipv4local(struct ipifc *ifc, uint8_t *addr);
-extern int     ipv6local(struct ipifc *ifc, uint8_t *addr);
-extern int     ipv6anylocal(struct ipifc *ifc, uint8_t *addr);
-extern struct iplifc*  iplocalonifc(struct ipifc *ifc, uint8_t *ip);
-extern int     ipproxyifc(struct Fs *f, struct ipifc *ifc, uint8_t *ip);
+extern int     ipv4local(struct Ipifc *ifc, uint8_t *addr);
+extern int     ipv6local(struct Ipifc *ifc, uint8_t *addr);
+extern int     ipv6anylocal(struct Ipifc *ifc, uint8_t *addr);
+extern struct iplifc*  iplocalonifc(struct Ipifc *ifc, uint8_t *ip);
+extern int     ipproxyifc(struct Fs *f, struct Ipifc *ifc, uint8_t *ip);
 extern int     ipismulticast(uint8_t *ip);
 extern int     ipisbooting(void);
-extern int     ipifccheckin(struct ipifc *ifc, struct medium *med);
-extern void    ipifccheckout(struct ipifc *ifc);
-extern int     ipifcgrab(struct ipifc *ifc);
+extern int     ipifccheckin(struct Ipifc *ifc, struct medium *med);
+extern void    ipifccheckout(struct Ipifc *ifc);
+extern int     ipifcgrab(struct Ipifc *ifc);
 extern void    ipifcaddroute(struct Fs*, int unused_int, uint8_t *unused_uint8_p_t, uint8_t*, uint8_t*, int);
 extern void    ipifcremroute(struct Fs*, int unused_int, uint8_t *u8pt, uint8_t *u8pt2);
 extern void    ipifcremmulti(struct conv *c, uint8_t *ma, uint8_t *ia);
 extern void    ipifcaddmulti(struct conv *c, uint8_t *ma, uint8_t *ia);
-extern char*   ipifcrem(struct ipifc *ifc, char **argv, int argc);
-extern char*   ipifcadd(struct ipifc *ifc, char **argv, int argc, int tentative,
+extern char*   ipifcrem(struct Ipifc *ifc, char **argv, int argc);
+extern char*   ipifcadd(struct Ipifc *ifc, char **argv, int argc, int tentative,
                             struct iplifc *lifcp);
 extern long    ipselftabread(struct Fs*, char *a, uint32_t offset, int n);
-extern char*   ipifcaddpref6(struct ipifc *ifc, char**argv, int argc);
+extern char*   ipifcaddpref6(struct Ipifc *ifc, char**argv, int argc);
 extern void    ipsendra6(struct Fs *f, int on);
 
 /*
@@ -609,8 +609,8 @@ extern void icmpnoconv(struct Fs*, struct block*);
 extern void    icmpcantfrag(struct Fs*, struct block*, int);
 extern void    icmpttlexceeded(struct Fs*, uint8_t *unused_uint8_p_t, struct block*);
 extern uint16_t        ipcsum( uint8_t *unused_uint8_p_t);
-extern void    ipiput4(struct Fs*, struct ipifc *unused_ipifc, struct block*);
-extern void    ipiput6(struct Fs*, struct ipifc *unused_ipifc, struct block*);
+extern void    ipiput4(struct Fs*, struct Ipifc *unused_ipifc, struct block*);
+extern void    ipiput6(struct Fs*, struct Ipifc *unused_ipifc, struct block*);
 extern int     ipoput4(struct Fs*,
                          struct block*, int unused_int, int, int, struct conv*);
 extern int     ipoput6(struct Fs*,
@@ -625,13 +625,13 @@ extern uint32_t   restrict_mtu( uint8_t *unused_uint8_p_t, uint32_t);
 /*
  * bootp.c
  */
-char*  (*bootp)(struct ipifc *unused_ipifc);
+char*  (*bootp)(struct Ipifc *unused_ipifc);
 int    (*bootpread)( char *unused_char_p_t, uint32_t, int);
 
 /*
  *  iprouter.c
  */
-void   useriprouter(struct Fs*, struct ipifc *unused_ipifc, struct block*);
+void   useriprouter(struct Fs*, struct Ipifc *unused_ipifc, struct block*);
 void   iprouteropen(struct Fs*);
 void   iprouterclose(struct Fs*);
 long   iprouterread(struct Fs*, void*, int);
@@ -651,7 +651,7 @@ extern struct chan* chandial( char *u1, char*u2, char*u3, struct chan**c);
 /*
  *  global to all of the stack
  */
-extern void    (*igmpreportfn)(struct ipifc *unused_ipifc, uint8_t *unused_uint8_p_t);
+extern void    (*igmpreportfn)(struct Ipifc *unused_ipifc, uint8_t *unused_uint8_p_t);
 
 /* IPV6 */
 /* rfc 3513 defines the address prefices */
@@ -806,11 +806,11 @@ extern void icmpns(struct Fs *f, uint8_t* src, int suni, uint8_t* targ, int tuni
                   uint8_t* mac);
 extern void icmpna(struct Fs *f, uint8_t* src, uint8_t* dst, uint8_t* targ, uint8_t* mac,
                   uint8_t flags);
-extern void icmpttlexceeded6(struct Fs *f, struct ipifc *ifc,
+extern void icmpttlexceeded6(struct Fs *f, struct Ipifc *ifc,
                             struct block *bp);
-extern void icmppkttoobig6(struct Fs *f, struct ipifc *ifc, struct block *bp);
+extern void icmppkttoobig6(struct Fs *f, struct Ipifc *ifc, struct block *bp);
 extern void icmphostunr(struct Fs *f,
-                       struct ipifc *ifc,
+                       struct Ipifc *ifc,
                        struct block *bp, int code, int free);
 
 extern uint8_t v6allnodesN[IPaddrlen];
index a87a631..2316d96 100644 (file)
@@ -955,3 +955,6 @@ char *get_cur_genbuf(void);
 
 /* stuff we really ought to have ... */
 char *index(char *s, int c);
+
+/* hack for now. */
+#define eve "eve"
index f267e2d..9fd290d 100644 (file)
 #include <ip.h>
 
 static void
-nullbind(struct ipifc *unused_ipifc, int unused_int, char **unused_char_pp_t)
+nullbind(struct Ipifc *unused_ipifc, int unused_int, char **unused_char_pp_t)
 {
        error("cannot bind null device");
 }
 
 static void
-nullunbind(struct ipifc *unused_ipifc)
+nullunbind(struct Ipifc *unused_ipifc)
 {
 }
 
 static void
-nullbwrite(struct ipifc *unused_ipifc, struct block*b, int unused_int, uint8_t *unused_uint8_p_t)
+nullbwrite(struct Ipifc *unused_ipifc, struct block*b, int unused_int, uint8_t *unused_uint8_p_t)
 {
        error("nullbwrite");
 }