CHDK_DE Vorschauversion  Trunk Rev. 6014
 Alle Datenstrukturen Dateien Funktionen Variablen Typdefinitionen Aufzählungen Aufzählungswerte Makrodefinitionen
filewrite.c-Dateireferenz
#include "lolevel.h"
#include "platform.h"
#include "../../../generic/filewrite.c"
+ Include-Abhängigkeitsdiagramm für filewrite.c:

gehe zum Quellcode dieser Datei

Datenstrukturen

struct  cam_ptp_data_chunk
 
struct  fwt_data_struct
 

Makrodefinitionen

#define MAX_CHUNKS_FOR_FWT   7
 

Funktionen

void _LogCameraEvent (int id, const char *fmt,...)
 
void __attribute__ ((naked, noinline))
 *-------------------------------------------------------------------— Mehr ...
 

Makro-Dokumentation

#define MAX_CHUNKS_FOR_FWT   7

Definiert in Zeile 14 der Datei filewrite.c.

Dokumentation der Funktionen

void __attribute__ ( (naked, noinline)  )

*-------------------------------------------------------------------—

!!

IS_ERROR( hSoundHandle )

IS_ERROR( RetCode )

IS_ERROR( RetCode )

IS_ERROR( RetCode )

IS_ERROR( RetCode )

"MOV R3, #0\n" "STR R3, [R9]\n"

TODO! below is from sd400

"MOV R3, #0\n" "STR R3, [R9]\n"

TODO! below is from sd400

__MovieRecorder_c__100

__MovieRecorder_c__100

Definiert in Zeile 111 der Datei filewrite.c.

111  {
112 asm volatile (
113 // task_FileWrite 0xfc065dc7
114 " push {r3, r4, r5, r6, r7, lr}\n"
115 " ldr r6, =0x09200001\n"
116 " movw r7, #0x477\n"
117 " ldr r5, =0x0003d674\n"
118 " adds r6, #0x12\n"
119 " loc_fc068b94:\n"
120 " mov r1, sp\n"
121 " movs r2, #0\n"
122 " ldr r0, [r5,#20]\n"
123 " blx sub_FC3022D4\n" // j_ReceiveMessageQueue
124 " cbz r0, loc_fc068baa\n"
125 " movs r0, #0\n"
126 " mov r2, r7\n"
127 " ldr r1, =0xfc068c54\n" // *"dwFWrite.c"
128 " blx sub_FC302434\n" // j_DebugAssert
129 " loc_fc068baa:\n"
130 #ifdef FILEWRITE_DEBUG_LOG
131 " ldr r0, [sp]\n"
132 "bl log_fwt_msg\n"
133 #endif
134 " ldr r0, [sp]\n"
135 " ldr r1, [r0]\n"
136 " cmp r1, #0xd\n"
137 " bcs loc_fc068b94\n"
138 " tbb.w [pc,r1]\n"
139 "branchtable_fc068bb2:\n"
140 " .byte((loc_fc068bf8 - branchtable_fc068bb2) / 2)\n" // (case 0)
141 " .byte((loc_fc068bf8 - branchtable_fc068bb2) / 2)\n" // (case 1)
142 " .byte((loc_fc068bf8 - branchtable_fc068bb2) / 2)\n" // (case 2)
143 " .byte((loc_fc068bf8 - branchtable_fc068bb2) / 2)\n" // (case 3)
144 " .byte((loc_fc068bf8 - branchtable_fc068bb2) / 2)\n" // (case 4)
145 " .byte((loc_fc068bf8 - branchtable_fc068bb2) / 2)\n" // (case 5)
146 " .byte((loc_fc068bf8 - branchtable_fc068bb2) / 2)\n" // (case 6)
147 " .byte((loc_fc068bfe - branchtable_fc068bb2) / 2)\n" // (case 7)
148 " .byte((loc_fc068bc4 - branchtable_fc068bb2) / 2)\n" // (case 8)
149 " .byte((loc_fc068bd6 - branchtable_fc068bb2) / 2)\n" // (case 9)
150 " .byte((loc_fc068bf2 - branchtable_fc068bb2) / 2)\n" // (case 10)
151 " .byte((loc_fc068bca - branchtable_fc068bb2) / 2)\n" // (case 11)
152 " .byte((loc_fc068bd0 - branchtable_fc068bb2) / 2)\n" // (case 12)
153 ".align 1\n"
154 " loc_fc068bc4:\n" // case 8 - calls close, not seen in normal shooting
155 " bl sub_fc068d76\n"
156 " b loc_fc068b94\n"
157 " loc_fc068bca:\n" // case 11 - create dir, TODO not patched
158 " bl sub_fc068dc2\n"
159 " b loc_fc068b94\n"
160 " loc_fc068bd0:\n" // case 12 - patch for open, main hook
161 " bl sub_fc068904_my\n"
162 " b loc_fc068b94\n"
163 " loc_fc068bd6:\n" // case 9 - not seen in normal shooting
164 " ldr r1, [r0,#4]\n"
165 " movs r2, #0\n"
166 " mov r4, r0\n"
167 " ldr r0, [r5,#8]\n"
168 " bl sub_fc37a9cc\n" // -> fwt_lseek ?
169 " adds r0, r0, #1\n"
170 " bne loc_fc068b94\n"
171 " movs r0, #7\n"
172 " mov r1, r4\n"
173 " str r6, [r4,#0x14]\n"
174 " bl sub_fc06888a\n"
175 " b loc_fc068b94\n"
176 " loc_fc068bf2:\n" // case 10 - cache flush, patch for ignore write
177 " bl sub_fc068e20\n"
178 " b loc_fc068b94\n"
179 " loc_fc068bf8:\n" // case 0-6 - write stage
180 " bl sub_fc068e92_my\n" //_my ?????
181 " b loc_fc068b94\n"
182 " loc_fc068bfe:\n" // case 7 - close stage
183 " bl sub_fc068a36_my\n"
184 " b loc_fc068b94\n"
185 ".ltorg\n"
186  );
187 }
void _LogCameraEvent ( int  id,
const char *  fmt,
  ... 
)