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 (724B)


      1/* SPDX-License-Identifier: GPL-2.0 */
      2#ifndef _ASM_X86_SHARED_IO_H
      3#define _ASM_X86_SHARED_IO_H
      4
      5#include <linux/types.h>
      6
      7#define BUILDIO(bwl, bw, type)						\
      8static inline void __out##bwl(type value, u16 port)			\
      9{									\
     10	asm volatile("out" #bwl " %" #bw "0, %w1"			\
     11		     : : "a"(value), "Nd"(port));			\
     12}									\
     13									\
     14static inline type __in##bwl(u16 port)					\
     15{									\
     16	type value;							\
     17	asm volatile("in" #bwl " %w1, %" #bw "0"			\
     18		     : "=a"(value) : "Nd"(port));			\
     19	return value;							\
     20}
     21
     22BUILDIO(b, b, u8)
     23BUILDIO(w, w, u16)
     24BUILDIO(l,  , u32)
     25#undef BUILDIO
     26
     27#define inb __inb
     28#define inw __inw
     29#define inl __inl
     30#define outb __outb
     31#define outw __outw
     32#define outl __outl
     33
     34#endif