00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 #ifndef bkwrite_h
00018 #define bkwrite_h
00019
00020 int bootInfoTableChecksum(int oldImage, FileToWrite* file, unsigned* checksum);
00021 int countDirsOnLevel(const DirToWrite* dir, int targetLevel, int thisLevel);
00022 int countTreeHeight(const DirToWrite* dir, int heightSoFar);
00023 unsigned short elToritoChecksum(const unsigned char* record);
00024 int writeByteBlock(VolInfo* volInfo, unsigned char byteToWrite, int numBytes);
00025 int writeByteBlockFromFile(int src, VolInfo* volInfo, unsigned numBytes);
00026 int writeDir(VolInfo* volInfo, DirToWrite* dir, int parentLbNum,
00027 int parentNumBytes, int parentPosix, time_t recordingTime,
00028 int filenameTypes, bool isRoot);
00029 int writeDr(VolInfo* volInfo, BaseToWrite* dir, time_t recordingTime, bool isADir,
00030 bool isSelfOrParent, bool isFirstRecord, int filenameTypes);
00031 int writeElToritoBootCatalog(VolInfo* volInfo,
00032 off_t* bootRecordSectorNumberOffset);
00033 int writeElToritoVd(VolInfo* volInfo, off_t* bootCatalogSectorNumberOffset);
00034 int writeFileContents(VolInfo* volInfo, DirToWrite* dir, int filenameTypes);
00035 int writeJolietStringField(VolInfo* volInfo, const char* name, int fieldSize);
00036 int writeLongNM(VolInfo* volInfo, BaseToWrite* dir);
00037 int writeLongNMsInDir(VolInfo* volInfo, DirToWrite* dir);
00038 int writePathTable(VolInfo* volInfo, const DirToWrite* tree, bool isTypeL,
00039 int filenameType);
00040 int writePathTableRecordsOnLevel(VolInfo* volInfo, const DirToWrite* dir,
00041 bool isTypeL, int filenameType,
00042 int targetLevel, int thisLevel,
00043 int* parentDirNum);
00044 int writeRockER(VolInfo* volInfo);
00045 int writeRockNM(VolInfo* volInfo, char* name, int nameLen, bool doesContinue);
00046 int writeRockPX(VolInfo* volInfo, unsigned posixFileMode, bool isADir);
00047 int writeRockSL(VolInfo* volInfo, SymLinkToWrite* symlink, bool doWrite);
00048 int writeRockSP(VolInfo* volInfo);
00049 int writeVdsetTerminator(VolInfo* volInfo);
00050 int writeVolDescriptor(VolInfo* volInfo, off_t rootDrLocation,
00051 unsigned rootDrSize, off_t lPathTableLoc,
00052 off_t mPathTableLoc, unsigned pathTableSize,
00053 time_t creationTime, bool isPrimary);
00054
00055 #endif