sev.c (95a9457fd44ad97c518858a4e1586a5498f9773c) sev.c (64a7b8de42aff54dce4d82585f25060a741531d1)
1/*
2 * QEMU SEV support
3 *
4 * Copyright Advanced Micro Devices 2016-2018
5 *
6 * Author:
7 * Brijesh Singh <brijesh.singh@amd.com>
8 *

--- 253 unchanged lines hidden (view full) ---

262 qsev_guest_get_session_file,
263 qsev_guest_set_session_file,
264 NULL);
265 object_class_property_set_description(oc, "session-file",
266 "guest owners session parameters (encoded with base64)", NULL);
267}
268
269static void
1/*
2 * QEMU SEV support
3 *
4 * Copyright Advanced Micro Devices 2016-2018
5 *
6 * Author:
7 * Brijesh Singh <brijesh.singh@amd.com>
8 *

--- 253 unchanged lines hidden (view full) ---

262 qsev_guest_get_session_file,
263 qsev_guest_set_session_file,
264 NULL);
265 object_class_property_set_description(oc, "session-file",
266 "guest owners session parameters (encoded with base64)", NULL);
267}
268
269static void
270qsev_guest_set_handle(Object *obj, Visitor *v, const char *name,
271 void *opaque, Error **errp)
272{
273 QSevGuestInfo *sev = QSEV_GUEST_INFO(obj);
274 uint32_t value;
275
276 visit_type_uint32(v, name, &value, errp);
277 sev->handle = value;
278}
279
280static void
281qsev_guest_set_policy(Object *obj, Visitor *v, const char *name,
282 void *opaque, Error **errp)
283{
284 QSevGuestInfo *sev = QSEV_GUEST_INFO(obj);
285 uint32_t value;
286
287 visit_type_uint32(v, name, &value, errp);
288 sev->policy = value;
289}
290
291static void
292qsev_guest_set_cbitpos(Object *obj, Visitor *v, const char *name,
293 void *opaque, Error **errp)
294{
295 QSevGuestInfo *sev = QSEV_GUEST_INFO(obj);
296 uint32_t value;
297
298 visit_type_uint32(v, name, &value, errp);
299 sev->cbitpos = value;
300}
301
302static void
303qsev_guest_set_reduced_phys_bits(Object *obj, Visitor *v, const char *name,
304 void *opaque, Error **errp)
305{
306 QSevGuestInfo *sev = QSEV_GUEST_INFO(obj);
307 uint32_t value;
308
309 visit_type_uint32(v, name, &value, errp);
310 sev->reduced_phys_bits = value;
311}
312
313static void
314qsev_guest_get_policy(Object *obj, Visitor *v, const char *name,
315 void *opaque, Error **errp)
316{
317 uint32_t value;
318 QSevGuestInfo *sev = QSEV_GUEST_INFO(obj);
319
320 value = sev->policy;
321 visit_type_uint32(v, name, &value, errp);
322}
323
324static void
325qsev_guest_get_handle(Object *obj, Visitor *v, const char *name,
326 void *opaque, Error **errp)
327{
328 uint32_t value;
329 QSevGuestInfo *sev = QSEV_GUEST_INFO(obj);
330
331 value = sev->handle;
332 visit_type_uint32(v, name, &value, errp);
333}
334
335static void
336qsev_guest_get_cbitpos(Object *obj, Visitor *v, const char *name,
337 void *opaque, Error **errp)
338{
339 uint32_t value;
340 QSevGuestInfo *sev = QSEV_GUEST_INFO(obj);
341
342 value = sev->cbitpos;
343 visit_type_uint32(v, name, &value, errp);
344}
345
346static void
347qsev_guest_get_reduced_phys_bits(Object *obj, Visitor *v, const char *name,
348 void *opaque, Error **errp)
349{
350 uint32_t value;
351 QSevGuestInfo *sev = QSEV_GUEST_INFO(obj);
352
353 value = sev->reduced_phys_bits;
354 visit_type_uint32(v, name, &value, errp);
355}
356
357static void
358qsev_guest_init(Object *obj)
359{
360 QSevGuestInfo *sev = QSEV_GUEST_INFO(obj);
361
362 sev->sev_device = g_strdup(DEFAULT_SEV_DEVICE);
363 sev->policy = DEFAULT_GUEST_POLICY;
270qsev_guest_init(Object *obj)
271{
272 QSevGuestInfo *sev = QSEV_GUEST_INFO(obj);
273
274 sev->sev_device = g_strdup(DEFAULT_SEV_DEVICE);
275 sev->policy = DEFAULT_GUEST_POLICY;
364 object_property_add(obj, "policy", "uint32", qsev_guest_get_policy,
365 qsev_guest_set_policy, NULL, NULL, NULL);
366 object_property_add(obj, "handle", "uint32", qsev_guest_get_handle,
367 qsev_guest_set_handle, NULL, NULL, NULL);
368 object_property_add(obj, "cbitpos", "uint32", qsev_guest_get_cbitpos,
369 qsev_guest_set_cbitpos, NULL, NULL, NULL);
370 object_property_add(obj, "reduced-phys-bits", "uint32",
371 qsev_guest_get_reduced_phys_bits,
372 qsev_guest_set_reduced_phys_bits, NULL, NULL, NULL);
276 object_property_add_uint32_ptr(obj, "policy", &sev->policy,
277 OBJ_PROP_FLAG_READWRITE, NULL);
278 object_property_add_uint32_ptr(obj, "handle", &sev->handle,
279 OBJ_PROP_FLAG_READWRITE, NULL);
280 object_property_add_uint32_ptr(obj, "cbitpos", &sev->cbitpos,
281 OBJ_PROP_FLAG_READWRITE, NULL);
282 object_property_add_uint32_ptr(obj, "reduced-phys-bits",
283 &sev->reduced_phys_bits,
284 OBJ_PROP_FLAG_READWRITE, NULL);
373}
374
375/* sev guest info */
376static const TypeInfo qsev_guest_info = {
377 .parent = TYPE_OBJECT,
378 .name = TYPE_QSEV_GUEST_INFO,
379 .instance_size = sizeof(QSevGuestInfo),
380 .instance_finalize = qsev_guest_finalize,

--- 460 unchanged lines hidden ---
285}
286
287/* sev guest info */
288static const TypeInfo qsev_guest_info = {
289 .parent = TYPE_OBJECT,
290 .name = TYPE_QSEV_GUEST_INFO,
291 .instance_size = sizeof(QSevGuestInfo),
292 .instance_finalize = qsev_guest_finalize,

--- 460 unchanged lines hidden ---