aboutsummaryrefslogtreecommitdiff
path: root/src/kernel/include/process.h
diff options
context:
space:
mode:
authorAlex Auvolat <alex.auvolat@ens.fr>2015-02-13 22:44:10 +0100
committerAlex Auvolat <alex.auvolat@ens.fr>2015-02-13 22:44:10 +0100
commit706c69d40fcc46e7d7f170dab932d3c7fcc7c34e (patch)
tree5248ff8712eced5bc4fdd76e9399654ce5224a37 /src/kernel/include/process.h
parent47e6cd42f0744f6c04b8347093f6549339a856c9 (diff)
downloadkogata-706c69d40fcc46e7d7f170dab932d3c7fcc7c34e.tar.gz
kogata-706c69d40fcc46e7d7f170dab932d3c7fcc7c34e.zip
Begin implementation of syscalls.
Diffstat (limited to 'src/kernel/include/process.h')
-rw-r--r--src/kernel/include/process.h7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/kernel/include/process.h b/src/kernel/include/process.h
index 661aaa6..82ba8dd 100644
--- a/src/kernel/include/process.h
+++ b/src/kernel/include/process.h
@@ -35,15 +35,22 @@ process_t *new_process(process_t *parent);
// void delete_process(process_t *p); // TODO define semantics for freeing stuff
pagedir_t *proc_pagedir(process_t *p);
+int proc_pid(process_t *p);
bool start_process(process_t *p, proc_entry_t entry); // maps a region for user stack
bool proc_add_fs(process_t *p, fs_t *fs, const char* name);
fs_t *proc_find_fs(process_t *p, const char* name);
+bool proc_rm_fs(process_t *p, const char* name);
bool mmap(process_t *proc, void* addr, size_t size, int mode); // create empty zone
bool mmap_file(process_t *proc, fs_handle_t *h, size_t offset, void* addr, size_t size, int mode);
bool mchmap(process_t *proc, void* addr, int mode);
bool munmap(process_t *proc, void* addr);
+// for syscalls : check that process is authorized to do that
+// (if not, process exits with a segfault)
+void probe_for_read(const void* addr, size_t len);
+void probe_for_write(const void* addr, size_t len);
+
/* vim: set ts=4 sw=4 tw=0 noet :*/