libvirt/src/conf/virnodedeviceobj.h
Michal Privoznik c8238579fb lib: Drop internal virXXXPtr typedefs
Historically, we declared pointer type to our types:

  typedef struct _virXXX virXXX;
  typedef virXXX *virXXXPtr;

But usefulness of such declaration is questionable, at best.
Unfortunately, we can't drop every such declaration - we have to
carry some over, because they are part of public API (e.g.
virDomainPtr). But for internal types - we can do drop them and
use what every other C project uses 'virXXX *'.

This change was generated by a very ugly shell script that
generated sed script which was then called over each file in the
repository. For the shell script refer to the cover letter:

https://listman.redhat.com/archives/libvir-list/2021-March/msg00537.html

Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
2021-04-13 17:00:38 +02:00

145 lines
4.6 KiB
C

/*
* virnodedeviceobj.h: node device object handling for node devices
* (derived from node_device_conf.h)
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library. If not, see
* <http://www.gnu.org/licenses/>.
*/
#pragma once
#include "internal.h"
#include "virthread.h"
#include "node_device_conf.h"
#include "object_event.h"
typedef struct _virNodeDeviceObj virNodeDeviceObj;
typedef struct _virNodeDeviceObjList virNodeDeviceObjList;
typedef struct _virNodeDeviceDriverState virNodeDeviceDriverState;
struct _virNodeDeviceDriverState {
virMutex lock;
virCond initCond;
bool initialized;
/* pid file FD, ensures two copies of the driver can't use the same root */
int lockFD;
char *stateDir;
virNodeDeviceObjList *devs; /* currently-known devices */
void *privateData; /* driver-specific private data */
bool privileged; /* whether we run in privileged mode */
/* Immutable pointer, self-locking APIs */
virObjectEventState *nodeDeviceEventState;
};
void
virNodeDeviceObjEndAPI(virNodeDeviceObj **obj);
virNodeDeviceDef *
virNodeDeviceObjGetDef(virNodeDeviceObj *obj);
virNodeDeviceObj *
virNodeDeviceObjListFindByName(virNodeDeviceObjList *devs,
const char *name);
virNodeDeviceObj *
virNodeDeviceObjListFindBySysfsPath(virNodeDeviceObjList *devs,
const char *sysfs_path)
ATTRIBUTE_NONNULL(2);
virNodeDeviceObj *
virNodeDeviceObjListFindSCSIHostByWWNs(virNodeDeviceObjList *devs,
const char *wwnn,
const char *wwpn);
virNodeDeviceObj *
virNodeDeviceObjListAssignDef(virNodeDeviceObjList *devs,
virNodeDeviceDef *def);
void
virNodeDeviceObjListRemove(virNodeDeviceObjList *devs,
virNodeDeviceObj *dev);
void
virNodeDeviceObjListRemoveLocked(virNodeDeviceObjList *devs,
virNodeDeviceObj *dev);
int
virNodeDeviceObjListGetParentHost(virNodeDeviceObjList *devs,
virNodeDeviceDef *def);
virNodeDeviceObjList *
virNodeDeviceObjListNew(void);
void
virNodeDeviceObjListFree(virNodeDeviceObjList *devs);
typedef bool
(*virNodeDeviceObjListFilter)(virConnectPtr conn,
virNodeDeviceDef *def);
int
virNodeDeviceObjListNumOfDevices(virNodeDeviceObjList *devs,
virConnectPtr conn,
const char *cap,
virNodeDeviceObjListFilter filter);
int
virNodeDeviceObjListGetNames(virNodeDeviceObjList *devs,
virConnectPtr conn,
virNodeDeviceObjListFilter filter,
const char *cap,
char **const names,
int maxnames);
int
virNodeDeviceObjListExport(virConnectPtr conn,
virNodeDeviceObjList *devobjs,
virNodeDevicePtr **devices,
virNodeDeviceObjListFilter filter,
unsigned int flags);
void
virNodeDeviceObjSetSkipUpdateCaps(virNodeDeviceObj *obj,
bool skipUpdateCaps);
virNodeDeviceObj *
virNodeDeviceObjListFindMediatedDeviceByUUID(virNodeDeviceObjList *devs,
const char *uuid);
bool
virNodeDeviceObjIsActive(virNodeDeviceObj *obj);
void
virNodeDeviceObjSetActive(virNodeDeviceObj *obj,
bool active);
bool
virNodeDeviceObjIsPersistent(virNodeDeviceObj *obj);
void
virNodeDeviceObjSetPersistent(virNodeDeviceObj *obj,
bool persistent);
typedef bool (*virNodeDeviceObjListRemoveIterator)(virNodeDeviceObj *obj,
const void *opaque);
void virNodeDeviceObjListForEachRemove(virNodeDeviceObjList *devs,
virNodeDeviceObjListRemoveIterator callback,
void *opaque);