Ejemplo n.º 1
0
void visit_type_KvmInfo(Visitor *m, KvmInfo ** obj, const char *name, Error **errp)
{
    visit_start_struct(m, (void **)obj, "KvmInfo", name, sizeof(KvmInfo), errp);
    visit_type_bool(m, (obj && *obj) ? &(*obj)->enabled : NULL, "enabled", errp);
    visit_type_bool(m, (obj && *obj) ? &(*obj)->present : NULL, "present", errp);
    visit_end_struct(m, errp);
}
Ejemplo n.º 2
0
void visit_type_CpuInfo(Visitor *m, CpuInfo ** obj, const char *name, Error **errp)
{
    visit_start_struct(m, (void **)obj, "CpuInfo", name, sizeof(CpuInfo), errp);
    visit_type_int(m, (obj && *obj) ? &(*obj)->CPU : NULL, "CPU", errp);
    visit_type_bool(m, (obj && *obj) ? &(*obj)->current : NULL, "current", errp);
    visit_type_bool(m, (obj && *obj) ? &(*obj)->halted : NULL, "halted", errp);
    visit_start_optional(m, (obj && *obj) ? &(*obj)->has_pc : NULL, "pc", errp);
    if ((*obj)->has_pc) {
        visit_type_int(m, (obj && *obj) ? &(*obj)->pc : NULL, "pc", errp);
    }
    visit_end_optional(m, errp);
    visit_start_optional(m, (obj && *obj) ? &(*obj)->has_nip : NULL, "nip", errp);
    if ((*obj)->has_nip) {
        visit_type_int(m, (obj && *obj) ? &(*obj)->nip : NULL, "nip", errp);
    }
    visit_end_optional(m, errp);
    visit_start_optional(m, (obj && *obj) ? &(*obj)->has_npc : NULL, "npc", errp);
    if ((*obj)->has_npc) {
        visit_type_int(m, (obj && *obj) ? &(*obj)->npc : NULL, "npc", errp);
    }
    visit_end_optional(m, errp);
    visit_start_optional(m, (obj && *obj) ? &(*obj)->has_PC : NULL, "PC", errp);
    if ((*obj)->has_PC) {
        visit_type_int(m, (obj && *obj) ? &(*obj)->PC : NULL, "PC", errp);
    }
    visit_end_optional(m, errp);
    visit_type_int(m, (obj && *obj) ? &(*obj)->thread_id : NULL, "thread_id", errp);
    visit_end_struct(m, errp);
}
Ejemplo n.º 3
0
void visit_type_StatusInfo(Visitor *m, StatusInfo ** obj, const char *name, Error **errp)
{
    visit_start_struct(m, (void **)obj, "StatusInfo", name, sizeof(StatusInfo), errp);
    visit_type_bool(m, (obj && *obj) ? &(*obj)->running : NULL, "running", errp);
    visit_type_bool(m, (obj && *obj) ? &(*obj)->singlestep : NULL, "singlestep", errp);
    visit_type_RunState(m, (obj && *obj) ? &(*obj)->status : NULL, "status", errp);
    visit_end_struct(m, errp);
}
Ejemplo n.º 4
0
static void visit_type_GuestAgentCommandInfo_fields(Visitor *m, GuestAgentCommandInfo ** obj, Error **errp)
{
    Error *err = NULL;
    visit_type_str(m, obj ? &(*obj)->name : NULL, "name", &err);
    visit_type_bool(m, obj ? &(*obj)->enabled : NULL, "enabled", &err);
    visit_type_bool(m, obj ? &(*obj)->success_response : NULL, "success-response", &err);

    error_propagate(errp, err);
}
Ejemplo n.º 5
0
void visit_type_MouseInfo(Visitor *m, MouseInfo ** obj, const char *name, Error **errp)
{
    visit_start_struct(m, (void **)obj, "MouseInfo", name, sizeof(MouseInfo), errp);
    visit_type_str(m, (obj && *obj) ? &(*obj)->name : NULL, "name", errp);
    visit_type_int(m, (obj && *obj) ? &(*obj)->index : NULL, "index", errp);
    visit_type_bool(m, (obj && *obj) ? &(*obj)->current : NULL, "current", errp);
    visit_type_bool(m, (obj && *obj) ? &(*obj)->absolute : NULL, "absolute", errp);
    visit_end_struct(m, errp);
}
Ejemplo n.º 6
0
static void visit_type_GuestLogicalProcessor_fields(Visitor *m, GuestLogicalProcessor ** obj, Error **errp)
{
    Error *err = NULL;
    visit_type_int(m, obj ? &(*obj)->logical_id : NULL, "logical-id", &err);
    visit_type_bool(m, obj ? &(*obj)->online : NULL, "online", &err);
    visit_start_optional(m, obj ? &(*obj)->has_can_offline : NULL, "can-offline", &err);
    if (obj && (*obj)->has_can_offline) {
        visit_type_bool(m, obj ? &(*obj)->can_offline : NULL, "can-offline", &err);
    }
    visit_end_optional(m, &err);

    error_propagate(errp, err);
}
Ejemplo n.º 7
0
void visit_type_BlockDeviceInfo(Visitor *m, BlockDeviceInfo ** obj, const char *name, Error **errp)
{
    visit_start_struct(m, (void **)obj, "BlockDeviceInfo", name, sizeof(BlockDeviceInfo), errp);
    visit_type_str(m, (obj && *obj) ? &(*obj)->file : NULL, "file", errp);
    visit_type_bool(m, (obj && *obj) ? &(*obj)->ro : NULL, "ro", errp);
    visit_type_str(m, (obj && *obj) ? &(*obj)->drv : NULL, "drv", errp);
    visit_start_optional(m, (obj && *obj) ? &(*obj)->has_backing_file : NULL, "backing_file", errp);
    if ((*obj)->has_backing_file) {
        visit_type_str(m, (obj && *obj) ? &(*obj)->backing_file : NULL, "backing_file", errp);
    }
    visit_end_optional(m, errp);
    visit_type_bool(m, (obj && *obj) ? &(*obj)->encrypted : NULL, "encrypted", errp);
    visit_end_struct(m, errp);
}
Ejemplo n.º 8
0
static void visit_type_TestStruct(Visitor *v, TestStruct **obj,
                                  const char *name, Error **errp)
{
    Error *err = NULL;

    visit_start_struct(v, (void **)obj, "TestStruct", name, sizeof(TestStruct),
                       &err);
    if (err) {
        goto out;
    }
    visit_type_int(v, &(*obj)->integer, "integer", &err);
    if (err) {
        goto out_end;
    }
    visit_type_bool(v, &(*obj)->boolean, "boolean", &err);
    if (err) {
        goto out_end;
    }
    visit_type_str(v, &(*obj)->string, "string", &err);

out_end:
    error_propagate(errp, err);
    err = NULL;
    visit_end_struct(v, &err);
out:
    error_propagate(errp, err);
}
Ejemplo n.º 9
0
static void set_feature(Object *obj, Visitor *v, const char *name,
                        void *opaque, Error **errp)
{
    S390Feat feat = (S390Feat) opaque;
    DeviceState *dev = DEVICE(obj);
    S390CPU *cpu = S390_CPU(obj);
    bool value;

    if (dev->realized) {
        error_setg(errp, "Attempt to set property '%s' on '%s' after "
                   "it was realized", name, object_get_typename(obj));
        return;
    } else if (!cpu->model) {
        error_setg(errp, "Details about the host CPU model are not available, "
                         "features cannot be changed.");
        return;
    }

    visit_type_bool(v, name, &value, errp);
    if (*errp) {
        return;
    }
    if (value) {
        if (!test_bit(feat, cpu->model->def->full_feat)) {
            error_setg(errp, "Feature '%s' is not available for CPU model '%s',"
                       " it was introduced with later models.",
                       name, cpu->model->def->name);
            return;
        }
        set_bit(feat, cpu->model->features);
    } else {
        clear_bit(feat, cpu->model->features);
    }
}
Ejemplo n.º 10
0
void visit_type_VncInfo(Visitor *m, VncInfo ** obj, const char *name, Error **errp)
{
    visit_start_struct(m, (void **)obj, "VncInfo", name, sizeof(VncInfo), errp);
    visit_type_bool(m, (obj && *obj) ? &(*obj)->enabled : NULL, "enabled", errp);
    visit_start_optional(m, (obj && *obj) ? &(*obj)->has_host : NULL, "host", errp);
    if ((*obj)->has_host) {
        visit_type_str(m, (obj && *obj) ? &(*obj)->host : NULL, "host", errp);
    }
    visit_end_optional(m, errp);
    visit_start_optional(m, (obj && *obj) ? &(*obj)->has_family : NULL, "family", errp);
    if ((*obj)->has_family) {
        visit_type_str(m, (obj && *obj) ? &(*obj)->family : NULL, "family", errp);
    }
    visit_end_optional(m, errp);
    visit_start_optional(m, (obj && *obj) ? &(*obj)->has_service : NULL, "service", errp);
    if ((*obj)->has_service) {
        visit_type_str(m, (obj && *obj) ? &(*obj)->service : NULL, "service", errp);
    }
    visit_end_optional(m, errp);
    visit_start_optional(m, (obj && *obj) ? &(*obj)->has_auth : NULL, "auth", errp);
    if ((*obj)->has_auth) {
        visit_type_str(m, (obj && *obj) ? &(*obj)->auth : NULL, "auth", errp);
    }
    visit_end_optional(m, errp);
    visit_start_optional(m, (obj && *obj) ? &(*obj)->has_clients : NULL, "clients", errp);
    if ((*obj)->has_clients) {
        visit_type_VncClientInfoList(m, (obj && *obj) ? &(*obj)->clients : NULL, "clients", errp);
    }
    visit_end_optional(m, errp);
    visit_end_struct(m, errp);
}
Ejemplo n.º 11
0
static void visit_type_GuestFileWrite_fields(Visitor *m, GuestFileWrite ** obj, Error **errp)
{
    Error *err = NULL;
    visit_type_int(m, obj ? &(*obj)->count : NULL, "count", &err);
    visit_type_bool(m, obj ? &(*obj)->eof : NULL, "eof", &err);

    error_propagate(errp, err);
}
Ejemplo n.º 12
0
static void visit_type_GuestFileSeek_fields(Visitor *m, GuestFileSeek ** obj, Error **errp)
{
    Error *err = NULL;
    visit_type_int(m, obj ? &(*obj)->position : NULL, "position", &err);
    visit_type_bool(m, obj ? &(*obj)->eof : NULL, "eof", &err);

    error_propagate(errp, err);
}
Ejemplo n.º 13
0
static void get_bool(Object *obj, Visitor *v, const char *name, void *opaque,
                     Error **errp)
{
    DeviceState *dev = DEVICE(obj);
    Property *prop = opaque;
    bool *ptr = qdev_get_prop_ptr(dev, prop);

    visit_type_bool(v, name, ptr, errp);
}
Ejemplo n.º 14
0
static void spapr_cap_get_bool(Object *obj, Visitor *v, const char *name,
                               void *opaque, Error **errp)
{
    sPAPRCapabilityInfo *cap = opaque;
    sPAPRMachineState *spapr = SPAPR_MACHINE(obj);
    bool value = spapr_get_cap(spapr, cap->index) == SPAPR_CAP_ON;

    visit_type_bool(v, name, &value, errp);
}
Ejemplo n.º 15
0
static void visit_type_GuestFileRead_fields(Visitor *m, GuestFileRead ** obj, Error **errp)
{
    Error *err = NULL;
    visit_type_int(m, obj ? &(*obj)->count : NULL, "count", &err);
    visit_type_str(m, obj ? &(*obj)->buf_b64 : NULL, "buf-b64", &err);
    visit_type_bool(m, obj ? &(*obj)->eof : NULL, "eof", &err);

    error_propagate(errp, err);
}
Ejemplo n.º 16
0
static void get_bit(DeviceState *dev, Visitor *v, void *opaque,
                    const char *name, Error **errp)
{
    Property *prop = opaque;
    uint32_t *p = qdev_get_prop_ptr(dev, prop);
    bool value = (*p & qdev_get_prop_mask(prop)) != 0;

    visit_type_bool(v, &value, name, errp);
}
Ejemplo n.º 17
0
void visit_type_PciMemoryRegion(Visitor *m, PciMemoryRegion ** obj, const char *name, Error **errp)
{
    visit_start_struct(m, (void **)obj, "PciMemoryRegion", name, sizeof(PciMemoryRegion), errp);
    visit_type_int(m, (obj && *obj) ? &(*obj)->bar : NULL, "bar", errp);
    visit_type_str(m, (obj && *obj) ? &(*obj)->type : NULL, "type", errp);
    visit_type_int(m, (obj && *obj) ? &(*obj)->address : NULL, "address", errp);
    visit_type_int(m, (obj && *obj) ? &(*obj)->size : NULL, "size", errp);
    visit_start_optional(m, (obj && *obj) ? &(*obj)->has_prefetch : NULL, "prefetch", errp);
    if ((*obj)->has_prefetch) {
        visit_type_bool(m, (obj && *obj) ? &(*obj)->prefetch : NULL, "prefetch", errp);
    }
    visit_end_optional(m, errp);
    visit_start_optional(m, (obj && *obj) ? &(*obj)->has_mem_type_64 : NULL, "mem_type_64", errp);
    if ((*obj)->has_mem_type_64) {
        visit_type_bool(m, (obj && *obj) ? &(*obj)->mem_type_64 : NULL, "mem_type_64", errp);
    }
    visit_end_optional(m, errp);
    visit_end_struct(m, errp);
}
Ejemplo n.º 18
0
static void prop_get_bit(Object *obj, Visitor *v, const char *name,
                         void *opaque, Error **errp)
{
    DeviceState *dev = DEVICE(obj);
    Property *prop = opaque;
    uint32_t *p = qdev_get_prop_ptr(dev, prop);
    bool value = (*p & qdev_get_prop_mask(prop)) != 0;

    visit_type_bool(v, name, &value, errp);
}
static void visit_type_TestStruct(Visitor *v, TestStruct **obj,
                                  const char *name, Error **errp)
{
    visit_start_struct(v, (void **)obj, NULL, name, sizeof(TestStruct), errp);

    visit_type_int(v, &(*obj)->integer, "integer", errp);
    visit_type_bool(v, &(*obj)->boolean, "boolean", errp);
    visit_type_str(v, &(*obj)->string, "string", errp);

    visit_end_struct(v, errp);
}
Ejemplo n.º 20
0
static void test_visitor_in_bool(TestInputVisitorData *data,
                                 const void *unused)
{
    bool res = false;
    Visitor *v;

    v = visitor_input_test_init(data, "true");

    visit_type_bool(v, &res, NULL, &error_abort);
    g_assert_cmpint(res, ==, true);
}
Ejemplo n.º 21
0
static void test_visitor_out_bool(TestOutputVisitorData *data,
                                  const void *unused)
{
    bool value = true;
    QObject *obj;

    visit_type_bool(data->ov, NULL, &value, &error_abort);

    obj = visitor_get(data);
    g_assert(qobject_type(obj) == QTYPE_QBOOL);
    g_assert(qbool_get_bool(qobject_to_qbool(obj)) == value);
}
Ejemplo n.º 22
0
/* Try to crash the visitors */
static void test_visitor_in_fuzz(TestInputVisitorData *data,
                                 const void *unused)
{
    int64_t ires;
    intList *ilres;
    bool bres;
    double nres;
    char *sres;
    EnumOne eres;
    Visitor *v;
    unsigned int i;
    char buf[10000];

    for (i = 0; i < 100; i++) {
        unsigned int j;

        j = g_test_rand_int_range(0, sizeof(buf) - 1);

        buf[j] = '\0';

        if (j != 0) {
            for (j--; j != 0; j--) {
                buf[j - 1] = (char)g_test_rand_int_range(0, 256);
            }
        }

        v = visitor_input_test_init(data, buf);
        visit_type_int(v, NULL, &ires, NULL);
        visitor_input_teardown(data, NULL);

        v = visitor_input_test_init(data, buf);
        visit_type_intList(v, NULL, &ilres, NULL);
        visitor_input_teardown(data, NULL);

        v = visitor_input_test_init(data, buf);
        visit_type_bool(v, NULL, &bres, NULL);
        visitor_input_teardown(data, NULL);

        v = visitor_input_test_init(data, buf);
        visit_type_number(v, NULL, &nres, NULL);
        visitor_input_teardown(data, NULL);

        v = visitor_input_test_init(data, buf);
        sres = NULL;
        visit_type_str(v, NULL, &sres, NULL);
        g_free(sres);
        visitor_input_teardown(data, NULL);

        v = visitor_input_test_init(data, buf);
        visit_type_EnumOne(v, NULL, &eres, NULL);
        visitor_input_teardown(data, NULL);
    }
}
Ejemplo n.º 23
0
static void test_visitor_out_bool(TestOutputVisitorData *data,
                                  const void *unused)
{
    bool value = true;
    QBool *qbool;

    visit_type_bool(data->ov, NULL, &value, &error_abort);

    qbool = qobject_to_qbool(visitor_get(data));
    g_assert(qbool);
    g_assert(qbool_get_bool(qbool) == value);
}
Ejemplo n.º 24
0
void visit_type_SpiceChannel(Visitor *m, SpiceChannel ** obj, const char *name, Error **errp)
{
    visit_start_struct(m, (void **)obj, "SpiceChannel", name, sizeof(SpiceChannel), errp);
    visit_type_str(m, (obj && *obj) ? &(*obj)->host : NULL, "host", errp);
    visit_type_str(m, (obj && *obj) ? &(*obj)->family : NULL, "family", errp);
    visit_type_str(m, (obj && *obj) ? &(*obj)->port : NULL, "port", errp);
    visit_type_int(m, (obj && *obj) ? &(*obj)->connection_id : NULL, "connection-id", errp);
    visit_type_int(m, (obj && *obj) ? &(*obj)->channel_type : NULL, "channel-type", errp);
    visit_type_int(m, (obj && *obj) ? &(*obj)->channel_id : NULL, "channel-id", errp);
    visit_type_bool(m, (obj && *obj) ? &(*obj)->tls : NULL, "tls", errp);
    visit_end_struct(m, errp);
}
Ejemplo n.º 25
0
static void set_bool(Object *obj, Visitor *v, const char *name, void *opaque,
                     Error **errp)
{
    DeviceState *dev = DEVICE(obj);
    Property *prop = opaque;
    bool *ptr = qdev_get_prop_ptr(dev, prop);

    if (dev->realized) {
        qdev_prop_set_after_realize(dev, name, errp);
        return;
    }

    visit_type_bool(v, name, ptr, errp);
}
Ejemplo n.º 26
0
void visit_type_BlockInfo(Visitor *m, BlockInfo ** obj, const char *name, Error **errp)
{
    visit_start_struct(m, (void **)obj, "BlockInfo", name, sizeof(BlockInfo), errp);
    visit_type_str(m, (obj && *obj) ? &(*obj)->device : NULL, "device", errp);
    visit_type_str(m, (obj && *obj) ? &(*obj)->type : NULL, "type", errp);
    visit_type_bool(m, (obj && *obj) ? &(*obj)->removable : NULL, "removable", errp);
    visit_type_bool(m, (obj && *obj) ? &(*obj)->locked : NULL, "locked", errp);
    visit_start_optional(m, (obj && *obj) ? &(*obj)->has_inserted : NULL, "inserted", errp);
    if ((*obj)->has_inserted) {
        visit_type_BlockDeviceInfo(m, (obj && *obj) ? &(*obj)->inserted : NULL, "inserted", errp);
    }
    visit_end_optional(m, errp);
    visit_start_optional(m, (obj && *obj) ? &(*obj)->has_tray_open : NULL, "tray_open", errp);
    if ((*obj)->has_tray_open) {
        visit_type_bool(m, (obj && *obj) ? &(*obj)->tray_open : NULL, "tray_open", errp);
    }
    visit_end_optional(m, errp);
    visit_start_optional(m, (obj && *obj) ? &(*obj)->has_io_status : NULL, "io-status", errp);
    if ((*obj)->has_io_status) {
        visit_type_BlockDeviceIoStatus(m, (obj && *obj) ? &(*obj)->io_status : NULL, "io-status", errp);
    }
    visit_end_optional(m, errp);
    visit_end_struct(m, errp);
}
Ejemplo n.º 27
0
static void get_feature(Object *obj, Visitor *v, const char *name,
                        void *opaque, Error **errp)
{
    S390Feat feat = (S390Feat) opaque;
    S390CPU *cpu = S390_CPU(obj);
    bool value;

    if (!cpu->model) {
        error_setg(errp, "Details about the host CPU model are not available, "
                         "features cannot be queried.");
        return;
    }

    value = test_bit(feat, cpu->model->features);
    visit_type_bool(v, name, &value, errp);
}
Ejemplo n.º 28
0
static void spapr_cap_set_bool(Object *obj, Visitor *v, const char *name,
                               void *opaque, Error **errp)
{
    sPAPRCapabilityInfo *cap = opaque;
    sPAPRMachineState *spapr = SPAPR_MACHINE(obj);
    bool value;
    Error *local_err = NULL;

    visit_type_bool(v, name, &value, &local_err);
    if (local_err) {
        error_propagate(errp, local_err);
        return;
    }

    spapr->cmd_line_caps[cap->index] = true;
    spapr->eff.caps[cap->index] = value ? SPAPR_CAP_ON : SPAPR_CAP_OFF;
}
Ejemplo n.º 29
0
static void test_visitor_out_bool(TestOutputVisitorData *data,
                                  const void *unused)
{
    Error *errp = NULL;
    bool value = true;
    QObject *obj;

    visit_type_bool(data->ov, &value, NULL, &errp);
    g_assert(error_is_set(&errp) == 0);

    obj = qmp_output_get_qobject(data->qov);
    g_assert(obj != NULL);
    g_assert(qobject_type(obj) == QTYPE_QBOOL);
    g_assert(qbool_get_int(qobject_to_qbool(obj)) == value);

    qobject_decref(obj);
}
Ejemplo n.º 30
0
static void visit_primitive_type(Visitor *v, void **native, Error **errp)
{
    PrimitiveType *pt = *native;
    switch(pt->type) {
    case PTYPE_STRING:
        visit_type_str(v, NULL, (char **)&pt->value.string, errp);
        break;
    case PTYPE_BOOLEAN:
        visit_type_bool(v, NULL, &pt->value.boolean, errp);
        break;
    case PTYPE_NUMBER:
        visit_type_number(v, NULL, &pt->value.number, errp);
        break;
    case PTYPE_INTEGER:
        visit_type_int(v, NULL, &pt->value.integer, errp);
        break;
    case PTYPE_U8:
        visit_type_uint8(v, NULL, &pt->value.u8, errp);
        break;
    case PTYPE_U16:
        visit_type_uint16(v, NULL, &pt->value.u16, errp);
        break;
    case PTYPE_U32:
        visit_type_uint32(v, NULL, &pt->value.u32, errp);
        break;
    case PTYPE_U64:
        visit_type_uint64(v, NULL, &pt->value.u64, errp);
        break;
    case PTYPE_S8:
        visit_type_int8(v, NULL, &pt->value.s8, errp);
        break;
    case PTYPE_S16:
        visit_type_int16(v, NULL, &pt->value.s16, errp);
        break;
    case PTYPE_S32:
        visit_type_int32(v, NULL, &pt->value.s32, errp);
        break;
    case PTYPE_S64:
        visit_type_int64(v, NULL, &pt->value.s64, errp);
        break;
    case PTYPE_EOL:
        g_assert_not_reached();
    }
}