1*c2e0c6b5SAndroid Build Coastguard Worker /* 2*c2e0c6b5SAndroid Build Coastguard Worker * The PCI Library -- Access to i386 I/O ports on GNU Hurd 3*c2e0c6b5SAndroid Build Coastguard Worker * 4*c2e0c6b5SAndroid Build Coastguard Worker * Copyright (c) 2003 Marco Gerards <[email protected]> 5*c2e0c6b5SAndroid Build Coastguard Worker * Copyright (c) 2003 Martin Mares <[email protected]> 6*c2e0c6b5SAndroid Build Coastguard Worker * Copyright (c) 2006 Samuel Thibault <[email protected]> and 7*c2e0c6b5SAndroid Build Coastguard Worker * Thomas Schwinge <[email protected]> 8*c2e0c6b5SAndroid Build Coastguard Worker * Copyright (c) 2007 Thomas Schwinge <[email protected]> 9*c2e0c6b5SAndroid Build Coastguard Worker * 10*c2e0c6b5SAndroid Build Coastguard Worker * Can be freely distributed and used under the terms of the GNU GPL v2+ 11*c2e0c6b5SAndroid Build Coastguard Worker * 12*c2e0c6b5SAndroid Build Coastguard Worker * SPDX-License-Identifier: GPL-2.0-or-later 13*c2e0c6b5SAndroid Build Coastguard Worker */ 14*c2e0c6b5SAndroid Build Coastguard Worker 15*c2e0c6b5SAndroid Build Coastguard Worker #include <sys/io.h> 16*c2e0c6b5SAndroid Build Coastguard Worker 17*c2e0c6b5SAndroid Build Coastguard Worker #include "i386-io-access.h" 18*c2e0c6b5SAndroid Build Coastguard Worker 19*c2e0c6b5SAndroid Build Coastguard Worker static inline int intel_setup_io(struct pci_access * a UNUSED)20*c2e0c6b5SAndroid Build Coastguard Workerintel_setup_io(struct pci_access *a UNUSED) 21*c2e0c6b5SAndroid Build Coastguard Worker { 22*c2e0c6b5SAndroid Build Coastguard Worker return (ioperm (0, 65535, 1) == -1) ? 0 : 1; 23*c2e0c6b5SAndroid Build Coastguard Worker } 24*c2e0c6b5SAndroid Build Coastguard Worker 25*c2e0c6b5SAndroid Build Coastguard Worker static inline void intel_cleanup_io(struct pci_access * a UNUSED)26*c2e0c6b5SAndroid Build Coastguard Workerintel_cleanup_io(struct pci_access *a UNUSED) 27*c2e0c6b5SAndroid Build Coastguard Worker { 28*c2e0c6b5SAndroid Build Coastguard Worker ioperm (0, 65535, 0); 29*c2e0c6b5SAndroid Build Coastguard Worker } 30*c2e0c6b5SAndroid Build Coastguard Worker intel_io_lock(void)31*c2e0c6b5SAndroid Build Coastguard Workerstatic inline void intel_io_lock(void) 32*c2e0c6b5SAndroid Build Coastguard Worker { 33*c2e0c6b5SAndroid Build Coastguard Worker } 34*c2e0c6b5SAndroid Build Coastguard Worker intel_io_unlock(void)35*c2e0c6b5SAndroid Build Coastguard Workerstatic inline void intel_io_unlock(void) 36*c2e0c6b5SAndroid Build Coastguard Worker { 37*c2e0c6b5SAndroid Build Coastguard Worker } 38