On Wed, Oct 29, 2008 at 03:14:46PM +0200, Andriy Gapon wrote:
Allow nvramtool to build and work on FreeBSD.
Signed-off-by: Andriy Gapon avg@icyb.net.ua
Thanks, r3709, with some changes though.
The patch you posted was breaking the build on Linux for me.
Index: cmos_lowlevel.c
--- cmos_lowlevel.c (revision 3704) +++ cmos_lowlevel.c (working copy) @@ -28,7 +28,15 @@
- 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
*****************************************************************************/
+#if defined(__GLIBC__) #include <sys/io.h> +#endif
This seemed to cause trouble here, I fixed it by putting <sys/io.h> into the '#else' part of the 'defined(__FreeBSD__)' code in common.h.
This builds fine for me now, but please check that it also still works on FreeBSD, just in case.
Index: common.h
--- common.h (revision 3704) +++ common.h (working copy) @@ -43,6 +43,25 @@ #include <string.h> #include <ctype.h>
+#if defined(__FreeBSD__) +#include <sys/types.h> +#include <machine/cpufunc.h> +#define OUTB(x, y) do { u_int tmp = (y); outb(tmp, (x)); } while (0) +#define OUTW(x, y) do { u_int tmp = (y); outw(tmp, (x)); } while (0) +#define OUTL(x, y) do { u_int tmp = (y); outl(tmp, (x)); } while (0) +#define INB(x) __extension__ ({ u_int tmp = (x); inb(tmp); }) +#define INW(x) __extension__ ({ u_int tmp = (x); inw(tmp); }) +#define INL(x) __extension__ ({ u_int tmp = (x); inl(tmp); }) +#else +#define OUTB OUTB
^^^^ outb
+#define OUTW outw +#define OUTL outl +#define INB INB
^^^ inb
+#define INW inw +#define INL inl +#endif
#define FALSE 0 #define TRUE 1
Uwe.