linux64 = @names clp64le { typedef long unsigned int __ino_t; typedef long int __off_t; struct dirent { @0x0 __ino_t d_ino; @0x8 __off_t d_off; @0x10 short unsigned int d_reclen; @0x12 unsigned char d_type; @0x13 char d_name[0x100]; @0x118; }; }; @define ls(dir) { @local das, dom, p, e, len; das = _readdir(dir); dom = mkdom(linux64, das); p = (void*){dom}0; len = rangelen(das.map()[0]); e = p+len; p = (struct dirent*)p; while(p < e){ printf("%s\n", p->d_name); p++; } } @define foreachfile(dir,fn) { @local das, dom, p, e, len; das = _readdir(dir); dom = mkdom(linux64, das); p = (void*){dom}0; len = rangelen(das.map()[0]); e = p+len; p = (struct dirent*)p; while(p < e){ if(p->d_name != "." && p->d_name != "..") fn(p->d_name); p++; } }