mirror of
https://github.com/Stichting-MINIX-Research-Foundation/pkgsrc-ng.git
synced 2025-08-04 02:08:49 -04:00
60 lines
1.3 KiB
C
60 lines
1.3 KiB
C
$NetBSD: patch-arm_warm.c,v 1.1 2015/02/06 02:02:03 jmcneill Exp $
|
|
|
|
--- arm/warm.c.orig 2015-01-06 20:57:45.000000000 +0000
|
|
+++ arm/warm.c
|
|
@@ -42,15 +42,18 @@
|
|
#define WARM_CODE
|
|
#include "warm.h"
|
|
|
|
+#if defined(__linux__)
|
|
/* provided by glibc */
|
|
extern long init_module(void *, unsigned long, const char *);
|
|
extern long delete_module(const char *, unsigned int);
|
|
+#endif
|
|
|
|
static int warm_fd = -1;
|
|
static int kernel_version;
|
|
|
|
static void sys_cacheflush(void *start, void *end)
|
|
{
|
|
+#if defined(__linux__)
|
|
#ifdef __ARM_EABI__
|
|
/* EABI version */
|
|
int num = __ARM_NR_cacheflush;
|
|
@@ -68,12 +71,16 @@ static void sys_cacheflush(void *start,
|
|
"swi %2" : : "r" (start), "r" (end), "i" __ARM_NR_cacheflush
|
|
: "r0", "r1", "r2", "r3");
|
|
#endif
|
|
+#else
|
|
+ __clear_cache(start, end);
|
|
+#endif
|
|
}
|
|
|
|
/* Those are here because system() occasionaly fails on Wiz
|
|
* with errno 12 for some unknown reason */
|
|
static int manual_insmod_26(const char *fname, const char *opts)
|
|
{
|
|
+#if defined(__linux__)
|
|
unsigned long len, read_len;
|
|
int ret = -1;
|
|
void *buff;
|
|
@@ -104,11 +111,18 @@ fail1:
|
|
fail0:
|
|
fclose(f);
|
|
return ret;
|
|
+#else
|
|
+ return -1;
|
|
+#endif
|
|
}
|
|
|
|
static int manual_rmmod(const char *name)
|
|
{
|
|
+#if defined(__linux__)
|
|
return delete_module(name, O_NONBLOCK|O_EXCL);
|
|
+#else
|
|
+ return 0;
|
|
+#endif
|
|
}
|
|
|
|
int warm_init(void)
|