Add glibc support(default)

Change-Id: I7675edcf14df8707ecd424a962e4cc464a4c6ae4
diff --git a/mbtk/aboot-tiny/jacana/jacana_firmware_posix.c b/mbtk/aboot-tiny/jacana/jacana_firmware_posix.c
new file mode 100755
index 0000000..108b199
--- /dev/null
+++ b/mbtk/aboot-tiny/jacana/jacana_firmware_posix.c
@@ -0,0 +1,75 @@
+#include <stdio.h>
+#include <string.h>
+#include <limits.h>
+#include <sys/stat.h>
+
+#include "aboot-tiny.h"
+#include "jacana_firmware.h"
+#include "jacana_pvt.h"
+
+#ifdef PATH_MAX
+#undef PATH_MAX
+#define PATH_MAX    127
+#else
+#define PATH_MAX    127
+#endif
+
+extern char jacana_firmware_file_name[PATH_MAX];
+extern char jacana_pvt_file_name[PATH_MAX];
+/*---------------------------------------------------------------------------*/
+void *
+jacana_firmware_raw_open(void)
+{
+  FILE *file = fopen(jacana_firmware_file_name, "r");
+  return (void *)file;
+}
+/*---------------------------------------------------------------------------*/
+size_t
+jacana_firmware_raw_get_total_size(void *priv)
+{
+  int fd = fileno((FILE *)priv);
+  struct stat buf;
+  fstat(fd, &buf);
+  off_t size = buf.st_size;
+  return size;
+}
+/*---------------------------------------------------------------------------*/
+int
+jacana_firmware_raw_read(void *priv, size_t start, uint8_t *data, size_t size)
+{
+  FILE *file = (FILE *)priv;
+  fseek(file, start, SEEK_SET);
+  return fread(data, 1, size, file);
+}
+/*---------------------------------------------------------------------------*/
+void
+jacana_firmware_raw_close(void *priv)
+{
+  fclose((FILE *)priv);
+}
+/*---------------------------------------------------------------------------*/
+void *
+jacana_pvt_raw_open(void)
+{
+  FILE *file = fopen(jacana_pvt_file_name, "r");
+  return (void *)file;
+}
+/*---------------------------------------------------------------------------*/
+size_t
+jacana_pvt_raw_get_total_size(void *priv)
+{
+  return jacana_firmware_raw_get_total_size(priv);
+}
+/*---------------------------------------------------------------------------*/
+int
+jacana_pvt_raw_read(void *priv, size_t start, uint8_t *data, size_t size)
+{
+  return jacana_firmware_raw_read(priv, start, data, size);
+}
+/*---------------------------------------------------------------------------*/
+void
+jacana_pvt_raw_close(void *priv)
+{
+  jacana_firmware_raw_close(priv);
+}
+/*---------------------------------------------------------------------------*/