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

77  {
78 asm volatile (
79 " STMFD SP!, {R1-R5,LR} \n"
80 #ifdef FILEWRITE_DEBUG_LOG
81 "bl log_fwt_start\n"
82 #endif
83 " LDR R5, =0xAE3C \n"
84 
85 "loc_FFAC8BC0:\n"
86 " MOV R2, #0 \n"
87 " LDR R0, [R5, #0x14] \n"
88 " ADD R1, SP, #8 \n"
89 " BL sub_006B8568 /*_ReceiveMessageQueue*/ \n"
90 " CMP R0, #0 \n"
91 " LDRNE R2, =0x476 \n"
92 " LDRNE R1, =0xFFAC8D2C /*'dwFWrite.c'*/ \n"
93 " MOVNE R0, #0 \n"
94 " BLNE _DebugAssert \n"
95 #ifdef FILEWRITE_DEBUG_LOG
96 "ldr r0, [sp,#8]\n"
97 "bl log_fwt_msg\n"
98 #endif
99 " LDR R0, [SP, #8] \n"
100 " LDR R1, [R0] \n"
101 " CMP R1, #0xD \n"
102 " ADDCC PC, PC, R1, LSL#2 \n"
103 " B loc_FFAC8BC0 \n"
104 " B loc_FFAC8CEC \n"
105 " B loc_FFAC8CEC \n"
106 " B loc_FFAC8CEC \n"
107 " B loc_FFAC8CEC \n"
108 " B loc_FFAC8CEC \n"
109 " B loc_FFAC8CEC \n"
110 " B loc_FFAC8CEC \n"
111 " B loc_FFAC8CF4 \n"
112 " B loc_FFAC8C2C \n"
113 " B loc_FFAC8CB4 \n"
114 " B loc_FFAC8CE4 \n"
115 " B loc_FFAC8CA4 \n"
116 " B loc_FFAC8CAC \n"
117 
118 "loc_FFAC8C2C:\n"
119 " MOV R0, #0 \n"
120 " STR R0, [SP] \n"
121 
122 "loc_FFAC8C34:\n"
123 " LDR R0, [R5, #0x14] \n"
124 " MOV R1, SP \n"
125 " BL sub_006B87F0 /*_GetNumberOfPostedMessages*/ \n"
126 " LDR R0, [SP] \n"
127 " CMP R0, #0 \n"
128 " BEQ loc_FFAC8C60 \n"
129 " LDR R0, [R5, #0x14] \n"
130 " MOV R2, #0 \n"
131 " ADD R1, SP, #4 \n"
132 " BL sub_006B8568 /*_ReceiveMessageQueue*/ \n"
133 " B loc_FFAC8C34 \n"
134 
135 "loc_FFAC8C60:\n"
136 " LDR R0, [R5, #8] \n"
137 " MOV R4, R5 \n"
138 " CMN R0, #1 \n"
139 " BEQ loc_FFAC8C98 \n"
140 " BL _Close \n"
141 " MVN R0, #0 \n"
142 " STR R0, [R4, #8] \n"
143 " MOV R1, #0 \n"
144 " MOV R0, #0x48 \n"
145 " BL sub_FF8B394C \n"
146 " LDR R0, =0xFC8C4 \n"
147 " BL sub_FF830778 \n"
148 " MOV R1, #0 \n"
149 " BL sub_FF82E5F8 \n"
150 
151 "loc_FFAC8C98:\n"
152 " LDR R0, [R4, #0x10] \n"
153 " BL _GiveSemaphore \n"
154 " B loc_FFAC8BC0 \n"
155 
156 "loc_FFAC8CA4:\n"
157 " BL sub_FFAC8F4C \n"
158 " B loc_FFAC8BC0 \n"
159 
160 "loc_FFAC8CAC:\n"
161 " BL sub_FFAC87E0_my \n" // --> Patched. Old value = 0xFFAC87E0. msg 12 - open, main hook
162 " B loc_FFAC8BC0 \n"
163 
164 "loc_FFAC8CB4:\n"
165 " LDR R1, [R0, #4] \n"
166 " MOV R4, R0 \n"
167 " LDR R0, [R5, #8] \n"
168 " MOV R2, #0 \n"
169 " BL _lseek \n"
170 " CMN R0, #1 \n"
171 " LDREQ R0, =0x9200013 \n"
172 " MOVEQ R1, R4 \n"
173 " STREQ R0, [R4, #0x14] \n"
174 " MOVEQ R0, #7 \n"
175 " BLEQ sub_FFAC8718 \n"
176 " B loc_FFAC8BC0 \n"
177 
178 "loc_FFAC8CE4:\n"
179 " BL sub_FFAC8FEC \n"
180 " B loc_FFAC8BC0 \n"
181 
182 "loc_FFAC8CEC:\n"
183 " BL sub_FFAC9088_my \n" // --> Patched. Old value = 0xFFAC9088. msg 0-6 - write chunk
184 " B loc_FFAC8BC0 \n"
185 
186 "loc_FFAC8CF4:\n"
187 " BL sub_FFAC89B8_my \n" // --> Patched. Old value = 0xFFAC89B8. msg 0-7 - close
188 " B loc_FFAC8BC0 \n"
189 );
190 }
void _LogCameraEvent ( int  id,
const char *  fmt,
  ... 
)