carl9170 firmware: import 1.7.0
[carl9170fw.git] / tools / lib / carlfw.h
1 #ifndef __CARLFW_H
2 #define __CARLFW_H
3
4 #include <linux/types.h>
5 #include "compiler.h"
6 #include "fwdesc.h"
7 #include "list.h"
8
9 struct carlfw;
10
11 void carlfw_release(struct carlfw *fw);
12 struct carlfw *carlfw_load(const char *basename);
13 int carlfw_store(struct carlfw *fw);
14 void *carlfw_find_desc(struct carlfw *fw,
15         const uint8_t descid[4], const unsigned int len,
16         const uint8_t compatible_revision);
17
18 int carlfw_desc_add_tail(struct carlfw *fw,
19                          const struct carl9170fw_desc_head *desc);
20
21 int carlfw_desc_add(struct carlfw *fw,
22                     const struct carl9170fw_desc_head *desc,
23                     struct carl9170fw_desc_head *prev,
24                     struct carl9170fw_desc_head *next);
25
26 void *carlfw_desc_mod_len(struct carlfw *fw,
27                           struct carl9170fw_desc_head *desc,
28                           int len);
29
30 int carlfw_desc_add_before(struct carlfw *fw,
31                            const struct carl9170fw_desc_head *desc,
32                            struct carl9170fw_desc_head *pos);
33
34 void carlfw_desc_unlink(struct carlfw *fw,
35                         struct carl9170fw_desc_head *desc);
36
37 void carlfw_desc_del(struct carlfw *fw,
38                      struct carl9170fw_desc_head *entry);
39
40 void *carlfw_desc_next(struct carlfw *fw,
41                        struct carl9170fw_desc_head *pos);
42
43 void *carlfw_mod_tailroom(struct carlfw *fw, ssize_t len);
44 void *carlfw_mod_headroom(struct carlfw *fw, ssize_t len);
45
46 void *carlfw_get_fw(struct carlfw *fw, size_t *len);
47
48 unsigned int carlfw_get_descs_num(struct carlfw *fw);
49 unsigned int carlfw_get_descs_size(struct carlfw *fw);
50 #endif /* __CARLFW_H */