cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

io.h (774B)


      1/* SPDX-License-Identifier: GPL-2.0 */
      2#ifndef BOOT_IO_H
      3#define BOOT_IO_H
      4
      5#include <asm/shared/io.h>
      6
      7#undef inb
      8#undef inw
      9#undef inl
     10#undef outb
     11#undef outw
     12#undef outl
     13
     14struct port_io_ops {
     15	u8	(*f_inb)(u16 port);
     16	void	(*f_outb)(u8 v, u16 port);
     17	void	(*f_outw)(u16 v, u16 port);
     18};
     19
     20extern struct port_io_ops pio_ops;
     21
     22/*
     23 * Use the normal I/O instructions by default.
     24 * TDX guests override these to use hypercalls.
     25 */
     26static inline void init_default_io_ops(void)
     27{
     28	pio_ops.f_inb  = __inb;
     29	pio_ops.f_outb = __outb;
     30	pio_ops.f_outw = __outw;
     31}
     32
     33/*
     34 * Redirect port I/O operations via pio_ops callbacks.
     35 * TDX guests override these callbacks with TDX-specific helpers.
     36 */
     37#define inb  pio_ops.f_inb
     38#define outb pio_ops.f_outb
     39#define outw pio_ops.f_outw
     40
     41#endif