How to use mapped method in pact-foundation-pact

Best JavaScript code snippet using pact-foundation-pact

lib-dex.js

Source:lib-dex.js Github

copy

Full Screen

1/*2 Resolved library functions PS3 DEX3*/4//push to stack5//stw r3, -4(r1)6//subi r1, r1, 47//stwu r3, -4(r1)8//pop from stack9//lwz r3, 0(r1)10//addi r1, 411//sthu r3, -2(r1)12//lhz r4, 0(r1)13//addi r1, r1, 214//push pop15//stbu r4, -1(r1)16//lbz r3, 0(r1)17//addi r1, r1, 118// Allocator Functions19allocator_v481D =20{21 allocator_lib_fnid_ptr: 0x006404B0, // ExportFNIDTable_allocator22 allocator_lib_func_ptr: 0x00640530, // ExportStubTable_allocator23 24 // mapped fnid 0x045E124A25 ZdaPv : 0x006FB970,26 // mapped fnid 0x0871FFB027 malloc_usable_size : 0x006FBCE0,28 // mapped fnid 0x2356EF1629 ZnajRKSt9nothrow_t : 0x006FB990,30 // mapped fnid 0x58B4362731 unk_58B43627 : 0x006FB9B0,32 // mapped fnid 0x6137D19633 memalign : 0x006FB9E8,34 // mapped fnid 0x679E8CAF35 unk_D2B978F5 : 0x006FB9C0,36 // mapped fnid 0x6997B83737 unk_6997B837 : 0x006FBA00,38 // mapped fnid 0x759E063539 malloc : 0x006FB9C8,40 // mapped fnid 0x77A602DD41 free : 0x006FB9F8,42 // mapped fnid 0x799473AE43 unk_799473AE : 0x006FB9F0,44 // mapped fnid 0x79EADF0545 malloc_usable_size : 0x006FBCE0,46 // mapped fnid 0x83B2CC6F47 Znwj : 0x006FB9A8,48 // mapped fnid 0x96BC257849 Znajj : 0x006FB980,50 // mapped fnid 0x97C0209051 unk_97C02090 : 0x006FBA10,52 // mapped fnid 0xA72A759553 calloc : 0x006FB9D8,54 // mapped fnid 0xA830FDD855 unk_A830FDD8 : 0x006FB9E0,56 // mapped fnid 0xAD382A9957 ZdlPvRKSt9nothrow_t : 0x006FB968,58 // mapped fnid 0xBB71271859 ZnwjRKSt9nothrow_t : 0x006FB998,60 // mapped fnid 0xD2B978F561 unk_D2B978F5 : 0x006FBA08,62 // mapped fnid 0xD84B368963 ZdlPv : 0x006FB978,64 // mapped fnid 0xE27B3C0165 unk_E27B3C01 : 0x006FB9D0,66 // mapped fnid 0xED3DA02B67 Znwjj : 0x006FB988,68 // mapped fnid 0xF58E83A569 Znaj : 0x006FB9A0,70 // mapped fnid 0xF7A14A2271 realloc : 0x006FB9B872}73// ESE (ESE XML Schema) Cron Functions -> esecron.sprx74// Superseded by esehttp.sprx, eseibrd.sprx, eseidle.sprx, eselock.sprx75esecron_v481D =76{77 lib_fnid_ptr: 0x006459D8, // ExportFNIDTable_esecron78 lib_func_ptr: 0x00645AB4, // ExportStubTable_esecron79 80 // mapped fnid 0x0C8D7A6081 unk_C8D7A60 : 0x006EDC00,82 // mapped fnid 0x179B1B1B83 unk_179B1B1B : 0x006EDB58,84 // mapped fnid 0x2411334A85 unk_2411334A : 0x006EDCA0,86 // mapped fnid 0x25F4173187 unk_25F41731 : 0x006EDB88,88 // mapped fnid 0x2A4D7ACD89 unk_2A4D7ACD : 0x006E6470,90 // mapped fnid 0x3297D3EE91 unk_3297D3EE : 0x006EDB20,92 // mapped fnid 0x40B72ADD93 unk_40B72ADD : 0x006EDBF8,94 // mapped fnid 0x46A581DA95 unk_46A581DA : 0x006EDB98,96 // mapped fnid 0x4CF6B05497 unk_4CF6B054 : 0x006EDB48,98 // mapped fnid 0x4D01506A99 unk_4D01506A : 0x006EDBE0,100 // mapped fnid 0x4FE85D6C101 unk_4FE85D6C : 0x006EDC08,102 // mapped fnid 0x5E01A32F103 unk_5E01A32F : 0x006EDC48,104 // mapped fnid 0x74F5CB82105 unk_74F5CB82 : 0x006EDBC8,106 // mapped fnid 0x79CEFBE1107 unk_79CEFBE1 : 0x006EDB80,108 // mapped fnid 0x7E73AD5B109 unk_7E73AD5B : 0x006EDC30,110 // mapped fnid 0x82183B24111 unk_82183B24 : 0x006EDC50,112 // mapped fnid 0x868B4979113 unk_868B4979 : 0x006EDC98,114 // mapped fnid 0x86B82D21115 unk_86B82D21 : 0x006E64A0,116 // mapped fnid 0x8820FFEB117 unk_8820FFEB : 0x006EDBD0,118 // mapped fnid 0x93598687119 unk_93598687 : 0x006EDB68,120 // mapped fnid 0x950B21DC121 unk_950B21DC : 0x006EDB78,122 // mapped fnid 0x98A9685A123 unk_98A9685A : 0x006EDC20,124 // mapped fnid 0x9D696106125 unk_9D696106 : 0x006EDC58,126 // mapped fnid 0xA6C8D0D6127 unk_A6C8D0D6 : 0x006EDBA8,128 // mapped fnid 0xA99A0363129 unk_A99A0363 : 0x006EDBB0,130 // mapped fnid 0xA9B445F4131 unk_A9B445F4 : 0x006EDC80,132 // mapped fnid 0xAC8A12F4133 unk_AC8A12F4 : 0x006E6488,134 // mapped fnid 0xB2C821A2135 unk_B2C821A2 : 0x006EDB40,136 // mapped fnid 0xB54ACCB4137 unk_B54ACCB4 : 0x006E64A8,138 // mapped fnid 0xB73D973D139 unk_B73D973D : 0x006EDB38,140 // mapped fnid 0xBA3A7D13141 unk_BA3A7D13 : 0x006EDC68,142 // mapped fnid 0xBE665143143 unk_BE665143 : 0x006EDBA0,144 // mapped fnid 0xC1ADE32A145 unk_C1ADE32A : 0x006EDB90,146 // mapped fnid 0xC27118D2147 unk_C27118D2 : 0x006EDC78,148 // mapped fnid 0xC4F2B89E149 unk_C4F2B89E : 0x006EDC88,150 // mapped fnid 0xCCB98541151 unk_CCB98541 : 0x006EDB70,152 // mapped fnid 0xCD29668B153 unk_CD29668B : 0x006EDB18,154 // mapped fnid 0xCFE951EB155 unk_CFE951EB : 0x006EDC90,156 // mapped fnid 0xD0FFE42B157 unk_D0FFE42B : 0x006E6490,158 // mapped fnid 0xD3F58A3B159 unk_D3F58A3B : 0x006EDBC0,160 // mapped fnid 0xD82ACF12161 unk_D82ACF12 : 0x006E6498,162 // mapped fnid 0xD9A09BF9163 unk_D9A09BF9 : 0x006EDC40,164 // mapped fnid 0xEA910DC4165 unk_EA910DC4 : 0x006EDC38,166 // mapped fnid 0xED596460167 unk_ED596460 : 0x006EDC70,168 // mapped fnid 0xEDE5DDD1169 unk_EDE5DDD1 : 0x006EDB60,170 // mapped fnid 0xF421B2ED171 unk_F421B2ED : 0x006EDC10,172 // mapped fnid 0xF9889F5B173 unk_F9889F5B : 0x006EDB50174}175// Net Control Main Functions176netctl_main_v481D =177{178 lib_fnid_ptr: 0x006458B8, // ExportFNIDTable_netctl_main179 lib_func_ptr: 0x00645954, // ExportStubTable_netctl_main180 181 // mapped fnid 0x1237870F182 unk_1237870F : 0x006EDD30,183 // mapped fnid 0x13CD17FB184 unk_13CD17FB : 0x006EDD40,185 // mapped fnid 0x218CFBD3186 unk_218CFBD3 : 0x006EDDC8,187 // mapped fnid 0x23C35ECE188 unk_23C35ECE : 0x006EDD68,189 // mapped fnid 0x2DCA4721190 unk_2DCA4721 : 0x006EDD38,191 // mapped fnid 0x352EFDDF192 unk_352EFDDF : 0x006EDDC0,193 // mapped fnid 0x35A1C363194 unk_35A1C363 : 0x006EDCB8,195 // mapped fnid 0x367EFAA8196 unk_367EFAA8 : 0x006EDE48,197 // mapped fnid 0x38479255198 unk_38479255 : 0x006EDCD8,199 // mapped fnid 0x3A5CB886200 unk_FA020C41 : 0x006EDD78,201 // mapped fnid 0x442F0E40202 unk_442F0E40 : 0x006EDE40, // _Export_sys_net_sys_net_if_ctl reference203 // mapped fnid 0x4B1EE41D204 unk_4B1EE41D : 0x006EDCE0,205 // mapped fnid 0x4E4B734D206 unk_4E4B734D : 0x006EDD60,207 // mapped fnid 0x5101A052208 unk_5101A052 : 0x006EDDA8,209 // mapped fnid 0x55D2047A210 unk_55D2047A : 0x006EDD70,211 // mapped fnid 0x5AB91391212 unk_5AB91391 : 0x006EDDA0,213 // mapped fnid 0x5D1D7803214 unk_5D1D7803 : 0x006EDDB8,215 // mapped fnid 0x5ED42691216 unk_5ED42691 : 0x006EDCC0,217 // mapped fnid 0x61E363B0218 unk_61E363B0 : 0x006EDD98,219 // mapped fnid 0x6F2521E0220 unk_6F2521E0 : 0x006EDD90,221 // mapped fnid 0x6F2D52F1222 unk_6F2D52F1 : 0x006EDD28,223 // mapped fnid 0x8DA844E1224 unk_8DA844E1 : 0x006EDCC8,225 // mapped fnid 0x953F1E14226 unk_953F1E14 : 0x006EDD58,227 // mapped fnid 0x974E50F6228 unk_974E50F6 : 0x006EDD50,229 // mapped fnid 0x9A528B81230 unk_9A528B81 : 0x006EDD88,231 // mapped fnid 0xA111D8FB232 unk_A111D8FB : 0x006EDD48,233 // mapped fnid 0xB7618526234 unk_B7618526 : 0x006EDCD0,235 // mapped fnid 0xC67D3DB3236 unk_C67D3DB3 : 0x006EDCB0, // _Export_sys_net_sys_net_free_thread_context reference237 // mapped fnid 0xEC73B49D238 unk_EC73B49D : 0x006EDD80,239 // mapped fnid 0xECD37366240 unk_ECD37366 : 0x006EDCE8,241 // mapped fnid 0xFA020C41242 unk_FA020C41 : 0x006EDDB0243}244// PNG Decode PPU Only Functions245pngdec_ppuonly_v481D =246{247 lib_fnid_ptr: 0x0064162C, // ExportFNIDTable_pngdec_ppuonly248 lib_func_ptr: 0x0064165C, //ExportStubTable_pngdec_ppuonly249 250 // mapped fnid 0x0C515302251 cellPngDecExtOpen : 0x006FB478,252 // mapped fnid 0x157D30C5253 cellPngDecCreate : 0x006FB428,254 // mapped fnid 0x2310F155255 cellPngDecDecodeData : 0x006FB448,256 // mapped fnid 0x48436B2D257 cellPngDecExtCreate : 0x006FB420,258 // mapped fnid 0x5B3D1FF1259 cellPngDecClose : 0x006FB438,260 // mapped fnid 0x726FC1D0261 cellPngDecExtDecodeData : 0x006FB440,262 // mapped fnid 0x820DAE1A263 cellPngDecDestroy : 0x006FB430,264 // mapped fnid 0x8B33F863265 cellPngDecExtReadHeader : 0x006FB468,266 // mapped fnid 0x9CCDCC95267 cellPngDecReadHeader : 0x006FB470,268 // mapped fnid 0x9E9D7D42269 cellPngDecExtSetParameter : 0x006FB488,270 // mapped fnid 0xD2BC5BFD271 cellPngDecOpen : 0x006FB480,272 // mapped fnid 0xE97C9BD4273 cellPngDecSetParameter : 0x006FB490274}275// Standard C Functions276stdc_v481D =277{278 lib_fnid_ptr: 0x0063FDE4, // ExportFNIDTable_stdc279 lib_func_ptr: 0x00640184, // ExportStubTable_stdc280 281 // mapped fnid 0x00FDE072282 powf : 0x006FBF00,283 // mapped fnid 0x04A183FC284 strcpy : 0x006FC2C0,285 // mapped fnid 0x05EFC660286 asin : 0x006FBD90,287 // mapped fnid 0x0D2A593B288 srand : 0x006FC148,289 // mapped fnid 0x0F428F0F290 rint : 0x006FBE70,291 // mapped fnid 0x116CDA13292 wcstol : 0x006FC240,293 // mapped fnid 0x12A55FB7294 mbrtowc : 0x006FC0D8,295 // mapped fnid 0x1313A420296 acos : 0x006FBD80,297 // mapped fnid 0x153B364A298 mkdir : 0x006FC3F0,299 // mapped fnid 0x15BDCC00300 rand : 0x006FC128,301 // mapped fnid 0x18668CE3302 exp : 0x006FBDD0,303 // mapped fnid 0x19CCBB81304 mktime : 0x006FC100,305 // mapped fnid 0x1A00F889306 ZNSt9exceptionD2Ev : 0x006FBFC8, // std::exception::~exception()307 // mapped fnid 0x21E6D304308 ceil : 0x006FBDC0,309 // mapped fnid 0x23B985F7310 floorf : 0x006FBDF0,311 // mapped fnid 0x24C9E021312 abs : 0x006FBFF0,313 // mapped fnid 0x24F6CBDD314 clock : 0x006FC380,315 // mapped fnid 0x266311A0316 localtime : 0x006FC0D0,317 // mapped fnid 0x2677568C318 putchar : 0x006FC110,319 // mapped fnid 0x26F023D5320 ftell : 0x006FC098,321 // mapped fnid 0x273B9711322 sprintf : 0x006FC330,323 // mapped fnid 0x2B81FB7F324 readdir : 0x006FC430,325 // mapped fnid 0x2D8BE7E8326 ZNKSt9exception6_RaiseEv : 0x006FBFB0, // std::exception::_Raise() const327 // mapped fnid 0x2F45D39C328 strlen : 0x006FC170,329 // mapped fnid 0x31DB8C89330 atan2 : 0x006FBDA8,331 // mapped fnid 0x33D6AE54332 ferror : 0x006FC030,333 // mapped fnid 0x36C067C1334 Stoll : 0x006FC288,335 // mapped fnid 0x38E69F09336 pow : 0x006FBE60,337 // mapped fnid 0x3A210C93338 swscanf : 0x006FC1B8,339 // mapped fnid 0x3A840AE3340 snprintf : 0x006FC320,341 // mapped fnid 0x3AD203FA342 lrint : 0x006FBE20,343 // mapped fnid 0x3B5489A9344 unk_3B5489A9 : 0x006FBF20,345 // mapped fnid 0x3BD9CE0A346 fsync : 0x006FC410,347 // mapped fnid 0x3C057FBD348 atanf : 0x006FBDB8,349 // mapped fnid 0x3CA81C76350 Iswctype : 0x006FC2A0,351 // mapped fnid 0x3D85D6F8352 strcmp : 0x006FC2B8,353 // mapped fnid 0x3DBC3BEE354 opendir : 0x006FC440,355 // mapped fnid 0x3EEEDB0E356 Dclass : 0x006FBEB0,357 // mapped fnid 0x411434BB358 asinf : 0x006FBD98,359 // mapped fnid 0x418BDFE1360 get_fd : 0x006FC468,361 // mapped fnid 0x4217B4CF362 difftime : 0x006FC008,363 // mapped fnid 0x44115DD0364 Geterrno : 0x006FC010,365 // mapped fnid 0x44796E5C366 strerror : 0x006FC160,367 // mapped fnid 0x45034943368 nan : 0x006FBE48,369 // mapped fnid 0x475D855B370 trunc : 0x006FBEA8,371 // mapped fnid 0x4B6A4010372 vswprintf : 0x006FC1D0,373 // mapped fnid 0x4D348427374 fputs : 0x006FC070,375 // mapped fnid 0x4DDB926B376 powf : 0x006FBE68,377 // mapped fnid 0x4E72F810378 wmemchr : 0x006FC258,379 // mapped fnid 0x4FFBA189380 feof : 0x006FC028,381 // mapped fnid 0x519EBB77382 floor : 0x006FBDE8,383 // mapped fnid 0x526A496A384 write : 0x006FC458,385 // mapped fnid 0x54F57626386 rewind : 0x006FC138,387 // mapped fnid 0x55D4866E388 fgetws : 0x006FC050,389 // mapped fnid 0x589B5314390 strncat : 0x006FC2C8,391 // mapped fnid 0x58EB9E57392 fabs : 0x006FBDE0,393 // mapped fnid 0x5909E3C4394 memset : 0x006FC470,395 // mapped fnid 0x5B162B7F396 memmove : 0x006FC0F8,397 // mapped fnid 0x5E7888F0398 bsearch : 0x006F8B10,399 // mapped fnid 0x62BF1D6C400 swprintf : 0x006FC340,401 // mapped fnid 0x659E011E402 sqrt : 0x006FBE88,403 // mapped fnid 0x65E8D4D0404 wcslen : 0x006FC210,405 // mapped fnid 0x683CA70A406 ZNKSt12_String_base5_XlenEv : 0x006FBFD0, // std::_String_base::_Xlen() const407 // mapped fnid 0x692B497F408 perror : 0x006FC108,409 // mapped fnid 0x69C27C12410 fopen : 0x006FC060,411 // mapped fnid 0x69FF1B9B412 fseek : 0x006FC090,413 // mapped fnid 0x6D5115B0414 wcsncmp : 0x006FC220,415 // mapped fnid 0x703EC767416 setvbuf : 0x006FC140,417 // mapped fnid 0x705D9E24418 acosf : 0x006FBF08,419 // mapped fnid 0x71293B71420 FLog : 0x006FBED0,421 // mapped fnid 0x717B2502422 stat : 0x006FC400,423 // mapped fnid 0x73EAE03D424 strrchr : 0x006FC180,425 // mapped fnid 0x742F12B4426 Sin : 0x006FBEE8,427 // mapped fnid 0x75D4485C428 rename : 0x006FC130,429 // mapped fnid 0x7670FF88430 unk_7670FF88 : 0x006FBF68,431 // mapped fnid 0x772F1E4D432 lround : 0x006FBE30,433 // mapped fnid 0x79819DBF434 fputc : 0x006FC068,435 // mapped fnid 0x7AB679DA436 cosf : 0x006FBEF8,437 // mapped fnid 0x7AE82E0F438 vsprintf : 0x006FC370,439 // mapped fnid 0x7C2EAEB5440 fminf : 0x006FBE00,441 // mapped fnid 0x7E7017B1442 rmdir : 0x006FC3F8,443 // mapped fnid 0x7F381837444 frexp : 0x006FBE18,445 // mapped fnid 0x7F579E03446 atan : 0x006FBDA0,447 // mapped fnid 0x7FDCF73E448 wcscat : 0x006FC1E8,449 // mapped fnid 0x814D8CB0450 fflush : 0x006FC038,451 // mapped fnid 0x82A3CC30452 wcschr : 0x006FC1F0,453 // mapped fnid 0x82A4561A454 put_fd : 0x006FC460,455 // mapped fnid 0x831D70A5456 memcpy : 0x006FC0F0,457 // mapped fnid 0x84378DDC458 wcsncpy : 0x006FC228,459 // mapped fnid 0x8451EDF0460 sqrtf : 0x006FBE90,461 // mapped fnid 0x867275D7462 Stoul : 0x006FC290,463 // mapped fnid 0x88214E8A464 unk_88214E8A : 0x006FBF70,465 // mapped fnid 0x895CDB49466 fmaxf : 0x006FBDF8,467 // mapped fnid 0x89F6F026468 time : 0x006FC388,469 // mapped fnid 0x8A6830E7470 abort : 0x006FBFE8,471 // mapped fnid 0x8AB0ABC6472 strncpy : 0x006FC2D8,473 // mapped fnid 0x8B439438474 clearerr : 0x006FBFF8,475 // mapped fnid 0x8ECAE294476 nextafter : 0x006FBE50,477 // mapped fnid 0x90010029478 gets : 0x006FC0B8,479 // mapped fnid 0x9232BAEA480 FDtest : 0x006FBEC8,481 // mapped fnid 0x9379E36E482 tanf : 0x006FBEA0,483 // mapped fnid 0x9439E4CD484 wcsncat : 0x006FC218,485 // mapped fnid 0x9558ED08486 lrintf : 0x006FBE28,487 // mapped fnid 0x99A72146488 vsnprintf : 0x006FC1C0,489 // mapped fnid 0x99B38CE7490 wmemmove : 0x006FC270,491 // mapped fnid 0x9A81E583492 fmodf : 0x006FBE10,493 // mapped fnid 0x9CB73EE0494 ZSt6_ThrowRKSt9exception : 0x006FBFE0, // std::_Throw(std::exception const&)495 // mapped fnid 0xA30D4797496 wcstoll : 0x006FC248,497 // mapped fnid 0xA3440924498 closedir : 0x006FC438,499 // mapped fnid 0xA5BC0E19500 getchar : 0x006FC0B0,501 // mapped fnid 0xA713F8CF502 modf : 0x006FBE40,503 // mapped fnid 0xA797790F504 wcsstr : 0x006FC238,505 // mapped fnid 0xA8B07F1B506 wmemcpy : 0x006FC268,507 // mapped fnid 0xA9F68EFF508 qsort : 0x006FC120,509 // mapped fnid 0xAA9635D7510 strcat : 0x006FC2A8,511 // mapped fnid 0xAB77019F512 fstat : 0x006FC408,513 // mapped fnid 0xABDCCC7A514 atan2f : 0x006FBF10,515 // mapped fnid 0xAC758D20516 wmemcmp : 0x006FC260,517 // mapped fnid 0xAC893127518 fgetc : 0x006FC040,519 // mapped fnid 0xAD62A342520 ldiv : 0x006FC0C8,521 // mapped fnid 0xAEC7C970522 lseek : 0x006FC448,523 // mapped fnid 0xAF44A615524 fgets : 0x006FC048,525 // mapped fnid 0xAF89FDBD526 Assert : 0x006FC398,527 // mapped fnid 0xB120F6CA528 _close : 0x006FC420, // original name was "close"529 // mapped fnid 0xB1F4779D530 spu_thread_printf : 0x006FC3A0,531 // mapped fnid 0xB2702E15532 wcrtomb : 0x006FC1E0,533 // mapped fnid 0xB54CC9A1534 sinf : 0x006FBEF0,535 // mapped fnid 0xB5E28191536 FSin : 0x006FBED8,537 // mapped fnid 0xB6257E3D538 strncasecmp : 0x006FC2E8,539 // mapped fnid 0xB680E240540 wcstombs : 0x006FC250,541 // mapped fnid 0xB6D92AC3542 strcasecmp : 0x006FC2E0,543 // mapped fnid 0xB738027A544 strtok : 0x006FC198,545 // mapped fnid 0xB7696143546 nextafterf : 0x006FBE58,547 // mapped fnid 0xB7AB5127548 wcsrchr : 0x006FC230,549 // mapped fnid 0xB94B9D13550 Dtest : 0x006FBEC0,551 // mapped fnid 0xBAF11866552 ceilf : 0x006FBDC8,553 // mapped fnid 0xBC7B4B8E554 ctime : 0x006FC000,555 // mapped fnid 0xC01D9F97556 printf : 0x006FC310,557 // mapped fnid 0xC291E698558 exit : 0x006FC018,559 // mapped fnid 0xC3E14CBE560 memcmp : 0x006FC478,561 // mapped fnid 0xC5C09834562 strstr : 0x006FC188,563 // mapped fnid 0xC7931798564 ZNKSt12_String_base5_XranEv : 0x006FBFD8, // std::_String_base::_Xran() const565 // mapped fnid 0xC984BF53566 roundf : 0x006FBE80,567 // mapped fnid 0xCA463458568 Log : 0x006FBEE0,569 // mapped fnid 0xCB9C535B570 strftime : 0x006FC168,571 // mapped fnid 0xCBAC7AD7572 memchr : 0x006FC0E8,573 // mapped fnid 0xD14ECE90574 strtol : 0x006FC1A0,575 // mapped fnid 0xD1D69CB8576 Stod : 0x006FC280,577 // mapped fnid 0xD360DCB4578 fileno : 0x006FC058,579 // mapped fnid 0xD40723D6580 fread : 0x006FC078,581 // mapped fnid 0xD417EEB5582 Stoull : 0x006FC298,583 // mapped fnid 0xD50277AD584 tan : 0x006FBE98,585 // mapped fnid 0xDDC71A75586 SCE_Assert : 0x006FC390,587 // mapped fnid 0xDEBEE2AF588 strchr : 0x006FC2B0,589 // mapped fnid 0xDECE76A6590 acosf : 0x006FBD88,591 // mapped fnid 0xE1BD3587592 fclose : 0x006FC020,593 // mapped fnid 0xE1E83C65594 strncmp : 0x006FC2D0,595 // mapped fnid 0xE3812672596 fdopen : 0x006FC3E8,597 // mapped fnid 0xE3CC73F3598 puts : 0x006FC118,599 // mapped fnid 0xE40BA755600 strtok : 0x006FC190,601 // mapped fnid 0xE48348E9602 vprintf : 0x006FC360,603 // mapped fnid 0xE769E5CF604 fmod : 0x006FBE08,605 // mapped fnid 0xE9137453606 fwprintf : 0x006FC300,607 // mapped fnid 0xE9B560A5608 sscanf : 0x006FC158,609 // mapped fnid 0xEB26298C610 gmtime : 0x006FC0C0,611 // mapped fnid 0xEE303936612 Dsign : 0x006FBEB8,613 // mapped fnid 0xEF110B6B614 unlink : 0x006FC418,615 // mapped fnid 0xF06EED36616 wmemset : 0x006FC278,617 // mapped fnid 0xF0776A44618 wcscmp : 0x006FC1F8,619 // mapped fnid 0xF0E022C6620 getc : 0x006FC0A8,621 // mapped fnid 0xF356418C622 _open : 0x006FC428, // original name was "open"623 // mapped fnid 0xF3EC0258624 round : 0x006FBE78,625 // mapped fnid 0xF3EF3678626 wcscspn : 0x006FC208,627 // mapped fnid 0xF41355F9628 wcscpy : 0x006FC200,629 // mapped fnid 0xF88F26C4630 fwrite : 0x006FC0A0,631 // mapped fnid 0xF89DC648632 strpbrk : 0x006FC178,633 // mapped fnid 0xFA00D211634 read : 0x006FC450,635 // mapped fnid 0xFAEC8C60636 fprintf : 0x006FC2F0,637 // mapped fnid 0xFB2081FD638 vfprintf : 0x006FC350,639 // mapped fnid 0xFB932A56640 atan2f : 0x006FBDB0,641 // mapped fnid 0xFBB4047A642 lroundf : 0x006FBE38,643 // mapped fnid 0xFC0428A6644 strdup : 0x006FC1A8,645 // mapped fnid 0xFCAC2E8E646 mbstowcs : 0x006FC0E0,647 // mapped fnid 0xFCF08193648 expf : 0x006FBDD8,649 // mapped fnid 0xFE88E97E650 fscanf : 0x006FC080651}652// System Console ID Functions653sysConsoleId_v481D =654{655 lib_fnid_ptr: 0x0063F3D0, // ExportFNIDTable_sysConsoleId656 lib_func_ptr: 0x0063F3D4, // ExportStubTable_sysConsoleId657 658 // mapped fnid 0xF220F751659 sysConsoleId : 0x006FC6A0,660}661// System PRX For User Functions662sysPrxForUser_v481D =663{664 lib_fnid_ptr: 0x0063EE1C, // ExportFNIDTable_sysPrxForUser665 lib_func_ptr: 0x0063F114, // ExportStubTable_sysPrxForUser666 667 // mapped fnid 0x2E20EC1668 unk_2E20EC1 : 0x006FC8C0,669 670 // mapped fnid 0x341BB97671 sys_prx_get_module_id_by_address : 0x006FC928,672 673 // mapped fnid 0x4E83D2C674 _sys_strncmp : 0x006FC888,675 676 // mapped fnid 0x52D29A6677 _sys_strcat : 0x006FC858,678 679 // mapped fnid 0x5C65656680 sys_mempool_try_allocate_block : 0x006FC568,681 682 // mapped fnid 0x618936B683 _sys_vsnprintf : 0x006FC838,684 685 // mapped fnid 0x6574237686 _sys_snprintf : 0x006FC848,687 688 // mapped fnid 0x94FF0D1689 unk_94FF0D1 : 0x006FCA30,690 691 // mapped fnid 0xFB028AF692 unk_FB028AF : 0x006FC740,693 694 // mapped fnid 0x121E5DA5695 unk_121E5DA5 : 0x006FC4D0,696 697 // mapped fnid 0x1573DC3F698 sys_lwmutex_lock : 0x006FC618,699 700 // mapped fnid 0x191F0C4A701 _sys_strrchr : 0x006FC898,702 703 // mapped fnid 0x1AE10B92704 _sys_spu_printf_attach_thread : 0x006FC6E8,705 706 // mapped fnid 0x1BC200F4707 sys_lwmutex_unlock : 0x006FC608,708 709 // mapped fnid 0x1C9A942C710 sys_lwcond_destroy : 0x006FC650,711 712 // mapped fnid 0x1CA525A2713 _sys_strncasecmp : 0x006FC880,714 715 // mapped fnid 0x1ED454CE716 sys_spu_elf_get_information : 0x006FC588,717 718 // mapped fnid 0x24A1EA07719 sys_ppu_thread_create : 0x006FC5E0,720 721 // mapped fnid 0x25062C8E722 unk_25062C8E : 0x006FC530,723 724 // mapped fnid 0x25596F51725 sys_mempool_get_count : 0x006FC558,726 727 // mapped fnid 0x26090058728 sys_prx_load_module : 0x006FC930,729 730 // mapped fnid 0x27427742731 _sys_memmove : 0x006FC808,732 733 // mapped fnid 0x2A6D9D51734 sys_lwcond_wait : 0x006FC660,735 736 // mapped fnid 0x2C847572737 _sys_process_atexitspawn : 0x006FC500,738 739 // mapped fnid 0x2D36462B740 _sys_strlen : 0x006FC878,741 742 // mapped fnid 0x2F256B29743 unk_2F256B29 : 0x006FC9F8,744 745 // mapped fnid 0x2F85C0EF746 sys_lwmutex_create : 0x006FC5F8,747 748 // mapped fnid 0x3172759D749 sys_game_get_temperature : 0x006FC780,750 751 // mapped fnid 0x318F17E1752 _sys_memalign : 0x006FC8B0,753 754 // mapped fnid 0x350D454E755 sys_ppu_thread_get_id : 0x006FC5F0,756 757 // mapped fnid 0x35168520758 _sys_heap_malloc : 0x006FC7B0,759 760 // mapped fnid 0x39E9B068761 unk_39E9B068 : 0x006FCA00,762 763 // mapped fnid 0x3BD53C7B764 _sys_memchr : 0x006FC7F8,765 766 // mapped fnid 0x3DD4A957767 sys_ppu_thread_register_atexit : 0x006FC5C8,768 769 // mapped fnid 0x3EF17F8C770 unk_3EF17F8C : 0x006FC7D8,771 772 // mapped fnid 0x409AD939773 sys_mmapper_free_memory : 0x006FC700,774 775 // mapped fnid 0x4232B0DB776 unk_4232B0DB : 0x006FC818,777 778 // mapped fnid 0x42B23552779 sys_prx_register_library : 0x006FC908,780 781 // mapped fnid 0x44265C08782 _sys_heap_memalign : 0x006FC7C0,783 784 // mapped fnid 0x459B4393785 _sys_strcmp : 0x006FC868,786 787 // mapped fnid 0x45FE2FCE788 _sys_spu_printf_initialize : 0x006FC6C8,789 790 // mapped fnid 0x4643BA6E791 sys_mmapper_unmap_memory : 0x006FC710,792 793 // mapped fnid 0x4A071D98794 sys_interrupt_thread_disestablish : 0x006FC5D8,795 796 // mapped fnid 0x4B2F301A797 _sys_tolower : 0x006FC7E0,798 799 // mapped fnid 0x4BBF59D0800 unk_4BBF59D0 : 0x006FC9E0,801 802 // mapped fnid 0x4F7172C9803 sys_process_is_stack : 0x006FC4A0,804 805 // mapped fnid 0x5267CB35806 sys_spinlock_unlock : 0x006FC6C0,807 808 // mapped fnid 0x52AADADF809 sys_lwcond_signal_to : 0x006FC670,810 811 // mapped fnid 0x5FDFB2FE812 _sys_spu_printf_detach_group : 0x006FC6E0,813 814 // mapped fnid 0x608212FC815 sys_mempool_free_block : 0x006FC570,816 817 // mapped fnid 0x620E35A7818 sys_game_get_system_sw_version : 0x006FC760,819 820 // mapped fnid 0x637BDAAE821 unk_637BDAAE : 0x006FC4B0,822 823 // mapped fnid 0x67F9FEDB824 sys_game_process_exitspawn2 : 0x006FC510,825 826 // mapped fnid 0x68B9B011827 _sys_memset : 0x006FC810,828 829 // mapped fnid 0x6BF66EA7830 _sys_memcpy : 0x006FC800,831 832 // mapped fnid 0x6E05231D833 sys_game_watchdog_stop : 0x006FC750,834 835 // mapped fnid 0x70258515836 sys_mmapper_allocate_memory_from_container : 0x006FC738,837 838 // mapped fnid 0x71A8472A839 sys_get_random_number : 0x006FC698,840 841 // mapped fnid 0x722A0254842 sys_spinlock_trylock : 0x006FC6B8,843 844 // mapped fnid 0x728FD7C3845 unk_728FD7C3 : 0x006FC548,846 847 // mapped fnid 0x74311398848 sys_prx_get_my_module_id : 0x006FC918,849 850 // mapped fnid 0x744680A2851 sys_initialize_tls : 0x006FC5B8,852 853 // mapped fnid 0x7498887B854 _sys_strchr : 0x006FC860,855 856 // mapped fnid 0x750DD5CD857 unk_750DD5CD : 0x006FC528,858 859 // mapped fnid 0x791B9219860 _sys_vsprintf : 0x006FC840,861 862 // mapped fnid 0x7B034C78863 unk_7B034C78 : 0x006FCA18,864 865 // mapped fnid 0x7DAFF8BB866 unk_7DAFF8BB : 0x006FC540,867 868 // mapped fnid 0x80FB0C19869 sys_prx_stop_module : 0x006FC910,870 871 // mapped fnid 0x8461E528872 sys_time_get_system_time : 0x006FC620,873 874 // mapped fnid 0x84BB6774875 sys_prx_get_module_info : 0x006FC8E8,876 877 // mapped fnid 0x87C87495878 unk_87C87495 : 0x006FC9F0,879 880 // mapped fnid 0x893305FA881 sys_raw_spu_load : 0x006FC598,882 883 // mapped fnid 0x8985B5B6884 _sys_heap_stats : 0x006FC790,885 886 // mapped fnid 0x8A2F159B887 console_getc : 0x006FC630,888 889 // mapped fnid 0x8A561D92890 _sys_heap_free : 0x006FC7A8,891 892 // mapped fnid 0x8BB03AB8893 sys_game_board_storage_write : 0x006FC778,894 895 // mapped fnid 0x8C2BB498896 sys_spinlock_initialize : 0x006FC6A8,897 898 // mapped fnid 0x8CFEF376899 unk_8CFEF376 : 0x006FC900,900 901 // mapped fnid 0x92A7EB40902 unk_92A7EB40 : 0x006FC4A8,903 904 // mapped fnid 0x96328741905 _sys_process_at_Exitspawn : 0x006FC508,906 907 // mapped fnid 0x996F7CF8908 _sys_strncat : 0x006FC788,909 910 // mapped fnid 0x99C88692911 _sys_strcpy : 0x006FC870,912 913 // mapped fnid 0x9C9605EE914 unk_9C9605EE : 0x006FCA20,915 916 // mapped fnid 0x9D2EC4FF917 unk_9D2EC4FF : 0x006FC4E8,918 919 // mapped fnid 0x9D3C0F81920 sys_mempool_destroy : 0x006FC578,921 922 // mapped fnid 0x9E0623B5923 sys_game_watchdog_start : 0x006FC748,924 925 // mapped fnid 0x9F04F7AF926 _sys_printf : 0x006FC8E0,927 928 // mapped fnid 0x9F18429D929 sys_prx_start_module : 0x006FC950,930 931 // mapped fnid 0x9F950780932 sys_game_get_rtc_status : 0x006FC768,933 934 // mapped fnid 0x9FB6228E935 unk_9FB6228E : 0x006FC820,936 937 // mapped fnid 0xA146A143938 sys_mempool_allocate_block : 0x006FC560,939 940 // mapped fnid 0xA1F9EAFE941 _sys_sprintf : 0x006FC850,942 943 // mapped fnid 0xA285139D944 sys_spinlock_lock : 0x006FC6B0,945 946 // mapped fnid 0xA2C7BA64947 sys_prx_exitspawn_with_level : 0x006FC940,948 949 // mapped fnid 0xA330AD84950 sys_prx_load_module_on_memcontainer_by_fd : 0x006FC968,951 952 // mapped fnid 0xA3E3BE68953 sys_ppu_thread_once : 0x006FC5D0,954 955 // mapped fnid 0xA5D06BF0956 sys_prx_get_module_list : 0x006FC920,957 958 // mapped fnid 0xA9879A33959 unk_A9879A33 : 0x006FCA08,960 961 // mapped fnid 0xAA6D9BFF962 sys_prx_load_module_on_memcontainer : 0x006FC968,963 964 // mapped fnid 0xAC6FC404965 sys_ppu_thread_unregister_atexit : 0x006FC5C0,966 967 // mapped fnid 0xACAD8FB6968 sys_game_watchdog_clear : 0x006FC758,969 970 // mapped fnid 0xAEB78725971 sys_lwmutex_trylock : 0x006FC600,972 973 // mapped fnid 0xAEDE4B03974 _sys_heap_delete_heap : 0x006FC7D0,975 976 // mapped fnid 0xAFF080A4977 sys_ppu_thread_exit : 0x006FC5E8,978 979 // mapped fnid 0xB1BD7A61980 unk_B1BD7A61 : 0x006FCA10,981 982 // mapped fnid 0xB257540B983 sys_mmapper_allocate_memory : 0x006FC6F8,984 985 // mapped fnid 0xB27C8AE7986 sys_prx_load_module_list : 0x006FC958,987 988 // mapped fnid 0xB2FCF2C8989 _sys_heap_create_heap : 0x006FC7C8,990 991 // mapped fnid 0xB3BBCF2A992 _sys_spu_printf_detach_thread : 0x006FC6F0,993 994 // mapped fnid 0xB5D5F64E995 unk_B5D5F64E : 0x006FC640,996 997 // mapped fnid 0xB6369393998 _sys_heap_get_total_free_size : 0x006FC7A0,999 1000 // mapped fnid 0xB995662E1001 sys_raw_spu_image_load : 0x006FC590,1002 1003 // mapped fnid 0xB9BF10781004 _sys_heap_alloc_heap_memory : 0x006FC7B8,1005 1006 // mapped fnid 0xBAB62B991007 unk_BAB62B99 : 0x006FC520,1008 1009 // mapped fnid 0xBDB18F831010 _sys_malloc : 0x006FC8B8,1011 1012 // mapped fnid 0xBF8EE5BB1013 unk_BF8EE5BB : 0x006FC4C0,1014 1015 // mapped fnid 0xC3476D0C1016 sys_lwmutex_destroy : 0x006FC610,1017 1018 // mapped fnid 0xC4FD61211019 _sys_qsort : 0x006FC8A0,1020 1021 // mapped fnid 0xC839BB4C1022 unk_C839BB4C : 0x006FC9E8,1023 1024 // mapped fnid 0xCA9A60BF1025 sys_mempool_create : 0x006FC550,1026 1027 // mapped fnid 0xD0EA47A71028 sys_prx_unregister_library : 0x006FC938,1029 1030 // mapped fnid 0xD19688BC1031 unk_D19688BC : 0x006FC4D8,1032 1033 // mapped fnid 0xD1AD45701034 _sys_heap_get_mallinfo : 0x006FC798,1035 1036 // mapped fnid 0xD3039D4D1037 _sys_strncpy : 0x006FC890,1038 1039 // mapped fnid 0xD66C2D521040 unk_D66C2D52 : 0x006FC728,1041 1042 // mapped fnid 0xD8A6F8821043 unk_D8A6F882 : 0x006FC730,1044 1045 // mapped fnid 0xDA0EB71A1046 sys_lwcond_create : 0x006FC658,1047 1048 // mapped fnid 0xDB6B32501049 sys_spu_elf_get_segments : 0x006FC580,1050 1051 // mapped fnid 0xDC5780571052 sys_mmapper_map_memory : 0x006FC708,1053 1054 // mapped fnid 0xDD0C1E091055 _sys_spu_printf_attach_group : 0x006FC6D8,1056 1057 // mapped fnid 0xDD3B27AC1058 _sys_spu_printf_finalize : 0x006FC6D0,1059 1060 // mapped fnid 0xDE0C682C1061 unk_DE0C682C : 0x006FC718,1062 1063 // mapped fnid 0xDE2F9C851064 unk_DE2F9C85 : 0x006FC4F0,1065 1066 // mapped fnid 0xE0998DBF1067 sys_prx_get_module_id_by_name : 0x006FC8F0,1068 1069 // mapped fnid 0xE0DA8EFD1070 sys_spu_image_close : 0x006FC5A0,1071 1072 // mapped fnid 0xE66BAC361073 console_putc : 0x006FC638,1074 1075 // mapped fnid 0xE6F2C1E71076 sys_process_exit : 0x006FC4F8,1077 1078 // mapped fnid 0xE75C40F21079 unk_E75C40F2 : 0x006FC4C8,1080 1081 // mapped fnid 0xE76964F51082 sys_game_board_storage_read : 0x006FC770,1083 1084 // mapped fnid 0xE7EF3A801085 sys_prx_load_module_list_on_memcontainer : 0x006FC958,1086 1087 // mapped fnid 0xE95FFA0A1088 unk_E95FFA0A : 0x006FC538,1089 1090 // mapped fnid 0xE9A1BD841091 sys_lwcond_signal_all : 0x006FC678,1092 1093 // mapped fnid 0xEBE5F72F1094 sys_spu_image_import : 0x006FC5A8,1095 1096 // mapped fnid 0xEDEA5F4A1097 unk_EDEA5F4A : 0x006FC4E0,1098 1099 // mapped fnid 0xEEF751131100 _sys_toupper : 0x006FC7E8,1101 1102 // mapped fnid 0xEF68C17C1103 sys_prx_load_module_by_fd : 0x006FC970,1104 1105 // mapped fnid 0xEF87A6951106 sys_lwcond_signal : 0x006FC668,1107 1108 // mapped fnid 0xF0AECE0D1109 sys_prx_unload_module : 0x006FC948,1110 1111 // mapped fnid 0xF57E1D6F1112 console_write : 0x006FC628,1113 1114 // mapped fnid 0xF7F7FB201115 _sys_free : 0x006FC8A8,1116 1117 // mapped fnid 0xF82CF4001118 unk_F82CF400 : 0x006FC720,1119 1120 // mapped fnid 0xF923DADA1121 unk_F923DADA : 0x006FC4B8,1122 1123 // mapped fnid 0xFA7F693D1124 _sys_vprintf : 0x006FC8D0,1125 1126 // mapped fnid 0xFB5DB0801127 _sys_memcmp : 0x006FC7F0,1128 1129 // mapped fnid 0xFC52A7A91130 sys_game_process_exitspawn : 0x006FC510,1131 1132 // mapped fnid 0xFECC05B61133 unk_FECC05B6 : 0x006FC8C8,1134 1135 // mapped fnid 0xFF34C76C1136 unk_FF34C76C : 0x006FCA281137}1138// System FileSystem Functions1139sys_fs_v481D =1140{1141 sys_io_lib_fnid_ptr: 0x0063F5D0, // ExportFNIDTable_sys_fs1142 sys_io_lib_func_ptr: 0x0063F7C4, // ExportStubTable_sys_fs1143 1144 // mapped fnid 0x026713101145 cellFsSetDefaultContainer : 0x006FD240,1146 // mapped fnid 0x06E681ED1147 unk_6E681ED : 0x006FD180,1148 // mapped fnid 0x0CDA14BA1149 unk_CDA14BA : 0x006FD1B0,1150 // mapped fnid 0x0D5B4A141151 cellFsReadWithOffset : 0x006FD278,1152 // mapped fnid 0x0E2939E51153 cellFsFtruncate : 0x006FCEB0, // s64 cellFsFtruncate(Lv2FsFile fd, u64 size)1154 // mapped fnid 0x103B86321155 cellFsAllocateFileAreaWithInitialData : 0x006FD160,1156 // mapped fnid 0x13BF12861157 unk_13BF1286 : 0x006FD468,1158 // mapped fnid 0x14D58C7A1159 unk_14D58C7A : 0x006FD078,1160 // mapped fnid 0x18DD46041161 unk_18DD4604 : 0x006FD210,1162 // mapped fnid 0x190912F61163 cellFsStReadGetCurrentAddr : 0x006FD360,1164 // mapped fnid 0x1A108AB71165 cellFsGetBlockSize : 0x006FD168,1166 // mapped fnid 0x1B0B915E1167 unk_1B0B915E : 0x006FCE80,1168 // mapped fnid 0x1CAEC6571169 unk_1CAEC657 : 0x006FD068,1170 // mapped fnid 0x1EA02E2F1171 cellFsArcadeHddSerialNumber : 0x006FD310,1172 // mapped fnid 0x1FF82B631173 unk_1FF82B63 : 0x006FCE88,1174 // mapped fnid 0x226CD6931175 unk_226CD693 : 0x006FCE90,1176 // mapped fnid 0x24FA3BCC1177 unk_24FA3BCC : 0x006FD148,1178 // mapped fnid 0x2664C8AE1179 cellFsStReadInit : 0x006FD3A0,1180 // mapped fnid 0x27800C6B1181 cellFsStRead : 0x006FD368,1182 // mapped fnid 0x2796FDF31183 cellFsRmdir : 0x006FD208, // s64 cellFsRmdir(const char* path)1184 // mapped fnid 0x2CB51F0D1185 cellFsClose : 0x006FCDE8, // s64 cellFsClose(Lv2FsFile fd)1186 // mapped fnid 0x2CF1296B1187 cellFsAllocateFileAreaByFdWithoutZeroFill : 0x006FD020,1188 // mapped fnid 0x3140F6E11189 cellFsSetIoBuffer : 0x006FD250,1190 // mapped fnid 0x3394F0371191 cellFsAllocateFileAreaByFdWithInitialData : 0x006FCEA0,1192 // mapped fnid 0x37907F9F1193 unk_37907F9F : 0x006FD1B8,1194 // mapped fnid 0x384C65CF1195 unk_384C65CF : 0x006FD048,1196 // mapped fnid 0x3A1C83931197 cellFsTruncate2 : 0x006FCEA8,1198 // mapped fnid 0x3AAA1BD01199 unk_3AAA1BD0 : 0x006FD150,1200 // mapped fnid 0x3F61245C1201 cellFsOpendir : 0x006FCDF0, // s64 cellFsOpenDir(const char* path, Lv2FsFile* fd)1202 // mapped fnid 0x445C878F1203 unk_445C878F : 0x006FD2D0,1204 // mapped fnid 0x4BD5073A1205 unk_4BD5073A : 0x006FD1D8,1206 // mapped fnid 0x4CEF342E1207 cellFsAioWrite : 0x006FD3C8,1208 // mapped fnid 0x4D5FF8E21209 cellFsRead : 0x006FCDD8, // s64 cellFsRead(Lv2FsFile fd, void* buf, u64 size, u64* read)1210 // mapped fnid 0x5731DF451211 unk_5731DF45 : 0x006FD320,1212 // mapped fnid 0x5C74903D1213 cellFsReaddir : 0x006FCDF8, // s64 cellFsReadDir(Lv2FsFile fd, Lv2FsDirent* entry, u64* read)1214 // mapped fnid 0x606F9F421215 cellFsChangeFileSizeWithoutAllocation : 0x006FD218,1216 // mapped fnid 0x6A4B95C11217 unk_6A4B95C1 : 0x006FD050,1218 // mapped fnid 0x6AE0BA7F1219 unk_6AE0BA7F : 0x006FCE30,1220 // mapped fnid 0x6C8159431221 unk_6C815943 : 0x006FCE78,1222 // mapped fnid 0x6D3BB15B1223 cellFsSdataOpenByFd : 0x006FD2C0,1224 // mapped fnid 0x718BF5F81225 cellFsOpen : 0x006FD1F0, // s64 cellFsOpen(const char* path, s32 oflags, Lv2FsFile* fd, u32 mode, const void* arg, u64 argsize)1226 // mapped fnid 0x75F16DC51227 cellFsSetIoBufferFromDefaultContainer : 0x006FD258,1228 // mapped fnid 0x7A0329A11229 cellFsAllocateFileAreaWithoutZeroFill : 0x006FD220,1230 // mapped fnid 0x7DBB9A4D1231 unk_7DBB9A4D : 0x006FD1D0,1232 // mapped fnid 0x7DE6DCED1233 cellFsStat : 0x006FD128, // s64 cellFsStat(const char* path, Lv2FsStat* buf)1234 // mapped fnid 0x7F13FC8C1235 cellFsAioCancel : 0x006FD3C0,1236 // mapped fnid 0x7F4677A81237 cellFsUnlink : 0x006FD200, // s64 cellFsUnlink(const char* path)1238 // mapped fnid 0x81F337831239 cellFsStReadPutCurrentAddr : 0x006FD358,1240 // mapped fnid 0x842E7E061241 unk_842E7E06 : 0x006FD190,1242 // mapped fnid 0x866F6AEC1243 cellFsStReadWaitCallback : 0x006FD348,1244 // mapped fnid 0x8CB722D51245 cellFsWriteWithOffset : 0x006FD288,1246 // mapped fnid 0x8DCFF2CD1247 unk_8DCFF2CD : 0x006FD178,1248 // mapped fnid 0x8DF28FF91249 cellFsStReadStart : 0x006FD378,1250 // mapped fnid 0x8F71C5B21251 cellFsStReadWait : 0x006FD350,1252 // mapped fnid 0x91A1BEAA1253 cellFsSetDiscReadRetrySetting : 0x006FD328,1254 // mapped fnid 0x91D59F691255 unk_91D59F69 : 0x006FCF20,1256 // mapped fnid 0x964DB3981257 unk_964DB398 : 0x006FD0F8,1258 // mapped fnid 0x967A162B1259 cellFsFsync : 0x006FCE48, // s64 cellFsFsync(Lv2FsFile fd)1260 // mapped fnid 0x99406D0B1261 cellFsChmod : 0x006FD140, // s64 cellFsChmod(const char* path, Lv2FsMode mode)1262 // mapped fnid 0x9B8824951263 cellFsGetDirectoryEntries : 0x006FD088,1264 // mapped fnid 0x9F9518101265 cellFsAioFinish : 0x006FD3D8,1266 // mapped fnid 0x9FDBBA891267 unk_9FDBBA89 : 0x006FD330,1268 // mapped fnid 0xA01EE33A1269 cellFsRegisterConversionCallback : 0x006FD120,1270 // mapped fnid 0xA397D0421271 cellFsLseek : 0x006FCE38,1272 // mapped fnid 0xAA3B4BCD1273 cellFsGetFreeSize : 0x006FD170,1274 // mapped fnid 0xADDF33CD1275 unk_ADDF33CD : 0x006FD1C0,1276 // mapped fnid 0xAE4A225E1277 unk_AE4A225E : 0x006FD1C8,1278 // mapped fnid 0xB1840B531279 cellFsSdataOpen : 0x006FD2A0,1280 // mapped fnid 0xB3AFEE8B1281 cellFsStReadGetRingBuf : 0x006FD390,1282 // mapped fnid 0xBA901FE61283 cellFsMkdir : 0x006FD1A8,1284 // mapped fnid 0xBD273A881285 cellFsStReadGetRegid : 0x006FD380,1286 // mapped fnid 0xBEF554A41287 cellFsUtime : 0x006FD1A0,1288 // mapped fnid 0xC1C507E71289 cellFsAioRead : 0x006FD3D0,1290 // mapped fnid 0xC85C4DE71291 unk_C85C4DE7 : 0x006FD130,1292 // mapped fnid 0xC9DC3AC51293 cellFsTruncate : 0x006FD198,1294 // mapped fnid 0xCB588DBA1295 cellFsFGetBlockSize : 0x006FCE50,1296 // mapped fnid 0xCBF1758B1297 unk_CBF1758B : 0x006FD158,1298 // mapped fnid 0xCF34969C1299 cellFsStReadGetStatus : 0x006FD388,1300 // mapped fnid 0xD338A65A1301 unk_D338A65A : 0x006FCE40,1302 // mapped fnid 0xD73938DF1303 cellFsStReadFinish : 0x006FD398,1304 // mapped fnid 0xDB869F201305 cellFsAioInit : 0x006FD3E0,1306 // mapped fnid 0xE15939C31307 cellFsChangeFileSizeByFdWithoutAllocation : 0x006FD018,1308 // mapped fnid 0xE3D283951309 unk_E3D28395 : 0x006FD1F8,1310 // mapped fnid 0xE44827ED1311 unk_E44827ED : 0x006FD188,1312 // mapped fnid 0xECDCF2AB1313 cellFsWrite : 0x006FCDE0, // s64 cellFsWrite(Lv2FsFile fd, const void* buf, u64 size, u64* written)1314 // mapped fnid 0xEF3EFA341315 cellFsFstat : 0x006FCE08, // s64 cellFsFstat(Lv2FsFile fd, Lv2FsStat* buf)1316 // mapped fnid 0xF0A738321317 unk_F0A73832 : 0x006FD070,1318 // mapped fnid 0xF12EECC81319 cellFsRename : 0x006FD1E0,1320 // mapped fnid 0xF44C0E1D1321 unk_F44C0E1D : 0x006FD138,1322 // mapped fnid 0xF8E5D9A01323 cellFsStReadStop : 0x006FD370,1324 // mapped fnid 0xF94BAA801325 cellFsUnregisterL10nCallbacks : 0x006FD118,1326 // mapped fnid 0xFF29F4781327 unk_FF29F478 : 0x006FD1E8,1328 // mapped fnid 0xFF42DCC31329 cellFsClosedir : 0x006FCE00 // s64 cellFsCloseDir(Lv2FsFile fd)1330}1331// System IO Functions1332sys_io_v481D =1333{1334 sys_io_lib_fnid_ptr: 0x0063F3E0, // ExportFNIDTable_sys_io1335 sys_io_lib_func_ptr: 0x0063F4E4, // ExportStubTable_sys_io1336 1337 // mapped fnid 0x068FCBC61338 sys_config_start : 0x006FCA70,1339 // mapped fnid 0x0D5F2C141340 cellPadClearBuf : 0x006FCB48,1341 // mapped fnid 0x0E2DFAAD1342 cellPadInfoPressMode : 0x006FCB18,1343 // mapped fnid 0x10DA8DCC1344 unk_10DA8DCC : 0x006FCAC8,1345 // mapped fnid 0x13ED2BA41346 unk_13ED2BA4 : 0x006FCB28,1347 // mapped fnid 0x1CF988001348 cellPadInit : 0x006FCB58,1349 // mapped fnid 0x1F71ECBE1350 cellKbGetConfiguration : 0x006FCB88,1351 // mapped fnid 0x2073B7F61352 cellKbClearBuf : 0x006FCBC0,1353 // mapped fnid 0x20A97BA21354 cellPadLddRegisterController : 0x006FCAE8,1355 // mapped fnid 0x21A62E9B1356 cellMouseGetTabletDataList : 0x006FCC00,1357 // mapped fnid 0x2D16DA4F1358 cellMouseSetTabletMode : 0x006FCBF0,1359 // mapped fnid 0x2F1774D51360 cellKbGetInfo : 0x006FCBB8,1361 // mapped fnid 0x3138E6321362 cellMouseGetData : 0x006FCC10,1363 // mapped fnid 0x3733EA3C1364 unk_3733EA3C : 0x006FCAB8,1365 // mapped fnid 0x3AAAD4641366 cellPadGetInfo : 0x006FCB40,1367 // mapped fnid 0x3EF66B951368 cellMouseClearBuf : 0x006FCC28,1369 // mapped fnid 0x3F72C56E1370 cellKbSetLEDStatus : 0x006FCB90,1371 // mapped fnid 0x3F797DFF1372 cellPadGetRawData : 0x006FCB38,1373 // mapped fnid 0x433F6EC01374 cellKbInit : 0x006FCBD0,1375 // mapped fnid 0x4AB1FA771376 cellKbInit : 0x006FCBA8,1377 // mapped fnid 0x4CC9B68D1378 cellMouseGetTabletDataList : 0x006FCA90,1379 // mapped fnid 0x4D0B3B1F1380 cellMouseInfoTabletMode : 0x006FCBF8,1381 // mapped fnid 0x4D9B75D51382 cellPadEnd : 0x006FCB50,1383 // mapped fnid 0x578E3C981384 cellPadSetPortSetting : 0x006FCA98,1385 // mapped fnid 0x5BAF30FB1386 cellMouseGetInfo : 0x006FCC20,1387 // mapped fnid 0x5C016E791388 unk_5C016E79 : 0x006FCAD0,1389 // mapped fnid 0x5F81900C1390 sys_config_unregister_service : 0x006FCA48,1391 // mapped fnid 0x662BB2AD1392 unk_662BB2AD : 0x006FCA40,1393 // mapped fnid 0x6AE105961394 sys_config_add_service_listener : 0x006FCA60,1395 // mapped fnid 0x6BC09C611396 cellPadGetDataExtra : 0x006FCAB0,1397 // mapped fnid 0x6BD131F01398 cellMouseGetDataList : 0x006FCC08,1399 // mapped fnid 0x6D3679531400 sys_config_stop : 0x006FCA68,1401 // mapped fnid 0x7009B7381402 unk_7009B738 : 0x006FCB00,1403 // mapped fnid 0x73BB2D741404 cellPadSetSensorMode : 0x006FCAE0,1405 // mapped fnid 0x782005591406 cellPadInfoSensorMode : 0x006FCB08,1407 // mapped fnid 0x78F058A21408 sys_config_register_service : 0x006FCA50,1409 // mapped fnid 0x8A00F2641410 cellPadPeriphGetData : 0x006FCA88,1411 // mapped fnid 0x8B72CDA11412 cellPadGetData : 0x006FCB30,1413 // mapped fnid 0x8B8231E51414 cellPadLddGetPortNo : 0x006FCAD8,1415 // mapped fnid 0x8E06D13B1416 unk_8E06D13B : 0x006FCA38,1417 // mapped fnid 0xA328CC351418 cellMouseGetRawData : 0x006FCC18,1419 // mapped fnid 0xA5F85E4D1420 cellKbSetCodeType : 0x006FCBA0,1421 // mapped fnid 0xA703A51D1422 cellPadGetInfo2 : 0x006FCAA0,1423 // mapped fnid 0xBAFD64091424 cellPadLddDataInsert : 0x006FCAF0,1425 // mapped fnid 0xBE5BE3BA1426 cellPadSetSensorMode : 0x006FCB10,1427 // mapped fnid 0xBFCE32851428 cellKbEnd : 0x006FCBC8,1429 // mapped fnid 0xC90301381430 cellMouseInit : 0x006FCC38,1431 // mapped fnid 0xCCC785DF1432 unk_CCC785DF : 0x006FCBE8,1433 // mapped fnid 0xDBF4C59C1434 unk_DBF4C59C : 0x006FCAC0,1435 // mapped fnid 0xDEEFDFA71436 cellKbSetReadMode : 0x006FCB98,1437 // mapped fnid 0xE10183CE1438 cellMouseEnd : 0x006FCC30,1439 // mapped fnid 0xE442FAA81440 cellPadLddUnregisterController : 0x006FCAF8,1441 // mapped fnid 0xE5E139DD1442 unk_E5E139DD : 0x006FCA80,1443 // mapped fnid 0xF5D9D5711444 sys_config_remove_service_listener : 0x006FCA58,1445 // mapped fnid 0xF65544EE1446 cellPadSetActDirect : 0x006FCAA8,1447 // mapped fnid 0xF83F81821448 cellPadSetPressMode : 0x006FCB20,1449 // mapped fnid 0xFF0A21B71450 cellKbRead : 0x006FCBB01451}1452// VSH Functions1453vsh_v481D =1454{1455 lib_fnid_ptr: 0x0063F954, // ExportFNIDTable_vsh1456 lib_func_ptr: 0x0063FBD8, // ExportStubTable_vsh1457 1458 // mapped fnid 0x015910A01459 unk_15910A0 : 0x006FBD78,1460 // mapped fnid 0x01DFD97E1461 unk_1DFD97E : 0x006FBD18,1462 // mapped fnid 0x0D5CCC401463 unk_D5CCC40 : 0x006FD4D0,1464 // mapped fnid 0x0F48562D1465 unk_F48562D : 0x006FBC30,1466 // mapped fnid 0x0F80B71F1467 unk_MOVE_ME___TO_VSH_TASK : 0x006FBC48,1468 // mapped fnid 0x13A5BE241469 unk_13A5BE24 : 0x006FBD10,1470 // mapped fnid 0x145991B41471 unk_145991B4 : 0x006FBC18,1472 // mapped fnid 0x1714D0981473 unk_1714D098 : 0x006FD4E0,1474 // mapped fnid 0x172B05CD1475 unk_172B05CD : 0x006FBB40,1476 // mapped fnid 0x18EF767F1477 unk_18EF767F : 0x006FD530,1478 // mapped fnid 0x196DB98B1479 unk_18EF767F : 0x006FBBD0,1480 // mapped fnid 0x1B890AD21481 unk_1B890AD2 : 0x006FBB58,1482 // mapped fnid 0x1B8D42871483 unk_1B8D4287 : 0x006FD4F8,1484 // mapped fnid 0x1C68CC751485 unk_1C68CC75 : 0x006FBC70,1486 // mapped fnid 0x1EAC97C31487 unk_1EAC97C3 : 0x006FD478,1488 // mapped fnid 0x1F80C6081489 unk_1F80C608 : 0x006FBB08,1490 // mapped fnid 0x1F80E2871491 unk_1F80E287 : 0x006FBC20,1492 // mapped fnid 0x202155471493 unk_20215547 : 0x006FBC68,1494 // mapped fnid 0x2068CBF31495 unk_2068CBF3 : 0x006FBB20,1496 // mapped fnid 0x233791FE1497 unk_233791FE : 0x006FD480,1498 // mapped fnid 0x26709B911499 unk_26709B91 : 0x006FBB90,1500 // mapped fnid 0x278A6AF71501 unk_278A6AF7 : 0x006FBD70,1502 // mapped fnid 0x2A91BB1D1503 unk_2A91BB1D : 0x006FBB78,1504 // mapped fnid 0x2B58A92C1505 unk_2B58A92C : 0x006FBB98,1506 // mapped fnid 0x2C563C921507 unk_26709B91 : 0x006FBB48,1508 // mapped fnid 0x3065B3C31509 unk_3065B3C3 : 0x006FBAE8,1510 // mapped fnid 0x3231E0121511 unk_3231E012 : 0x006FBA58,1512 // mapped fnid 0x339A75081513 unk_339A7508 : 0x006FD4A8,1514 // mapped fnid 0x33ACD7591515 unk_33ACD759 : 0x006FD500,1516 // mapped fnid 0x3473377C1517 unk_3473377C : 0x006FBA50,1518 // mapped fnid 0x349F15351519 unk_349F1535 : 0x006FBB50,1520 // mapped fnid 0x37857F3F1521 unk_37857F3F : 0x006FBCD8,1522 // mapped fnid 0x385656031523 unk_38565603 : 0x006FBAE0,1524 // mapped fnid 0x38EA9A581525 unk_38EA9A58 : 0x006FBD68,1526 // mapped fnid 0x3AE8D8021527 unk_3AE8D802 : 0x006FBB70,1528 // mapped fnid 0x3B4A1AC41529 unk_3B4A1AC4 : 0x006FBBE0,1530 // mapped fnid 0x3C1864201531 unk_3C186420 : 0x006FBCC0,1532 // mapped fnid 0x3F0623371533 unk_3F062337 : 0x006FBBE8,1534 // mapped fnid 0x40E51FD11535 unk_40E51FD1 : 0x006FBCE8,1536 // mapped fnid 0x42FEA6FB1537 unk_42FEA6FB : 0x006FBB28,1538 // mapped fnid 0x44F4A9361539 unk_44F4A936 : 0x006FBD40,1540 // mapped fnid 0x47FB5A921541 unk_47FB5A92 : 0x006FBB00,1542 // mapped fnid 0x489102C61543 unk_489102C6 : 0x006FBBB8,1544 // mapped fnid 0x4B0523C41545 unk_4B0523C4 : 0x006FCB70,1546 // mapped fnid 0x4CE8E5441547 unk_4CE8E544 : 0x006FBD30,1548 // mapped fnid 0x4DB8DD871549 unk_4DB8DD87 : 0x006FBC60,1550 // mapped fnid 0x4F3A58661551 unk_4F3A5866 : 0x006FBBA0,1552 // mapped fnid 0x4FD63C1D1553 unk_4FD63C1D : 0x006FBA70,1554 // mapped fnid 0x50C2962C1555 unk_50C2962C : 0x006FBA80,1556 // mapped fnid 0x535A72221557 unk_50C2962C : 0x006FBAB8,1558 // mapped fnid 0x53E574741559 unk_53E57474 : 0x006FD508,1560 // mapped fnid 0x55C6366A1561 unk_55C6366A : 0x006FBD00,1562 // mapped fnid 0x5649626F1563 unk_5649626F : 0x006FCB80,1564 // mapped fnid 0x5A351A0A1565 unk_5A351A0A : 0x006FBA90,1566 // mapped fnid 0x5C5D84C11567 unk_5C5D84C1 : 0x006FBCB8,1568 // mapped fnid 0x609635AB1569 unk_609635AB : 0x006FBC90,1570 // mapped fnid 0x612496AA1571 unk_612496AA : 0x006FD4E8,1572 // mapped fnid 0x63F9074F1573 unk_63F9074F : 0x006FBCA0,1574 // mapped fnid 0x6B65C37C1575 unk_6B65C37C : 0x006FBAD8,1576 // mapped fnid 0x6D8407161577 unk_6D840716 : 0x006FBAC0,1578 // mapped fnid 0x703393A21579 unk_703393A2 : 0x006FBC38,1580 // mapped fnid 0x71BBE6251581 unk_71BBE625 : 0x006FD5B0,1582 // mapped fnid 0x772E1A241583 unk_772E1A24 : 0x006FBA88,1584 // mapped fnid 0x7C5A18121585 unk_7C5A1812 : 0x006FD560,1586 // mapped fnid 0x7CB16AA01587 unk_7CB16AA0 : 0x006FBAA0,1588 // mapped fnid 0x7D73E7CD1589 unk_7D73E7CD : 0x006FBC58,1590 // mapped fnid 0x80F5B53C1591 unk_80F5B53C : 0x006FBA40,1592 // mapped fnid 0x8443023A1593 unk_8443023A : 0x006FD588,1594 // mapped fnid 0x8A86B77C1595 unk_8A86B77C : 0x006FBB38,1596 // mapped fnid 0x8A9529BA1597 unk_8A9529BA : 0x006FBCA8,1598 // mapped fnid 0x8AD55D801599 unk_8AD55D80 : 0x006FBC28,1600 // mapped fnid 0x8B0BC1111601 unk_8B0BC111 : 0x006FBA78,1602 // mapped fnid 0x8BC98CB91603 unk_8BC98CB9 : 0x006FBD38,1604 // mapped fnid 0x8C4215ED1605 unk_8C4215ED : 0x006FBAD0,1606 // mapped fnid 0x8E2AF83C1607 unk_8E2AF83C : 0x006FBA20,1608 // mapped fnid 0x8F29A4A41609 unk_8F29A4A4 : 0x006FBD20,1610 // mapped fnid 0x8F71C2DF1611 unk_8F71C2DF : 0x006FBC10,1612 // mapped fnid 0x9121C0C61613 unk_9121C0C6 : 0x006FBB30,1614 // mapped fnid 0x91C2E5001615 unk_91C2E500 : 0x006FBD08,1616 // mapped fnid 0x92A609B21617 unk_92A609B2 : 0x006FBA28,1618 // mapped fnid 0x93A6A4501619 unk_93A6A450 : 0x006FBAC8,1620 // mapped fnid 0x986EC8D31621 unk_986EC8D3 : 0x006FBB88,1622 // mapped fnid 0x99A5F4041623 unk_99A5F404 : 0x006FBBA8,1624 // mapped fnid 0x9AD2E5241625 unk_9AD2E524 : 0x006FBBF0,1626 // mapped fnid 0x9AF9918E1627 unk_9AF9918E : 0x006FBBD8,1628 // mapped fnid 0x9B1FEAA31629 unk_9B1FEAA3 : 0x006FBA60,1630 // mapped fnid 0x9C279BCF1631 unk_9C279BCF : 0x006FBA48,1632 // mapped fnid 0x9C4E9B5C1633 unk_9C4E9B5C : 0x006FD498,1634 // mapped fnid 0x9C6EEE241635 unk_9C6EEE24 : 0x006FD5A0,1636 // mapped fnid 0x9FC0AA391637 unk_9FC0AA39 : 0x006FBD28,1638 // mapped fnid 0xA10195F41639 unk_A10195F4 : 0x006FBB60,1640 // mapped fnid 0xA21246C21641 unk_A21246C2 : 0x006FBAF8,1642 // mapped fnid 0xA51FFBF91643 unk_A51FFBF9 : 0x006FBC40,1644 // mapped fnid 0xA79070D51645 unk_A79070D5 : 0x006FBA68,1646 // mapped fnid 0xACDDC98E1647 unk_ACDDC98E : 0x006FBA38,1648 // mapped fnid 0xAF44BFBF1649 unk_AF44BFBF : 0x006FD540,1650 // mapped fnid 0xB517EC401651 unk_B517EC40 : 0x006FD4B0,1652 // mapped fnid 0xB84451B21653 unk_B84451B2 : 0x006FCB78,1654 // mapped fnid 0xC0A2CB931655 unk_C0A2CB93 : 0x006FBC98,1656 // mapped fnid 0xC0E39B971657 unk_C0E39B97 : 0x006FBBF8,1658 // mapped fnid 0xC13930A71659 unk_C13930A7 : 0x006FBAA8,1660 // mapped fnid 0xC85E47B81661 unk_C85E47B8 : 0x006FBAB0,1662 // mapped fnid 0xCAA3E8E71663 unk_CAA3E8E7 : 0x006FBBC8,1664 // mapped fnid 0xCBF8BC6E1665 unk_CBF8BC6E : 0x006FBA98,1666 // mapped fnid 0xCC31BBCF1667 unk_CC31BBCF : 0x006FBBC0,1668 // mapped fnid 0xCFD2CA7D1669 unk_CFD2CA7D : 0x006FD4A0,1670 // mapped fnid 0xD42045F91671 unk_D42045F9 : 0x006FD598,1672 // mapped fnid 0xD477DB731673 unk_D477DB73 : 0x006FBCB0,1674 // mapped fnid 0xD5B386461675 unk_D5B38646 : 0x006FD5A8,1676 // mapped fnid 0xD68351F01677 unk_D68351F0 : 0x006FBD60,1678 // mapped fnid 0xDC2A512E1679 unk_DC2A512E : 0x006FBB68,1680 // mapped fnid 0xDC980E611681 unk_DC980E61 : 0x006FBB18,1682 // mapped fnid 0xDDB635E11683 unk_DDB635E1 : 0x006FBA30,1684 // mapped fnid 0xE20104BE1685 unk_E20104BE : 0x006FBBB0,1686 // mapped fnid 0xE35D54E31687 unk_E35D54E3 : 0x006FBC00,1688 // mapped fnid 0xE413CD781689 unk_E413CD78 : 0x006FD4F0,1690 // mapped fnid 0xE44F29F41691 unk_E44F29F4 : 0x006FD488,1692 // mapped fnid 0xE4A686061693 unk_E4A68606 : 0x006FBC08,1694 // mapped fnid 0xE65867F41695 unk_E65867F4 : 0x006FBB80,1696 // mapped fnid 0xE7C340441697 unk_E7C34044 : 0x006FBCC8,1698 // mapped fnid 0xE836E4511699 unk_E836E451 : 0x006FBB10,1700 // mapped fnid 0xE932A8C01701 unk_E932A8C0 : 0x006E5B30,1702 // mapped fnid 0xED3724061703 unk_ED372406 : 0x006FBA18,1704 // mapped fnid 0xED9E51781705 unk_ED9E5178 : 0x006FBC50,1706 // mapped fnid 0xF399CA361707 unk_F399CA36 : 0x006FBCD0,1708 // mapped fnid 0xF4AD1B8A1709 unk_F4AD1B8A : 0x006FBC88,1710 // mapped fnid 0xFE92A9D81711 unk_FE92A9D8 : 0x006FBAF0,1712 // mapped fnid 0xFF0309A51713 unk_FF0309A5 : 0x006FBD58,1714 // mapped fnid 0xFF4A16331715 unk_FF4A1633 : 0x006FD4901716}1717// VSH Common Functions1718vshcommon_v481D =1719{1720 lib_fnid_ptr: 0X006452C4, // ExportFNIDTable_vshcommon1721 lib_func_ptr: 0x006455F8, // ExportStubTable_vshcommon1722 1723 // mapped fnid 0x00EDDB5B1724 unk_EDDB5B : 0x006EE428,1725 // mapped fnid 0x015D43141726 unk_15D4314 : 0x006EE230, // system_plugin reference1727 // mapped fnid 0x025EC4EE1728 unk_25EC4EE : 0x006EE570,1729 // mapped fnid 0x09A431401730 unk_9A43140 : 0x006EE830, // /dev_hdd0/vsh/pushlist1731 // mapped fnid 0x0A007C991732 unk_A007C99 : 0x006EE7D8,1733 // mapped fnid 0x0BECDA921734 unk_BECDA92 : 0x006EE7F0,1735 // mapped fnid 0x0E9E8DA51736 unk_E9E8DA5 : 0x006EE208, // msg_no1737 // mapped fnid 0x0EBAC3B51738 unk_EBAC3B5 : 0x006EE300, // system_plugin reference1739 // mapped fnid 0x12D25E5F1740 unk_12D25E5F : 0x006EE258,1741 // mapped fnid 0x1379FF051742 unk_1379FF05 : 0x006EE488,1743 // mapped fnid 0x13BAFB221744 unk_13BAFB22 : 0x006EE868,1745 // mapped fnid 0x13F9024E1746 unk_13F9024E : 0x006EE6F0,1747 // mapped fnid 0x1452A4D31748 unk_1452A4D3 : 0x006EE648,1749 // mapped fnid 0x14FF1DDC1750 unk_14FF1DDC : 0x006EE248,1751 // mapped fnid 0x16106ACD1752 unk_16106ACD : 0x006EE658, // impose_plugin1753 // mapped fnid 0x16E296221754 unk_16E29622 : 0x006EE0F8,1755 // mapped fnid 0x1851C6A61756 unk_1851C6A6 : 0x006EE308,1757 // mapped fnid 0x19535F4C1758 unk_19535F4C : 0x006EE6B0,1759 // mapped fnid 0x218067751760 unk_21806775 : 0x006EE3E8,1761 // mapped fnid 0x2438F1A41762 unk_2438F1A4 : 0x006EE138, // system_plugin reference1763 // mapped fnid 0x24FF18701764 unk_24FF1870 : 0x006EE2B8,1765 // mapped fnid 0x25111EFB1766 unk_25111EFB : 0x006EE108,1767 // mapped fnid 0x252838CF1768 unk_252838CF : 0x006EE790,1769 // mapped fnid 0x26F18EDF1770 unk_26F18EDF : 0x006EE200, // msg_enter1771 // mapped fnid 0x28549FD01772 unk_28549FD0 : 0x006EE228,1773 // mapped fnid 0x2D2F3A6E1774 unk_2D2F3A6E : 0x006EE778,1775 // mapped fnid 0x31573F9A1776 unk_31573F9A : 0x006EE720,1777 // mapped fnid 0x33C123931778 unk_33C12393 : 0x006EE398,1779 // mapped fnid 0x34A057331780 unk_34A05733 : 0x006EE818, // _Export_stdc_memset reference1781 // mapped fnid 0x3851B8031782 unk_3851B803 : 0x006EE798,1783 // mapped fnid 0x388152601784 unk_38815260 : 0x006EE2E0,1785 // mapped fnid 0x390E56211786 unk_390E5621 : 0x006EE618,1787 // mapped fnid 0x39D01FCA1788 unk_39D01FCA : 0x006EE800,1789 // mapped fnid 0x3A8D0E1C1790 unk_3A8D0E1C : 0x006EE2B0,1791 // mapped fnid 0x3B634FCC1792 unk_3B634FCC : 0x006EE2D0,1793 // mapped fnid 0x3F731CC31794 unk_3F731CC3 : 0x006EE310, // _Export_vshcommon_1851C6A6 reference1795 // mapped fnid 0x3F8C6AED1796 unk_3F8C6AED : 0x006EE708,1797 // mapped fnid 0x425277FA1798 unk_425277FA : 0x006EE2E8,1799 // mapped fnid 0x447268251800 unk_44726825 : 0x006EE780,1801 // mapped fnid 0x459C02B61802 unk_459C02B6 : 0x006EE390,1803 // mapped fnid 0x4A6E257D1804 unk_4A6E257D : 0x006EE4A8,1805 // mapped fnid 0x4B8EE1231806 unk_4B8EE123 : 0x006EE730,1807 // mapped fnid 0x50CBEE731808 unk_50CBEE73 : 0x006EE888,1809 // mapped fnid 0x50DE40CE1810 unk_50DE40CE : 0x006EE330,1811 // mapped fnid 0x526927051812 unk_52692705 : 0x006EE758,1813 // mapped fnid 0x53ECE7ED1814 unk_53ECE7ED : 0x006EE480,1815 // mapped fnid 0x54D137281816 unk_54D13728 : 0x006EE7B8, // game_plugin1817 // mapped fnid 0x55A60B1A1818 unk_55A60B1A : 0x006EE1D8, // msgdialog_plugin reference1819 // mapped fnid 0x5723C3C11820 unk_5723C3C1 : 0x006EE100,1821 // mapped fnid 0x5A6C0DB61822 unk_5A6C0DB6 : 0x006EE350,1823 // mapped fnid 0x5C9F85CB1824 unk_5C9F85CB : 0x006EE600,1825 // mapped fnid 0x5CE195FA1826 unk_5CE195FA : 0x006EE458, // system_plugin reference1827 // mapped fnid 0x5DC484F81828 unk_5DC484F8 : 0x006EE440,1829 // mapped fnid 0x5DD71B311830 unk_5DD71B31 : 0x006EE4A0,1831 // mapped fnid 0x60DEE5B31832 unk_60DEE5B3 : 0x006EE148, // system_plugin reference1833 // mapped fnid 0x61D171881834 unk_61D17188 : 0x006EE420,1835 // mapped fnid 0x61D97E3B1836 unk_61D97E3B : 0x006EE260,1837 // mapped fnid 0x63210A1C1838 unk_63210A1C : 0x006EE2A0,1839 // mapped fnid 0x6A784AE51840 unk_6A784AE5 : 0x006EE340,1841 // mapped fnid 0x6DF64AAF1842 unk_6DF64AAF : 0x006EE870, // _Export_sysPrxForUser_sys_lwmutex_lock reference1843 // mapped fnid 0x6F5A9C381844 unk_6F5A9C38 : 0x006EE650, // _Export_xsetting_4712F276 reference1845 // mapped fnid 0x6FD850FF1846 unk_6FD850FF : 0x006EE0D8,1847 // mapped fnid 0x73B454A21848 unk_73B454A2 : 0x006EE628,1849 // mapped fnid 0x73F852591850 unk_73F85259 : 0x006EE120, // system_plugin reference1851 // mapped fnid 0x746C5F881852 unk_746C5F88 : 0x006EE1F0, // msg_option1853 // mapped fnid 0x74EAD50B1854 unk_74EAD50B : 0x006EE3B0,1855 // mapped fnid 0x7504447B1856 unk_7504447B : 0x006EE3D8,1857 // mapped fnid 0x75DC9C2D1858 unk_75DC9C2D : 0x006EE150, // system_plugin reference1859 // mapped fnid 0x774C200A1860 unk_774C200A : 0x006EE858,1861 // mapped fnid 0x79A546A11862 unk_79A546A1 : 0x006EE7F8,1863 // mapped fnid 0x79A562D51864 unk_79A562D5 : 0x006EE158, // system_plugin reference1865 // mapped fnid 0x7BD54E231866 unk_7BD54E23 : 0x006EE6F8,1867 // mapped fnid 0x7C139D361868 unk_7C139D36 : 0x006EE388,1869 // mapped fnid 0x7C3ACA851870 unk_7C3ACA85 : 0x006EE6A8,1871 // mapped fnid 0x7C7F21E01872 unk_7C7F21E0 : 0x006EE640,1873 // mapped fnid 0x7EE0068F1874 unk_7EE0068F : 0x006EE838,1875 // mapped fnid 0x7F5C551B1876 unk_7F5C551B : 0x006EE240, // system_plugin reference1877 // mapped fnid 0x83E28B3C1878 unk_83E28B3C : 0x006EE698,1879 // mapped fnid 0x85A3D9F31880 unk_85A3D9F3 : 0x006EE338,1881 // mapped fnid 0x85AD7A581882 unk_85AD7A58 : 0x006EE188,1883 // mapped fnid 0x884E740C1884 unk_884E740C : 0x006EE250,1885 // mapped fnid 0x8B2110D51886 unk_8B2110D5 : 0x006EE8A0, // _Export_xsetting_CC56EB2D reference1887 // mapped fnid 0x8B7F8F801888 unk_8B7F8F80 : 0x006EE6A0,1889 // mapped fnid 0x8BA1A7D51890 unk_8BA1A7D5 : 0x006EE6C0,1891 // mapped fnid 0x8C7F3E6F1892 unk_8C7F3E6F : 0x006EE1C0, // msgdialog_plugin reference1893 // mapped fnid 0x8D1737371894 unk_8D173737 : 0x006EE218,1895 // mapped fnid 0x8F0C0B331896 unk_8F0C0B33 : 0x006EE7E0,1897 // mapped fnid 0x933A54F51898 unk_933A54F5 : 0x006EE348,1899 // mapped fnid 0x940FE0971900 unk_940FE097 : 0x006EE6D0,1901 // mapped fnid 0x94F43BE71902 unk_94F43BE7 : 0x006EE238, // system_plugin reference1903 // mapped fnid 0x95302AE61904 unk_95302AE6 : 0x006EE320,1905 // mapped fnid 0x97E53BCA1906 unk_97E53BCA : 0x006EE7B0,1907 // mapped fnid 0x980513A41908 unk_980513A4 : 0x006EE5F0, // msg_press_ps_button reference1909 // mapped fnid 0x98D734081910 unk_98D73408 : 0x006EE288,1911 // mapped fnid 0x98E05EDA1912 unk_98E05EDA : 0x006EE668,1913 // mapped fnid 0x9BD8429E1914 unk_9BD8429E : 0x006EE130, // system_plugin reference1915 // mapped fnid 0x9CB87B0D1916 unk_9CB87B0D : 0x006EE3A0,1917 // mapped fnid 0x9DAB12AA1918 unk_9DAB12AA : 0x006EE548,1919 // mapped fnid 0x9EA677371920 unk_9EA67737 : 0x006EE8A8, // _Export_xsetting_CC56EB2D reference1921 // mapped fnid 0xA05B2B541922 unk_A05B2B54 : 0x006EE890,1923 // mapped fnid 0xA20E43DB1924 unk_A20E43DB : 0x006EE3D0,1925 // mapped fnid 0xA23122831926 unk_A2312283 : 0x006EE820,1927 // mapped fnid 0xA6525AE61928 unk_A6525AE6 : 0x006EE4C0,1929 // mapped fnid 0xAA6178EE1930 unk_AA6178EE : 0x006EE680,1931 // mapped fnid 0xAB6951A31932 unk_AB6951A3 : 0x006EE490,1933 // mapped fnid 0xAB7E2E691934 unk_AB7E2E69 : 0x006EE738,1935 // mapped fnid 0xABCA6F321936 unk_ABCA6F32 : 0x006EE498,1937 // mapped fnid 0xABEB01DA1938 unk_ABEB01DA : 0x006EE5D0, // system_plugin reference1939 // mapped fnid 0xAE251F8F1940 unk_AE251F8F : 0x006EE190,1941 // mapped fnid 0xAF168DD41942 unk_AF168DD4 : 0x006EE740,1943 // mapped fnid 0xB045A8DC1944 unk_B045A8DC : 0x006EE318,1945 // mapped fnid 0xB0B677BC1946 unk_B0B677BC : 0x006EE6B8,1947 // mapped fnid 0xB2D046191948 unk_B2D04619 : 0x006EE530,1949 // mapped fnid 0xB49AF1091950 unk_B49AF109 : 0x006EE840, // _Export_sysPrxForUser_sys_lwmutex_destroy reference1951 // mapped fnid 0xB4BAF07E1952 unk_B4BAF07E : 0x006EE7A8,1953 // mapped fnid 0xB53FD7391954 unk_B53FD739 : 0x006EE788,1955 // mapped fnid 0xB6C9D1971956 unk_B6C9D197 : 0x006EE6E8,1957 // mapped fnid 0xB7517F9B1958 unk_B7517F9B : 0x006EE620,1959 // mapped fnid 0xB7F2EFD51960 unk_B7F2EFD5 : 0x006EE538,1961 // mapped fnid 0xB8E256D71962 unk_B8E256D7 : 0x006EE210, // msg_yes1963 // mapped fnid 0xB9473E7A1964 unk_B9473E7A : 0x006EE160,1965 // mapped fnid 0xB9FDA9D41966 unk_B9FDA9D4 : 0x006EE6E0,1967 // mapped fnid 0xBB2EC9CD1968 unk_BB2EC9CD : 0x006EE5C8,1969 // mapped fnid 0xBC2003241970 unk_BC200324 : 0x006EE850,1971 // mapped fnid 0xBF88BEE41972 unk_BF88BEE4 : 0x006EE0E8,1973 // mapped fnid 0xC08C2D221974 unk_C08C2D22 : 0x006EE660,1975 // mapped fnid 0xC27EF4451976 unk_C27EF445 : 0x006EE630,1977 // mapped fnid 0xC398D8BA1978 unk_C398D8BA : 0x006EE328,1979 // mapped fnid 0xC499E0731980 unk_C499E073 : 0x006EE4B0,1981 // mapped fnid 0xC8FFD88F1982 unk_C8FFD88F : 0x006EE0F0,1983 // mapped fnid 0xCA3CBF5D1984 unk_CA3CBF5D : 0x006EE770,1985 // mapped fnid 0xCC2C67F21986 unk_CC2C67F2 : 0x006EE828,1987 // mapped fnid 0xCCD2C3191988 unk_CCD2C319 : 0x006EE1E8, // msg_cancel1989 // mapped fnid 0xCDF4C62A1990 unk_CDF4C62A : 0x006EE478, // system_plugin reference1991 // mapped fnid 0xCE57965F1992 unk_CE57965F : 0x006EE3A8,1993 // mapped fnid 0xD010D3381994 unk_D010D338 : 0x006EE848,1995 // mapped fnid 0xD17A09681996 unk_D17A0968 : 0x006EE670,1997 // mapped fnid 0xD1DE9F381998 unk_D1DE9F38 : 0x006EE168,1999 // mapped fnid 0xD55C9CEE2000 unk_D55C9CEE : 0x006EE638,2001 // mapped fnid 0xD59AEAD02002 unk_D59AEAD0 : 0x006EE438,2003 // mapped fnid 0xD59C7D792004 unk_D59C7D79 : 0x006EE7E8,2005 // mapped fnid 0xD81578DB2006 unk_D81578DB : 0x006EE118,2007 // mapped fnid 0xD87C38342008 unk_D87C3834 : 0x006EE270,2009 // mapped fnid 0xD996B2612010 unk_D996B261 : 0x006EE750,2011 // mapped fnid 0xD9B636542012 unk_D9B63654 : 0x006EE5A8,2013 // mapped fnid 0xDAC7FC512014 unk_DAC7FC51 : 0x006EE4C8,2015 // mapped fnid 0xDB0320D82016 unk_DB0320D8 : 0x006EE7D0,2017 // mapped fnid 0xDC712BA32018 unk_DC712BA3 : 0x006EE6C8,2019 // mapped fnid 0xDEC761F12020 unk_DEC761F1 : 0x006EE268,2021 // mapped fnid 0xDFD99C552022 unk_DFD99C55 : 0x006EE298,2023 // mapped fnid 0xE011E7D02024 unk_E011E7D0 : 0x006EE128, // system_plugin reference2025 // mapped fnid 0xE21C34322026 unk_E21C3432 : 0x006EE448,2027 // mapped fnid 0xE2D6F3D72028 unk_E2D6F3D7 : 0x006EE898,2029 // mapped fnid 0xE43C21F62030 unk_E43C21F6 : 0x006EE198,2031 // mapped fnid 0xE607C2BA2032 unk_E607C2BA : 0x006EE460,2033 // mapped fnid 0xE7DFF7FE2034 unk_E7DFF7FE : 0x006EE578,2035 // mapped fnid 0xE9790F7A2036 unk_E9790F7A : 0x006EE608,2037 // mapped fnid 0xEA7900232038 unk_EA790023 : 0x006EE430,2039 // mapped fnid 0xEA95C3F52040 unk_EA95C3F5 : 0x006EE2C0,2041 // mapped fnid 0xEC44C9992042 unk_EC44C999 : 0x006EE6D8,2043 // mapped fnid 0xEC73D4382044 unk_EC73D438 : 0x006EE0E0,2045 // mapped fnid 0xEDB3F1F22046 unk_EDB3F1F2 : 0x006EE610,2047 // mapped fnid 0xF06004CD2048 unk_F06004CD : 0x006EE3B8,2049 // mapped fnid 0xF19189122050 unk_F1918912 : 0x006EE3E0,2051 // mapped fnid 0xF4E3246A2052 unk_F4E3246A : 0x006EE678,2053 // mapped fnid 0xF55812AE2054 unk_F55812AE : 0x006EE3F8,2055 // mapped fnid 0xF7A67D492056 unk_F7A67D49 : 0x006EE140, // system_plugin reference2057 // mapped fnid 0xF995E53F2058 unk_F995E53F : 0x006EE1F8, // msg_back2059 // mapped fnid 0xF9E43DA22060 unk_F9E43DA2 : 0x006EE1E0, // msg_ok2061 // mapped fnid 0xFAEA4EF92062 unk_FAEA4EF9 : 0x006EE880,2063 // mapped fnid 0xFB104BD22064 unk_FB104BD2 : 0x006EE760,2065 // mapped fnid 0xFDA63F522066 unk_FDA63F52 : 0x006EE2902067}2068// VSH Task Functions2069vshtask_v481D =2070{2071 lib_fnid_ptr: 0x00647A08, // ExportFNIDTable_vshtask2072 lib_func_ptr: 0x00647A1C, // ExportStubTable_vshtask2073 2074 // mapped fnid 0x0F80B71F2075 unk_F80B71F : 0x006FBC48,2076 // mapped fnid 0x166551C52077 unk_166551C5 : 0x006E6428,2078 // mapped fnid 0x668E3C942079 unk_668E3C94 : 0x006E6430,2080 // mapped fnid 0x8D03E0FD2081 unk_8D03E0FD : 0x006E6400,2082 // mapped fnid 0xA02D46E72083 unk_A02D46E7 : 0x006E64082084}2085// X-Setting Functions2086xsetting_v481D =2087{2088 lib_fnid_ptr: 0x0064300C, // ExportFNIDTable_xsetting2089 lib_func_ptr: 0x00643080, // ExportStubTable_xsetting2090 2091 2092}2093// SCE Allocator Functions2094sceAllocatorFcns_v481D =2095{2096 malloc : 0x006FB9C8,2097 free : 0x006FB9F8,2098 memalign : 0x006FB9E82099}2100// SCE FS Functions2101sceFSFcns_v481D =2102{2103 cellFsRename : 0x006FD1E0,2104 cellFsClose : 0x006FCDE8,2105 cellFsOpen : 0x006FD1F0,2106 cellFsWrite : 0x006FCDE0,2107 cellFsRead : 0x006FCDD8,2108 cellFsMkdir : 0x006FD1A8,2109 cellFsRmdir : 0x006FD208,2110 cellFsChmod : 0x006FD140,2111 cellFsUnlink : 0x006FD2002112}2113// SCE VSH Task Functions2114sceVSHTaskFcns_v481D =2115{2116 vshtask_notify : 0x006E64082117}2118// SCE VSH Functions2119sceVSH_v481D =2120{2121 Heap_Create : 0x006FBD40,2122 Heap_Alloc : 0x006FBD30,2123 Heap_Destroy : 0x006FBD38,2124 Heap_Free : 0x006FBD20,2125 vsh_E7C34044 : 0x006FBCC8, //retrieves vsh memory container by "id" 0=game,1=app,2=debug,3=fg, 4=bg sys_memory_container_t vsh_E7C34044(int id) 2126 cellFsUtilMount : 0x006FD4902127}2128// SCE Lib Functions2129sceLibcFcns_v481D =2130{2131 abort : 0x006FBFE8,2132 exit : 0x006FC018,2133 strcpy : 0x006FC2C0,2134 mkdir : 0x006FC3F0,2135 mbrtowc : 0x006FC0D8,2136 sprintf : 0x006FC330,2137 strlen : 0x006FC170,2138 snprintf : 0x006FC320,2139 strcmp : 0x006FC2B8,2140 fputs : 0x006FC070,2141 memset : 0x006FC470,2142 memmove : 0x006FC0F8,2143 wcslen : 0x006FC210,2144 fopen : 0x006FC060,2145 stat : 0x006FC400,2146 rename : 0x006FC130,2147 rmdir : 0x006FC3F8,2148 memcpy : 0x006FC0F0,2149 strcat : 0x006FC2A8,2150 strcasecmp : 0x006FC2E0,2151 printf : 0x006FC310,2152 memcmp : 0x006FC478,2153 strstr : 0x006FC188,2154 fread : 0x006FC078,2155 strchr : 0x006FC2B0,2156 fclose : 0x006FC020,2157 strncmp : 0x006FC2D0,2158 strtok : 0x006FC190,2159 unlink : 0x006FC418,2160 fwrite : 0x006FC0A0,2161 fprintf : 0x006FC2F0,2162 strdup : 0x006FC1A8,2163 mbstowcs : 0x006FC0E02164}2165// Check Firmware Version2166version_deps =2167{2168 v4_81D:2169 {2170 "SceWebKit": 2171 {2172 gadgets:2173 { 2174 /*PPC2175 mflr2176 bl2177 blr2178 2179 */ 2180 /* ARM2181 ldmr0 : 0x3bc534, // ldm r0, {r0, r3, r4, r9, fp, ip, pc}2182 ldmr1 : 0x453ff0, // ldm r1, {r0, ip, lr, pc}2183 iloop : 0x9851c | 1, // infinite loop2184 bxlr : 0x2b3a | 1, // bx lr2185 str3 : 0x7f4ac | 1, // str r3, [r0, #4]; bx lr2186 movr30 : 0x535278 | 1 // movs r3, r0 ; bx lr 2187 */2188 },2189 functions: {}2190 },2191 "SceFS":2192 {2193 functions : sceFSFcns_v481D,2194 gadgets : {}2195 },2196 "SceAllocator":2197 {2198 functions : sceAllocatorFcns_v481D, 2199 gadgets : {}2200 },2201 "SceVshTask":2202 { 2203 functions : sceVSHTaskFcns_v481D, 2204 gadgets : {}2205 },2206 "SceVsh":2207 {2208 functions : sceVSH_v481D,2209 gadgets : {}2210 },2211 "SceLibc":2212 {2213 functions: sceLibcFcns_v481D,2214 gadgets : 2215 {2216 // scesetjmp : 0x13EE0 | 1,2217 // scelongjmp : 0x13F10 | 12218 }2219 }2220 }...

