1#ifndef PSEUDO_H
2#define PSEUDO_H
3/*
4 * Create a squashfs filesystem.  This is a highly compressed read only
5 * filesystem.
6 *
7 * Copyright (c) 2009, 2010, 2014
8 * Phillip Lougher <phillip@squashfs.org.uk>
9 *
10 * This program is free software; you can redistribute it and/or
11 * modify it under the terms of the GNU General Public License
12 * as published by the Free Software Foundation; either version 2,
13 * or (at your option) any later version.
14 *
15 * This program is distributed in the hope that it will be useful,
16 * but WITHOUT ANY WARRANTY; without even the implied warranty of
17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
18 * GNU General Public License for more details.
19 *
20 * You should have received a copy of the GNU General Public License
21 * along with this program; if not, write to the Free Software
22 * Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
23 *
24 * pseudo.h
25 */
26struct pseudo_dev {
27	char		type;
28	unsigned int	mode;
29	unsigned int	uid;
30	unsigned int	gid;
31	unsigned int	major;
32	unsigned int	minor;
33	int		pseudo_id;
34	char		*command;
35};
36
37struct pseudo_entry {
38	char			*name;
39	char			*pathname;
40	struct pseudo		*pseudo;
41	struct pseudo_dev	*dev;
42};
43
44struct pseudo {
45	int			names;
46	int			count;
47	struct pseudo_entry	*name;
48};
49
50extern int read_pseudo_def(char *);
51extern int read_pseudo_file(char *);
52extern struct pseudo *pseudo_subdir(char *, struct pseudo *);
53extern struct pseudo_entry *pseudo_readdir(struct pseudo *);
54extern struct pseudo_dev *get_pseudo_file(int);
55extern int pseudo_exec_file(struct pseudo_dev *, int *);
56extern struct pseudo *get_pseudo();
57extern void dump_pseudos();
58#endif
59