xref: /netbsd-src/sys/dev/microcode/zyd/build.c (revision bbec0bb7bf6909c23645a8241983a00bdfddc719)
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