coco3: bring platform up to level 2 w/ coredumps + networking
authorBrett Gordon <beretta42@gmail.com>
Thu, 22 Sep 2016 14:12:34 +0000 (10:12 -0400)
committerBrett Gordon <beretta42@gmail.com>
Thu, 22 Sep 2016 14:12:34 +0000 (10:12 -0400)
Kernel/platform-coco3/Makefile
Kernel/platform-coco3/config.h
Kernel/platform-coco3/devices.c
Kernel/platform-coco3/main.c

index c80441e..04ce096 100644 (file)
@@ -5,15 +5,17 @@ CSRCS += devices.c main.c libc.c devsdc.c
 CDSRCS = ../dev/devide_discard.c
 
 DSRCS = ../dev/devdw.c ../dev/blkdev.c ../dev/devide.c
+NSRCS = ../dev/net/net_native.c
 
 ASRCS = coco3.s crt0.s ../platform-dragon-nx32/ide.s
 ASRCS += tricks.s commonmem.s usermem_gime.s drivewire.s sdc.s videoll.s
 
 COBJS = $(CSRCS:.c=$(BINEXT))
 AOBJS = $(ASRCS:.s=$(BINEXT))
-DOBJS = devdw.o blkdev.o devide.o 
+DOBJS = devdw.o blkdev.o devide.o
+NOBJS = net_native.o
 CDOBJS = $(CDSRCS:.c=$(BINEXT))
-OBJS  = $(COBJS) $(AOBJS) $(DOBJS) $(CDOBJS)
+OBJS  = $(COBJS) $(AOBJS) $(DOBJS) $(CDOBJS) $(NOBJS)
 
 CROSS_CCOPTS += -I../dev/
 
@@ -30,6 +32,9 @@ $(CDOBJS): %$(BINEXT): %.c
 $(DOBJS): %$(BINEXT): ../dev/%.c
        $(CROSS_CC) $(CROSS_CCOPTS) -c $<
 
+$(NOBJS): %$(BINEXT): ../dev/net/%.c
+       $(CROSS_CC) $(CROSS_CCOPTS) -c $<
+
 $(AOBJS): %$(BINEXT): %.s
        $(CROSS_AS) $(ASOPTS) $< -o $*.o
 
@@ -54,7 +59,9 @@ image:
        ../tty.o ../devsys.o ../usermem.o ../syscall_fs2.o ../syscall_exec16.o \
        ../syscall_fs3.o \
        ../usermem_std-6809.o devtty.o libc.o ../vt.o usermem_gime.o video.o \
-       videoll.o dwtime.o 
+       videoll.o dwtime.o \
+       ../level2.o ../syscall_level2.o ../select.o ../syscall_net.o \
+       net_native.o
 
 boot.bin: boot/boot.s
        lwasm -lboot.list -oboot.bin boot/boot.s
index 2460370..3e025cb 100644 (file)
@@ -91,3 +91,8 @@ extern unsigned char vt_map( unsigned char c );
 
 #define CONFIG_RTC        /* enable RTC code */
 #define CONFIG_DWTIME_INTERVAL 10  /* time between dw timer polls in secs */
+
+/* Level 2 groups, coredumps, network */
+#define CONFIG_LEVEL_2
+#define CONFIG_NET
+#define CONFIG_NET_NATIVE
index ea84f95..e2a24ba 100644 (file)
@@ -9,7 +9,7 @@
 #include <blkdev.h>
 #include <devide.h>
 #include <dwtime.h>
-
+#include <netdev.h>
 
 struct devsw dev_tab[] =  /* The device driver switch table */
 {
@@ -24,7 +24,7 @@ struct devsw dev_tab[] =  /* The device driver switch table */
   /* 3: /dev/lpr       Printer devices */
   {  nxio_open,     no_close,    no_rdwr,   no_rdwr,  no_ioctl  },
   /* 4: /dev/mem etc   System devices (one offs) */
-  {  no_open,      no_close,    sys_read, sys_write, sys_ioctl  },
+  {  no_open,      sys_close,    sys_read, sys_write, sys_ioctl  },
   /* Pack to 7 with nxio if adding private devices and start at 8 */
   {  nxio_open,     no_close,    no_rdwr,   no_rdwr,   no_ioctl },
   {  nxio_open,     no_close,    no_rdwr,   no_rdwr,   no_ioctl },
@@ -50,5 +50,6 @@ void device_init(void)
 #endif
        dwtime_init( );
        inittod();
+       sock_init();
 }
 
index c2459b8..ffe004a 100644 (file)
@@ -85,3 +85,20 @@ uint8_t platform_param(char *p)
 {
        return 0;
 }
+
+
+#ifdef CONFIG_LEVEL_2
+
+/* We always use 512 byte paths so no special pathbuf needed */
+
+char *pathbuf(void)
+{
+       return tmpbuf();
+}
+
+void pathfree(char *tb)
+{
+       brelse(tb);
+}
+
+#endif