]>
Commit | Line | Data |
---|---|---|
a1a9cb0c EH |
1 | /* QEMU accelerator interfaces |
2 | * | |
3 | * Copyright (c) 2014 Red Hat Inc | |
4 | * | |
5 | * Permission is hereby granted, free of charge, to any person obtaining a copy | |
6 | * of this software and associated documentation files (the "Software"), to deal | |
7 | * in the Software without restriction, including without limitation the rights | |
8 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell | |
9 | * copies of the Software, and to permit persons to whom the Software is | |
10 | * furnished to do so, subject to the following conditions: | |
11 | * | |
12 | * The above copyright notice and this permission notice shall be included in | |
13 | * all copies or substantial portions of the Software. | |
14 | * | |
15 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | |
16 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | |
17 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL | |
18 | * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER | |
19 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, | |
20 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN | |
21 | * THE SOFTWARE. | |
22 | */ | |
23 | #ifndef HW_ACCEL_H | |
24 | #define HW_ACCEL_H | |
25 | ||
26 | #include "qemu/typedefs.h" | |
b14a0b74 EH |
27 | #include "qom/object.h" |
28 | ||
29 | typedef struct AccelState { | |
30 | /*< private >*/ | |
31 | Object parent_obj; | |
32 | } AccelState; | |
33 | ||
34 | typedef struct AccelClass { | |
35 | /*< private >*/ | |
36 | ObjectClass parent_class; | |
37 | /*< public >*/ | |
38 | ||
39 | const char *opt_name; | |
40 | const char *name; | |
41 | int (*available)(void); | |
f6a1ef64 | 42 | int (*init_machine)(MachineState *ms); |
b14a0b74 EH |
43 | bool *allowed; |
44 | } AccelClass; | |
45 | ||
46 | #define TYPE_ACCEL "accel" | |
47 | ||
48 | #define ACCEL_CLASS_SUFFIX "-" TYPE_ACCEL | |
49 | #define ACCEL_CLASS_NAME(a) (a ACCEL_CLASS_SUFFIX) | |
50 | ||
51 | #define ACCEL_CLASS(klass) \ | |
52 | OBJECT_CLASS_CHECK(AccelClass, (klass), TYPE_ACCEL) | |
53 | #define ACCEL(obj) \ | |
54 | OBJECT_CHECK(AccelState, (obj), TYPE_ACCEL) | |
55 | #define ACCEL_GET_CLASS(obj) \ | |
56 | OBJECT_GET_CLASS(AccelClass, (obj), TYPE_ACCEL) | |
a1a9cb0c EH |
57 | |
58 | extern int tcg_tb_size; | |
59 | ||
f6a1ef64 | 60 | int configure_accelerator(MachineState *ms); |
a1a9cb0c EH |
61 | |
62 | #endif |