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/sec/port/libc.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
#define _LOCK_EXTENSION
2
#define _QLOCK_EXTENSION
3
#define _BSD_EXTENSION
4
#include <sys/types.h>
5
#include <lock.h>
6
#include <qlock.h>
7
#include <lib9.h>
8
#include <stdlib.h>
9
#include <string.h>
10
#include <bsd.h>
11
#include <unistd.h>
12
#include <fcntl.h>
13
#include <assert.h>
14
#include <utf.h>
15
#include <fmt.h>
16
#include <signal.h>
17
// #include <time.h>
18
 
19
#define	nelem(x)	(sizeof(x)/sizeof((x)[0]))
20
 
21
extern	int	tokenize(char*, char**, int);
22
 
23
typedef
24
struct Qid
25
{
26
	uvlong	path;
27
	ulong	vers;
28
	uchar	type;
29
} Qid;
30
 
31
typedef
32
struct Dir {
33
	/* system-modified data */
34
	ushort	type;	/* server type */
35
	uint	dev;	/* server subtype */
36
	/* file data */
37
	Qid	qid;	/* unique id from server */
38
	ulong	mode;	/* permissions */
39
	ulong	atime;	/* last read time */
40
	ulong	mtime;	/* last write time */
41
	vlong	length;	/* file length: see <u.h> */
42
	char	*name;	/* last element of path */
43
	char	*uid;	/* owner name */
44
	char	*gid;	/* group name */
45
	char	*muid;	/* last modifier name */
46
} Dir;
47
 
48
uint	_convM2D(uchar*, uint, Dir*, char*);
49
uint	_convD2M(Dir*, uchar*, uint);
50
Dir	*_dirstat(char*);
51
int	_dirwstat(char*, Dir*);
52
Dir	*_dirfstat(int);
53
int	_dirfwstat(int, Dir*);
54
long	_dirread(int, Dir**);
55
long _dirreadall(int, Dir**);
56
void _nulldir(Dir*);
57
uint _sizeD2M(Dir*);
58
 
59
typedef
60
struct Waitmsg
61
{
62
	int pid;	/* of loved one */
63
	unsigned long time[3];	/* of loved one & descendants */
64
	char	*msg;
65
} Waitmsg;
66
 
67
/*
68
 * Time-of-day
69
 */
70
 
71
typedef
72
struct Tm
73
{
74
	int	sec;
75
	int	min;
76
	int	hour;
77
	int	mday;
78
	int	mon;
79
	int	year;
80
	int	wday;
81
	int	yday;
82
	char	zone[4];
83
	int	tzoff;
84
} Tm;
85
 
86
extern	Tm*	gmtime(long);
87
extern	Tm*	localtime(long);
88
extern	char*	asctime(Tm*);
89
extern	char*	ctime(long);
90
extern	double	cputime(void);
91
extern	long	times(long*);
92
extern	long	tm2sec(Tm*);
93
extern	vlong	nsec(void);
94
 
95
extern	void	cycles(uvlong*);	/* 64-bit value of the cycle counter if there is one, 0 if there isn't */
96
 
97
extern	long	time(long*);
98
 
99
extern	int	_AWAIT(char*, int);
100
extern	int	_ALARM(unsigned long);
101
extern	int	_BIND(const char*, const char*, int);
102
extern	int	_CHDIR(const char*);
103
extern	int	_CLOSE(int);
104
extern	int	_CREATE(char*, int, unsigned long);
105
extern	int	_DUP(int, int);
106
extern	int	_ERRSTR(char*, unsigned int);
107
extern	int	_EXEC(char*, char*[]);
108
extern	void	_EXITS(char *);
109
extern	int	_FD2PATH(int, char*, int);
110
extern	int	_FAUTH(int, char*);
111
extern	int	_FSESSION(int, char*, int);
112
extern	int	_FSTAT(int, unsigned char*, int);
113
extern	int	_FWSTAT(int, unsigned char*, int);
114
extern	int	_MOUNT(int, int, const char*, int, const char*);
115
extern	int	_NOTED(int);
116
extern	int	_NOTIFY(int(*)(void*, char*));
117
extern	int	_OPEN(const char*, int);
118
extern	int	_PIPE(int*);
119
extern	long	_PREAD(int, void*, long, long long);
120
extern	long	_PWRITE(int, void*, long, long long);
121
extern	long	_READ(int, void*, long);
122
extern	int	_REMOVE(const char*);
123
extern	int	_RENDEZVOUS(unsigned long, unsigned long);
124
extern	int	_RFORK(int);
125
extern	int	_SEGATTACH(int, char*, void*, unsigned long);
126
extern	int	_SEGBRK(void*, void*);
127
extern	int	_SEGDETACH(void*);
128
extern	int	_SEGFLUSH(void*, unsigned long);
129
extern	int	_SEGFREE(void*, unsigned long);
130
extern	long long	_SEEK(int, long long, int);
131
extern	int	_SLEEP(long);
132
extern	int	_STAT(const char*, unsigned char*, int);
133
extern	Waitmsg*	_WAIT(void);
134
extern	long	_WRITE(int, const void*, long);
135
extern	int	_WSTAT(const char*, unsigned char*, int);
136
extern 	void *_MALLOCZ(int, int);
137
extern	int	_WERRSTR(char*, ...);
138
extern	long	_READN(int, void*, long);
139
extern	int	_IOUNIT(int);
140
 
