Hallo, dies ist ein Test.
PWD: /www/data-lst1/unixsoft/unixsoft/kaempfer/.public_html
Running in File Mode
Relative path: ./../../../../../data-stud/../../usr/include/vm/seg_guest.h
Real path: /usr/include/vm/seg_guest.h
Zurück
/* * Copyright (c) 1998, 2021, Oracle and/or its affiliates. */ #ifndef _VM_SEG_GUEST_H #define _VM_SEG_GUEST_H #ifdef __cplusplus extern "C" { #endif #include <vm/as.h> #include <vm/mrp_impl.h> #include <sys/lgrp.h> #include <sys/zvmm/zvmm.h> /* * VM - Kernel Zone Guest Memory Segment Driver */ #if defined(_KERNEL) #define SGD_VMEM_NAMELEN 30 /* Same as VMEM_NAMELEN */ /* * Used to track segguest's reverse mappings. */ typedef struct segguest_rm_node { u_offset_t sgrn_off; rm_t *sgrn_rm; avl_node_t sgrn_node; } segguest_rm_node_t; typedef struct segguest_data { char sgmd_name[SGD_VMEM_NAMELEN]; /* vmem name prefix */ zvmm_meml_t sgmd_mem_layout; /* memory layout of guest PA */ size_t sgmd_reserved; /* reserved memory */ flr_t *sgmd_flr; /* our flr */ mo_t *sgmd_mo; /* segment's Memory Object */ ulong_t *sgmd_pages; /* page alloc bitmap */ szc_t sgmd_szc; /* page size code */ uint8_t sgmd_rms_alloced; /* !=0 -> memory alloc'ed */ size_t sgmd_pgsz; /* page size */ uint_t sgmd_prot; /* mapping protections */ size_t sgmd_realsize; /* end of last mapped page */ lgrp_mpi_t sgmd_policy; /* mem allocation policy */ vmem_t **sgmd_vmem; /* address allocators */ u_offset_t sgmd_vmem_lastpa; /* next vmem span base */ avl_tree_t sgmd_rms; /* for offset to RM translation */ size_t sgmd_len; /* segment length */ oneszc_wallet_t sgmd_ws; crd_t *sgmd_crd; mrp_t *sgmd_mrp; size_t sgmd_amount; /* RAM size (without holes) */ } segguest_data_t; /* * Guest RAM allocation. */ typedef struct guestmem { size_t ram_gpa_size; /* size of GPA space incl PA holes */ uint_t ram_lgcnt; /* * ram_mr describes where to layout each range of memory, there is * one range per lgrp. ram_resuming simply tells us this is not a boot * operation and that we must preserve the exact 1:1 GPA layout * described in ram_mr. In this case memory for more than one lgrp * can live in the same range. If ram_dense_gpa true then layout memory * from [0, maxpa) with no holes and update each range with spa, len * for each lgrp. */ memrange_t *ram_mr; boolean_t ram_resuming; zvmm_meml_t ram_layout; mrp_t *ram_mrp; } guestmem_t; extern int zvmm_guestmem_setup(const char *, caddr_t *, size_t, guestmem_t *, szcmap_t, szc_t *, uint_t, klgrpset_t *); extern void zvmm_guestmem_destroy(caddr_t, size_t); extern size_t segguest_getmemsize(struct seg *); extern int zvmm_guestmem_add(caddr_t, memrange_t *); extern int zvmm_guestmem_remove(caddr_t, memrange_t *); extern memrange_t *zvmm_guestmem_list(caddr_t, uint_t *); extern size_t zvmm_guestmem_getmemsize(caddr_t); extern struct seg_ops segguest_ops; #endif /* _KERNEL */ #ifdef __cplusplus } #endif #endif /* _VM_SEG_GUEST_H */