Changeset 217

Show
Ignore:
Timestamp:
01/10/10 18:39:28 (2 years ago)
Author:
CHDKLover
Message:

Aktualisierung auf Rev. 864, 865, 866, 867 offizieller Trunk
*  http://tools.assembla.com/chdk/changeset/864/trunk
*  http://tools.assembla.com/chdk/changeset/865/trunk
*  http://tools.assembla.com/chdk/changeset/866/trunk
*  http://tools.assembla.com/chdk/changeset/867/trunk
ixus90_sd790 hinzugefügt
strtoul hinzugefügt
fix: LUA Hexzahlenbehandlung
In lua können jetzt beliebige Funktionspointer aufgerufen werden

Location:
trunk
Files:
40 added
104 modified

Legend:

Unmodified
Added
Removed
  • trunk/Makefile

    r209 r217  
    224224        $(MAKE) -s --no-print-directory PLATFORM=sx110is  PLATFORMSUB=100b NO_INC_BUILD=1 firzipsub 
    225225        $(MAKE) -s --no-print-directory PLATFORM=sx200is  PLATFORMSUB=100c NO_INC_BUILD=1 firzipsub 
     226        $(MAKE) -s --no-print-directory PLATFORM=ixus90_sd790  PLATFORMSUB=100d NO_INC_BUILD=1 firzipsub 
    226227        @echo "**** All firmwares created successfully" 
    227228        @echo "**** Copying duplicate Firmwares" 
     
    246247        mv $(topdir)bin/$(VER)-ixus980_sd990-101b-$(BUILD_NUMBER).zip $(topdir)bin/$(VER)-ixus980_sd990-101b-$(BUILD_NUMBER)_BETA.zip 
    247248        mv $(topdir)bin/$(VER)-a2000-100c-$(BUILD_NUMBER).zip $(topdir)bin/$(VER)-a2000-100c-$(BUILD_NUMBER)_BETA.zip 
     249        mv $(topdir)bin/$(VER)-ixus90_sd790-100d-$(BUILD_NUMBER).zip $(topdir)bin/$(VER)-ixus90_sd790-100d-$(BUILD_NUMBER)_BETA.zip 
    248250        @echo "**** Done Copying duplicate Firmwares" 
    249251        @echo "**** Summary of memisosizes" 
     
    340342        $(MAKE) -s --no-print-directory PLATFORM=sx110is  PLATFORMSUB=100b NO_INC_BUILD=1 firzipsubcomplete 
    341343        $(MAKE) -s --no-print-directory PLATFORM=sx200is  PLATFORMSUB=100c NO_INC_BUILD=1 firzipsubcomplete 
     344        $(MAKE) -s --no-print-directory PLATFORM=ixus90_sd790  PLATFORMSUB=100d NO_INC_BUILD=1 firzipsubcomplete 
    342345        @echo "**** All zipfiles including firmwares and extra stuff created successfully" 
    343346        @echo "**** Copying duplicate Firmwares" 
     
    382385        mv $(topdir)bin/a2000-100c-$(BUILD_NUMBER)-full.zip $(topdir)bin/a2000-100c-$(BUILD_NUMBER)-full_BETA.zip 
    383386        mv $(topdir)bin/a2000-100c-$(BUILD_NUMBER).zip $(topdir)bin/a2000-100c-$(BUILD_NUMBER)_BETA.zip 
     387        mv $(topdir)bin/ixus90_sd790-100d-$(BUILD_NUMBER)-full.zip $(topdir)bin/ixus90_sd790-100d-$(BUILD_NUMBER)-full_BETA.zip 
     388        mv $(topdir)bin/ixus90_sd790-100d-$(BUILD_NUMBER).zip $(topdir)bin/ixus90_sd790-100d-$(BUILD_NUMBER)_BETA.zip 
    384389        @echo "**** Done Copying duplicate Firmwares" 
    385390        @echo "**** Summary of memisosizes" 
     
    474479        $(MAKE) -s --no-print-directory PLATFORM=sx110is  PLATFORMSUB=100b NO_INC_BUILD=1 clean 
    475480        $(MAKE) -s --no-print-directory PLATFORM=sx200is  PLATFORMSUB=100c NO_INC_BUILD=1 clean 
     481        $(MAKE) -s --no-print-directory PLATFORM=ixus90_sd790  PLATFORMSUB=100d NO_INC_BUILD=1 clean 
    476482.PHONY: fir upload 
  • trunk/buildconf.inc

    r177 r217  
    1212OPT_EDGEOVERLAY=1 
    1313OPT_LUA_STRLIB=1 
     14# OPT_LUA_CALL_NATIVE=1 allow Lua to call arbitrary ROM functions and eventprocs  
     15# WARNING: This is DANGEROUS. e.g. call_event_proc("EraseSectorOfRom",...)  
     16# NOTE: the interface for this may change in the future, to support better support buffers etc  
     17OPT_LUA_CALL_NATIVE=1  
    1418#OPT_MD_DEBUG=1 
    1519# needs proper fi2.inc in platform/ !!! see http://chdk.setepontos.com/index.php/topic,2995.0.html 
  • trunk/core/Makefile

    r106 r217  
    5353CFLAGS+=-DOPT_MD_DEBUG 
    5454endif  
     55ifdef OPT_LUA_CALL_NATIVE 
     56CFLAGS+=-DOPT_LUA_CALL_NATIVE 
     57endif 
    5558OBJS=entry.o nothumb.o main.o gui_draw.o gui_menu.o gui_palette.o gui_mbox.o \ 
    5659     gui_fselect.o gui.o kbd.o conf.o \ 
     
    7679          $(topdir)lib/font/libfont.a $(topdir)lib/math/libmath.a \ 
    7780          $(topdir)lib/ubasic/libubasic.a $(topdir)lib/lang/liblang.a \ 
    78           $(topdir)lib/lua/liblua.a 
     81          $(topdir)lib/lua/liblua.a \ 
     82          $(topdir)lib/armutil/libarmutil.a 
    7983        @echo \-\> $@ 
    8084        $(CC) $(CFLAGS) -o $@ --start-group $^  $(LDLIBS) --end-group $(LDFLAGS) $(LDOPTS) 
  • trunk/core/kbd.c

    r177 r217  
    8585#endif 
    8686 
    87 #if defined(CAMERA_a460) || defined(CAMERA_a530) || defined (CAMERA_a540) || defined(CAMERA_a550) || defined(CAMERA_a560) || defined(CAMERA_a570) || defined(CAMERA_a590) ||defined(CAMERA_ixus860_sd870) || defined(CAMERA_ixus960_sd950) || defined(CAMERA_ixus80_sd1100) || defined(CAMERA_ixus970_sd890) || defined(CAMERA_ixus980_sd990) 
     87#if defined(CAMERA_a460) || defined(CAMERA_a530) || defined (CAMERA_a540) || defined(CAMERA_a550) || defined(CAMERA_a560) || defined(CAMERA_a570) || defined(CAMERA_a590) ||defined(CAMERA_ixus860_sd870) || defined(CAMERA_ixus960_sd950) || defined(CAMERA_ixus80_sd1100) || defined(CAMERA_ixus970_sd890) || defined(CAMERA_ixus980_sd990) || defined(CAMERA_ixus90_sd790) 
    8888#define ZSTEP_TABLE_SIZE 8 
    8989static int nTxtbl[]={0,1,2,3,4,5,6,7}; 
  • trunk/core/luascript.c

    r175 r217  
    742742  return 1; 
    743743} 
    744  
     744/* 
     745  val=peek(address[,size]) 
     746  return the value found at address in memory, or nil if address or size is invalid 
     747  size is optional 1=byte 2=halfword 4=word. defaults is 4 
     748*/ 
    745749static int luaCB_peek( lua_State* L ) 
    746750{ 
    747   int addr = (luaL_checknumber(L,1)); 
    748   // must be alligned 
    749   if (addr & 0x3) { 
    750         lua_pushnil(L); 
     751  unsigned addr = luaL_checknumber(L,1); 
     752  unsigned size = luaL_optnumber(L, 2, 4); 
     753  switch(size) { 
     754    case 1:  
     755      lua_pushnumber( L, *(unsigned char *)(addr) ); 
     756    break; 
     757    case 2: 
     758      if (addr & 0x1) { 
     759        lua_pushnil(L); 
     760      } 
     761      else { 
     762        lua_pushnumber( L, *(unsigned short *)(addr) ); 
     763      } 
     764    break; 
     765    case 4: 
     766      if (addr & 0x3) { 
     767        lua_pushnil(L); 
     768      } 
     769      else { 
     770        lua_pushnumber( L, *(unsigned *)(addr) ); 
     771      } 
     772    break; 
     773    default: 
     774      lua_pushnil(L); 
     775 
     776  } 
     777  return 1; 
     778} 
     779 
     780/* 
     781  status=poke(address,value[,size]) 
     782  writes value to address in memory 
     783  size is optional 1=byte 2=halfword 4=word. defaults is 4 
     784  returns true, or nil if address or size is invalid 
     785*/ 
     786static int luaCB_poke( lua_State* L ) 
     787{ 
     788  unsigned addr = luaL_checknumber(L,1); 
     789  unsigned val = luaL_checknumber(L,2); 
     790  unsigned size = luaL_optnumber(L, 3, 4); 
     791  int status = 0; 
     792  switch(size) { 
     793    case 1:  
     794        *(unsigned char *)(addr) = (unsigned char)val; 
     795        lua_pushboolean(L,1); 
     796        status=1; 
     797    break; 
     798    case 2: 
     799      if (!(addr & 0x1)) { 
     800        *(unsigned short *)(addr) = (unsigned short)val; 
     801        status=1; 
     802      } 
     803    break; 
     804    case 4: 
     805      if (!(addr & 0x3)) { 
     806        *(unsigned *)(addr) = val; 
     807        status=1; 
     808      } 
     809    break; 
     810  } 
     811  if(status) { 
     812    lua_pushboolean(L,1); 
    751813  } 
    752814  else { 
    753     lua_pushnumber( L, *(unsigned *)(addr) ); 
    754   } 
    755   return 1; 
    756 } 
    757  
    758 static int luaCB_poke( lua_State* L ) 
    759 { 
    760   int addr = (luaL_checknumber(L,1)); 
    761   int val = (luaL_checknumber(L,2)); 
    762   if (addr & 0x3) { 
    763         lua_pushnil(L); 
    764   } 
    765   else { 
    766     *(unsigned *)(addr) = val; 
    767     lua_pushboolean(L,1); 
     815    lua_pushnil(L); 
    768816  } 
    769817  return 1; 
     
    11251173} 
    11261174 
     1175/* 
     1176pack the lua args into a buffer to pass to the native code calling functions  
     1177currently only handles strings/numbers 
     1178start is the stack index of the first arg 
     1179*/ 
     1180#ifdef OPT_LUA_CALL_NATIVE 
     1181static int pack_native_args( lua_State* L, unsigned start, unsigned *argbuf) 
     1182{ 
     1183  unsigned i; 
     1184  unsigned end = lua_gettop(L); 
     1185 
     1186  for(i = start; i <= end; i++,argbuf++) { 
     1187    if (lua_type(L, i) == LUA_TSTRING) { 
     1188        *argbuf=(unsigned)lua_tostring( L, i); 
     1189    } 
     1190    else if (lua_type(L, i) == LUA_TNUMBER) { 
     1191        *argbuf=lua_tonumber( L, i); 
     1192    } 
     1193    else { 
     1194      return 0; 
     1195    } 
     1196  } 
     1197  return 1; 
     1198} 
     1199 
     1200/* 
     1201Native function call interface. Can be used to call canon eventprocs or arbitrary 
     1202pointers. 
     1203 
     1204NOTE: this is preliminary, interface may change in later versions! 
     1205All arguments must be strings or numbers. 
     1206If the function expects to modify it's arguments via a pointer, 
     1207then you must provide a number that is a valid pointer.  
     1208 
     1209You can use the "AllocateMemory" eventproc to obtain buffers. 
     1210 
     1211If the function tries to write to a string passed from lua, Bad Things may happen. 
     1212 
     1213This is potentially dangerous, functions exist which can destroy the onboard firmware. 
     1214*/ 
     1215 
     1216/* 
     1217result=call_func_ptr(ptr,...) 
     1218ptr: address of a valid ARM or Thumb function, which uses the normal C calling convention. 
     1219result: R0 value after the call returns 
     1220*/ 
     1221static int luaCB_call_func_ptr( lua_State* L) 
     1222{ 
     1223  unsigned *argbuf=NULL; 
     1224  unsigned i; 
     1225  unsigned n_args = lua_gettop(L)-1; 
     1226  void *fptr; 
     1227 
     1228  fptr=(void *)luaL_checknumber( L, 1 ); 
     1229 
     1230  if (n_args) { 
     1231    argbuf=malloc(n_args * 4); 
     1232    if(!argbuf) { 
     1233      return luaL_error( L, "malloc fail" ); 
     1234    } 
     1235    if(!pack_native_args(L, 2, argbuf)) { 
     1236      free(argbuf); 
     1237      return luaL_error( L, "expected string or number" ); 
     1238    } 
     1239  } 
     1240   
     1241  lua_pushnumber( L, call_func_ptr(fptr, argbuf, n_args) ); 
     1242  free(argbuf); 
     1243  return 1; 
     1244} 
     1245 
     1246/*  
     1247Call an event procedure 
     1248 
     1249result=call_event_proc("EventprocName",...) 
     1250result is the value returned by ExecuteEventProcedure, which is -1 if the eventproc is not found,  
     1251or the eventproc return value (which could also be -1) 
     1252NOTE: 
     1253Many eventprocs are not registered by default, but can be loaded by calling another event proc 
     1254Some useful ones are 
     1255SystemEventInit 
     1256        includes AllocateMemory, FreeMemory, sprintf, memcpy, Fut functions, log ... 
     1257UI_RegistDebugEventProc 
     1258        includes capture mode functions, PTM_ functions and much more  
     1259RegisterProductTestEvent 
     1260        includes PT_ functions 
     1261 
     1262Others: 
     1263RegisterShootSeqEvent 
     1264RegisterNRTableEvent 
     1265*/ 
     1266 
     1267// grab from lowlevel 
     1268extern unsigned _ExecuteEventProcedure(const char *name,...); 
     1269static int luaCB_call_event_proc( lua_State* L ) 
     1270{ 
     1271  const char *evpname; 
     1272  unsigned *argbuf; 
     1273  unsigned i; 
     1274  unsigned n_args = lua_gettop(L); 
     1275 
     1276  evpname=luaL_checkstring( L, 1 ); 
     1277 
     1278  argbuf=malloc(n_args * 4); 
     1279  if (!argbuf) { 
     1280    return luaL_error( L, "malloc fail" ); 
     1281  } 
     1282 
     1283  // event proc name is first arg 
     1284  *argbuf = (unsigned)evpname; 
     1285   
     1286  if(!pack_native_args(L,2,argbuf+1)) { 
     1287    free(argbuf); 
     1288    return luaL_error( L, "expected string or number" ); 
     1289  } 
     1290   
     1291  lua_pushnumber( L, call_func_ptr(_ExecuteEventProcedure,argbuf,n_args) ); 
     1292  free(argbuf); 
     1293  return 1; 
     1294} 
     1295 
     1296#endif // OPT_LUA_CALL_NATIVE 
     1297  
    11271298void register_lua_funcs( lua_State* L ) 
    11281299{ 
     
    12831454    
    12841455   FUNC(set_record); 
    1285 } 
     1456#ifdef OPT_LUA_CALL_NATIVE 
     1457   FUNC(call_event_proc); 
     1458   FUNC(call_func_ptr); 
     1459#endif 
     1460} 
  • trunk/include/camera.h

    r193 r217  
    16801680 
    16811681//    #define DNG_EXT_FROM ".CR2" 
     1682 
     1683//---------------------------------------------------------- 
     1684 #elif defined (CAMERA_ixus90_sd790) 
     1685    #define CAM_PROPSET                 2 
     1686    #define CAM_DRYOS                   1 
     1687 
     1688    #define CAM_RAW_ROWPIX              3720 
     1689    #define CAM_RAW_ROWS                2772 
     1690 
     1691    #undef CAM_USE_ZOOM_FOR_MF 
     1692    #undef CAM_HAS_ERASE_BUTTON 
     1693    #define CAM_MULTIPART               1 
     1694    #undef CAM_HAS_IRIS_DIAPHRAGM 
     1695    #undef CAM_HAS_MANUAL_FOCUS 
     1696 
     1697    #define CAM_HAS_ND_FILTER           1 
     1698    #undef CAM_HAS_USER_TV_MODES 
     1699    #define CAM_SHOW_OSD_IN_SHOOT_MENU  1 
     1700    #define CAM_CAN_UNLOCK_OPTICAL_ZOOM_IN_VIDEO 1 
     1701    #define CAM_HAS_JOGDIAL             1 
     1702 
     1703    #define DNG_SUPPORT                 1 
     1704    // pattern 
     1705    #define cam_CFAPattern 0x02010100 // Red  Green  Green  Blue 
     1706    // color 
     1707    #define CAM_COLORMATRIX1                               \ 
     1708      650591, 1000000, -199585, 1000000, -123118, 1000000, \ 
     1709     -69617,  1000000, 583926,  1000000,  34354,  1000000, \ 
     1710     -19113,  1000000, 82163,   1000000, 210786,  1000000 
     1711    #define cam_CalibrationIlluminant1 1 // Daylight 
     1712 
     1713    // cropping  
     1714    #define CAM_JPEG_WIDTH  3648 
     1715    #define CAM_JPEG_HEIGHT 2736 
     1716    #define CAM_ACTIVE_AREA_X1 6 
     1717    #define CAM_ACTIVE_AREA_Y1 12 
     1718    #define CAM_ACTIVE_AREA_X2 3690 
     1719    #define CAM_ACTIVE_AREA_Y2 2772 
     1720 
     1721    // camera name 
     1722    #define PARAM_CAMERA_NAME 4 // parameter number for GetParameterData 
     1723    #undef  CAM_SENSOR_BITS_PER_PIXEL 
     1724    #undef  CAM_WHITE_LEVEL 
     1725    #undef  CAM_BLACK_LEVEL 
     1726    #define CAM_SENSOR_BITS_PER_PIXEL   12 
     1727    #define CAM_WHITE_LEVEL             ((1<<CAM_SENSOR_BITS_PER_PIXEL)-1) 
     1728    #define CAM_BLACK_LEVEL             127 
    16821729 
    16831730//========================================================== 
  • trunk/include/lolevel.h

    r141 r217  
    111111 
    112112extern long _strtol(const char *nptr, char **endptr, int base); 
     113extern unsigned long _strtoul(const char *nptr, char **endptr, int base); 
     114// DRYOS: this function is called by strtol (mode=1) and strtoul (mode=0) 
     115// easier to match with sig finder 
     116extern long _strtolx(const char *nptr, char **endptr, int base, int mode); 
    113117 
    114118extern int _tolower(int c); 
     
    268272extern void _ScreenLock(); 
    269273extern void _SetCurrentCaptureModeType(); 
     274extern unsigned _ExecuteEventProcedure(const char *name, ...); 
    270275// known in CHDK as _RefreshPhysicalScreen 
    271276//extern void _ScreenUnLock(); 
  • trunk/include/platform.h

    r175 r217  
    476476void  SetLogicalEventActive(unsigned event, unsigned state); 
    477477void SetScriptMode(unsigned mode); 
     478/* 
     479 call C function with argument list created at runtime. 
     480 See lib/armutil/callfunc.S for documentation 
     481*/ 
     482unsigned call_func_ptr(void *func, const unsigned *args, unsigned n_args); 
    478483 
    479484#define started() debug_led(1) 
  • trunk/include/stdlib.h

    r12 r217  
    101101 
    102102extern long strtol(const char *nptr, char **endptr, int base); 
     103extern unsigned long strtoul(const char *nptr, char **endptr, int base); 
    103104#define atoi(n) strtol((n),NULL,0) 
    104105 
  • trunk/lib/Makefile

    r14 r217  
    22include $(topdir)makefile.inc 
    33 
    4 SUBDIRS=font math ubasic lang lua 
     4SUBDIRS=font math ubasic lang lua armutil 
    55 
    66include $(topdir)bottom.inc 
  • trunk/lib/lua/lbaselib.c

    r14 r217  
    9797    unsigned long n; 
    9898    luaL_argcheck(L, 2 <= base && base <= 36, 2, "base out of range"); 
    99     n = strtol(s1, &s2, base); 
     99    n = strtoul(s1, &s2, base); 
    100100    if (s1 != s2) {  /* at least one valid digit? */ 
    101101      while (isspace((unsigned char)(*s2))) s2++;  /* skip trailing spaces */ 
  • trunk/lib/lua/lobject.c

    r14 r217  
    9393  if (endptr == s) return 0;  /* conversion failed */ 
    9494  if (*endptr == 'x' || *endptr == 'X')  /* maybe an hexadecimal constant? */ 
    95 // reyalp - use strtol 
    96     *result = cast_num(strtol(s, &endptr, 16)); 
     95    *result = cast_num(strtoul(s, &endptr, 16)); 
    9796  if (*endptr == '\0') return 1;  /* most common case */ 
    9897  while (isspace(cast(unsigned char, *endptr))) endptr++; 
  • trunk/makefile.inc

    r190 r217  
    238238#PLATFORM=a2000 
    239239#PLATFORMSUB=100c 
     240 
     241#PLATFORM=ixus90_sd790 
     242#PLATFORMSUB=100d 
    240243 
    241244MEMISOSIZE="(&_end-&_start)" 
  • trunk/platform/a2000/sub/100c/stubs_entry.S

    r169 r217  
    159159NSTUB(strrchr, 0xffc6c960) 
    160160NSTUB(strtol, 0xffc1cd8c) 
     161NSTUB(strtolx, 0xffc1cb90) 
    161162NSTUB(time, 0xffc5327c) 
    162163NSTUB(vsprintf, 0xffc0d7f8) 
  • trunk/platform/a450/sub/100d/stubs_entry.S

    r106 r217  
    180180// ALT: NSTUB(strrchr, 0xffcc4e9c) // 8/0 
    181181NSTUB(strtol, 0xffcc45f0) 
     182NSTUB(strtoul, 0xffcc4798) 
    182183NSTUB(taskCreateHookAdd, 0xffccf3bc) 
    183184NSTUB(taskDeleteHookAdd, 0xffccf2f8) 
  • trunk/platform/a460/sub/100d/stubs_entry.S

    r106 r217  
    180180// ALT: NSTUB(strrchr, 0xffcc4e94) // 8/0 
    181181NSTUB(strtol, 0xffcc45e8) 
     182NSTUB(strtoul, 0xffcc4790) 
    182183NSTUB(taskCreateHookAdd, 0xffccf3b4) 
    183184NSTUB(taskDeleteHookAdd, 0xffccf2f0) 
  • trunk/platform/a470/sub/100e/stubs_entry.S

    r169 r217  
    149149NSTUB(strrchr, 0xffc6e530) 
    150150NSTUB(strtol, 0xffc1da54) 
     151NSTUB(strtolx, 0xffc1d858) 
    151152NSTUB(time, 0xffc50edc) 
    152153NSTUB(vsprintf, 0xffc0d80c) 
  • trunk/platform/a470/sub/101b/stubs_entry.S

    r169 r217  
    149149NSTUB(strrchr, 0xffc6e530) 
    150150NSTUB(strtol, 0xffc1da54) 
     151NSTUB(strtolx, 0xffc1d858) 
    151152NSTUB(time, 0xffc50edc) 
    152153NSTUB(vsprintf, 0xffc0d80c) 
  • trunk/platform/a470/sub/102c/stubs_entry.S

    r169 r217  
    149149NSTUB(strrchr, 0xffc6ea4c) 
    150150NSTUB(strtol, 0xffc1da54) 
     151NSTUB(strtolx, 0xffc1d858) 
    151152NSTUB(time, 0xffc513f8) 
    152153NSTUB(vsprintf, 0xffc0d80c) 
  • trunk/platform/a530/sub/100a/stubs_entry.S

    r106 r217  
    169169// ALT: NSTUB(strrchr, 0xffec3a94) // 8/0 
    170170NSTUB(strtol, 0xffec31e8) 
     171NSTUB(strtoul, 0xffec3390) 
    171172NSTUB(taskCreateHookAdd, 0xffece190) 
    172173NSTUB(taskDeleteHookAdd, 0xffece0cc) 
  • trunk/platform/a540/sub/100b/stubs_entry.S

    r106 r217  
    174174// ALT: NSTUB(strrchr, 0xffed94c8) // 8/0 
    175175NSTUB(strtol, 0xffed8c1c) 
     176NSTUB(strtoul, 0xffed8dc4) 
    176177NSTUB(taskCreateHookAdd, 0xffee3bc4) 
    177178NSTUB(taskDeleteHookAdd, 0xffee3b00) 
  • trunk/platform/a550/sub/100c/stubs_entry.S

    r106 r217  
    179179// ALT: NSTUB(strrchr, 0xffcc0888) // 8/0 
    180180NSTUB(strtol, 0xffcbffdc) 
     181NSTUB(strtoul, 0xffcc0184) 
    181182NSTUB(taskCreateHookAdd, 0xffccada8) 
    182183NSTUB(taskDeleteHookAdd, 0xffccace4) 
  • trunk/platform/a560/sub/100a/stubs_entry.S

    r106 r217  
    181181// ALT: NSTUB(strrchr, 0xffcc9e38) // 8/0 
    182182NSTUB(strtol, 0xffcc958c) 
     183NSTUB(strtoul, 0xffcc9734) 
    183184NSTUB(taskCreateHookAdd, 0xffcd4358) 
    184185NSTUB(taskDeleteHookAdd, 0xffcd4294) 
  • trunk/platform/a570/sub/100e/stubs_entry.S

    r106 r217  
    182182// ALT: NSTUB(strrchr, 0xffcd22b8) // 8/0 
    183183NSTUB(strtol, 0xffcd1a0c) 
     184NSTUB(strtoul, 0xffcd1bb4) 
    184185NSTUB(taskCreateHookAdd, 0xffcdc7d8) 
    185186NSTUB(taskDeleteHookAdd, 0xffcdc714) 
  • trunk/platform/a570/sub/101a/stubs_entry.S

    r106 r217  
    182182// ALT: NSTUB(strrchr, 0xffcd22b8) // 8/0 
    183183NSTUB(strtol, 0xffcd1a0c) 
     184NSTUB(strtoul, 0xffcd1bb4) 
    184185NSTUB(taskCreateHookAdd, 0xffcdc7d8) 
    185186NSTUB(taskDeleteHookAdd, 0xffcdc714) 
  • trunk/platform/a590/sub/100e/stubs_entry.S

    r169 r217  
    154154NSTUB(strrchr, 0xffc74e20) 
    155155NSTUB(strtol, 0xffc1df00) 
     156NSTUB(strtolx, 0xffc1dd04) 
    156157NSTUB(time, 0xffc57a88) 
    157158NSTUB(vsprintf, 0xffc0d80c) 
  • trunk/platform/a590/sub/101b/stubs_entry.S

    r169 r217  
    154154NSTUB(strrchr, 0xffc74e20) 
    155155NSTUB(strtol, 0xffc1df00) 
     156NSTUB(strtolx, 0xffc1dd04) 
    156157NSTUB(time, 0xffc57a88) 
    157158NSTUB(vsprintf, 0xffc0d80c) 
  • trunk/platform/a610/sub/100e/stubs_entry.S

    r106 r217  
    142142// ALT: NSTUB(strrchr, 0xffeb5f18) // 8/0 
    143143NSTUB(strtol, 0xffeb566c) 
     144NSTUB(strtoul, 0xffeb5814) 
    144145NSTUB(taskCreateHookAdd, 0xffec251c) 
    145146NSTUB(taskDeleteHookAdd, 0xffec2458) 
  • trunk/platform/a610/sub/100f/stubs_entry.S

    r106 r217  
    142142// ALT: NSTUB(strrchr, 0xffeb62a0) // 8/0 
    143143NSTUB(strtol, 0xffeb59f4) 
     144NSTUB(strtoul, 0xffeb5b9c) 
    144145NSTUB(taskCreateHookAdd, 0xffec28a4) 
    145146NSTUB(taskDeleteHookAdd, 0xffec27e0) 
  • trunk/platform/a620/sub/100f/stubs_entry.S

    r106 r217  
    170170// ALT: NSTUB(strrchr, 0xffebcc3c) // 8/0 
    171171NSTUB(strtol, 0xffebc390) 
     172NSTUB(strtoul, 0xffebc538) 
    172173NSTUB(taskCreateHookAdd, 0xffec9240) 
    173174NSTUB(taskDeleteHookAdd, 0xffec917c) 
  • trunk/platform/a630/sub/100c/stubs_entry.S

    r106 r217  
    162162// ALT: NSTUB(strrchr, 0xffeeb7dc) // 8/0 
    163163NSTUB(strtol, 0xffeeaf30) 
     164NSTUB(strtoul, 0xffeeb0d8) 
    164165NSTUB(taskCreateHookAdd, 0xffef5ed8) 
    165166NSTUB(taskDeleteHookAdd, 0xffef5e14) 
  • trunk/platform/a640/sub/100b/stubs_entry.S

    r106 r217  
    163163// ALT: NSTUB(strrchr, 0xffef5704) // 8/0 
    164164NSTUB(strtol, 0xffef4e58) 
     165NSTUB(strtoul, 0xffef5000) 
    165166NSTUB(taskCreateHookAdd, 0xffeffe00) 
    166167NSTUB(taskDeleteHookAdd, 0xffeffd3c) 
  • trunk/platform/a650/sub/100d/stubs_entry.S

    r169 r217  
    130130NSTUB(strrchr, 0xffc73a74) 
    131131NSTUB(strtol, 0xffc1fe0c) 
     132NSTUB(strtolx, 0xffc1fc10) 
    132133NSTUB(time, 0xffc571ac) 
    133134NSTUB(vsprintf, 0xffc0e6e4) 
  • trunk/platform/a700/sub/100b/stubs_entry.S

    r106 r217  
    174174// ALT: NSTUB(strrchr, 0xffee0a20) // 8/0 
    175175NSTUB(strtol, 0xffee0174) 
     176NSTUB(strtoul, 0xffee031c) 
    176177NSTUB(taskCreateHookAdd, 0xffeeb11c) 
    177178NSTUB(taskDeleteHookAdd, 0xffeeb058) 
  • trunk/platform/a710/sub/100a/stubs_entry.S

    r106 r217  
    145145// ALT: NSTUB(strrchr, 0xffef9024) // 8/0 
    146146NSTUB(strtol, 0xffef8778) 
     147NSTUB(strtoul, 0xffef8920) 
    147148NSTUB(taskCreateHookAdd, 0xfff03720) 
    148149NSTUB(taskDeleteHookAdd, 0xfff0365c) 
  • trunk/platform/a720/sub/100c/stubs_entry.S

    r169 r217  
    116116NSTUB(strrchr, 0xffc71bcc) 
    117117NSTUB(strtol, 0xffc1fc0c) 
     118NSTUB(strtolx, 0xffc1fa10) 
    118119NSTUB(time, 0xffc55f0c) 
    119120NSTUB(vsprintf, 0xffc0e7b4) 
  • trunk/platform/g7/sub/100e/stubs_entry.S

    r106 r217  
    171171// ALT: NSTUB(strrchr, 0xffb96fc4) // 8/0 
    172172NSTUB(strtol, 0xffb96718) 
     173NSTUB(strtoul, 0xffb968c0) 
    173174NSTUB(taskCreateHookAdd, 0xffba16c0) 
    174175NSTUB(taskDeleteHookAdd, 0xffba15fc) 
  • trunk/platform/g7/sub/100g/stubs_entry.S

    r106 r217  
    171171// ALT: NSTUB(strrchr, 0xffb9714c) // 8/0 
    172172NSTUB(strtol, 0xffb968a0) 
     173NSTUB(strtoul, 0xffb96a48) 
    173174NSTUB(taskCreateHookAdd, 0xffba1848) 
    174175NSTUB(taskDeleteHookAdd, 0xffba1784) 
  • trunk/platform/g7/sub/100i/stubs_entry.S

    r106 r217  
    171171// ALT: NSTUB(strrchr, 0xffb9719c) // 8/0 
    172172NSTUB(strtol, 0xffb968f0) 
     173NSTUB(strtoul, 0xffb96a98) 
    173174NSTUB(taskCreateHookAdd, 0xffba1898) 
    174175NSTUB(taskDeleteHookAdd, 0xffba17d4) 
  • trunk/platform/g7/sub/100j/stubs_entry.S

    r106 r217  
    171171// ALT: NSTUB(strrchr, 0xffb97224) // 8/0 
    172172NSTUB(strtol, 0xffb96978) 
     173NSTUB(strtoul, 0xffb96b20) 
    173174NSTUB(taskCreateHookAdd, 0xffba1920) 
    174175NSTUB(taskDeleteHookAdd, 0xffba185c) 
  • trunk/platform/g9/sub/100d/stubs_entry.S

    r169 r217  
    135135NSTUB(strrchr, 0xff895cc8) 
    136136NSTUB(strtol, 0xff830d90) 
     137NSTUB(strtolx, 0xff830b94) 
    137138NSTUB(time, 0xff86ba3c) 
    138139NSTUB(vsprintf, 0xff81e6f8) 
  • trunk/platform/g9/sub/100g/stubs_entry.S

    r169 r217  
    135135NSTUB(strrchr, 0xff895cc8) 
    136136NSTUB(strtol, 0xff830d90) 
     137NSTUB(strtolx, 0xff830b94) 
    137138NSTUB(time, 0xff86ba3c) 
    138139NSTUB(vsprintf, 0xff81e6f8) 
  • trunk/platform/g9/sub/100i/stubs_entry.S

    r169 r217  
    135135NSTUB(strrchr, 0xff895cc8) 
    136136NSTUB(strtol, 0xff830d90) 
     137NSTUB(strtolx, 0xff830b94) 
    137138NSTUB(time, 0xff86ba3c) 
    138139NSTUB(vsprintf, 0xff81e6f8) 
  • trunk/platform/generic/wrappers.c

    r190 r217  
    339339} 
    340340 
     341unsigned long strtoul(const char *nptr, char **endptr, int base) { 
     342#if CAM_DRYOS 
     343    return (unsigned long)_strtolx(nptr, endptr, base, 0); 
     344#else 
     345    return _strtoul(nptr, endptr, base); 
     346#endif 
     347} 
     348 
    341349char *strpbrk(const char *s, const char *accept) { 
    342350#if !CAM_DRYOS 
     
    795803} 
    796804 
    797 void reverse_bytes_order(char* start, int count){ 
    798 // note, we will go to count rounded up to the nearest 32 
    799 asm volatile( 
    800         "ldr    r2, =0xFF00FF\n"        // r2 = mask 
    801         "add    r1, r0, r1\n"           // r1 = start + count 
    802 "LOOP:\n" 
    803         "ldm    r0, {R4-R11}\n"         // load 8 words 
    804          
    805         // out = ((in>>8) & 0xFF00FF) | ((in&0xFF00FF) << 8); 
    806         "mov    r3, r4, lsr #8\n"       // r3 = in >> 8 
    807         "and    r3, r3, r2\n"           // r3 &= 0xFF00FF 
    808         "and    r4, r4, r2\n"           // r4 = in & 0xFF00FF 
    809         "orr    r4, r3, r4, asl #8\n" // out = r3 | (r4 << 8) 
    810  
    811         "mov    r3, r5, lsr #8\n" 
    812         "and    r3, r3, r2\n" 
    813         "and    r5, r5, r2\n" 
    814         "orr    r5, r3, r5, asl #8\n" 
    815  
    816         "mov    r3, r6, lsr #8\n" 
    817         "and    r3, r3, r2\n" 
    818         "and    r6, r6, r2\n" 
    819         "orr    r6, r3, r6, asl #8\n" 
    820  
    821         "mov    r3, r7, lsr #8\n" 
    822         "and    r3, r3, r2\n" 
    823         "and    r7, r7, r2\n" 
    824         "orr    r7, r3, r7, asl #8\n" 
    825  
    826         "mov    r3, r8, lsr #8\n" 
    827         "and    r3, r3, r2\n" 
    828         "and    r8, r8, r2\n" 
    829         "orr    r8, r3, r8, asl #8\n" 
    830  
    831         "mov    r3, r9, lsr #8\n" 
    832         "and    r3, r3, r2\n" 
    833         "and    r9, r9, r2\n" 
    834         "orr    r9, r3, r9, asl #8\n" 
    835  
    836         "mov    r3, r10, lsr #8\n" 
    837         "and    r3, r3, r2\n" 
    838         "and    r10, r10, r2\n" 
    839         "orr    r10, r3, r10, asl #8\n" 
    840  
    841         "mov    r3, r11, lsr #8\n" 
    842         "and    r3, r3, r2\n" 
    843         "and    r11, r11, r2\n" 
    844         "orr    r11, r3, r11, asl #8\n" 
    845  
    846         "stmia  r0!, {r4-r11}\n"        // store and increment 
    847  
    848         "cmp    r0, r1\n" 
    849         "bcc    LOOP\n" 
    850         :::"r0","r1","r2","r3","r4","r5","r6","r7","r8","r9","r10","r11" 
    851  ); 
    852 } 
    853  
    854805#if defined (DNG_EXT_FROM) 
    855806 
  • trunk/platform/ixus40_sd300/sub/100j/stubs_entry.S

    r106 r217  
    266266NSTUB(strtol, 0xffabbf30) 
    267267// ALT: NSTUB(strtol, 0xfff4ffe0) // 26/0 
     268NSTUB(strtoul, 0xffabc0d8) 
     269// ALT: NSTUB(strtoul, 0xfff50188) // 26/0 
    268270NSTUB(taskCreateHookAdd, 0xffac8a18) 
    269271// ALT: NSTUB(taskCreateHookAdd, 0xfff5df1c) // 29/0 
  • trunk/platform/ixus40_sd300/sub/100k/stubs_entry.S

    r106 r217  
    177177// ALT: NSTUB(strrchr, 0xffabc804) // 8/0 
    178178NSTUB(strtol, 0xffabbf58) 
     179NSTUB(strtoul, 0xffabc100) 
    179180NSTUB(taskCreateHookAdd, 0xffac8a40) 
    180181NSTUB(taskDeleteHookAdd, 0xffac897c) 
  • trunk/platform/ixus50_sd400/sub/101a/stubs_entry.S

    r106 r217  
    182182// ALT: NSTUB(strrchr, 0xffab5c5c) // 8/0 
    183183NSTUB(strtol, 0xffab53b0) 
     184NSTUB(strtoul, 0xffab5558) 
    184185NSTUB(taskCreateHookAdd, 0xffac2260) 
    185186NSTUB(taskDeleteHookAdd, 0xffac219c) 
  • trunk/platform/ixus50_sd400/sub/101b/stubs_entry.S

    r106 r217  
    182182// ALT: NSTUB(strrchr, 0xffab5cb0) // 8/0 
    183183NSTUB(strtol, 0xffab5404) 
     184NSTUB(strtoul, 0xffab55ac) 
    184185NSTUB(taskCreateHookAdd, 0xffac22b4) 
    185186NSTUB(taskDeleteHookAdd, 0xffac21f0) 
  • trunk/platform/ixus55_sd450/sub/100b/stubs_entry.S

    r106 r217  
    176176// ALT: NSTUB(strrchr, 0xffacdbe8) // 8/0 
    177177NSTUB(strtol, 0xffacd33c) 
     178NSTUB(strtoul, 0xffacd4e4) 
    178179NSTUB(taskCreateHookAdd, 0xffada1ec) 
    179180NSTUB(taskDeleteHookAdd, 0xffada128) 
  • trunk/platform/ixus55_sd450/sub/100c/stubs_entry.S

    r106 r217  
    176176// ALT: NSTUB(strrchr, 0xffacdb14) // 8/0 
    177177NSTUB(strtol, 0xffacd268) 
     178NSTUB(strtoul, 0xffacd410) 
    178179NSTUB(taskCreateHookAdd, 0xffada118) 
    179180NSTUB(taskDeleteHookAdd, 0xffada054) 
  • trunk/platform/ixus55_sd450/sub/100d/stubs_entry.S

    r106 r217  
    176176// ALT: NSTUB(strrchr, 0xffacde9c) // 8/0 
    177177NSTUB(strtol, 0xffacd5f0) 
     178NSTUB(strtoul, 0xffacd798) 
    178179NSTUB(taskCreateHookAdd, 0xffada4a0) 
    179180NSTUB(taskDeleteHookAdd, 0xffada3dc) 
  • trunk/platform/ixus60_sd600/sub/100a/stubs_entry.S

    r106 r217  
    170170// ALT: NSTUB(strrchr, 0xffb03db0) // 8/0 
    171171NSTUB(strtol, 0xffb03504) 
     172NSTUB(strtoul, 0xffb036ac) 
    172173NSTUB(taskCreateHookAdd, 0xffb0eecc) 
    173174NSTUB(taskDeleteHookAdd, 0xffb0ee08) 
  • trunk/platform/ixus60_sd600/sub/100d/stubs_entry.S

    r106 r217  
    170170// ALT: NSTUB(strrchr, 0xffb04990) // 8/0 
    171171NSTUB(strtol, 0xffb040e4) 
     172NSTUB(strtoul, 0xffb0428c) 
    172173NSTUB(taskCreateHookAdd, 0xffb0faac) 
    173174NSTUB(taskDeleteHookAdd, 0xffb0f9e8) 
  • trunk/platform/ixus65_sd630/sub/100a/stubs_entry.S

    r106 r217  
    170170// ALT: NSTUB(strrchr, 0xffb0da74) // 8/0 
    171171NSTUB(strtol, 0xffb0d1c8) 
     172NSTUB(strtoul, 0xffb0d370) 
    172173NSTUB(taskCreateHookAdd, 0xffb18b90) 
    173174NSTUB(taskDeleteHookAdd, 0xffb18acc) 
  • trunk/platform/ixus700_sd500/sub/101a/stubs_entry.S

    r106 r217  
    181181// ALT: NSTUB(strrchr, 0xffab3c98) // 8/0 
    182182NSTUB(strtol, 0xffab33ec) 
     183NSTUB(strtoul, 0xffab3594) 
    183184NSTUB(taskCreateHookAdd, 0xffac029c) 
    184185NSTUB(taskDeleteHookAdd, 0xffac01d8) 
  • trunk/platform/ixus700_sd500/sub/101b/stubs_entry.S

    r106 r217  
    181181// ALT: NSTUB(strrchr, 0xffab3ce8) // 8/0 
    182182NSTUB(strtol, 0xffab343c) 
     183NSTUB(strtoul, 0xffab35e4) 
    183184NSTUB(taskCreateHookAdd, 0xffac02ec) 
    184185NSTUB(taskDeleteHookAdd, 0xffac0228) 
  • trunk/platform/ixus70_sd1000/sub/100c/stubs_entry.S

    r106 r217  
    182182// ALT: NSTUB(strrchr, 0xff918900) // 8/0 
    183183NSTUB(strtol, 0xff918054) 
     184NSTUB(strtoul, 0xff9181fc) 
    184185NSTUB(taskCreateHookAdd, 0xff922e20) 
    185186NSTUB(taskDeleteHookAdd, 0xff922d5c) 
  • trunk/platform/ixus70_sd1000/sub/101b/stubs_entry.S

    r106 r217  
    182182// ALT: NSTUB(strrchr, 0xff918900) // 8/0 
    183183NSTUB(strtol, 0xff918054) 
     184NSTUB(strtoul, 0xff9181fc) 
    184185NSTUB(taskCreateHookAdd, 0xff922e20) 
    185186NSTUB(taskDeleteHookAdd, 0xff922d5c) 
  • trunk/platform/ixus70_sd1000/sub/102a/stubs_entry.S

    r106 r217  
    182182// ALT: NSTUB(strrchr, 0xff918900) // 8/0 
    183183NSTUB(strtol, 0xff918054) 
     184NSTUB(strtoul, 0xff9181fc) 
    184185NSTUB(taskCreateHookAdd, 0xff922e20) 
    185186NSTUB(taskDeleteHookAdd, 0xff922d5c) 
  • trunk/platform/ixus750_sd550/sub/100f/stubs_entry.S

    r106 r217  
    176176// ALT: NSTUB(strrchr, 0xffacd6f0) // 8/0 
    177177NSTUB(strtol, 0xffacce44) 
     178NSTUB(strtoul, 0xffaccfec) 
    178179NSTUB(taskCreateHookAdd, 0xffad9cf4) 
    179180NSTUB(taskDeleteHookAdd, 0xffad9c30) 
  • trunk/platform/ixus750_sd550/sub/100g/stubs_entry.S

    r106 r217  
    176176// ALT: NSTUB(strrchr, 0xffacd6f0) // 8/0 
    177177NSTUB(strtol, 0xffacce44) 
     178NSTUB(strtoul, 0xffaccfec) 
    178179NSTUB(taskCreateHookAdd, 0xffad9cf4) 
    179180NSTUB(taskDeleteHookAdd, 0xffad9c30) 
  • trunk/platform/ixus75_sd750/sub/100b/stubs_entry.S

    r106 r217  
    182182// ALT: NSTUB(strrchr, 0xff922ce4) // 8/0 
    183183NSTUB(strtol, 0xff922438) 
     184NSTUB(strtoul, 0xff9225e0) 
    184185NSTUB(taskCreateHookAdd, 0xff92d204) 
    185186NSTUB(taskDeleteHookAdd, 0xff92d140) 
  • trunk/platform/ixus75_sd750/sub/101a/stubs_entry.S

    r106 r217  
    182182// ALT: NSTUB(strrchr, 0xff922ce4) // 8/0 
    183183NSTUB(strtol, 0xff922438) 
     184NSTUB(strtoul, 0xff9225e0) 
    184185NSTUB(taskCreateHookAdd, 0xff92d204) 
    185186NSTUB(taskDeleteHookAdd, 0xff92d140) 
  • trunk/platform/ixus75_sd750/sub/102a/stubs_entry.S

    r106 r217  
    182182// ALT: NSTUB(strrchr, 0xff922ce4) // 8/0 
    183183NSTUB(strtol, 0xff922438) 
     184NSTUB(strtoul, 0xff9225e0) 
    184185NSTUB(taskCreateHookAdd, 0xff92d204) 
    185186NSTUB(taskDeleteHookAdd, 0xff92d140) 
  • trunk/platform/ixus800_sd700/sub/100b/stubs_entry.S

    r106 r217  
    171171// ALT: NSTUB(strrchr, 0xffb0753c) // 8/0 
    172172NSTUB(strtol, 0xffb06c90) 
     173NSTUB(strtoul, 0xffb06e38) 
    173174NSTUB(taskCreateHookAdd, 0xffb12658) 
    174175NSTUB(taskDeleteHookAdd, 0xffb12594) 
  • trunk/platform/ixus800_sd700/sub/101b/stubs_entry.S

    r106 r217  
    171171// ALT: NSTUB(strrchr, 0xffb07534) // 8/0 
    172172NSTUB(strtol, 0xffb06c88) 
     173NSTUB(strtoul, 0xffb06e30) 
    173174NSTUB(taskCreateHookAdd, 0xffb12650) 
    174175NSTUB(taskDeleteHookAdd, 0xffb1258c) 
  • trunk/platform/ixus80_sd1100/sub/100c/stubs_entry.S

    r169 r217  
    143143NSTUB(strrchr, 0xff8920cc) 
    144144NSTUB(strtol, 0xff82e3cc) 
     145NSTUB(strtolx, 0xff82e1d0) 
    145146NSTUB(time, 0xff866d48) 
    146147NSTUB(vsprintf, 0xff81d80c) 
  • trunk/platform/ixus80_sd1100/sub/101a/stubs_entry.S

    r169 r217  
    143143NSTUB(strrchr, 0xff8920cc) 
    144144NSTUB(strtol, 0xff82e3cc) 
     145NSTUB(strtolx, 0xff82e1d0) 
    145146NSTUB(time, 0xff866d48) 
    146147NSTUB(vsprintf, 0xff81d80c) 
  • trunk/platform/ixus850_sd800/sub/100e/stubs_entry.S

    r106 r217  
    171171// ALT: NSTUB(strrchr, 0xffb59d18) // 8/0 
    172172NSTUB(strtol, 0xffb5946c) 
     173NSTUB(strtoul, 0xffb59614) 
    173174NSTUB(taskCreateHookAdd, 0xffb64414) 
    174175NSTUB(taskDeleteHookAdd, 0xffb64350) 
  • trunk/platform/ixus860_sd870/sub/100c/stubs_entry.S

    r169 r217  
    130130NSTUB(strrchr, 0xff88fad8) 
    131131NSTUB(strtol, 0xff82ff78) 
     132NSTUB(strtolx, 0xff82fd7c) 
    132133NSTUB(time, 0xff865744) 
    133134NSTUB(vsprintf, 0xff81e7b8) 
  • trunk/platform/ixus870_sd880/sub/100e/stubs_entry.S

    r169 r217  
    160160NSTUB(strrchr, 0xff89278c) 
    161161NSTUB(strtol, 0xff82d8b0) 
     162NSTUB(strtolx, 0xff82d6b4) 
    162163// Best match: 83% 
    163164NSTUB(time, 0xff86b83c) 
  • trunk/platform/ixus870_sd880/sub/101a/stubs_entry.S

    r169 r217  
    160160NSTUB(strrchr, 0xff89278c) 
    161161NSTUB(strtol, 0xff82d8b0) 
     162NSTUB(strtolx, 0xff82d6b4) 
    162163// Best match: 83% 
    163164NSTUB(time, 0xff86b83c) 
  • trunk/platform/ixus870_sd880/sub/102b/stubs_entry.S

    r169 r217  
    160160NSTUB(strrchr, 0xff89278c) 
    161161NSTUB(strtol, 0xff82d8b0) 
     162NSTUB(strtolx, 0xff82d6b4) 
    162163// Best match: 83% 
    163164NSTUB(time, 0xff86b83c) 
  • trunk/platform/ixus950_sd850/sub/100c/stubs_entry.S

    r106 r217  
    183183// ALT: NSTUB(strrchr, 0xff924140) // 8/0 
    184184NSTUB(strtol, 0xff923894) 
     185NSTUB(strtoul, 0xff923a3c) 
    185186NSTUB(taskCreateHookAdd, 0xff92e660) 
    186187NSTUB(taskDeleteHookAdd, 0xff92e59c) 
  • trunk/platform/ixus960_sd950/sub/100d/stubs_entry.S

    r169 r217  
    129129NSTUB(strrchr, 0xff88fdc4) 
    130130NSTUB(strtol, 0xff82ff20) 
     131NSTUB(strtolx, 0xff82fd24) 
    131132NSTUB(time, 0xff865ac8) 
    132133NSTUB(vsprintf, 0xff81e6f0) 
  • trunk/platform/ixus970_sd890/sub/100b/stubs_entry.S

    r169 r217  
    146146NSTUB(strrchr, 0xff89423c) 
    147147NSTUB(strtol, 0xff82e438) 
     148NSTUB(strtolx, 0xff82e23c) 
    148149NSTUB(time, 0xff866fd0) 
    149150NSTUB(vsprintf, 0xff81d744) 
  • trunk/platform/ixus970_sd890/sub/100c/stubs_entry.S

    r169 r217  
    146146NSTUB(strrchr, 0xff89423c) 
    147147NSTUB(strtol, 0xff82e438) 
     148NSTUB(strtolx, 0xff82e23c) 
    148149NSTUB(time, 0xff866fd0) 
    149150NSTUB(vsprintf, 0xff81d744) 
  • trunk/platform/ixus970_sd890/sub/100f/stubs_entry.S

    r169 r217  
    146146NSTUB(strrchr, 0xff8941c0) 
    147147NSTUB(strtol, 0xff82e434) 
     148NSTUB(strtolx, 0xff82e238) 
    148149NSTUB(time, 0xff866f54) 
    149150NSTUB(vsprintf, 0xff81d744) 
  • trunk/platform/ixus980_sd990/sub/100e/stubs_entry.S

    r169 r217  
    160160NSTUB(strrchr, 0xff89763c) 
    161161NSTUB(strtol, 0xff82dc88) 
     162NSTUB(strtolx, 0xff82da8c) 
    162163// Best match: 83% 
    163164NSTUB(time, 0xff8703ec) 
  • trunk/platform/ixus980_sd990/sub/101b/stubs_entry.S

    r169 r217  
    160160NSTUB(strrchr, 0xff89763c) 
    161161NSTUB(strtol, 0xff82dc88) 
     162NSTUB(strtolx, 0xff82da8c) 
    162163// Best match: 83% 
    163164NSTUB(time, 0xff8703ec) 
  • trunk/platform/ixusizoom_sd30/sub/100g/stubs_entry.S

    r106 r217  
    178178// ALT: NSTUB(strrchr, 0xffaca6dc) // 8/0 
    179179NSTUB(strtol, 0xffac9e30) 
     180NSTUB(strtoul, 0xffac9fd8) 
    180181NSTUB(taskCreateHookAdd, 0xffad6ce0) 
    181182NSTUB(taskDeleteHookAdd, 0xffad6c1c) 
  • trunk/platform/s2is/sub/100e/stubs_entry.S

    r106 r217  
    174174// ALT: NSTUB(strrchr, 0xffaee57c) // 8/0 
    175175NSTUB(strtol, 0xffaedcd0) 
     176NSTUB(strtoul, 0xffaede78) 
    176177NSTUB(taskCreateHookAdd, 0xffafab80) 
    177178NSTUB(taskDeleteHookAdd, 0xffafaabc) 
  • trunk/platform/s2is/sub/100f/stubs_entry.S

    r106 r217  
    183183// ALT: NSTUB(strrchr, 0xffaee5fc) // 8/0 
    184184NSTUB(strtol, 0xffaedd50) 
     185NSTUB(strtoul, 0xffaedef8) 
    185186NSTUB(taskCreateHookAdd, 0xffafac00) 
    186187NSTUB(taskDeleteHookAdd, 0xffafab3c) 
  • trunk/platform/s2is/sub/100g/stubs_entry.S

    r106 r217  
    183183// ALT: NSTUB(strrchr, 0xffaee388) // 8/0 
    184184NSTUB(strtol, 0xffaedadc) 
     185NSTUB(strtoul, 0xffaedc84) 
    185186NSTUB(taskCreateHookAdd, 0xffafa98c) 
    186187NSTUB(taskDeleteHookAdd, 0xffafa8c8) 
  • trunk/platform/s3is/sub/100a/stubs_entry.S

    r106 r217  
    175175// ALT: NSTUB(strrchr, 0xffb4f73c) // 8/0 
    176176NSTUB(strtol, 0xffb4ee90) 
     177NSTUB(strtoul, 0xffb4f038) 
    177178NSTUB(taskCreateHookAdd, 0xffb5a858) 
    178179NSTUB(taskDeleteHookAdd, 0xffb5a794) 
  • trunk/platform/s5is/sub/101a/stubs_entry.S

    r169 r217  
    142142NSTUB(strrchr, 0xff8b32a0) 
    143143NSTUB(strtol, 0xff831dac) 
     144NSTUB(strtolx, 0xff831bb0) 
    144145NSTUB(time, 0xff870bd0) 
    145146NSTUB(vsprintf, 0xff81e5f0) 
  • trunk/platform/s5is/sub/101b/stubs_entry.S

    r169 r217  
    142142NSTUB(strrchr, 0xff8b31d8) 
    143143NSTUB(strtol, 0xff831ce4) 
     144NSTUB(strtolx, 0xff831ae8) 
    144145NSTUB(time, 0xff870b08) 
    145146NSTUB(vsprintf, 0xff81e528) 
  • trunk/platform/sx1/sub/200h/stubs_entry.S

    r169 r217  
    162162NSTUB(strrchr, 0xff8a081c) 
    163163NSTUB(strtol, 0xff82de30) 
     164NSTUB(strtolx, 0xff82dc34) 
    164165// Best match: 83% 
    165166NSTUB(time, 0xff877c1c) 
  • trunk/platform/sx1/sub/201a/stubs_entry.S

    r169 r217  
    162162NSTUB(strrchr, 0xff8a081c) 
    163163NSTUB(strtol, 0xff82de30) 
     164NSTUB(strtolx, 0xff82dc34) 
    164165// Best match: 83% 
    165166NSTUB(time, 0xff877c1c) 
  • trunk/platform/sx10/sub/100c/stubs_entry.S

    r169 r217  
    163163NSTUB(strrchr, 0xff89b918) 
    164164NSTUB(strtol, 0xff82dd4c) 
     165NSTUB(strtolx, 0xff82db50) 
    165166// Best match: 83% 
    166167NSTUB(time, 0xff873764) 
  • trunk/platform/sx10/sub/101a/stubs_entry.S

    r169 r217  
    163163NSTUB(strrchr, 0xff89b920) 
    164164NSTUB(strtol, 0xff82dd4c) 
     165NSTUB(strtolx, 0xff82db50) 
    165166// Best match: 83% 
    166167NSTUB(time, 0xff87376c) 
  • trunk/platform/sx10/sub/101b/stubs_entry.S

    r169 r217  
    163163NSTUB(strrchr, 0xff89b9c0) 
    164164NSTUB(strtol, 0xff82dd4c) 
     165NSTUB(strtolx, 0xff82db50) 
    165166// Best match: 83% 
    166167NSTUB(time, 0xff87380c) 
  • trunk/platform/sx10/sub/102b/stubs_entry.S

    r169 r217  
    163163NSTUB(strrchr, 0xff89b9c0) 
    164164NSTUB(strtol, 0xff82dd4c) 
     165NSTUB(strtolx, 0xff82db50) 
    165166// Best match: 83% 
    166167NSTUB(time, 0xff87380c) 
  • trunk/platform/sx10/sub/103a/stubs_entry.S

    r169 r217  
    163163NSTUB(strrchr, 0xff89b9c0) 
    164164NSTUB(strtol, 0xff82dd4c) 
     165NSTUB(strtolx, 0xff82db50) 
    165166// Best match: 83% 
    166167NSTUB(time, 0xff87380c) 
  • trunk/platform/sx100is/sub/100b/stubs_entry.S

    r169 r217  
    133133NSTUB(strrchr, 0xffc7661c) 
    134134NSTUB(strtol, 0xffc20338) 
     135NSTUB(strtolx, 0xffc2013c) 
    135136NSTUB(time, 0xffc57f6c) 
    136137NSTUB(vsprintf, 0xffc0e7b4) 
  • trunk/platform/sx100is/sub/100c/stubs_entry.S

    r169 r217  
    133133NSTUB(strrchr, 0xffc76650) 
    134134NSTUB(strtol, 0xffc20338) 
     135NSTUB(strtolx, 0xffc2013c) 
    135136NSTUB(time, 0xffc57fa0) 
    136137NSTUB(vsprintf, 0xffc0e7b4) 
  • trunk/platform/sx110is/sub/100b/stubs_entry.S

    r169 r217  
    159159NSTUB(strrchr, 0xffc74a08) 
    160160NSTUB(strtol, 0xffc1d48c) 
     161NSTUB(strtolx, 0xffc1d290) 
    161162NSTUB(time, 0xffc59470) 
    162163NSTUB(vsprintf, 0xffc0d7f8) 
  • trunk/platform/sx200is/sub/100c/stubs_entry.S

    r169 r217  
    154154NSTUB(strrchr, 0xff88fca8) 
    155155NSTUB(strtol, 0xff82d3f4) 
     156NSTUB(strtolx, 0xff82d1f8) 
    156157// Best match: 86% 
    157158NSTUB(time, 0xff86e4e4) 
  • trunk/platform/tx1/sub/100g/stubs_entry.S

    r106 r217  
    177177// ALT: NSTUB(strrchr, 0xff923bbc) // 8/0 
    178178NSTUB(strtol, 0xff923310) 
     179NSTUB(strtoul, 0xff9234b8) 
    179180NSTUB(taskCreateHookAdd, 0xff92e0dc) 
    180181NSTUB(taskDeleteHookAdd, 0xff92e018) 
  • trunk/platform/tx1/sub/101b/stubs_entry.S

    r106 r217  
    177177// ALT: NSTUB(strrchr, 0xff923bbc) // 8/0 
    178178NSTUB(strtol, 0xff923310) 
     179NSTUB(strtoul, 0xff9234b8) 
    179180NSTUB(taskCreateHookAdd, 0xff92e0dc) 
    180181NSTUB(taskDeleteHookAdd, 0xff92e018) 
  • trunk/tools/sig_ref_dryos_1.txt

    r169 r217  
    104104GetFocusLensSubjectDistance 0xFFCFDB3C 
    105105GetFocusLensSubjectDistanceFromLens 0xFFCFDE48 22 
     106strtolx 0xFFC1FA10 
  • trunk/tools/sig_ref_vxworks_1.txt

    r106 r217  
    136136PostLogicalEventForNotPowerType 0xFFD44F04 
    137137SetCurrentCaptureModeType 0xFFD76E1C 16 
     138strtoul 0xFFEB5814 
  • trunk/tools/signatures_dryos.h

    r169 r217  
    31343134        { -1, -1, -1 }, 
    31353135        /* 19/22 */ 
     3136}; 
     3137 
     3138static FuncSig func_sig_strtolx_1[] = { 
     3139        {   1, 0xe1b09001, 0xfdffffff }, // mov:6:0xE1B09001 
     3140        {   2, 0xe1a0b000, 0xfdffffff }, // mov:6:0xE1A0B000 
     3141        {   3, 0xe59f11f8, 0xfdffffff }, // ldr:4:0xE59F11F8 
     3142        {   4, 0xe04dd004, 0xfdffffff }, // sub:6:0xE24DD004 
     3143        {   5, 0xe1a0400b, 0xfdffffff }, // mov:6:0xE1A0400B 
     3144        {   6, 0xe1a0a001, 0xfdffffff }, // mov:6:0xE3A0A001 
     3145        {   7, 0xe1a08000, 0xfdffffff }, // mov:6:0xE3A08000 
     3146        {   8, 0xe1a06002, 0xfdffffff }, // mov:6:0xE1A06002 
     3147        {   9, 0xe1a05000, 0xfdffffff }, // mov:6:0xE3A05000 
     3148        {  10, 0x1589b000, 0xfdffffff }, // str:4:0x1589B000 
     3149        {  13, 0xe1100040, 0xfdffffff }, // tst:7:0xE3100040 
     3150        {  14, 0x10844001, 0xfdffffff }, // add:6:0x12844001 
     3151        {  15, 0x1a000000, 0xff000000 }, // b, bl:3:0x1AFFFFFA 
     3152        {  17, 0xe150002d, 0xfdffffff }, // cmp:7:0xE350002D 
     3153        {  19, 0x0a000000, 0xff000000 }, // b, bl:3:0x0A000001 
     3154        {  20, 0xe150002b, 0xfdffffff }, // cmp:7:0xE350002B 
     3155        {  21, 0x1a000000, 0xff000000 }, // b, bl:3:0x1A000000 
     3156        {  22, 0xe0844001, 0xfdffffff }, // add:6:0xE2844001 
     3157        {  23, 0xe1560000, 0xfdffffff }, // cmp:7:0xE3560000 
     3158        {  24, 0xe58d4000, 0xfdffffff }, // str:4:0xE58D4000 
     3159        {  25, 0x1a000000, 0xff000000 }, // b, bl:3:0x1A00000E 
     3160        {  27, 0xe1500030, 0xfdffffff }, // cmp:7:0xE3500030 
     3161        {  28, 0x11a0600a, 0xfdffffff }, // mov:6:0x13A0600A 
     3162        {  29, 0x1a000000, 0xff000000 }, // b, bl:3:0x1A000025 
     3163        {  31, 0xe1500078, 0xfdffffff }, // cmp:7:0xE3500078 
     3164        { -1, -1, -1 }, 
     3165        /* 25/32 */ 
    31363166}; 
    31373167 
     
    47354765        { "strrchr", func_sig_strrchr_2 }, 
    47364766        { "strtol", func_sig_strtol_1 }, 
     4767        { "strtolx", func_sig_strtolx_1 }, 
    47374768        { "time", func_sig_time_1 }, 
    47384769        { "time", func_sig_time_2 }, 
  • trunk/tools/signatures_vxworks.h

    r106 r217  
    36203620        { -1, -1, -1 }, 
    36213621        /* 15/16 */ 
     3622}; 
     3623 
     3624static FuncSig func_sig_strtoul_1[] = { 
     3625        {   0, 0xe04dd004, 0xfdffffff }, // sub:6:0xE24DD004 
     3626        {   2, 0xe58d1024, 0xfdffffff }, // str:4:0xE58D1024 
     3627        {   3, 0xe59f6168, 0xfdffffff }, // ldr:4:0xE59F6168 
     3628        {   4, 0xe1a04000, 0xfdffffff }, // mov:6:0xE3A04000 
     3629        {   5, 0xe1a07000, 0xfdffffff }, // mov:6:0xE1A07000 
     3630        {   6, 0xe1a05002, 0xfdffffff }, // mov:6:0xE1A05002 
     3631        {   7, 0xe5966000, 0xfdffffff }, // ldr:4:0xE5966000 
     3632        {   8, 0xe1a09000, 0xfdffffff }, // mov:6:0xE1A09000 
     3633        {  11, 0xe1130028, 0xfdffffff }, // tst:7:0xE3130028 
     3634        {  12, 0x1a000000, 0xff000000 }, // b, bl:3:0x1AFFFFFB 
     3635        {  13, 0xe15b002d, 0xfdffffff }, // cmp:7:0xE35B002D 
     3636        {  14, 0x01a04001, 0xfdffffff }, // mov:6:0x03A04001 
     3637        {  15, 0x0a000000, 0xff000000 }, // b, bl:3:0x0A000000 
     3638        {  16, 0xe15b002b, 0xfdffffff }, // cmp:7:0xE35B002B 
     3639        {  18, 0xe1520000, 0xfdffffff }, // cmp:7:0xE3520000 
     3640        {  19, 0x0a000000, 0xff000000 }, // b, bl:3:0x0A000001 
     3641        {  20, 0xe1520010, 0xfdffffff }, // cmp:7:0xE3520010 
     3642        {  21, 0x1a000000, 0xff000000 }, // b, bl:3:0x1A000008 
     3643        {  22, 0xe15b0030, 0xfdffffff }, // cmp:7:0xE35B0030 
     3644        {  23, 0x1a000000, 0xff000000 }, // b, bl:3:0x1A000006 
     3645        {  25, 0xe1500078, 0xfdffffff }, // cmp:7:0xE3500078 
     3646        {  26, 0x0a000000, 0xff000000 }, // b, bl:3:0x0A000000 
     3647        {  27, 0xe1500058, 0xfdffffff }, // cmp:7:0xE3500058 
     3648        {  29, 0x00899002, 0xfdffffff }, // add:6:0x02899002 
     3649        {  30, 0x01a05010, 0xfdffffff }, // mov:6:0x03A05010 
     3650        {  31, 0xe1550000, 0xfdffffff }, // cmp:7:0xE3550000 
     3651        { -1, -1, -1 }, 
     3652        /* 26/32 */ 
    36223653}; 
    36233654 
     
    55095540        { "strrchr", func_sig_strrchr_2 }, 
    55105541        { "strtol", func_sig_strtol_1 }, 
     5542        { "strtoul", func_sig_strtoul_1 }, 
    55115543        { "taskCreateHookAdd", func_sig_taskCreateHookAdd_1 }, 
    55125544        { "taskDeleteHookAdd", func_sig_taskDeleteHookAdd_1 },