Warning: Attempt to read property "date" on null in /usr/local/www/websvn.planix.org/blame.php on line 247

Warning: Attempt to read property "msg" on null in /usr/local/www/websvn.planix.org/blame.php on line 247
WebSVN – planix.SVN – Blame – /os/branches/feature_fixcpp/sys/src/ape/lib/ap/plan9/sys9.h – Rev 2

Subversion Repositories planix.SVN

Rev

Go to most recent revision | Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
2 - 1
typedef
2
struct Waitmsg
3
{
4
	int pid;	/* of loved one */
5
	unsigned long time[3];	/* of loved one & descendants */
6
	char	*msg;
7
} Waitmsg;
8
 
9
#define	STATMAX	65535U	/* max length of machine-independent stat structure */
10
#define	DIRMAX	(sizeof(Dir)+STATMAX)	/* max length of Dir structure */
11
#define	ERRMAX	128	/* max length of error string */
12
 
13
#define	MORDER	0x0003	/* mask for bits defining order of mounting */
14
#define	MREPL	0x0000	/* mount replaces object */
15
#define	MBEFORE	0x0001	/* mount goes before others in union directory */
16
#define	MAFTER	0x0002	/* mount goes after others in union directory */
17
#define	MCREATE	0x0004	/* permit creation in mounted directory */
18
#define	MCACHE	0x0010	/* cache some data */
19
#define	MMASK	0x0007	/* all bits on */
20
 
21
#define	OREAD	0	/* open for read */
22
#define	OWRITE	1	/* write */
23
#define	ORDWR	2	/* read and write */
24
#define	OEXEC	3	/* execute, == read but check execute permission */
25
#define	OTRUNC	16	/* or'ed in (except for exec), truncate file first */
26
#define	OCEXEC	32	/* or'ed in, close on exec */
27
#define	ORCLOSE	64	/* or'ed in, remove on close */
28
#define	OEXCL	0x1000	/* or'ed in, exclusive use (create only) */
29
 
30
#define	AEXIST	0	/* accessible: exists */
31
#define	AEXEC	1	/* execute access */
32
#define	AWRITE	2	/* write access */
33
#define	AREAD	4	/* read access */
34
 
35
/* Segattch */
36
#define	SG_RONLY	0040	/* read only */
37
#define	SG_CEXEC	0100	/* detach on exec */
38
 
39
#define	NCONT	0	/* continue after note */
40
#define	NDFLT	1	/* terminate after note */
41
#define	NSAVE	2	/* clear note but hold state */
42
#define	NRSTR	3	/* restore saved state */
43
 
44
/* bits in Qid.type */
45
#define QTDIR		0x80		/* type bit for directories */
46
#define QTAPPEND	0x40		/* type bit for append only files */
47
#define QTEXCL		0x20		/* type bit for exclusive use files */
48
#define QTMOUNT		0x10		/* type bit for mounted channel */
49
#define QTFILE		0x00		/* plain file */
50
 
51
/* bits in Dir.mode */
52
#define DMDIR		0x80000000	/* mode bit for directories */
53
#define DMAPPEND	0x40000000	/* mode bit for append only files */
54
#define DMEXCL		0x20000000	/* mode bit for exclusive use files */
55
#define DMMOUNT		0x10000000	/* mode bit for mounted channel */
56
#define DMREAD		0x4		/* mode bit for read permission */
57
#define DMWRITE		0x2		/* mode bit for write permission */
58
#define DMEXEC		0x1		/* mode bit for execute permission */
59
 
60
/* rfork */
61
enum
62
{
63
	RFNAMEG		= (1<<0),
64
	RFENVG		= (1<<1),
65
	RFFDG		= (1<<2),
66
	RFNOTEG		= (1<<3),
67
	RFPROC		= (1<<4),
68
	RFMEM		= (1<<5),
69
	RFNOWAIT	= (1<<6),
70
	RFCNAMEG	= (1<<10),
71
	RFCENVG		= (1<<11),
72
	RFCFDG		= (1<<12),
73
	RFREND		= (1<<13),
74
	RFNOMNT		= (1<<14)
75
};
76
 
77
extern	int	_AWAIT(char*, int);
78
extern	int	_ALARM(unsigned long);
79
extern	int	_BIND(const char*, const char*, int);
80
extern	int	_CHDIR(const char*);
81
extern	int	_CLOSE(int);
82
extern	int	_CREATE(char*, int, unsigned long);
83
extern	int	_DUP(int, int);
84
extern	int	_ERRSTR(char*, unsigned int);
85
extern	int	_EXEC(char*, char*[]);
86
extern	void	_EXITS(char *);
87
extern	int	_FD2PATH(int, char*, int);
88
extern	int	_FAUTH(int, char*);
89
extern	int	_FSESSION(int, char*, int);
90
extern	int	_FSTAT(int, unsigned char*, int);
91
extern	int	_FWSTAT(int, unsigned char*, int);
92
extern	int	_MOUNT(int, int, const char*, int, const char*);
93
extern	int	_NOTED(int);
94
extern	int	_NOTIFY(int(*)(void*, char*));
95
extern	int	_OPEN(const char*, int);
96
extern	int	_PIPE(int*);
97
extern	long	_PREAD(int, void*, long, long long);
98
extern	long	_PWRITE(int, void*, long, long long);
99
extern	long	_READ(int, void*, long);
100
extern	int	_REMOVE(const char*);
101
extern	int	_RENDEZVOUS(unsigned long, unsigned long);
102
extern	int	_RFORK(int);
103
extern	int	_SEGATTACH(int, char*, void*, unsigned long);
104
extern	int	_SEGBRK(void*, void*);
105
extern	int	_SEGDETACH(void*);
106
extern	int	_SEGFLUSH(void*, unsigned long);
107
extern	int	_SEGFREE(void*, unsigned long);
108
extern	long long	_SEEK(int, long long, int);
109
extern	int	_SEMACQUIRE(long*, int);
110
extern	long	_SEMRELEASE(long*, long);
111
extern	int	_SLEEP(long);
112
extern	int	_STAT(const char*, unsigned char*, int);
113
extern	Waitmsg*	_WAIT(void);
114
extern	int	_TSEMACQUIRE(long*, unsigned long);
115
extern	long	_WRITE(int, const void*, long);
116
extern	int	_WSTAT(const char*, unsigned char*, int);
117
 
118
extern	int	__open(char *, int, ...);
119
extern	int	__access(char *, int);
120
extern	int	__chdir(char *);
121
extern	int	__creat(char *, int);
122
extern	int	__link(char *, int);
123
extern	int	__stat(char *, struct stat *);
124
extern	int	__unlink(char *);
125
 
126
/*
127
 * atomic
128
 */
129
long	ainc(long*);
130
long	adec(long*);
131
int	cas32(unsigned long*, unsigned long, unsigned long);
132
int	casp(void**, void*, void*);
133
int	casl(unsigned long*, unsigned long, unsigned long);