aboutsummaryrefslogtreecommitdiff
path: root/libtreefs/rights.c
diff options
context:
space:
mode:
Diffstat (limited to 'libtreefs/rights.c')
-rw-r--r--libtreefs/rights.c96
1 files changed, 0 insertions, 96 deletions
diff --git a/libtreefs/rights.c b/libtreefs/rights.c
deleted file mode 100644
index f803b029..00000000
--- a/libtreefs/rights.c
+++ /dev/null
@@ -1,96 +0,0 @@
-/* Functions for making send rights in various ways
-
- Copyright (C) 1995 Free Software Foundation, Inc.
-
- Written by Miles Bader <miles@gnu.ai.mit.edu>
-
- This file is part of the GNU Hurd.
-
- The GNU Hurd 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, or (at
- your option) any later version.
-
- The GNU Hurd 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., 675 Mass Ave, Cambridge, MA 02139, USA. */
-
-/* Return in PORT a send right for a new protid, pointing at the peropen PO,
- with rights initialized from AUTH. */
-error_t
-treefs_peropen_create_right (struct treefs_peropen *po,
- struct treefs_auth *auth,
- mach_port_t *port)
-{
- struct treefs_node *node = po->node;
- struct treefs_fsys *fsys = node->fsys;
- struct treefs_handle *handle =
- ports_allocate_port (fsys->port_bucket,
- sizeof (struct treefs_handle),
- fsys->handle_port_class);
-
- if (handle == NULL)
- return MACH_PORT_NULL;
-
- handle->po = po;
- po->refs++;
- handle->auth = auth;
- auth->refs++;
-
- err = treefs_node_init_handle (node, handle);
- if (err)
- {
- po->refs--;
- auth->refs--;
- }
-
- *port = ports_get_right (handle);
-
- return 0;
-}
-
-/* Return in PORT a send right for a new handle and a new peropen, pointing
- at NODE, with rights initialized from AUTH. FLAGS and PARENT_PORT are used
- to initialize the corresponding fields in the new peropen. */
-error_t
-treefs_node_create_right (struct treefs_node *node, int flags,
- mach_port_t parent_port, struct treefs_auth *auth,
- mach_port_t *port)
-{
- struct treefs_peropen *po = malloc (sizeof (struct treefs_peropen));
-
- if (po == NULL)
- return ENOMEM;
-
- /* Initialize the peropen structure. */
- po->refs = 0;
- po->node = node;
- po->open_flags = flags;
- po->user_lock_state = LOCK_UN;
- po->parent_port = parent_port;
- if (parent_port != MACH_PORT_NULL)
- mach_port_mod_refs (mach_task_self (),
- parent_port, MACH_PORT_RIGHT_SEND, 1);
-
- treefs_node_ref (node);
-
- err = treefs_node_init_peropen (node, po, flags, auth);
- if (err)
- goto puke;
-
- err = treefs_peropen_create_right (po, auth, port);
- if (err)
- goto puke;
-
- return 0;
-
- puke:
- treefs_node_unref (node);
- free (po);
- return err;
-}