arm: semihosting: get rid of forward declarations
PATCH 3/3 arm: semihosting: get rid of forward declarations
By rearranging the functions in the semihosting code we can avoid forward-declaration of the internal static functions. This puts the stuff in a logical order: read/open/close/len and then higher-order functions follow at the end.
Cc Darwin Rambo <[email protected]>
Cc AKASHI Takahiro <[email protected]>
Cc Mark Hambleton <[email protected]>
Cc Tom Rini <[email protected]>
Signed-off-by Linus Walleij <[email protected]>
--- arch/arm/lib/semihosting.c | 173 ++++++++++++++++++++++----------------------- 1 file changed, 84 insertions(+), 89 deletions(-)
arch/arm/lib/semihosting.c +84 -89
@@ -23,11 +23,6 @@#define MODE_READ 0x0#define MODE_READBIN 0x1 -static long smh_read (long fd,void *memp,size_t len); -static long smh_open (const char *fname,char *modestr); -static long smh_close (long fd); -static long smh_len_fd (long fd); -/* * Call the handler */
@@ -44,60 +39,43 @@ static long smh_trap(unsigned int sysnum, void *addr) }/* -* Open, load a file into memory, and close it. Check that the available space -* is sufficient to store the entire file. Return the bytes actually read from -* the file as seen by the read function. The verbose flag enables some extra -* printing of successful read status. +* Open a file on the host. Mode is "r" or "rb" currently. Returns a file +* descriptor or -1 on error. */ -int smh_load (const char *fname,void *memp,int avail,int verbose) +static long smh_open (const char *fname,char *modestr) { -long ret;long fd; -size_t len; - - ret =-1 ; - -debug ("%s: fname \'%s\', avail %u, memp %p\n" , __func__, fname, - avail, memp); - -/* Open the file */ - fd =smh_open (fname,"rb" ); -if (fd ==-1 ) -return -1 ; +unsigned long mode; +struct smh_open_s { +const char *fname; +unsigned long mode; +size_t len; + } open; -/* Get the file length */ - ret =smh_len_fd (fd); -if (ret ==-1 ) { -smh_close (fd); -return -1 ; - } +debug ("%s: file \'%s\', mode \'%s\'\n" , __func__, fname, modestr); -/* Check that the file will fit in the supplied buffer */ -if (ret > avail) { -printf ("%s: ERROR ret %ld, avail %u\n" , __func__, ret, - avail); -smh_close (fd); +/* Check the file mode */ +if (!(strcmp (modestr,"r" ))) { + mode =MODE_READ ; + }else if (!(strcmp (modestr,"rb" ))) { + mode =MODE_READBIN ; + }else { +printf ("%s: ERROR mode \'%s\' not supported\n" , __func__, + modestr);return -1 ; } - len = ret; - -/* Read the file into the buffer */ - ret =smh_read (fd, memp, len); -if (ret ==0 ) { -/* Print successful load information if requested */ -if (verbose) { -printf ("\n%s\n" , fname); -printf (" 0x%8p dest\n" , memp); -printf (" 0x%08lx size\n" , len); -printf (" 0x%08x avail\n" , avail); - } - } + open.fname = fname; + open.len =strlen (fname); + open.mode = mode; -/* Close the file */ -smh_close (fd); +/* Open the file on the host */ + fd =smh_trap (SYSOPEN , &open); +if (fd ==-1 ) +printf ("%s: ERROR fd %ld for file \'%s\'\n" , __func__, fd, + fname); -return ret; +return fd; }/*
@@ -135,46 +113,6 @@ static long smh_read(long fd, void *memp, size_t len) }/* -* Open a file on the host. Mode is "r" or "rb" currently. Returns a file -* descriptor or -1 on error. -*/ -static long smh_open (const char *fname,char *modestr) -{ -long fd; -unsigned long mode; -struct smh_open_s { -const char *fname; -unsigned long mode; -size_t len; - } open; - -debug ("%s: file \'%s\', mode \'%s\'\n" , __func__, fname, modestr); - -/* Check the file mode */ -if (!(strcmp (modestr,"r" ))) { - mode =MODE_READ ; - }else if (!(strcmp (modestr,"rb" ))) { - mode =MODE_READBIN ; - }else { -printf ("%s: ERROR mode \'%s\' not supported\n" , __func__, - modestr); -return -1 ; - } - - open.fname = fname; - open.len =strlen (fname); - open.mode = mode; - -/* Open the file on the host */ - fd =smh_trap (SYSOPEN , &open); -if (fd ==-1 ) -printf ("%s: ERROR fd %ld for file \'%s\'\n" , __func__, fd, - fname); - -return fd; -} - -/* * Close the file using the file descriptor */ static long smh_close (long fd)
@@ -207,6 +145,63 @@ static long smh_len_fd(long fd) }/* +* Open, load a file into memory, and close it. Check that the available space +* is sufficient to store the entire file. Return the bytes actually read from +* the file as seen by the read function. The verbose flag enables some extra +* printing of successful read status. +*/ +int smh_load (const char *fname,void *memp,int avail,int verbose) +{ +long ret; +long fd; +size_t len; + + ret =-1 ; + +debug ("%s: fname \'%s\', avail %u, memp %p\n" , __func__, fname, + avail, memp); + +/* Open the file */ + fd =smh_open (fname,"rb" ); +if (fd ==-1 ) +return -1 ; + +/* Get the file length */ + ret =smh_len_fd (fd); +if (ret ==-1 ) { +smh_close (fd); +return -1 ; + } + +/* Check that the file will fit in the supplied buffer */ +if (ret > avail) { +printf ("%s: ERROR ret %ld, avail %u\n" , __func__, ret, + avail); +smh_close (fd); +return -1 ; + } + + len = ret; + +/* Read the file into the buffer */ + ret =smh_read (fd, memp, len); +if (ret ==0 ) { +/* Print successful load information if requested */ +if (verbose) { +printf ("\n%s\n" , fname); +printf (" 0x%8p dest\n" , memp); +printf (" 0x%08lx size\n" , len); +printf (" 0x%08x avail\n" , avail); + } + } + +/* Close the file */ +smh_close (fd); + +return ret; +} + +/* * Get the file length from the filename */ long smh_len (const char *fname)
Signature · 1 line
1.9.3
PATCH 3/3 arm: semihosting: get rid of forward declarations
Acked-by Steve Rae <[email protected]>
Quoted 230 lines · Linus Walleij
By rearranging the functions in the semihosting code we can avoid forward-declaration of the internal static functions. This puts the stuff in a logical order: read/open/close/len and then higher-order functions follow at the end.
Cc Darwin Rambo <[email protected]>Cc AKASHI Takahiro <[email protected]>Cc Mark Hambleton <[email protected]>Cc Tom Rini <[email protected]>Signed-off-by Linus Walleij <[email protected]>--- arch/arm/lib/semihosting.c | 173 ++++++++++++++++++++++----------------------- 1 file changed, 84 insertions(+), 89 deletions(-)arch/arm/lib/semihosting.c +84
-89@@ -23,11 +23,6 @@#define MODE_READ 0x0#define MODE_READBIN 0x1 -static long smh_read (long fd,void *memp,size_t len); -static long smh_open (const char *fname,char *modestr); -static long smh_close (long fd); -static long smh_len_fd (long fd); -/* * Call the handler */ @@ -44,60 +39,43 @@ static long smh_trap(unsigned int sysnum, void *addr) }/* -* Open, load a file into memory, and close it. Check that the available space -* is sufficient to store the entire file. Return the bytes actually read from -* the file as seen by the read function. The verbose flag enables some extra -* printing of successful read status. +* Open a file on the host. Mode is "r" or "rb" currently. Returns a file +* descriptor or -1 on error. */ -int smh_load (const char *fname,void *memp,int avail,int verbose) +static long smh_open (const char *fname,char *modestr) { -long ret;long fd; -size_t len; - - ret =-1 ; - -debug ("%s: fname \'%s\', avail %u, memp %p\n" , __func__, fname, - avail, memp); - -/* Open the file */ - fd =smh_open (fname,"rb" ); -if (fd ==-1 ) -return -1 ; +unsigned long mode; +struct smh_open_s { +const char *fname; +unsigned long mode; +size_t len; + } open; -/* Get the file length */ - ret =smh_len_fd (fd); -if (ret ==-1 ) { -smh_close (fd); -return -1 ; - } +debug ("%s: file \'%s\', mode \'%s\'\n" , __func__, fname, modestr); -/* Check that the file will fit in the supplied buffer */ -if (ret > avail) { -printf ("%s: ERROR ret %ld, avail %u\n" , __func__, ret, - avail); -smh_close (fd); +/* Check the file mode */ +if (!(strcmp (modestr,"r" ))) { + mode =MODE_READ ; + }else if (!(strcmp (modestr,"rb" ))) { + mode =MODE_READBIN ; + }else { +printf ("%s: ERROR mode \'%s\' not supported\n" , __func__, + modestr);return -1 ; } - len = ret; - -/* Read the file into the buffer */ - ret =smh_read (fd, memp, len); -if (ret ==0 ) { -/* Print successful load information if requested */ -if (verbose) { -printf ("\n%s\n" , fname); -printf (" 0x%8p dest\n" , memp); -printf (" 0x%08lx size\n" , len); -printf (" 0x%08x avail\n" , avail); - } - } + open.fname = fname; + open.len =strlen (fname); + open.mode = mode; -/* Close the file */ -smh_close (fd); +/* Open the file on the host */ + fd =smh_trap (SYSOPEN , &open); +if (fd ==-1 ) +printf ("%s: ERROR fd %ld for file \'%s\'\n" , __func__, fd, + fname); -return ret; +return fd; }/* @@ -135,46 +113,6 @@ static long smh_read(long fd, void *memp, size_t len) }/* -* Open a file on the host. Mode is "r" or "rb" currently. Returns a file -* descriptor or -1 on error. -*/ -static long smh_open (const char *fname,char *modestr) -{ -long fd; -unsigned long mode; -struct smh_open_s { -const char *fname; -unsigned long mode; -size_t len; - } open; - -debug ("%s: file \'%s\', mode \'%s\'\n" , __func__, fname, modestr); - -/* Check the file mode */ -if (!(strcmp (modestr,"r" ))) { - mode =MODE_READ ; - }else if (!(strcmp (modestr,"rb" ))) { - mode =MODE_READBIN ; - }else { -printf ("%s: ERROR mode \'%s\' not supported\n" , __func__, - modestr); -return -1 ; - } - - open.fname = fname; - open.len =strlen (fname); - open.mode = mode; - -/* Open the file on the host */ - fd =smh_trap (SYSOPEN , &open); -if (fd ==-1 ) -printf ("%s: ERROR fd %ld for file \'%s\'\n" , __func__, fd, - fname); - -return fd; -} - -/* * Close the file using the file descriptor */ static long smh_close (long fd)@@ -207,6 +145,63 @@ static long smh_len_fd(long fd) }/* +* Open, load a file into memory, and close it. Check that the available space +* is sufficient to store the entire file. Return the bytes actually read from +* the file as seen by the read function. The verbose flag enables some extra +* printing of successful read status. +*/ +int smh_load (const char *fname,void *memp,int avail,int verbose) +{ +long ret; +long fd; +size_t len; + + ret =-1 ; + +debug ("%s: fname \'%s\', avail %u, memp %p\n" , __func__, fname, + avail, memp); + +/* Open the file */ + fd =smh_open (fname,"rb" ); +if (fd ==-1 ) +return -1 ; + +/* Get the file length */ + ret =smh_len_fd (fd); +if (ret ==-1 ) { +smh_close (fd); +return -1 ; + } + +/* Check that the file will fit in the supplied buffer */ +if (ret > avail) { +printf ("%s: ERROR ret %ld, avail %u\n" , __func__, ret, + avail); +smh_close (fd); +return -1 ; + } + + len = ret; + +/* Read the file into the buffer */ + ret =smh_read (fd, memp, len); +if (ret ==0 ) { +/* Print successful load information if requested */ +if (verbose) { +printf ("\n%s\n" , fname); +printf (" 0x%8p dest\n" , memp); +printf (" 0x%08lx size\n" , len); +printf (" 0x%08x avail\n" , avail); + } + } + +/* Close the file */ +smh_close (fd); + +return ret; +} + +/* * Get the file length from the filename */ long smh_len (const char *fname)