summaryrefslogtreecommitdiff
path: root/unionfs/node.h
diff options
context:
space:
mode:
authorSamuel Thibault <samuel.thibault@ens-lyon.org>2012-04-08 23:09:39 +0000
committerSamuel Thibault <samuel.thibault@ens-lyon.org>2012-04-08 23:09:39 +0000
commit5499792c357777dcfc5ee461fa64baaba1d2dde5 (patch)
tree15363c44fe541b3adcd720edf39696e9230d7feb /unionfs/node.h
parente5fca9a10c2622b85cc77e776ea56c8dbb9847e6 (diff)
parentc6db537edac054a03847b1b99f78c00703f48d6b (diff)
Merge branch 'dde' of git.debian.org:/git/pkg-hurd/hurd into dde
Diffstat (limited to 'unionfs/node.h')
-rw-r--r--unionfs/node.h135
1 files changed, 0 insertions, 135 deletions
diff --git a/unionfs/node.h b/unionfs/node.h
deleted file mode 100644
index 41ae43ad..00000000
--- a/unionfs/node.h
+++ /dev/null
@@ -1,135 +0,0 @@
-/* Hurd unionfs
- Copyright (C) 2001, 2002 Free Software Foundation, Inc.
- Written by Moritz Schulte <moritz@duesseldorf.ccc.de>.
-
- This program is free software; you can redistribute it and/or
- modify it under the terms of the GNU General Public License as
- published by the Free Software Foundation; either version 2 of the
- License, or * (at your option) any later version.
-
- This program is distributed in the hope that it will be useful, but
- WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
- USA. */
-
-/* node management. */
-
-#ifndef INCLUDED_NODE_H
-#define INCLUDED_NODE_H
-
-#include <error.h>
-#include <sys/stat.h>
-#include <hurd/netfs.h>
-
-typedef struct node node_t;
-
-#include "lnode.h"
-
-/* per-ulfs data for each node. */
-struct node_ulfs
-{
- int flags; /* Flags associated for this
- underlying filesystem. */
- file_t port; /* A port to the underlying
- filesystem. */
-};
-typedef struct node_ulfs node_ulfs_t;
-
-/* Flags. */
-
-/* The according port should not be updated. */
-#define FLAG_NODE_ULFS_FIXED 0x00000001
-
-struct netnode
-{
- lnode_t *lnode; /* A reference to the according light
- node. */
- int flags; /* Associated flags. */
- node_ulfs_t *ulfs; /* Array holding data for each
- underlying filesystem. */
- int ulfs_num; /* Number of entries in ULFS. */
- node_t *ncache_next;
- node_t *ncache_prev;
-};
-typedef struct netnode netnode_t;
-
-/* Flags. */
-#define FLAG_NODE_INVALIDATE 0x00000001
-#define FLAG_NODE_ULFS_UPTODATE 0x00000002
-
-typedef struct node_dirent
-{
- struct dirent *dirent;
- struct node_dirent *next;
-} node_dirent_t;
-
-/* Create a new node, derived from a light node, add a reference to
- the light node. */
-error_t node_create (lnode_t *lnode, node_t **node);
-
-/* Destroy a node, remove one reference from the associated light
- node. */
-void node_destroy (node_t *node);
-
-/* Make sure that all ports to the underlying filesystems of NODE,
- which must be locked, are uptodate. */
-error_t node_update (node_t *node);
-
-/* Create a directory named NAME beneath DIR on all the (writable) underlying
- filesystems. */
-error_t node_dir_create (node_t *dir, char *name, mode_t mode);
-
-/* Remove all directory named NAME beneath DIR on all underlying filesystems.
- Fails if we cannot remove all the directories. */
-error_t node_dir_remove (node_t *dir, char *name);
-
-/* Remove all files named NAME beneath DIR on the underlying filesystems
- with FLAGS as openflags. */
-error_t node_unlink_file (node_t *dir, char *name);
-
-/* Lookup a file named NAME beneath DIR on the underlying filesystems
- with FLAGS as openflags. Return the first port successfully looked
- up in *PORT and according stat information in *STAT. */
-error_t node_lookup_file (node_t *dir, char *name, int flags,
- file_t *port, struct stat *stat);
-
-/* Initialize per-ulfs data structures for NODE. The ulfs_lock must
- be held by the caller. */
-error_t node_ulfs_init (node_t *node);
-
-/* Read the merged directory entries from NODE, which must be
- locked, into *DIRENTS. */
-error_t node_entries_get (node_t *node, node_dirent_t **dirents);
-
-/* Free DIRENTS. */
-void node_entries_free (node_dirent_t *dirents);
-
-/* Create the root node (and it's according lnode) and store it in
- *ROOT_NODE. */
-error_t node_create_root (node_t **root_node);
-
-/* Initialize the ports to the underlying filesystems for the root
- node. */
-error_t node_init_root (node_t *node);
-
-/* Return non-zero, if NODE is the root node. */
-#define node_is_root(node) (node)->nn->lnode->dir ? 0 : 1
-
-/* Iterate over the per-ulfs data in NODE, which must be locked by the
- caller. */
-#define node_ulfs_iterate_unlocked(node) \
- for (node_ulfs_t *node_ulfs = (node)->nn->ulfs; \
- node_ulfs < (node)->nn->ulfs + (node)->nn->ulfs_num; \
- node_ulfs++)
-
-#define node_ulfs_iterate_reverse_unlocked(node) \
- for (node_ulfs_t *node_ulfs = (node)->nn->ulfs + (node)->nn->ulfs_num - 1;\
- node_ulfs >= (node)->nn->ulfs; \
- node_ulfs--)
-
-#endif