mirror of
https://github.com/libvirt/libvirt.git
synced 2025-02-25 18:55:26 -06:00
Add parameter checks/annotations to hostdev APIs
Mark many parameters as NONNULL and check for empty list of hostdevs.
This commit is contained in:
parent
e991b09ddd
commit
7becc46225
@ -465,6 +465,9 @@ virHostdevPreparePCIDevices(virHostdevManagerPtr hostdev_mgr,
|
|||||||
size_t i;
|
size_t i;
|
||||||
int ret = -1;
|
int ret = -1;
|
||||||
|
|
||||||
|
if (!nhostdevs)
|
||||||
|
return 0;
|
||||||
|
|
||||||
virObjectLock(hostdev_mgr->activePCIHostdevs);
|
virObjectLock(hostdev_mgr->activePCIHostdevs);
|
||||||
virObjectLock(hostdev_mgr->inactivePCIHostdevs);
|
virObjectLock(hostdev_mgr->inactivePCIHostdevs);
|
||||||
|
|
||||||
@ -699,6 +702,9 @@ virHostdevReAttachPCIDevices(virHostdevManagerPtr hostdev_mgr,
|
|||||||
virPCIDeviceListPtr pcidevs;
|
virPCIDeviceListPtr pcidevs;
|
||||||
size_t i;
|
size_t i;
|
||||||
|
|
||||||
|
if (!nhostdevs)
|
||||||
|
return;
|
||||||
|
|
||||||
virObjectLock(hostdev_mgr->activePCIHostdevs);
|
virObjectLock(hostdev_mgr->activePCIHostdevs);
|
||||||
virObjectLock(hostdev_mgr->inactivePCIHostdevs);
|
virObjectLock(hostdev_mgr->inactivePCIHostdevs);
|
||||||
|
|
||||||
@ -786,6 +792,9 @@ virHostdevUpdateActivePCIDevices(virHostdevManagerPtr mgr,
|
|||||||
size_t i;
|
size_t i;
|
||||||
int ret = -1;
|
int ret = -1;
|
||||||
|
|
||||||
|
if (!nhostdevs)
|
||||||
|
return 0;
|
||||||
|
|
||||||
virObjectLock(mgr->activePCIHostdevs);
|
virObjectLock(mgr->activePCIHostdevs);
|
||||||
virObjectLock(mgr->inactivePCIHostdevs);
|
virObjectLock(mgr->inactivePCIHostdevs);
|
||||||
|
|
||||||
@ -846,6 +855,9 @@ virHostdevUpdateActiveUSBDevices(virHostdevManagerPtr mgr,
|
|||||||
size_t i;
|
size_t i;
|
||||||
int ret = -1;
|
int ret = -1;
|
||||||
|
|
||||||
|
if (!nhostdevs)
|
||||||
|
return 0;
|
||||||
|
|
||||||
virObjectLock(mgr->activeUSBHostdevs);
|
virObjectLock(mgr->activeUSBHostdevs);
|
||||||
for (i = 0; i < nhostdevs; i++) {
|
for (i = 0; i < nhostdevs; i++) {
|
||||||
virUSBDevicePtr usb = NULL;
|
virUSBDevicePtr usb = NULL;
|
||||||
@ -893,6 +905,9 @@ virHostdevUpdateActiveSCSIDevices(virHostdevManagerPtr mgr,
|
|||||||
virSCSIDevicePtr scsi = NULL;
|
virSCSIDevicePtr scsi = NULL;
|
||||||
virSCSIDevicePtr tmp = NULL;
|
virSCSIDevicePtr tmp = NULL;
|
||||||
|
|
||||||
|
if (!nhostdevs)
|
||||||
|
return 0;
|
||||||
|
|
||||||
virObjectLock(mgr->activeSCSIHostdevs);
|
virObjectLock(mgr->activeSCSIHostdevs);
|
||||||
for (i = 0; i < nhostdevs; i++) {
|
for (i = 0; i < nhostdevs; i++) {
|
||||||
hostdev = hostdevs[i];
|
hostdev = hostdevs[i];
|
||||||
@ -1091,6 +1106,9 @@ virHostdevPrepareUSBDevices(virHostdevManagerPtr hostdev_mgr,
|
|||||||
virUSBDevicePtr tmp;
|
virUSBDevicePtr tmp;
|
||||||
bool coldBoot = !!(flags & VIR_HOSTDEV_COLD_BOOT);
|
bool coldBoot = !!(flags & VIR_HOSTDEV_COLD_BOOT);
|
||||||
|
|
||||||
|
if (!nhostdevs)
|
||||||
|
return 0;
|
||||||
|
|
||||||
/* To prevent situation where USB device is assigned to two domains
|
/* To prevent situation where USB device is assigned to two domains
|
||||||
* we need to keep a list of currently assigned USB devices.
|
* we need to keep a list of currently assigned USB devices.
|
||||||
* This is done in several loops which cannot be joined into one big
|
* This is done in several loops which cannot be joined into one big
|
||||||
@ -1160,6 +1178,9 @@ virHostdevPrepareSCSIDevices(virHostdevManagerPtr hostdev_mgr,
|
|||||||
virSCSIDeviceListPtr list;
|
virSCSIDeviceListPtr list;
|
||||||
virSCSIDevicePtr tmp;
|
virSCSIDevicePtr tmp;
|
||||||
|
|
||||||
|
if (!nhostdevs)
|
||||||
|
return 0;
|
||||||
|
|
||||||
/* To prevent situation where SCSI device is assigned to two domains
|
/* To prevent situation where SCSI device is assigned to two domains
|
||||||
* we need to keep a list of currently assigned SCSI devices.
|
* we need to keep a list of currently assigned SCSI devices.
|
||||||
* This is done in several loops which cannot be joined into one big
|
* This is done in several loops which cannot be joined into one big
|
||||||
@ -1268,6 +1289,9 @@ virHostdevReAttachUSBDevices(virHostdevManagerPtr hostdev_mgr,
|
|||||||
{
|
{
|
||||||
size_t i;
|
size_t i;
|
||||||
|
|
||||||
|
if (!nhostdevs)
|
||||||
|
return;
|
||||||
|
|
||||||
virObjectLock(hostdev_mgr->activeUSBHostdevs);
|
virObjectLock(hostdev_mgr->activeUSBHostdevs);
|
||||||
for (i = 0; i < nhostdevs; i++) {
|
for (i = 0; i < nhostdevs; i++) {
|
||||||
virDomainHostdevDefPtr hostdev = hostdevs[i];
|
virDomainHostdevDefPtr hostdev = hostdevs[i];
|
||||||
@ -1334,6 +1358,9 @@ virHostdevReAttachSCSIDevices(virHostdevManagerPtr hostdev_mgr,
|
|||||||
{
|
{
|
||||||
size_t i;
|
size_t i;
|
||||||
|
|
||||||
|
if (!nhostdevs)
|
||||||
|
return;
|
||||||
|
|
||||||
virObjectLock(hostdev_mgr->activeSCSIHostdevs);
|
virObjectLock(hostdev_mgr->activeSCSIHostdevs);
|
||||||
for (i = 0; i < nhostdevs; i++) {
|
for (i = 0; i < nhostdevs; i++) {
|
||||||
virDomainHostdevDefPtr hostdev = hostdevs[i];
|
virDomainHostdevDefPtr hostdev = hostdevs[i];
|
||||||
|
@ -61,80 +61,96 @@ virHostdevPreparePCIDevices(virHostdevManagerPtr hostdev_mgr,
|
|||||||
const unsigned char *uuid,
|
const unsigned char *uuid,
|
||||||
virDomainHostdevDefPtr *hostdevs,
|
virDomainHostdevDefPtr *hostdevs,
|
||||||
int nhostdevs,
|
int nhostdevs,
|
||||||
unsigned int flags);
|
unsigned int flags)
|
||||||
|
ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2) ATTRIBUTE_NONNULL(3)
|
||||||
|
ATTRIBUTE_NONNULL(4);
|
||||||
int
|
int
|
||||||
virHostdevPrepareUSBDevices(virHostdevManagerPtr hostdev_mgr,
|
virHostdevPrepareUSBDevices(virHostdevManagerPtr hostdev_mgr,
|
||||||
const char *drv_name,
|
const char *drv_name,
|
||||||
const char *dom_name,
|
const char *dom_name,
|
||||||
virDomainHostdevDefPtr *hostdevs,
|
virDomainHostdevDefPtr *hostdevs,
|
||||||
int nhostdevs,
|
int nhostdevs,
|
||||||
unsigned int flags);
|
unsigned int flags)
|
||||||
|
ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2) ATTRIBUTE_NONNULL(3);
|
||||||
int
|
int
|
||||||
virHostdevPrepareSCSIDevices(virHostdevManagerPtr hostdev_mgr,
|
virHostdevPrepareSCSIDevices(virHostdevManagerPtr hostdev_mgr,
|
||||||
const char *drv_name,
|
const char *drv_name,
|
||||||
const char *dom_name,
|
const char *dom_name,
|
||||||
virDomainHostdevDefPtr *hostdevs,
|
virDomainHostdevDefPtr *hostdevs,
|
||||||
int nhostdevs);
|
int nhostdevs)
|
||||||
|
ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2) ATTRIBUTE_NONNULL(3);
|
||||||
void
|
void
|
||||||
virHostdevReAttachPCIDevices(virHostdevManagerPtr hostdev_mgr,
|
virHostdevReAttachPCIDevices(virHostdevManagerPtr hostdev_mgr,
|
||||||
const char *drv_name,
|
const char *drv_name,
|
||||||
const char *dom_name,
|
const char *dom_name,
|
||||||
virDomainHostdevDefPtr *hostdevs,
|
virDomainHostdevDefPtr *hostdevs,
|
||||||
int nhostdevs,
|
int nhostdevs,
|
||||||
const char *oldStateDir);
|
const char *oldStateDir)
|
||||||
|
ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2) ATTRIBUTE_NONNULL(3);
|
||||||
void
|
void
|
||||||
virHostdevReAttachUSBDevices(virHostdevManagerPtr hostdev_mgr,
|
virHostdevReAttachUSBDevices(virHostdevManagerPtr hostdev_mgr,
|
||||||
const char *drv_name,
|
const char *drv_name,
|
||||||
const char *dom_name,
|
const char *dom_name,
|
||||||
virDomainHostdevDefPtr *hostdevs,
|
virDomainHostdevDefPtr *hostdevs,
|
||||||
int nhostdevs);
|
int nhostdevs)
|
||||||
|
ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2) ATTRIBUTE_NONNULL(3);
|
||||||
void
|
void
|
||||||
virHostdevReAttachSCSIDevices(virHostdevManagerPtr hostdev_mgr,
|
virHostdevReAttachSCSIDevices(virHostdevManagerPtr hostdev_mgr,
|
||||||
const char *drv_name,
|
const char *drv_name,
|
||||||
const char *dom_name,
|
const char *dom_name,
|
||||||
virDomainHostdevDefPtr *hostdevs,
|
virDomainHostdevDefPtr *hostdevs,
|
||||||
int nhostdevs);
|
int nhostdevs)
|
||||||
|
ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2) ATTRIBUTE_NONNULL(3);
|
||||||
int
|
int
|
||||||
virHostdevUpdateActivePCIDevices(virHostdevManagerPtr mgr,
|
virHostdevUpdateActivePCIDevices(virHostdevManagerPtr mgr,
|
||||||
virDomainHostdevDefPtr *hostdevs,
|
virDomainHostdevDefPtr *hostdevs,
|
||||||
int nhostdevs,
|
int nhostdevs,
|
||||||
const char *drv_name,
|
const char *drv_name,
|
||||||
const char *dom_name);
|
const char *dom_name)
|
||||||
|
ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(4) ATTRIBUTE_NONNULL(5);
|
||||||
int
|
int
|
||||||
virHostdevUpdateActiveUSBDevices(virHostdevManagerPtr mgr,
|
virHostdevUpdateActiveUSBDevices(virHostdevManagerPtr mgr,
|
||||||
virDomainHostdevDefPtr *hostdevs,
|
virDomainHostdevDefPtr *hostdevs,
|
||||||
int nhostdevs,
|
int nhostdevs,
|
||||||
const char *drv_name,
|
const char *drv_name,
|
||||||
const char *dom_name);
|
const char *dom_name)
|
||||||
|
ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(4) ATTRIBUTE_NONNULL(5);
|
||||||
int
|
int
|
||||||
virHostdevUpdateActiveSCSIDevices(virHostdevManagerPtr mgr,
|
virHostdevUpdateActiveSCSIDevices(virHostdevManagerPtr mgr,
|
||||||
virDomainHostdevDefPtr *hostdevs,
|
virDomainHostdevDefPtr *hostdevs,
|
||||||
int nhostdevs,
|
int nhostdevs,
|
||||||
const char *drv_name,
|
const char *drv_name,
|
||||||
const char *dom_name);
|
const char *dom_name)
|
||||||
|
ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(4) ATTRIBUTE_NONNULL(5);
|
||||||
int
|
int
|
||||||
virHostdevUpdateDomainActiveDevices(virHostdevManagerPtr mgr,
|
virHostdevUpdateDomainActiveDevices(virHostdevManagerPtr mgr,
|
||||||
const char *driver,
|
const char *driver,
|
||||||
virDomainDefPtr def,
|
virDomainDefPtr def,
|
||||||
unsigned int flags);
|
unsigned int flags)
|
||||||
|
ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2) ATTRIBUTE_NONNULL(3);
|
||||||
int
|
int
|
||||||
virHostdevPrepareDomainDevices(virHostdevManagerPtr mgr,
|
virHostdevPrepareDomainDevices(virHostdevManagerPtr mgr,
|
||||||
const char *driver,
|
const char *driver,
|
||||||
virDomainDefPtr def,
|
virDomainDefPtr def,
|
||||||
unsigned int flags);
|
unsigned int flags)
|
||||||
|
ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2) ATTRIBUTE_NONNULL(3);
|
||||||
void
|
void
|
||||||
virHostdevReAttachDomainDevices(virHostdevManagerPtr mgr,
|
virHostdevReAttachDomainDevices(virHostdevManagerPtr mgr,
|
||||||
const char *driver,
|
const char *driver,
|
||||||
virDomainDefPtr def,
|
virDomainDefPtr def,
|
||||||
unsigned int flags,
|
unsigned int flags,
|
||||||
const char *oldStateDir);
|
const char *oldStateDir)
|
||||||
|
ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2) ATTRIBUTE_NONNULL(3) ATTRIBUTE_NONNULL(5);
|
||||||
|
|
||||||
/* functions used by NodeDevDetach/Reattach/Reset */
|
/* functions used by NodeDevDetach/Reattach/Reset */
|
||||||
int virHostdevPCINodeDeviceDetach(virHostdevManagerPtr mgr,
|
int virHostdevPCINodeDeviceDetach(virHostdevManagerPtr mgr,
|
||||||
virPCIDevicePtr pci);
|
virPCIDevicePtr pci)
|
||||||
|
ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2);
|
||||||
int virHostdevPCINodeDeviceReAttach(virHostdevManagerPtr mgr,
|
int virHostdevPCINodeDeviceReAttach(virHostdevManagerPtr mgr,
|
||||||
virPCIDevicePtr pci);
|
virPCIDevicePtr pci)
|
||||||
|
ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2);
|
||||||
int virHostdevPCINodeDeviceReset(virHostdevManagerPtr mgr,
|
int virHostdevPCINodeDeviceReset(virHostdevManagerPtr mgr,
|
||||||
virPCIDevicePtr pci);
|
virPCIDevicePtr pci)
|
||||||
|
ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2);
|
||||||
|
|
||||||
#endif /* __VIR_HOSTDEV_H__ */
|
#endif /* __VIR_HOSTDEV_H__ */
|
||||||
|
Loading…
Reference in New Issue
Block a user