abgabe
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -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();
|
||||
|
||||
Reference in New Issue
Block a user