1*1e1b982aSkevlo /* $OpenBSD: build.c,v 1.1 2021/10/04 01:33:42 kevlo Exp $ */
2*1e1b982aSkevlo
3*1e1b982aSkevlo /*-
4*1e1b982aSkevlo * Copyright (c) 2006
5*1e1b982aSkevlo * Damien Bergamini <damien.bergamini@free.fr>
6*1e1b982aSkevlo *
7*1e1b982aSkevlo * Permission to use, copy, modify, and distribute this software for any
8*1e1b982aSkevlo * purpose with or without fee is hereby granted, provided that the above
9*1e1b982aSkevlo * copyright notice and this permission notice appear in all copies.
10*1e1b982aSkevlo *
11*1e1b982aSkevlo * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
12*1e1b982aSkevlo * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
13*1e1b982aSkevlo * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
14*1e1b982aSkevlo * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
15*1e1b982aSkevlo * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
16*1e1b982aSkevlo * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
17*1e1b982aSkevlo * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
18*1e1b982aSkevlo */
19*1e1b982aSkevlo
20*1e1b982aSkevlo #include <sys/types.h>
21*1e1b982aSkevlo
22*1e1b982aSkevlo #include <err.h>
23*1e1b982aSkevlo #include <fcntl.h>
24*1e1b982aSkevlo #include <stdio.h>
25*1e1b982aSkevlo #include <unistd.h>
26*1e1b982aSkevlo
27*1e1b982aSkevlo #include "microcode.h"
28*1e1b982aSkevlo
29*1e1b982aSkevlo static void
output(const char * name,const uint8_t * ucode,int size)30*1e1b982aSkevlo output(const char *name, const uint8_t *ucode, int size)
31*1e1b982aSkevlo {
32*1e1b982aSkevlo ssize_t rlen;
33*1e1b982aSkevlo int fd;
34*1e1b982aSkevlo
35*1e1b982aSkevlo printf("creating %s length %d\n", name, size);
36*1e1b982aSkevlo
37*1e1b982aSkevlo fd = open(name, O_WRONLY | O_CREAT | O_TRUNC, 0644);
38*1e1b982aSkevlo if (fd == -1)
39*1e1b982aSkevlo err(1, "%s", name);
40*1e1b982aSkevlo
41*1e1b982aSkevlo rlen = write(fd, ucode, size);
42*1e1b982aSkevlo if (rlen == -1)
43*1e1b982aSkevlo err(1, "%s", name);
44*1e1b982aSkevlo if (rlen != size)
45*1e1b982aSkevlo errx(1, "%s: short write", name);
46*1e1b982aSkevlo
47*1e1b982aSkevlo close(fd);
48*1e1b982aSkevlo }
49*1e1b982aSkevlo
50*1e1b982aSkevlo int
main(void)51*1e1b982aSkevlo main(void)
52*1e1b982aSkevlo {
53*1e1b982aSkevlo output("rtwn-rtl8188e", rtl8188e, sizeof rtl8188e);
54*1e1b982aSkevlo output("rtwn-rtl8192cU", rtl8192cU, sizeof rtl8192cU);
55*1e1b982aSkevlo output("rtwn-rtl8192cU_B", rtl8192cU_B, sizeof rtl8192cU_B);
56*1e1b982aSkevlo output("rtwn-rtl8723", rtl8723, sizeof rtl8723);
57*1e1b982aSkevlo output("rtwn-rtl8723_B", rtl8723_B, sizeof rtl8723_B);
58*1e1b982aSkevlo
59*1e1b982aSkevlo return 0;
60*1e1b982aSkevlo }
61