diff options
author | patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> | 2012-10-25 03:13:11 +0000 |
---|---|---|
committer | patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> | 2012-10-25 03:13:11 +0000 |
commit | a91b6552cdb1b147461b75128576012192d9e933 (patch) | |
tree | a018506cf7763c9e12ab56b1b81d9677b97264f6 /nuttx/binfmt/libnxflat | |
parent | 0506b554c82a0d7ca6128c11847595d37169777d (diff) | |
download | px4-firmware-a91b6552cdb1b147461b75128576012192d9e933.tar.gz px4-firmware-a91b6552cdb1b147461b75128576012192d9e933.tar.bz2 px4-firmware-a91b6552cdb1b147461b75128576012192d9e933.zip |
A little more ELF loader logic
git-svn-id: http://svn.code.sf.net/p/nuttx/code/trunk@5256 42af7a65-404d-4744-a932-0658087f49c3
Diffstat (limited to 'nuttx/binfmt/libnxflat')
-rw-r--r-- | nuttx/binfmt/libnxflat/libnxflat_init.c | 5 | ||||
-rw-r--r-- | nuttx/binfmt/libnxflat/libnxflat_read.c | 12 |
2 files changed, 10 insertions, 7 deletions
diff --git a/nuttx/binfmt/libnxflat/libnxflat_init.c b/nuttx/binfmt/libnxflat/libnxflat_init.c index 20f06c6ab..b7cac8d86 100644 --- a/nuttx/binfmt/libnxflat/libnxflat_init.c +++ b/nuttx/binfmt/libnxflat/libnxflat_init.c @@ -112,8 +112,9 @@ int nxflat_init(const char *filename, struct nxflat_loadinfo_s *loadinfo) loadinfo->filfd = open(filename, O_RDONLY); if (loadinfo->filfd < 0) { - bdbg("Failed to open NXFLAT binary %s: %d\n", filename, ret); - return -errno; + int errval = errno; + bdbg("Failed to open NXFLAT binary %s: %d\n", filename, errval); + return -errval; } /* Read the NXFLAT header from offset 0 */ diff --git a/nuttx/binfmt/libnxflat/libnxflat_read.c b/nuttx/binfmt/libnxflat/libnxflat_read.c index da05bc399..8deeb0805 100644 --- a/nuttx/binfmt/libnxflat/libnxflat_read.c +++ b/nuttx/binfmt/libnxflat/libnxflat_read.c @@ -129,8 +129,9 @@ int nxflat_read(struct nxflat_loadinfo_s *loadinfo, char *buffer, int readsize, rpos = lseek(loadinfo->filfd, offset, SEEK_SET); if (rpos != offset) { - bdbg("Failed to seek to position %d: %d\n", offset, errno); - return -errno; + int errval = errno; + bdbg("Failed to seek to position %d: %d\n", offset, errval); + return -errval; } /* Read the file data at offset into the user buffer */ @@ -138,10 +139,11 @@ int nxflat_read(struct nxflat_loadinfo_s *loadinfo, char *buffer, int readsize, nbytes = read(loadinfo->filfd, bufptr, bytesleft); if (nbytes < 0) { - if (errno != EINTR) + int errval = errno; + if (errval != EINTR) { - bdbg("Read of .data failed: %d\n", errno); - return -errno; + bdbg("Read of .data failed: %d\n", errval); + return -errval; } } else if (nbytes == 0) |