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))
 

Makro-Dokumentation

#define MAX_CHUNKS_FOR_FWT   7

Definiert in Zeile 12 der Datei filewrite.c.

Dokumentation der Funktionen

void __attribute__ ( (naked, noinline)  )

!!

Definiert in Zeile 110 der Datei filewrite.c.

110  {
111 asm volatile (
112 " push {r3, r4, r5, r6, r7, lr}\n"
113 #ifdef FILEWRITE_DEBUG_LOG
114 "bl log_fwt_start\n"
115 #endif
116 " ldr r6, =0x09200001\n"
117 " movw r7, #0x428\n"
118 " ldr r5, =0x00026560\n"
119 " adds r6, #0x12\n"
120 "loc_fc06b328:\n"
121 " mov r1, sp\n"
122 " movs r2, #0\n"
123 " ldr r0, [r5, #0x10]\n"
124 " blx sub_fc2ef8ec\n" // j_ReceiveMessageQueue
125 " cbz r0, loc_fc06b33e\n"
126 " movs r0, #0\n"
127 " mov r2, r7\n"
128 " ldr r1, =0xfc06b450\n" // *"dwFWrite.c"
129 " blx sub_fc2ef9e4\n" // j_DebugAssert
130 "loc_fc06b33e:\n"
131 #ifdef FILEWRITE_DEBUG_LOG
132 "ldr r0, [sp]\n"
133 "bl log_fwt_msg\n"
134 #endif
135 " ldr r0, [sp]\n"
136 " ldr r1, [r0]\n"
137 " cmp r1, #0xd\n"
138 " bhs loc_fc06b328\n"
139 " tbb [pc, r1]\n" // (jumptable r1 13 elements)
140 "branchtable_fc06b34a:\n"
141 " .byte((loc_fc06b38c - branchtable_fc06b34a) / 2)\n" // (case 0)
142 " .byte((loc_fc06b38c - branchtable_fc06b34a) / 2)\n" // (case 1)
143 " .byte((loc_fc06b38c - branchtable_fc06b34a) / 2)\n" // (case 2)
144 " .byte((loc_fc06b38c - branchtable_fc06b34a) / 2)\n" // (case 3)
145 " .byte((loc_fc06b38c - branchtable_fc06b34a) / 2)\n" // (case 4)
146 " .byte((loc_fc06b38c - branchtable_fc06b34a) / 2)\n" // (case 5)
147 " .byte((loc_fc06b38c - branchtable_fc06b34a) / 2)\n" // (case 6)
148 " .byte((loc_fc06b392 - branchtable_fc06b34a) / 2)\n" // (case 7)
149 " .byte((loc_fc06b358 - branchtable_fc06b34a) / 2)\n" // (case 8)
150 " .byte((loc_fc06b36a - branchtable_fc06b34a) / 2)\n" // (case 9)
151 " .byte((loc_fc06b386 - branchtable_fc06b34a) / 2)\n" // (case 10)
152 " .byte((loc_fc06b35e - branchtable_fc06b34a) / 2)\n" // (case 11)
153 " .byte((loc_fc06b364 - branchtable_fc06b34a) / 2)\n" // (case 12)
154 ".align 1\n"
155 "loc_fc06b358:\n" // case 8 - calls close, not seen in normal shooting
156 " bl sub_fc06b50a\n"
157 " b loc_fc06b328\n"
158 "loc_fc06b35e:\n" // case 11 - create dir, TODO not patched
159 " bl sub_fc06b556\n"
160 " b loc_fc06b328\n"
161 "loc_fc06b364:\n" // case 12 - patch for open, main hoook
162 " bl sub_fc06b0cc_my\n"
163 " b loc_fc06b328\n"
164 "loc_fc06b36a:\n" // case 9 - not seen in normal shooting
165 " ldr r1, [r0, #4]\n"
166 " movs r2, #0\n"
167 " mov r4, r0\n"
168 " ldr r0, [r5, #4]\n"
169 " bl _lseek\n" // -> fwt_lseek ?
170 " adds r0, r0, #1\n"
171 " bne loc_fc06b328\n"
172 " movs r0, #7\n"
173 " mov r1, r4\n"
174 " str r6, [r4, #0x14]\n"
175 " bl sub_fc06b054\n"
176 " b loc_fc06b328\n"
177 "loc_fc06b386:\n" // case 10 - cache flush, patch for ignore write
178 " bl sub_fc06b5aa\n"
179 " b loc_fc06b328\n"
180 "loc_fc06b38c:\n" // case 0-6 - write stage
181 " bl sub_fc06b602_my\n"
182 " b loc_fc06b328\n"
183 "loc_fc06b392:\n" // case 7 - close stage
184 " bl sub_fc06b1f2_my\n"
185 " b loc_fc06b328\n"
186 ".ltorg\n"
187  );
188 }
void _LogCameraEvent ( int  id,
const char *  fmt,
  ... 
)