static void ich9_pm_get_s4_val(Object *obj, Visitor *v, const char *name, void *opaque, Error **errp) { ICH9LPCPMRegs *pm = opaque; uint8_t value = pm->s4_val; visit_type_uint8(v, name, &value, errp); }
static void ich9_pm_get_disable_s3(Object *obj, Visitor *v, void *opaque, const char *name, Error **errp) { ICH9LPCPMRegs *pm = opaque; uint8_t value = pm->disable_s3; visit_type_uint8(v, &value, name, errp); }
static void get_uint8(Object *obj, Visitor *v, const char *name, void *opaque, Error **errp) { DeviceState *dev = DEVICE(obj); Property *prop = opaque; uint8_t *ptr = qdev_get_prop_ptr(dev, prop); visit_type_uint8(v, name, ptr, errp); }
static void prop_get_fdt(Object *obj, Visitor *v, void *opaque, const char *name, Error **errp) { sPAPRDRConnector *drc = SPAPR_DR_CONNECTOR(obj); int fdt_offset_next, fdt_offset, fdt_depth; void *fdt; if (!drc->fdt) { return; } fdt = drc->fdt; fdt_offset = drc->fdt_start_offset; fdt_depth = 0; do { const char *name = NULL; const struct fdt_property *prop = NULL; int prop_len = 0, name_len = 0; uint32_t tag; tag = fdt_next_tag(fdt, fdt_offset, &fdt_offset_next); switch (tag) { case FDT_BEGIN_NODE: fdt_depth++; name = fdt_get_name(fdt, fdt_offset, &name_len); visit_start_struct(v, NULL, NULL, name, 0, NULL); break; case FDT_END_NODE: /* shouldn't ever see an FDT_END_NODE before FDT_BEGIN_NODE */ g_assert(fdt_depth > 0); visit_end_struct(v, NULL); fdt_depth--; break; case FDT_PROP: { int i; prop = fdt_get_property_by_offset(fdt, fdt_offset, &prop_len); name = fdt_string(fdt, fdt32_to_cpu(prop->nameoff)); visit_start_list(v, name, NULL); for (i = 0; i < prop_len; i++) { visit_type_uint8(v, (uint8_t *)&prop->data[i], NULL, NULL); } visit_end_list(v, NULL); break; } default: error_setg(&error_abort, "device FDT in unexpected state: %d", tag); } fdt_offset = fdt_offset_next; } while (fdt_depth != 0); }
static void set_uint8(Object *obj, Visitor *v, const char *name, void *opaque, Error **errp) { DeviceState *dev = DEVICE(obj); Property *prop = opaque; uint8_t *ptr = qdev_get_prop_ptr(dev, prop); if (dev->realized) { qdev_prop_set_after_realize(dev, name, errp); return; } visit_type_uint8(v, name, ptr, errp); }
static void set_uint8(Object *obj, Visitor *v, void *opaque, const char *name, Error **errp) { DeviceState *dev = DEVICE(obj); Property *prop = opaque; uint8_t *ptr = qdev_get_prop_ptr(dev, prop); if (dev->realized) { error_set(errp, QERR_PERMISSION_DENIED); return; } visit_type_uint8(v, ptr, name, errp); }
static void ich9_pm_set_s4_val(Object *obj, Visitor *v, const char *name, void *opaque, Error **errp) { ICH9LPCPMRegs *pm = opaque; Error *local_err = NULL; uint8_t value; visit_type_uint8(v, name, &value, &local_err); if (local_err) { goto out; } pm->s4_val = value; out: error_propagate(errp, local_err); }
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(); } }