$OpenBSD: patch-libfreeipmi_src_ipmi-kcs-api_c,v 1.1.1.1 2007/10/25 18:17:02 wilfried Exp $ --- libfreeipmi/src/ipmi-kcs-api.c.orig Sat Jun 2 20:18:29 2007 +++ libfreeipmi/src/ipmi-kcs-api.c Tue Oct 23 18:55:45 2007 @@ -350,7 +350,22 @@ ipmi_kcs_ctx_io_init(ipmi_kcs_ctx_t ctx) if (!(ctx && ctx->magic == IPMI_KCS_CTX_MAGIC)) return (-1); -#ifdef __FreeBSD__ +#ifdef __OpenBSD__ +# if defined(__amd64__) + if (amd64_iopl (3) < 0) +# elif defined(__i386__) + if (i386_iopl (3) < 0) +# else + if (0) +# endif + { + if (errno == EPERM || errno == EACCES) + ctx->errnum = IPMI_KCS_CTX_ERR_PERMISSION; + else + ERR_LOG(ctx->errnum = IPMI_KCS_CTX_ERR_INTERNAL); + return (-1); + } +#elif __FreeBSD__ #ifdef USE_IOPERM /* i386_set_ioperm has known problems on FBSD 5.x (bus errors). */ if (i386_set_ioperm (ctx->driver_address, 0x02, 0x01) != 0)