drew@everexn.com (Drew Rogge) (12/22/90)
I haven't seen a fix for this on the net yet so here goes...
Below you'll find a patch to MacMinix kernel/memory.c. This patch
fixes the problem which causes 'ps' gives the error message:
Can't get kernel proc table from /dev/kmem: Error 0
The problem is that 'sizes' is an array of unsigned shorts and
the addition of sizes[0] and sizes[1] (in my case sizes[0] == 287 and
sizes[1] == 225) yields an unsigned short ( == 512) which, when shifted
over by CLICK_SHIFT (8), turns out to be 0... So much for the size
of kernel memory. Note that this problem is very dependent on the
size of the kernel I&D space. If either of the code or data sizes
of my kernal had been one click smaller, then the problem wouldn't
have appeared.
Hope this helps someone out.
Drew Rogge
...!uunet!everexn!drew
--- cut here ---
*** memory.c Thu Dec 20 21:23:55 1990
--- memory.c00 Thu Dec 20 21:24:50 1990
***************
*** 52,58 ****
/* Initialize this task. */
ram_origin[KMEM_DEV] = code_base;
! ram_limit[KMEM_DEV] = code_base + (((phys_bytes)(sizes[0] + sizes[1])) << CLICK_SHIFT);
#if (CHIP == INTEL)
if (!protected_mode)
ram_limit[MEM_DEV] = 0x100000; /* above 1M em_xfer word count fails */
--- 52,58 ----
/* Initialize this task. */
ram_origin[KMEM_DEV] = code_base;
! ram_limit[KMEM_DEV] = code_base + ((sizes[0] + sizes[1]) << CLICK_SHIFT);
#if (CHIP == INTEL)
if (!protected_mode)
ram_limit[MEM_DEV] = 0x100000; /* above 1M em_xfer word count fails */
--- end of patch ---