From 86a948ccbe162d584be846228438fc086bce66fa Mon Sep 17 00:00:00 2001 From: Michael Brown Date: Fri, 18 May 2007 14:19:22 +0000 Subject: Added POSIX-style blocking I/O calls, for use by PXE TFTP API. --- src/include/gpxe/posix_io.h | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 src/include/gpxe/posix_io.h (limited to 'src/include') diff --git a/src/include/gpxe/posix_io.h b/src/include/gpxe/posix_io.h new file mode 100644 index 000000000..a5cf0c753 --- /dev/null +++ b/src/include/gpxe/posix_io.h @@ -0,0 +1,31 @@ +#ifndef _GPXE_POSIX_IO_H +#define _GPXE_POSIX_IO_H + +/** @file + * + * POSIX-like I/O + * + */ + +#include +#include + +extern int open ( const char *uri_string ); +extern ssize_t read_user ( int fd, userptr_t buffer, + off_t offset, size_t len ); +extern ssize_t fsize ( int fd ); +extern int close ( int fd ); + +/** + * Read data from file + * + * @v fd File descriptor + * @v buf Data buffer + * @v len Maximum length to read + * @ret len Actual length read, or negative error number + */ +static inline ssize_t read ( int fd, void *buf, size_t len ) { + return read_user ( fd, virt_to_user ( buf ), 0, len ); +} + +#endif /* _GPXE_POSIX_IO_H */ -- cgit v1.2.3-55-g7522