rewrite sys_mmap() as sys_new_mmap()
This commit is contained in:
34
kernel/include/mman.h
Normal file
34
kernel/include/mman.h
Normal file
@@ -0,0 +1,34 @@
|
||||
#ifndef HEADER_MMAN_H
|
||||
#define HEADER_MMAN_H
|
||||
|
||||
/*
|
||||
* memory protection
|
||||
*/
|
||||
#define PROT_NONE 0
|
||||
#define PROT_READ 0x01
|
||||
#define PROT_WRITE 0x02
|
||||
#define PROT_EXEC 0x04
|
||||
|
||||
/* for mprotect */
|
||||
#define PROT_GROWSDOWN 0x01000000
|
||||
#define PROT_GROWSUP 0x02000000
|
||||
|
||||
/*
|
||||
* mapping flags
|
||||
*/
|
||||
#define MAP_SHARED 0x01
|
||||
#define MAP_PRIVATE 0x02
|
||||
#define MAP_FIXED 0x10
|
||||
#define MAP_ANONYMOUS 0x20
|
||||
#define MAP_32BIT 0x40
|
||||
#define MAP_GROWSDOWN 0x0100
|
||||
#define MAP_DENYWRITE 0x0800
|
||||
#define MAP_EXECUTABLE 0x1000
|
||||
#define MAP_LOCKED 0x2000
|
||||
#define MAP_NORESERVE 0x4000
|
||||
#define MAP_POPULATE 0x8000
|
||||
#define MAP_NONBLOCK 0x00010000
|
||||
#define MAP_STACK 0x00020000
|
||||
#define MAP_HUGETLB 0x00040000
|
||||
|
||||
#endif /* HEADER_MMAN_H */
|
||||
@@ -13,6 +13,13 @@
|
||||
#define VR_IO_NOCACHE 0x100
|
||||
#define VR_REMOTE 0x200
|
||||
#define VR_DEMAND_PAGING 0x1000
|
||||
#define VR_PROT_NONE 0x00000000
|
||||
#define VR_PROT_READ 0x00010000
|
||||
#define VR_PROT_WRITE 0x00020000
|
||||
#define VR_PROT_EXEC 0x00040000
|
||||
#define VR_PROT_MASK 0x00070000
|
||||
|
||||
#define PROT_TO_VR_FLAG(prot) (((unsigned long)(prot) << 16) & VR_PROT_MASK)
|
||||
|
||||
#define PS_RUNNING 0x1
|
||||
#define PS_INTERRUPTIBLE 0x2
|
||||
@@ -32,7 +39,6 @@
|
||||
struct vm_range {
|
||||
struct list_head list;
|
||||
unsigned long start, end;
|
||||
unsigned long phys;
|
||||
unsigned long flag;
|
||||
};
|
||||
|
||||
@@ -101,6 +107,8 @@ int add_process_memory_range(struct process *process,
|
||||
unsigned long phys, unsigned long flag);
|
||||
int remove_process_memory_range(
|
||||
struct process *process, unsigned long start, unsigned long end);
|
||||
struct vm_range *lookup_process_memory_range(
|
||||
struct process *proc, uintptr_t start, uintptr_t end);
|
||||
int remove_process_region(struct process *proc,
|
||||
unsigned long start, unsigned long end);
|
||||
struct program_load_desc;
|
||||
|
||||
@@ -82,7 +82,11 @@ struct program_image_section {
|
||||
unsigned long len;
|
||||
unsigned long remote_pa;
|
||||
unsigned long filesz, offset;
|
||||
int prot;
|
||||
int padding;
|
||||
#if 0
|
||||
void *source;
|
||||
#endif
|
||||
};
|
||||
|
||||
struct program_load_desc {
|
||||
|
||||
Reference in New Issue
Block a user