xref: /aosp_15_r20/external/pciutils/lib/i386-io-sunos.h (revision c2e0c6b56a71da9abe8df5c8348fb3eb5c2c9251)
1*c2e0c6b5SAndroid Build Coastguard Worker /*
2*c2e0c6b5SAndroid Build Coastguard Worker  *	The PCI Library -- Access to i386 I/O ports on Solaris
3*c2e0c6b5SAndroid Build Coastguard Worker  *
4*c2e0c6b5SAndroid Build Coastguard Worker  *	Copyright (c) 2003 Bill Moore <[email protected]>
5*c2e0c6b5SAndroid Build Coastguard Worker  *	Copyright (c) 2003--2006 Martin Mares <[email protected]>
6*c2e0c6b5SAndroid Build Coastguard Worker  *
7*c2e0c6b5SAndroid Build Coastguard Worker  *	Can be freely distributed and used under the terms of the GNU GPL v2+
8*c2e0c6b5SAndroid Build Coastguard Worker  *
9*c2e0c6b5SAndroid Build Coastguard Worker  *	SPDX-License-Identifier: GPL-2.0-or-later
10*c2e0c6b5SAndroid Build Coastguard Worker  */
11*c2e0c6b5SAndroid Build Coastguard Worker 
12*c2e0c6b5SAndroid Build Coastguard Worker #include <sys/sysi86.h>
13*c2e0c6b5SAndroid Build Coastguard Worker #include <sys/psw.h>
14*c2e0c6b5SAndroid Build Coastguard Worker 
15*c2e0c6b5SAndroid Build Coastguard Worker #include "i386-io-access.h"
16*c2e0c6b5SAndroid Build Coastguard Worker 
17*c2e0c6b5SAndroid Build Coastguard Worker static int
intel_setup_io(struct pci_access * a UNUSED)18*c2e0c6b5SAndroid Build Coastguard Worker intel_setup_io(struct pci_access *a UNUSED)
19*c2e0c6b5SAndroid Build Coastguard Worker {
20*c2e0c6b5SAndroid Build Coastguard Worker   return (sysi86(SI86V86, V86SC_IOPL, PS_IOPL) < 0) ? 0 : 1;
21*c2e0c6b5SAndroid Build Coastguard Worker }
22*c2e0c6b5SAndroid Build Coastguard Worker 
23*c2e0c6b5SAndroid Build Coastguard Worker static inline void
intel_cleanup_io(struct pci_access * a UNUSED)24*c2e0c6b5SAndroid Build Coastguard Worker intel_cleanup_io(struct pci_access *a UNUSED)
25*c2e0c6b5SAndroid Build Coastguard Worker {
26*c2e0c6b5SAndroid Build Coastguard Worker   sysi86(SI86V86, V86SC_IOPL, 0);
27*c2e0c6b5SAndroid Build Coastguard Worker }
28*c2e0c6b5SAndroid Build Coastguard Worker 
intel_io_lock(void)29*c2e0c6b5SAndroid Build Coastguard Worker static inline void intel_io_lock(void)
30*c2e0c6b5SAndroid Build Coastguard Worker {
31*c2e0c6b5SAndroid Build Coastguard Worker }
32*c2e0c6b5SAndroid Build Coastguard Worker 
intel_io_unlock(void)33*c2e0c6b5SAndroid Build Coastguard Worker static inline void intel_io_unlock(void)
34*c2e0c6b5SAndroid Build Coastguard Worker {
35*c2e0c6b5SAndroid Build Coastguard Worker }
36