#define INCLUDE_ALLOW_VMKERNEL
#include "includeCheck.h"
+#include "vm_assert.h"
+#include "vm_basic_types.h"
+
/*
* Defines util functions shared between the userlevel code and the monitor.
*/
* that gcc will not do inlining.
*/
-#if defined(__GNUC__) && (defined(VMM) || defined (VMKERNEL))
+#if defined(__GNUC__) && (defined(VMM) || defined (VMKERNEL) || defined (VMKBOOT))
#define ABSOLUTELY_NOINLINE __attribute__((__noinline__))
#endif
#define VMCI_FP_DOORBELL (VMCI_FP_QUEUEPAIR + 1)
#define VMCI_FP_DATAGRAM (VMCI_FP_DOORBELL + 1)
#define VMCI_FP_STREAMSOCK (VMCI_FP_DATAGRAM + 1)
-#define VMCI_FP_SEQPACKET (VMCI_FP_STREAMSOCK + 1)
-#define VMCI_FP_MAX (VMCI_FP_SEQPACKET + 1)
+#define VMCI_FP_MAX (VMCI_FP_STREAMSOCK + 1)
#define VMCI_FD_INVALID -1
#define VMCI_FD_GUEST 0
*
* 'f' should be a string with the field name.
*/
+#define XDRUTIL_COUNT(ptr, field) ((ptr)->field.field##_len)
#define XDRUTIL_FOREACH(counter, ptr, field) \
- for ((counter) = 0; (counter) < (ptr)->field.field##_len; (counter)++)
+ for ((counter) = 0; (counter) < XDRUTIL_COUNT(ptr, field); (counter)++)
#define XDRUTIL_GETITEM(ptr, field, idx) &((ptr)->field.field##_val[idx])
#define VMCI_FP_DOORBELL (VMCI_FP_QUEUEPAIR + 1)
#define VMCI_FP_DATAGRAM (VMCI_FP_DOORBELL + 1)
#define VMCI_FP_STREAMSOCK (VMCI_FP_DATAGRAM + 1)
-#define VMCI_FP_SEQPACKET (VMCI_FP_STREAMSOCK + 1)
-#define VMCI_FP_MAX (VMCI_FP_SEQPACKET + 1)
+#define VMCI_FP_MAX (VMCI_FP_STREAMSOCK + 1)
#define VMCI_FD_INVALID -1
#define VMCI_FD_GUEST 0