/* * 第3回 TOPPERS活用アイデア・アプリケーション開発コンテスト * 松浦 光洋さんの「lwIP の移植」をベースにしました。 * http://www.toppers.jp/contest.html * * @(#) $Id: sys_arch.h 167 2016-03-08 11:37:45Z coas-nagasima $ */ #ifndef __ARCH_SYS_ARCH_H__ #define __ARCH_SYS_ARCH_H__ #include #include #include #ifndef _MSC_VER #include #include #else #include #include #endif // _MSC_VER #include typedef ID sys_sem_t; typedef ID sys_mbox_t; typedef ID sys_thread_t; #define sys_sem_valid( x ) ( ( ( *x ) == (sys_sem_t)NULL) ? 0 : 1 ) #define sys_sem_set_invalid( x ) ( ( *x ) = (sys_sem_t)NULL ) #define sys_mbox_valid( x ) ( ( ( *x ) == (sys_mbox_t)NULL) ? 0 : 1 ) #define sys_mbox_set_invalid( x ) ( ( *x ) = (sys_mbox_t)NULL ) extern void *sys_malloc(size_t size); extern void *sys_calloc(size_t count, size_t size); extern void *sys_realloc(void *ptr, size_t size); extern void sys_free(void *mem); extern void *sys_trim(void *mem, size_t size); extern void sys_sleep(uint32_t ms); /* let sys.h use binary semaphores for mutexes */ #define LWIP_COMPAT_MUTEX 1 extern FIL *sys_fopen(const char *, const char *); #define fopen sys_fopen extern long sys_fseek(FIL *, long, long); #define fseek sys_fseek extern long sys_lseek(FIL *, long offset, int origin); #define lseek sys_lseek extern long sys_ftell(FIL *); #define ftell sys_ftell extern long sys_fclose(FIL *); #define fclose sys_fclose extern size_t sys_fread(void *, size_t, size_t, FIL *); #define fread sys_fread extern size_t sys_fwrite(const void *, size_t, size_t, FIL *); #define fwrite sys_fwrite extern long sys_fputs(const char *, FIL *); #define fputs sys_fputs extern long sys_fputc(long, FIL *); #define fputc sys_fputc extern long sys_fflush(FIL *); #define fflush sys_fflush extern char *sys_fgets(char *, long, FIL *); #define fgets sys_fgets extern long sys_ferror(FIL *); #define ferror sys_ferror extern long sys_rewind(FIL *); #define rewind sys_rewind extern long sys_fprintf(FIL *, const char *, ...); #define fprintf sys_fprintf extern void sys_exit(int error); #define exit sys_exit #undef stdin extern FIL *sys_stdin; #define stdin sys_stdin #undef stdout extern FIL *sys_stdout; #define stdout sys_stdout #undef stderr extern FIL *sys_stderr; #define stderr sys_stderr #define FILE FIL #define malloc(sz) sys_malloc(sz) #define calloc(cnt, sz) sys_calloc(cnt, sz) #define realloc(ptr, sz) sys_realloc(ptr, sz) #define free(ptr) sys_free(ptr) extern time_t sys_time(time_t *t); #define time sys_time extern struct tm *sys_gmtime(const time_t *pt); #define gmtime sys_gmtime struct tm *gmtime_r(const time_t *pt, struct tm* tm); extern void sys_set_system_time(time_t t); #endif /* __ARCH_SYS_ARCH_H__ */