From 97ce197baac383dcd21ab3c04b13bd07b615daf2 Mon Sep 17 00:00:00 2001 From: Alexander Tsidaev Date: Sun, 31 Jul 2016 23:14:34 +0500 Subject: [PATCH] zx128: disabling microdrive swapping as it is broken for now --- Kernel/platform-zx128/bank128.c | 10 ++++++++++ Kernel/platform-zx128/config.h | 2 +- Kernel/platform-zx128/devfd.c | 2 ++ Kernel/platform-zx128/devices.c | 3 +++ Kernel/platform-zx128/devmdv.c | 5 +++++ Kernel/platform-zx128/main.c | 10 ++++++++++ 6 files changed, 31 insertions(+), 1 deletion(-) diff --git a/Kernel/platform-zx128/bank128.c b/Kernel/platform-zx128/bank128.c index 0a2823e8..a55098e7 100644 --- a/Kernel/platform-zx128/bank128.c +++ b/Kernel/platform-zx128/bank128.c @@ -32,8 +32,10 @@ void pagemap_free(ptptr p) int pagemap_alloc(ptptr p) { +#ifdef SWAPDEV if (pfptr == 0) swapneeded(p, 1); +#endif if (pfptr == 0) return ENOMEM; p->p_page = pfree[--pfptr]; @@ -59,6 +61,9 @@ uint16_t pagemap_mem_used(void) */ int swapout(ptptr p) { +#ifndef SWAPDEV + p; /* to shut the compiler */ +#else uint16_t blk; uint16_t map; @@ -88,6 +93,7 @@ int swapout(ptptr p) p->p_page2 = map; #ifdef DEBUG kprintf("%x: swapout done %d\n", p, p->p_page); +#endif #endif return 0; } @@ -99,6 +105,9 @@ int swapout(ptptr p) */ void swapin(ptptr p, uint16_t map) { +#ifndef SWAPDEV + p;map; /* to shut the compiler */ +#else uint16_t blk = map * SWAP_SIZE; #ifdef DEBUG @@ -124,4 +133,5 @@ void swapin(ptptr p, uint16_t map) #ifdef DEBUG kprintf("%x: swapin done %d\n", p, p->p_page); #endif +#endif } diff --git a/Kernel/platform-zx128/config.h b/Kernel/platform-zx128/config.h index 5b87221b..4928dbb3 100644 --- a/Kernel/platform-zx128/config.h +++ b/Kernel/platform-zx128/config.h @@ -52,7 +52,7 @@ #define NUM_DEV_TTY 1 #define TTYDEV BOOT_TTY /* Device used by kernel for messages, panics */ -#define SWAPDEV 2051 /* Microdrive 3 : FIXME - configure and probe */ +/* #define SWAPDEV 2051 */ /* Microdrive 3 : FIXME - configure and probe */ #define NBUFS 9 /* Number of block buffers */ #define NMOUNTS 4 /* Number of mounts at a time */ #define MAX_BLKDEV 2 /* 2 IDE drives, 1 SD drive */ diff --git a/Kernel/platform-zx128/devfd.c b/Kernel/platform-zx128/devfd.c index dcd2b7a6..e1b017af 100644 --- a/Kernel/platform-zx128/devfd.c +++ b/Kernel/platform-zx128/devfd.c @@ -3,6 +3,8 @@ #include #include +#include "disciple.h" + #define MAX_FD 2 #define OPDIR_NONE 0 diff --git a/Kernel/platform-zx128/devices.c b/Kernel/platform-zx128/devices.c index bc9b2963..72a43e21 100644 --- a/Kernel/platform-zx128/devices.c +++ b/Kernel/platform-zx128/devices.c @@ -48,7 +48,10 @@ void device_init(void) #ifdef CONFIG_IDE devide_init(); #endif + +#ifdef SWAPDEV /* Hack for now - we need to open the swap to get the map. Should we open swap nicely somewhere generic ? */ d_open(SWAPDEV, 0); +#endif } diff --git a/Kernel/platform-zx128/devmdv.c b/Kernel/platform-zx128/devmdv.c index 3fd7cd63..2fb1156d 100644 --- a/Kernel/platform-zx128/devmdv.c +++ b/Kernel/platform-zx128/devmdv.c @@ -58,11 +58,16 @@ static int mdv_transfer(uint8_t minor, bool is_read, uint8_t rawflag) block = udata.u_offset >> 9; mdv_page = udata.u_page; } else { +#ifdef SWAPDEV /* Microdrive swap awesomeness */ mdv_buf = swapbase; nblock = swapcnt >> 9; block = swapblk; mdv_page = swappage; +#else + /* Attempt to swap when swapping is disabled */ + goto bad; +#endif } irq = di(); diff --git a/Kernel/platform-zx128/main.c b/Kernel/platform-zx128/main.c index e02ff2f9..614d16be 100644 --- a/Kernel/platform-zx128/main.c +++ b/Kernel/platform-zx128/main.c @@ -9,10 +9,12 @@ uint16_t ramtop = PROGTOP; void pagemap_init(void) { +#ifdef SWAPDEV /* Swap */ swapmap_add(0); swapmap_add(1); swapmap_add(2); +#endif } /* On idle we spin checking for the terminals. Gives us more responsiveness @@ -42,3 +44,11 @@ void platform_interrupt(void) void map_init(void) { } + +#ifndef SWAPDEV +/* Adding dummy swapper since it is referenced by tricks.s */ +void swapper(ptptr p) +{ + p; +} +#endif \ No newline at end of file -- 2.34.1