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 16 der Datei filewrite.c.

Dokumentation der Funktionen

void __attribute__ ( (naked, noinline)  )

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

!!

Definiert in Zeile 78 der Datei filewrite.c.

78  {
79 asm volatile (
80 " STMFD SP!, {R1-R5,LR} \n"
81 #ifdef FILEWRITE_DEBUG_LOG
82 "bl log_fwt_start\n"
83 #endif
84 " LDR R5, =0xAC30 \n"
85 
86 "loc_FFAD982C:\n"
87 " MOV R2, #0 \n"
88 " LDR R0, [R5, #0x14] \n"
89 " ADD R1, SP, #8 \n"
90 " BL sub_FF838728 /*_ReceiveMessageQueue*/ \n"
91 " CMP R0, #0 \n"
92 " LDRNE R2, =0x405 \n"
93 " LDRNE R1, =0xFFAD9998 /*'dwFWrite.c'*/ \n"
94 " MOVNE R0, #0 \n"
95 " BLNE _DebugAssert \n"
96 #ifdef FILEWRITE_DEBUG_LOG
97 "ldr r0, [sp,#8]\n"
98 "bl log_fwt_msg\n"
99 #endif
100 " LDR R0, [SP, #8] \n"
101 " LDR R1, [R0] \n"
102 " CMP R1, #0xD \n"
103 " ADDCC PC, PC, R1, LSL#2 \n"
104 " B loc_FFAD982C \n"
105 " B loc_FFAD9958 \n"
106 " B loc_FFAD9958 \n"
107 " B loc_FFAD9958 \n"
108 " B loc_FFAD9958 \n"
109 " B loc_FFAD9958 \n"
110 " B loc_FFAD9958 \n"
111 " B loc_FFAD9958 \n"
112 " B loc_FFAD9960 \n"
113 " B loc_FFAD9898 \n"
114 " B loc_FFAD9920 \n"
115 " B loc_FFAD9950 \n"
116 " B loc_FFAD9910 \n"
117 " B loc_FFAD9918 \n"
118 
119 "loc_FFAD9898:\n"
120 " MOV R0, #0 \n"
121 " STR R0, [SP] \n"
122 
123 "loc_FFAD98A0:\n"
124 " LDR R0, [R5, #0x14] \n"
125 " MOV R1, SP \n"
126 " BL sub_FF8389BC /*_GetNumberOfPostedMessages*/ \n"
127 " LDR R0, [SP] \n"
128 " CMP R0, #0 \n"
129 " BEQ loc_FFAD98CC \n"
130 " LDR R0, [R5, #0x14] \n"
131 " MOV R2, #0 \n"
132 " ADD R1, SP, #4 \n"
133 " BL sub_FF838728 /*_ReceiveMessageQueue*/ \n"
134 " B loc_FFAD98A0 \n"
135 
136 "loc_FFAD98CC:\n"
137 " LDR R0, [R5, #8] \n"
138 " MOV R4, R5 \n"
139 " CMN R0, #1 \n"
140 " BEQ loc_FFAD9904 \n"
141 " BL _Close \n"
142 " MVN R0, #0 \n"
143 " STR R0, [R4, #8] \n"
144 " MOV R1, #0 \n"
145 " MOV R0, #0x48 \n"
146 " BL sub_FF8BB258 \n"
147 " LDR R0, =0xFCCF0 \n"
148 " BL sub_FF831430 \n"
149 " MOV R1, #0 \n"
150 " BL sub_FF82F310 \n"
151 
152 "loc_FFAD9904:\n"
153 " LDR R0, [R4, #0x10] \n"
154 " BL _GiveSemaphore \n"
155 " B loc_FFAD982C \n"
156 
157 "loc_FFAD9910:\n"
158 " BL sub_FFAD9BB8 \n"
159 " B loc_FFAD982C \n"
160 
161 "loc_FFAD9918:\n"
162 " BL sub_FFAD9434_my \n" // --> Patched. Old value = 0xFFAD9434. msg 12 - open, main hook
163 " B loc_FFAD982C \n"
164 
165 "loc_FFAD9920:\n"
166 " LDR R1, [R0, #4] \n"
167 " MOV R4, R0 \n"
168 " LDR R0, [R5, #8] \n"
169 " MOV R2, #0 \n"
170 " BL _lseek \n"
171 " CMN R0, #1 \n"
172 " LDREQ R0, =0x9200013 \n"
173 " MOVEQ R1, R4 \n"
174 " STREQ R0, [R4, #0x14] \n"
175 " MOVEQ R0, #7 \n"
176 " BLEQ sub_FFAD936C \n"
177 " B loc_FFAD982C \n"
178 
179 "loc_FFAD9950:\n"
180 " BL sub_FFAD9C58 \n"
181 " B loc_FFAD982C \n"
182 
183 "loc_FFAD9958:\n"
184 " BL sub_FFAD9CF4_my \n" // --> Patched. Old value = 0xFFAD9CF4. msg 0-6 - write chunk
185 " B loc_FFAD982C \n"
186 
187 "loc_FFAD9960:\n"
188 " BL sub_FFAD9610_my \n" // --> Patched. Old value = 0xFFAD9610. msg 7 - close
189 " B loc_FFAD982C \n"
190 );
191 }
void _LogCameraEvent ( int  id,
const char *  fmt,
  ... 
)