a5cf0c7532dc55f30ab3af6fbc14e220c0bc9063
[people/sha0/gpxe.git] / src / include / gpxe / posix_io.h
1 #ifndef _GPXE_POSIX_IO_H
2 #define _GPXE_POSIX_IO_H
3
4 /** @file
5  *
6  * POSIX-like I/O
7  *
8  */
9
10 #include <stdint.h>
11 #include <gpxe/uaccess.h>
12
13 extern int open ( const char *uri_string );
14 extern ssize_t read_user ( int fd, userptr_t buffer,
15                            off_t offset, size_t len );
16 extern ssize_t fsize ( int fd );
17 extern int close ( int fd );
18
19 /**
20  * Read data from file
21  *
22  * @v fd                File descriptor
23  * @v buf               Data buffer
24  * @v len               Maximum length to read
25  * @ret len             Actual length read, or negative error number
26  */
27 static inline ssize_t read ( int fd, void *buf, size_t len ) {
28         return read_user ( fd, virt_to_user ( buf ), 0, len );
29 }
30
31 #endif /* _GPXE_POSIX_IO_H */