summaryrefslogtreecommitdiff
path: root/src/kernel/ipc/shm.h
blob: 895a6197bd307c50437f04083921aa5a2c8598e6 (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
25
26
27
#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);

		//find a shared memory segment in current address space by its offset
struct segment_map* shmseg_getByOff(struct process* pr, size_t offset);	

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

#endif