1#ifndef HW_M48T59_H
2#define HW_M48T59_H
3
4#include "qom/object.h"
5
6#define TYPE_NVRAM "nvram"
7
8#define NVRAM_CLASS(klass) \
9 OBJECT_CLASS_CHECK(NvramClass, (klass), TYPE_NVRAM)
10#define NVRAM_GET_CLASS(obj) \
11 OBJECT_GET_CLASS(NvramClass, (obj), TYPE_NVRAM)
12#define NVRAM(obj) \
13 INTERFACE_CHECK(Nvram, (obj), TYPE_NVRAM)
14
15typedef struct Nvram Nvram;
16
17typedef struct NvramClass {
18 InterfaceClass parent;
19
20 uint32_t (*read)(Nvram *obj, uint32_t addr);
21 void (*write)(Nvram *obj, uint32_t addr, uint32_t val);
22 void (*toggle_lock)(Nvram *obj, int lock);
23} NvramClass;
24
25Nvram *m48t59_init_isa(ISABus *bus, uint32_t io_base, uint16_t size,
26 int base_year, int type);
27Nvram *m48t59_init(qemu_irq IRQ, hwaddr mem_base,
28 uint32_t io_base, uint16_t size, int base_year,
29 int type);
30
31#endif
32