blob: 108b199870e0e0419e422da03fb27c85a5e9e6fc [file] [log] [blame]
b.liuced8dd02024-06-28 13:28:29 +08001#include <stdio.h>
2#include <string.h>
3#include <limits.h>
4#include <sys/stat.h>
5
6#include "aboot-tiny.h"
7#include "jacana_firmware.h"
8#include "jacana_pvt.h"
9
10#ifdef PATH_MAX
11#undef PATH_MAX
12#define PATH_MAX 127
13#else
14#define PATH_MAX 127
15#endif
16
17extern char jacana_firmware_file_name[PATH_MAX];
18extern char jacana_pvt_file_name[PATH_MAX];
19/*---------------------------------------------------------------------------*/
20void *
21jacana_firmware_raw_open(void)
22{
23 FILE *file = fopen(jacana_firmware_file_name, "r");
24 return (void *)file;
25}
26/*---------------------------------------------------------------------------*/
27size_t
28jacana_firmware_raw_get_total_size(void *priv)
29{
30 int fd = fileno((FILE *)priv);
31 struct stat buf;
32 fstat(fd, &buf);
33 off_t size = buf.st_size;
34 return size;
35}
36/*---------------------------------------------------------------------------*/
37int
38jacana_firmware_raw_read(void *priv, size_t start, uint8_t *data, size_t size)
39{
40 FILE *file = (FILE *)priv;
41 fseek(file, start, SEEK_SET);
42 return fread(data, 1, size, file);
43}
44/*---------------------------------------------------------------------------*/
45void
46jacana_firmware_raw_close(void *priv)
47{
48 fclose((FILE *)priv);
49}
50/*---------------------------------------------------------------------------*/
51void *
52jacana_pvt_raw_open(void)
53{
54 FILE *file = fopen(jacana_pvt_file_name, "r");
55 return (void *)file;
56}
57/*---------------------------------------------------------------------------*/
58size_t
59jacana_pvt_raw_get_total_size(void *priv)
60{
61 return jacana_firmware_raw_get_total_size(priv);
62}
63/*---------------------------------------------------------------------------*/
64int
65jacana_pvt_raw_read(void *priv, size_t start, uint8_t *data, size_t size)
66{
67 return jacana_firmware_raw_read(priv, start, data, size);
68}
69/*---------------------------------------------------------------------------*/
70void
71jacana_pvt_raw_close(void *priv)
72{
73 jacana_firmware_raw_close(priv);
74}
75/*---------------------------------------------------------------------------*/