esx: Allow esxVI_X_DynamicCast to be called successfully on X objects

This semantic will be used in the ESX storage driver.
This commit is contained in:
Matthias Bolte 2010-05-18 17:37:45 +02:00
parent 10c681622a
commit 90fce23f24

View File

@ -540,6 +540,13 @@
#define ESX_VI__TEMPLATE__DYNAMIC_CAST__ACCEPT(__type) \
if (((esxVI_Object *)item)->_type == esxVI_Type_##__type) { \
return item; \
}
#define ESX_VI__TEMPLATE__DYNAMIC_CAST(__type, _accept) \
esxVI_##__type * \
esxVI_##__type##_DynamicCast(void *item) \
@ -550,6 +557,8 @@
return NULL; \
} \
\
ESX_VI__TEMPLATE__DYNAMIC_CAST__ACCEPT(__type) \
\
_accept \
\
return NULL; \
@ -557,13 +566,6 @@
#define ESX_VI__TEMPLATE__DYNAMIC_CAST__ACCEPT(__type) \
if (((esxVI_Object *)item)->_type == esxVI_Type_##__type) { \
return item; \
}
#define ESX_VI__TEMPLATE__DYNAMIC_SERIALIZE(__type, _dispatch, _serialize) \
ESX_VI__TEMPLATE__SERIALIZE_EXTRA(__type, \
ESX_VI__TEMPLATE__DISPATCH(__type, _dispatch, -1), \