blob: 0c14dcc4d5681dac00e1c5bd68f1c2e90d4d597e [file] [log] [blame]
b.liuced8dd02024-06-28 13:28:29 +08001#ifndef JACANA_FIRMWARE_H
2#define JACANA_FIRMWARE_H
3
4#ifdef __cplusplus
5extern "C" {
6#endif
7
8#define MAX_READ_CACHE_SZ 4096
9
10/*---------------------------------------------------------------------------*/
11typedef struct firmware_handle {
12 void *priv;
13 size_t start;
14 size_t end;
15 void *data;
16 size_t read_sz;
17 char *read_ptr;
18 char *middle_ptr;
19 char *end_ptr;
20 void *pvt_info;
21} firmware_handle_t;
22/*---------------------------------------------------------------------------*/
23/* portable layer api */
24void *jacana_firmware_raw_open(void);
25size_t jacana_firmware_raw_get_total_size(void *priv);
26int jacana_firmware_raw_read(void *priv, size_t start,
27 uint8_t *data, size_t size);
28void jacana_firmware_raw_close(void *priv);
29/*---------------------------------------------------------------------------*/
30int jacana_firmware_open(firmware_handle_t *firmware, void *priv);
31int jacana_firmware_read_line(firmware_handle_t *firmware, char *line);
32int jacana_firmware_read_data(firmware_handle_t *firmware,
33 uint8_t *data, size_t size);
34void jacana_firmware_close(firmware_handle_t *firmware);
35/*---------------------------------------------------------------------------*/
36
37#ifdef __cplusplus
38} /* extern "C" */
39#endif
40
41#endif /* JACANA_FIRMWARE_H */