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 __attribute__ ((naked, noinline))
 *-------------------------------------------------------------------— Mehr ...
 

Makro-Dokumentation

#define MAX_CHUNKS_FOR_FWT   7

Definiert in Zeile 11 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

ASM1989 -> In sx200:FF857190 //"Mounter.c"

ASM1989 -> In sx200:FF81B284 // DebugAssert

Definiert in Zeile 56 der Datei filewrite.c.

56  {
57 asm volatile (
58 " push {r2, r3, r4, r5, r6, lr}\n"
59 " ldr r5, =0x00021500\n"
60 "loc_fc0640b0:\n"
61 " movs r2, #0\n"
62 " add r1, sp, #4\n"
63 " ldr r0, [r5, #0x10]\n"
64 " blx sub_fc29b440\n" // j_ReceiveMessageQueue
65 " cbz r0, loc_fc0640c8\n"
66 " movs r0, #0\n"
67 " movw r2, #0x3f6\n"
68 " ldr r1, =0xfc064230\n" // *"dwFWrite.c"
69 " blx sub_fc29b538\n" // j_DebugAssert
70 "loc_fc0640c8:\n"
71 " ldr r0, [sp, #4]\n"
72 " ldr r1, [r0]\n"
73 " cmp r1, #0xd\n"
74 " bhs loc_fc0640b0\n"
75 " tbb [pc, r1]\n" // (jumptable r1 13 elements)
76 "branchtable_fc0640d4:\n"
77 " .byte((loc_fc06416e - branchtable_fc0640d4) / 2)\n" // (case 0)
78 " .byte((loc_fc06416e - branchtable_fc0640d4) / 2)\n" // (case 1)
79 " .byte((loc_fc06416e - branchtable_fc0640d4) / 2)\n" // (case 2)
80 " .byte((loc_fc06416e - branchtable_fc0640d4) / 2)\n" // (case 3)
81 " .byte((loc_fc06416e - branchtable_fc0640d4) / 2)\n" // (case 4)
82 " .byte((loc_fc06416e - branchtable_fc0640d4) / 2)\n" // (case 5)
83 " .byte((loc_fc06416e - branchtable_fc0640d4) / 2)\n" // (case 6)
84 " .byte((loc_fc064174 - branchtable_fc0640d4) / 2)\n" // (case 7)
85 " .byte((loc_fc0640e2 - branchtable_fc0640d4) / 2)\n" // (case 8)
86 " .byte((loc_fc06410c - branchtable_fc0640d4) / 2)\n" // (case 9)
87 " .byte((loc_fc06412c - branchtable_fc0640d4) / 2)\n" // (case 10)
88 " .byte((loc_fc0640e8 - branchtable_fc0640d4) / 2)\n" // (case 11)
89 " .byte((loc_fc064106 - branchtable_fc0640d4) / 2)\n" // (case 12)
90 ".align 1\n"
91 "loc_fc0640e2:\n" // case 8 - calls close, not seen in normal shooting
92 " bl sub_fc0642d0\n"
93 " b loc_fc0640b0\n"
94 "loc_fc0640e8:\n" // case 11 - create dir, TODO not patched
95 " mov r4, r0\n"
96 " adds r0, #0x58\n"
97 " mov r6, r0\n"
98 " bl sub_fc307d3a\n"
99 " movs r1, #0\n"
100 " bl sub_fc06c0c6\n"
101 " ldr r0, [r4, #0xc]\n"
102 " bl sub_fc0ba11e\n"
103 " mov r0, r6\n"
104 " bl sub_fc3083f2\n" // PrepareDirectory_0
105 " b loc_fc064156\n"
106 "loc_fc064106:\n" // case 12 - patch for open, main hook
107 //" bl sub_fc063eac\n"
108 " bl sub_fc063eac_my\n" // --->>
109 " b loc_fc0640b0\n"
110 "loc_fc06410c:\n" // case 9 - not seen in normal shooting?
111 " ldr r1, [r0, #4]\n"
112 " movs r2, #0\n"
113 " mov r4, r0\n"
114 " ldr r0, [r5, #4]\n"
115 " bl _lseek\n"
116 " adds r0, r0, #1\n"
117 " bne loc_fc0640b0\n"
118 " ldr r0, =0x09200001\n"
119 " mov r1, r4\n"
120 " adds r0, #0x12\n"
121 " str r0, [r4, #0x10]\n"
122 " movs r0, #7\n"
123 " bl sub_fc063e38\n"
124 " b loc_fc0640b0\n"
125 "loc_fc06412c:\n" // case 10 - cache flush, patch for ignore write
126 " mov r4, r0\n"
127 " ldrsb.w r0, [r0, #0x58]\n"
128 " cmp r0, #0\n"
129 " beq loc_fc0640b0\n"
130 " strb.w r0, [sp]\n"
131 " movs r0, #0\n"
132 " strb.w r0, [sp, #1]\n"
133 " add.w r0, r4, #0x58\n"
134 " mov r6, r0\n"
135 " bl sub_fc307d3a\n"
136 " movs r1, #0\n"
137 " bl sub_fc06c0c6\n"
138 " mov r0, sp\n"
139 " bl sub_fc0ba12a\n"
140 "loc_fc064156:\n"
141 " mov r0, r6\n"
142 " bl sub_fc307d3a\n"
143 " ldr r1, [r5, #0x1c]\n"
144 " bl sub_fc06c124\n"
145 " ldr r1, [r5, #0x14]\n"
146 " cmp r1, #0\n"
147 " beq loc_fc0640b0\n"
148 " ldr r0, [r4, #0x10]\n"
149 " blx r1\n"
150 " b loc_fc0640b0\n"
151 "loc_fc06416e:\n" // case 0-6 - write stage
152 //" bl sub_fc064314\n"
153 " bl sub_fc064314_my\n" // --->>
154 " b loc_fc0640b0\n"
155 "loc_fc064174:\n" // case 7 - close stage
156 //" bl sub_fc063fb6\n"
157 " bl sub_fc063fb6_my\n" // --->>
158 " b loc_fc0640b0\n"
159 ".ltorg\n"
160  );
161 }