-
Notifications
You must be signed in to change notification settings - Fork 0
/
rtw8703b_fw.c
51 lines (41 loc) · 999 Bytes
/
rtw8703b_fw.c
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
// SPDX-License-Identifier: GPL-2.0
/* Copyright Fiona Klute <fiona.klute@gmx.de> */
#include <stdio.h>
#include "drv_types.h"
#include "hal8703b_fw.h"
int write_fw_file(const char *name, const u8 *data, const u32 len)
{
FILE *f = fopen(name, "w");
if (f == NULL)
{
fprintf(stderr, "Could not open %s!\n", name);
return -1;
}
size_t written = fwrite(data, sizeof(u8), len, f);
int ret = fclose(f);
if (written != len || ret != 0)
{
fprintf(stderr,
"Write to %s failed, %zd bytes written.\n",
name, written);
return -2;
}
printf("%s: %u bytes\n", name, len);
return 0;
}
#define WRITE_FW_CHECKED(KIND, NAME) \
do { \
int ret = write_fw_file( \
NAME, \
array_mp_8703b_fw_ ## KIND, \
array_length_mp_8703b_fw_ ## KIND); \
if (ret != 0) \
return 1; \
} while (0)
int main()
{
WRITE_FW_CHECKED(ap, "rtw8703b_ap_fw.bin");
WRITE_FW_CHECKED(nic, "rtw8703b_fw.bin");
WRITE_FW_CHECKED(wowlan, "rtw8703b_wow_fw.bin");
return 0;
}