libk  Check-in [e50a476efe]

Overview
Comment:removed sneaky segfault in x86-64 syscall fn where %r8 (the register that contains the pointer to the syscall arguments from the C syscall wrapper, which need to be copied into the correct registers before the kernel is invoked) gets overwritten if the syscall valency > 5, because of overlapping ccall and syscall ABI argument registers - r8 is clobbered by argument 5 and any further attempts to use it as a ptr segfault at best. also modified the report function so that it immediate cancels compilation if a sub-process reports failure. changed allocator function signatures so they can return a condition code if the kernel reports an error; updated example code so it compiles and runs without fault.
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA3-256: e50a476efef720ed926f519a291311b560264f46d8deb86a3b7cf4f76d997c9c
User & Date: lexi on 2019-08-22 02:52:20
Other Links: manifest | tags
Context
2019-08-22
04:31
finish moving heap allocation/free functions to the posix syscall apparatus and deprecate the direct assembly implementations of platform_mmap; update the kmem docs to match new function signatures (and remove typos) check-in: 709ffb094d user: lexi tags: trunk
02:52
removed sneaky segfault in x86-64 syscall fn where %r8 (the register that contains the pointer to the syscall arguments from the C syscall wrapper, which need to be copied into the correct registers before the kernel is invoked) gets overwritten if the syscall valency > 5, because of overlapping ccall and syscall ABI argument registers - r8 is clobbered by argument 5 and any further attempts to use it as a ptr segfault at best. also modified the report function so that it immediate cancels compilation if a sub-process reports failure. changed allocator function signatures so they can return a condition code if the kernel reports an error; updated example code so it compiles and runs without fault. check-in: e50a476efe user: lexi tags: trunk
01:37
add first iteration of knum header check-in: 5560c2725b user: lexi tags: trunk
Changes

Modified arch/posix/errnos from [cc3bf9e501] to [1054d9a4df].    [diff]

Modified build.sh from [d7b4907031] to [b5a70ac75f].    [diff]

Modified global/common.sh from [e60df5a627] to [582c735deb].    [diff]

Modified mod/kcore/syscall.fn.x86.lin.64.s from [472ad3a7d3] to [9bf0ba9bf3].    [diff]

Modified mod/kcore/testbin.exe.c from [c4d82c1a4a] to [ae0ed8cd11].    [diff]

Modified mod/kmem/heapa.fn.c from [641176b71f] to [e093792a2c].    [diff]

Modified mod/kmem/heapao.fn.c from [930b5d7379] to [e98ef79662].    [diff]

Modified mod/kmem/mem.h from [bec7e80543] to [d8d36f64f5].    [diff]