Coda Distributed File System
dumpstream.h
Go to the documentation of this file.
1/* BLURB gpl
2
3 Coda File System
4 Release 8
5
6 Copyright (c) 1987-2021 Carnegie Mellon University
7 Additional copyrights listed below
8
9This code is distributed "AS IS" without warranty of any kind under
10the terms of the GNU General Public Licence Version 2, as shown in the
11file LICENSE. The technical and financial contributors to Coda are
12listed in the file CREDITS.
13
14 Additional copyrights
15 none currently
16
17#*/
18
19#ifndef _DUMPSTREAM_H_
20#define _DUMPSTREAM_H_
21
22#ifdef __cplusplus
23extern "C" {
24#endif
25
26/* Enable 64-bit file offsets */
27/* eventually this should be used everywhere */
28#define _LARGEFILE_SOURCE 1
29#define _FILE_OFFSET_BITS 64
30
31#include <lwp/lwp.h> /* Include all files referenced herein */
32#include <lwp/lock.h>
33#include <voltypes.h>
34
35#ifdef __cplusplus
36}
37#endif
38
39#include <cvnode.h>
40#include <volume.h>
41
42#define MAXSTRLEN 80
44 FILE *stream;
45 char name[MAXSTRLEN];
46 VnodeClass IndexType;
47 int skip_vnode_garbage();
48
49public:
50 dumpstream(char *);
52 int isopen(); /* 1 if dumpstream is open; 0 otherwise */
53 int getDumpHeader(struct DumpHeader *);
55 int getVnodeIndex(VnodeClass, unsigned int *, unsigned int *);
56 int getNextVnode(VnodeDiskObject *, VnodeId *, int *, off_t *offset,
58 int getVnode(int vnum, int unique, off_t offset, VnodeDiskObject *vdo,
60 int copyVnodeData(DumpBuffer_t *); /* Copy entire vnode into DumpFd*/
61 int EndOfDump(); /* See if ENDDUMP is present */
62 void setIndex(VnodeClass);
64 int CopyBytesToMemory(char *, int);
65 int CopyBytesToFile(FILE *, int);
66};
67
68/* Debugging routine: prints dump header on specified output file */
69void PrintDumpHeader(FILE *, struct DumpHeader *);
70
71#endif /* _DUMPSTREAM_H_ */
char * AL_ExternalAccessList
Definition: al.h:63
Definition: dumpstream.h:43
int copyVnodeData(DumpBuffer_t *)
Definition: dumpstream.cc:768
int getVnodeIndex(VnodeClass, unsigned int *, unsigned int *)
Definition: dumpstream.cc:438
~dumpstream()
Definition: dumpstream.cc:225
int readDirectory(PDirInode *)
Definition: dumpstream.cc:546
int getVolDiskData(VolumeDiskData *)
Definition: dumpstream.cc:283
int EndOfDump()
Definition: dumpstream.cc:410
int isopen()
Definition: dumpstream.cc:231
int CopyBytesToMemory(char *, int)
Definition: dumpstream.cc:836
int getVnode(int vnum, int unique, off_t offset, VnodeDiskObject *vdo, AL_ExternalAccessList *ACL)
Definition: dumpstream.cc:602
int CopyBytesToFile(FILE *, int)
Definition: dumpstream.cc:873
int getDumpHeader(struct DumpHeader *)
Definition: dumpstream.cc:239
int getNextVnode(VnodeDiskObject *, VnodeId *, int *, off_t *offset, AL_ExternalAccessList *ACL=NULL)
Definition: dumpstream.cc:640
void setIndex(VnodeClass)
Definition: dumpstream.cc:828
dumpstream(char *)
Definition: dumpstream.cc:203
int VnodeClass
Definition: cvnode.h:67
void PrintDumpHeader(FILE *, struct DumpHeader *)
Definition: dumpstream.cc:932
#define MAXSTRLEN
Definition: dumpstream.h:42
Definition: codadir.h:173
Definition: dump.h:55
Definition: dump.h:45
Definition: cvnode.h:98
Definition: volume.h:108
#define NULL
Definition: voltypes.h:44