Full Screen

Full Screen

bind.mapping.js

Source:bind.mapping.js Github

copy

Full Screen

1(function (factory) {2 // Module systems magic dance.34 if (typeof require === "function" && typeof exports === "object" && typeof module === "object") {5 // CommonJS or Node: hard-coded dependency on "knockout"6 factory(require("bind"), exports);7 } else if (typeof define === "function" && define["amd"]) {8 // AMD anonymous module with hard-coded dependency on "knockout"9 define(["bind", "exports"], factory);10 } else {11 // <script> tag: use the global `ko` object, attaching a `mapping` property12 factory(bind, bind.mapping = {});13 }14}(function (ko, exports) {15 // create our namespace object16 ko.mapping = exports;17 18 var DEBUG=false;19 var mappingProperty = "__ko_mapping__";20 var realKoDependentObservable = ko.dependentObservable;21 var mappingNesting = 0;22 var dependentObservables;23 var visitedObjects;24 var recognizedRootProperties = ["create", "update", "key", "arrayChanged"];25 var emptyReturn = {};2627 var _defaultOptions = {28 include: ["_destroy"],29 ignore: [],30 copy: [],31 observe: []32 };33 var defaultOptions = _defaultOptions;34 35 function unionArrays() {36 var args = arguments,37 l = args.length,38 obj = {},39 res = [],40 i, j, k;41 42 while (l--) {43 k = args[l];44 i = k.length;45 46 while (i--) {47 j = k[i];48 if (!obj[j]) {49 obj[j] = 1;50 res.push(j);51 }52 } 53 }54 55 return res;56 }5758 function extendObject(destination, source) {59 var destType;6061 for (var key in source) {62 if (source.hasOwnProperty(key) && source[key]) {63 destType = exports.getType(destination[key]);64 if (key && destination[key] && destType !== "array" && destType !== "string") {65 extendObject(destination[key], source[key]);66 } else {67 var bothArrays = exports.getType(destination[key]) === "array" && exports.getType(source[key]) === "array";68 if (bothArrays) {69 destination[key] = unionArrays(destination[key], source[key]);70 } else {71 destination[key] = source[key];72 }73 }74 }75 }76 }7778 function merge(obj1, obj2) {79 var merged = {};80 extendObject(merged, obj1);81 extendObject(merged, obj2);8283 return merged;84 }8586 exports.isMapped = function (viewModel) {87 var unwrapped = ko.utils.unwrapObservable(viewModel);88 return unwrapped && unwrapped[mappingProperty];89 }9091 exports.fromJS = function (jsObject /*, inputOptions, target*/ ) {92 if (arguments.length == 0) throw new Error("When calling ko.fromJS, pass the object you want to convert.");9394 try {95 if (!mappingNesting++) {96 dependentObservables = [];97 visitedObjects = new objectLookup();98 }99100 var options;101 var target;102103 if (arguments.length == 2) {104 if (arguments[1][mappingProperty]) {105 target = arguments[1];106 } else {107 options = arguments[1];108 }109 }110 if (arguments.length == 3) {111 options = arguments[1];112 target = arguments[2];113 }114115 if (target) {116 options = merge(options, target[mappingProperty]);117 }118 options = fillOptions(options);119120 var result = updateViewModel(target, jsObject, options);121 if (target) {122 result = target;123 }124125 // Evaluate any dependent observables that were proxied.126 // Do this after the model's observables have been created127 if (!--mappingNesting) {128 while (dependentObservables.length) {129 var DO = dependentObservables.pop();130 if (DO) {131 DO();132 133 // Move this magic property to the underlying dependent observable134 DO.__DO["throttleEvaluation"] = DO["throttleEvaluation"];135 }136 }137 }138139 // Save any new mapping options in the view model, so that updateFromJS can use them later.140 result[mappingProperty] = merge(result[mappingProperty], options);141142 return result;143 } catch(e) {144 mappingNesting = 0;145 throw e;146 }147 };148149 exports.fromJSON = function (jsonString /*, options, target*/ ) {150 var parsed = ko.utils.parseJson(jsonString);151 arguments[0] = parsed;152 return exports.fromJS.apply(this, arguments);153 };154155 exports.updateFromJS = function (viewModel) {156 throw new Error("ko.mapping.updateFromJS, use ko.mapping.fromJS instead. Please note that the order of parameters is different!");157 };158159 exports.updateFromJSON = function (viewModel) {160 throw new Error("ko.mapping.updateFromJSON, use ko.mapping.fromJSON instead. Please note that the order of parameters is different!");161 };162163 exports.toJS = function (rootObject, options) {164 if (!defaultOptions) exports.resetDefaultOptions();165166 if (arguments.length == 0) throw new Error("When calling ko.mapping.toJS, pass the object you want to convert.");167 if (exports.getType(defaultOptions.ignore) !== "array") throw new Error("ko.mapping.defaultOptions().ignore should be an array.");168 if (exports.getType(defaultOptions.include) !== "array") throw new Error("ko.mapping.defaultOptions().include should be an array.");169 if (exports.getType(defaultOptions.copy) !== "array") throw new Error("ko.mapping.defaultOptions().copy should be an array.");170171 // Merge in the options used in fromJS172 options = fillOptions(options, rootObject[mappingProperty]);173174 // We just unwrap everything at every level in the object graph175 return exports.visitModel(rootObject, function (x) {176 return ko.utils.unwrapObservable(x)177 }, options);178 };179180 exports.toJSON = function (rootObject, options) {181 var plainJavaScriptObject = exports.toJS(rootObject, options);182 return ko.utils.stringifyJson(plainJavaScriptObject);183 };184185 exports.defaultOptions = function () {186 if (arguments.length > 0) {187 defaultOptions = arguments[0];188 } else {189 return defaultOptions;190 }191 };192193 exports.resetDefaultOptions = function () {194 defaultOptions = {195 include: _defaultOptions.include.slice(0),196 ignore: _defaultOptions.ignore.slice(0),197 copy: _defaultOptions.copy.slice(0),198 observe: _defaultOptions.observe.slice(0)199 };200 };201202 exports.getType = function(x) {203 if ((x) && (typeof (x) === "object")) {204 if (x.constructor === Date) return "date";205 if (x.constructor === Array) return "array";206 }207 return typeof x;208 }209210 function fillOptions(rawOptions, otherOptions) {211 var options = merge({}, rawOptions);212213 // Move recognized root-level properties into a root namespace214 for (var i = recognizedRootProperties.length - 1; i >= 0; i--) {215 var property = recognizedRootProperties[i];216 217 // Carry on, unless this property is present218 if (!options[property]) continue;219 220 // Move the property into the root namespace221 if (!(options[""] instanceof Object)) options[""] = {};222 options[""][property] = options[property];223 delete options[property];224 }225226 if (otherOptions) {227 options.ignore = mergeArrays(otherOptions.ignore, options.ignore);228 options.include = mergeArrays(otherOptions.include, options.include);229 options.copy = mergeArrays(otherOptions.copy, options.copy);230 options.observe = mergeArrays(otherOptions.observe, options.observe);231 }232 options.ignore = mergeArrays(options.ignore, defaultOptions.ignore);233 options.include = mergeArrays(options.include, defaultOptions.include);234 options.copy = mergeArrays(options.copy, defaultOptions.copy);235 options.observe = mergeArrays(options.observe, defaultOptions.observe);236237 options.mappedProperties = options.mappedProperties || {};238 options.copiedProperties = options.copiedProperties || {};239 return options;240 }241242 function mergeArrays(a, b) {243 if (exports.getType(a) !== "array") {244 if (exports.getType(a) === "undefined") a = [];245 else a = [a];246 }247 if (exports.getType(b) !== "array") {248 if (exports.getType(b) === "undefined") b = [];249 else b = [b];250 }251252 return ko.utils.arrayGetDistinctValues(a.concat(b));253 }254255 // When using a 'create' callback, we proxy the dependent observable so that it doesn't immediately evaluate on creation.256 // The reason is that the dependent observables in the user-specified callback may contain references to properties that have not been mapped yet.257 function withProxyDependentObservable(dependentObservables, callback) {258 var localDO = ko.dependentObservable;259 ko.dependentObservable = function (read, owner, options) {260 options = options || {};261262 if (read && typeof read == "object") { // mirrors condition in knockout implementation of DO's263 options = read;264 }265266 var realDeferEvaluation = options.deferEvaluation;267268 var isRemoved = false;269270 // We wrap the original dependent observable so that we can remove it from the 'dependentObservables' list we need to evaluate after mapping has271 // completed if the user already evaluated the DO themselves in the meantime.272 var wrap = function (DO) {273 // Temporarily revert ko.dependentObservable, since it is used in ko.isWriteableObservable274 var tmp = ko.dependentObservable;275 ko.dependentObservable = realKoDependentObservable;276 var isWriteable = ko.isWriteableObservable(DO);277 ko.dependentObservable = tmp;278279 var wrapped = realKoDependentObservable({280 read: function () {281 if (!isRemoved) {282 ko.utils.arrayRemoveItem(dependentObservables, DO);283 isRemoved = true;284 }285 return DO.apply(DO, arguments);286 },287 write: isWriteable && function (val) {288 return DO(val);289 },290 deferEvaluation: true291 });292 if (DEBUG) wrapped._wrapper = true;293 wrapped.__DO = DO;294 return wrapped;295 };296 297 options.deferEvaluation = true; // will either set for just options, or both read/options.298 var realDependentObservable = new realKoDependentObservable(read, owner, options);299300 if (!realDeferEvaluation) {301 realDependentObservable = wrap(realDependentObservable);302 dependentObservables.push(realDependentObservable);303 }304305 return realDependentObservable;306 }307 ko.dependentObservable.fn = realKoDependentObservable.fn;308 ko.computed = ko.dependentObservable;309 var result = callback();310 ko.dependentObservable = localDO;311 ko.computed = ko.dependentObservable;312 return result;313 }314315 function updateViewModel(mappedRootObject, rootObject, options, parentName, parent, parentPropertyName, mappedParent) {316 var isArray = exports.getType(ko.utils.unwrapObservable(rootObject)) === "array";317318 parentPropertyName = parentPropertyName || "";319320 // If this object was already mapped previously, take the options from there and merge them with our existing ones.321 if (exports.isMapped(mappedRootObject)) {322 var previousMapping = ko.utils.unwrapObservable(mappedRootObject)[mappingProperty];323 options = merge(previousMapping, options);324 }325326 var callbackParams = {327 data: rootObject,328 parent: mappedParent || parent329 };330331 var hasCreateCallback = function () {332 return options[parentName] && options[parentName].create instanceof Function;333 };334335 var createCallback = function (data) {336 return withProxyDependentObservable(dependentObservables, function () {337 338 if (ko.utils.unwrapObservable(parent) instanceof Array) {339 return options[parentName].create({340 data: data || callbackParams.data,341 parent: callbackParams.parent,342 skip: emptyReturn343 });344 } else {345 return options[parentName].create({346 data: data || callbackParams.data,347 parent: callbackParams.parent348 });349 } 350 });351 };352353 var hasUpdateCallback = function () {354 return options[parentName] && options[parentName].update instanceof Function;355 };356357 var updateCallback = function (obj, data) {358 var params = {359 data: data || callbackParams.data,360 parent: callbackParams.parent,361 target: ko.utils.unwrapObservable(obj)362 };363364 if (ko.isWriteableObservable(obj)) {365 params.observable = obj;366 }367368 return options[parentName].update(params);369 }370371 var alreadyMapped = visitedObjects.get(rootObject);372 if (alreadyMapped) {373 return alreadyMapped;374 }375376 parentName = parentName || "";377378 if (!isArray) {379 // For atomic types, do a direct update on the observable380 if (!canHaveProperties(rootObject)) {381 switch (exports.getType(rootObject)) {382 case "function":383 if (hasUpdateCallback()) {384 if (ko.isWriteableObservable(rootObject)) {385 rootObject(updateCallback(rootObject));386 mappedRootObject = rootObject;387 } else {388 mappedRootObject = updateCallback(rootObject);389 }390 } else {391 mappedRootObject = rootObject;392 }393 break;394 default:395 if (ko.isWriteableObservable(mappedRootObject)) {396 if (hasUpdateCallback()) {397 var valueToWrite = updateCallback(mappedRootObject);398 mappedRootObject.set(valueToWrite);399 return valueToWrite;400 } else {401 var valueToWrite = ko.utils.unwrapObservable(rootObject);402 mappedRootObject.set(valueToWrite);403 return valueToWrite;404 }405 } else {406 var hasCreateOrUpdateCallback = hasCreateCallback() || hasUpdateCallback();407 408 if (hasCreateCallback()) {409 mappedRootObject = createCallback();410 } else {411 mappedRootObject = ko.observable(ko.utils.unwrapObservable(rootObject));412 }413414 if (hasUpdateCallback()) {415 mappedRootObject.set(updateCallback(mappedRootObject));416 }417 418 if (hasCreateOrUpdateCallback) return mappedRootObject;419 }420 }421422 } else {423 mappedRootObject = ko.utils.unwrapObservable(mappedRootObject);424 if (!mappedRootObject) {425 if (hasCreateCallback()) {426 var result = createCallback();427428 if (hasUpdateCallback()) {429 result = updateCallback(result);430 }431432 return result;433 } else {434 if (hasUpdateCallback()) {435 return updateCallback(result);436 }437438 mappedRootObject = {};439 }440 }441442 if (hasUpdateCallback()) {443 mappedRootObject = updateCallback(mappedRootObject);444 }445446 visitedObjects.save(rootObject, mappedRootObject);447 if (hasUpdateCallback()) return mappedRootObject;448449 // For non-atomic types, visit all properties and update recursively450 visitPropertiesOrArrayEntries(rootObject, function (indexer) {451 var fullPropertyName = parentPropertyName.length ? parentPropertyName + "." + indexer : indexer;452453 if (ko.utils.arrayIndexOf(options.ignore, fullPropertyName) != -1) {454 return;455 }456457 if (ko.utils.arrayIndexOf(options.copy, fullPropertyName) != -1) {458 mappedRootObject[indexer] = rootObject[indexer];459 return;460 }461462 if(typeof rootObject[indexer] != "object" && typeof rootObject[indexer] != "array" && options.observe.length > 0 && ko.utils.arrayIndexOf(options.observe, fullPropertyName) == -1)463 {464 mappedRootObject[indexer] = rootObject[indexer];465 options.copiedProperties[fullPropertyName] = true;466 return;467 }468 469 // In case we are adding an already mapped property, fill it with the previously mapped property value to prevent recursion.470 // If this is a property that was generated by fromJS, we should use the options specified there471 var prevMappedProperty = visitedObjects.get(rootObject[indexer]);472 var retval = updateViewModel(mappedRootObject[indexer], rootObject[indexer], options, indexer, mappedRootObject, fullPropertyName, mappedRootObject);473 var value = prevMappedProperty || retval;474 475 if(options.observe.length > 0 && ko.utils.arrayIndexOf(options.observe, fullPropertyName) == -1)476 {477 mappedRootObject[indexer] = ko.utils.unwrapObservable(value);478 options.copiedProperties[fullPropertyName] = true;479 return;480 }481 482 if (ko.isWriteableObservable(mappedRootObject[indexer])) {483 value = ko.utils.unwrapObservable(value);484 if (mappedRootObject[indexer].get() !== value) {485 mappedRootObject[indexer].set(value);486 }487 } else {488 value = mappedRootObject[indexer] === undefined ? value : ko.utils.unwrapObservable(value);489 mappedRootObject[indexer] = value;490 }491492 options.mappedProperties[fullPropertyName] = true;493 });494 }495 } else { //mappedRootObject is an array496 var changes = [];497498 var hasKeyCallback = false;499 var keyCallback = function (x) {500 return x;501 }502 if (options[parentName] && options[parentName].key) {503 keyCallback = options[parentName].key;504 hasKeyCallback = true;505 }506507 if (!ko.isObservable(mappedRootObject)) {508 // When creating the new observable array, also add a bunch of utility functions that take the 'key' of the array items into account.509 mappedRootObject = ko.observableArray([]);510511 mappedRootObject.mappedRemove = function (valueOrPredicate) {512 var predicate = typeof valueOrPredicate == "function" ? valueOrPredicate : function (value) {513 return value === keyCallback(valueOrPredicate);514 };515 return mappedRootObject.remove(function (item) {516 return predicate(keyCallback(item));517 });518 }519520 mappedRootObject.mappedRemoveAll = function (arrayOfValues) {521 var arrayOfKeys = filterArrayByKey(arrayOfValues, keyCallback);522 return mappedRootObject.remove(function (item) {523 return ko.utils.arrayIndexOf(arrayOfKeys, keyCallback(item)) != -1;524 });525 }526527 mappedRootObject.mappedDestroy = function (valueOrPredicate) {528 var predicate = typeof valueOrPredicate == "function" ? valueOrPredicate : function (value) {529 return value === keyCallback(valueOrPredicate);530 };531 return mappedRootObject.destroy(function (item) {532 return predicate(keyCallback(item));533 });534 }535536 mappedRootObject.mappedDestroyAll = function (arrayOfValues) {537 var arrayOfKeys = filterArrayByKey(arrayOfValues, keyCallback);538 return mappedRootObject.destroy(function (item) {539 return ko.utils.arrayIndexOf(arrayOfKeys, keyCallback(item)) != -1;540 });541 }542543 mappedRootObject.mappedIndexOf = function (item) {544 var keys = filterArrayByKey(mappedRootObject(), keyCallback);545 var key = keyCallback(item);546 return ko.utils.arrayIndexOf(keys, key);547 }548549 mappedRootObject.mappedGet = function (item) {550 return mappedRootObject()[mappedRootObject.mappedIndexOf(item)];551 }552553 mappedRootObject.mappedCreate = function (value) {554 if (mappedRootObject.mappedIndexOf(value) !== -1) {555 throw new Error("There already is an object with the key that you specified.");556 }557558 var item = hasCreateCallback() ? createCallback(value) : value;559 if (hasUpdateCallback()) {560 var newValue = updateCallback(item, value);561 if (ko.isWriteableObservable(item)) {562 item(newValue);563 } else {564 item = newValue;565 }566 }567 mappedRootObject.push(item);568 return item;569 }570 }571572 var currentArrayKeys = filterArrayByKey(ko.utils.unwrapObservable(mappedRootObject), keyCallback).sort();573 var newArrayKeys = filterArrayByKey(rootObject, keyCallback);574 if (hasKeyCallback) newArrayKeys.sort();575 var editScript = ko.utils.compareArrays(currentArrayKeys, newArrayKeys);576577 var ignoreIndexOf = {};578 579 var i, j;580581 var unwrappedRootObject = ko.utils.unwrapObservable(rootObject);582 var itemsByKey = {};583 var optimizedKeys = true;584 for (i = 0, j = unwrappedRootObject.length; i < j; i++) {585 var key = keyCallback(unwrappedRootObject[i]);586 if (key === undefined || key instanceof Object) {587 optimizedKeys = false;588 break;589 }590 itemsByKey[key] = unwrappedRootObject[i];591 }592593 var newContents = [];594 var passedOver = 0;595 for (i = 0, j = editScript.length; i < j; i++) {596 var key = editScript[i];597 var mappedItem;598 var fullPropertyName = parentPropertyName + "[" + i + "]";599 switch (key.status) {600 case "added":601 var item = optimizedKeys ? itemsByKey[key.value] : getItemByKey(ko.utils.unwrapObservable(rootObject), key.value, keyCallback);602 mappedItem = updateViewModel(undefined, item, options, parentName, mappedRootObject, fullPropertyName, parent);603 if(!hasCreateCallback()) {604 mappedItem = ko.utils.unwrapObservable(mappedItem);605 }606607 var index = ignorableIndexOf(ko.utils.unwrapObservable(rootObject), item, ignoreIndexOf);608 609 if (mappedItem === emptyReturn) {610 passedOver++;611 } else {612 newContents[index - passedOver] = mappedItem;613 }614 615 ignoreIndexOf[index] = true;616 break;617 case "retained":618 var item = optimizedKeys ? itemsByKey[key.value] : getItemByKey(ko.utils.unwrapObservable(rootObject), key.value, keyCallback);619 mappedItem = getItemByKey(mappedRootObject, key.value, keyCallback);620 updateViewModel(mappedItem, item, options, parentName, mappedRootObject, fullPropertyName, parent);621622 var index = ignorableIndexOf(ko.utils.unwrapObservable(rootObject), item, ignoreIndexOf);623 newContents[index] = mappedItem;624 ignoreIndexOf[index] = true;625 break;626 case "deleted":627 mappedItem = getItemByKey(mappedRootObject, key.value, keyCallback);628 break;629 }630631 changes.push({632 event: key.status,633 item: mappedItem634 });635 }636637 mappedRootObject.set(newContents);638639 if (options[parentName] && options[parentName].arrayChanged) {640 ko.utils.arrayForEach(changes, function (change) {641 options[parentName].arrayChanged(change.event, change.item);642 });643 }644 }645646 return mappedRootObject;647 }648649 function ignorableIndexOf(array, item, ignoreIndices) {650 for (var i = 0, j = array.length; i < j; i++) {651 if (ignoreIndices[i] === true) continue;652 if (array[i] === item) return i;653 }654 return null;655 }656657 function mapKey(item, callback) {658 var mappedItem;659 if (callback) mappedItem = callback(item);660 if (exports.getType(mappedItem) === "undefined") mappedItem = item;661662 return ko.utils.unwrapObservable(mappedItem);663 }664665 function getItemByKey(array, key, callback) {666 array = ko.utils.unwrapObservable(array);667 for (var i = 0, j = array.length; i < j; i++) {668 var item = array[i];669 if (mapKey(item, callback) === key) return item;670 }671672 throw new Error("When calling ko.update*, the key '" + key + "' was not found!");673 }674675 function filterArrayByKey(array, callback) {676 return ko.utils.arrayMap(ko.utils.unwrapObservable(array), function (item) {677 if (callback) {678 return mapKey(item, callback);679 } else {680 return item;681 }682 });683 }684685 function visitPropertiesOrArrayEntries(rootObject, visitorCallback) {686 if (exports.getType(rootObject) === "array") {687 for (var i = 0; i < rootObject.length; i++)688 visitorCallback(i);689 } else {690 for (var propertyName in rootObject)691 visitorCallback(propertyName);692 }693 };694695 function canHaveProperties(object) {696 var type = exports.getType(object);697 return ((type === "object") || (type === "array")) && (object !== null);698 }699700 // Based on the parentName, this creates a fully classified name of a property701702 function getPropertyName(parentName, parent, indexer) {703 var propertyName = parentName || "";704 if (exports.getType(parent) === "array") {705 if (parentName) {706 propertyName += "[" + indexer + "]";707 }708 } else {709 if (parentName) {710 propertyName += ".";711 }712 propertyName += indexer;713 }714 return propertyName;715 }716717 exports.visitModel = function (rootObject, callback, options) {718 options = options || {};719 options.visitedObjects = options.visitedObjects || new objectLookup();720721 var mappedRootObject;722 var unwrappedRootObject = ko.utils.unwrapObservable(rootObject);723724 if (!canHaveProperties(unwrappedRootObject)) {725 return callback(rootObject, options.parentName);726 } else {727 options = fillOptions(options, unwrappedRootObject[mappingProperty]);728729 // Only do a callback, but ignore the results730 callback(rootObject, options.parentName);731 mappedRootObject = exports.getType(unwrappedRootObject) === "array" ? [] : {};732 }733734 options.visitedObjects.save(rootObject, mappedRootObject);735736 var parentName = options.parentName;737 visitPropertiesOrArrayEntries(unwrappedRootObject, function (indexer) {738 if (options.ignore && ko.utils.arrayIndexOf(options.ignore, indexer) != -1) return;739740 var propertyValue = unwrappedRootObject[indexer];741 options.parentName = getPropertyName(parentName, unwrappedRootObject, indexer);742743 // If we don't want to explicitly copy the unmapped property...744 if (ko.utils.arrayIndexOf(options.copy, indexer) === -1) {745 // ...find out if it's a property we want to explicitly include746 if (ko.utils.arrayIndexOf(options.include, indexer) === -1) {747 // The mapped properties object contains all the properties that were part of the original object.748 // If a property does not exist, and it is not because it is part of an array (e.g. "myProp[3]"), then it should not be unmapped.749 if (unwrappedRootObject[mappingProperty]750 && unwrappedRootObject[mappingProperty].mappedProperties && !unwrappedRootObject[mappingProperty].mappedProperties[indexer]751 && unwrappedRootObject[mappingProperty].copiedProperties && !unwrappedRootObject[mappingProperty].copiedProperties[indexer]752 && !(exports.getType(unwrappedRootObject) === "array")) {753 return;754 }755 }756 }757758 var outputProperty;759 switch (exports.getType(ko.utils.unwrapObservable(propertyValue))) {760 case "object":761 case "array":762 case "undefined":763 var previouslyMappedValue = options.visitedObjects.get(propertyValue);764 mappedRootObject[indexer] = (exports.getType(previouslyMappedValue) !== "undefined") ? previouslyMappedValue : exports.visitModel(propertyValue, callback, options);765 break;766 default:767 mappedRootObject[indexer] = callback(propertyValue, options.parentName);768 }769 });770771 return mappedRootObject;772 }773774 function simpleObjectLookup() {775 var keys = [];776 var values = [];777 this.save = function (key, value) {778 var existingIndex = ko.utils.arrayIndexOf(keys, key);779 if (existingIndex >= 0) values[existingIndex] = value;780 else {781 keys.push(key);782 values.push(value);783 }784 };785 this.get = function (key) {786 var existingIndex = ko.utils.arrayIndexOf(keys, key);787 var value = (existingIndex >= 0) ? values[existingIndex] : undefined;788 return value;789 };790 };791 792 function objectLookup() {793 var buckets = {};794 795 var findBucket = function(key) {796 var bucketKey;797 try {798 bucketKey = key;//JSON.stringify(key);799 }800 catch (e) {801 bucketKey = "$$$";802 }803804 var bucket = buckets[bucketKey];805 if (bucket === undefined) {806 bucket = new simpleObjectLookup();807 buckets[bucketKey] = bucket;808 }809 return bucket;810 };811 812 this.save = function (key, value) {813 findBucket(key).save(key, value);814 };815 this.get = function (key) {816 return findBucket(key).get(key);817 };818 }; ...

Full Screen

Full Screen

knockout.mapping-latest.debug.js

Source:knockout.mapping-latest.debug.js Github

copy

Full Screen

1// Knockout Mapping plugin v1.0pre2// (c) 2011 Steven Sanderson, Roy Jacobs - http://knockoutjs.com/3// License: Ms-Pl (http://www.opensource.org/licenses/ms-pl.html)4// Google Closure Compiler helpers (used only to make the minified file smaller)5ko.exportSymbol = function (publicPath, object) {6 var tokens = publicPath.split(".");7 var target = window;8 for (var i = 0; i < tokens.length - 1; i++)9 target = target[tokens[i]];10 target[tokens[tokens.length - 1]] = object;11};12ko.exportProperty = function (owner, publicName, object) {13 owner[publicName] = object;14};15(function () {16 ko.mapping = {};17 var mappingProperty = "__ko_mapping__";18 var realKoDependentObservable = ko.dependentObservable;19 var defaultOptions = {20 include: ["_destroy"],21 ignore: []22 };23 24 ko.mapping.fromJS = function (jsObject, options, target) {25 if (arguments.length == 0) throw new Error("When calling ko.fromJS, pass the object you want to convert.");26 options = fillOptions(options);27 var result = updateViewModel(target, jsObject, options);28 result[mappingProperty] = result[mappingProperty] || {};29 result[mappingProperty] = options;30 return result;31 };32 ko.mapping.fromJSON = function (jsonString, options) {33 var parsed = ko.utils.parseJson(jsonString);34 return ko.mapping.fromJS(parsed, options);35 };36 37 ko.mapping.isMapped = function(viewModel) {38 var unwrapped = ko.utils.unwrapObservable(viewModel);39 return unwrapped && unwrapped[mappingProperty];40 }41 ko.mapping.updateFromJS = function (viewModel, jsObject) {42 if (arguments.length < 2) throw new Error("When calling ko.updateFromJS, pass: the object to update and the object you want to update from.");43 if (!viewModel) throw new Error("The object is undefined.");44 45 if (!viewModel[mappingProperty]) throw new Error("The object you are trying to update was not created by a 'fromJS' or 'fromJSON' mapping.");46 return updateViewModel(viewModel, jsObject, viewModel[mappingProperty]);47 };48 ko.mapping.updateFromJSON = function (viewModel, jsonString, options) {49 var parsed = ko.utils.parseJson(jsonString);50 return ko.mapping.updateFromJS(viewModel, parsed, options);51 };52 ko.mapping.toJS = function (rootObject, options) {53 if (arguments.length == 0) throw new Error("When calling ko.mapping.toJS, pass the object you want to convert.");54 options = options || {};55 options.ignore = options.ignore || defaultOptions.ignore;56 if (!(options.ignore instanceof Array)) {57 options.ignore = [options.ignore];58 }59 options.include = options.include || defaultOptions.include;60 if (!(options.include instanceof Array)) {61 options.include = [options.include];62 }63 // We just unwrap everything at every level in the object graph64 return ko.mapping.visitModel(rootObject, function(x) {65 return ko.utils.unwrapObservable(x)66 }, options);67 };68 ko.mapping.toJSON = function (rootObject, options) {69 var plainJavaScriptObject = ko.mapping.toJS(rootObject, options);70 return ko.utils.stringifyJson(plainJavaScriptObject);71 };72 73 ko.mapping.defaultOptions = function() {74 if (arguments.length > 0) {75 defaultOptions = arguments[0];76 } else {77 return defaultOptions;78 }79 };80 function getType(x) {81 if ((x) && (typeof(x) === "object") && (x.constructor == (new Date).constructor)) return "date";82 return typeof x;83 }84 function fillOptions(options) {85 options = options || {};86 // Is there only a root-level mapping present?87 if ((options.create instanceof Function) || (options.key instanceof Function) || (options.arrayChanged instanceof Function)) {88 options = {89 "": options90 };91 }92 options.mappedProperties = {};93 return options;94 }95 function proxyDependentObservable() {96 ko.dependentObservable = function() {97 var options = arguments[2] || {};98 options.deferEvaluation = true;99 100 var realDependentObservable = new realKoDependentObservable(arguments[0], arguments[1], options);101 realDependentObservable.__ko_proto__ = realKoDependentObservable;102 return realDependentObservable;103 }104 }105 function unproxyDependentObservable() {106 ko.dependentObservable = realKoDependentObservable;107 }108 function updateViewModel(mappedRootObject, rootObject, options, visitedObjects, parentName, parent) {109 var isArray = ko.utils.unwrapObservable(rootObject) instanceof Array;110 111 // If this object was already mapped previously, take the options from there112 if (ko.mapping.isMapped(mappedRootObject)) {113 options = ko.utils.unwrapObservable(mappedRootObject)[mappingProperty];114 }115 116 var hasCreateCallback = function () {117 return options[parentName] && options[parentName].create instanceof Function;118 }119 visitedObjects = visitedObjects || new objectLookup();120 if (visitedObjects.get(rootObject)) return mappedRootObject;121 parentName = parentName || "";122 if (!isArray) {123 // For atomic types, do a direct update on the observable124 if (!canHaveProperties(rootObject)) {125 switch (getType(rootObject)) {126 case "function":127 mappedRootObject = rootObject;128 break;129 default:130 if (ko.isWriteableObservable(mappedRootObject)) {131 mappedRootObject(ko.utils.unwrapObservable(rootObject));132 } else {133 mappedRootObject = ko.observable(ko.utils.unwrapObservable(rootObject));134 }135 break;136 }137 } else {138 if (!mappedRootObject) {139 if (hasCreateCallback()) {140 // When using a 'create' callback, we proxy the dependent observable so that it doesn't immediately evaluate on creation.141 // The reason is that the dependent observables in the user-specified callback may contain references to properties that have not been mapped yet.142 proxyDependentObservable();143 var result = options[parentName].create({144 data: rootObject,145 parent: parent146 });147 unproxyDependentObservable();148 return result;149 } else {150 mappedRootObject = {};151 }152 }153 visitedObjects.save(rootObject, mappedRootObject);154 // For non-atomic types, visit all properties and update recursively155 visitPropertiesOrArrayEntries(rootObject, function (indexer) {156 var mappedProperty;157 var prevMappedProperty = visitedObjects.get(rootObject[indexer]);158 if (prevMappedProperty) {159 // In case we are adding an already mapped property, fill it with the previously mapped property value to prevent recursion.160 mappedRootObject[indexer] = prevMappedProperty;161 } else {162 // If this is a property that was generated by fromJS, we should use the options specified there163 mappedRootObject[indexer] = updateViewModel(mappedRootObject[indexer], rootObject[indexer], options, visitedObjects, indexer, mappedRootObject);164 }165 166 options.mappedProperties[getPropertyName(parentName, rootObject, indexer)] = true;167 });168 }169 } else {170 var changes = [];171 var keyCallback = function (x) {172 return x;173 }174 if (options[parentName] && options[parentName].key) {175 keyCallback = options[parentName].key;176 }177 178 if (!ko.isObservable(mappedRootObject)) {179 // When creating the new observable array, also add a bunch of utility functions that take the 'key' of the array items into account.180 mappedRootObject = ko.observableArray([]);181 182 mappedRootObject.mappedRemove = function(valueOrPredicate) {183 var predicate = typeof valueOrPredicate == "function" ? valueOrPredicate : function (value) { return value === keyCallback(valueOrPredicate); };184 return mappedRootObject.remove(function(item) {185 return predicate(keyCallback(item));186 });187 }188 mappedRootObject.mappedRemoveAll = function(arrayOfValues) {189 var arrayOfKeys = filterArrayByKey(arrayOfValues, keyCallback);190 return mappedRootObject.remove(function(item) {191 return ko.utils.arrayIndexOf(arrayOfKeys, keyCallback(item)) != -1;192 });193 }194 mappedRootObject.mappedDestroy = function(valueOrPredicate) {195 var predicate = typeof valueOrPredicate == "function" ? valueOrPredicate : function (value) { return value === keyCallback(valueOrPredicate); };196 return mappedRootObject.destroy(function(item) {197 return predicate(keyCallback(item));198 });199 }200 mappedRootObject.mappedDestroyAll = function(arrayOfValues) {201 var arrayOfKeys = filterArrayByKey(arrayOfValues, keyCallback);202 return mappedRootObject.destroy(function(item) {203 return ko.utils.arrayIndexOf(arrayOfKeys, keyCallback(item)) != -1;204 });205 }206 mappedRootObject.mappedIndexOf = function(item) {207 var keys = filterArrayByKey(mappedRootObject(), keyCallback);208 var key = keyCallback(item);209 return ko.utils.arrayIndexOf(keys, key);210 }211 }212 var currentArrayKeys = filterArrayByKey(ko.utils.unwrapObservable(mappedRootObject), keyCallback).sort();213 var prevArrayKeys = filterArrayByKey(rootObject, keyCallback).sort();214 var editScript = ko.utils.compareArrays(currentArrayKeys, prevArrayKeys);215 var newContents = [];216 for (var i = 0, j = editScript.length; i < j; i++) {217 var key = editScript[i];218 var mappedItem;219 switch (key.status) {220 case "added":221 var item = getItemByKey(ko.utils.unwrapObservable(rootObject), key.value, keyCallback);222 mappedItem = ko.utils.unwrapObservable(updateViewModel(undefined, item, options, visitedObjects, parentName, mappedRootObject));223 224 var index = ko.utils.arrayIndexOf(ko.utils.unwrapObservable(rootObject), item);225 newContents[index] = mappedItem;226 break;227 case "retained":228 var item = getItemByKey(ko.utils.unwrapObservable(rootObject), key.value, keyCallback);229 mappedItem = getItemByKey(mappedRootObject, key.value, keyCallback);230 updateViewModel(mappedItem, item, options, visitedObjects, parentName, mappedRootObject);231 232 var index = ko.utils.arrayIndexOf(ko.utils.unwrapObservable(rootObject), item);233 newContents[index] = mappedItem;234 break;235 case "deleted":236 mappedItem = getItemByKey(mappedRootObject, key.value, keyCallback);237 break;238 }239 changes.push({240 event: key.status,241 item: mappedItem242 });243 }244 245 mappedRootObject(newContents);246 if (options[parentName] && options[parentName].arrayChanged) {247 ko.utils.arrayForEach(changes, function (change) {248 options[parentName].arrayChanged(change.event, change.item);249 });250 }251 }252 return mappedRootObject;253 }254 function mapKey(item, callback) {255 var mappedItem;256 if (callback) mappedItem = callback(item);257 if (!mappedItem) mappedItem = item;258 return ko.utils.unwrapObservable(mappedItem);259 }260 function getItemByKey(array, key, callback) {261 var filtered = ko.utils.arrayFilter(ko.utils.unwrapObservable(array), function (item) {262 return mapKey(item, callback) == key;263 });264 if (filtered.length == 0) throw new Error("When calling ko.update*, the key '" + key + "' was not found!");265 if ((filtered.length > 1) && (canHaveProperties(filtered[0]))) throw new Error("When calling ko.update*, the key '" + key + "' was not unique!");266 return filtered[0];267 }268 function filterArrayByKey(array, callback) {269 return ko.utils.arrayMap(ko.utils.unwrapObservable(array), function (item) {270 if (callback) {271 return mapKey(item, callback);272 } else {273 return item;274 }275 });276 }277 function compareArrays(prevArray, currentArray, mapKeyCallback, callback, callbackTarget) {278 var currentArrayKeys = filterArrayByKey(currentArray, mapKeyCallback).sort();279 var prevArrayKeys = filterArrayByKey(prevArray, mapKeyCallback).sort();280 var editScript = ko.utils.compareArrays(prevArrayKeys, currentArrayKeys);281 for (var i = 0, j = editScript.length; i < j; i++) {282 var key = editScript[i];283 switch (key.status) {284 case "added":285 var item = getItemByKey(ko.utils.unwrapObservable(currentArray), key.value, mapKeyCallback);286 callback("added", item);287 break;288 case "retained":289 var item = getItemByKey(currentArray, key.value, mapKeyCallback);290 callback("retained", item);291 break;292 case "deleted":293 var item = getItemByKey(ko.utils.unwrapObservable(prevArray), key.value, mapKeyCallback);294 callback("deleted", item);295 break;296 }297 }298 }299 function visitPropertiesOrArrayEntries(rootObject, visitorCallback) {300 if (rootObject instanceof Array) {301 for (var i = 0; i < rootObject.length; i++)302 visitorCallback(i);303 } else {304 for (var propertyName in rootObject)305 visitorCallback(propertyName);306 }307 };308 function canHaveProperties(object) {309 return (getType(object) == "object") && (object !== null) && (object !== undefined);310 }311 312 // Based on the parentName, this creates a fully classified name of a property313 function getPropertyName(parentName, parent, indexer) {314 var propertyName = parentName || "";315 if (parent instanceof Array) {316 if (parentName) {317 propertyName += "[" + indexer + "]";318 }319 } else {320 if (parentName) {321 propertyName += ".";322 }323 propertyName += indexer;324 }325 return propertyName;326 }327 ko.mapping.visitModel = function(rootObject, callback, options) {328 options = options || {};329 options.visitedObjects = options.visitedObjects || new objectLookup();330 var mappedRootObject;331 var unwrappedRootObject = ko.utils.unwrapObservable(rootObject);332 if (!canHaveProperties(unwrappedRootObject)) {333 return callback(rootObject, options.parentName);334 } else {335 // Only do a callback, but ignore the results336 callback(rootObject, options.parentName); 337 mappedRootObject = unwrappedRootObject instanceof Array ? [] : {};338 }339 options.visitedObjects.save(rootObject, mappedRootObject);340 var parentName = options.parentName;341 visitPropertiesOrArrayEntries(unwrappedRootObject, function(indexer) {342 if (options.ignore && ko.utils.arrayIndexOf(options.ignore, indexer) != -1) return;343 344 var propertyValue = unwrappedRootObject[indexer];345 options.parentName = getPropertyName(parentName, unwrappedRootObject, indexer);346 347 if (options.include && ko.utils.arrayIndexOf(options.include, indexer) === -1) {348 // The mapped properties object contains all the properties that were part of the original object.349 // If a property does not exist, and it is not because it is part of an array (e.g. "myProp[3]"), then it should not be unmapped.350 if (unwrappedRootObject[mappingProperty] && unwrappedRootObject[mappingProperty].mappedProperties && !unwrappedRootObject[mappingProperty].mappedProperties[indexer] && !(unwrappedRootObject instanceof Array)) {351 return;352 }353 }354 var outputProperty;355 switch (getType(ko.utils.unwrapObservable(propertyValue))) {356 case "object":357 case "undefined":358 var previouslyMappedValue = options.visitedObjects.get(propertyValue);359 mappedRootObject[indexer] = (previouslyMappedValue !== undefined) ? previouslyMappedValue : ko.mapping.visitModel(propertyValue, callback, options);360 break;361 default:362 mappedRootObject[indexer] = callback(propertyValue, options.parentName);363 }364 });365 return mappedRootObject;366 }367 function objectLookup() {368 var keys = [];369 var values = [];370 this.save = function (key, value) {371 var existingIndex = ko.utils.arrayIndexOf(keys, key);372 if (existingIndex >= 0) values[existingIndex] = value;373 else {374 keys.push(key);375 values.push(value);376 }377 };378 this.get = function (key) {379 var existingIndex = ko.utils.arrayIndexOf(keys, key);380 return (existingIndex >= 0) ? values[existingIndex] : undefined;381 };382 };383 ko.exportSymbol('ko.mapping', ko.mapping);384 ko.exportSymbol('ko.mapping.fromJS', ko.mapping.fromJS);385 ko.exportSymbol('ko.mapping.fromJSON', ko.mapping.fromJSON);386 ko.exportSymbol('ko.mapping.isMapped', ko.mapping.isMapped);387 ko.exportSymbol('ko.mapping.defaultOptions', ko.mapping.defaultOptions);388 ko.exportSymbol('ko.mapping.toJS', ko.mapping.toJS);389 ko.exportSymbol('ko.mapping.toJSON', ko.mapping.toJSON);390 ko.exportSymbol('ko.mapping.updateFromJS', ko.mapping.updateFromJS);391 ko.exportSymbol('ko.mapping.updateFromJSON', ko.mapping.updateFromJSON);392 ko.exportSymbol('ko.mapping.visitModel', ko.mapping.visitModel);...

Full Screen

Full Screen

mapper.test.js

Source:mapper.test.js Github

copy

Full Screen

1'use strict';2let should = require('chai').should();3let rewire = require('rewire');4let mapper = rewire('../src/mapper.js');5describe('mapper.js', function() {6 let sampleMetric = {7 id: '/subscriptions/8d4abd5c-09ec-3456-aa23-ed7873828a23/providers/Microsoft.Commerce/UsageAggregates/Daily_BRSDT_20170101_0000',8 name: 'Daily_BRSDT_20170101_0000',9 type: 'Microsoft.Commerce/UsageAggregate',10 subscriptionId: '8d4abd5c-09ec-3456-aa23-ed7873828a23',11 meterId: '211e620c-ebcf-4db5-a7fd-996abebe9546',12 usageStartTime: new Date('2017-01-01T00:00:00.000Z'),13 usageEndTime: new Date('2017-01-02T00:00:00.000Z'),14 quantity: 0.6864,15 unit: '10,000s',16 meterName: 'Standard IO - Block Blob Write Operation Units (in 10,000s)',17 meterCategory: 'Data Management',18 infoFields: {},19 instanceData: '{"Microsoft.Resources":{"resourceUri":"/subscriptions/8d4abd5c-09ec-3456-aa23-ed7873828a23/resourceGroups/mygroup/providers/Microsoft.Storage/storageAccounts/myresource","location":"euwest","tags":{"displayName":"Storage Account"}}}'20 };21 let sampleMetric2 = {22 id: '/subscriptions/8d4abd5c-09ec-3456-aa23-ed7873828a23/providers/Microsoft.Commerce/UsageAggregates/Daily_BRSDT_20170101_0000',23 name: 'Daily_BRSDT_20170101_0000',24 type: 'Microsoft.Commerce/UsageAggregate',25 subscriptionId: '8d4abd5c-09ec-3456-aa23-ed7873828a23',26 meterId: '211e620c-ebcf-4db5-a7fd-545454545454',27 usageStartTime: new Date('2017-01-02T00:00:00.000Z'),28 usageEndTime: new Date('2017-01-03T00:00:00.000Z'),29 quantity: 0.6864,30 unit: '10,000s',31 meterName: 'Standard IO - Block Blob Write Operation Units (in 10,000s)',32 meterCategory: 'Data Management',33 infoFields: {},34 instanceData: '{"Microsoft.Resources":{}}'35 };36 let sampleRate = {37 '211e620c-ebcf-4db5-a7fd-996abebe9546': 0.5,38 '211e620c-ebcf-4db5-a7fd-545454545454': 239 }40 let mappedMetrics = mapper([sampleMetric, sampleMetric2], sampleRate);41 it('should calculate the cost', function() {42 mappedMetrics[0].cost.should.equal(0.3432);43 mappedMetrics[1].cost.should.equal(1.3728);44 });45 it('should set the rate', function() {46 mappedMetrics[0].rate.should.equal(0.5);47 mappedMetrics[1].rate.should.equal(2);48 });49 it('should set the date', function() {50 mappedMetrics[0].day.toISOString().should.equal(new Date('2017-01-02T00:00:00.000Z').toISOString());51 mappedMetrics[1].day.toISOString().should.equal(new Date('2017-01-03T00:00:00.000Z').toISOString());52 });53 it('should set the resource ID', function() {54 mappedMetrics[0].resourceUri.should.equal('/subscriptions/8d4abd5c-09ec-3456-aa23-ed7873828a23/resourceGroups/mygroup/providers/Microsoft.Storage/storageAccounts/myresource');55 mappedMetrics[1].resourceUri.should.equal('others');56 });57 it('should set the location', function() {58 mappedMetrics[0].location.should.equal('euwest');59 should.not.exist(mappedMetrics[1].location);60 });61 it('should set the tags', function() {62 mappedMetrics[0].tags.should.eql({63 displayName: 'Storage Account'64 });65 should.not.exist(mappedMetrics[1].tags);66 });67 it('should set the resource group', function() {68 mappedMetrics[0].resourceGroup.should.equal('mygroup');69 mappedMetrics[1].resourceGroup.should.equal('');70 });71 it('should set the name', function() {72 mappedMetrics[0].name.should.equal('myresource');73 mappedMetrics[1].name.should.equal('Others');74 });75 it('should unset the id', function() {76 should.not.exist(mappedMetrics[0].id);77 should.not.exist(mappedMetrics[1].id);78 });79 it('should unset the type', function() {80 should.not.exist(mappedMetrics[0].type);81 should.not.exist(mappedMetrics[1].type);82 });83 it('should unset the meterId', function() {84 should.not.exist(mappedMetrics[0].meterId);85 should.not.exist(mappedMetrics[1].meterId);86 });87 it('should unset the usageStartTime', function() {88 should.not.exist(mappedMetrics[0].usageStartTime);89 should.not.exist(mappedMetrics[1].usageStartTime);90 });91 it('should unset the usageEndTime', function() {92 should.not.exist(mappedMetrics[0].usageEndTime);93 should.not.exist(mappedMetrics[1].usageEndTime);94 });95 it('should unset the instanceData', function() {96 should.not.exist(mappedMetrics[0].instanceData);97 should.not.exist(mappedMetrics[1].instanceData);98 });99 it('should unset the infoFields', function() {100 should.not.exist(mappedMetrics[0].infoFields);101 should.not.exist(mappedMetrics[1].infoFields);102 });...

Full Screen

Full Screen

Using AI Code Generation

copy

Full Screen

1var pact = require('pact-foundation/pact-node');2var path = require('path');3var opts = {4log: path.resolve(process.cwd(), 'logs', 'pact.log'),5dir: path.resolve(process.cwd(), 'pacts'),6};7pact.server(opts).then(function (server) {8server.start().then(function () {9console.log('Pact Mock Service Started');10server.delete().then(function () {11console.log('Pact Mock Service Deleted');12});13});14});15var opts = {16log: path.resolve(process.cwd(), 'logs', 'pact.log'),17dir: path.resolve(process.cwd(), 'pacts'),18};19pact.server(opts).then(function (server) {20server.start().then(function () {21console.log('Pact Mock Service Started');22server.delete().then(function () {23console.log('Pact Mock Service Deleted');24});25});26});

Full Screen

Using AI Code Generation

copy

Full Screen

1const pact = require('pact-foundation/pact-node');2const path = require('path');3const opts = {4 pactUrls: [path.resolve(process.cwd(), 'pacts', 'test1-test2.json')],5};6pact.publishPacts(opts);

Full Screen

Using AI Code Generation

copy

Full Screen

1const { Pact } = require('@pact-foundation/pact');2const consumer = new Pact({3});4module.exports = consumer;5const consumer = require('./test2.js');6const path = require('path');7const chai = require('chai');8const chaiAsPromised = require('chai-as-promised');9const chaiSubset = require('chai-subset');10const { Matchers } = require('@pact-foundation/pact');11chai.use(chaiAsPromised);12chai.use(chaiSubset);13chai.use(Matchers);14const expect = chai.expect;15describe('Pact', () => {16 describe('Test', () => {17 beforeEach(() => {18 return consumer.setup();19 });20 afterEach(() => {21 return consumer.finalize();22 });23 it('Test', () => {24 return consumer.addInteraction({25 withRequest: {26 headers: {27 }28 },29 willRespondWith: {30 headers: {31 },32 body: {33 }34 }35 }).then(() => {36 return consumer.verify();37 }).then(() => {38 return consumer.writePact();39 }).then(() => {40 return expect(true).to.be.true;41 });42 });43 });44});

Full Screen

Automation Testing Tutorials

Learn to execute automation testing from scratch with LambdaTest Learning Hub. Right from setting up the prerequisites to run your first automation test, to following best practices and diving deeper into advanced test scenarios. LambdaTest Learning Hubs compile a list of step-by-step guides to help you be proficient with different test automation frameworks i.e. Selenium, Cypress, TestNG etc.

LambdaTest Learning Hubs:

YouTube

You could also refer to video tutorials over LambdaTest YouTube channel to get step by step demonstration from industry experts.

Run pact-foundation-pact automation tests on LambdaTest cloud grid

Perform automation testing on 3000+ real desktop and mobile devices online.

Try LambdaTest Now !!

Get 100 minutes of automation test minutes FREE!!

Next-Gen App & Browser Testing Cloud

Was this article helpful?

Helpful

NotHelpful