• Skip to content
  • Skip to link menu
KDE 4.2 API Reference
  • KDE API Reference
  • kdeutils
  • Sitemap
  • Contact Us
 

ark

bkInternal.h

Go to the documentation of this file.
00001 /******************************* LICENSE **************************************
00002 * Any code in this file may be redistributed or modified under the terms of
00003 * the GNU General Public License as published by the Free Software 
00004 * Foundation; version 2 of the license.
00005 ****************************** END LICENSE ***********************************/
00006 
00007 /******************************************************************************
00008 * Author:
00009 * Andrew Smith, http://littlesvr.ca/misc/contactandrew.php
00010 *
00011 * Copyright 2005-2007 Andrew Smith <andrew-smith@mail.ru>
00012 *
00013 * Contributors:
00014 * 
00015 ******************************************************************************/
00016 
00017 /********************************* PURPOSE ************************************
00018 * bkInternal.h
00019 * This header file is for #defines and structures only used by bkisofs
00020 ******************************** END PURPOSE *********************************/
00021 
00022 #ifndef bkInternal_h
00023 #define bkInternal_h
00024 
00025 #include "bk.h"
00026 
00027 /* number of logical sectors in system area (in practice always 16) */
00028 #define NLS_SYSTEM_AREA 16
00029 /* number of bytes in a logical block (in practice always 2048) */
00030 #define NBYTES_LOGICAL_BLOCK 2048
00031 
00032 /*******************************************************************************
00033 * Joliet allows max 128 bytes
00034 *     + 2 separator1 (9660, just in case)
00035 *     + 2 separator2 (9660, just in case)
00036 *     + 10 version (9660, just in case)
00037 *     = 142 bytes (71 characters)
00038 * Only a max of 64 characters of this will be stored. (plus '\0') */
00039 #define NCHARS_FILE_ID_MAX_JOLIET 65
00040 
00041 #define BASETW_PTR(item) ((BaseToWrite*)(item))
00042 #define DIRTW_PTR(item) ((DirToWrite*)(item))
00043 #define FILETW_PTR(item) ((FileToWrite*)(item))
00044 #define SYMLINKTW_PTR(item) ((SymLinkToWrite*)(item))
00045 
00046 #define WRITE_CACHE_SIZE 1048576
00047 
00048 typedef struct
00049 {
00050     unsigned numChildren;
00051     char** children;
00052     
00053 } NewPath;
00054 
00055 typedef struct BaseToWrite
00056 {
00057     char name9660[15]; /* 8.3 + ";1" max */
00058     char nameRock[NCHARS_FILE_ID_MAX_STORE];
00059     char nameJoliet[NCHARS_FILE_ID_MAX_JOLIET];
00060     unsigned posixFileMode;
00061     off_t extentLocationOffset; /* where on image to write location of extent */
00062     unsigned extentNumber; /* extent number */
00063     off_t extentLocationOffset2; /* for svd (joliet) */
00064     off_t offsetForCE; /* if the name won't fit inside the directory record */
00065     
00066     struct BaseToWrite* next;
00067     
00068 } BaseToWrite;
00069 
00070 typedef struct DirToWrite
00071 {
00072     BaseToWrite base;
00073     
00074     unsigned extentNumber2; /* for svd (joliet) */
00075     unsigned dataLength; /* bytes, including blank */
00076     unsigned dataLength2; /* for svd (joliet) */
00077     struct BaseToWrite* children;
00078     
00079 } DirToWrite;
00080 
00081 typedef struct FileToWrite
00082 {
00083     BaseToWrite base;
00084     
00085     unsigned size; /* in bytes */
00086     BkHardLink* location; /* basically a copy of the following variables */
00087     bool onImage;
00088     unsigned offset; /* if on image, in bytes */
00089     char* pathAndName; /* if on filesystem, full path + filename
00090                        * is to be freed by whenever the File is freed */
00091     BkFile* origFile; /* this pointer only has one purpose: to potentially 
00092                       * identify this file as the boot record. it will never
00093                       * be dereferenced, just compared to. */
00094     
00095 } FileToWrite;
00096 
00097 typedef struct SymLinkToWrite
00098 {
00099     BaseToWrite base;
00100     
00101     char target[NCHARS_SYMLINK_TARGET_MAX];
00102     
00103 } SymLinkToWrite;
00104 
00105 #endif

ark

Skip menu "ark"
  • Main Page
  • Namespace List
  • Class Hierarchy
  • Alphabetical List
  • Class List
  • File List
  • Namespace Members
  • Class Members

kdeutils

Skip menu "kdeutils"
  • ark
  • kcalc
  • kcharselect
  • kdessh
  • kdf
  • kfloppy
  • kgpg
  • ktimer
  • kwallet
  • okteta
  • printer-applet
  • superkaramba
  • sweeper
Generated for kdeutils by doxygen 1.5.4
This website is maintained by Adriaan de Groot and Allen Winter.
KDE® and the K Desktop Environment® logo are registered trademarks of KDE e.V. | Legal