root/platform/g5x/sub/100c/stubs_entry_2.S

/* [<][>][^][v][top][bottom][index][help] */
   1 #include "stubs_asm.h"
   2 
   3 // BEWARE: thumb functions NEED the thumb bit in the below list
   4 
   5 #define NULL_SUB 0xFC066A49 // bx lr
   6 
   7 NHSTUB(EnterToCompensationEVF                 ,0xFC2D38E5)
   8 NHSTUB(ExitFromCompensationEVF                ,0xFC2D3927)
   9 NHSTUB(ExpCtrlTool_StartContiAE               ,0xFC2CDB5B)
  10 NHSTUB(ExpCtrlTool_StopContiAE                ,0xFC2CDD4D)
  11 NHSTUB(Feof_Fut                               ,0xFC3B8FA1)
  12 NHSTUB(Fflush_Fut                             ,0xFC3B8FC9)
  13 NHSTUB(GetDrive_TotalClusters                 ,0xFC3B7353) // function immediately before GetDrive_FreeClusters in ROM
  14 NHSTUB(GetFocusLensSubjectDistanceFromLens    ,0xFC3BA1E7)
  15 NHSTUB(GetImageFolder                         ,0xfc39d619)
  16 NHSTUB(MakeSDCardBootable                     ,0xFC3B6873)
  17 NHSTUB(RenameFile_Fut                         ,0xFC3B8D51)
  18 NHSTUB(SetFileTimeStamp                       ,0xFC3B5ECB)
  19 NHSTUB(TurnOffBackLight                       ,0xFC15BB35)  // Does not do anything?
  20 NHSTUB(TurnOnBackLight                        ,0xFC15BB31)  // Does not do anything?
  21 NHSTUB(apex2us                                ,0xfc25f5cb)
  22 NHSTUB(err_init_task                          ,0xFC06647B)
  23 NHSTUB(mkdir                                  ,0xFC3B5F83)
  24 NHSTUB(realloc                                ,0xFC5E5321)
  25 NHSTUB(reboot_fw_update                       ,0xFC28B97D)
  26 NHSTUB(CancelHPTimer                          ,0xFC165D89)
  27 
  28 NHSTUB(VTMLock                                ,0xFC3BE383)
  29 NHSTUB(VTMUnlock                              ,0xFC3BE5AB)
  30 
  31 NHSTUB(GetActiveViewportBuffer                ,0xfc108e67)
  32 
  33 NHSTUB(displayblankscreen,                     0xFC3532CF)
  34 NHSTUB(undisplayblankscreen,                   0xFC35336D)
  35 
  36 // Does not work - use workaround in lib.c
  37 IGNORE(Restart)
  38 //NHSTUB(Restart                                ,0xFC0C306F)
  39 
  40 // Ignore event proc versions, use inner functions from wrapper
  41 IGNORE(PutInNdFilter)
  42 IGNORE(PutOutNdFilter)
  43 IGNORE(MoveFocusLensToDistance)
  44 NHSTUB(PutInNdFilter_FW                       ,0xfc1ca7fb)
  45 NHSTUB(PutOutNdFilter_FW                      ,0xfc1ca825)
  46 NHSTUB(MoveFocusLensToDistance_FW             ,0xfc667c0f)
  47 
  48 //// required because DryOS >=54 functions assert on unitialized event flag, sem etc
  49 //// see https://chdk.setepontos.com/index.php?topic=12516.0
  50 //NHSTUB(init_focus_eventflag                   ,0xfc667e0b) // InitializeAdjustmentSystem->fc662948->fc667e0a event flag matches MoveFocusLensToDistance
  51 //NHSTUB(init_nd_eventflag                      ,0xfc667f1d) // InitializeAdjustmentSystem->fc662948->fc667f1c event flag matches PutInNdFilter
  52 NHSTUB(CreateBinarySemaphoreStrictly          ,0xbfe15557)
  53 
  54 // gets raw address and other stuff for next shot, stores in structure pointed to by r1
  55 // via sub_fc08ec20, sub_fc1e56a6 called from capt_seq_task. Calls sub_fc0d3b56 to get raw address
  56 NHSTUB(captseq_raw_addr_init                  ,0xfc09bf49)
  57 
  58 // To find these values it is easiest to use the Ghidra de-compile window.
  59    DEF(debug_logging_ptr                      ,0x00022078)  // RAM address of function called by mzrm_sendmsg for logging
  60                                                             // To find debug_logging_ptr:
  61                                                             //   Start at the mzrm_sendmsg function.
  62                                                             //   Find the function call via memory pointer with first parameter = "SendMsg   : %d\n" string
  63                                                             //   debug_logging_ptris the memory address that contains the pointer used to make this function call
  64    DEF(debug_logging_flag                     ,0x00022070)  // RAM address of flag to enable logging call
  65                                                             // To find debug_logging_flag:
  66                                                             //   Just before the debug_logging_ptrfound above there is an if statement that tests both a memory value and
  67                                                             //   the debug_logging_ptrvalue.
  68                                                             //   debug_logging_flag is the memory address of the flag value in the if statement.
  69    DEF(mzrm_sendmsg_ret_adr                   ,0xfc361f91)  // Thumb address to check against LR register to detect mzrm_sendmag call from Canon UI update
  70                                                             //   This is the address immediately after the call to debug_logging_ptrin mzrm_sendmsg (+1 for thumb)
  71    DEF(hdmi_buffer_check_adr                  ,0x41141000)  // For HDMI output we only want to flag UI updates when layer 0 is set to this buffer address
  72                                                             //   Start at the transfer_src_overlay function, then go to the last function called
  73                                                             //   Now find the function call just after the "MakeOsdVram.c" DebugAssert call.
  74                                                             //   The value is the second parameter to this function.
  75 
  76 // These don't exist
  77 NHSTUB(PT_PlaySound                           ,NULL_SUB)
  78 NHSTUB(ScreenLock                             ,NULL_SUB)
  79 NHSTUB(ScreenUnlock                           ,NULL_SUB)
  80 NHSTUB(SetFileAttributes                      ,NULL_SUB)
  81 NHSTUB(SetZoomActuatorSpeedPercent            ,NULL_SUB)
  82 NHSTUB(UnsetZoomForMovie                      ,NULL_SUB)
  83 NHSTUB(WriteSDCard                            ,NULL_SUB)

/* [<][>][^][v][top][bottom][index][help] */