X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=device_posix.c;h=5a28dcdc5ecb4c0be201c81c0bd14081bcb05072;hb=b1e873c5b2f6376bb39ff0fda1464cbbacbae5f7;hp=82071a4e080071e037104ab353536ee31a930f55;hpb=32087c67d53a8f8058b359388f23e2dbc9436d54;p=debian%2Fcpmtools diff --git a/device_posix.c b/device_posix.c index 82071a4..5a28dcd 100644 --- a/device_posix.c +++ b/device_posix.c @@ -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 #include -#include "config.h" +#include #include #include #include "device.h" + +#ifdef USE_DMALLOC +#include +#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(sectorsectrk); assert(track>=0); assert(tracktracks); - 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(sectorsectrk); assert(track>=0); assert(tracktracks); - 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); }