PW-B1 解析済 API一覧
table: API_6000_xxxx
A7 Virt Adress ret function memo
6000_63c4 void * malloc(size_t size)
6000_63c8 int free(void *ptr)
6000_63cc void * malloc2(size_t size, size_t n) 'return malloc(size * n)'と同等
6000_6400 FILE * fopen(const char *filename, const char *mode) 対応モードは'w,r,a,+'
6000_6404 int fclose(FILE *stream)
6000_6408 int ftell(FILE *stream)
6000_640c size_t fread(void *ptr, size_t size, size_t nmemb, FILE *stream)
6000_6410 size_t fwrite(const void *ptr, size_t size, size_t nmemb, FILE *stream)
6000_6414 int fseek(FILE *stream, int offset, int whence) SEEK_SET=0, SEEK_CUR=1, SEEK_END=2
6000_6418 int feof(FILE *stream)
6000_641c int fflush(FILE *stream)
6000_6420 int fgetc(FILE *stream)
6000_6424 char * fgets(char *s, int n, FILE *stream)
6000_6428 int fputc(int ch, FILE *stream)
6000_642c int fputs(const char *str, FILE *stream)
6000_6430 int ferror(FILE *stream)
6000_6434 int remove(const char *filepath)
6000_6438 int rename(const char *oldpath, const char *newpath)
6000_643c int mkdir(const char *pathname)
6000_6440
6000_6444 int stat(const char *filepath, struct stat *buf)
6000_6448
6000_644c int closedir(DIR *dirp)
6000_6450 dirent * readdir(DIR *dirp)
6000_6454 DIR * opendir(const char *pathname)
table:API_6009_xxxx
6009_17c4 void * malloc(size_t size)
6009_1aa4 void * memset2(void *ptr, size_t n, int ch) 標準のmemsetと引数が異なるで注意
6009_2108 void * memset(void *ptr, int ch, size_t n) 標準のmemsetと引数が同じ
6009_2004 void ? printf(const char *format, ...) エラーログ用printf? 事前にポート設定必須
table:API_600a_xxxx
600a_2d7c int strlen(const char *str)
600a_3e60 int strcmp(const char *s1, const char *s2)
600a_f4a0 char * strncpy(char *s1, const char *s2, size_t n)
600a_14f4 uint change_powermode(int state)
table: API_8401_xxxx
8401_0040 int statfs(const char *path, struct statfs *buf)
見た感じ 6xxx_xxxx は uC3 Standard や uC3 FileSystem などのAPI?
84xxx_xxxxのAPIはSharp側?(要調査)
table: change_powermode_state
state 動作
0 PSTOP3
1 PSTOP2
2
3 Very-Low-Power Stop
4 Low-Leakage Stop
5 Very-Low-Leakage Stop
table: file_struct
offset type desc
+ 00 u32 fd ?
+ 04 u32 error ?
+ 08 u32 flags
+ 0c u32 read_count ?
+ 10 u32 write_count ?
+ 14 u32 buffer_capacity
+ 18 ptr32 ptr_of_buffer
※mallocらしきところで、0x41cのサイズ確保しているが、FILE構造体の後にchar[1024]のバッファーがあるためである
table:file_struct_flags
bit desc
0 read-mode
1 write-mode
2 error flag ?
3 error flag ?
4 append-mode
5 ?
6 ?
7 ?
8 End-of-File
table: stat_struct
offset type desc
+ 00 u32 flags
+ 04 u32 access timestamp (unix time)
+ 08 u32 modify timestamp (unix time)
+ 0c u32 change timestamp (unix time)
+ 10 u32 file size (bytes)
table: stat struct flags
bit desc memo
0 executable drwxの'x'
1 writable drwxの'w'
2 readable drwxの'r'
3 is directory drwxの'd' ?
4 - 15 ?
16 readonly Windowsでの読み取り専用?
17 hidden Windowsでの隠しファイル?
18 - 19 ?
20 is file ?
21 is directory ?
23 - 31 ?
table: struct_dir
offset type desc
+00 u32 init_flag ?
+04 ptr32 dirent_head ?
※ malloc()にて0x118の領域を確保しているが不明。DIR自体の中身を読む必要は無いので、typedef void* DIRで構わないかも
table: struct_dirent
offset type desc
+00 u32 type (1=File, 2=Directory)
+04 u32 entry size
+08 u32 entry name length (without NULL)
+0c char<260> entry name
+110 ? unknown
※malloc()にて0x150の領域を確保しているが、上記以外のフィールドは未解析
table:struct _statfs
offset type desc
+00 u64 mountされているボリュームの容量(bytes)
+08 u64 mountされているボリュームの空き容量(bytes)
+10 char<40> mountされているボリュームの名前
table: error_code
code desc memo
0 Success 正常終了
-17933 File not found? remove や rename にてファイルが見つからないときの戻り値