1
2
3
4
5
6
7
8
9
10
11#ifndef HW_S390_TOD_H
12#define HW_S390_TOD_H
13
14#include "hw/qdev.h"
15#include "s390-tod.h"
16
17typedef struct S390TOD {
18 uint8_t high;
19 uint64_t low;
20} S390TOD;
21
22#define TYPE_S390_TOD "s390-tod"
23#define S390_TOD(obj) OBJECT_CHECK(S390TODState, (obj), TYPE_S390_TOD)
24#define S390_TOD_CLASS(oc) OBJECT_CLASS_CHECK(S390TODClass, (oc), \
25 TYPE_S390_TOD)
26#define S390_TOD_GET_CLASS(obj) OBJECT_GET_CLASS(S390TODClass, (obj), \
27 TYPE_S390_TOD)
28#define TYPE_KVM_S390_TOD TYPE_S390_TOD "-kvm"
29#define TYPE_QEMU_S390_TOD TYPE_S390_TOD "-qemu"
30
31typedef struct S390TODState {
32
33 DeviceState parent_obj;
34
35
36
37
38
39 S390TOD base;
40
41 bool stopped;
42} S390TODState;
43
44typedef struct S390TODClass {
45
46 DeviceClass parent_class;
47 void (*parent_realize)(DeviceState *dev, Error **errp);
48
49
50 void (*get)(const S390TODState *td, S390TOD *tod, Error **errp);
51 void (*set)(S390TODState *td, const S390TOD *tod, Error **errp);
52} S390TODClass;
53
54void s390_init_tod(void);
55S390TODState *s390_get_todstate(void);
56
57#endif
58