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