--- xdd.c.orig Mon May 29 04:06:49 2006
+++ xdd.c Mon May 29 04:24:54 2006
@@ -60,7 +60,7 @@
/* Things used by the read-after-write operations */
#if (IRIX || SOLARIS || HPUX || AIX || ALTIX)
struct stat64 statbuf;
-#elif (LINUX || OSX)
+#elif (LINUX || OSX || FreeBSD)
struct stat statbuf;
#endif
int64_t prev_loc; /* The previous location from a read-after-write message from the writer */
@@ -114,11 +114,11 @@
sleep_time_dw = (int32_t)(p->start_delay/BILLION);
#ifdef WIN32
Sleep(sleep_time_dw);
-#elif (LINUX || IRIX || AIX || ALTIX || OSX) /* Add OS Support to this line for usleep() */
+#elif (LINUX || IRIX || AIX || ALTIX || OSX || FreeBSD) /* Add OS Support to this line for usleep() */
if ((sleep_time_dw*CLK_TCK) > 1000) /* only sleep if it will be 1 or more ticks */
#if (IRIX || ALTIX)
sginap((sleep_time_dw*CLK_TCK)/1000);
-#elif (LINUX || AIX || OSX) /* Add OS Support to this line for usleep() as well*/
+#elif (LINUX || AIX || OSX || FreeBSD) /* Add OS Support to this line for usleep() as well*/
usleep(sleep_time_dw*1000);
#endif
#endif
@@ -384,14 +384,14 @@
p->my_current_byte_location = (uint64_t)((p->mynum * xgp->target_offset) + p->seekhdr.seeks[0].block_location) * p->block_size;
else p->my_current_byte_location = (uint64_t)((p->mynum * xgp->target_offset) + p->seekhdr.seeks[current_op].block_location) * p->block_size;
-#if (LINUX || IRIX || SOLARIS || HPUX || AIX || ALTIX || OSX)
+#if (LINUX || IRIX || SOLARIS || HPUX || AIX || ALTIX || OSX || FreeBSD)
if ((p->target_options & RX_READAFTERWRITE) && (p->target_options & RX_RAW_READER)) {
// fprintf(stderr,"Reader: RAW check - dataready=%lld, trigger=%x\n",data_ready,p->raw_trigger);
/* Check to see if we can read more data - if not see where we are at */
if (p->raw_trigger & RX_RAW_STAT) { /* This section will continually poll the file status waiting for the size to increase so that it can read more data */
while (data_ready < p->iosize) {
/* Stat the file so see if there is data to read */
-#if (LINUX || OSX)
+#if (LINUX || OSX || FreeBSD)
status = fstat(p->fd,&statbuf);
#else
status = fstat64(p->fd,&statbuf);
@@ -472,11 +472,11 @@
sleep_time_dw = sleep_time;
#ifdef WIN32
Sleep(sleep_time_dw);
-#elif (LINUX || IRIX || AIX || ALTIX || OSX) /* Change this line to use usleep */
+#elif (LINUX || IRIX || AIX || ALTIX || OSX || FreeBSD) /* Change this line to use usleep */
if ((sleep_time_dw*CLK_TCK) > 1000) /* only sleep if it will be 1 or more ticks */
#if (IRIX || ALTIX)
sginap((sleep_time_dw*CLK_TCK)/1000);
-#elif (LINUX || AIX || OSX) /* Change this line to use usleep */
+#elif (LINUX || AIX || OSX || FreeBSD) /* Change this line to use usleep */
usleep(sleep_time_dw*1000);
#endif
#endif
@@ -564,7 +564,7 @@
#else /* UUUUUUUUUUUUUUUU Begin Unix stuff UUUUUUUUUUUUUUUUU*/
#if (IRIX || SOLARIS || HPUX || AIX || ALTIX)
lseek64(p->fd,(off64_t)p->my_current_byte_location,0);
-#elif (LINUX || OSX)
+#elif (LINUX || OSX || FreeBSD)
/* In Linux the -D_FILE_OFFSET_BITS=64 make the off_t type be a 64-bit integer */
if (!p->target_options & RX_SGIO)
lseek(p->fd, (off_t)p->my_current_byte_location, SEEK_SET);
@@ -653,7 +653,7 @@
}
}
-#if (LINUX || IRIX || SOLARIS || HPUX || AIX || ALTIX || OSX)
+#if (LINUX || IRIX || SOLARIS || HPUX || AIX || ALTIX || OSX || FreeBSD)
if ((p->target_options & RX_READAFTERWRITE) && (p->target_options & RX_RAW_WRITER)) {
/* Since I am the writer in a read-after-write operation, and if we are using a socket connection to the reader for write-completion messages
* then I need to send the reader a message of what I just wrote - starting location and length of write.
syntax highlighted by Code2HTML, v. 0.9.1