1 /*---------------------------------------------------------------------------*
2   Project:  Cafe
3   File:     OSMemmap.h
4 
5   Copyright (C) Nintendo.  All rights reserved.
6 
7   These coded instructions, statements, and computer programs contain
8   proprietary information of Nintendo of America Inc. and/or Nintendo
9   Company Ltd., and are protected by Federal copyright law.  They may
10   not be disclosed to third parties or copied or duplicated in any form,
11   in whole or in part, without the prior written consent of Nintendo.
12 
13  *---------------------------------------------------------------------------*/
14 
15 #ifndef __OS_MEMMAP_H__
16 #define __OS_MEMMAP_H__
17 
18 #include <types.h>
19 
20 #ifdef __cplusplus
21 extern "C" {
22 #endif
23 
24 #define	OS_MAP_INVALID	 0
25 #define	OS_MAP_RO	 1
26 #define	OS_MAP_RW	 2
27 #define	OS_MAP_FREE      3
28 #define	OS_MAP_ALLOCATED 4
29 
30 typedef u32	va_t;
31 typedef u32	pa_t;
32 
33 #define OSGetPageSize()		(128 * 1024)
34 
35 va_t	OSAllocVirtAddr(va_t va, size_t size, size_t align);
36 BOOL	OSFreeVirtAddr(va_t va, size_t size);
37 int	OSQueryVirtAddr(va_t va);
38 void	OSGetMapVirtAddrRange(va_t *va, size_t *size);
39 void	OSGetDataPhysAddrRange(pa_t *datapa, size_t *datasize);
40 void	OSGetAvailPhysAddrRange(pa_t *availpa, size_t *availsize);
41 BOOL	OSMapMemory(va_t va, pa_t pa, size_t size, int mode);
42 BOOL	OSUnmapMemory(va_t va, size_t size);
43 
44 #ifdef __cplusplus
45 }
46 #endif
47 
48 #endif // __OS_MEMMAP_H__
49 
50