1#ifndef EDID_H
2#define EDID_H
3
4typedef struct qemu_edid_info {
5 const char *vendor;
6 const char *name;
7 const char *serial;
8 uint16_t width_mm;
9 uint16_t height_mm;
10 uint32_t prefx;
11 uint32_t prefy;
12 uint32_t maxx;
13 uint32_t maxy;
14 uint32_t refresh_rate;
15} qemu_edid_info;
16
17void qemu_edid_generate(uint8_t *edid, size_t size,
18 qemu_edid_info *info);
19size_t qemu_edid_size(uint8_t *edid);
20void qemu_edid_region_io(MemoryRegion *region, Object *owner,
21 uint8_t *edid, size_t size);
22
23uint32_t qemu_edid_dpi_to_mm(uint32_t dpi, uint32_t res);
24
25#define DEFINE_EDID_PROPERTIES(_state, _edid_info) \
26 DEFINE_PROP_UINT32("xres", _state, _edid_info.prefx, 0), \
27 DEFINE_PROP_UINT32("yres", _state, _edid_info.prefy, 0), \
28 DEFINE_PROP_UINT32("xmax", _state, _edid_info.maxx, 0), \
29 DEFINE_PROP_UINT32("ymax", _state, _edid_info.maxy, 0), \
30 DEFINE_PROP_UINT32("refresh_rate", _state, _edid_info.refresh_rate, 0)
31
32#endif
33