OpenCores
URL https://opencores.org/ocsvn/hf-risc/hf-risc/trunk

Subversion Repositories hf-risc

[/] [hf-risc/] [trunk/] [tools/] [riscv-gnu-toolchain-master/] [linux-headers/] [include/] [xen/] [gntalloc.h] - Blame information for rev 13

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 13 serginhofr
/******************************************************************************
2
 * gntalloc.h
3
 *
4
 * Interface to /dev/xen/gntalloc.
5
 *
6
 * Author: Daniel De Graaf <dgdegra@tycho.nsa.gov>
7
 *
8
 * This file is in the public domain.
9
 */
10
 
11
#ifndef __LINUX_PUBLIC_GNTALLOC_H__
12
#define __LINUX_PUBLIC_GNTALLOC_H__
13
 
14
/*
15
 * Allocates a new page and creates a new grant reference.
16
 */
17
#define IOCTL_GNTALLOC_ALLOC_GREF \
18
_IOC(_IOC_NONE, 'G', 5, sizeof(struct ioctl_gntalloc_alloc_gref))
19
struct ioctl_gntalloc_alloc_gref {
20
        /* IN parameters */
21
        /* The ID of the domain to be given access to the grants. */
22
        uint16_t domid;
23
        /* Flags for this mapping */
24
        uint16_t flags;
25
        /* Number of pages to map */
26
        uint32_t count;
27
        /* OUT parameters */
28
        /* The offset to be used on a subsequent call to mmap(). */
29
        uint64_t index;
30
        /* The grant references of the newly created grant, one per page */
31
        /* Variable size, depending on count */
32
        uint32_t gref_ids[1];
33
};
34
 
35
#define GNTALLOC_FLAG_WRITABLE 1
36
 
37
/*
38
 * Deallocates the grant reference, allowing the associated page to be freed if
39
 * no other domains are using it.
40
 */
41
#define IOCTL_GNTALLOC_DEALLOC_GREF \
42
_IOC(_IOC_NONE, 'G', 6, sizeof(struct ioctl_gntalloc_dealloc_gref))
43
struct ioctl_gntalloc_dealloc_gref {
44
        /* IN parameters */
45
        /* The offset returned in the map operation */
46
        uint64_t index;
47
        /* Number of references to unmap */
48
        uint32_t count;
49
};
50
 
51
/*
52
 * Sets up an unmap notification within the page, so that the other side can do
53
 * cleanup if this side crashes. Required to implement cross-domain robust
54
 * mutexes or close notification on communication channels.
55
 *
56
 * Each mapped page only supports one notification; multiple calls referring to
57
 * the same page overwrite the previous notification. You must clear the
58
 * notification prior to the IOCTL_GNTALLOC_DEALLOC_GREF if you do not want it
59
 * to occur.
60
 */
61
#define IOCTL_GNTALLOC_SET_UNMAP_NOTIFY \
62
_IOC(_IOC_NONE, 'G', 7, sizeof(struct ioctl_gntalloc_unmap_notify))
63
struct ioctl_gntalloc_unmap_notify {
64
        /* IN parameters */
65
        /* Offset in the file descriptor for a byte within the page (same as
66
         * used in mmap). If using UNMAP_NOTIFY_CLEAR_BYTE, this is the byte to
67
         * be cleared. Otherwise, it can be any byte in the page whose
68
         * notification we are adjusting.
69
         */
70
        uint64_t index;
71
        /* Action(s) to take on unmap */
72
        uint32_t action;
73
        /* Event channel to notify */
74
        uint32_t event_channel_port;
75
};
76
 
77
/* Clear (set to zero) the byte specified by index */
78
#define UNMAP_NOTIFY_CLEAR_BYTE 0x1
79
/* Send an interrupt on the indicated event channel */
80
#define UNMAP_NOTIFY_SEND_EVENT 0x2
81
 
82
#endif /* __LINUX_PUBLIC_GNTALLOC_H__ */

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.