Mercurial > ecos
changeset 1200:0e41ddaf36fe
Flesh out exported FIS functions - from Patrick Doyle
| author | gthomas |
|---|---|
| date | Sun, 07 Sep 2003 11:48:56 +0000 |
| parents | e8111345b655 |
| children | 5cc8707c7bc1 |
| files | packages/hal/common/current/ChangeLog packages/hal/common/current/include/hal_if.h packages/hal/common/current/src/hal_if.c |
| diffstat | 3 files changed, 56 insertions(+), 24 deletions(-) [+] |
line wrap: on
line diff
--- a/packages/hal/common/current/ChangeLog +++ b/packages/hal/common/current/ChangeLog @@ -1,3 +1,9 @@ +2003-09-04 Patrick Doyle <wpd@dtccom.com> + + * include/hal_if.h: + * src/hal_if.c (flash_fis_op): Added support for the rest of the + FIS operations. + 2003-08-06 Bob Koninckx <bob.koninckx@mech.kuleuven.ac.be> * src/drv_api.c: Added definition of cyg_interrupt_post_dsr() for
--- a/packages/hal/common/current/include/hal_if.h +++ b/packages/hal/common/current/include/hal_if.h @@ -655,8 +655,14 @@ static __inline__ _rt_ __call_VV3(CYGNUM_CALL_IF_FLASH_FIS_OP, __call_if_flash_fis_op_fn_t, cyg_bool, int, char *, void *) #define CYGACC_CALL_IF_FLASH_FIS_OP_SET(_x_) \ hal_virtual_vector_table[CYGNUM_CALL_IF_FLASH_FIS_OP]=(CYG_ADDRWORD)(_x_) -#define CYGNUM_CALL_IF_FLASH_FIS_GET_FLASH_BASE (0) -#define CYGNUM_CALL_IF_FLASH_FIS_GET_SIZE (1) +#define CYGNUM_CALL_IF_FLASH_FIS_GET_FLASH_BASE (0) +#define CYGNUM_CALL_IF_FLASH_FIS_GET_SIZE (1) +#define CYGNUM_CALL_IF_FLASH_FIS_GET_MEM_BASE (2) +#define CYGNUM_CALL_IF_FLASH_FIS_GET_ENTRY_POINT (3) +#define CYGNUM_CALL_IF_FLASH_FIS_GET_DATA_LENGTH (4) +#define CYGNUM_CALL_IF_FLASH_FIS_GET_DESC_CKSUM (5) +#define CYGNUM_CALL_IF_FLASH_FIS_GET_FILE_CKSUM (6) + // These need to be kept uptodate with the (unadorned) masters // in RedBoot's flash_config.h:
--- a/packages/hal/common/current/src/hal_if.c +++ b/packages/hal/common/current/src/hal_if.c @@ -124,29 +124,49 @@ static __call_if_flash_fis_op_fn_t flash static cyg_bool flash_fis_op( int op, char *name, void *val) { - cyg_bool res = false; - struct fis_image_desc *fis; - int num; + cyg_bool res = false; + struct fis_image_desc *fis; + int num; - CYGARC_HAL_SAVE_GP(); - fis = fis_lookup(name, &num); - if(fis != NULL) - { - switch ( op ) { - case CYGNUM_CALL_IF_FLASH_FIS_GET_FLASH_BASE: - *(CYG_ADDRESS *)val = fis->flash_base; - res = true; - break; - case CYGNUM_CALL_IF_FLASH_FIS_GET_SIZE: - *(unsigned long *)val = fis->size; - res = true; - break; - default: - break; - } - } - CYGARC_HAL_RESTORE_GP(); - return res; + CYGARC_HAL_SAVE_GP(); + fis = fis_lookup(name, &num); + if(fis != NULL) + { + switch ( op ) { + case CYGNUM_CALL_IF_FLASH_FIS_GET_FLASH_BASE: + *(CYG_ADDRESS *)val = fis->flash_base; + res = true; + break; + case CYGNUM_CALL_IF_FLASH_FIS_GET_SIZE: + *(unsigned long *)val = fis->size; + res = true; + break; + case CYGNUM_CALL_IF_FLASH_FIS_GET_MEM_BASE: + *(CYG_ADDRESS *)val = fis->mem_base; + res = true; + break; + case CYGNUM_CALL_IF_FLASH_FIS_GET_ENTRY_POINT: + *(CYG_ADDRESS *)val = fis->entry_point; + res = true; + break; + case CYGNUM_CALL_IF_FLASH_FIS_GET_DATA_LENGTH: + *(unsigned long *)val = fis->data_length; + res = true; + break; + case CYGNUM_CALL_IF_FLASH_FIS_GET_DESC_CKSUM: + *(unsigned long *)val = fis->desc_cksum; + res = true; + break; + case CYGNUM_CALL_IF_FLASH_FIS_GET_FILE_CKSUM: + *(unsigned long *)val = fis->file_cksum; + res = true; + break; + default: + break; + } + } + CYGARC_HAL_RESTORE_GP(); + return res; } #endif
