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