fork of PCE focusing on macplus, supporting DaynaPort SCSI network emulation
1/*****************************************************************************
2 * pce *
3 *****************************************************************************/
4
5/*****************************************************************************
6 * File name: src/devices/nvram.h *
7 * Created: 2003-12-23 by Hampa Hug <hampa@hampa.ch> *
8 * Copyright: (C) 2003-2009 Hampa Hug <hampa@hampa.ch> *
9 *****************************************************************************/
10
11/*****************************************************************************
12 * This program is free software. You can redistribute it and / or modify it *
13 * under the terms of the GNU General Public License version 2 as published *
14 * by the Free Software Foundation. *
15 * *
16 * This program is distributed in the hope that it will be useful, but *
17 * WITHOUT ANY WARRANTY, without even the implied warranty of *
18 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General *
19 * Public License for more details. *
20 *****************************************************************************/
21
22
23#ifndef PCE_DEVICES_NVRAM_H
24#define PCE_DEVICES_NVRAM_H 1
25
26
27#include <devices/memory.h>
28
29
30typedef struct {
31 mem_blk_t *mem;
32
33 FILE *fp;
34 int close;
35} nvram_t;
36
37
38void nvr_init (nvram_t *nvr, unsigned long base, unsigned long size);
39nvram_t *nvr_new (unsigned long base, unsigned long size);
40void nvr_free (nvram_t *nvr);
41void nvr_del (nvram_t *nvr);
42
43void nvr_set_endian (nvram_t *nvr, int big);
44
45int nvr_set_file (nvram_t *nvr, FILE *fp, int close);
46int nvr_set_fname (nvram_t *nvr, const char *fname);
47
48mem_blk_t *nvr_get_mem (nvram_t *nvr);
49
50void nvr_set_uint8 (nvram_t *nvr, unsigned long addr, unsigned char val);
51void nvr_set_uint16_be (nvram_t *nvr, unsigned long addr, unsigned short val);
52void nvr_set_uint16_le (nvram_t *nvr, unsigned long addr, unsigned short val);
53void nvr_set_uint32_be (nvram_t *nvr, unsigned long addr, unsigned long val);
54void nvr_set_uint32_le (nvram_t *nvr, unsigned long addr, unsigned long val);
55
56unsigned char nvr_get_uint8 (nvram_t *nvr, unsigned long addr);
57unsigned short nvr_get_uint16_be (nvram_t *nvr, unsigned long addr);
58unsigned short nvr_get_uint16_le (nvram_t *nvr, unsigned long addr);
59unsigned long nvr_get_uint32_be (nvram_t *nvr, unsigned long addr);
60unsigned long nvr_get_uint32_le (nvram_t *nvr, unsigned long addr);
61
62
63#endif