Пример #1
0
Файл: devfs.c Проект: 8l/inferno
int
fswstat(Chan *c, uchar *dp, int n)
{
	osenter();
	if(FS(c)->fd >= 0)
		n = fwstat(FS(c)->fd, dp, n);
	else
		n = wstat(FS(c)->name->s, dp, n);
	osleave();
	if(n < 0)
		fserr(FS(c));
	return n;
}
Пример #2
0
int
dirfwstat(int fd, Dir *d)
{
	uint8_t *buf;
	int r;

	r = sizeD2M(d);
	buf = malloc(r);
	if(buf == nil)
		return -1;
	convD2M(d, buf, r);
	r = fwstat(fd, buf, r);
	free(buf);
	return r;
}
Пример #3
0
static void
sysfwstat(void)
{
	u32int fd, edir, nedir;
	void *edirt;
	int copied;
	
	fd = arg(0);
	edir = arg(1);
	nedir = arg(2);
	edirt = copyifnec(edir, nedir, &copied);
	if(systrace)
		fprint(2, "fwstat(%d, %#ux, %d)\n", fd, edir, nedir);
	P->R[0] = noteerr(fwstat(fd, edirt, nedir), nedir);
	if(copied)
		free(edirt);
}