memobj-r0drv-solaris.h revision 92c4e877fb86864d438e66dd463bb6e643f0ae74
3303f085664c9d7add74753b1b1541871cd31498joelholdsworth * IPRT - Ring-0 Memory Objects - Segment driver, Solaris.
3303f085664c9d7add74753b1b1541871cd31498joelholdsworth * Copyright (C) 2012 Oracle Corporation
3303f085664c9d7add74753b1b1541871cd31498joelholdsworth * This file is part of VirtualBox Open Source Edition (OSE), as
3303f085664c9d7add74753b1b1541871cd31498joelholdsworth * available from http://www.virtualbox.org. This file is free software;
#include "the-solaris-kernel.h"
typedef struct SEGVBOX_CRARGS
typedef struct SEGVBOX_DATA
} SEGVBOX_DATA;
switch (cbPageSize)
default: AssertReleaseMsgFailed(("Unsupported page size for mapping cbPageSize=%llx\n", cbPageSize)); break;
AssertReleaseMsg(virtAddr + cb <= pSeg->s_base + pSeg->s_size, ("virtAddr=%p cb=%llu s_base=%p s_size=%llu\n", virtAddr,
return ENOTSUP;
static int rtR0SegVBoxSolFault(struct hat *pHat, seg_t *pSeg, caddr_t virtAddr, size_t cb, enum fault_type FaultType,
return EACCES;
return EINVAL;
return cbLen;
static int rtR0SegVBoxSolLockOp(seg_t *pSeg, caddr_t virtAddr, size_t cb, int Attr, int Op, ulong_t *pLockMap, size_t off)
if (iPage)
iPage--;
} while (iPage);
return MAP_SHARED;
static int rtR0SegVBoxSolPageLock(seg_t *pSeg, caddr_t virtAddr, size_t cb, page_t ***pppPage, enum lock_type LockType, enum seg_rw ReadWrite)
return ENOTSUP;
return ENOTSUP;
return ENODEV;
return NULL;