1 /* 2 * Copyright 2006, Ingo Weinhold <bonefish@cs.tu-berlin.de>. 3 * All rights reserved. Distributed under the terms of the MIT License. 4 */ 5 6 #ifndef _KERNEL_GENERIC_VM_PHYSICAL_PAGE_MAPPER_H 7 #define _KERNEL_GENERIC_VM_PHYSICAL_PAGE_MAPPER_H 8 9 #include <boot/kernel_args.h> 10 11 #ifdef __cplusplus 12 extern "C" { 13 #endif 14 15 typedef status_t (*generic_map_iospace_chunk_func)(addr_t, addr_t); 16 17 status_t generic_get_physical_page(addr_t pa, addr_t *va, uint32 flags); 18 status_t generic_put_physical_page(addr_t va); 19 status_t generic_vm_physical_page_mapper_init(kernel_args *args, 20 generic_map_iospace_chunk_func mapIOSpaceChunk, addr_t *ioSpaceBase, 21 size_t ioSpaceSize, size_t ioSpaceChunkSize); 22 status_t generic_vm_physical_page_mapper_init_post_area(kernel_args *args); 23 status_t generic_vm_physical_page_mapper_init_post_sem(kernel_args *args); 24 25 #ifdef __cplusplus 26 } 27 #endif 28 29 #endif // _KERNEL_GENERIC_VM_PHYSICAL_PAGE_MAPPER_H 30