diff src/cs/drivers/drv_app/ffs/board/tdata.c @ 0:4e78acac3d88

src/{condat,cs,gpf,nucleus}: import from Selenite
author Mychaela Falconia <falcon@freecalypso.org>
date Fri, 16 Oct 2020 06:23:26 +0000
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/cs/drivers/drv_app/ffs/board/tdata.c	Fri Oct 16 06:23:26 2020 +0000
@@ -0,0 +1,166 @@
+/******************************************************************************
+ * Flash File System (ffs)
+ * Idea, design and coding by Mads Meisner-Jensen, mmj@ti.com
+ *
+ * ffs test data
+ *
+ * $Id: tdata.c 1.9 Tue, 14 Oct 2003 12:50:00 +0200 tsj $
+ *
+ ******************************************************************************/
+
+#ifndef TARGET
+#include "ffs.cfg"
+#endif
+
+#if (TARGET == 1)
+#include "chipset.cfg"
+#endif
+
+#include "ffs/ffs.h"
+#include "ffs/board/drv.h"
+#include "ffs/board/tdata.h"
+
+#if (TARGET == 0)
+#ifdef WIN32
+#include "windows.h"
+#else //WIN32
+#include "sys/mman.h"
+#include "unistd.h"
+#endif //WIN32
+
+#include <string.h>
+#include <stdlib.h>
+#include "stdio.h"
+#include "sys/types.h"
+#include "sys/stat.h"
+#include "fcntl.h"
+#endif //TARGET == 0
+
+/******************************************************************************
+ * Globals
+ ******************************************************************************/
+
+// Buffer for tdata 'HUGE'. In target it point to the flash device, on the
+// PC a buffer is allocated and filled with data from a c code file.
+char *tdata_buf;
+
+int sdata[TEST_DATA_NUM];
+
+// Initialize test data. 
+int test_tdata_init(void)
+{
+    int i, error, tdatasize, fsize = 60 * 1024;  // Check the file size or?
+
+#ifdef WIN32
+    DWORD nbytesread;
+	OFSTRUCT lpReOpenBuff;
+    HANDLE fd;
+    char *fname = "../core.c"; // file to use as test data
+#else
+    char *fname = "core.c";
+    int fd;
+#endif
+    // Set the size to the maximum image size
+    tdatasize = 8 * 1024 * 1024;
+
+    // Open file NOTEME change to readonly
+#if (TARGET == 0)    
+#ifdef WIN32
+    fd = OpenFile(fname, &lpReOpenBuff, OF_READ);
+#else 
+    fd = open(fname, O_RDONLY, S_IRWXU|S_IRWXG|S_IRWXO);
+#endif //WIN32
+    if (fd == -1) {
+        perror("Failed to open flash image"); exit(1);
+    }
+
+    if ((tdata_buf = (char*) malloc(tdatasize)) == 0)
+        return EFFS_MEMORY;
+
+#ifdef WIN32
+    error = ReadFile(fd, tdata_buf, fsize, &nbytesread, 0);
+#else
+    error = read(fd, tdata_buf, fsize);
+#endif
+    if (error < 0) {
+        perror("Failed to read file"); exit(1);
+    }
+
+#ifdef WIN32
+    error = CloseHandle(fd);
+#else
+    error = close(fd);
+#endif
+    if (error < 0) {
+        perror("Failed to close file"); exit(1);
+    }
+
+    // Fill the rest of tdata_buf
+    for (i = 1; i < tdatasize/fsize; i++)
+        memcpy(&tdata_buf[i], &tdata_buf[0], fsize);
+#endif
+
+#if (TARGET == 0)
+    // Init tdata
+    tdata[TDATA_HUGE] = tdata_buf;
+#else
+#if (CHIPSET == 12) // Calypso+. Do not read from the secure rom
+    tdata[TDATA_HUGE] = (char *) 0x4000000;
+#else
+    tdata[TDATA_HUGE] = (char *) 0x1;
+#endif
+#endif //TARGET == 0
+
+    for (i = 0; i < TEST_DATA_NUM; i++) 
+        sdata[i] = strlen(tdata[i]);
+    
+    return EFFS_OK;
+}
+
+char *tdata[TEST_DATA_NUM] =
+{
+    // 0
+    "yo",
+
+    // 1
+    "NineBytes",
+
+    // 2
+    "EighteenCharacters",
+
+    // 3
+    "The quick brown fox jumped over the little lazy rabbit then it turned "
+    "around and ate the little stupid bunny."
+    "The brown fox ate too much and became sick.",
+
+    // 4
+    "Foo bar fum fi fo, look high, look low, where it is, i don't know",
+
+    // 5
+    "55555",
+
+    // 6
+    "Two Canadian guys, Mike and Rob were on the roof, laying tile,"
+    "when a sudden gust of wind came and knocked down their ladder." 
+    "'I have an idea,' said Mike. 'We'll throw you down, and then"
+    "you can pick up the ladder.'" 
+    "What, do you think I'm stupid? I have an idea. I'll shine my"
+    "flashlight, and you can climb down on the beam of light." 
+    "What, do you think I'm stupid? You'll just turn off the"
+    "flashlight when I'm halfway there.''",
+
+    // 7
+    "7777777",
+
+    // 8
+    "88888888",
+
+    // 9
+    "999999999",
+
+    // 10
+    "dummy"
+};
+
+
+