97
98
typedef int VMCIMemcpyToQueueFunc(VMCIQueue *queue, uint64 queueOffset,
98
99
const void *src, size_t srcOffset,
99
size_t size, BUF_TYPE bufType);
100
size_t size, BUF_TYPE bufType,
100
102
typedef int VMCIMemcpyFromQueueFunc(void *dest, size_t destOffset,
101
103
const VMCIQueue *queue, uint64 queueOffset,
102
size_t size, BUF_TYPE bufType);
104
size_t size, BUF_TYPE bufType,
105
108
#if defined(_WIN32) && defined(WINNT_DDK)
136
139
int VMCIMemcpyToQueue(VMCIQueue *queue, uint64 queueOffset, const void *src,
137
size_t srcOffset, size_t size, BUF_TYPE bufType);
140
size_t srcOffset, size_t size, BUF_TYPE bufType,
138
142
int VMCIMemcpyFromQueue(void *dest, size_t destOffset, const VMCIQueue *queue,
139
uint64 queueOffset, size_t size, BUF_TYPE bufType);
143
uint64 queueOffset, size_t size, BUF_TYPE bufType,
146
int VMCIMemcpyToQueueLocal(VMCIQueue *queue, uint64 queueOffset, const void *src,
147
size_t srcOffset, size_t size, BUF_TYPE bufType,
149
int VMCIMemcpyFromQueueLocal(void *dest, size_t destOffset, const VMCIQueue *queue,
150
uint64 queueOffset, size_t size, BUF_TYPE bufType,
141
153
#if defined VMKERNEL || defined (SOLARIS) || \
142
154
(defined(__APPLE__) && !defined (VMX86_TOOLS)) || \
143
155
(defined(__linux__) && defined(__KERNEL__)) || \
144
156
(defined(_WIN32) && defined(WINNT_DDK))
145
157
int VMCIMemcpyToQueueV(VMCIQueue *queue, uint64 queueOffset, const void *src,
146
size_t srcOffset, size_t size, BUF_TYPE bufType);
158
size_t srcOffset, size_t size, BUF_TYPE bufType,
147
160
int VMCIMemcpyFromQueueV(void *dest, size_t destOffset, const VMCIQueue *queue,
148
uint64 queueOffset, size_t size, BUF_TYPE bufType);
161
uint64 queueOffset, size_t size, BUF_TYPE bufType,
163
# if defined(VMKERNEL)
164
int VMCIMemcpyToQueueVLocal(VMCIQueue *queue, uint64 queueOffset,
165
const void *src, size_t srcOffset, size_t size,
166
BUF_TYPE bufType, Bool canBlock);
167
int VMCIMemcpyFromQueueVLocal(void *dest, size_t destOffset,
168
const VMCIQueue *queue, uint64 queueOffset,
169
size_t size, BUF_TYPE bufType, Bool canBlock);
172
* For non-vmkernel platforms, the local versions are identical to the
177
VMCIMemcpyToQueueVLocal(VMCIQueue *queue, // IN/OUT
178
uint64 queueOffset, // IN
179
const void *src, // IN: iovec
180
size_t srcOffset, // IN
182
BUF_TYPE bufType, // IN
185
return VMCIMemcpyToQueueV(queue, queueOffset, src, srcOffset, size, bufType,
190
VMCIMemcpyFromQueueVLocal(void *dest, // IN/OUT: iovec
191
size_t destOffset, // IN
192
const VMCIQueue *queue, // IN
193
uint64 queueOffset, // IN
195
BUF_TYPE bufType, // IN
198
return VMCIMemcpyFromQueueV(dest, destOffset, queue, queueOffset, size, bufType,
201
# endif /* !VMKERNEL */
149
202
#endif /* Does the O/S support iovec? */