fs/vfs: file_read() is an internal OS interface and should not errors via the errno
This commit is contained in:
parent
9043b9cb6a
commit
e761b80ea7
6 changed files with 22 additions and 31 deletions
|
|
@ -1,7 +1,7 @@
|
|||
/****************************************************************************
|
||||
* configs/nucleo-f3x1re/src/stm32_ajoystick.c
|
||||
*
|
||||
* Copyright (C) 2014, 2016 Gregory Nutt. All rights reserved.
|
||||
* Copyright (C) 2014, 2016-2017 Gregory Nutt. All rights reserved.
|
||||
* Author: Gregory Nutt <gnutt@nuttx.org>
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
|
|
@ -210,13 +210,12 @@ static int ajoy_sample(FAR const struct ajoy_lowerhalf_s *lower,
|
|||
MAX_ADC_CHANNELS * sizeof(struct adc_msg_s));
|
||||
if (nread < 0)
|
||||
{
|
||||
int errcode = get_errno();
|
||||
if (errcode != EINTR)
|
||||
if (nread != -EINTR)
|
||||
{
|
||||
ierr("ERROR: read failed: %d\n", errcode);
|
||||
ierr("ERROR: read failed: %d\n", (int)nread);
|
||||
}
|
||||
|
||||
return -errcode;
|
||||
return nread;
|
||||
}
|
||||
else if (nread < NJOYSTICK_CHANNELS * sizeof(struct adc_msg_s))
|
||||
{
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
/****************************************************************************
|
||||
* configs/nucleo-l476rg/src/stm32_ajoystick.c
|
||||
*
|
||||
* Copyright (C) 2014, 2016 Gregory Nutt. All rights reserved.
|
||||
* Copyright (C) 2014, 2016-2017 Gregory Nutt. All rights reserved.
|
||||
* Author: Gregory Nutt <gnutt@nuttx.org>
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
|
|
@ -209,13 +209,12 @@ static int ajoy_sample(FAR const struct ajoy_lowerhalf_s *lower,
|
|||
MAX_ADC_CHANNELS * sizeof(struct adc_msg_s));
|
||||
if (nread < 0)
|
||||
{
|
||||
int errcode = get_errno();
|
||||
if (errcode != EINTR)
|
||||
if (nread != -EINTR)
|
||||
{
|
||||
ierr("ERROR: read failed: %d\n", errcode);
|
||||
ierr("ERROR: read failed: %d\n", (int)nread);
|
||||
}
|
||||
|
||||
return -errcode;
|
||||
return nread;
|
||||
}
|
||||
else if (nread < NJOYSTICK_CHANNELS * sizeof(struct adc_msg_s))
|
||||
{
|
||||
|
|
|
|||
|
|
@ -191,13 +191,12 @@ static int ajoy_sample(FAR const struct ajoy_lowerhalf_s *lower,
|
|||
MAX_ADC_CHANNELS * sizeof(struct adc_msg_s));
|
||||
if (nread < 0)
|
||||
{
|
||||
int errcode = get_errno();
|
||||
if (errcode != EINTR)
|
||||
if (nread != iEINTR)
|
||||
{
|
||||
ierr("ERROR: read failed: %d\n", errcode);
|
||||
ierr("ERROR: read failed: %d\n", (int)nread);
|
||||
}
|
||||
|
||||
return -errcode;
|
||||
return nread;
|
||||
}
|
||||
else if (nread < 2 * sizeof(struct adc_msg_s))
|
||||
{
|
||||
|
|
|
|||
|
|
@ -95,7 +95,7 @@ ssize_t file_pread(FAR struct file *filep, FAR void *buf, size_t nbytes,
|
|||
ret = file_read(filep, buf, nbytes);
|
||||
if (ret < 0)
|
||||
{
|
||||
errcode = get_errno();
|
||||
errcode = -ret;
|
||||
ret = ERROR;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
/****************************************************************************
|
||||
* fs/vfs/fs_read.c
|
||||
*
|
||||
* Copyright (C) 2007-2009, 2012-2014, 2016 Gregory Nutt. All rights reserved.
|
||||
* Copyright (C) 2007-2009, 2012-2014, 2016-2017 Gregory Nutt. All rights reserved.
|
||||
* Author: Gregory Nutt <gnutt@nuttx.org>
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
|
|
@ -102,15 +102,7 @@ ssize_t file_read(FAR struct file *filep, FAR void *buf, size_t nbytes)
|
|||
ret = (int)inode->u.i_ops->read(filep, (FAR char *)buf, (size_t)nbytes);
|
||||
}
|
||||
|
||||
/* If an error occurred, set errno and return -1 (ERROR) */
|
||||
|
||||
if (ret < 0)
|
||||
{
|
||||
set_errno(-ret);
|
||||
return ERROR;
|
||||
}
|
||||
|
||||
/* Otherwise, return the number of bytes read */
|
||||
/* Return the number of bytes read (or possibly an error code) */
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
|
@ -180,11 +172,14 @@ ssize_t read(int fd, FAR void *buf, size_t nbytes)
|
|||
}
|
||||
else
|
||||
{
|
||||
/* Then let file_read do all of the work. Note that file_read()
|
||||
* sets the errno variable.
|
||||
*/
|
||||
/* Then let file_read do all of the work. */
|
||||
|
||||
ret = file_read(filep, buf, nbytes);
|
||||
if (ret < 0)
|
||||
{
|
||||
set_errno((int)-ret);
|
||||
ret = ERROR;
|
||||
}
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -402,9 +402,8 @@ static uint16_t sendfile_eventhandler(FAR struct net_driver_s *dev,
|
|||
ret = file_read(pstate->snd_file, dev->d_appdata, sndlen);
|
||||
if (ret < 0)
|
||||
{
|
||||
int errcode = get_errno();
|
||||
nerr("ERROR: Failed to read from input file: %d\n", errcode);
|
||||
pstate->snd_sent = -errcode;
|
||||
nerr("ERROR: Failed to read from input file: %d\n", (int)ret);
|
||||
pstate->snd_sent = ret;
|
||||
goto end_wait;
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue