mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-07-25 19:33:54 -06:00
qom: Have class_init() take a const data argument
Mechanical change using gsed, then style manually adapted to pass checkpatch.pl script. Suggested-by: Richard Henderson <richard.henderson@linaro.org> Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org> Reviewed-by: Richard Henderson <richard.henderson@linaro.org> Message-Id: <20250424194905.82506-4-philmd@linaro.org>
This commit is contained in:
parent
f1fa787b92
commit
12d1a768bd
1121 changed files with 1774 additions and 1707 deletions
|
@ -355,7 +355,7 @@ static inline int hvf_gdbstub_sstep_flags(void)
|
|||
return SSTEP_ENABLE | SSTEP_NOIRQ;
|
||||
}
|
||||
|
||||
static void hvf_accel_class_init(ObjectClass *oc, void *data)
|
||||
static void hvf_accel_class_init(ObjectClass *oc, const void *data)
|
||||
{
|
||||
AccelClass *ac = ACCEL_CLASS(oc);
|
||||
ac->name = "HVF";
|
||||
|
@ -578,7 +578,7 @@ static void hvf_remove_all_breakpoints(CPUState *cpu)
|
|||
}
|
||||
}
|
||||
|
||||
static void hvf_accel_ops_class_init(ObjectClass *oc, void *data)
|
||||
static void hvf_accel_ops_class_init(ObjectClass *oc, const void *data)
|
||||
{
|
||||
AccelOpsClass *ops = ACCEL_OPS_CLASS(oc);
|
||||
|
||||
|
|
|
@ -90,7 +90,7 @@ static int kvm_update_guest_debug_ops(CPUState *cpu)
|
|||
}
|
||||
#endif
|
||||
|
||||
static void kvm_accel_ops_class_init(ObjectClass *oc, void *data)
|
||||
static void kvm_accel_ops_class_init(ObjectClass *oc, const void *data)
|
||||
{
|
||||
AccelOpsClass *ops = ACCEL_OPS_CLASS(oc);
|
||||
|
||||
|
|
|
@ -3964,7 +3964,7 @@ static int kvm_gdbstub_sstep_flags(void)
|
|||
return kvm_sstep_flags;
|
||||
}
|
||||
|
||||
static void kvm_accel_class_init(ObjectClass *oc, void *data)
|
||||
static void kvm_accel_class_init(ObjectClass *oc, const void *data)
|
||||
{
|
||||
AccelClass *ac = ACCEL_CLASS(oc);
|
||||
ac->name = "KVM";
|
||||
|
|
|
@ -42,7 +42,7 @@ static int qtest_init_accel(MachineState *ms)
|
|||
return 0;
|
||||
}
|
||||
|
||||
static void qtest_accel_class_init(ObjectClass *oc, void *data)
|
||||
static void qtest_accel_class_init(ObjectClass *oc, const void *data)
|
||||
{
|
||||
AccelClass *ac = ACCEL_CLASS(oc);
|
||||
ac->name = "QTest";
|
||||
|
@ -59,7 +59,7 @@ static const TypeInfo qtest_accel_type = {
|
|||
};
|
||||
module_obj(TYPE_QTEST_ACCEL);
|
||||
|
||||
static void qtest_accel_ops_class_init(ObjectClass *oc, void *data)
|
||||
static void qtest_accel_ops_class_init(ObjectClass *oc, const void *data)
|
||||
{
|
||||
AccelOpsClass *ops = ACCEL_OPS_CLASS(oc);
|
||||
|
||||
|
|
|
@ -224,7 +224,7 @@ static void tcg_accel_ops_init(AccelOpsClass *ops)
|
|||
ops->remove_all_breakpoints = tcg_remove_all_breakpoints;
|
||||
}
|
||||
|
||||
static void tcg_accel_ops_class_init(ObjectClass *oc, void *data)
|
||||
static void tcg_accel_ops_class_init(ObjectClass *oc, const void *data)
|
||||
{
|
||||
AccelOpsClass *ops = ACCEL_OPS_CLASS(oc);
|
||||
|
||||
|
|
|
@ -237,7 +237,7 @@ static int tcg_gdbstub_supported_sstep_flags(void)
|
|||
}
|
||||
}
|
||||
|
||||
static void tcg_accel_class_init(ObjectClass *oc, void *data)
|
||||
static void tcg_accel_class_init(ObjectClass *oc, const void *data)
|
||||
{
|
||||
AccelClass *ac = ACCEL_CLASS(oc);
|
||||
ac->name = "tcg";
|
||||
|
|
|
@ -116,7 +116,7 @@ static int xen_init(MachineState *ms)
|
|||
return 0;
|
||||
}
|
||||
|
||||
static void xen_accel_class_init(ObjectClass *oc, void *data)
|
||||
static void xen_accel_class_init(ObjectClass *oc, const void *data)
|
||||
{
|
||||
AccelClass *ac = ACCEL_CLASS(oc);
|
||||
static GlobalProperty compat[] = {
|
||||
|
@ -147,7 +147,7 @@ static const TypeInfo xen_accel_type = {
|
|||
.class_init = xen_accel_class_init,
|
||||
};
|
||||
|
||||
static void xen_accel_ops_class_init(ObjectClass *oc, void *data)
|
||||
static void xen_accel_ops_class_init(ObjectClass *oc, const void *data)
|
||||
{
|
||||
AccelOpsClass *ops = ACCEL_OPS_CLASS(oc);
|
||||
|
||||
|
|
|
@ -116,7 +116,7 @@ qauthz_list_finalize(Object *obj)
|
|||
|
||||
|
||||
static void
|
||||
qauthz_list_class_init(ObjectClass *oc, void *data)
|
||||
qauthz_list_class_init(ObjectClass *oc, const void *data)
|
||||
{
|
||||
QAuthZClass *authz = QAUTHZ_CLASS(oc);
|
||||
|
||||
|
|
|
@ -220,7 +220,7 @@ qauthz_list_file_finalize(Object *obj)
|
|||
|
||||
|
||||
static void
|
||||
qauthz_list_file_class_init(ObjectClass *oc, void *data)
|
||||
qauthz_list_file_class_init(ObjectClass *oc, const void *data)
|
||||
{
|
||||
UserCreatableClass *ucc = USER_CREATABLE_CLASS(oc);
|
||||
QAuthZClass *authz = QAUTHZ_CLASS(oc);
|
||||
|
|
|
@ -103,7 +103,7 @@ qauthz_pam_finalize(Object *obj)
|
|||
|
||||
|
||||
static void
|
||||
qauthz_pam_class_init(ObjectClass *oc, void *data)
|
||||
qauthz_pam_class_init(ObjectClass *oc, const void *data)
|
||||
{
|
||||
UserCreatableClass *ucc = USER_CREATABLE_CLASS(oc);
|
||||
QAuthZClass *authz = QAUTHZ_CLASS(oc);
|
||||
|
|
|
@ -78,7 +78,7 @@ qauthz_simple_complete(UserCreatable *uc, Error **errp)
|
|||
|
||||
|
||||
static void
|
||||
qauthz_simple_class_init(ObjectClass *oc, void *data)
|
||||
qauthz_simple_class_init(ObjectClass *oc, const void *data)
|
||||
{
|
||||
QAuthZClass *authz = QAUTHZ_CLASS(oc);
|
||||
UserCreatableClass *ucc = USER_CREATABLE_CLASS(oc);
|
||||
|
|
|
@ -20,7 +20,8 @@ OBJECT_DEFINE_ABSTRACT_TYPE(ConfidentialGuestSupport,
|
|||
CONFIDENTIAL_GUEST_SUPPORT,
|
||||
OBJECT)
|
||||
|
||||
static void confidential_guest_support_class_init(ObjectClass *oc, void *data)
|
||||
static void confidential_guest_support_class_init(ObjectClass *oc,
|
||||
const void *data)
|
||||
{
|
||||
}
|
||||
|
||||
|
|
|
@ -608,7 +608,7 @@ static void cryptodev_builtin_cleanup(
|
|||
}
|
||||
|
||||
static void
|
||||
cryptodev_builtin_class_init(ObjectClass *oc, void *data)
|
||||
cryptodev_builtin_class_init(ObjectClass *oc, const void *data)
|
||||
{
|
||||
CryptoDevBackendClass *bc = CRYPTODEV_BACKEND_CLASS(oc);
|
||||
|
||||
|
|
|
@ -619,7 +619,7 @@ static int cryptodev_lkcf_close_session(CryptoDevBackend *backend,
|
|||
return 0;
|
||||
}
|
||||
|
||||
static void cryptodev_lkcf_class_init(ObjectClass *oc, void *data)
|
||||
static void cryptodev_lkcf_class_init(ObjectClass *oc, const void *data)
|
||||
{
|
||||
CryptoDevBackendClass *bc = CRYPTODEV_BACKEND_CLASS(oc);
|
||||
|
||||
|
|
|
@ -393,7 +393,7 @@ static void cryptodev_vhost_user_finalize(Object *obj)
|
|||
}
|
||||
|
||||
static void
|
||||
cryptodev_vhost_user_class_init(ObjectClass *oc, void *data)
|
||||
cryptodev_vhost_user_class_init(ObjectClass *oc, const void *data)
|
||||
{
|
||||
CryptoDevBackendClass *bc = CRYPTODEV_BACKEND_CLASS(oc);
|
||||
|
||||
|
|
|
@ -608,7 +608,7 @@ static void cryptodev_backend_schemas_cb(StatsSchemaList **result,
|
|||
}
|
||||
|
||||
static void
|
||||
cryptodev_backend_class_init(ObjectClass *oc, void *data)
|
||||
cryptodev_backend_class_init(ObjectClass *oc, const void *data)
|
||||
{
|
||||
UserCreatableClass *ucc = USER_CREATABLE_CLASS(oc);
|
||||
|
||||
|
|
|
@ -485,7 +485,7 @@ dbus_vmstate_get_id(VMStateIf *vmif)
|
|||
}
|
||||
|
||||
static void
|
||||
dbus_vmstate_class_init(ObjectClass *oc, void *data)
|
||||
dbus_vmstate_class_init(ObjectClass *oc, const void *data)
|
||||
{
|
||||
UserCreatableClass *ucc = USER_CREATABLE_CLASS(oc);
|
||||
VMStateIfClass *vc = VMSTATE_IF_CLASS(oc);
|
||||
|
|
|
@ -17,7 +17,7 @@ OBJECT_DEFINE_ABSTRACT_TYPE(HostIOMMUDevice,
|
|||
HOST_IOMMU_DEVICE,
|
||||
OBJECT)
|
||||
|
||||
static void host_iommu_device_class_init(ObjectClass *oc, void *data)
|
||||
static void host_iommu_device_class_init(ObjectClass *oc, const void *data)
|
||||
{
|
||||
}
|
||||
|
||||
|
|
|
@ -50,7 +50,7 @@ static void sgx_epc_backend_instance_init(Object *obj)
|
|||
m->dump = false;
|
||||
}
|
||||
|
||||
static void sgx_epc_backend_class_init(ObjectClass *oc, void *data)
|
||||
static void sgx_epc_backend_class_init(ObjectClass *oc, const void *data)
|
||||
{
|
||||
HostMemoryBackendClass *bc = MEMORY_BACKEND_CLASS(oc);
|
||||
|
||||
|
|
|
@ -270,7 +270,7 @@ static void file_backend_unparent(Object *obj)
|
|||
}
|
||||
|
||||
static void
|
||||
file_backend_class_init(ObjectClass *oc, void *data)
|
||||
file_backend_class_init(ObjectClass *oc, const void *data)
|
||||
{
|
||||
HostMemoryBackendClass *bc = MEMORY_BACKEND_CLASS(oc);
|
||||
|
||||
|
|
|
@ -133,7 +133,7 @@ memfd_backend_instance_init(Object *obj)
|
|||
}
|
||||
|
||||
static void
|
||||
memfd_backend_class_init(ObjectClass *oc, void *data)
|
||||
memfd_backend_class_init(ObjectClass *oc, const void *data)
|
||||
{
|
||||
HostMemoryBackendClass *bc = MEMORY_BACKEND_CLASS(oc);
|
||||
|
||||
|
|
|
@ -37,7 +37,7 @@ ram_backend_memory_alloc(HostMemoryBackend *backend, Error **errp)
|
|||
}
|
||||
|
||||
static void
|
||||
ram_backend_class_init(ObjectClass *oc, void *data)
|
||||
ram_backend_class_init(ObjectClass *oc, const void *data)
|
||||
{
|
||||
HostMemoryBackendClass *bc = MEMORY_BACKEND_CLASS(oc);
|
||||
|
||||
|
|
|
@ -69,7 +69,7 @@ shm_backend_instance_init(Object *obj)
|
|||
}
|
||||
|
||||
static void
|
||||
shm_backend_class_init(ObjectClass *oc, void *data)
|
||||
shm_backend_class_init(ObjectClass *oc, const void *data)
|
||||
{
|
||||
HostMemoryBackendClass *bc = MEMORY_BACKEND_CLASS(oc);
|
||||
|
||||
|
|
|
@ -501,7 +501,7 @@ host_memory_backend_set_use_canonical_path(Object *obj, bool value,
|
|||
}
|
||||
|
||||
static void
|
||||
host_memory_backend_class_init(ObjectClass *oc, void *data)
|
||||
host_memory_backend_class_init(ObjectClass *oc, const void *data)
|
||||
{
|
||||
UserCreatableClass *ucc = USER_CREATABLE_CLASS(oc);
|
||||
|
||||
|
|
|
@ -64,7 +64,7 @@ static bool iommufd_backend_can_be_deleted(UserCreatable *uc)
|
|||
return !be->users;
|
||||
}
|
||||
|
||||
static void iommufd_backend_class_init(ObjectClass *oc, void *data)
|
||||
static void iommufd_backend_class_init(ObjectClass *oc, const void *data)
|
||||
{
|
||||
UserCreatableClass *ucc = USER_CREATABLE_CLASS(oc);
|
||||
|
||||
|
@ -326,7 +326,7 @@ static int hiod_iommufd_get_cap(HostIOMMUDevice *hiod, int cap, Error **errp)
|
|||
}
|
||||
}
|
||||
|
||||
static void hiod_iommufd_class_init(ObjectClass *oc, void *data)
|
||||
static void hiod_iommufd_class_init(ObjectClass *oc, const void *data)
|
||||
{
|
||||
HostIOMMUDeviceClass *hioc = HOST_IOMMU_DEVICE_CLASS(oc);
|
||||
|
||||
|
|
|
@ -55,7 +55,7 @@ static void rng_builtin_finalize(Object *obj)
|
|||
qemu_bh_delete(s->bh);
|
||||
}
|
||||
|
||||
static void rng_builtin_class_init(ObjectClass *klass, void *data)
|
||||
static void rng_builtin_class_init(ObjectClass *klass, const void *data)
|
||||
{
|
||||
RngBackendClass *rbc = RNG_BACKEND_CLASS(klass);
|
||||
|
||||
|
|
|
@ -143,7 +143,7 @@ static void rng_egd_finalize(Object *obj)
|
|||
g_free(s->chr_name);
|
||||
}
|
||||
|
||||
static void rng_egd_class_init(ObjectClass *klass, void *data)
|
||||
static void rng_egd_class_init(ObjectClass *klass, const void *data)
|
||||
{
|
||||
RngBackendClass *rbc = RNG_BACKEND_CLASS(klass);
|
||||
|
||||
|
|
|
@ -121,7 +121,7 @@ static void rng_random_finalize(Object *obj)
|
|||
g_free(s->filename);
|
||||
}
|
||||
|
||||
static void rng_random_class_init(ObjectClass *klass, void *data)
|
||||
static void rng_random_class_init(ObjectClass *klass, const void *data)
|
||||
{
|
||||
RngBackendClass *rbc = RNG_BACKEND_CLASS(klass);
|
||||
|
||||
|
|
|
@ -99,7 +99,7 @@ static void rng_backend_finalize(Object *obj)
|
|||
rng_backend_free_requests(s);
|
||||
}
|
||||
|
||||
static void rng_backend_class_init(ObjectClass *oc, void *data)
|
||||
static void rng_backend_class_init(ObjectClass *oc, const void *data)
|
||||
{
|
||||
UserCreatableClass *ucc = USER_CREATABLE_CLASS(oc);
|
||||
|
||||
|
|
|
@ -1056,7 +1056,7 @@ static void tpm_emulator_inst_finalize(Object *obj)
|
|||
vmstate_unregister(NULL, &vmstate_tpm_emulator, obj);
|
||||
}
|
||||
|
||||
static void tpm_emulator_class_init(ObjectClass *klass, void *data)
|
||||
static void tpm_emulator_class_init(ObjectClass *klass, const void *data)
|
||||
{
|
||||
TPMBackendClass *tbc = TPM_BACKEND_CLASS(klass);
|
||||
|
||||
|
|
|
@ -364,7 +364,7 @@ static void tpm_passthrough_inst_finalize(Object *obj)
|
|||
qapi_free_TPMPassthroughOptions(tpm_pt->options);
|
||||
}
|
||||
|
||||
static void tpm_passthrough_class_init(ObjectClass *klass, void *data)
|
||||
static void tpm_passthrough_class_init(ObjectClass *klass, const void *data)
|
||||
{
|
||||
TPMBackendClass *tbc = TPM_BACKEND_CLASS(klass);
|
||||
|
||||
|
|
|
@ -163,7 +163,7 @@ static char *get_chardev(Object *obj, Error **errp)
|
|||
return NULL;
|
||||
}
|
||||
|
||||
static void vhost_user_backend_class_init(ObjectClass *oc, void *data)
|
||||
static void vhost_user_backend_class_init(ObjectClass *oc, const void *data)
|
||||
{
|
||||
object_class_property_add_str(oc, "chardev", get_chardev, set_chardev);
|
||||
}
|
||||
|
|
|
@ -933,7 +933,8 @@ static bool throttle_group_can_be_deleted(UserCreatable *uc)
|
|||
return OBJECT(uc)->ref == 1;
|
||||
}
|
||||
|
||||
static void throttle_group_obj_class_init(ObjectClass *klass, void *class_data)
|
||||
static void throttle_group_obj_class_init(ObjectClass *klass,
|
||||
const void *class_data)
|
||||
{
|
||||
size_t i = 0;
|
||||
UserCreatableClass *ucc = USER_CREATABLE_CLASS(klass);
|
||||
|
|
|
@ -668,7 +668,7 @@ static void baum_chr_open(Chardev *chr,
|
|||
qemu_set_fd_handler(baum->brlapi_fd, baum_chr_read, NULL, baum);
|
||||
}
|
||||
|
||||
static void char_braille_class_init(ObjectClass *oc, void *data)
|
||||
static void char_braille_class_init(ObjectClass *oc, const void *data)
|
||||
{
|
||||
ChardevClass *cc = CHARDEV_CLASS(oc);
|
||||
|
||||
|
|
|
@ -34,7 +34,7 @@ static void qemu_chr_open_win_con(Chardev *chr,
|
|||
win_chr_set_file(chr, GetStdHandle(STD_OUTPUT_HANDLE), true);
|
||||
}
|
||||
|
||||
static void char_console_class_init(ObjectClass *oc, void *data)
|
||||
static void char_console_class_init(ObjectClass *oc, const void *data)
|
||||
{
|
||||
ChardevClass *cc = CHARDEV_CLASS(oc);
|
||||
|
||||
|
|
|
@ -238,7 +238,7 @@ void qemu_chr_open_fd(Chardev *chr,
|
|||
}
|
||||
}
|
||||
|
||||
static void char_fd_class_init(ObjectClass *oc, void *data)
|
||||
static void char_fd_class_init(ObjectClass *oc, const void *data)
|
||||
{
|
||||
ChardevClass *cc = CHARDEV_CLASS(oc);
|
||||
|
||||
|
|
|
@ -123,7 +123,7 @@ static void qemu_chr_parse_file_out(QemuOpts *opts, ChardevBackend *backend,
|
|||
file->append = qemu_opt_get_bool(opts, "append", false);
|
||||
}
|
||||
|
||||
static void char_file_class_init(ObjectClass *oc, void *data)
|
||||
static void char_file_class_init(ObjectClass *oc, const void *data)
|
||||
{
|
||||
ChardevClass *cc = CHARDEV_CLASS(oc);
|
||||
|
||||
|
|
|
@ -272,7 +272,7 @@ static void qemu_chr_parse_hub(QemuOpts *opts, ChardevBackend *backend,
|
|||
}
|
||||
}
|
||||
|
||||
static void char_hub_class_init(ObjectClass *oc, void *data)
|
||||
static void char_hub_class_init(ObjectClass *oc, const void *data)
|
||||
{
|
||||
ChardevClass *cc = CHARDEV_CLASS(oc);
|
||||
|
||||
|
|
|
@ -447,7 +447,7 @@ void resume_mux_open(void)
|
|||
chardev_options_parsed_cb, NULL);
|
||||
}
|
||||
|
||||
static void char_mux_class_init(ObjectClass *oc, void *data)
|
||||
static void char_mux_class_init(ObjectClass *oc, const void *data)
|
||||
{
|
||||
ChardevClass *cc = CHARDEV_CLASS(oc);
|
||||
|
||||
|
|
|
@ -34,7 +34,7 @@ static void null_chr_open(Chardev *chr,
|
|||
*be_opened = false;
|
||||
}
|
||||
|
||||
static void char_null_class_init(ObjectClass *oc, void *data)
|
||||
static void char_null_class_init(ObjectClass *oc, const void *data)
|
||||
{
|
||||
ChardevClass *cc = CHARDEV_CLASS(oc);
|
||||
|
||||
|
|
|
@ -270,7 +270,7 @@ static void qemu_chr_parse_parallel(QemuOpts *opts, ChardevBackend *backend,
|
|||
parallel->device = g_strdup(device);
|
||||
}
|
||||
|
||||
static void char_parallel_class_init(ObjectClass *oc, void *data)
|
||||
static void char_parallel_class_init(ObjectClass *oc, const void *data)
|
||||
{
|
||||
ChardevClass *cc = CHARDEV_CLASS(oc);
|
||||
|
||||
|
|
|
@ -171,7 +171,7 @@ static void qemu_chr_parse_pipe(QemuOpts *opts, ChardevBackend *backend,
|
|||
dev->device = g_strdup(device);
|
||||
}
|
||||
|
||||
static void char_pipe_class_init(ObjectClass *oc, void *data)
|
||||
static void char_pipe_class_init(ObjectClass *oc, const void *data)
|
||||
{
|
||||
ChardevClass *cc = CHARDEV_CLASS(oc);
|
||||
|
||||
|
|
|
@ -390,7 +390,7 @@ static void char_pty_parse(QemuOpts *opts, ChardevBackend *backend,
|
|||
pty->path = g_strdup(path);
|
||||
}
|
||||
|
||||
static void char_pty_class_init(ObjectClass *oc, void *data)
|
||||
static void char_pty_class_init(ObjectClass *oc, const void *data)
|
||||
{
|
||||
ChardevClass *cc = CHARDEV_CLASS(oc);
|
||||
|
||||
|
|
|
@ -223,7 +223,7 @@ static void qemu_chr_parse_ringbuf(QemuOpts *opts, ChardevBackend *backend,
|
|||
}
|
||||
}
|
||||
|
||||
static void char_ringbuf_class_init(ObjectClass *oc, void *data)
|
||||
static void char_ringbuf_class_init(ObjectClass *oc, const void *data)
|
||||
{
|
||||
ChardevClass *cc = CHARDEV_CLASS(oc);
|
||||
|
||||
|
|
|
@ -298,7 +298,7 @@ static void qemu_chr_parse_serial(QemuOpts *opts, ChardevBackend *backend,
|
|||
serial->device = g_strdup(device);
|
||||
}
|
||||
|
||||
static void char_serial_class_init(ObjectClass *oc, void *data)
|
||||
static void char_serial_class_init(ObjectClass *oc, const void *data)
|
||||
{
|
||||
ChardevClass *cc = CHARDEV_CLASS(oc);
|
||||
|
||||
|
|
|
@ -1581,7 +1581,7 @@ char_socket_get_connected(Object *obj, Error **errp)
|
|||
return s->state == TCP_CHARDEV_STATE_CONNECTED;
|
||||
}
|
||||
|
||||
static void char_socket_class_init(ObjectClass *oc, void *data)
|
||||
static void char_socket_class_init(ObjectClass *oc, const void *data)
|
||||
{
|
||||
ChardevClass *cc = CHARDEV_CLASS(oc);
|
||||
|
||||
|
|
|
@ -136,7 +136,7 @@ static void qemu_chr_parse_stdio(QemuOpts *opts, ChardevBackend *backend,
|
|||
stdio->signal = qemu_opt_get_bool(opts, "signal", true);
|
||||
}
|
||||
|
||||
static void char_stdio_class_init(ObjectClass *oc, void *data)
|
||||
static void char_stdio_class_init(ObjectClass *oc, const void *data)
|
||||
{
|
||||
ChardevClass *cc = CHARDEV_CLASS(oc);
|
||||
|
||||
|
|
|
@ -219,7 +219,7 @@ static void qmp_chardev_open_udp(Chardev *chr,
|
|||
*be_opened = false;
|
||||
}
|
||||
|
||||
static void char_udp_class_init(ObjectClass *oc, void *data)
|
||||
static void char_udp_class_init(ObjectClass *oc, const void *data)
|
||||
{
|
||||
ChardevClass *cc = CHARDEV_CLASS(oc);
|
||||
|
||||
|
|
|
@ -256,7 +256,7 @@ static int win_stdio_write(Chardev *chr, const uint8_t *buf, int len)
|
|||
return len - len1;
|
||||
}
|
||||
|
||||
static void char_win_stdio_class_init(ObjectClass *oc, void *data)
|
||||
static void char_win_stdio_class_init(ObjectClass *oc, const void *data)
|
||||
{
|
||||
ChardevClass *cc = CHARDEV_CLASS(oc);
|
||||
|
||||
|
|
|
@ -220,7 +220,7 @@ void win_chr_set_file(Chardev *chr, HANDLE file, bool keep_open)
|
|||
s->file = file;
|
||||
}
|
||||
|
||||
static void char_win_class_init(ObjectClass *oc, void *data)
|
||||
static void char_win_class_init(ObjectClass *oc, const void *data)
|
||||
{
|
||||
ChardevClass *cc = CHARDEV_CLASS(oc);
|
||||
|
||||
|
|
|
@ -295,7 +295,7 @@ static int null_chr_write(Chardev *chr, const uint8_t *buf, int len)
|
|||
return len;
|
||||
}
|
||||
|
||||
static void char_class_init(ObjectClass *oc, void *data)
|
||||
static void char_class_init(ObjectClass *oc, const void *data)
|
||||
{
|
||||
ChardevClass *cc = CHARDEV_CLASS(oc);
|
||||
|
||||
|
|
|
@ -267,7 +267,7 @@ static void msmouse_chr_open(Chardev *chr,
|
|||
fifo8_create(&mouse->outbuf, MSMOUSE_BUF_SZ);
|
||||
}
|
||||
|
||||
static void char_msmouse_class_init(ObjectClass *oc, void *data)
|
||||
static void char_msmouse_class_init(ObjectClass *oc, const void *data)
|
||||
{
|
||||
ChardevClass *cc = CHARDEV_CLASS(oc);
|
||||
|
||||
|
|
|
@ -347,7 +347,7 @@ static void qemu_chr_parse_spice_port(QemuOpts *opts, ChardevBackend *backend,
|
|||
spiceport->fqdn = g_strdup(name);
|
||||
}
|
||||
|
||||
static void char_spice_class_init(ObjectClass *oc, void *data)
|
||||
static void char_spice_class_init(ObjectClass *oc, const void *data)
|
||||
{
|
||||
ChardevClass *cc = CHARDEV_CLASS(oc);
|
||||
|
||||
|
@ -366,7 +366,7 @@ static const TypeInfo char_spice_type_info = {
|
|||
};
|
||||
module_obj(TYPE_CHARDEV_SPICE);
|
||||
|
||||
static void char_spicevmc_class_init(ObjectClass *oc, void *data)
|
||||
static void char_spicevmc_class_init(ObjectClass *oc, const void *data)
|
||||
{
|
||||
ChardevClass *cc = CHARDEV_CLASS(oc);
|
||||
|
||||
|
@ -382,7 +382,7 @@ static const TypeInfo char_spicevmc_type_info = {
|
|||
};
|
||||
module_obj(TYPE_CHARDEV_SPICEVMC);
|
||||
|
||||
static void char_spiceport_class_init(ObjectClass *oc, void *data)
|
||||
static void char_spiceport_class_init(ObjectClass *oc, const void *data)
|
||||
{
|
||||
ChardevClass *cc = CHARDEV_CLASS(oc);
|
||||
|
||||
|
|
|
@ -110,7 +110,7 @@ static int testdev_chr_write(Chardev *chr, const uint8_t *buf, int len)
|
|||
return orig_len;
|
||||
}
|
||||
|
||||
static void char_testdev_class_init(ObjectClass *oc, void *data)
|
||||
static void char_testdev_class_init(ObjectClass *oc, const void *data)
|
||||
{
|
||||
ChardevClass *cc = CHARDEV_CLASS(oc);
|
||||
|
||||
|
|
|
@ -342,7 +342,7 @@ static void wctablet_chr_open(Chardev *chr,
|
|||
&wctablet_handler);
|
||||
}
|
||||
|
||||
static void wctablet_chr_class_init(ObjectClass *oc, void *data)
|
||||
static void wctablet_chr_class_init(ObjectClass *oc, const void *data)
|
||||
{
|
||||
ChardevClass *cc = CHARDEV_CLASS(oc);
|
||||
|
||||
|
|
|
@ -117,7 +117,7 @@ qcrypto_secret_finalize(Object *obj)
|
|||
}
|
||||
|
||||
static void
|
||||
qcrypto_secret_class_init(ObjectClass *oc, void *data)
|
||||
qcrypto_secret_class_init(ObjectClass *oc, const void *data)
|
||||
{
|
||||
QCryptoSecretCommonClass *sic = QCRYPTO_SECRET_COMMON_CLASS(oc);
|
||||
sic->load_data = qcrypto_secret_load_data;
|
||||
|
|
|
@ -263,7 +263,7 @@ qcrypto_secret_finalize(Object *obj)
|
|||
}
|
||||
|
||||
static void
|
||||
qcrypto_secret_class_init(ObjectClass *oc, void *data)
|
||||
qcrypto_secret_class_init(ObjectClass *oc, const void *data)
|
||||
{
|
||||
UserCreatableClass *ucc = USER_CREATABLE_CLASS(oc);
|
||||
|
||||
|
|
|
@ -103,7 +103,7 @@ qcrypto_secret_prop_get_key(Object *obj, Visitor *v,
|
|||
|
||||
|
||||
static void
|
||||
qcrypto_secret_keyring_class_init(ObjectClass *oc, void *data)
|
||||
qcrypto_secret_keyring_class_init(ObjectClass *oc, const void *data)
|
||||
{
|
||||
QCryptoSecretCommonClass *sic = QCRYPTO_SECRET_COMMON_CLASS(oc);
|
||||
sic->load_data = qcrypto_secret_keyring_load_data;
|
||||
|
|
|
@ -102,7 +102,8 @@ static GByteArray *qcrypto_tls_cipher_suites_fw_cfg_gen_data(Object *obj,
|
|||
errp);
|
||||
}
|
||||
|
||||
static void qcrypto_tls_cipher_suites_class_init(ObjectClass *oc, void *data)
|
||||
static void qcrypto_tls_cipher_suites_class_init(ObjectClass *oc,
|
||||
const void *data)
|
||||
{
|
||||
UserCreatableClass *ucc = USER_CREATABLE_CLASS(oc);
|
||||
FWCfgDataGeneratorClass *fwgc = FW_CFG_DATA_GENERATOR_CLASS(oc);
|
||||
|
|
|
@ -223,7 +223,7 @@ qcrypto_tls_creds_prop_get_endpoint(Object *obj,
|
|||
|
||||
|
||||
static void
|
||||
qcrypto_tls_creds_class_init(ObjectClass *oc, void *data)
|
||||
qcrypto_tls_creds_class_init(ObjectClass *oc, const void *data)
|
||||
{
|
||||
object_class_property_add_bool(oc, "verify-peer",
|
||||
qcrypto_tls_creds_prop_get_verify,
|
||||
|
|
|
@ -137,7 +137,7 @@ qcrypto_tls_creds_anon_finalize(Object *obj)
|
|||
|
||||
|
||||
static void
|
||||
qcrypto_tls_creds_anon_class_init(ObjectClass *oc, void *data)
|
||||
qcrypto_tls_creds_anon_class_init(ObjectClass *oc, const void *data)
|
||||
{
|
||||
UserCreatableClass *ucc = USER_CREATABLE_CLASS(oc);
|
||||
|
||||
|
|
|
@ -236,7 +236,7 @@ qcrypto_tls_creds_psk_prop_get_username(Object *obj,
|
|||
}
|
||||
|
||||
static void
|
||||
qcrypto_tls_creds_psk_class_init(ObjectClass *oc, void *data)
|
||||
qcrypto_tls_creds_psk_class_init(ObjectClass *oc, const void *data)
|
||||
{
|
||||
UserCreatableClass *ucc = USER_CREATABLE_CLASS(oc);
|
||||
|
||||
|
|
|
@ -802,7 +802,7 @@ qcrypto_tls_creds_x509_finalize(Object *obj)
|
|||
|
||||
|
||||
static void
|
||||
qcrypto_tls_creds_x509_class_init(ObjectClass *oc, void *data)
|
||||
qcrypto_tls_creds_x509_class_init(ObjectClass *oc, const void *data)
|
||||
{
|
||||
UserCreatableClass *ucc = USER_CREATABLE_CLASS(oc);
|
||||
QCryptoTLSCredsClass *ctcc = QCRYPTO_TLS_CREDS_CLASS(oc);
|
||||
|
|
|
@ -147,7 +147,7 @@ to introduce an overridden virtual function:
|
|||
|
||||
#include "qdev.h"
|
||||
|
||||
void my_device_class_init(ObjectClass *klass, void *class_data)
|
||||
void my_device_class_init(ObjectClass *klass, const void *class_data)
|
||||
{
|
||||
DeviceClass *dc = DEVICE_CLASS(klass);
|
||||
dc->reset = my_device_reset;
|
||||
|
@ -249,7 +249,7 @@ class, which someone might choose to change at some point.
|
|||
// do something
|
||||
}
|
||||
|
||||
static void my_class_init(ObjectClass *oc, void *data)
|
||||
static void my_class_init(ObjectClass *oc, const void *data)
|
||||
{
|
||||
MyClass *mc = MY_CLASS(oc);
|
||||
|
||||
|
@ -279,7 +279,7 @@ class, which someone might choose to change at some point.
|
|||
// do something else here
|
||||
}
|
||||
|
||||
static void derived_class_init(ObjectClass *oc, void *data)
|
||||
static void derived_class_init(ObjectClass *oc, const void *data)
|
||||
{
|
||||
MyClass *mc = MY_CLASS(oc);
|
||||
DerivedClass *dc = DERIVED_CLASS(oc);
|
||||
|
@ -363,7 +363,7 @@ This is equivalent to the following:
|
|||
:caption: Expansion from defining a simple type
|
||||
|
||||
static void my_device_finalize(Object *obj);
|
||||
static void my_device_class_init(ObjectClass *oc, void *data);
|
||||
static void my_device_class_init(ObjectClass *oc, const void *data);
|
||||
static void my_device_init(Object *obj);
|
||||
|
||||
static const TypeInfo my_device_info = {
|
||||
|
|
|
@ -216,7 +216,7 @@ in reset.
|
|||
ResettablePhases parent_phases;
|
||||
} MyDevClass;
|
||||
|
||||
static void mydev_class_init(ObjectClass *class, void *data)
|
||||
static void mydev_class_init(ObjectClass *class, const void *data)
|
||||
{
|
||||
MyDevClass *myclass = MYDEV_CLASS(class);
|
||||
ResettableClass *rc = RESETTABLE_CLASS(class);
|
||||
|
|
|
@ -119,7 +119,7 @@ manually instantiated:
|
|||
qdev_realize(vdev, BUS(&vpci_dev->bus), errp);
|
||||
}
|
||||
|
||||
static void virtio_blk_pci_class_init(ObjectClass *klass, void *data)
|
||||
static void virtio_blk_pci_class_init(ObjectClass *klass, const void *data)
|
||||
{
|
||||
DeviceClass *dc = DEVICE_CLASS(klass);
|
||||
VirtioPCIClass *k = VIRTIO_PCI_CLASS(klass);
|
||||
|
|
|
@ -97,7 +97,8 @@ static bool event_loop_base_can_be_deleted(UserCreatable *uc)
|
|||
return true;
|
||||
}
|
||||
|
||||
static void event_loop_base_class_init(ObjectClass *klass, void *class_data)
|
||||
static void event_loop_base_class_init(ObjectClass *klass,
|
||||
const void *class_data)
|
||||
{
|
||||
UserCreatableClass *ucc = USER_CREATABLE_CLASS(klass);
|
||||
ucc->complete = event_loop_base_complete;
|
||||
|
|
|
@ -243,7 +243,7 @@ static void gdb_monitor_open(Chardev *chr, ChardevBackend *backend,
|
|||
*be_opened = false;
|
||||
}
|
||||
|
||||
static void char_gdb_class_init(ObjectClass *oc, void *data)
|
||||
static void char_gdb_class_init(ObjectClass *oc, const void *data)
|
||||
{
|
||||
ChardevClass *cc = CHARDEV_CLASS(oc);
|
||||
|
||||
|
|
|
@ -248,7 +248,7 @@ static const Property virtio_9p_properties[] = {
|
|||
DEFINE_PROP_STRING("fsdev", V9fsVirtioState, state.fsconf.fsdev_id),
|
||||
};
|
||||
|
||||
static void virtio_9p_class_init(ObjectClass *klass, void *data)
|
||||
static void virtio_9p_class_init(ObjectClass *klass, const void *data)
|
||||
{
|
||||
DeviceClass *dc = DEVICE_CLASS(klass);
|
||||
VirtioDeviceClass *vdc = VIRTIO_DEVICE_CLASS(klass);
|
||||
|
|
|
@ -1018,7 +1018,7 @@ static const Property erst_properties[] = {
|
|||
default_record_size, ERST_RECORD_SIZE),
|
||||
};
|
||||
|
||||
static void erst_class_init(ObjectClass *klass, void *data)
|
||||
static void erst_class_init(ObjectClass *klass, const void *data)
|
||||
{
|
||||
DeviceClass *dc = DEVICE_CLASS(klass);
|
||||
PCIDeviceClass *k = PCI_DEVICE_CLASS(klass);
|
||||
|
|
|
@ -469,7 +469,7 @@ static void acpi_ged_initfn(Object *obj)
|
|||
sysbus_init_mmio(sbd, &ged_st->regs);
|
||||
}
|
||||
|
||||
static void acpi_ged_class_init(ObjectClass *class, void *data)
|
||||
static void acpi_ged_class_init(ObjectClass *class, const void *data)
|
||||
{
|
||||
DeviceClass *dc = DEVICE_CLASS(class);
|
||||
HotplugHandlerClass *hc = HOTPLUG_HANDLER_CLASS(class);
|
||||
|
|
|
@ -133,7 +133,7 @@ static void acpi_generic_initiator_set_node(Object *obj, Visitor *v,
|
|||
ms->numa_state->nodes[gi->node].has_gi = true;
|
||||
}
|
||||
|
||||
static void acpi_generic_initiator_class_init(ObjectClass *oc, void *data)
|
||||
static void acpi_generic_initiator_class_init(ObjectClass *oc, const void *data)
|
||||
{
|
||||
object_class_property_add_str(oc, "pci-dev", NULL,
|
||||
acpi_generic_initiator_set_pci_device);
|
||||
|
@ -247,7 +247,7 @@ static void acpi_generic_port_set_node(Object *obj, Visitor *v,
|
|||
gp->node = value;
|
||||
}
|
||||
|
||||
static void acpi_generic_port_class_init(ObjectClass *oc, void *data)
|
||||
static void acpi_generic_port_class_init(ObjectClass *oc, const void *data)
|
||||
{
|
||||
object_class_property_add_str(oc, "pci-bus", NULL,
|
||||
acpi_generic_port_set_pci_bus);
|
||||
|
|
|
@ -619,7 +619,7 @@ static const Property piix4_pm_properties[] = {
|
|||
not_migrate_acpi_index, false),
|
||||
};
|
||||
|
||||
static void piix4_pm_class_init(ObjectClass *klass, void *data)
|
||||
static void piix4_pm_class_init(ObjectClass *klass, const void *data)
|
||||
{
|
||||
DeviceClass *dc = DEVICE_CLASS(klass);
|
||||
PCIDeviceClass *k = PCI_DEVICE_CLASS(klass);
|
||||
|
|
|
@ -154,7 +154,7 @@ static void vmclock_realize(DeviceState *dev, Error **errp)
|
|||
vmclock_update_guest(vms);
|
||||
}
|
||||
|
||||
static void vmclock_device_class_init(ObjectClass *klass, void *data)
|
||||
static void vmclock_device_class_init(ObjectClass *klass, const void *data)
|
||||
{
|
||||
DeviceClass *dc = DEVICE_CLASS(klass);
|
||||
|
||||
|
|
|
@ -218,7 +218,7 @@ static const Property vmgenid_device_properties[] = {
|
|||
DEFINE_PROP_UUID(VMGENID_GUID, VmGenIdState, guid),
|
||||
};
|
||||
|
||||
static void vmgenid_device_class_init(ObjectClass *klass, void *data)
|
||||
static void vmgenid_device_class_init(ObjectClass *klass, const void *data)
|
||||
{
|
||||
DeviceClass *dc = DEVICE_CLASS(klass);
|
||||
|
||||
|
|
|
@ -291,7 +291,7 @@ static const Property aspeed_adc_engine_properties[] = {
|
|||
DEFINE_PROP_UINT32("nr-channels", AspeedADCEngineState, nr_channels, 0),
|
||||
};
|
||||
|
||||
static void aspeed_adc_engine_class_init(ObjectClass *klass, void *data)
|
||||
static void aspeed_adc_engine_class_init(ObjectClass *klass, const void *data)
|
||||
{
|
||||
DeviceClass *dc = DEVICE_CLASS(klass);
|
||||
|
||||
|
@ -369,7 +369,7 @@ static void aspeed_adc_realize(DeviceState *dev, Error **errp)
|
|||
}
|
||||
}
|
||||
|
||||
static void aspeed_adc_class_init(ObjectClass *klass, void *data)
|
||||
static void aspeed_adc_class_init(ObjectClass *klass, const void *data)
|
||||
{
|
||||
DeviceClass *dc = DEVICE_CLASS(klass);
|
||||
AspeedADCClass *aac = ASPEED_ADC_CLASS(klass);
|
||||
|
@ -379,7 +379,7 @@ static void aspeed_adc_class_init(ObjectClass *klass, void *data)
|
|||
aac->nr_engines = 1;
|
||||
}
|
||||
|
||||
static void aspeed_2600_adc_class_init(ObjectClass *klass, void *data)
|
||||
static void aspeed_2600_adc_class_init(ObjectClass *klass, const void *data)
|
||||
{
|
||||
DeviceClass *dc = DEVICE_CLASS(klass);
|
||||
AspeedADCClass *aac = ASPEED_ADC_CLASS(klass);
|
||||
|
@ -388,7 +388,7 @@ static void aspeed_2600_adc_class_init(ObjectClass *klass, void *data)
|
|||
aac->nr_engines = 2;
|
||||
}
|
||||
|
||||
static void aspeed_1030_adc_class_init(ObjectClass *klass, void *data)
|
||||
static void aspeed_1030_adc_class_init(ObjectClass *klass, const void *data)
|
||||
{
|
||||
DeviceClass *dc = DEVICE_CLASS(klass);
|
||||
AspeedADCClass *aac = ASPEED_ADC_CLASS(klass);
|
||||
|
@ -397,7 +397,7 @@ static void aspeed_1030_adc_class_init(ObjectClass *klass, void *data)
|
|||
aac->nr_engines = 2;
|
||||
}
|
||||
|
||||
static void aspeed_2700_adc_class_init(ObjectClass *klass, void *data)
|
||||
static void aspeed_2700_adc_class_init(ObjectClass *klass, const void *data)
|
||||
{
|
||||
DeviceClass *dc = DEVICE_CLASS(klass);
|
||||
AspeedADCClass *aac = ASPEED_ADC_CLASS(klass);
|
||||
|
|
|
@ -271,7 +271,7 @@ static const Property npcm7xx_timer_properties[] = {
|
|||
DEFINE_PROP_UINT32("iref", NPCM7xxADCState, iref, NPCM7XX_ADC_DEFAULT_IREF),
|
||||
};
|
||||
|
||||
static void npcm7xx_adc_class_init(ObjectClass *klass, void *data)
|
||||
static void npcm7xx_adc_class_init(ObjectClass *klass, const void *data)
|
||||
{
|
||||
ResettableClass *rc = RESETTABLE_CLASS(klass);
|
||||
DeviceClass *dc = DEVICE_CLASS(klass);
|
||||
|
|
|
@ -284,7 +284,7 @@ static void stm32f2xx_adc_init(Object *obj)
|
|||
sysbus_init_mmio(SYS_BUS_DEVICE(obj), &s->mmio);
|
||||
}
|
||||
|
||||
static void stm32f2xx_adc_class_init(ObjectClass *klass, void *data)
|
||||
static void stm32f2xx_adc_class_init(ObjectClass *klass, const void *data)
|
||||
{
|
||||
DeviceClass *dc = DEVICE_CLASS(klass);
|
||||
|
||||
|
|
|
@ -281,7 +281,7 @@ static const VMStateDescription vmstate_zynq_xadc = {
|
|||
}
|
||||
};
|
||||
|
||||
static void zynq_xadc_class_init(ObjectClass *klass, void *data)
|
||||
static void zynq_xadc_class_init(ObjectClass *klass, const void *data)
|
||||
{
|
||||
DeviceClass *dc = DEVICE_CLASS(klass);
|
||||
|
||||
|
|
|
@ -935,7 +935,7 @@ static const TypeInfo typhoon_pcihost_info = {
|
|||
};
|
||||
|
||||
static void typhoon_iommu_memory_region_class_init(ObjectClass *klass,
|
||||
void *data)
|
||||
const void *data)
|
||||
{
|
||||
IOMMUMemoryRegionClass *imrc = IOMMU_MEMORY_REGION_CLASS(klass);
|
||||
|
||||
|
|
|
@ -208,7 +208,7 @@ static void aw_a10_realize(DeviceState *dev, Error **errp)
|
|||
sysbus_mmio_map_overlap(SYS_BUS_DEVICE(&s->wdt), 0, AW_A10_WDT_BASE, 1);
|
||||
}
|
||||
|
||||
static void aw_a10_class_init(ObjectClass *oc, void *data)
|
||||
static void aw_a10_class_init(ObjectClass *oc, const void *data)
|
||||
{
|
||||
DeviceClass *dc = DEVICE_CLASS(oc);
|
||||
|
||||
|
|
|
@ -466,7 +466,7 @@ static void allwinner_h3_realize(DeviceState *dev, Error **errp)
|
|||
}
|
||||
}
|
||||
|
||||
static void allwinner_h3_class_init(ObjectClass *oc, void *data)
|
||||
static void allwinner_h3_class_init(ObjectClass *oc, const void *data)
|
||||
{
|
||||
DeviceClass *dc = DEVICE_CLASS(oc);
|
||||
|
||||
|
|
|
@ -539,7 +539,7 @@ static void allwinner_r40_realize(DeviceState *dev, Error **errp)
|
|||
}
|
||||
}
|
||||
|
||||
static void allwinner_r40_class_init(ObjectClass *oc, void *data)
|
||||
static void allwinner_r40_class_init(ObjectClass *oc, const void *data)
|
||||
{
|
||||
DeviceClass *dc = DEVICE_CLASS(oc);
|
||||
|
||||
|
|
|
@ -1691,7 +1691,7 @@ static void armsse_reset(DeviceState *dev)
|
|||
s->nsccfg = 0;
|
||||
}
|
||||
|
||||
static void armsse_class_init(ObjectClass *klass, void *data)
|
||||
static void armsse_class_init(ObjectClass *klass, const void *data)
|
||||
{
|
||||
DeviceClass *dc = DEVICE_CLASS(klass);
|
||||
IDAUInterfaceClass *iic = IDAU_INTERFACE_CLASS(klass);
|
||||
|
|
|
@ -565,7 +565,7 @@ static const VMStateDescription vmstate_armv7m = {
|
|||
}
|
||||
};
|
||||
|
||||
static void armv7m_class_init(ObjectClass *klass, void *data)
|
||||
static void armv7m_class_init(ObjectClass *klass, const void *data)
|
||||
{
|
||||
DeviceClass *dc = DEVICE_CLASS(klass);
|
||||
|
||||
|
@ -636,7 +636,7 @@ static const Property bitband_properties[] = {
|
|||
TYPE_MEMORY_REGION, MemoryRegion *),
|
||||
};
|
||||
|
||||
static void bitband_class_init(ObjectClass *klass, void *data)
|
||||
static void bitband_class_init(ObjectClass *klass, const void *data)
|
||||
{
|
||||
DeviceClass *dc = DEVICE_CLASS(klass);
|
||||
|
||||
|
|
|
@ -1227,7 +1227,7 @@ static void aspeed_machine_ast2600_class_emmc_init(ObjectClass *oc)
|
|||
"Set or unset boot from EMMC");
|
||||
}
|
||||
|
||||
static void aspeed_machine_class_init(ObjectClass *oc, void *data)
|
||||
static void aspeed_machine_class_init(ObjectClass *oc, const void *data)
|
||||
{
|
||||
MachineClass *mc = MACHINE_CLASS(oc);
|
||||
AspeedMachineClass *amc = ASPEED_MACHINE_CLASS(oc);
|
||||
|
@ -1243,7 +1243,8 @@ static void aspeed_machine_class_init(ObjectClass *oc, void *data)
|
|||
aspeed_machine_class_props_init(oc);
|
||||
}
|
||||
|
||||
static void aspeed_machine_palmetto_class_init(ObjectClass *oc, void *data)
|
||||
static void aspeed_machine_palmetto_class_init(ObjectClass *oc,
|
||||
const void *data)
|
||||
{
|
||||
MachineClass *mc = MACHINE_CLASS(oc);
|
||||
AspeedMachineClass *amc = ASPEED_MACHINE_CLASS(oc);
|
||||
|
@ -1260,7 +1261,8 @@ static void aspeed_machine_palmetto_class_init(ObjectClass *oc, void *data)
|
|||
aspeed_machine_class_init_cpus_defaults(mc);
|
||||
};
|
||||
|
||||
static void aspeed_machine_quanta_q71l_class_init(ObjectClass *oc, void *data)
|
||||
static void aspeed_machine_quanta_q71l_class_init(ObjectClass *oc,
|
||||
const void *data)
|
||||
{
|
||||
MachineClass *mc = MACHINE_CLASS(oc);
|
||||
AspeedMachineClass *amc = ASPEED_MACHINE_CLASS(oc);
|
||||
|
@ -1278,7 +1280,7 @@ static void aspeed_machine_quanta_q71l_class_init(ObjectClass *oc, void *data)
|
|||
}
|
||||
|
||||
static void aspeed_machine_supermicrox11_bmc_class_init(ObjectClass *oc,
|
||||
void *data)
|
||||
const void *data)
|
||||
{
|
||||
MachineClass *mc = MACHINE_CLASS(oc);
|
||||
AspeedMachineClass *amc = ASPEED_MACHINE_CLASS(oc);
|
||||
|
@ -1297,7 +1299,7 @@ static void aspeed_machine_supermicrox11_bmc_class_init(ObjectClass *oc,
|
|||
}
|
||||
|
||||
static void aspeed_machine_supermicro_x11spi_bmc_class_init(ObjectClass *oc,
|
||||
void *data)
|
||||
const void *data)
|
||||
{
|
||||
MachineClass *mc = MACHINE_CLASS(oc);
|
||||
AspeedMachineClass *amc = ASPEED_MACHINE_CLASS(oc);
|
||||
|
@ -1315,7 +1317,8 @@ static void aspeed_machine_supermicro_x11spi_bmc_class_init(ObjectClass *oc,
|
|||
aspeed_machine_class_init_cpus_defaults(mc);
|
||||
}
|
||||
|
||||
static void aspeed_machine_ast2500_evb_class_init(ObjectClass *oc, void *data)
|
||||
static void aspeed_machine_ast2500_evb_class_init(ObjectClass *oc,
|
||||
const void *data)
|
||||
{
|
||||
MachineClass *mc = MACHINE_CLASS(oc);
|
||||
AspeedMachineClass *amc = ASPEED_MACHINE_CLASS(oc);
|
||||
|
@ -1332,7 +1335,8 @@ static void aspeed_machine_ast2500_evb_class_init(ObjectClass *oc, void *data)
|
|||
aspeed_machine_class_init_cpus_defaults(mc);
|
||||
};
|
||||
|
||||
static void aspeed_machine_yosemitev2_class_init(ObjectClass *oc, void *data)
|
||||
static void aspeed_machine_yosemitev2_class_init(ObjectClass *oc,
|
||||
const void *data)
|
||||
{
|
||||
MachineClass *mc = MACHINE_CLASS(oc);
|
||||
AspeedMachineClass *amc = ASPEED_MACHINE_CLASS(oc);
|
||||
|
@ -1350,7 +1354,8 @@ static void aspeed_machine_yosemitev2_class_init(ObjectClass *oc, void *data)
|
|||
aspeed_machine_class_init_cpus_defaults(mc);
|
||||
};
|
||||
|
||||
static void aspeed_machine_romulus_class_init(ObjectClass *oc, void *data)
|
||||
static void aspeed_machine_romulus_class_init(ObjectClass *oc,
|
||||
const void *data)
|
||||
{
|
||||
MachineClass *mc = MACHINE_CLASS(oc);
|
||||
AspeedMachineClass *amc = ASPEED_MACHINE_CLASS(oc);
|
||||
|
@ -1367,7 +1372,8 @@ static void aspeed_machine_romulus_class_init(ObjectClass *oc, void *data)
|
|||
aspeed_machine_class_init_cpus_defaults(mc);
|
||||
};
|
||||
|
||||
static void aspeed_machine_tiogapass_class_init(ObjectClass *oc, void *data)
|
||||
static void aspeed_machine_tiogapass_class_init(ObjectClass *oc,
|
||||
const void *data)
|
||||
{
|
||||
MachineClass *mc = MACHINE_CLASS(oc);
|
||||
AspeedMachineClass *amc = ASPEED_MACHINE_CLASS(oc);
|
||||
|
@ -1385,7 +1391,8 @@ static void aspeed_machine_tiogapass_class_init(ObjectClass *oc, void *data)
|
|||
aspeed_machine_class_init_cpus_defaults(mc);
|
||||
};
|
||||
|
||||
static void aspeed_machine_sonorapass_class_init(ObjectClass *oc, void *data)
|
||||
static void aspeed_machine_sonorapass_class_init(ObjectClass *oc,
|
||||
const void *data)
|
||||
{
|
||||
MachineClass *mc = MACHINE_CLASS(oc);
|
||||
AspeedMachineClass *amc = ASPEED_MACHINE_CLASS(oc);
|
||||
|
@ -1402,7 +1409,8 @@ static void aspeed_machine_sonorapass_class_init(ObjectClass *oc, void *data)
|
|||
aspeed_machine_class_init_cpus_defaults(mc);
|
||||
};
|
||||
|
||||
static void aspeed_machine_witherspoon_class_init(ObjectClass *oc, void *data)
|
||||
static void aspeed_machine_witherspoon_class_init(ObjectClass *oc,
|
||||
const void *data)
|
||||
{
|
||||
MachineClass *mc = MACHINE_CLASS(oc);
|
||||
AspeedMachineClass *amc = ASPEED_MACHINE_CLASS(oc);
|
||||
|
@ -1419,7 +1427,8 @@ static void aspeed_machine_witherspoon_class_init(ObjectClass *oc, void *data)
|
|||
aspeed_machine_class_init_cpus_defaults(mc);
|
||||
};
|
||||
|
||||
static void aspeed_machine_ast2600_evb_class_init(ObjectClass *oc, void *data)
|
||||
static void aspeed_machine_ast2600_evb_class_init(ObjectClass *oc,
|
||||
const void *data)
|
||||
{
|
||||
MachineClass *mc = MACHINE_CLASS(oc);
|
||||
AspeedMachineClass *amc = ASPEED_MACHINE_CLASS(oc);
|
||||
|
@ -1441,7 +1450,7 @@ static void aspeed_machine_ast2600_evb_class_init(ObjectClass *oc, void *data)
|
|||
aspeed_machine_ast2600_class_emmc_init(oc);
|
||||
};
|
||||
|
||||
static void aspeed_machine_g220a_class_init(ObjectClass *oc, void *data)
|
||||
static void aspeed_machine_g220a_class_init(ObjectClass *oc, const void *data)
|
||||
{
|
||||
MachineClass *mc = MACHINE_CLASS(oc);
|
||||
AspeedMachineClass *amc = ASPEED_MACHINE_CLASS(oc);
|
||||
|
@ -1459,7 +1468,8 @@ static void aspeed_machine_g220a_class_init(ObjectClass *oc, void *data)
|
|||
aspeed_machine_class_init_cpus_defaults(mc);
|
||||
};
|
||||
|
||||
static void aspeed_machine_fp5280g2_class_init(ObjectClass *oc, void *data)
|
||||
static void aspeed_machine_fp5280g2_class_init(ObjectClass *oc,
|
||||
const void *data)
|
||||
{
|
||||
MachineClass *mc = MACHINE_CLASS(oc);
|
||||
AspeedMachineClass *amc = ASPEED_MACHINE_CLASS(oc);
|
||||
|
@ -1477,7 +1487,7 @@ static void aspeed_machine_fp5280g2_class_init(ObjectClass *oc, void *data)
|
|||
aspeed_machine_class_init_cpus_defaults(mc);
|
||||
};
|
||||
|
||||
static void aspeed_machine_rainier_class_init(ObjectClass *oc, void *data)
|
||||
static void aspeed_machine_rainier_class_init(ObjectClass *oc, const void *data)
|
||||
{
|
||||
MachineClass *mc = MACHINE_CLASS(oc);
|
||||
AspeedMachineClass *amc = ASPEED_MACHINE_CLASS(oc);
|
||||
|
@ -1499,7 +1509,7 @@ static void aspeed_machine_rainier_class_init(ObjectClass *oc, void *data)
|
|||
|
||||
#define FUJI_BMC_RAM_SIZE ASPEED_RAM_SIZE(2 * GiB)
|
||||
|
||||
static void aspeed_machine_fuji_class_init(ObjectClass *oc, void *data)
|
||||
static void aspeed_machine_fuji_class_init(ObjectClass *oc, const void *data)
|
||||
{
|
||||
MachineClass *mc = MACHINE_CLASS(oc);
|
||||
AspeedMachineClass *amc = ASPEED_MACHINE_CLASS(oc);
|
||||
|
@ -1521,7 +1531,8 @@ static void aspeed_machine_fuji_class_init(ObjectClass *oc, void *data)
|
|||
|
||||
#define BLETCHLEY_BMC_RAM_SIZE ASPEED_RAM_SIZE(2 * GiB)
|
||||
|
||||
static void aspeed_machine_bletchley_class_init(ObjectClass *oc, void *data)
|
||||
static void aspeed_machine_bletchley_class_init(ObjectClass *oc,
|
||||
const void *data)
|
||||
{
|
||||
MachineClass *mc = MACHINE_CLASS(oc);
|
||||
AspeedMachineClass *amc = ASPEED_MACHINE_CLASS(oc);
|
||||
|
@ -1566,7 +1577,7 @@ static void fby35_reset(MachineState *state, ResetType type)
|
|||
object_property_set_bool(OBJECT(gpio), "gpioB5", false, &error_fatal);
|
||||
}
|
||||
|
||||
static void aspeed_machine_fby35_class_init(ObjectClass *oc, void *data)
|
||||
static void aspeed_machine_fby35_class_init(ObjectClass *oc, const void *data)
|
||||
{
|
||||
MachineClass *mc = MACHINE_CLASS(oc);
|
||||
AspeedMachineClass *amc = ASPEED_MACHINE_CLASS(oc);
|
||||
|
@ -1644,7 +1655,7 @@ static void ast1030_evb_i2c_init(AspeedMachineState *bmc)
|
|||
}
|
||||
|
||||
static void aspeed_minibmc_machine_ast1030_evb_class_init(ObjectClass *oc,
|
||||
void *data)
|
||||
const void *data)
|
||||
{
|
||||
MachineClass *mc = MACHINE_CLASS(oc);
|
||||
AspeedMachineClass *amc = ASPEED_MACHINE_CLASS(oc);
|
||||
|
@ -1673,7 +1684,8 @@ static void ast2700_evb_i2c_init(AspeedMachineState *bmc)
|
|||
TYPE_TMP105, 0x4d);
|
||||
}
|
||||
|
||||
static void aspeed_machine_ast2700a0_evb_class_init(ObjectClass *oc, void *data)
|
||||
static void aspeed_machine_ast2700a0_evb_class_init(ObjectClass *oc,
|
||||
const void *data)
|
||||
{
|
||||
MachineClass *mc = MACHINE_CLASS(oc);
|
||||
AspeedMachineClass *amc = ASPEED_MACHINE_CLASS(oc);
|
||||
|
@ -1694,7 +1706,8 @@ static void aspeed_machine_ast2700a0_evb_class_init(ObjectClass *oc, void *data)
|
|||
aspeed_machine_class_init_cpus_defaults(mc);
|
||||
}
|
||||
|
||||
static void aspeed_machine_ast2700a1_evb_class_init(ObjectClass *oc, void *data)
|
||||
static void aspeed_machine_ast2700a1_evb_class_init(ObjectClass *oc,
|
||||
const void *data)
|
||||
{
|
||||
MachineClass *mc = MACHINE_CLASS(oc);
|
||||
AspeedMachineClass *amc = ASPEED_MACHINE_CLASS(oc);
|
||||
|
@ -1716,7 +1729,7 @@ static void aspeed_machine_ast2700a1_evb_class_init(ObjectClass *oc, void *data)
|
|||
#endif
|
||||
|
||||
static void aspeed_machine_qcom_dc_scm_v1_class_init(ObjectClass *oc,
|
||||
void *data)
|
||||
const void *data)
|
||||
{
|
||||
MachineClass *mc = MACHINE_CLASS(oc);
|
||||
AspeedMachineClass *amc = ASPEED_MACHINE_CLASS(oc);
|
||||
|
@ -1736,7 +1749,7 @@ static void aspeed_machine_qcom_dc_scm_v1_class_init(ObjectClass *oc,
|
|||
};
|
||||
|
||||
static void aspeed_machine_qcom_firework_class_init(ObjectClass *oc,
|
||||
void *data)
|
||||
const void *data)
|
||||
{
|
||||
MachineClass *mc = MACHINE_CLASS(oc);
|
||||
AspeedMachineClass *amc = ASPEED_MACHINE_CLASS(oc);
|
||||
|
|
|
@ -415,7 +415,7 @@ static void aspeed_soc_ast1030_realize(DeviceState *dev_soc, Error **errp)
|
|||
sc->memmap[ASPEED_DEV_JTAG1], 0x20);
|
||||
}
|
||||
|
||||
static void aspeed_soc_ast1030_class_init(ObjectClass *klass, void *data)
|
||||
static void aspeed_soc_ast1030_class_init(ObjectClass *klass, const void *data)
|
||||
{
|
||||
static const char * const valid_cpu_types[] = {
|
||||
ARM_CPU_TYPE_NAME("cortex-m4"), /* TODO cortex-m4f */
|
||||
|
|
|
@ -502,7 +502,7 @@ static void aspeed_ast2400_soc_realize(DeviceState *dev, Error **errp)
|
|||
aspeed_soc_get_irq(s, ASPEED_DEV_HACE));
|
||||
}
|
||||
|
||||
static void aspeed_soc_ast2400_class_init(ObjectClass *oc, void *data)
|
||||
static void aspeed_soc_ast2400_class_init(ObjectClass *oc, const void *data)
|
||||
{
|
||||
static const char * const valid_cpu_types[] = {
|
||||
ARM_CPU_TYPE_NAME("arm926"),
|
||||
|
@ -530,7 +530,7 @@ static void aspeed_soc_ast2400_class_init(ObjectClass *oc, void *data)
|
|||
sc->get_irq = aspeed_soc_ast2400_get_irq;
|
||||
}
|
||||
|
||||
static void aspeed_soc_ast2500_class_init(ObjectClass *oc, void *data)
|
||||
static void aspeed_soc_ast2500_class_init(ObjectClass *oc, const void *data)
|
||||
{
|
||||
static const char * const valid_cpu_types[] = {
|
||||
ARM_CPU_TYPE_NAME("arm1176"),
|
||||
|
|
|
@ -653,7 +653,7 @@ static bool aspeed_soc_ast2600_boot_from_emmc(AspeedSoCState *s)
|
|||
return !!(hw_strap1 & SCU_AST2600_HW_STRAP_BOOT_SRC_EMMC);
|
||||
}
|
||||
|
||||
static void aspeed_soc_ast2600_class_init(ObjectClass *oc, void *data)
|
||||
static void aspeed_soc_ast2600_class_init(ObjectClass *oc, const void *data)
|
||||
{
|
||||
static const char * const valid_cpu_types[] = {
|
||||
ARM_CPU_TYPE_NAME("cortex-a7"),
|
||||
|
|
|
@ -883,7 +883,7 @@ static void aspeed_soc_ast2700_realize(DeviceState *dev, Error **errp)
|
|||
create_unimplemented_device("ast2700.io", 0x0, 0x4000000);
|
||||
}
|
||||
|
||||
static void aspeed_soc_ast2700a0_class_init(ObjectClass *oc, void *data)
|
||||
static void aspeed_soc_ast2700a0_class_init(ObjectClass *oc, const void *data)
|
||||
{
|
||||
static const char * const valid_cpu_types[] = {
|
||||
ARM_CPU_TYPE_NAME("cortex-a35"),
|
||||
|
@ -910,7 +910,7 @@ static void aspeed_soc_ast2700a0_class_init(ObjectClass *oc, void *data)
|
|||
sc->get_irq = aspeed_soc_ast2700_get_irq;
|
||||
}
|
||||
|
||||
static void aspeed_soc_ast2700a1_class_init(ObjectClass *oc, void *data)
|
||||
static void aspeed_soc_ast2700a1_class_init(ObjectClass *oc, const void *data)
|
||||
{
|
||||
static const char * const valid_cpu_types[] = {
|
||||
ARM_CPU_TYPE_NAME("cortex-a35"),
|
||||
|
|
|
@ -146,7 +146,7 @@ static const Property aspeed_soc_properties[] = {
|
|||
MemoryRegion *),
|
||||
};
|
||||
|
||||
static void aspeed_soc_class_init(ObjectClass *oc, void *data)
|
||||
static void aspeed_soc_class_init(ObjectClass *oc, const void *data)
|
||||
{
|
||||
DeviceClass *dc = DEVICE_CLASS(oc);
|
||||
AspeedSoCClass *sc = ASPEED_SOC_CLASS(oc);
|
||||
|
|
|
@ -110,7 +110,7 @@ static void bl475e_init(MachineState *machine)
|
|||
}
|
||||
}
|
||||
|
||||
static void bl475e_machine_init(ObjectClass *oc, void *data)
|
||||
static void bl475e_machine_init(ObjectClass *oc, const void *data)
|
||||
{
|
||||
MachineClass *mc = MACHINE_CLASS(oc);
|
||||
static const char *machine_valid_cpu_types[] = {
|
||||
|
|
|
@ -520,7 +520,7 @@ void bcm_soc_peripherals_common_realize(DeviceState *dev, Error **errp)
|
|||
create_unimp(s, &s->sdramc, "bcm2835-sdramc", SDRAMC_OFFSET, 0x100);
|
||||
}
|
||||
|
||||
static void bcm2835_peripherals_class_init(ObjectClass *oc, void *data)
|
||||
static void bcm2835_peripherals_class_init(ObjectClass *oc, const void *data)
|
||||
{
|
||||
DeviceClass *dc = DEVICE_CLASS(oc);
|
||||
BCMSocPeripheralBaseClass *bc = BCM_SOC_PERIPHERALS_BASE_CLASS(oc);
|
||||
|
|
|
@ -163,7 +163,7 @@ static void bcm2836_realize(DeviceState *dev, Error **errp)
|
|||
}
|
||||
}
|
||||
|
||||
static void bcm283x_base_class_init(ObjectClass *oc, void *data)
|
||||
static void bcm283x_base_class_init(ObjectClass *oc, const void *data)
|
||||
{
|
||||
DeviceClass *dc = DEVICE_CLASS(oc);
|
||||
|
||||
|
@ -171,7 +171,7 @@ static void bcm283x_base_class_init(ObjectClass *oc, void *data)
|
|||
dc->user_creatable = false;
|
||||
}
|
||||
|
||||
static void bcm2835_class_init(ObjectClass *oc, void *data)
|
||||
static void bcm2835_class_init(ObjectClass *oc, const void *data)
|
||||
{
|
||||
DeviceClass *dc = DEVICE_CLASS(oc);
|
||||
BCM283XBaseClass *bc = BCM283X_BASE_CLASS(oc);
|
||||
|
@ -182,7 +182,7 @@ static void bcm2835_class_init(ObjectClass *oc, void *data)
|
|||
dc->realize = bcm2835_realize;
|
||||
};
|
||||
|
||||
static void bcm2836_class_init(ObjectClass *oc, void *data)
|
||||
static void bcm2836_class_init(ObjectClass *oc, const void *data)
|
||||
{
|
||||
DeviceClass *dc = DEVICE_CLASS(oc);
|
||||
BCM283XBaseClass *bc = BCM283X_BASE_CLASS(oc);
|
||||
|
@ -196,7 +196,7 @@ static void bcm2836_class_init(ObjectClass *oc, void *data)
|
|||
};
|
||||
|
||||
#ifdef TARGET_AARCH64
|
||||
static void bcm2837_class_init(ObjectClass *oc, void *data)
|
||||
static void bcm2837_class_init(ObjectClass *oc, const void *data)
|
||||
{
|
||||
DeviceClass *dc = DEVICE_CLASS(oc);
|
||||
BCM283XBaseClass *bc = BCM283X_BASE_CLASS(oc);
|
||||
|
|
|
@ -233,7 +233,7 @@ static void bcm2838_realize(DeviceState *dev, Error **errp)
|
|||
qdev_pass_gpios(DEVICE(&s->gic), DEVICE(&s->peripherals), NULL);
|
||||
}
|
||||
|
||||
static void bcm2838_class_init(ObjectClass *oc, void *data)
|
||||
static void bcm2838_class_init(ObjectClass *oc, const void *data)
|
||||
{
|
||||
DeviceClass *dc = DEVICE_CLASS(oc);
|
||||
BCM283XBaseClass *bc_base = BCM283X_BASE_CLASS(oc);
|
||||
|
|
|
@ -196,7 +196,7 @@ static void bcm2838_peripherals_realize(DeviceState *dev, Error **errp)
|
|||
create_unimp(s_base, &s->asb, "bcm2838-asb", BRDG_OFFSET, 0x24);
|
||||
}
|
||||
|
||||
static void bcm2838_peripherals_class_init(ObjectClass *oc, void *data)
|
||||
static void bcm2838_peripherals_class_init(ObjectClass *oc, const void *data)
|
||||
{
|
||||
DeviceClass *dc = DEVICE_CLASS(oc);
|
||||
BCM2838PeripheralClass *bc = BCM2838_PERIPHERALS_CLASS(oc);
|
||||
|
|
|
@ -69,7 +69,7 @@ static void collie_init(MachineState *machine)
|
|||
arm_load_kernel(cms->sa1110->cpu, machine, &collie_binfo);
|
||||
}
|
||||
|
||||
static void collie_machine_class_init(ObjectClass *oc, void *data)
|
||||
static void collie_machine_class_init(ObjectClass *oc, const void *data)
|
||||
{
|
||||
MachineClass *mc = MACHINE_CLASS(oc);
|
||||
|
||||
|
|
|
@ -79,7 +79,7 @@ static void digic_realize(DeviceState *dev, Error **errp)
|
|||
sysbus_mmio_map(sbd, 0, DIGIC_UART_BASE);
|
||||
}
|
||||
|
||||
static void digic_class_init(ObjectClass *oc, void *data)
|
||||
static void digic_class_init(ObjectClass *oc, const void *data)
|
||||
{
|
||||
DeviceClass *dc = DEVICE_CLASS(oc);
|
||||
|
||||
|
|
|
@ -842,7 +842,7 @@ static void exynos4210_init(Object *obj)
|
|||
TYPE_EXYNOS4210_COMBINER);
|
||||
}
|
||||
|
||||
static void exynos4210_class_init(ObjectClass *klass, void *data)
|
||||
static void exynos4210_class_init(ObjectClass *klass, const void *data)
|
||||
{
|
||||
DeviceClass *dc = DEVICE_CLASS(klass);
|
||||
|
||||
|
|
|
@ -154,7 +154,7 @@ static const char * const valid_cpu_types[] = {
|
|||
NULL
|
||||
};
|
||||
|
||||
static void nuri_class_init(ObjectClass *oc, void *data)
|
||||
static void nuri_class_init(ObjectClass *oc, const void *data)
|
||||
{
|
||||
MachineClass *mc = MACHINE_CLASS(oc);
|
||||
|
||||
|
@ -174,7 +174,7 @@ static const TypeInfo nuri_type = {
|
|||
.class_init = nuri_class_init,
|
||||
};
|
||||
|
||||
static void smdkc210_class_init(ObjectClass *oc, void *data)
|
||||
static void smdkc210_class_init(ObjectClass *oc, const void *data)
|
||||
{
|
||||
MachineClass *mc = MACHINE_CLASS(oc);
|
||||
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Add a link
Reference in a new issue