Merge remote-tracking branch 'remotes/alistair23/tags/pull-riscv-to-apply-20211022...
[qemu.git] / include / hw / core / generic-loader.h
1 /*
2 * Generic Loader
3 *
4 * Copyright (C) 2014 Li Guang
5 * Written by Li Guang <lig.fnst@cn.fujitsu.com>
6 *
7 * This program is free software; you can redistribute it and/or modify it
8 * under the terms of the GNU General Public License as published by the
9 * Free Software Foundation; either version 2 of the License, or
10 * (at your option) any later version.
11 *
12 * This program is distributed in the hope that it will be useful, but WITHOUT
13 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
14 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
15 * for more details.
16 */
17
18 #ifndef GENERIC_LOADER_H
19 #define GENERIC_LOADER_H
20
21 #include "elf.h"
22 #include "hw/qdev-core.h"
23 #include "qom/object.h"
24
25 struct GenericLoaderState {
26 /* <private> */
27 DeviceState parent_obj;
28
29 /* <public> */
30 CPUState *cpu;
31
32 uint64_t addr;
33 uint64_t data;
34 uint8_t data_len;
35 uint32_t cpu_num;
36
37 char *file;
38
39 bool force_raw;
40 bool data_be;
41 bool set_pc;
42 };
43
44 #define TYPE_GENERIC_LOADER "loader"
45 OBJECT_DECLARE_SIMPLE_TYPE(GenericLoaderState, GENERIC_LOADER)
46
47 #endif