xref: /aosp_15_r20/external/pciutils/lib/i386-io-djgpp.h (revision c2e0c6b56a71da9abe8df5c8348fb3eb5c2c9251)
1 /*
2  *	The PCI Library -- Access to i386 I/O ports on DJGPP
3  *
4  *	Copyright (c) 2010, 2017 Rudolf Marek <[email protected]>
5  *
6  *	Can be freely distributed and used under the terms of the GNU GPL v2+
7  *
8  *	SPDX-License-Identifier: GPL-2.0-or-later
9  */
10 
11 #include <dos.h>
12 
13 #include "i386-io-access.h"
14 
15 static int irq_enabled;
16 
17 static int
intel_setup_io(struct pci_access * a UNUSED)18 intel_setup_io(struct pci_access *a UNUSED)
19 {
20   return 1;
21 }
22 
23 static inline void
intel_cleanup_io(struct pci_access * a UNUSED)24 intel_cleanup_io(struct pci_access *a UNUSED)
25 {
26 }
27 
intel_io_lock(void)28 static inline void intel_io_lock(void)
29 {
30   asm volatile("" : : : "memory");
31   irq_enabled = disable();
32 }
33 
intel_io_unlock(void)34 static inline void intel_io_unlock(void)
35 {
36   asm volatile("" : : : "memory");
37   if (irq_enabled) {
38     enable();
39   }
40 }
41