1 /* SPDX-License-Identifier: GPL-2.0 */
2 #ifndef _ASM_X86_SHARED_IO_H
3 #define _ASM_X86_SHARED_IO_H
5 #include <linux/types.h>
7 #define BUILDIO(bwl, bw, type) \
8 static __always_inline void __out##bwl(type value, u16 port) \
10 asm volatile("out" #bwl " %" #bw "0, %w1" \
11 : : "a"(value), "Nd"(port)); \
14 static __always_inline type __in##bwl(u16 port) \
17 asm volatile("in" #bwl " %w1, %" #bw "0" \
18 : "=a"(value) : "Nd"(port)); \