xorriso  1.5.4.pl02
About: GNU xorriso creates, loads, manipulates and writes ISO 9660 filesystem images with Rock Ridge extensions. It is suitable for incremental data backup and for production of bootable ISO 9660 images. GNU xorriso is a statical compilation of the libraries libburn, libisofs, libisoburn, and libjte.
  Fossies Dox: xorriso-1.5.4.pl02.tar.gz  ("unofficial" and yet experimental doxygen-generated source code documentation)  

ecma119_tree.h
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2007 Vreixo Formoso
3  * 2012 - 2014 Thomas Schmitt
4  *
5  * This file is part of the libisofs project; you can redistribute it and/or
6  * modify it under the terms of the GNU General Public License version 2
7  * or later as published by the Free Software Foundation.
8  * See COPYING file for details.
9  */
10 
11 #ifndef LIBISO_ECMA119_TREE_H_
12 #define LIBISO_ECMA119_TREE_H_
13 
14 #include "libisofs.h"
15 #include "ecma119.h"
16 
23 };
24 
25 /**
26  * Struct with info about a node representing a directory
27  */
29 {
30  /* Block where the directory entries will be written on image */
31  size_t block;
32 
33  size_t nchildren;
35 
36  /*
37  * Size of the dir, i.e., sum of the lengths of all directory records.
38  * It is computed by calc_dir_size() [ecma119.c].
39  * Note that this don't include the length of any SUSP Continuation
40  * Area needed by the dir, but it includes the size of the SUSP entries
41  * than fit in the directory records System Use Field.
42  */
43  size_t len;
44 
45  /**
46  * Real parent if the dir has been reallocated. NULL otherwise.
47  */
49 };
50 
51 /**
52  * A node for a tree containing all the information necessary for writing
53  * an ISO9660 volume.
54  */
56 {
57  /**
58  * Name in ASCII, conforming to selected ISO level.
59  * Version number is not include, it is added on the fly
60  */
61  char *iso_name;
62 
64 
65  IsoNode *node; /*< reference to the iso node */
66 
67  uint32_t ino;
68 
69  nlink_t nlink;
70 
71  /**< file, symlink, special, directory or placeholder */
73  union
74  {
77  /** this field points to the relocated directory. */
79  } info;
80 };
81 
82 
83 /* For recording files which are hidden in ECMA-119 */
85 {
88 };
89 
90 int iso_filesrc_list_destroy(struct iso_filesrc_list_item **start_item);
91 
92 
93 /**
94  *
95  */
97 
98 /**
99  * Free an Ecma119Node, and its children if node is a dir
100  */
101 void ecma119_node_free(Ecma119Node *node);
102 
103 /**
104  * Search the tree for a certain IsoNode and return its owning Ecma119Node
105  * or NULL.
106  */
108 
109 /**
110  * Tell whether node is a dedicated relocation directory which only contains
111  * relocated directories.
112  */
114 
115 /**
116  * Determines the ECMA-119 name from node name.
117  * @param flag bit0= Do not issue error messages
118  */
119 int iso_get_ecma119_name(IsoWriteOpts *opts, char *input_charset, int imgid,
120  char *node_name, enum IsoNodeType node_type,
121  char **name, int flag);
122 
123 
124 #endif /*LIBISO_ECMA119_TREE_H_*/
int ecma119_is_dedicated_reloc_dir(Ecma119Image *img, Ecma119Node *node)
Definition: ecma119_tree.c:170
void ecma119_node_free(Ecma119Node *node)
Definition: ecma119_tree.c:349
int iso_filesrc_list_destroy(struct iso_filesrc_list_item **start_item)
Definition: ecma119_tree.c:385
int iso_get_ecma119_name(IsoWriteOpts *opts, char *input_charset, int imgid, char *node_name, enum IsoNodeType node_type, char **name, int flag)
Definition: ecma119_tree.c:34
ecma119_node_type
Definition: ecma119_tree.h:17
@ ECMA119_PLACEHOLDER
Definition: ecma119_tree.h:22
@ ECMA119_DIR
Definition: ecma119_tree.h:19
@ ECMA119_SPECIAL
Definition: ecma119_tree.h:21
@ ECMA119_SYMLINK
Definition: ecma119_tree.h:20
@ ECMA119_FILE
Definition: ecma119_tree.h:18
int ecma119_tree_create(Ecma119Image *img)
Ecma119Node * ecma119_search_iso_node(Ecma119Image *img, IsoNode *node)
IsoNodeType
Definition: libisofs.h:228
Definition: node.h:100
Ecma119Node * real_parent
Definition: ecma119_tree.h:48
Ecma119Node ** children
Definition: ecma119_tree.h:34
union ecma119_node::@0 info
uint32_t ino
Definition: ecma119_tree.h:67
nlink_t nlink
Definition: ecma119_tree.h:69
char * iso_name
Definition: ecma119_tree.h:61
IsoNode * node
Definition: ecma119_tree.h:65
Ecma119Node * real_me
Definition: ecma119_tree.h:78
Ecma119Node * parent
Definition: ecma119_tree.h:63
struct ecma119_dir_info * dir
Definition: ecma119_tree.h:76
enum ecma119_node_type type
Definition: ecma119_tree.h:72
IsoFileSrc * file
Definition: ecma119_tree.h:75
struct iso_filesrc_list_item * next
Definition: ecma119_tree.h:87