예제 #1
0
파일: syscall_fs.c 프로젝트: Abioy/FUZIX
int16_t _write(void)
{
	inoptr ino;
	uint8_t flag;

	if (!valaddr(buf, nbytes))
	        return -1;
	/* Set up u_base, u_offset, ino; check permissions, file num. */
	if ((ino = rwsetup(false, &flag)) == NULLINODE)
		return (-1);	/* bomb out if error */

	writei(ino, flag);
	updoff();

	return (udata.u_count);
}
예제 #2
0
파일: syscall_fs.c 프로젝트: 8l/FUZIX
arg_t _read(void)
{
	inoptr ino;
	uint8_t flag;

	if (!nbytes)
	        return 0;

	if (!valaddr(buf, nbytes))
	        return -1;
	/* Set up u_base, u_offset, ino; check permissions, file num. */
	if ((ino = rwsetup(true, &flag)) == NULLINODE)
		return -1;	/* bomb out if error */

	readi(ino, flag);
	updoff();

	return (udata.u_count);
}