Lines Matching full:seg
106 static bool encl_ioc_add_pages(struct encl *encl, struct encl_segment *seg) in encl_ioc_add_pages() argument
113 secinfo.flags = seg->flags; in encl_ioc_add_pages()
115 ioc.src = (uint64_t)seg->src; in encl_ioc_add_pages()
116 ioc.offset = seg->offset; in encl_ioc_add_pages()
117 ioc.length = seg->size; in encl_ioc_add_pages()
119 if (seg->measure) in encl_ioc_add_pages()
180 struct encl_segment *seg; in encl_load() local
253 seg = &encl->segment_tbl[j]; in encl_load()
273 seg->prot = PROT_READ | PROT_WRITE; in encl_load()
274 seg->flags = SGX_PAGE_TYPE_TCS << 8; in encl_load()
276 seg->prot = (phdr->p_flags & PF_R) ? PROT_READ : 0; in encl_load()
277 seg->prot |= (phdr->p_flags & PF_W) ? PROT_WRITE : 0; in encl_load()
278 seg->prot |= (phdr->p_flags & PF_X) ? PROT_EXEC : 0; in encl_load()
279 seg->flags = (SGX_PAGE_TYPE_REG << 8) | seg->prot; in encl_load()
282 seg->offset = (phdr->p_offset & PAGE_MASK) - src_offset; in encl_load()
283 seg->size = (phdr->p_filesz + PAGE_SIZE - 1) & PAGE_MASK; in encl_load()
284 seg->src = encl->src + seg->offset; in encl_load()
285 seg->measure = true; in encl_load()
292 seg = &encl->segment_tbl[j]; in encl_load()
293 seg->offset = encl->segment_tbl[j - 1].offset + encl->segment_tbl[j - 1].size; in encl_load()
294 seg->size = heap_size; in encl_load()
295 seg->src = mmap(NULL, heap_size, PROT_READ | PROT_WRITE, in encl_load()
297 seg->prot = PROT_READ | PROT_WRITE; in encl_load()
298 seg->flags = (SGX_PAGE_TYPE_REG << 8) | seg->prot; in encl_load()
299 seg->measure = false; in encl_load()
301 if (seg->src == MAP_FAILED) in encl_load()
356 struct encl_segment *seg = &encl->segment_tbl[i]; in encl_build() local
358 if (!encl_ioc_add_pages(encl, seg)) in encl_build()