aboutsummaryrefslogtreecommitdiff
path: root/src/helper/fileio.c
diff options
context:
space:
mode:
authorMarc Schink <openocd-dev@marcschink.de>2015-10-02 17:35:15 +0200
committerFreddie Chopin <freddie.chopin@gmail.com>2015-11-03 22:14:07 +0000
commit24d9f0cfa0ee84e927d84957cab22c6571fa3185 (patch)
tree6b3b46834c4537b93852662d68d8b5c209fe54a5 /src/helper/fileio.c
parent0578e4c4f4fbaec3e833fec0c118cee4698ce7c6 (diff)
downloadriscv-openocd-24d9f0cfa0ee84e927d84957cab22c6571fa3185.zip
riscv-openocd-24d9f0cfa0ee84e927d84957cab22c6571fa3185.tar.gz
riscv-openocd-24d9f0cfa0ee84e927d84957cab22c6571fa3185.tar.bz2
helper/fileio: Use size_t for file size.
Change-Id: Ie116b44ba15e8ae41ca9ed4a354a82b2c4a92233 Signed-off-by: Marc Schink <openocd-dev@marcschink.de> Reviewed-on: http://openocd.zylin.com/2997 Tested-by: jenkins Reviewed-by: Spencer Oliver <spen@spen-soft.co.uk>
Diffstat (limited to 'src/helper/fileio.c')
-rw-r--r--src/helper/fileio.c17
1 files changed, 11 insertions, 6 deletions
diff --git a/src/helper/fileio.c b/src/helper/fileio.c
index c6f45e6..9d39313 100644
--- a/src/helper/fileio.c
+++ b/src/helper/fileio.c
@@ -34,7 +34,7 @@
struct fileio_internal {
char *url;
- ssize_t size;
+ size_t size;
enum fileio_type type;
enum fileio_access access;
FILE *file;
@@ -44,6 +44,7 @@ static inline int fileio_close_local(struct fileio_internal *fileio);
static inline int fileio_open_local(struct fileio_internal *fileio)
{
char file_access[4];
+ ssize_t file_size;
switch (fileio->access) {
case FILEIO_READ:
@@ -78,6 +79,8 @@ static inline int fileio_open_local(struct fileio_internal *fileio)
return ERROR_FILEIO_OPERATION_FAILED;
}
+ file_size = 0;
+
if ((fileio->access != FILEIO_WRITE) || (fileio->access == FILEIO_READWRITE)) {
/* NB! Here we use fseek() instead of stat(), since stat is a
* more advanced operation that might not apply to e.g. a disk path
@@ -86,16 +89,17 @@ static inline int fileio_open_local(struct fileio_internal *fileio)
result = fseek(fileio->file, 0, SEEK_END);
- fileio->size = ftell(fileio->file);
+ file_size = ftell(fileio->file);
result2 = fseek(fileio->file, 0, SEEK_SET);
- if ((fileio->size < 0) || (result < 0) || (result2 < 0)) {
+ if ((file_size < 0) || (result < 0) || (result2 < 0)) {
fileio_close_local(fileio);
return ERROR_FILEIO_OPERATION_FAILED;
}
- } else
- fileio->size = 0x0;
+ }
+
+ fileio->size = file_size;
return ERROR_OK;
}
@@ -245,9 +249,10 @@ int fileio_write_u32(struct fileio *fileio_p, uint32_t data)
* Avoiding the seek on startup opens up for using streams.
*
*/
-int fileio_size(struct fileio *fileio_p, int *size)
+int fileio_size(struct fileio *fileio_p, size_t *size)
{
struct fileio_internal *fileio = fileio_p->fp;
*size = fileio->size;
+
return ERROR_OK;
}