Annotation of sys/dev/microcode/fxp/build.c, Revision 1.1
1.1 ! nbrk 1: /* $OpenBSD: build.c,v 1.3 2005/05/17 18:48:52 jason Exp $ */
! 2:
! 3: /*
! 4: * Copyright (c) 2004 Theo de Raadt <deraadt@openbsd.org>
! 5: * Copyright (c) 2004 Dmitry Bogdan <dsb@imcs.dvgu.ru>
! 6: *
! 7: * Permission to use, copy, modify, and distribute this software for any
! 8: * purpose with or without fee is hereby granted, provided that the above
! 9: * copyright notice and this permission notice appear in all copies.
! 10: *
! 11: * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
! 12: * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
! 13: * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
! 14: * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
! 15: * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
! 16: * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
! 17: * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
! 18: */
! 19:
! 20: #include <sys/types.h>
! 21:
! 22: #include <fcntl.h>
! 23: #include <stdlib.h>
! 24: #include <stdio.h>
! 25: #include <err.h>
! 26: #include <unistd.h>
! 27:
! 28: #include "rcvbundl.h"
! 29:
! 30: const u_int32_t fxp_ucode_d101a[] = D101_A_RCVBUNDLE_UCODE;
! 31: const u_int32_t fxp_ucode_d101b0[] = D101_B0_RCVBUNDLE_UCODE;
! 32: const u_int32_t fxp_ucode_d101ma[] = D101M_B_RCVBUNDLE_UCODE;
! 33: const u_int32_t fxp_ucode_d101s[] = D101S_RCVBUNDLE_UCODE;
! 34: const u_int32_t fxp_ucode_d102[] = D102_B_RCVBUNDLE_UCODE;
! 35: const u_int32_t fxp_ucode_d102c[] = D102_C_RCVBUNDLE_UCODE;
! 36: const u_int32_t fxp_ucode_d102e[] = D102_E_RCVBUNDLE_UCODE;
! 37:
! 38: #define UCODE(x) x, sizeof(x)
! 39:
! 40: static void
! 41: output(const char *name, const u_int32_t *ucode, const int ucode_len)
! 42: {
! 43: ssize_t rlen;
! 44: int fd, i;
! 45: u_int32_t dword;
! 46:
! 47: printf("creating %s length %d (microcode: %d DWORDS)\n",
! 48: name, ucode_len, ucode_len / sizeof(u_int32_t));
! 49: fd = open(name, O_WRONLY|O_CREAT|O_TRUNC, 0644);
! 50: if (fd == -1)
! 51: err(1, "%s", name);
! 52: for (i = 0; i < ucode_len / sizeof(u_int32_t); i++) {
! 53: dword = htole32(ucode[i]);
! 54: rlen = write(fd, &dword, sizeof(dword));
! 55: if (rlen == -1)
! 56: err(1, "%s", name);
! 57: if (rlen != sizeof(dword))
! 58: errx(1, "%s: short write", name);
! 59: }
! 60: close(fd);
! 61: }
! 62:
! 63: int
! 64: main(int argc, char *argv[])
! 65: {
! 66: output("fxp-d101a", UCODE(fxp_ucode_d101a));
! 67: output("fxp-d101b0", UCODE(fxp_ucode_d101b0));
! 68: output("fxp-d101ma", UCODE(fxp_ucode_d101ma));
! 69: output("fxp-d101s", UCODE(fxp_ucode_d101s));
! 70: output("fxp-d102", UCODE(fxp_ucode_d102));
! 71: output("fxp-d102c", UCODE(fxp_ucode_d102c));
! 72: output("fxp-d102e", UCODE(fxp_ucode_d102e));
! 73:
! 74: return (0);
! 75: }
CVSweb