1217770Sadrian 2217770Sadrian/* 3217770Sadrian * Copyright (c) 2010-2011 Adrian Chadd, Xenion Pty Ltd. 4217770Sadrian * 5217770Sadrian * Redistribution and use in source and binary forms, with or without 6217770Sadrian * modification, are permitted provided that the following conditions 7217770Sadrian * are met: 8217770Sadrian * 1. Redistributions of source code must retain the above copyright 9217770Sadrian * notice, this list of conditions and the following disclaimer. 10217770Sadrian * 2. Redistributions in binary form must reproduce the above copyright 11217770Sadrian * notice, this list of conditions and the following disclaimer in the 12217770Sadrian * documentation and/or other materials provided with the distribution. 13217770Sadrian * 14217770Sadrian * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND 15217770Sadrian * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 16217770Sadrian * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 17217770Sadrian * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 18217770Sadrian * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 19217770Sadrian * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 20217770Sadrian * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 21217770Sadrian * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 22217770Sadrian * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 23217770Sadrian * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 24217770Sadrian * SUCH DAMAGE. 25217770Sadrian * 26217770Sadrian * $FreeBSD$ 27217770Sadrian */ 28217770Sadrian 29217770Sadrian#include <stdio.h> 30217770Sadrian#include <stdlib.h> 31217770Sadrian#include <unistd.h> 32217770Sadrian#include <string.h> 33217770Sadrian#include <sys/types.h> 34217770Sadrian#include <err.h> 35217770Sadrian 36217770Sadrian#include "eeprom.h" 37217770Sadrian 38217770Sadrianvoid 39217770Sadrianload_eeprom_dump(const char *file, uint16_t *buf) 40217770Sadrian{ 41217770Sadrian unsigned int r[8]; 42217770Sadrian FILE *fp; 43217770Sadrian char b[1024]; 44217770Sadrian int i; 45217770Sadrian 46217770Sadrian fp = fopen(file, "r"); 47217770Sadrian if (!fp) 48217770Sadrian err(1, "fopen"); 49217770Sadrian 50217770Sadrian while (!feof(fp)) { 51217770Sadrian if (fgets(b, 1024, fp) == NULL) 52217770Sadrian break; 53217770Sadrian if (feof(fp)) 54217770Sadrian break; 55217770Sadrian if (strlen(b) > 0) 56217770Sadrian b[strlen(b)-1] = '\0'; 57217770Sadrian if (strlen(b) == 0) 58217770Sadrian break; 59217770Sadrian sscanf(b, "%x: %x %x %x %x %x %x %x %x\n", 60217770Sadrian &i, &r[0], &r[1], &r[2], &r[3], &r[4], 61217770Sadrian &r[5], &r[6], &r[7]); 62217770Sadrian buf[i++] = r[0]; 63217770Sadrian buf[i++] = r[1]; 64217770Sadrian buf[i++] = r[2]; 65217770Sadrian buf[i++] = r[3]; 66217770Sadrian buf[i++] = r[4]; 67217770Sadrian buf[i++] = r[5]; 68217770Sadrian buf[i++] = r[6]; 69217770Sadrian buf[i++] = r[7]; 70217770Sadrian } 71217770Sadrian fclose(fp); 72217770Sadrian} 73