*** rio.cpp.orig Mon Mar 15 06:53:16 1999 --- rio.cpp Fri Feb 18 11:02:11 2000 *************** *** 53,58 **** --- 53,78 ---- #define CLOCK_SECOND 1000 #define DELETEARRAY delete[] + #elif defined(__FreeBSD__) + // FreeBSD g++ + // (anybody know if this stuff applies more generally to other BSDs?) + #include + #include + #define ffs _ffs_hack + #include + #undef ffs + #if defined(__alpha__) + #include + extern "C" { + u_int8_t inb(u_int32_t); + void outb(u_int32_t, u_int8_t); + } + #endif + #define OUTPORT(p,v) outb( p, v ) + #define INPORT(p) inb( p ) + #define CLOCK_SECOND CLOCKS_PER_SEC + #define DELETEARRAY delete[] + #elif defined(__linux__) // linux g++ #include *************** *** 201,206 **** --- 219,233 ---- m_iPortData = m_iPortBase + OFFSET_PORT_DATA; m_iPortStatus = m_iPortBase + OFFSET_PORT_STATUS; m_iPortControl = m_iPortBase + OFFSET_PORT_CONTROL; + + // if FreeBSD + #if defined(__FreeBSD__) + // Request direct access to memory addresses + if (open("/dev/io", O_RDONLY) < 0) { + LogError( CRIO_ERROR_IOPRERM, "open(/dev/io) failed, reason '%s'", SZERROR ); + return FALSE; + } + #endif // if linux #if defined(__linux__)