1 #ifndef LOLEVEL_H
2 #define LOLEVEL_H
3
4 #ifndef LOW_LEVEL
5 #error File can be included when platform is built only!
6 #endif
7
8 #ifndef __arm__
9 #error File can be included in ARM mode only!
10 #endif
11
12
13 extern long *_GetSystemTime(long *t);
14 extern long _GetZoomLensCurrentPosition();
15 extern long _GetZoomLensCurrentPoint();
16 extern long _MoveZoomLensWithPoint(short *pos);
17 extern long _SetZoomActuatorSpeedPercent(short *perc);
18 extern volatile long zoom_busy;
19 extern long _GetFocusLensCurrentPosition();
20 extern long _GetFocusLensSubjectDistance();
21 extern long _GetFocusLensSubjectDistanceFromLens();
22 extern void _MoveFocusLensToDistance(short *dist);
23 #ifdef CAM_AV_OVERRIDE_IRIS_FIX
24 extern int _MoveIrisWithAv(short*);
25 #endif
26 extern void _PutInNdFilter();
27 extern void _PutOutNdFilter();
28 extern short _get_nd_value(void);
29 extern short _get_current_nd_value(void);
30 extern volatile long focus_busy;
31 extern long _GetCurrentShutterSpeed();
32 extern long _GetCurrentAvValue();
33 extern short _GetUsableMinAv(void);
34 extern short _GetUsableMaxAv(void);
35 extern long _GetCurrentTargetDistance();
36 extern long _GetPropertyCase(long opt_id, void *buf, long bufsize);
37 extern long _SetPropertyCase(long opt_id, void *buf, long bufsize);
38 extern short _PTM_GetCurrentItem(long id);
39 extern long _IsStrobeChargeCompleted();
40 extern long _VbattGet();
41 extern int _GetBatteryTemperature();
42 extern int _GetCCDTemperature();
43 extern int _GetOpticalTemperature();
44 #ifdef CAM_DRYOS
45 extern int _GetAdChValue(int) ;
46 #else
47 extern int _GetAdChValue(int*) ;
48 #endif
49 extern void _PT_PlaySound(short , void*, int unk);
50 extern void _RefreshPhysicalScreen(long f);
51 extern void _Unmount_FileSystem();
52 extern void _Mount_FileSystem();
53 extern void _SleepTask(long msec);
54 extern int _CreateTask (const char *name, int prio, int stack_size ,
55 void *entry, long parm );
56 extern void _SleepTask(long msec);
57 extern void __attribute__((noreturn)) _ExitTask();
58 extern int _taskNameToId(char* taskName);
59 extern const char *_taskName(int taskID);
60 extern int _taskIdListGet(int *idlist,int max);
61 extern void _taskSuspend(int taskId);
62 extern void _taskResume(int taskId);
63 extern int _errnoOfTaskGet(int tid);
64
65 extern long _SetEventFlag(void *flag, long what);
66 extern long _CheckAnyEventFlag(void *flag, long mask, long *res);
67 extern long _GetEventFlagValue(void *flag, long *res);
68
69 extern long _ReceiveMessageQueue(void *msgq, long *dst, long unk1 );
70
71
72 extern long _GetParameterData(long id, void *buf, long size);
73 extern long _SetParameterData(long id, void *buf, long size);
74 #ifdef CAM_DRYOS_2_3_R47
75 extern void _MakeSDCardBootable(int driveno);
76 #else
77 extern void _UpdateMBROnFlash(int driveno, long offset, char *str);
78 #endif
79
80
81
82 extern int _open (const char *name, int flags, int mode );
83 extern int _close (int fd);
84
85
86 extern int _lseek (int fd, long offset, int whence);
87 extern long _mkdir(const char *dirname);
88
89 extern int _Open (const char *name, int flags, int mode );
90 extern int _Close (int fd);
91 extern int _Write (int fd, const void *buffer, long nbytes);
92 extern int _Read (int fd, void *buffer, long nbytes);
93 extern int _Lseek (int fd, long offset, int whence);
94 extern int _Remove(const char *name);
95
96 extern long _Fopen_Fut(const char *filename, const char *mode);
97 extern long _Fclose_Fut(long file);
98 extern long _Fread_Fut(void *buf, long elsize, long count, long f);
99 extern long _Fwrite_Fut(const void *buf, long elsize, long count, long f);
100 extern long _Fseek_Fut(long file, long offset, long whence);
101 extern long _Fflush_Fut(long file);
102 extern long _Feof_Fut(long file);
103 extern long _Fflush_Fut(long file);
104 extern char *_Fgets_Fut(char *buf, int n, long f);
105 extern long _RenameFile_Fut(const char *oldname, const char *newname);
106 extern long _DeleteFile_Fut(const char *name);
107 extern long _MakeDirectory_Fut(const char *name,int unk);
108 extern long _DeleteDirectory_Fut(const char *name);
109
110 extern int _isdigit(int c);
111 extern int _isspace(int c);
112 extern int _isalpha(int c);
113 extern int _isupper(int c);
114 extern int _islower(int c);
115 extern int _ispunct(int c);
116 extern int _isxdigit(int c);
117
118 extern long _strlen(const char *s);
119 extern int _strcmp(const char *s1, const char *s2);
120 extern int _strncmp(const char *s1, const char *s2, long n);
121 extern char *_strchr(const char *s, int c);
122 extern char *_strcpy(char *dest, const char *src);
123 extern char *_strncpy(char *dest, const char *src, long n);
124 extern char *_strcat(char *dest, const char *app);
125 extern char *_strrchr(const char *s, int c);
126 extern char *_strpbrk(const char *s, const char *accept);
127
128 extern long _strtol(const char *nptr, char **endptr, int base);
129 extern unsigned long _strtoul(const char *nptr, char **endptr, int base);
130
131
132 extern long _strtolx(const char *nptr, char **endptr, int base, int mode);
133
134 extern int _tolower(int c);
135 extern int _toupper(int c);
136
137 extern int _vsprintf(char *buf, const char *fmt, __builtin_va_list va_list);
138
139
140
141
142
143
144 extern int _printf(char *buf, ...);
145
146 extern void *_malloc(long size);
147 extern void _free(void *p);
148 extern void *_AllocateUncacheableMemory(long size);
149 extern void _FreeUncacheableMemory(void *p);
150
151 extern void *_memchr(const void *s, int c, int n);
152 extern void *_memcpy(void *dest, const void *src, long n);
153 extern void *_memset(void *s, int c, int n);
154 extern int _memcmp(const void *s1, const void *s2, long n);
155
156 extern void _qsort (void *__base, int __nelem, int __size, int (*__cmp)(const void *__e1, const void *__e2));
157
158
159 extern long _taskLock();
160 extern long _taskUnlock();
161 extern int _taskCreateHookAdd (void *createHook);
162 extern int _taskDeleteHookAdd (void *deleteHook);
163 extern long _iosDevAdd(void*,void*,int);
164 extern long _iosDevDelete(void*);
165 extern long _iosDrvInstall(void*,void*,void*,void*,void*,void*,void*);
166 extern int _TakeSemaphore(int sem, int timeout);
167 extern void _GiveSemaphore(int sem);
168
169
170 extern const char aPhysw;
171 extern long physw_run;
172 extern long physw_sleep_delay;
173 extern long _kbd_p1_f();
174 extern void _kbd_p2_f();
175 extern void _kbd_pwr_on();
176 extern void _kbd_pwr_off();
177 extern void _kbd_read_keys_r2(void*p);
178 extern long physw_status[3], physw_copy[3];
179
180 extern void __attribute__((naked,noinline)) mykbd_task();
181 extern void capt_seq_task();
182 extern void dvlp_seq_task();
183 extern void movie_record_task();
184 extern void init_file_modules_task();
185 extern void exp_drv_task();
186 extern void filewritetask();
187
188 void kbd_fetch_data(long *dst);
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205 extern long playrec_mode;
206
207 extern void *led_table;
208 extern void _UniqueLedOn(void *addr, long brightness);
209 extern void _UniqueLedOff(void *addr);
210 struct led_control {int led_num; int action; int brightness; int blink_count;};
211 extern int _PostLEDMessage(struct led_control *);
212 extern int _LEDDrive(int led, int action);
213
214
215 extern long _LockMainPower();
216 extern long _UnlockMainPower();
217 extern void _SetAutoShutdownTime(int t);
218
219
220
221
222
223
224
225
226
227
228
229 extern int _PostLogicalEventForNotPowerType(int event, int unk);
230 extern int _PostLogicalEventToUI(int event, int unk);
231
232
233
234
235
236
237 extern void _SetLogicalEventActive(unsigned event, unsigned state);
238
239 extern void _SetScriptMode(unsigned mode);
240
241
242
243 extern int _rand(void);
244 extern void* _srand(unsigned int seed);
245
246 extern double __log(double x);
247 extern double __log10(double x);
248 extern double __pow(double x, double y);
249 extern double __sqrt(double x);
250
251
252 extern int _utime(const char *file, void *newTimes);
253 extern unsigned long _time( unsigned long *timer);
254 extern void *_localtime(const unsigned long *_tod);
255 extern void *_LocalTime(const unsigned long *_tod, void * t_m);
256 extern long _strftime(char *s, unsigned long maxsize, const char *format, const void *timp);
257 extern long _mktime( void *timp);
258 extern long _mktime_ext(void *tim_extp);
259 extern int _SetDate(void *setdate_p);
260
261
262 #ifdef CAM_DRYOS_2_3_R39
263 extern int _SetFileTimeStamp(const char *file_path, int time1, int time2);
264 extern int _SetFileAttributes(const char *fn, int attr);
265 #else
266 extern int _SetFileTimeStamp(int fd, int time1, int time2);
267 extern void _SetFileAttributes(int fd, int attr);
268 #endif
269
270
271 extern int _stat(const char *name, void *pStat);
272 extern unsigned long _GetDrive_ClusterSize(int drive);
273 extern unsigned long _GetDrive_TotalClusters(int drive);
274 extern unsigned long _GetDrive_FreeClusters(int drive);
275 extern int _WriteSDCard(unsigned int drive, unsigned int start_sect, unsigned int num_sect, void *buf);
276
277 extern void _UnsetZoomForMovie(void);
278 extern void _TurnOffMic(void);
279 extern void _TurnOnMic(void);
280
281 extern void _MakeAFScan(int*, int);
282 extern void _ExpCtrlTool_StartContiAE(int, int);
283 extern void _ExpCtrlTool_StopContiAE(int, int);
284
285 extern int some_flag_for_af_scan;
286 extern int parameter_for_af_scan;
287 extern short _SetAE_ShutterSpeed(short* tv);
288
289 extern void _EnterToCompensationEVF(void);
290 extern void _ExitFromCompensationEVF(void);
291
292 extern void _TurnOnBackLight(void);
293 extern void _TurnOffBackLight(void);
294 extern void _TurnOnDisplay(void);
295 extern void _TurnOffDisplay(void);
296
297 extern void _DoAELock(void);
298 extern void _UnlockAE(void);
299 extern void _DoAFLock(void);
300 extern void _UnlockAF(void);
301 extern void _MFOn(void);
302 extern void _MFOff(void);
303 extern void _PT_MFOn(void);
304 extern void _PT_MFOff(void);
305 extern void _SS_MFOn(void);
306 extern void _SS_MFOff(void);
307
308 extern int _EngDrvRead(int gpio_reg);
309
310 extern int _apex2us(int);
311
312 extern void _ScreenLock();
313 extern void _SetCurrentCaptureModeType();
314 extern unsigned _ExecuteEventProcedure(const char *name, ...);
315
316
317
318
319
320 extern void _Restart(unsigned option);
321
322
323 extern void _reboot_fw_update(const char* bootfile);
324
325
326 extern int _add_ptp_handler(int, void*, int);
327 extern void _set_control_event(int);
328 extern void _PB2Rec();
329 extern void _Rec2PB();
330 extern int _get_ptp_buf_size(int slot);
331 extern char *_get_ptp_file_buf(void);
332
333 #ifdef OPT_EXMEM_MALLOC
334
335
336
337
338 extern void *_exmem_alloc(unsigned int pool_id,unsigned int size,int unk,int unk2);
339 #endif
340
341
342 extern void *_exmem_ualloc(unsigned int type, unsigned int size, void *allocinf);
343 extern void _exmem_ufree(unsigned int type);
344
345
346
347 extern int _memPartFindMax(int mempart_id);
348 extern int _memPartInfoGet(int mempart_id,int *info);
349
350 #ifdef CAM_HAS_GPS
351 extern void _GPS_UpdateData();
352 #endif
353
354 #endif