mirror of
https://github.com/ipxe/ipxe
synced 2025-12-14 07:50:43 +03:00
[uaccess] Remove redundant read_user()
Signed-off-by: Michael Brown <mcb30@ipxe.org>
This commit is contained in:
@@ -148,7 +148,7 @@ pxenv_file_select ( struct s_PXENV_FILE_SELECT *file_select ) {
|
||||
*
|
||||
*/
|
||||
static PXENV_EXIT_t pxenv_file_read ( struct s_PXENV_FILE_READ *file_read ) {
|
||||
userptr_t buffer;
|
||||
void *buffer;
|
||||
ssize_t len;
|
||||
|
||||
DBG ( "PXENV_FILE_READ %d to %04x:%04x+%04x", file_read->FileHandle,
|
||||
@@ -157,8 +157,8 @@ static PXENV_EXIT_t pxenv_file_read ( struct s_PXENV_FILE_READ *file_read ) {
|
||||
|
||||
buffer = real_to_virt ( file_read->Buffer.segment,
|
||||
file_read->Buffer.offset );
|
||||
if ( ( len = read_user ( file_read->FileHandle, buffer, 0,
|
||||
file_read->BufferSize ) ) < 0 ) {
|
||||
if ( ( len = read ( file_read->FileHandle, buffer,
|
||||
file_read->BufferSize ) ) < 0 ) {
|
||||
file_read->Status = PXENV_STATUS ( len );
|
||||
return PXENV_EXIT_FAILURE;
|
||||
}
|
||||
|
||||
@@ -410,7 +410,8 @@ static __asmcall __used void int22 ( struct i386_all_regs *ix86 ) {
|
||||
int len = ix86->regs.cx * COMBOOT_FILE_BLOCKSZ;
|
||||
int rc;
|
||||
fd_set fds;
|
||||
userptr_t buf = real_to_virt ( ix86->segs.es, ix86->regs.bx );
|
||||
void *buf = real_to_virt ( ix86->segs.es,
|
||||
ix86->regs.bx );
|
||||
|
||||
/* Wait for data ready to read */
|
||||
FD_ZERO ( &fds );
|
||||
@@ -418,7 +419,7 @@ static __asmcall __used void int22 ( struct i386_all_regs *ix86 ) {
|
||||
|
||||
select ( &fds, 1 );
|
||||
|
||||
rc = read_user ( fd, buf, 0, len );
|
||||
rc = read ( fd, buf, len );
|
||||
if ( rc < 0 ) {
|
||||
DBG ( "COMBOOT: read failed\n" );
|
||||
ix86->regs.si = 0;
|
||||
|
||||
@@ -254,15 +254,14 @@ int select ( fd_set *readfds, int wait ) {
|
||||
/**
|
||||
* Read data from file
|
||||
*
|
||||
* @v buffer Data buffer
|
||||
* @v offset Starting offset within data buffer
|
||||
* @v len Maximum length to read
|
||||
* @v buf Data buffer
|
||||
* @v max_len Maximum length to read
|
||||
* @ret len Actual length read, or negative error number
|
||||
*
|
||||
* This call is non-blocking; if no data is available to read then
|
||||
* -EWOULDBLOCK will be returned.
|
||||
*/
|
||||
ssize_t read_user ( int fd, userptr_t buffer, off_t offset, size_t max_len ) {
|
||||
ssize_t read ( int fd, void *buf, size_t max_len ) {
|
||||
struct posix_file *file;
|
||||
struct io_buffer *iobuf;
|
||||
size_t len;
|
||||
@@ -281,7 +280,7 @@ ssize_t read_user ( int fd, userptr_t buffer, off_t offset, size_t max_len ) {
|
||||
len = iob_len ( iobuf );
|
||||
if ( len > max_len )
|
||||
len = max_len;
|
||||
copy_to_user ( buffer, offset, iobuf->data, len );
|
||||
memcpy ( buf, iobuf->data, len );
|
||||
iob_pull ( iobuf, len );
|
||||
if ( ! iob_len ( iobuf ) ) {
|
||||
list_del ( &iobuf->list );
|
||||
|
||||
@@ -10,7 +10,6 @@
|
||||
FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL );
|
||||
|
||||
#include <stdint.h>
|
||||
#include <ipxe/uaccess.h>
|
||||
|
||||
/** Minimum file descriptor that will ever be allocated */
|
||||
#define POSIX_FD_MIN ( 1 )
|
||||
@@ -22,8 +21,7 @@ FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL );
|
||||
typedef uint32_t fd_set;
|
||||
|
||||
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 read ( int fd, void *buf, size_t len );
|
||||
extern int select ( fd_set *readfds, int wait );
|
||||
extern ssize_t fsize ( int fd );
|
||||
extern int close ( int fd );
|
||||
@@ -72,16 +70,4 @@ FD_ISSET ( int fd, fd_set *set ) {
|
||||
return ( *set & ( 1 << 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 /* _IPXE_POSIX_IO_H */
|
||||
|
||||
Reference in New Issue
Block a user