2014-10-16 10:01:19 +00:00
|
|
|
/*
|
|
|
|
* driver-nodedev.h: entry points for nodedev drivers
|
|
|
|
*
|
|
|
|
* Copyright (C) 2006-2014 Red Hat, Inc.
|
|
|
|
*
|
|
|
|
* 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/>.
|
|
|
|
*/
|
|
|
|
|
2019-06-07 20:20:12 +00:00
|
|
|
#pragma once
|
2014-10-16 10:01:19 +00:00
|
|
|
|
2019-06-07 20:20:12 +00:00
|
|
|
#ifndef __VIR_DRIVER_H_INCLUDES___
|
|
|
|
# error "Don't include this file directly, only use driver.h"
|
|
|
|
#endif
|
2014-10-16 10:01:19 +00:00
|
|
|
|
|
|
|
typedef int
|
|
|
|
(*virDrvNodeNumOfDevices)(virConnectPtr conn,
|
|
|
|
const char *cap,
|
|
|
|
unsigned int flags);
|
|
|
|
|
|
|
|
typedef int
|
|
|
|
(*virDrvNodeListDevices)(virConnectPtr conn,
|
|
|
|
const char *cap,
|
|
|
|
char **const names,
|
|
|
|
int maxnames,
|
|
|
|
unsigned int flags);
|
|
|
|
|
|
|
|
typedef int
|
|
|
|
(*virDrvConnectListAllNodeDevices)(virConnectPtr conn,
|
|
|
|
virNodeDevicePtr **devices,
|
|
|
|
unsigned int flags);
|
|
|
|
|
|
|
|
typedef virNodeDevicePtr
|
|
|
|
(*virDrvNodeDeviceLookupByName)(virConnectPtr conn,
|
|
|
|
const char *name);
|
|
|
|
|
|
|
|
typedef virNodeDevicePtr
|
|
|
|
(*virDrvNodeDeviceLookupSCSIHostByWWN)(virConnectPtr conn,
|
|
|
|
const char *wwnn,
|
|
|
|
const char *wwpn,
|
|
|
|
unsigned int flags);
|
|
|
|
|
|
|
|
typedef char *
|
|
|
|
(*virDrvNodeDeviceGetXMLDesc)(virNodeDevicePtr dev,
|
|
|
|
unsigned int flags);
|
|
|
|
|
|
|
|
typedef char *
|
|
|
|
(*virDrvNodeDeviceGetParent)(virNodeDevicePtr dev);
|
|
|
|
|
|
|
|
typedef int
|
|
|
|
(*virDrvNodeDeviceNumOfCaps)(virNodeDevicePtr dev);
|
|
|
|
|
|
|
|
typedef int
|
|
|
|
(*virDrvNodeDeviceListCaps)(virNodeDevicePtr dev,
|
|
|
|
char **const names,
|
|
|
|
int maxnames);
|
|
|
|
|
|
|
|
typedef virNodeDevicePtr
|
|
|
|
(*virDrvNodeDeviceCreateXML)(virConnectPtr conn,
|
|
|
|
const char *xmlDesc,
|
|
|
|
unsigned int flags);
|
|
|
|
|
|
|
|
typedef int
|
|
|
|
(*virDrvNodeDeviceDestroy)(virNodeDevicePtr dev);
|
|
|
|
|
2020-05-11 16:40:26 +00:00
|
|
|
typedef virNodeDevicePtr
|
|
|
|
(*virDrvNodeDeviceDefineXML)(virConnectPtr conn,
|
|
|
|
const char *xmlDesc,
|
|
|
|
unsigned int flags);
|
|
|
|
|
2020-07-02 20:14:30 +00:00
|
|
|
typedef int
|
2021-04-09 15:50:03 +00:00
|
|
|
(*virDrvNodeDeviceUndefine)(virNodeDevicePtr dev,
|
|
|
|
unsigned int flags);
|
2020-07-02 20:14:30 +00:00
|
|
|
|
2020-06-18 15:21:13 +00:00
|
|
|
typedef int
|
2021-04-09 15:50:03 +00:00
|
|
|
(*virDrvNodeDeviceCreate)(virNodeDevicePtr dev,
|
|
|
|
unsigned int flags);
|
2020-06-18 15:21:13 +00:00
|
|
|
|
2016-07-28 12:02:50 +00:00
|
|
|
typedef int
|
|
|
|
(*virDrvConnectNodeDeviceEventRegisterAny)(virConnectPtr conn,
|
|
|
|
virNodeDevicePtr dev,
|
|
|
|
int eventID,
|
|
|
|
virConnectNodeDeviceEventGenericCallback cb,
|
|
|
|
void *opaque,
|
|
|
|
virFreeCallback freecb);
|
|
|
|
|
|
|
|
typedef int
|
|
|
|
(*virDrvConnectNodeDeviceEventDeregisterAny)(virConnectPtr conn,
|
|
|
|
int callbackID);
|
|
|
|
|
2014-10-16 10:01:19 +00:00
|
|
|
|
|
|
|
|
|
|
|
typedef struct _virNodeDeviceDriver virNodeDeviceDriver;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* _virNodeDeviceDriver:
|
|
|
|
*
|
|
|
|
* Structure associated with monitoring the devices
|
|
|
|
* on a virtualized node.
|
|
|
|
*
|
|
|
|
*/
|
|
|
|
struct _virNodeDeviceDriver {
|
2015-01-20 16:16:26 +00:00
|
|
|
const char *name; /* the name of the driver */
|
2014-10-16 10:01:19 +00:00
|
|
|
virDrvNodeNumOfDevices nodeNumOfDevices;
|
|
|
|
virDrvNodeListDevices nodeListDevices;
|
|
|
|
virDrvConnectListAllNodeDevices connectListAllNodeDevices;
|
2016-07-28 12:02:50 +00:00
|
|
|
virDrvConnectNodeDeviceEventRegisterAny connectNodeDeviceEventRegisterAny;
|
|
|
|
virDrvConnectNodeDeviceEventDeregisterAny connectNodeDeviceEventDeregisterAny;
|
2014-10-16 10:01:19 +00:00
|
|
|
virDrvNodeDeviceLookupByName nodeDeviceLookupByName;
|
|
|
|
virDrvNodeDeviceLookupSCSIHostByWWN nodeDeviceLookupSCSIHostByWWN;
|
|
|
|
virDrvNodeDeviceGetXMLDesc nodeDeviceGetXMLDesc;
|
|
|
|
virDrvNodeDeviceGetParent nodeDeviceGetParent;
|
|
|
|
virDrvNodeDeviceNumOfCaps nodeDeviceNumOfCaps;
|
|
|
|
virDrvNodeDeviceListCaps nodeDeviceListCaps;
|
|
|
|
virDrvNodeDeviceCreateXML nodeDeviceCreateXML;
|
|
|
|
virDrvNodeDeviceDestroy nodeDeviceDestroy;
|
2020-05-11 16:40:26 +00:00
|
|
|
virDrvNodeDeviceDefineXML nodeDeviceDefineXML;
|
2020-07-02 20:14:30 +00:00
|
|
|
virDrvNodeDeviceUndefine nodeDeviceUndefine;
|
2020-06-18 15:21:13 +00:00
|
|
|
virDrvNodeDeviceCreate nodeDeviceCreate;
|
2014-10-16 10:01:19 +00:00
|
|
|
};
|