File:  [ELWIX - Embedded LightWeight unIX -] / embedaddon / pciutils / lib / i386-io-sunos.h
Revision 1.1.1.1 (vendor branch): download - view: text, annotated - select for diffs - revision graph
Fri Feb 17 15:18:43 2012 UTC (13 years, 1 month ago) by misho
Branches: pciutils, MAIN
CVS tags: v3_1_9, HEAD
pciutils

    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>