Lines Matching full:uv

19     uefi_vars_state *uv = opaque;  in uefi_vars_pre_load()  local
21 uefi_vars_clear_all(uv); in uefi_vars_pre_load()
22 uefi_vars_policies_clear(uv); in uefi_vars_pre_load()
23 g_free(uv->buffer); in uefi_vars_pre_load()
29 uefi_vars_state *uv = opaque; in uefi_vars_post_load() local
31 uefi_vars_update_storage(uv); in uefi_vars_post_load()
32 uefi_vars_json_save(uv); in uefi_vars_post_load()
33 uv->buffer = g_malloc(uv->buf_size); in uefi_vars_post_load()
62 static uint32_t uefi_vars_cmd_mm(uefi_vars_state *uv, bool dma_mode) in uefi_vars_cmd_mm() argument
69 dma = uv->buf_addr_lo | ((hwaddr)uv->buf_addr_hi << 32); in uefi_vars_cmd_mm()
70 mhdr = (mm_header *) uv->buffer; in uefi_vars_cmd_mm()
72 if (!uv->buffer || uv->buf_size < sizeof(*mhdr)) { in uefi_vars_cmd_mm()
79 uv->buffer, sizeof(*mhdr), in uefi_vars_cmd_mm()
82 memcpy(uv->buffer, uv->pio_xfer_buffer, sizeof(*mhdr)); in uefi_vars_cmd_mm()
88 if (uv->buf_size < size) { in uefi_vars_cmd_mm()
95 uv->buffer + sizeof(*mhdr), mhdr->length, in uefi_vars_cmd_mm()
98 memcpy(uv->buffer + sizeof(*mhdr), in uefi_vars_cmd_mm()
99 uv->pio_xfer_buffer + sizeof(*mhdr), in uefi_vars_cmd_mm()
102 memset(uv->buffer + size, 0, uv->buf_size - size); in uefi_vars_cmd_mm()
106 retval = uefi_vars_mm_vars_proto(uv); in uefi_vars_cmd_mm()
109 retval = uefi_vars_mm_check_policy_proto(uv); in uefi_vars_cmd_mm()
113 uv->end_of_dxe = true; in uefi_vars_cmd_mm()
118 uv->ready_to_boot = true; in uefi_vars_cmd_mm()
123 uv->exit_boot_service = true; in uefi_vars_cmd_mm()
133 uv->buffer, sizeof(*mhdr) + mhdr->length, in uefi_vars_cmd_mm()
136 memcpy(uv->pio_xfer_buffer + sizeof(*mhdr), in uefi_vars_cmd_mm()
137 uv->buffer + sizeof(*mhdr), in uefi_vars_cmd_mm()
144 static void uefi_vars_soft_reset(uefi_vars_state *uv) in uefi_vars_soft_reset() argument
146 g_free(uv->buffer); in uefi_vars_soft_reset()
147 uv->buffer = NULL; in uefi_vars_soft_reset()
148 uv->buf_size = 0; in uefi_vars_soft_reset()
149 uv->buf_addr_lo = 0; in uefi_vars_soft_reset()
150 uv->buf_addr_hi = 0; in uefi_vars_soft_reset()
153 void uefi_vars_hard_reset(uefi_vars_state *uv) in uefi_vars_hard_reset() argument
156 uefi_vars_soft_reset(uv); in uefi_vars_hard_reset()
158 uv->end_of_dxe = false; in uefi_vars_hard_reset()
159 uv->ready_to_boot = false; in uefi_vars_hard_reset()
160 uv->exit_boot_service = false; in uefi_vars_hard_reset()
161 uv->policy_locked = false; in uefi_vars_hard_reset()
163 uefi_vars_clear_volatile(uv); in uefi_vars_hard_reset()
164 uefi_vars_policies_clear(uv); in uefi_vars_hard_reset()
165 uefi_vars_auth_init(uv); in uefi_vars_hard_reset()
168 static uint32_t uefi_vars_cmd(uefi_vars_state *uv, uint32_t cmd) in uefi_vars_cmd() argument
172 uefi_vars_soft_reset(uv); in uefi_vars_cmd()
175 return uefi_vars_cmd_mm(uv, true); in uefi_vars_cmd()
177 return uefi_vars_cmd_mm(uv, false); in uefi_vars_cmd()
179 uv->pio_xfer_offset = 0; in uefi_vars_cmd()
188 uefi_vars_state *uv = opaque; in uefi_vars_read() local
199 retval = uv->sts; in uefi_vars_read()
202 retval = uv->buf_size; in uefi_vars_read()
205 retval = uv->buf_addr_lo; in uefi_vars_read()
208 retval = uv->buf_addr_hi; in uefi_vars_read()
211 if (uv->pio_xfer_offset + size > uv->buf_size) { in uefi_vars_read()
215 xfer_ptr = uv->pio_xfer_buffer + uv->pio_xfer_offset; in uefi_vars_read()
230 uv->pio_xfer_offset += size; in uefi_vars_read()
233 retval = crc32c(0xffffffff, uv->pio_xfer_buffer, uv->pio_xfer_offset); in uefi_vars_read()
237 if (uv->use_pio) { in uefi_vars_read()
246 uefi_vars_state *uv = opaque; in uefi_vars_write() local
253 uv->sts = uefi_vars_cmd(uv, val); in uefi_vars_write()
259 uv->buf_size = val; in uefi_vars_write()
260 g_free(uv->buffer); in uefi_vars_write()
261 g_free(uv->pio_xfer_buffer); in uefi_vars_write()
262 uv->buffer = g_malloc(uv->buf_size); in uefi_vars_write()
263 uv->pio_xfer_buffer = g_malloc(uv->buf_size); in uefi_vars_write()
266 uv->buf_addr_lo = val; in uefi_vars_write()
269 uv->buf_addr_hi = val; in uefi_vars_write()
272 if (uv->pio_xfer_offset + size > uv->buf_size) { in uefi_vars_write()
275 xfer_ptr = uv->pio_xfer_buffer + uv->pio_xfer_offset; in uefi_vars_write()
290 uv->pio_xfer_offset += size; in uefi_vars_write()
309 void uefi_vars_init(Object *obj, uefi_vars_state *uv) in uefi_vars_init() argument
311 QTAILQ_INIT(&uv->variables); in uefi_vars_init()
312 QTAILQ_INIT(&uv->var_policies); in uefi_vars_init()
313 uv->jsonfd = -1; in uefi_vars_init()
314 memory_region_init_io(&uv->mr, obj, &uefi_vars_ops, uv, in uefi_vars_init()
318 void uefi_vars_realize(uefi_vars_state *uv, Error **errp) in uefi_vars_realize() argument
320 uefi_vars_json_init(uv, errp); in uefi_vars_realize()
321 uefi_vars_json_load(uv, errp); in uefi_vars_realize()