This commit is contained in:
2025-12-15 13:20:58 +01:00
parent 7e02e20878
commit b064038c2d
9 changed files with 27 additions and 10 deletions

View File

@@ -20,7 +20,9 @@ syscall_entry:
cld
; Call the high-level (C++) system call handler
sti
call syscall_handler
cli
; Optional: Prevent kernel information leakage
; by zeroing scratch registers

View File

@@ -36,6 +36,8 @@ namespace Syscall {
* instruction pointer)
* \return system call return value
*/
extern "C" size_t syscall_handler(size_t sysnum, size_t p1, size_t p2,
size_t p3, size_t p4, size_t p5,
InterruptContext *user) {

View File

@@ -68,6 +68,7 @@ size_t read(Vault &vault, uint32_t id, void *buf, size_t len) {
size_t read_cnt = 0;
while(read_cnt <= len){
Key key;
vault.keys_sem.p(vault);
vault.keys.consume(key);
if(key.valid())
((char*)buf)[read_cnt++] = key.ascii();