Use netbsd <sys/mman.h>
Change-Id: I80e9cffc80140383a6faf692248573c64d282b4a
This commit is contained in:
@@ -823,20 +823,18 @@
|
||||
|
||||
/* General calls. */
|
||||
#define VM_MMAP (VM_RQ_BASE+10)
|
||||
# define VMM_ADDR m5_l1
|
||||
# define VMM_LEN m5_l2
|
||||
# define VMM_PROT m5_s1
|
||||
# define VMM_FLAGS m5_s2
|
||||
# define VMM_FD m5_i1
|
||||
# define VMM_OFFSET_LO m5_i2
|
||||
# define VMM_FORWHOM m5_l3
|
||||
# define VMM_OFFSET_HI m5_l3
|
||||
# define VMM_RETADDR m5_l1 /* result */
|
||||
#define VM_UMAP (VM_RQ_BASE+11)
|
||||
# define VMU_SEG m1_i1
|
||||
# define VMU_OFFSET m1_p1
|
||||
# define VMU_LENGTH m1_p2
|
||||
# define VMU_RETADDR m1_p3
|
||||
# define VMM_ADDR m_u.m_mmap.addr
|
||||
# define VMM_LEN m_u.m_mmap.len
|
||||
# define VMM_PROT m_u.m_mmap.prot
|
||||
# define VMM_FLAGS m_u.m_mmap.flags
|
||||
# define VMM_FD m_u.m_mmap.fd
|
||||
# define VMM_OFFSET m_u.m_mmap.offset
|
||||
# define VMM_FORWHOM m_u.m_mmap.forwhom
|
||||
# define VMM_RETADDR m_u.m_mmap.retaddr
|
||||
|
||||
#define VM_MUNMAP (VM_RQ_BASE+17)
|
||||
# define VMUM_ADDR m_u.m_mmap.addr
|
||||
# define VMUM_LEN m_u.m_mmap.len
|
||||
|
||||
/* to VM: inform VM about a region of memory that is used for
|
||||
* bus-master DMA
|
||||
@@ -872,10 +870,6 @@
|
||||
# define VMUP_EP m1_i1
|
||||
# define VMUP_VADDR m1_p1
|
||||
|
||||
#define VM_MUNMAP (VM_RQ_BASE+17)
|
||||
# define VMUM_ADDR m1_p1
|
||||
# define VMUM_LEN m1_i1
|
||||
|
||||
/* To VM: map in cache block by FS */
|
||||
#define VM_MAPCACHEPAGE (VM_RQ_BASE+26)
|
||||
|
||||
@@ -919,8 +913,8 @@
|
||||
# define VMRE_FLAGS m1_i3
|
||||
|
||||
#define VM_SHM_UNMAP (VM_RQ_BASE+34)
|
||||
# define VMUN_ENDPT m2_i1
|
||||
# define VMUN_ADDR m2_l1
|
||||
# define VMUN_ENDPT m_u.m_mmap.forwhom
|
||||
# define VMUN_ADDR m_u.m_mmap.addr
|
||||
|
||||
#define VM_GETPHYS (VM_RQ_BASE+35)
|
||||
# define VMPHYS_ENDPT m2_i1
|
||||
|
||||
@@ -114,14 +114,14 @@ _ASSERT_MSG_SIZE(mess_11);
|
||||
|
||||
typedef struct {
|
||||
dev_t dev; /* 64bits long. */
|
||||
void *block;
|
||||
u32_t dev_offset_pages;
|
||||
u32_t ino_offset_pages;
|
||||
u32_t ino;
|
||||
off_t dev_offset;
|
||||
off_t ino_offset;
|
||||
ino_t ino;
|
||||
u32_t *flags_ptr;
|
||||
void *block;
|
||||
u8_t pages;
|
||||
u8_t flags;
|
||||
uint8_t padding[26];
|
||||
uint8_t padding[12];
|
||||
} mess_vmmcp;
|
||||
_ASSERT_MSG_SIZE(mess_vmmcp);
|
||||
|
||||
@@ -134,15 +134,29 @@ typedef struct {
|
||||
_ASSERT_MSG_SIZE(mess_notify);
|
||||
|
||||
typedef struct {
|
||||
endpoint_t who;
|
||||
u32_t offset;
|
||||
off_t offset;
|
||||
void *addr;
|
||||
size_t len;
|
||||
int prot;
|
||||
int flags;
|
||||
int fd;
|
||||
endpoint_t forwhom;
|
||||
void *retaddr;
|
||||
u32_t padding[5];
|
||||
} mess_mmap;
|
||||
_ASSERT_MSG_SIZE(mess_mmap);
|
||||
|
||||
typedef struct {
|
||||
off_t offset;
|
||||
dev_t dev;
|
||||
u32_t ino;
|
||||
ino_t ino;
|
||||
endpoint_t who;
|
||||
u32_t vaddr;
|
||||
u32_t len;
|
||||
u16_t fd;
|
||||
u16_t clearend_and_flags; /* low 12 bits are clearend, rest flags */
|
||||
uint8_t padding[24];
|
||||
u32_t flags;
|
||||
u32_t fd;
|
||||
u16_t clearend;
|
||||
uint8_t padding[8];
|
||||
} mess_vm_vfs_mmap;
|
||||
_ASSERT_MSG_SIZE(mess_vm_vfs_mmap);
|
||||
|
||||
@@ -170,6 +184,7 @@ typedef struct {
|
||||
mess_11 m_m11;
|
||||
mess_vmmcp m_vmmcp;
|
||||
mess_vmmcp_reply m_vmmcp_reply;
|
||||
mess_mmap m_mmap;
|
||||
mess_vm_vfs_mmap m_vm_vfs;
|
||||
mess_notify m_notify; /* notify messages */
|
||||
mess_sigcalls m_sigcalls; /* SYS_{GETKSIG,ENDKSIG,KILL,SIGSEND,SIGRETURN} */
|
||||
|
||||
@@ -23,13 +23,11 @@ int vm_query_exit(endpoint_t *endpt);
|
||||
int vm_watch_exit(endpoint_t ep);
|
||||
int vm_forgetblock(u64_t id);
|
||||
void vm_forgetblocks(void);
|
||||
int minix_vfs_mmap(endpoint_t who, u32_t offset, u32_t len,
|
||||
dev_t dev, u32_t ino, u16_t fd, u32_t vaddr, u16_t clearend, u16_t
|
||||
int minix_vfs_mmap(endpoint_t who, off_t offset, size_t len,
|
||||
dev_t dev, ino_t ino, int fd, u32_t vaddr, u16_t clearend, u16_t
|
||||
flags);
|
||||
|
||||
/* minix vfs mmap flags */
|
||||
#define MVM_LENMASK 0x0FFF
|
||||
#define MVM_FLAGSMASK 0xF000
|
||||
#define MVM_WRITABLE 0x8000
|
||||
|
||||
/* VM kernel request types. */
|
||||
@@ -65,11 +63,11 @@ int vm_info_region(endpoint_t who, struct vm_region_info *vri, int
|
||||
count, vir_bytes *next);
|
||||
int vm_procctl(endpoint_t ep, int param);
|
||||
|
||||
int vm_set_cacheblock(void *block, dev_t dev, u64_t dev_offset,
|
||||
u64_t ino, u64_t ino_offset, u32_t *flags, int blocksize);
|
||||
int vm_set_cacheblock(void *block, dev_t dev, off_t dev_offset,
|
||||
ino_t ino, off_t ino_offset, u32_t *flags, int blocksize);
|
||||
|
||||
void *vm_map_cacheblock(dev_t dev, u64_t dev_offset,
|
||||
u64_t ino, u64_t ino_offset, u32_t *flags, int blocksize);
|
||||
void *vm_map_cacheblock(dev_t dev, off_t dev_offset,
|
||||
ino_t ino, off_t ino_offset, u32_t *flags, int blocksize);
|
||||
|
||||
int vm_clear_cache(dev_t dev);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user