comparison audioDB.cpp @ 210:7562a833a951

Deal with x86-64 OS X vs Linux structure padding ABI.
author mas01cr
date Thu, 29 Nov 2007 16:31:09 +0000
parents 7c9feaceeab5
children 3a81da6fb1d7
comparison
equal deleted inserted replaced
202:7c9feaceeab5 210:7562a833a951
452 dbH->magic = O2_MAGIC; 452 dbH->magic = O2_MAGIC;
453 dbH->version = O2_FORMAT_VERSION; 453 dbH->version = O2_FORMAT_VERSION;
454 dbH->numFiles = 0; 454 dbH->numFiles = 0;
455 dbH->dim = 0; 455 dbH->dim = 0;
456 dbH->flags = 0; 456 dbH->flags = 0;
457 dbH->headerSize = O2_HEADERSIZE;
457 dbH->length = 0; 458 dbH->length = 0;
458 dbH->fileTableOffset = ALIGN_PAGE_UP(O2_HEADERSIZE); 459 dbH->fileTableOffset = ALIGN_PAGE_UP(O2_HEADERSIZE);
459 dbH->trackTableOffset = ALIGN_PAGE_UP(dbH->fileTableOffset + O2_FILETABLESIZE*maxfiles); 460 dbH->trackTableOffset = ALIGN_PAGE_UP(dbH->fileTableOffset + O2_FILETABLESIZE*maxfiles);
460 dbH->dataOffset = ALIGN_PAGE_UP(dbH->trackTableOffset + O2_TRACKTABLESIZE*maxfiles); 461 dbH->dataOffset = ALIGN_PAGE_UP(dbH->trackTableOffset + O2_TRACKTABLESIZE*maxfiles);
461 dbH->l2normTableOffset = ALIGN_PAGE_DOWN(size - maxfiles*O2_MEANNUMVECTORS*sizeof(double)); 462 dbH->l2normTableOffset = ALIGN_PAGE_DOWN(size - maxfiles*O2_MEANNUMVECTORS*sizeof(double));
506 cerr << "expected: " << O2_MAGIC << ", got: " << dbH->magic << endl; 507 cerr << "expected: " << O2_MAGIC << ", got: " << dbH->magic << endl;
507 error("database file has incorrect header", dbName); 508 error("database file has incorrect header", dbName);
508 } 509 }
509 510
510 if(dbH->version != O2_FORMAT_VERSION) { 511 if(dbH->version != O2_FORMAT_VERSION) {
511 error("database file has incorect version", dbName); 512 error("database file has incorrect version", dbName);
513 }
514
515 if(dbH->headerSize != O2_HEADERSIZE) {
516 error("sizeof(dbTableHeader) unexpected: platform ABI mismatch?", dbName);
512 } 517 }
513 518
514 #define CHECKED_MMAP(type, var, start, length) \ 519 #define CHECKED_MMAP(type, var, start, length) \
515 { void *tmp = mmap(0, length, (PROT_READ | (forWrite ? PROT_WRITE : 0)), MAP_SHARED, dbfid, (start)); \ 520 { void *tmp = mmap(0, length, (PROT_READ | (forWrite ? PROT_WRITE : 0)), MAP_SHARED, dbfid, (start)); \
516 if(tmp == (void *) -1) { \ 521 if(tmp == (void *) -1) { \