summaryrefslogtreecommitdiff
path: root/src/kernel/ipc/shm.h
blob: b409955e18500e37b00f8e74b1e9c7d23f87fff6 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#ifndef DEF_SHM_H
#define DEF_SHM_H

#include <task/task.h>

struct shmseg {
	size_t len;
	uint32_t *frames;
	struct process* owner;
};

//Shared memory segment stuff
struct segment* shmseg_make(size_t len, struct process* owner);
struct segment_map* shmseg_map(struct segment* seg, struct page_directory *pagedir, size_t offset);
void shmseg_unmap(struct segment_map*);
void shmseg_delete(struct segment *seg);
int shmseg_handleFault(struct segment_map *map, size_t addr, int write);

//Shared memory syscalls
void shm_create(size_t offset, size_t len);
void shm_delete(size_t offset);

#endif