xref: /aosp_15_r20/external/pciutils/lib/i386-io-beos.h (revision c2e0c6b56a71da9abe8df5c8348fb3eb5c2c9251)
1*c2e0c6b5SAndroid Build Coastguard Worker /*
2*c2e0c6b5SAndroid Build Coastguard Worker  *	The PCI Library -- Access to i386 I/O ports on BeOS
3*c2e0c6b5SAndroid Build Coastguard Worker  *
4*c2e0c6b5SAndroid Build Coastguard Worker  *	Copyright (c) 2009 Francois Revol <[email protected]>
5*c2e0c6b5SAndroid Build Coastguard Worker  *
6*c2e0c6b5SAndroid Build Coastguard Worker  *	Can be freely distributed and used under the terms of the GNU GPL v2+
7*c2e0c6b5SAndroid Build Coastguard Worker  *
8*c2e0c6b5SAndroid Build Coastguard Worker  *	SPDX-License-Identifier: GPL-2.0-or-later
9*c2e0c6b5SAndroid Build Coastguard Worker  */
10*c2e0c6b5SAndroid Build Coastguard Worker 
11*c2e0c6b5SAndroid Build Coastguard Worker /* those are private syscalls */
12*c2e0c6b5SAndroid Build Coastguard Worker extern int read_isa_io(int pci_bus, void *addr, int size);
13*c2e0c6b5SAndroid Build Coastguard Worker extern int write_isa_io(int pci_bus, void *addr, int size, u32 value);
14*c2e0c6b5SAndroid Build Coastguard Worker 
15*c2e0c6b5SAndroid Build Coastguard Worker static int
intel_setup_io(struct pci_access * a UNUSED)16*c2e0c6b5SAndroid Build Coastguard Worker intel_setup_io(struct pci_access *a UNUSED)
17*c2e0c6b5SAndroid Build Coastguard Worker {
18*c2e0c6b5SAndroid Build Coastguard Worker   return 1;
19*c2e0c6b5SAndroid Build Coastguard Worker }
20*c2e0c6b5SAndroid Build Coastguard Worker 
21*c2e0c6b5SAndroid Build Coastguard Worker static inline void
intel_cleanup_io(struct pci_access * a UNUSED)22*c2e0c6b5SAndroid Build Coastguard Worker intel_cleanup_io(struct pci_access *a UNUSED)
23*c2e0c6b5SAndroid Build Coastguard Worker {
24*c2e0c6b5SAndroid Build Coastguard Worker }
25*c2e0c6b5SAndroid Build Coastguard Worker 
26*c2e0c6b5SAndroid Build Coastguard Worker static inline u8
intel_inb(u16 port)27*c2e0c6b5SAndroid Build Coastguard Worker intel_inb (u16 port)
28*c2e0c6b5SAndroid Build Coastguard Worker {
29*c2e0c6b5SAndroid Build Coastguard Worker   return (u8)read_isa_io(0, (void *)(u32)port, sizeof(u8));
30*c2e0c6b5SAndroid Build Coastguard Worker }
31*c2e0c6b5SAndroid Build Coastguard Worker 
32*c2e0c6b5SAndroid Build Coastguard Worker static inline u16
intel_inw(u16 port)33*c2e0c6b5SAndroid Build Coastguard Worker intel_inw (u16 port)
34*c2e0c6b5SAndroid Build Coastguard Worker {
35*c2e0c6b5SAndroid Build Coastguard Worker   return (u16)read_isa_io(0, (void *)(u32)port, sizeof(u16));
36*c2e0c6b5SAndroid Build Coastguard Worker }
37*c2e0c6b5SAndroid Build Coastguard Worker 
38*c2e0c6b5SAndroid Build Coastguard Worker static inline u32
intel_inl(u16 port)39*c2e0c6b5SAndroid Build Coastguard Worker intel_inl (u16 port)
40*c2e0c6b5SAndroid Build Coastguard Worker {
41*c2e0c6b5SAndroid Build Coastguard Worker   return (u32)read_isa_io(0, (void *)(u32)port, sizeof(u32));
42*c2e0c6b5SAndroid Build Coastguard Worker }
43*c2e0c6b5SAndroid Build Coastguard Worker 
44*c2e0c6b5SAndroid Build Coastguard Worker static inline void
intel_outb(u8 value,u16 port)45*c2e0c6b5SAndroid Build Coastguard Worker intel_outb (u8 value, u16 port)
46*c2e0c6b5SAndroid Build Coastguard Worker {
47*c2e0c6b5SAndroid Build Coastguard Worker   write_isa_io(0, (void *)(u32)port, sizeof(value), value);
48*c2e0c6b5SAndroid Build Coastguard Worker }
49*c2e0c6b5SAndroid Build Coastguard Worker 
50*c2e0c6b5SAndroid Build Coastguard Worker static inline void
intel_outw(u16 value,u16 port)51*c2e0c6b5SAndroid Build Coastguard Worker intel_outw (u16 value, u16 port)
52*c2e0c6b5SAndroid Build Coastguard Worker {
53*c2e0c6b5SAndroid Build Coastguard Worker   write_isa_io(0, (void *)(u32)port, sizeof(value), value);
54*c2e0c6b5SAndroid Build Coastguard Worker }
55*c2e0c6b5SAndroid Build Coastguard Worker 
56*c2e0c6b5SAndroid Build Coastguard Worker static inline void
intel_outl(u32 value,u16 port)57*c2e0c6b5SAndroid Build Coastguard Worker intel_outl (u32 value, u16 port)
58*c2e0c6b5SAndroid Build Coastguard Worker {
59*c2e0c6b5SAndroid Build Coastguard Worker   write_isa_io(0, (void *)(u32)port, sizeof(value), value);
60*c2e0c6b5SAndroid Build Coastguard Worker }
61*c2e0c6b5SAndroid Build Coastguard Worker 
intel_io_lock(void)62*c2e0c6b5SAndroid Build Coastguard Worker static inline void intel_io_lock(void)
63*c2e0c6b5SAndroid Build Coastguard Worker {
64*c2e0c6b5SAndroid Build Coastguard Worker }
65*c2e0c6b5SAndroid Build Coastguard Worker 
intel_io_unlock(void)66*c2e0c6b5SAndroid Build Coastguard Worker static inline void intel_io_unlock(void)
67*c2e0c6b5SAndroid Build Coastguard Worker {
68*c2e0c6b5SAndroid Build Coastguard Worker }
69