summaryrefslogtreecommitdiff
path: root/trans/chroot.h
blob: 057a251f9980179c220d11c02d0a3d9a070e1045 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#ifndef __HURD_CHROOT_H__
#define __HURD_CHROOT_H__

struct netnode
{
  file_t file;			/* port on real file */
};

struct chroot_node;

error_t chroot_init (void);

/* Make a new virtual node.  Always consumes the ports.  If
   successful, NP will be locked.  */
error_t chroot_new_node (file_t file, size_t size, struct node **np);

/* Users must implement this.  */
void chroot_node_norefs (struct node *np);

/* Return the address of the chroot_node for NODE.  NODE must have been
   allocated using chroot_new_node.  */
static inline struct chroot_node *
chroot_node (struct node *node)
{
  return (struct chroot_node *) ((char *) netfs_node_netnode (node)
				 + sizeof (struct netnode));
}

// XXX
pthread_mutex_t idport_ihash_lock;
struct hurd_ihash idport_ihash;


#endif /* __HURD_CHROOT_H__ */