dd3140588d
This allows a userspace application to allocate a shared page for implementing inter-domain communication or device drivers. These shared pages can be mapped using the gntdev device or by the kernel in another domain. Signed-off-by: Daniel De Graaf <dgdegra@tycho.nsa.gov> Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
51 lines
1.4 KiB
C
51 lines
1.4 KiB
C
/******************************************************************************
|
|
* gntalloc.h
|
|
*
|
|
* Interface to /dev/xen/gntalloc.
|
|
*
|
|
* Author: Daniel De Graaf <dgdegra@tycho.nsa.gov>
|
|
*
|
|
* This file is in the public domain.
|
|
*/
|
|
|
|
#ifndef __LINUX_PUBLIC_GNTALLOC_H__
|
|
#define __LINUX_PUBLIC_GNTALLOC_H__
|
|
|
|
/*
|
|
* Allocates a new page and creates a new grant reference.
|
|
*/
|
|
#define IOCTL_GNTALLOC_ALLOC_GREF \
|
|
_IOC(_IOC_NONE, 'G', 5, sizeof(struct ioctl_gntalloc_alloc_gref))
|
|
struct ioctl_gntalloc_alloc_gref {
|
|
/* IN parameters */
|
|
/* The ID of the domain to be given access to the grants. */
|
|
uint16_t domid;
|
|
/* Flags for this mapping */
|
|
uint16_t flags;
|
|
/* Number of pages to map */
|
|
uint32_t count;
|
|
/* OUT parameters */
|
|
/* The offset to be used on a subsequent call to mmap(). */
|
|
uint64_t index;
|
|
/* The grant references of the newly created grant, one per page */
|
|
/* Variable size, depending on count */
|
|
uint32_t gref_ids[1];
|
|
};
|
|
|
|
#define GNTALLOC_FLAG_WRITABLE 1
|
|
|
|
/*
|
|
* Deallocates the grant reference, allowing the associated page to be freed if
|
|
* no other domains are using it.
|
|
*/
|
|
#define IOCTL_GNTALLOC_DEALLOC_GREF \
|
|
_IOC(_IOC_NONE, 'G', 6, sizeof(struct ioctl_gntalloc_dealloc_gref))
|
|
struct ioctl_gntalloc_dealloc_gref {
|
|
/* IN parameters */
|
|
/* The offset returned in the map operation */
|
|
uint64_t index;
|
|
/* Number of references to unmap */
|
|
uint32_t count;
|
|
};
|
|
#endif /* __LINUX_PUBLIC_GNTALLOC_H__ */
|