Annotation of embedaddon/pciutils/lib/i386-io-sunos.h, revision 1.1
1.1 ! misho 1: /*
! 2: * The PCI Library -- Access to i386 I/O ports on Solaris
! 3: *
! 4: * Copyright (c) 2003 Bill Moore <billm@eng.sun.com>
! 5: * Copyright (c) 2003--2006 Martin Mares <mj@ucw.cz>
! 6: *
! 7: * Can be freely distributed and used under the terms of the GNU GPL.
! 8: */
! 9:
! 10: #include <sys/sysi86.h>
! 11: #include <sys/psw.h>
! 12:
! 13: static int
! 14: intel_setup_io(struct pci_access *a UNUSED)
! 15: {
! 16: return (sysi86(SI86V86, V86SC_IOPL, PS_IOPL) < 0) ? 0 : 1;
! 17: }
! 18:
! 19: static inline int
! 20: intel_cleanup_io(struct pci_access *a UNUSED)
! 21: {
! 22: /* FIXME: How to switch off I/O port access? */
! 23: return 1;
! 24: }
! 25:
! 26: static inline u8
! 27: inb (u16 port)
! 28: {
! 29: u8 v;
! 30: __asm__ __volatile__ ("inb (%w1)":"=a" (v):"Nd" (port));
! 31: return v;
! 32: }
! 33:
! 34: static inline u16
! 35: inw (u16 port)
! 36: {
! 37: u16 v;
! 38: __asm__ __volatile__ ("inw (%w1)":"=a" (v):"Nd" (port));
! 39: return v;
! 40: }
! 41:
! 42: static inline u32
! 43: inl (u16 port)
! 44: {
! 45: u32 v;
! 46: __asm__ __volatile__ ("inl (%w1)":"=a" (v):"Nd" (port));
! 47: return v;
! 48: }
! 49:
! 50: static inline void
! 51: outb (u8 value, u16 port)
! 52: {
! 53: __asm__ __volatile__ ("outb (%w1)": :"a" (value), "Nd" (port));
! 54: }
! 55:
! 56: static inline void
! 57: outw (u16 value, u16 port)
! 58: {
! 59: __asm__ __volatile__ ("outw (%w1)": :"a" (value), "Nd" (port));
! 60: }
! 61:
! 62: static inline void
! 63: outl (u32 value, u16 port)
! 64: {
! 65: __asm__ __volatile__ ("outl (%w1)": :"a" (value), "Nd" (port));
! 66: }
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>