--- a/src/libsmbios_c/smi/smi_linux.c 2019-02-07 22:09:34.240465062 +0100 +++ b/src/libsmbios_c/smi/smi_linux.c 2019-02-07 22:09:41.937466022 +0100 @@ -28,6 +28,7 @@ #include #include // flock #include // ioctl +#include // open #include // public --- a/src/libsmbios_c/common/platform/linux.h 2019-02-07 22:17:16.671522730 +0100 +++ b/src/libsmbios_c/common/platform/linux.h 2019-02-07 22:17:36.932525256 +0100 @@ -1,3 +1,23 @@ +#if !defined(__GLIBC__) && !defined(LL_IO) +#define LL_IO +// inb_p and outb_p: imported from glibc +static __inline unsigned char +inb_p (unsigned short int __port) +{ + unsigned char _v; + + __asm__ __volatile__ ("inb %w1,%0\noutb %%al,$0x80":"=a" (_v):"Nd" (__port)); + return _v; +} + +static __inline void +outb_p (unsigned char __value, unsigned short int __port) +{ + __asm__ __volatile__ ("outb %b0,%w1\noutb %%al,$0x80": :"a" (__value), + "Nd" (__port)); +} +#endif + // If we are on IA64 we will need to macro define inb_p and outb_p #if defined(__ia64__) # define outb_p outb