LibXenon
Bare-metal Xbox 360 homebrew library
Loading...
Searching...
No Matches
vm.h
Go to the documentation of this file.
1#ifndef __drivers_ppc_vm_h
2#define __drivers_ppc_vm_h
3
4#include <stdint.h>
5
6// 64K bytes user pages
7
8#define VM_USER_PAGE_BITS 16
9#define VM_USER_PAGE_SIZE (1<<VM_USER_PAGE_BITS)
10#define VM_USER_PAGE_MASK (VM_USER_PAGE_SIZE-1)
11
12#define VM_WIMG_CACHED 0x190
13#define VM_WIMG_GUARDED 0x1B8
14#define VM_WIMG_MODIFIER_READ_ONLY 3
15#define VM_WIMG_CACHED_READ_ONLY (VM_WIMG_CACHED|VM_WIMG_MODIFIER_READ_ONLY)
16#define VM_WIMG_GUARDED_READ_ONLY (VM_WIMG_GUARDED|VM_WIMG_MODIFIER_READ_ONLY)
17
18typedef void* (*vm_segfault_handler_t)(int, void *,void *,int); // processor id, address of the op causing the segfault, accessed address, write?
19 // return value is address of next op, NULL for no change
20
21void vm_create_user_mapping(uint32_t virt_addr, uint64_t phys_addr, int size, int wimg);
22void vm_destroy_user_mapping(uint32_t virt_addr, int size);
23void vm_set_user_mapping_flags(uint32_t virt_addr, int size, int wimg);
25
26#endif
u32 size
Definition: iso9660.c:537
u32 uint32_t
Definition: libfdt_env.h:11
u64 uint64_t
Definition: libfdt_env.h:12
void vm_set_user_mapping_flags(uint32_t virt_addr, int size, int wimg)
Definition: vm.c:90
void vm_set_user_mapping_segfault_handler(vm_segfault_handler_t handler)
Definition: vm.c:110
void vm_destroy_user_mapping(uint32_t virt_addr, int size)
Definition: vm.c:74
void vm_create_user_mapping(uint32_t virt_addr, uint64_t phys_addr, int size, int wimg)
Definition: vm.c:54
void *(* vm_segfault_handler_t)(int, void *, void *, int)
Definition: vm.h:18