2 Copyright © 2014, The AROS Development Team. All rights reserved.
11 #include <sys/types.h>
13 void arm_flush_cache(uint32_t addr
, uint32_t length
) {
15 __asm__
__volatile__("mcr p15, 0, %0, c7, c14, 1"::"r"(addr
));
19 __asm__
__volatile__("mcr p15, 0, %0, c7, c10, 4"::"r"(addr
));
22 void arm_icache_invalidate(uint32_t addr
, uint32_t length
) {
24 __asm__
__volatile__("mcr p15, 0, %0, c7, c5, 1"::"r"(addr
));
28 __asm__
__volatile__("mcr p15, 0, %0, c7, c10, 4"::"r"(addr
));
31 void arm_dcache_invalidate(uint32_t addr
, uint32_t length
) {
33 __asm__
__volatile__("mcr p15, 0, %0, c7, c6, 1"::"r"(addr
));
37 __asm__
__volatile__("mcr p15, 0, %0, c7, c10, 4"::"r"(addr
));
40 int32_t strlen(const char *c
) {
48 const char *remove_path(const char *in
) {
49 const char *p
= &in
[strlen(in
)-1];
50 while (p
> in
&& p
[-1] != '/' && p
[-1] != ':') p
--;