File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 5252#define __io_pbw () __asm__ __volatile__ ("fence iow,o" : : : "memory");
5353#define __io_paw () __asm__ __volatile__ ("fence o,io" : : : "memory");
5454
55- #define inb (c ) ({ u8 __v; __io_pbr(); __v = readb_cpu((void*)(PCI_IOBASE + (c))); __io_par(__v); __v; })
56- #define inw (c ) ({ u16 __v; __io_pbr(); __v = readw_cpu((void*)(PCI_IOBASE + (c))); __io_par(__v); __v; })
57- #define inl (c ) ({ u32 __v; __io_pbr(); __v = readl_cpu((void*)(PCI_IOBASE + (c))); __io_par(__v); __v; })
58-
59- #define outb (v ,c ) ({ __io_pbw(); writeb_cpu((v),(void*)(PCI_IOBASE + (c))); __io_paw(); })
60- #define outw (v ,c ) ({ __io_pbw(); writew_cpu((v),(void*)(PCI_IOBASE + (c))); __io_paw(); })
61- #define outl (v ,c ) ({ __io_pbw(); writel_cpu((v),(void*)(PCI_IOBASE + (c))); __io_paw(); })
62-
63- #ifdef CONFIG_64BIT
64- #define inq (c ) ({ u64 __v; __io_pbr(); __v = readq_cpu((void*)(c)); __io_par(__v); __v; })
65- #define outq (v ,c ) ({ __io_pbw(); writeq_cpu((v),(void*)(c)); __io_paw(); })
66- #endif
67-
6855/*
6956 * Accesses from a single hart to a single I/O address must be ordered. This
7057 * allows us to use the raw read macros, but we still need to fence before and
You can’t perform that action at this time.
0 commit comments