xref: /openbsd-src/sys/dev/microcode/tht/build.c (revision ae8c9cc85269a62f4cc1bae532687e41db1e6b48)
1*ae8c9cc8Sdlg /*	$OpenBSD: build.c,v 1.2 2007/04/19 04:08:51 dlg Exp $ */
25b38ddd2Sdlg 
35b38ddd2Sdlg /*
45b38ddd2Sdlg  * Copyright (c) 2007 David Gwynne <dlg@openbsd.org>
55b38ddd2Sdlg  *
65b38ddd2Sdlg  * Permission to use, copy, modify, and distribute this software for any
75b38ddd2Sdlg  * purpose with or without fee is hereby granted, provided that the above
85b38ddd2Sdlg  * copyright notice and this permission notice appear in all copies.
95b38ddd2Sdlg  *
105b38ddd2Sdlg  * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
115b38ddd2Sdlg  * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
125b38ddd2Sdlg  * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
135b38ddd2Sdlg  * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
145b38ddd2Sdlg  * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
155b38ddd2Sdlg  * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
165b38ddd2Sdlg  * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
175b38ddd2Sdlg  */
185b38ddd2Sdlg 
195b38ddd2Sdlg #include <sys/types.h>
205b38ddd2Sdlg 
215b38ddd2Sdlg #include <err.h>
225b38ddd2Sdlg #include <fcntl.h>
235b38ddd2Sdlg #include <stdio.h>
245b38ddd2Sdlg #include <unistd.h>
255b38ddd2Sdlg 
265b38ddd2Sdlg #include "microcode.h"
275b38ddd2Sdlg 
285b38ddd2Sdlg #define THT_FW_NAME "tht"
295b38ddd2Sdlg 
305b38ddd2Sdlg int
main(int argc,char * argv[])315b38ddd2Sdlg main(int argc, char *argv[])
325b38ddd2Sdlg {
335b38ddd2Sdlg 	ssize_t		len;
345b38ddd2Sdlg 	int		fd;
35*ae8c9cc8Sdlg 	int		i;
365b38ddd2Sdlg 
375b38ddd2Sdlg 	fd = open(THT_FW_NAME, O_WRONLY | O_CREAT | O_TRUNC, 0644);
385b38ddd2Sdlg 	if (fd == -1)
395b38ddd2Sdlg 		err(1, "%s", THT_FW_NAME);
405b38ddd2Sdlg 
41*ae8c9cc8Sdlg 	for (i = 0; i < (sizeof(tht_fw) / sizeof(tht_fw[0])); i++)
42*ae8c9cc8Sdlg 		tht_fw[i] = htole32(tht_fw[i]);
43*ae8c9cc8Sdlg 
445b38ddd2Sdlg 	len = write(fd, tht_fw, sizeof(tht_fw));
455b38ddd2Sdlg 	if (len == -1)
465b38ddd2Sdlg 		err(1, "%s write", THT_FW_NAME);
475b38ddd2Sdlg 	if (len != sizeof(tht_fw))
485b38ddd2Sdlg 		errx(1, "%s: short write", THT_FW_NAME);
495b38ddd2Sdlg 
505b38ddd2Sdlg 	close(fd);
515b38ddd2Sdlg 
525b38ddd2Sdlg 	return (0);
535b38ddd2Sdlg }
54