summaryrefslogtreecommitdiff
path: root/netfs-sample/lnode.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 /netfs-sample/lnode.h
parente5fca9a10c2622b85cc77e776ea56c8dbb9847e6 (diff)
parentc6db537edac054a03847b1b99f78c00703f48d6b (diff)
Merge branch 'dde' of git.debian.org:/git/pkg-hurd/hurd into dde
Diffstat (limited to 'netfs-sample/lnode.h')
-rw-r--r--netfs-sample/lnode.h143
1 files changed, 0 insertions, 143 deletions
diff --git a/netfs-sample/lnode.h b/netfs-sample/lnode.h
deleted file mode 100644
index 7c42c8d4..00000000
--- a/netfs-sample/lnode.h
+++ /dev/null
@@ -1,143 +0,0 @@
-/*----------------------------------------------------------------------------*/
-/*lnode.h*/
-/*----------------------------------------------------------------------------*/
-/*Management of cheap 'light nodes'*/
-/*----------------------------------------------------------------------------*/
-/*Based on the code of unionfs translator.*/
-/*----------------------------------------------------------------------------*/
-/*Copyright (C) 2001, 2002, 2005 Free Software Foundation, Inc.
- Written by Sergiu Ivanov <unlimitedscolobb@gmail.com>.
-
- 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.*/
-/*----------------------------------------------------------------------------*/
-#ifndef __LNODE_H__
-#define __LNODE_H__
-
-/*----------------------------------------------------------------------------*/
-#include <error.h>
-#include <hurd/netfs.h>
-/*----------------------------------------------------------------------------*/
-
-/*----------------------------------------------------------------------------*/
-/*A candy synonym for the fundamental libnetfs node*/
-typedef struct node node_t;
-/*----------------------------------------------------------------------------*/
-/*The light node*/
-struct lnode
- {
- /*the name of the lnode*/
- char * name;
-
- /*the length of the name; `name` does not change, and this value is used
- quite often, therefore calculate it just once*/
- size_t name_len;
-
- /*the full path to the lnode*/
- char * path;
-
- /*the associated flags*/
- int flags;
-
- /*the number of references to this lnode*/
- int references;
-
- /*the reference to the real node*/
- node_t * node;
-
- /*the next lnode and the pointer to this lnode from the previous one*/
- struct lnode * next, **prevp;
-
- /*the lnode (directory) in which this node is contained*/
- struct lnode * dir;
-
- /*the beginning of the list of entries contained in this lnode (directory)*/
- struct lnode * entries;
-
- /*a lock*/
- struct mutex lock;
- };/*struct lnode*/
-/*----------------------------------------------------------------------------*/
-typedef struct lnode lnode_t;
-/*----------------------------------------------------------------------------*/
-
-/*----------------------------------------------------------------------------*/
-/*--------Functions-----------------------------------------------------------*/
-/*Adds a reference to the `lnode` (which must be locked)*/
-void
-lnode_ref_add
- (
- lnode_t * node
- );
-/*----------------------------------------------------------------------------*/
-/*Removes a reference from `node` (which must be locked). If that was the last
- reference, destroy the node*/
-void
-lnode_ref_remove
- (
- lnode_t * node
- );
-/*----------------------------------------------------------------------------*/
-/*Creates a new lnode with `name`; the new node is locked and contains
- a single reference*/
-error_t
-lnode_create
- (
- char * name,
- lnode_t ** node /*put the result here*/
- );
-/*----------------------------------------------------------------------------*/
-/*Destroys the given lnode*/
-void
-lnode_destroy
- (
- lnode_t * node /*destroy this*/
- );
-/*----------------------------------------------------------------------------*/
-/*Constructs the full path for the given lnode and stores the result both in
- the parameter and inside the lnode (the same string, actually)*/
-error_t
-lnode_path_construct
- (
- lnode_t * node,
- char ** path /*store the path here*/
- );
-/*----------------------------------------------------------------------------*/
-/*Gets a light node by its name, locks it and increments its refcount*/
-error_t
-lnode_get
- (
- lnode_t * dir, /*search here*/
- char * name, /*search for this name*/
- lnode_t ** node /*put the result here*/
- );
-/*----------------------------------------------------------------------------*/
-/*Install the lnode into the lnode tree: add a reference to `dir` (which must
- be locked)*/
-void
-lnode_install
- (
- lnode_t * dir, /*install here*/
- lnode_t * node /*install this*/
- );
-/*----------------------------------------------------------------------------*/
-/*Unistall the node from the node tree; remove a reference from the lnode*/
-void
-lnode_uninstall
- (
- lnode_t * node
- );
-/*----------------------------------------------------------------------------*/
-#endif /*__LNODE_H__*/