Lines Matching full:struct

28 struct rwp_aes_gcm_iv {
34 struct rwp_state {
40 * Note that this struct is padded to a size which is a power of 2, this
44 struct rwp_state_padded {
45 struct rwp_state state;
49 struct fobj_rwp_unpaged_iv {
51 struct rwp_state *state;
52 struct fobj fobj;
55 struct fobj_rwp_paged_iv {
57 struct fobj fobj;
60 const struct fobj_ops ops_rwp_paged_iv;
61 const struct fobj_ops ops_rwp_unpaged_iv;
63 static struct internal_aes_gcm_key rwp_ae_key;
65 static struct rwp_state_padded *rwp_state_base;
68 static void fobj_init(struct fobj *fobj, const struct fobj_ops *ops, in fobj_init()
77 static void fobj_uninit(struct fobj *fobj) in fobj_uninit()
84 static TEE_Result rwp_load_page(void *va, struct rwp_state *state, in rwp_load_page()
87 struct rwp_aes_gcm_iv iv = { in rwp_load_page()
105 static TEE_Result rwp_save_page(const void *va, struct rwp_state *state, in rwp_save_page()
109 struct rwp_aes_gcm_iv iv = { }; in rwp_save_page()
130 static struct rwp_state_padded *idx_to_state_padded(size_t idx) in idx_to_state_padded()
142 static struct fobj *rwp_paged_iv_alloc(unsigned int num_pages) in rwp_paged_iv_alloc()
144 struct fobj_rwp_paged_iv *rwp = NULL; in rwp_paged_iv_alloc()
148 COMPILE_TIME_ASSERT(IS_POWER_OF_TWO(sizeof(struct rwp_state_padded))); in rwp_paged_iv_alloc()
163 num_pages * sizeof(struct rwp_state_padded)); in rwp_paged_iv_alloc()
175 static struct fobj_rwp_paged_iv *to_rwp_paged_iv(struct fobj *fobj) in to_rwp_paged_iv()
179 return container_of(fobj, struct fobj_rwp_paged_iv, fobj); in to_rwp_paged_iv()
182 static TEE_Result rwp_paged_iv_load_page(struct fobj *fobj, in rwp_paged_iv_load_page()
185 struct fobj_rwp_paged_iv *rwp = to_rwp_paged_iv(fobj); in rwp_paged_iv_load_page()
187 struct rwp_state_padded *st = idx_to_state_padded(rwp->idx + page_idx); in rwp_paged_iv_load_page()
196 static TEE_Result rwp_paged_iv_save_page(struct fobj *fobj, in rwp_paged_iv_save_page()
199 struct fobj_rwp_paged_iv *rwp = to_rwp_paged_iv(fobj); in rwp_paged_iv_save_page()
201 struct rwp_state_padded *st = idx_to_state_padded(rwp->idx + page_idx); in rwp_paged_iv_save_page()
218 static void rwp_paged_iv_free(struct fobj *fobj) in rwp_paged_iv_free()
220 struct fobj_rwp_paged_iv *rwp = to_rwp_paged_iv(fobj); in rwp_paged_iv_free()
231 static vaddr_t rwp_paged_iv_get_iv_vaddr(struct fobj *fobj, in rwp_paged_iv_get_iv_vaddr()
234 struct fobj_rwp_paged_iv *rwp = to_rwp_paged_iv(fobj); in rwp_paged_iv_get_iv_vaddr()
235 struct rwp_state_padded *st = idx_to_state_padded(rwp->idx + page_idx); in rwp_paged_iv_get_iv_vaddr()
246 const struct fobj_ops ops_rwp_paged_iv
254 static struct fobj *rwp_unpaged_iv_alloc(unsigned int num_pages) in rwp_unpaged_iv_alloc()
256 struct fobj_rwp_unpaged_iv *rwp = NULL; in rwp_unpaged_iv_alloc()
288 static struct fobj_rwp_unpaged_iv *to_rwp_unpaged_iv(struct fobj *fobj) in to_rwp_unpaged_iv()
292 return container_of(fobj, struct fobj_rwp_unpaged_iv, fobj); in to_rwp_unpaged_iv()
295 static TEE_Result rwp_unpaged_iv_load_page(struct fobj *fobj, in rwp_unpaged_iv_load_page()
298 struct fobj_rwp_unpaged_iv *rwp = to_rwp_unpaged_iv(fobj); in rwp_unpaged_iv_load_page()
308 static TEE_Result rwp_unpaged_iv_save_page(struct fobj *fobj, in rwp_unpaged_iv_save_page()
312 struct fobj_rwp_unpaged_iv *rwp = to_rwp_unpaged_iv(fobj); in rwp_unpaged_iv_save_page()
330 static void rwp_unpaged_iv_free(struct fobj *fobj) in rwp_unpaged_iv_free()
332 struct fobj_rwp_unpaged_iv *rwp = NULL; in rwp_unpaged_iv_free()
353 const struct fobj_ops ops_rwp_unpaged_iv
364 struct fobj *fobj = NULL; in rwp_init()
385 * Each page in the pool needs a struct rwp_state. in rwp_init()
406 struct fobj *fobj_rw_paged_alloc(unsigned int num_pages) in fobj_rw_paged_alloc()
416 struct fobj_rop {
419 struct fobj fobj;
422 const struct fobj_ops ops_ro_paged;
424 static void rop_init(struct fobj_rop *rop, const struct fobj_ops *ops, in rop_init()
432 struct fobj *fobj_ro_paged_alloc(unsigned int num_pages, void *hashes, in fobj_ro_paged_alloc()
435 struct fobj_rop *rop = NULL; in fobj_ro_paged_alloc()
448 static struct fobj_rop *to_rop(struct fobj *fobj) in to_rop()
452 return container_of(fobj, struct fobj_rop, fobj); in to_rop()
455 static void rop_uninit(struct fobj_rop *rop) in rop_uninit()
462 static void rop_free(struct fobj *fobj) in rop_free()
464 struct fobj_rop *rop = to_rop(fobj); in rop_free()
470 static TEE_Result rop_load_page_helper(struct fobj_rop *rop, in rop_load_page_helper()
483 static TEE_Result rop_load_page(struct fobj *fobj, unsigned int page_idx, in rop_load_page()
490 static TEE_Result rop_save_page(struct fobj *fobj __unused, in rop_save_page()
502 const struct fobj_ops ops_ro_paged
519 * represenation of the needed relocation information in this struct.
528 struct fobj_ro_reloc_paged {
532 struct fobj_rop rop;
535 const struct fobj_ops ops_ro_reloc_paged;
563 static void init_rels(struct fobj_ro_reloc_paged *rrp, unsigned int reloc_offs, in init_rels()
595 struct fobj *fobj_ro_reloc_paged_alloc(unsigned int num_pages, void *hashes, in fobj_ro_reloc_paged_alloc()
600 struct fobj_ro_reloc_paged *rrp = NULL; in fobj_ro_reloc_paged_alloc()
630 static struct fobj_ro_reloc_paged *to_rrp(struct fobj *fobj) in to_rrp()
634 return container_of(fobj, struct fobj_ro_reloc_paged, rop.fobj); in to_rrp()
637 static void rrp_free(struct fobj *fobj) in rrp_free()
639 struct fobj_ro_reloc_paged *rrp = to_rrp(fobj); in rrp_free()
645 static TEE_Result rrp_load_page(struct fobj *fobj, unsigned int page_idx, in rrp_load_page()
648 struct fobj_ro_reloc_paged *rrp = to_rrp(fobj); in rrp_load_page()
679 const struct fobj_ops ops_ro_reloc_paged
687 const struct fobj_ops ops_locked_paged;
689 struct fobj *fobj_locked_paged_alloc(unsigned int num_pages) in fobj_locked_paged_alloc()
691 struct fobj *f = NULL; in fobj_locked_paged_alloc()
704 static void lop_free(struct fobj *fobj) in lop_free()
711 static TEE_Result lop_load_page(struct fobj *fobj __maybe_unused, in lop_load_page()
725 static TEE_Result lop_save_page(struct fobj *fobj __unused, in lop_save_page()
737 const struct fobj_ops ops_locked_paged
747 struct fobj_sec_mem {
749 struct fobj fobj;
752 const struct fobj_ops ops_sec_mem;
754 struct fobj *fobj_sec_mem_alloc(unsigned int num_pages) in fobj_sec_mem_alloc()
756 struct fobj_sec_mem *f = calloc(1, sizeof(*f)); in fobj_sec_mem_alloc()
788 static struct fobj_sec_mem *to_sec_mem(struct fobj *fobj) in to_sec_mem()
792 return container_of(fobj, struct fobj_sec_mem, fobj); in to_sec_mem()
795 static void sec_mem_free(struct fobj *fobj) in sec_mem_free()
797 struct fobj_sec_mem *f = to_sec_mem(fobj); in sec_mem_free()
804 static paddr_t sec_mem_get_pa(struct fobj *fobj, unsigned int page_idx) in sec_mem_get_pa()
806 struct fobj_sec_mem *f = to_sec_mem(fobj); in sec_mem_get_pa()
818 const struct fobj_ops ops_sec_mem __weak __relrodata_unpaged("ops_sec_mem") = {