17 #ifndef GLOBUS_XIO_LOAD_INCLUDE
18 #define GLOBUS_XIO_LOAD_INCLUDE
20 #include "globus_xio_types.h"
27 extern globus_extension_registry_t globus_i_xio_driver_registry;
28 #define GLOBUS_XIO_DRIVER_REGISTRY &globus_i_xio_driver_registry
32 (*globus_xio_driver_init_t)(
33 globus_xio_driver_t * out_driver);
37 (*globus_xio_driver_destroy_t)(
38 globus_xio_driver_t driver);
43 globus_xio_driver_init_t init;
44 globus_xio_driver_destroy_t destroy;
45 } globus_xio_driver_hook_t;
48 globus_xio_driver_load(
49 const char * driver_name,
50 globus_xio_driver_t * out_driver);
53 globus_xio_driver_unload(
54 globus_xio_driver_t driver);
65 #define GlobusXIODefineDriver(driver_name, init_func, destroy_func) \
66 globus_xio_driver_hook_t globus_i_xio_##driver_name##_hook = \
72 #define GlobusXIODeclareDriver(driver_name) \
73 extern globus_xio_driver_hook_t globus_i_xio_##driver_name##_hook
74 #define GlobusXIOMyDriver(driver_name) \
75 &globus_i_xio_##driver_name##_hook
83 #define GlobusXIORegisterDriver(driver_name) \
84 globus_extension_registry_add( \
85 GLOBUS_XIO_DRIVER_REGISTRY, \
86 (void *)#driver_name, \
87 GlobusXIOMyModule(driver_name), \
88 GlobusXIOMyDriver(driver_name))
89 #define GlobusXIOUnRegisterDriver(driver_name) \
90 globus_extension_registry_remove( \
91 GLOBUS_XIO_DRIVER_REGISTRY, \
94 #define GlobusXIODefineModule(driver_name) \
95 GlobusExtensionDefineModule(globus_xio_##driver_name##_driver)
96 #define GlobusXIODeclareModule(driver_name) \
97 GlobusExtensionDeclareModule(globus_xio_##driver_name##_driver)
98 #define GlobusXIOMyModule(driver_name) \
99 GlobusExtensionMyModule(globus_xio_##driver_name##_driver)
100 #define GlobusXIOExtensionName(driver_name) \
101 "globus_xio_" #driver_name "_driver"
103 #define GLOBUS_XIO_EXTENSION_FORMAT "globus_xio_%s_driver"
107 globus_i_xio_load_init(
void);
110 globus_i_xio_load_destroy(
void);
Headers common to all of Globus.
uint32_t globus_result_t
Definition: globus_types.h:99