diff --git a/sys/kernel/init_main.c b/sys/kernel/init_main.c index 37e50453..41af591e 100644 --- a/sys/kernel/init_main.c +++ b/sys/kernel/init_main.c @@ -108,7 +108,6 @@ main() startup(); printf ("\n%s", version); kconfig(); - cnidentify(); /* * Set up system process 0 (swapper). diff --git a/sys/pic32/cons.c b/sys/pic32/cons.c index 2b406503..3966f216 100644 --- a/sys/pic32/cons.c +++ b/sys/pic32/cons.c @@ -14,49 +14,48 @@ #include #include -dev_t console_device = -1; - struct tty cnttys [1]; -void cninit() +int cnopen(dev_t cn, int flag, int mode) { - console_device = makedev(CONS_MAJOR, CONS_MINOR); -} + dev_t dev = makedev(CONS_MAJOR, CONS_MINOR); -void cnidentify() -{ - //printf ("console: %s (%d,%d)\n", cdevname(console_device), - // CONS_MAJOR, CONS_MINOR); + return cdevsw[CONS_MAJOR].d_open(dev, flag, mode); } -int cnopen(dev_t dev, int flag, int mode) +int cnclose (dev_t cn, int flag, int mode) { - return cdevsw[CONS_MAJOR].d_open(console_device, flag, mode); -} + dev_t dev = makedev(CONS_MAJOR, CONS_MINOR); -int cnclose (dev_t dev, int flag, int mode) -{ - return cdevsw[CONS_MAJOR].d_close(console_device, flag, mode); + return cdevsw[CONS_MAJOR].d_close(dev, flag, mode); } -int cnread(dev_t dev,register struct uio *uio, int flag) +int cnread(dev_t cn, struct uio *uio, int flag) { - return cdevsw[CONS_MAJOR].d_read(console_device, uio, flag); + dev_t dev = makedev(CONS_MAJOR, CONS_MINOR); + + return cdevsw[CONS_MAJOR].d_read(dev, uio, flag); } -int cnwrite(dev_t dev,register struct uio *uio, int flag) +int cnwrite(dev_t cn, struct uio *uio, int flag) { - return cdevsw[CONS_MAJOR].d_write(console_device, uio, flag); + dev_t dev = makedev(CONS_MAJOR, CONS_MINOR); + + return cdevsw[CONS_MAJOR].d_write(dev, uio, flag); } -int cnselect(dev_t dev, int rw) +int cnselect(dev_t cn, int rw) { - return cdevsw[CONS_MAJOR].d_select(console_device, rw); + dev_t dev = makedev(CONS_MAJOR, CONS_MINOR); + + return cdevsw[CONS_MAJOR].d_select(dev, rw); } -int cnioctl(dev_t dev, register u_int cmd, caddr_t addr, int flag) +int cnioctl(dev_t cn, u_int cmd, caddr_t addr, int flag) { - return cdevsw[CONS_MAJOR].d_ioctl(console_device, cmd, addr, flag); + dev_t dev = makedev(CONS_MAJOR, CONS_MINOR); + + return cdevsw[CONS_MAJOR].d_ioctl(dev, cmd, addr, flag); } /* @@ -65,7 +64,9 @@ int cnioctl(dev_t dev, register u_int cmd, caddr_t addr, int flag) void cnputc(char c) { if (cdevsw[CONS_MAJOR].r_write) { - cdevsw[CONS_MAJOR].r_write(console_device, c); + dev_t dev = makedev(CONS_MAJOR, CONS_MINOR); + + cdevsw[CONS_MAJOR].r_write(dev, c); } else { putc(c, &cdevsw[CONS_MAJOR].d_ttys[CONS_MINOR].t_outq); ttstart(&cdevsw[CONS_MAJOR].d_ttys[CONS_MINOR]); @@ -78,10 +79,12 @@ void cnputc(char c) /* * Receive a symbol from console terminal. */ -int cngetc () +int cngetc() { if (cdevsw[CONS_MAJOR].r_read) { - return cdevsw[CONS_MAJOR].r_read(console_device); + dev_t dev = makedev(CONS_MAJOR, CONS_MINOR); + + return cdevsw[CONS_MAJOR].r_read(dev); } else { return getc(&cdevsw[CONS_MAJOR].d_ttys[CONS_MINOR].t_rawq); } diff --git a/sys/pic32/cpu.h b/sys/pic32/cpu.h index 4916213e..d8a641c3 100644 --- a/sys/pic32/cpu.h +++ b/sys/pic32/cpu.h @@ -19,7 +19,9 @@ #define CPU_TIMO_WAIT_WDONE 10 #define CPU_TIMO_WAIT_WSTOP 11 #define CPU_TIMO_WAIT_WIDLE 12 -#define CPU_MAXID 13 /* number of valid machdep ids */ +#define CPU_FREQ_KHZ 13 /* processor clock in kHz */ +#define CPU_BUS_KHZ 14 /* i/o bus clock in kHz */ +#define CPU_MAXID 15 /* number of valid machdep ids */ #ifndef KERNEL #define CTL_MACHDEP_NAMES { \ @@ -36,5 +38,7 @@ { "sd_timeout_wait_wdone", CTLTYPE_INT }, \ { "sd_timeout_wait_wstop", CTLTYPE_INT }, \ { "sd_timeout_wait_widle", CTLTYPE_INT }, \ + { "cpu_khz", CTLTYPE_INT }, \ + { "bus_khz", CTLTYPE_INT }, \ } #endif diff --git a/sys/pic32/machdep.c b/sys/pic32/machdep.c index 599885c7..9e8e73c2 100644 --- a/sys/pic32/machdep.c +++ b/sys/pic32/machdep.c @@ -404,10 +404,6 @@ startup() #if CONS_MAJOR == UARTUSB_MAJOR usbinit(); #endif -#if CONS_MAJOR == HXTFT_MAJOR - hx8357_init(); -#endif - cninit(); /* Get total RAM size. */ physmem = BMXDRMSZ; diff --git a/sys/pic32/sysctl.c b/sys/pic32/sysctl.c index e8241507..ab4e625d 100644 --- a/sys/pic32/sysctl.c +++ b/sys/pic32/sysctl.c @@ -290,14 +290,15 @@ cpu_sysctl (name, namelen, oldp, oldlenp, newp, newlen) void *newp; size_t newlen; { - int i; + int i, khz; + dev_t dev; switch (name[0]) { case CPU_CONSDEV: if (namelen != 1) return ENOTDIR; - return sysctl_rdstruct (oldp, oldlenp, newp, - &cnttys[0].t_dev, sizeof &cnttys[0].t_dev); + dev = makedev(CONS_MAJOR, CONS_MINOR); + return sysctl_rdstruct (oldp, oldlenp, newp, &dev, sizeof dev); #if NTMSCP > 0 case CPU_TMSCP: /* All sysctl names at this level are terminal */ @@ -356,6 +357,17 @@ cpu_sysctl (name, namelen, oldp, oldlenp, newp, newlen) case CPU_TIMO_WAIT_WIDLE: return sysctl_int(oldp, oldlenp, newp, newlen, &sd_timo_wait_widle); + case CPU_FREQ_KHZ: + if (namelen != 1) + return ENOTDIR; + khz = CPU_KHZ; + return sysctl_rdstruct (oldp, oldlenp, newp, &khz, sizeof khz); + case CPU_BUS_KHZ: + if (namelen != 1) + return ENOTDIR; + khz = BUS_KHZ; + return sysctl_rdstruct (oldp, oldlenp, newp, &khz, sizeof khz); + default: return EOPNOTSUPP; }