New upstream version 2.20
[debian/cpmtools] / device_posix.c
index 82071a4e080071e037104ab353536ee31a930f55..5a28dcdc5ecb4c0be201c81c0bd14081bcb05072 100644 (file)
@@ -1,20 +1,17 @@
 /* #includes */ /*{{{C}}}*//*{{{*/
-#undef  _POSIX_SOURCE
-#define _POSIX_SOURCE   1
-#undef  _POSIX_C_SOURCE
-#define _POSIX_C_SOURCE 2
-
-#ifdef DMALLOC
-#include "dmalloc.h"
-#endif
+#include "config.h"
 
 #include <assert.h>
 #include <errno.h>
-#include "config.h"
+#include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
 
 #include "device.h"
+
+#ifdef USE_DMALLOC
+#include <dmalloc.h>
+#endif
 /*}}}*/
 
 /* Device_open           -- Open an image file                      */ /*{{{*/
@@ -26,11 +23,13 @@ const char *Device_open(struct Device *this, const char *filename, int mode, con
 }
 /*}}}*/
 /* Device_setGeometry    -- Set disk geometry                       */ /*{{{*/
-void Device_setGeometry(struct Device *this, int secLength, int sectrk, int tracks)
+const char *Device_setGeometry(struct Device *this, int secLength, int sectrk, int tracks, off_t offset, const char *libdskGeometry)
 {
   this->secLength=secLength;
   this->sectrk=sectrk;
   this->tracks=tracks;
+  this->offset=offset;
+  return NULL;
 }
 /*}}}*/
 /* Device_close          -- Close an image file                     */ /*{{{*/
@@ -45,11 +44,13 @@ const char *Device_readSector(const struct Device *this, int track, int sector,
 {
   int res;
 
+  assert(this);
   assert(sector>=0);
   assert(sector<this->sectrk);
   assert(track>=0);
   assert(track<this->tracks);
-  if (lseek(this->fd,(off_t)(sector+track*this->sectrk)*this->secLength,SEEK_SET)==-1) 
+  assert(buf);
+  if (lseek(this->fd,(off_t)(((sector+track*this->sectrk)*this->secLength)+this->offset),SEEK_SET)==-1) 
   {
     return strerror(errno);
   }
@@ -71,7 +72,7 @@ const char *Device_writeSector(const struct Device *this, int track, int sector,
   assert(sector<this->sectrk);
   assert(track>=0);
   assert(track<this->tracks);
-  if (lseek(this->fd,(off_t)(sector+track*this->sectrk)*this->secLength, SEEK_SET)==-1)
+  if (lseek(this->fd,(off_t)(((sector+track*this->sectrk)*this->secLength)+this->offset),SEEK_SET)==-1)
   {
     return strerror(errno);
   }