The hypervisor may create a bigger
table; however, this will not be visible to the guest. The table is returned in the
space allocated by the caller. The XEN GUEST HANDLE macro is used in a few
places in the Xen API, and is the companion of DEFINE XEN GUEST HANDLE.
On x86, the second macro de?¬?nes a type as a pointer to the argument, with the
name guest handle name, where name is the argument. In this structure, the
type of frame list is ulong??—. The macro exists to provide some abstraction for
references. On x86, it is relatively easy for the hypervisor to access guest memory
given a pointer. On other platforms, a little translation is required. These macros
provide the abstraction required for this. The set xen guest handle macro should
be used to set these. If it is, it should be relatively easy to port guest code between
di?¬?erent Xen platforms.
4.4 Exercise: Mapping a Granted Page
The most common use for the grant table is to move blocks of data between
the front and back ends of a device driver. The back end receives requests for
block I/O operations and processes them.
Pages:
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173