diff options
author | Richard Henderson <rth@twiddle.net> | 2011-04-27 09:43:00 -0700 |
---|---|---|
committer | Richard Henderson <rth@twiddle.net> | 2011-04-27 09:43:00 -0700 |
commit | ea0e38f6bc1e458b34b11b40c1092036db34f548 (patch) | |
tree | 78a8757d7a5d6bc16cce2c63beb652b78dd520a6 /protos.h | |
parent | 331e6b4c75dd8095a29ed2991e32a862dc40074b (diff) | |
download | qemu-palcode-ea0e38f6bc1e458b34b11b40c1092036db34f548.tar.gz |
Re-org for Clipper system.
Diffstat (limited to 'protos.h')
-rw-r--r-- | protos.h | 42 |
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 */ |