1: /*
2: * The PCI Library -- Access to i386 I/O ports on BeOS
3: *
4: * Copyright (c) 2009 Francois Revol <revol@free.fr>
5: *
6: * Can be freely distributed and used under the terms of the GNU GPL.
7: */
8:
9: /* those are private syscalls */
10: extern int read_isa_io(int pci_bus, void *addr, int size);
11: extern int write_isa_io(int pci_bus, void *addr, int size, u32 value);
12:
13: static int
14: intel_setup_io(struct pci_access *a UNUSED)
15: {
16: return 1;
17: }
18:
19: static inline int
20: intel_cleanup_io(struct pci_access *a UNUSED)
21: {
22: return 1;
23: }
24:
25: static inline u8
26: inb (u16 port)
27: {
28: return (u8)read_isa_io(0, (void *)(u32)port, sizeof(u8));
29: }
30:
31: static inline u16
32: inw (u16 port)
33: {
34: return (u16)read_isa_io(0, (void *)(u32)port, sizeof(u16));
35: }
36:
37: static inline u32
38: inl (u16 port)
39: {
40: return (u32)read_isa_io(0, (void *)(u32)port, sizeof(u32));
41: }
42:
43: static inline void
44: outb (u8 value, u16 port)
45: {
46: write_isa_io(0, (void *)(u32)port, sizeof(value), value);
47: }
48:
49: static inline void
50: outw (u16 value, u16 port)
51: {
52: write_isa_io(0, (void *)(u32)port, sizeof(value), value);
53: }
54:
55: static inline void
56: outl (u32 value, u16 port)
57: {
58: write_isa_io(0, (void *)(u32)port, sizeof(value), value);
59: }
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>