Subversion Repositories planix.SVN

Rev

Rev 2 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
2 - 1
#include "sam.h"
2
 
3
static int inerror=FALSE;
4
 
5
/*
6
 * A reasonable interface to the system calls
7
 */
8
 
9
void
10
resetsys(void)
11
{
12
	inerror = FALSE;
13
}
14
 
15
void
16
syserror(char *a)
17
{
18
	char buf[ERRMAX];
19
 
20
	if(!inerror){
21
		inerror=TRUE;
22
		errstr(buf, sizeof buf);
23
		dprint("%s: ", a);
24
		error_s(Eio, buf);
25
	}
26
}
27
 
28
int
29
Read(int f, void *a, int n)
30
{
31
	char buf[ERRMAX];
32
 
33
	if(read(f, (char *)a, n)!=n) {
34
		if (lastfile)
35
			lastfile->rescuing = 1;
36
		errstr(buf, sizeof buf);
37
		if (downloaded)
38
			fprint(2, "read error: %s\n", buf);
39
		rescue();
40
		exits("read");
41
	}
42
	return n;
43
}
44
 
45
int
46
Write(int f, void *a, int n)
47
{
48
	int m;
49
 
50
	if((m=write(f, (char *)a, n))!=n)
51
		syserror("write");
52
	return m;
53
}
54
 
55
void
56
Seek(int f, long n, int w)
57
{
58
	if(seek(f, n, w)==-1)
59
		syserror("seek");
60
}