Lines Matching full:var

11 #include "hw/uefi/var-service.h"
12 #include "hw/uefi/var-service-api.h"
13 #include "hw/uefi/var-service-edk2.h"
57 uefi_variable *var; in uefi_vars_find_variable() local
59 QTAILQ_FOREACH(var, &uv->variables, next) { in uefi_vars_find_variable()
60 if (!uefi_str_equal(var->name, var->name_size, in uefi_vars_find_variable()
64 if (!qemu_uuid_is_equal(&var->guid, &guid)) { in uefi_vars_find_variable()
67 if (!var->data_size) { in uefi_vars_find_variable()
71 return var; in uefi_vars_find_variable()
80 uefi_variable *var; in add_variable() local
82 var = g_new0(uefi_variable, 1); in add_variable()
83 var->guid = guid; in add_variable()
84 var->name = g_malloc(name_size); in add_variable()
85 memcpy(var->name, name, name_size); in add_variable()
86 var->name_size = name_size; in add_variable()
87 var->attributes = attributes; in add_variable()
89 var->attributes &= ~EFI_VARIABLE_APPEND_WRITE; in add_variable()
91 QTAILQ_INSERT_TAIL(&uv->variables, var, next); in add_variable()
92 return var; in add_variable()
95 static void del_variable(uefi_vars_state *uv, uefi_variable *var) in del_variable() argument
97 if (!var) { in del_variable()
101 QTAILQ_REMOVE(&uv->variables, var, next); in del_variable()
102 g_free(var->data); in del_variable()
103 g_free(var->name); in del_variable()
104 g_free(var->digest); in del_variable()
105 g_free(var); in del_variable()
108 static size_t variable_size(uefi_variable *var) in variable_size() argument
112 size = sizeof(*var); in variable_size()
113 size += var->name_size; in variable_size()
114 size += var->data_size; in variable_size()
115 size += var->digest_size; in variable_size()
143 uefi_variable *var, *n; in uefi_vars_clear_volatile() local
145 QTAILQ_FOREACH_SAFE(var, &uv->variables, next, n) { in uefi_vars_clear_volatile()
146 if (var->attributes & EFI_VARIABLE_NON_VOLATILE) { in uefi_vars_clear_volatile()
149 uv->used_storage -= variable_size(var); in uefi_vars_clear_volatile()
150 del_variable(uv, var); in uefi_vars_clear_volatile()
156 uefi_variable *var, *n; in uefi_vars_clear_all() local
158 QTAILQ_FOREACH_SAFE(var, &uv->variables, next, n) { in uefi_vars_clear_all()
159 del_variable(uv, var); in uefi_vars_clear_all()
166 uefi_variable *var; in uefi_vars_update_storage() local
169 QTAILQ_FOREACH(var, &uv->variables, next) { in uefi_vars_update_storage()
170 uv->used_storage += variable_size(var); in uefi_vars_update_storage()
174 static gboolean check_access(uefi_vars_state *uv, uefi_variable *var) in check_access() argument
177 if (!(var->attributes & EFI_VARIABLE_BOOTSERVICE_ACCESS)) { in check_access()
181 if (!(var->attributes & EFI_VARIABLE_RUNTIME_ACCESS)) { in check_access()
269 uefi_variable *var; in uefi_vars_mm_get_variable() local
296 var = uefi_vars_find_variable(uv, va->guid, name, va->name_size); in uefi_vars_mm_get_variable()
297 if (!var) { in uefi_vars_mm_get_variable()
302 if (!check_access(uv, var)) { in uefi_vars_mm_get_variable()
314 va->attributes = var->attributes; in uefi_vars_mm_get_variable()
315 if (va->data_size < var->data_size) { in uefi_vars_mm_get_variable()
316 va->data_size = var->data_size; in uefi_vars_mm_get_variable()
320 va->data_size = var->data_size; in uefi_vars_mm_get_variable()
321 memcpy(data, var->data, var->data_size); in uefi_vars_mm_get_variable()
332 uefi_variable *var; in uefi_vars_mm_get_next_variable() local
359 var = QTAILQ_FIRST(&uv->variables); in uefi_vars_mm_get_next_variable()
360 if (!var) { in uefi_vars_mm_get_next_variable()
364 var = uefi_vars_find_variable(uv, nv->guid, name, nv->name_size); in uefi_vars_mm_get_next_variable()
365 if (!var) { in uefi_vars_mm_get_next_variable()
369 var = QTAILQ_NEXT(var, next); in uefi_vars_mm_get_next_variable()
370 } while (var && !check_access(uv, var)); in uefi_vars_mm_get_next_variable()
371 if (!var) { in uefi_vars_mm_get_next_variable()
376 length = sizeof(*mvar) + sizeof(*nv) + var->name_size; in uefi_vars_mm_get_next_variable()
381 nv->guid = var->guid; in uefi_vars_mm_get_next_variable()
382 nv->name_size = var->name_size; in uefi_vars_mm_get_next_variable()
383 memcpy(name, var->name, var->name_size); in uefi_vars_mm_get_next_variable()
654 "var-check-prop-set", in uefi_vars_mm_vars_proto()
655 "var-check-prop-get", in uefi_vars_mm_vars_proto()