1 #ifndef XENFOREIGNMEMORY_PRIVATE_H 2 #define XENFOREIGNMEMORY_PRIVATE_H 3 4 #include <xentoollog.h> 5 6 #include <xenforeignmemory.h> 7 8 #include <xentoolcore_internal.h> 9 10 #include <xen/xen.h> 11 #include <xen/sys/privcmd.h> 12 13 #ifndef PAGE_SHIFT /* Mini-os, Yukk */ 14 #define PAGE_SHIFT 12 15 #endif 16 #ifndef __MINIOS__ /* Yukk */ 17 #define PAGE_SIZE (1UL << PAGE_SHIFT) 18 #define PAGE_MASK (~(PAGE_SIZE-1)) 19 #endif 20 21 struct xenforeignmemory_handle { 22 xentoollog_logger *logger, *logger_tofree; 23 unsigned flags; 24 int fd; 25 Xentoolcore__Active_Handle tc_ah; 26 }; 27 28 int osdep_xenforeignmemory_open(xenforeignmemory_handle *fmem); 29 int osdep_xenforeignmemory_close(xenforeignmemory_handle *fmem); 30 31 void *osdep_xenforeignmemory_map(xenforeignmemory_handle *fmem, 32 uint32_t dom, void *addr, 33 int prot, int flags, size_t num, 34 const xen_pfn_t arr[num], int err[num]); 35 int osdep_xenforeignmemory_unmap(xenforeignmemory_handle *fmem, 36 void *addr, size_t num); 37 38 int osdep_xenforeignmemory_restrict(xenforeignmemory_handle *fmem, 39 domid_t domid); 40 41 #if defined(__NetBSD__) || defined(__sun__) 42 /* Strictly compat for those two only only */ 43 void *compat_mapforeign_batch(xenforeignmem_handle *fmem, uint32_t dom, 44 void *addr, int prot, int flags, 45 xen_pfn_t *arr, int num); 46 #endif 47 48 #define PERROR(_f...) \ 49 xtl_log(fmem->logger, XTL_ERROR, errno, "xenforeignmemory", _f) 50 51 #endif 52 53 /* 54 * Local variables: 55 * mode: C 56 * c-file-style: "BSD" 57 * c-basic-offset: 4 58 * tab-width: 4 59 * indent-tabs-mode: nil 60 * End: 61 */ 62