From ea0e38f6bc1e458b34b11b40c1092036db34f548 Mon Sep 17 00:00:00 2001 From: Richard Henderson Date: Wed, 27 Apr 2011 09:43:00 -0700 Subject: Re-org for Clipper system. --- protos.h | 42 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 protos.h (limited to 'protos.h') 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 */ -- cgit v1.2.1