1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
|
avoid using C library headers as it'd mean we'd need 32-bit glibc files available
https://bugs.gentoo.org/592638
--- a/dmi.c
+++ b/dmi.c
@@ -10,7 +10,7 @@
#include "test.h"
-#include <stdint.h>
+#include "stdint.h"
#define round_up(x,y) (((x) + (y) - 1) & ~((y)-1))
--- a/test.c
+++ b/test.c
@@ -14,7 +14,28 @@
#include "stdint.h"
#include "cpuid.h"
#include "smp.h"
-#include <sys/io.h>
+
+static inline unsigned char
+inb_p (unsigned short int __port)
+{
+ unsigned char _v;
+
+ __asm__ __volatile__ ("inb %w1,%0\noutb %%al,$0x80":"=a" (_v):"Nd" (__port));
+ return _v;
+}
+
+static inline void
+outb (unsigned char __value, unsigned short int __port)
+{
+ __asm__ __volatile__ ("outb %b0,%w1": :"a" (__value), "Nd" (__port));
+}
+
+static inline void
+outb_p (unsigned char __value, unsigned short int __port)
+{
+ __asm__ __volatile__ ("outb %b0,%w1\noutb %%al,$0x80": :"a" (__value),
+ "Nd" (__port));
+}
extern struct cpu_ident cpu_id;
extern volatile int mstr_cpu;
|