* published by the Free Software Foundation.
*/
+/*
+ * Example OS glue functions for running on a Linux/POSIX system.
+ */
#include "yaffscfg.h"
#include "yaffs_guts.h"
#include <errno.h>
+/*
+ * yaffsfs_SetError() and yaffsfs_GetError()
+ * Do whatever to set the system error.
+ * yaffsfs_GetError() just fetches the last error.
+ */
static int yaffsfs_lastError;
{
//Do whatever to set error
yaffsfs_lastError = err;
+ errno = err;
}
int yaffsfs_GetLastError(void)
return yaffsfs_lastError;
}
-int yaffsfs_CheckMemRegion(const void *addr, size_t size, int writeable)
+/*
+ * yaffsfs_CheckMemRegion()
+ * Check that access to an address is valid.
+ * This can check memory is in bounds and is writable etc.
+ *
+ * Returns 0 if ok, negative if not.
+ */
+int yaffsfs_CheckMemRegion(const void *addr, size_t size, int write_request)
{
if(!addr)
return -1;
return 0;
}
+/*
+ * yaffsfs_Lock()
+ * yaffsfs_Unlock()
+ * A single mechanism to lock and unlock yaffs. Hook up to a mutex or whatever.
+ * Here are two examples, one using POSIX pthreads, the other doing nothing.
+ */
#ifdef CONFIG_YAFFS_USE_PTHREADS
#include <pthread.h>
}
#endif
+/*
+ * yaffsfs_CurrentTime() retrns a 32-bit timestamp.
+ *
+ * Can return 0 if your system does not care about time.
+ */
+
u32 yaffsfs_CurrentTime(void)
{
return time(NULL);
}
+/*
+ * yaffsfs_malloc()
+ * yaffsfs_free()
+ *
+ * Functions to allocate and free memory.
+ */
+
+#ifdef CONFIG_YAFFS_TEST_MALLOC
+
static int yaffs_kill_alloc = 0;
static size_t total_malloced = 0;
static size_t malloc_limit = 0 & 6000000;
return this;
}
+#else
+
+void *yaffsfs_malloc(size_t size)
+{
+ return malloc(size);
+}
+
+#endif
+
void yaffsfs_free(void *ptr)
{
free(ptr);
yaffsfs_LockInit();
}
-
+/*
+ * yaffs_bug_fn()
+ * Function to report a bug.
+ */
+
void yaffs_bug_fn(const char *file_name, int line_no)
{
printf("yaffs bug detected %s:%d\n",
void *yaffsfs_malloc(size_t size);
void yaffsfs_free(void *ptr);
-int yaffsfs_CheckMemRegion(const void *addr, size_t size, int writeable);
+int yaffsfs_CheckMemRegion(const void *addr, size_t size, int write_request);
void yaffsfs_OSInitialisation(void);