2007-07-17 18:37:06 -07:00
/******************************************************************************
* xenbus_probe . h
*
* Talks to Xen Store to figure out what devices we have .
*
* Copyright ( C ) 2005 Rusty Russell , IBM Corporation
* Copyright ( C ) 2005 XenSource Ltd .
*
* This program is free software ; you can redistribute it and / or
* modify it under the terms of the GNU General Public License version 2
* as published by the Free Software Foundation ; or , when distributed
* separately from the Linux kernel or incorporated into other
* software packages , subject to the following license :
*
* Permission is hereby granted , free of charge , to any person obtaining a copy
* of this source file ( the " Software " ) , to deal in the Software without
* restriction , including without limitation the rights to use , copy , modify ,
* merge , publish , distribute , sublicense , and / or sell copies of the Software ,
* and to permit persons to whom the Software is furnished to do so , subject to
* the following conditions :
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software .
*
* THE SOFTWARE IS PROVIDED " AS IS " , WITHOUT WARRANTY OF ANY KIND , EXPRESS OR
* IMPLIED , INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY ,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT . IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM , DAMAGES OR OTHER
* LIABILITY , WHETHER IN AN ACTION OF CONTRACT , TORT OR OTHERWISE , ARISING
* FROM , OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
* IN THE SOFTWARE .
*/
# ifndef _XENBUS_PROBE_H
# define _XENBUS_PROBE_H
2009-01-06 10:44:34 -08:00
# define XEN_BUS_ID_SIZE 20
2011-07-26 14:17:01 +03:00
struct xen_bus_type {
2007-07-17 18:37:06 -07:00
char * root ;
unsigned int levels ;
2009-01-06 10:44:34 -08:00
int ( * get_bus_id ) ( char bus_id [ XEN_BUS_ID_SIZE ] , const char * nodename ) ;
2010-12-10 14:39:15 +00:00
int ( * probe ) ( struct xen_bus_type * bus , const char * type ,
const char * dir ) ;
void ( * otherend_changed ) ( struct xenbus_watch * watch , const char * * vec ,
unsigned int len ) ;
2007-07-17 18:37:06 -07:00
struct bus_type bus ;
} ;
2013-05-28 18:09:55 +01:00
enum xenstore_init {
XS_UNKNOWN ,
XS_PV ,
XS_HVM ,
XS_LOCAL ,
} ;
2013-10-06 23:55:49 -07:00
extern const struct attribute_group * xenbus_dev_groups [ ] ;
2011-06-29 14:39:26 +02:00
2007-07-17 18:37:06 -07:00
extern int xenbus_match ( struct device * _dev , struct device_driver * _drv ) ;
extern int xenbus_dev_probe ( struct device * _dev ) ;
extern int xenbus_dev_remove ( struct device * _dev ) ;
extern int xenbus_register_driver_common ( struct xenbus_driver * drv ,
2011-12-22 09:08:13 +00:00
struct xen_bus_type * bus ) ;
2007-07-17 18:37:06 -07:00
extern int xenbus_probe_node ( struct xen_bus_type * bus ,
const char * type ,
const char * nodename ) ;
extern int xenbus_probe_devices ( struct xen_bus_type * bus ) ;
extern void xenbus_dev_changed ( const char * node , struct xen_bus_type * bus ) ;
2009-02-09 12:05:51 -08:00
extern void xenbus_dev_shutdown ( struct device * _dev ) ;
2011-02-18 14:43:07 -08:00
extern int xenbus_dev_suspend ( struct device * dev ) ;
2009-02-09 12:05:51 -08:00
extern int xenbus_dev_resume ( struct device * dev ) ;
2011-02-18 14:43:07 -08:00
extern int xenbus_dev_cancel ( struct device * dev ) ;
2009-02-09 12:05:51 -08:00
extern void xenbus_otherend_changed ( struct xenbus_watch * watch ,
const char * * vec , unsigned int len ,
int ignore_on_shutdown ) ;
extern int xenbus_read_otherend_details ( struct xenbus_device * xendev ,
char * id_node , char * path_node ) ;
2011-12-19 14:55:14 -05:00
void xenbus_ring_ops_init ( void ) ;
2007-07-17 18:37:06 -07:00
# endif