141
#define dirstat _dirstat
142
#define dirfstat _dirfstat
143
 
144
#define OREAD 0
145
#define OWRITE 1
146
#define ORDWR 2
147
#define OCEXEC 32
148
 
149
#define AREAD 4
150
#define AWRITE 2
151
#define AEXEC 1
152
#define AEXIST 0
153
 
154
#define open _OPEN
155
#define close _CLOSE
156
#define read _READ
157
#define write _WRITE
158
#define _exits(s) _exit(s && *(char*)s ? 1 : 0)
159
#define exits(s) exit(s && *(char*)s ? 1 : 0)
160
#define create _CREATE
161
#define pread _PREAD
162
#define readn _READN
163
#define mallocz _MALLOCZ
164
#define iounit	_IOUNIT
165
 
166
/* assume being called as in event.c */
167
#define postnote(x, pid, msg) kill(pid, SIGTERM)
168
#define atnotify(x, y) signal(SIGTERM, ekill)
169
 
170
#define ERRMAX 128
171
 
172
extern	void	setmalloctag(void*, ulong);
173
extern	ulong	getcallerpc(void*);
174
 
175
/* Used in libsec.h and not picked up in earlier type definitions */
176
typedef unsigned int u32int;
177
typedef unsigned long long u64int;
178
 
179
int  dec16(uchar *, int, char *, int);
180
int  enc16(char *, int, uchar *, int);
181
int  dec32(uchar *, int, char *, int);
182
int  enc32(char *, int, uchar *, int);
183
int  dec64(uchar *, int, char *, int);
184
int  enc64(char *, int, uchar *, int);
185
 
186
extern	vlong	nsec(void);
187
 
188
extern void sysfatal(char*, ...);
189
 
190
extern	ulong	truerand(void);			/* uses /dev/random */
191
extern	int	getfields(char*, char**, int, int, char*);
192
 
193
#pragma	varargck	type	"lld"	vlong
194
#pragma	varargck	type	"llo"	vlong
195
#pragma	varargck	type	"llx"	vlong
196
#pragma	varargck	type	"llb"	vlong
197
#pragma	varargck	type	"lld"	uvlong
198
#pragma	varargck	type	"llo"	uvlong
199
#pragma	varargck	type	"llx"	uvlong
200
#pragma	varargck	type	"llb"	uvlong
201
#pragma	varargck	type	"ld"	long
202
#pragma	varargck	type	"lo"	long
203
#pragma	varargck	type	"lx"	long
204
#pragma	varargck	type	"lb"	long
205
#pragma	varargck	type	"ld"	ulong
206
#pragma	varargck	type	"lo"	ulong
207
#pragma	varargck	type	"lx"	ulong
208
#pragma	varargck	type	"lb"	ulong
209
#pragma	varargck	type	"d"	int
210
#pragma	varargck	type	"o"	int
211
#pragma	varargck	type	"x"	int
212
#pragma	varargck	type	"c"	int
213
#pragma	varargck	type	"C"	int
214
#pragma	varargck	type	"b"	int
215
#pragma	varargck	type	"d"	uint
216
#pragma	varargck	type	"x"	uint
217
#pragma	varargck	type	"c"	uint
218
#pragma	varargck	type	"C"	uint
219
#pragma	varargck	type	"b"	uint
220
#pragma	varargck	type	"f"	double
221
#pragma	varargck	type	"e"	double
222
#pragma	varargck	type	"g"	double
223
#pragma	varargck	type	"s"	char*
224
#pragma	varargck	type	"q"	char*
225
#pragma	varargck	type	"S"	Rune*
226
#pragma	varargck	type	"Q"	Rune*
227
#pragma	varargck	type	"r"	void
228
#pragma	varargck	type	"%"	void
229
#pragma	varargck	type	"n"	int*
230
#pragma	varargck	type	"p"	ulong		/* uintptr */
231
#pragma	varargck	type	"p"	void*
232
#pragma	varargck	flag	','
233
#pragma	varargck	flag	' '
234
#pragma	varargck	flag	'h'
235
#pragma varargck	type	"<"	void*
236
#pragma varargck	type	"["	void*
237
#pragma varargck	type	"H"	void*
238
#pragma varargck	type	"lH"	void*