5 * Data-manipulating functions and structures, used to
6 * create the skeleton copy.
9 struct VolumeDescriptor
;
13 * We treat each data structure in the filesystem as
14 * a <start, length> pair.
20 typedef struct Extents Extents_t
;
22 #define kExtentCount 100
25 * The in-core representation consists of a linked
26 * list of an array of extents, up to 100 in each element.
30 Extents_t extents
[kExtentCount
];
31 struct ExtentList
*next
;
33 typedef struct ExtentList ExtentList_t
;
36 * The in-core description of the volume: an input source,
37 * a description of the volume, the linked list of extents,
38 * the total number of bytes, and the number of linked list
41 struct VolumeObjects
{
42 struct DeviceInfo
*devp
;
43 struct VolumeDescriptor
*vdp
;
48 typedef struct VolumeObjects VolumeObjects_t
;
50 extern VolumeObjects_t
*InitVolumeObject(struct DeviceInfo
*devp
, struct VolumeDescriptor
*vdp
);
51 extern int AddExtent(VolumeObjects_t
*vop
, off_t start
, off_t length
);
52 extern void PrintVolumeObject(VolumeObjects_t
*);
53 extern int CopyObjectsToDest(VolumeObjects_t
*, struct IOWrapper
*wrapper
, off_t skip
);
55 extern void WriteGatheredData(const char *, VolumeObjects_t
*);