summaryrefslogtreecommitdiff
path: root/protos.h
diff options
context:
space:
mode:
authorRichard Henderson <rth@twiddle.net>2011-04-27 09:43:00 -0700
committerRichard Henderson <rth@twiddle.net>2011-04-27 09:43:00 -0700
commitea0e38f6bc1e458b34b11b40c1092036db34f548 (patch)
tree78a8757d7a5d6bc16cce2c63beb652b78dd520a6 /protos.h
parent331e6b4c75dd8095a29ed2991e32a862dc40074b (diff)
downloadqemu-palcode-ea0e38f6bc1e458b34b11b40c1092036db34f548.tar.gz
Re-org for Clipper system.
Diffstat (limited to 'protos.h')
-rw-r--r--protos.h42
1 files changed, 42 insertions, 0 deletions
diff --git a/protos.h b/protos.h
new file mode 100644
index 0000000..6bff767
--- /dev/null
+++ b/protos.h
@@ -0,0 +1,42 @@
+#ifndef PROTOS_H
+#define PROTOS_H 1
+
+/*
+ * Cserve functions.
+ */
+
+static inline unsigned long ldq_p(unsigned long addr)
+{
+ register unsigned long v0 __asm__("$0");
+ register unsigned long a0 __asm__("$16") = 1;
+ register unsigned long a1 __asm__("$17") = addr;
+
+ asm volatile ("call_pal 9"
+ : "=r"(v0), "+r"(a0), "+r"(a1) :
+ : "$18", "$19", "$20", "$21");
+
+ return v0;
+}
+
+static inline unsigned long stq_p(unsigned long port, unsigned long val)
+{
+ register unsigned long v0 __asm__("$0");
+ register unsigned long a0 __asm__("$16") = 4;
+ register unsigned long a1 __asm__("$17") = port;
+ register unsigned long a2 __asm__("$18") = val;
+
+ asm volatile ("call_pal 9"
+ : "=r"(v0), "+r"(a0), "+r"(a1), "+r"(a2) :
+ : "$19", "$20", "$21");
+
+ return v0;
+}
+
+/*
+ * I/O functions
+ */
+
+extern unsigned long inb(unsigned long port);
+extern unsigned long outb(unsigned char val, unsigned long port);
+
+#endif /* PROTOS_H */