diff options
author | Alasdair Kergon <agk@redhat.com> | 2007-01-15 18:21:01 +0000 |
---|---|---|
committer | Alasdair Kergon <agk@redhat.com> | 2007-01-15 18:21:01 +0000 |
commit | 931d24a4b1b7c74aeec041fba70304d33cc31705 (patch) | |
tree | 68f143a448fdab28ea647ae4e9e7395337e4a7b9 /daemons/dmeventd/libdevmapper-event.h | |
parent | 080f3fa1e0d564b33080eb40d8f422404a87c8f8 (diff) | |
download | lvm2-931d24a4b1b7c74aeec041fba70304d33cc31705.tar.gz lvm2-931d24a4b1b7c74aeec041fba70304d33cc31705.tar.xz lvm2-931d24a4b1b7c74aeec041fba70304d33cc31705.zip |
More libdevmapper-event interface changes and fixes.
Rename dm_saprintf() to dm_asprintf().
Diffstat (limited to 'daemons/dmeventd/libdevmapper-event.h')
-rw-r--r-- | daemons/dmeventd/libdevmapper-event.h | 90 |
1 files changed, 47 insertions, 43 deletions
diff --git a/daemons/dmeventd/libdevmapper-event.h b/daemons/dmeventd/libdevmapper-event.h index 9e9c33a0..6ab67b51 100644 --- a/daemons/dmeventd/libdevmapper-event.h +++ b/daemons/dmeventd/libdevmapper-event.h @@ -23,8 +23,11 @@ #include <stdint.h> -/* Event type definitions. */ -enum dm_event_type { +/* + * Event library interface. + */ + +enum dm_event_mask { DM_EVENT_SETTINGS_MASK = 0x0000FF, DM_EVENT_SINGLE = 0x000001, /* Report multiple errors just once. */ DM_EVENT_MULTI = 0x000002, /* Report all of them. */ @@ -33,7 +36,7 @@ enum dm_event_type { DM_EVENT_SECTOR_ERROR = 0x000100, /* Failure on a particular sector. */ DM_EVENT_DEVICE_ERROR = 0x000200, /* Device failure. */ DM_EVENT_PATH_ERROR = 0x000400, /* Failure on an io path. */ - DM_EVENT_ADAPTOR_ERROR = 0x000800, /* Failure off a host adaptor. */ + DM_EVENT_ADAPTOR_ERROR = 0x000800, /* Failure of a host adaptor. */ DM_EVENT_STATUS_MASK = 0xFF0000, DM_EVENT_SYNC_STATUS = 0x010000, /* Mirror synchronization completed/failed. */ @@ -44,54 +47,55 @@ enum dm_event_type { #define DM_EVENT_ALL_ERRORS DM_EVENT_ERROR_MASK -/* Prototypes for event lib interface. */ - struct dm_event_handler; -/* Create and destroy dm_event_handler struct, which is passed to - register/unregister functions below */ struct dm_event_handler *dm_event_handler_create(void); -void dm_event_handler_destroy(struct dm_event_handler *h); - -/* Set parameters of a handler: - - dso - shared library path to handle the events - (only one of the following three needs to be set) - - name - device name or path - - uuid - device uuid - - major and minor - device major/minor numbers - - events - a bitfield defining which events to handle (see - enum dm_event_type above) -*/ -void dm_event_handler_set_dso(struct dm_event_handler *h, const char *path); -void dm_event_handler_set_name(struct dm_event_handler *h, const char *name); -void dm_event_handler_set_uuid(struct dm_event_handler *h, const char *uuid); -void dm_event_handler_set_major(struct dm_event_handler *h, int major); -void dm_event_handler_set_minor(struct dm_event_handler *h, int minor); -void dm_event_handler_set_events(struct dm_event_handler *h, - enum dm_event_type event); - -/* Get parameters of a handler, same as above */ -const char *dm_event_handler_get_dso(const struct dm_event_handler *h); -const char *dm_event_handler_get_name(const struct dm_event_handler *h); -const char *dm_event_handler_get_uuid(const struct dm_event_handler *h); -int dm_event_handler_get_major(const struct dm_event_handler *h); -int dm_event_handler_get_minor(const struct dm_event_handler *h); -enum dm_event_type dm_event_handler_get_events(const struct dm_event_handler *h); - -/* FIXME */ +void dm_event_handler_destroy(struct dm_event_handler *dmevh); + +/* + * Path of shared library to handle events. + */ +void dm_event_handler_set_dso(struct dm_event_handler *dmevh, const char *path); + +/* + * Identify the device to monitor by exactly one of + * devname, uuid or device number. + */ +void dm_event_handler_set_devname(struct dm_event_handler *dmevh, const char *devname); + +void dm_event_handler_set_uuid(struct dm_event_handler *dmevh, const char *uuid); + +void dm_event_handler_set_major(struct dm_event_handler *dmevh, int major); +void dm_event_handler_set_minor(struct dm_event_handler *dmevh, int minor); + +/* + * Specify mask for events to monitor. + */ +void dm_event_handler_set_event_mask(struct dm_event_handler *dmevh, + enum dm_event_mask evmask); + +const char *dm_event_handler_get_dso(const struct dm_event_handler *dmevh); +const char *dm_event_handler_get_devname(const struct dm_event_handler *dmevh); +const char *dm_event_handler_get_uuid(const struct dm_event_handler *dmevh); +int dm_event_handler_get_major(const struct dm_event_handler *dmevh); +int dm_event_handler_get_minor(const struct dm_event_handler *dmevh); +enum dm_event_mask dm_event_handler_get_event_mask(const struct dm_event_handler *dmevh); + +/* FIXME Review interface */ int dm_event_get_registered_device(char **dso_name, char **device_path, - enum dm_event_type *events, int next); + enum dm_event_mask *evmask, int next); -/* Call out to dmeventd to register or unregister a handler. If - dmeventd is not running, it is spawned first. */ -int dm_event_register(const struct dm_event_handler *h); -int dm_event_unregister(const struct dm_event_handler *h); +/* + * Initiate monitoring using dmeventd. + */ +int dm_event_register_handler(const struct dm_event_handler *dmevh); +int dm_event_unregister_handler(const struct dm_event_handler *dmevh); /* Prototypes for DSO interface, see dmeventd.c, struct dso_data for detailed descriptions. */ -void process_event(struct dm_task *dmt, enum dm_event_type event); -int register_device(const char *device, const char *uuid, int major, int minor); -int unregister_device(const char *device, const char *uuid, int major, +void process_event(struct dm_task *dmt, enum dm_event_mask evmask); +int register_device(const char *devname, const char *uuid, int major, int minor); +int unregister_device(const char *devname, const char *uuid, int major, int minor); #endif |