BarryServer : Git

All the code for all my projects
// BarryServer : Git / OrionLibC / blob / ad9b6af63f1fdfcf3556c9b2fc670f72cdc60ab4 / sys / stat.c

// Related

OrionLibC

Barry Importing existing Orion LibC 03048a9 (2 years, 2 months ago)
#include <sys/stat.h>
#include <sys/syscall.h>
#include <errno.h>

/* Get file status */
int
stat(const char *pathname, struct stat *statbuf)
{
	int ret;
	asm volatile("int $0x80" : "=a" (ret) : "0" (SYSCALL_STAT),
	             "c" (2), "S" (&pathname));
	if (ret >= 0)
		return ret;
	errno = -ret;
	return -1;

}

/* Get file status by file descriptor */
int
fstat(int fd, struct stat *statbuf)
{
	int ret;
	asm volatile("int $0x80" : "=a" (ret) : "0" (SYSCALL_FSTAT),
	             "c" (2), "S" (&fd));
	if (ret >= 0)
		return ret;
	errno = -ret;
	return -1;

}