[go: up one dir, main page]

Menu

[513468]: / src / dfu_file.h  Maximize  Restore  History

Download this file

61 lines (49 with data), 1.2 kB

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
#ifndef DFU_FILE_H
#define DFU_FILE_H
#include <stdint.h>
struct dfu_file {
/* File name */
const char *name;
/* Pointer to file loaded into memory */
uint8_t *firmware;
/* Different sizes */
struct {
off_t total;
int prefix;
int suffix;
} size;
/* From prefix fields */
uint32_t lmdfu_address;
/* From prefix fields */
uint32_t prefix_type;
/* From DFU suffix fields */
uint32_t dwCRC;
uint16_t bcdDFU;
uint16_t idVendor;
uint16_t idProduct;
uint16_t bcdDevice;
};
enum suffix_req {
NO_SUFFIX,
NEEDS_SUFFIX,
MAYBE_SUFFIX
};
enum prefix_req {
NO_PREFIX,
NEEDS_PREFIX,
MAYBE_PREFIX
};
enum prefix_type {
ZERO_PREFIX,
LMDFU_PREFIX,
LPCDFU_UNENCRYPTED_PREFIX
};
extern int verbose;
void dfu_load_file(struct dfu_file *file, enum suffix_req check_suffix, enum prefix_req check_prefix);
void dfu_store_file(struct dfu_file *file, int write_suffix, int write_prefix);
void dfu_progress_bar(const char *desc, unsigned long long curr,
unsigned long long max);
void *dfu_malloc(size_t size);
uint32_t dfu_file_write_crc(int f, uint32_t crc, const void *buf, int size);
void show_suffix_and_prefix(struct dfu_file *file);
#endif /* DFU_FILE_H */