078df4991213da5d82a0d4b44c8afeb3d33e36ae
[AROS.git] / arch / m68k-all / kernel / mapglobal.c
blob078df4991213da5d82a0d4b44c8afeb3d33e36ae
1 #include <aros/kernel.h>
2 #include <aros/libcall.h>
4 #include <kernel_base.h>
5 #include <kernel_intern.h>
7 /*****************************************************************************
9 NAME */
10 #include <proto/kernel.h>
12 AROS_LH4(int, KrnMapGlobal,
14 /* SYNOPSIS */
15 AROS_LHA(void *, virtual, A0),
16 AROS_LHA(void *, physical, A1),
17 AROS_LHA(uint32_t, length, D0),
18 AROS_LHA(KRN_MapAttr, flags, D1),
20 /* LOCATION */
21 struct KernelBase *, KernelBase, 16, Kernel)
23 /* FUNCTION
25 INPUTS
27 RESULT
29 NOTES
31 EXAMPLE
33 BUGS
35 SEE ALSO
37 INTERNALS
39 ******************************************************************************/
41 AROS_LIBFUNC_INIT
43 BOOL invalid = (flags & (MAP_Readable | MAP_Writable | MAP_Executable)) == 0;
44 BOOL readonly = (flags & MAP_Writable) == 0;
45 BOOL supervisor = (flags & MAP_Supervisor) != 0;
46 UBYTE cm = (flags & MAP_CacheInhibit) ? CM_SERIALIZED : ((flags & MAP_WriteThrough) ? CM_WRITETHROUGH : CM_COPYBACK);
48 return map_region(KernelBase, virtual, physical, length, invalid, readonly, supervisor, cm);
50 AROS_LIBFUNC_EXIT