Lines Matching defs:dmevh

50 static void _dm_event_handler_clear_dev_info(struct dm_event_handler *dmevh)
52 if (dmevh->dev_name)
53 dm_free(dmevh->dev_name);
54 if (dmevh->uuid)
55 dm_free(dmevh->uuid);
56 dmevh->dev_name = dmevh->uuid = NULL;
57 dmevh->major = dmevh->minor = 0;
62 struct dm_event_handler *dmevh = NULL;
64 if (!(dmevh = dm_malloc(sizeof(*dmevh))))
67 dmevh->dso = dmevh->dev_name = dmevh->uuid = NULL;
68 dmevh->major = dmevh->minor = 0;
69 dmevh->mask = 0;
70 dmevh->timeout = 0;
72 return dmevh;
75 void dm_event_handler_destroy(struct dm_event_handler *dmevh)
77 _dm_event_handler_clear_dev_info(dmevh);
78 if (dmevh->dso)
79 dm_free(dmevh->dso);
80 dm_free(dmevh);
83 int dm_event_handler_set_dso(struct dm_event_handler *dmevh, const char *path)
87 if (dmevh->dso)
88 dm_free(dmevh->dso);
90 dmevh->dso = dm_strdup(path);
91 if (!dmevh->dso)
97 int dm_event_handler_set_dev_name(struct dm_event_handler *dmevh, const char *dev_name)
102 _dm_event_handler_clear_dev_info(dmevh);
104 dmevh->dev_name = dm_strdup(dev_name);
105 if (!dmevh->dev_name)
110 int dm_event_handler_set_uuid(struct dm_event_handler *dmevh, const char *uuid)
115 _dm_event_handler_clear_dev_info(dmevh);
117 dmevh->uuid = dm_strdup(uuid);
118 if (!dmevh->dev_name)
123 void dm_event_handler_set_major(struct dm_event_handler *dmevh, int major)
125 int minor = dmevh->minor;
127 _dm_event_handler_clear_dev_info(dmevh);
129 dmevh->major = major;
130 dmevh->minor = minor;
133 void dm_event_handler_set_minor(struct dm_event_handler *dmevh, int minor)
135 int major = dmevh->major;
137 _dm_event_handler_clear_dev_info(dmevh);
139 dmevh->major = major;
140 dmevh->minor = minor;
143 void dm_event_handler_set_event_mask(struct dm_event_handler *dmevh,
146 dmevh->mask = evmask;
149 void dm_event_handler_set_timeout(struct dm_event_handler *dmevh, int timeout)
151 dmevh->timeout = timeout;
154 const char *dm_event_handler_get_dso(const struct dm_event_handler *dmevh)
156 return dmevh->dso;
159 const char *dm_event_handler_get_dev_name(const struct dm_event_handler *dmevh)
161 return dmevh->dev_name;
164 const char *dm_event_handler_get_uuid(const struct dm_event_handler *dmevh)
166 return dmevh->uuid;
169 int dm_event_handler_get_major(const struct dm_event_handler *dmevh)
171 return dmevh->major;
174 int dm_event_handler_get_minor(const struct dm_event_handler *dmevh)
176 return dmevh->minor;
179 int dm_event_handler_get_timeout(const struct dm_event_handler *dmevh)
181 return dmevh->timeout;
184 enum dm_event_mask dm_event_handler_get_event_mask(const struct dm_event_handler *dmevh)
186 return dmevh->mask;
510 static struct dm_task *_get_device_info(const struct dm_event_handler *dmevh)
520 if (dmevh->uuid)
521 dm_task_set_uuid(dmt, dmevh->uuid);
522 else if (dmevh->dev_name)
523 dm_task_set_name(dmt, dmevh->dev_name);
524 else if (dmevh->major && dmevh->minor) {
525 dm_task_set_major(dmt, dmevh->major);
526 dm_task_set_minor(dmt, dmevh->minor);
581 int dm_event_register_handler(const struct dm_event_handler *dmevh)
588 if (!(dmt = _get_device_info(dmevh))) {
596 dmevh->dso, uuid, dmevh->mask, dmevh->timeout)) < 0) {
611 int dm_event_unregister_handler(const struct dm_event_handler *dmevh)
618 if (!(dmt = _get_device_info(dmevh))) {
626 dmevh->dso, uuid, dmevh->mask, dmevh->timeout)) < 0) {
683 int dm_event_get_registered_device(struct dm_event_handler *dmevh, int next)
692 if (!(dmt = _get_device_info(dmevh))) {
701 &msg, dmevh->dso, uuid, dmevh->mask, 0))) {
718 _dm_event_handler_clear_dev_info(dmevh);
719 dmevh->uuid = dm_strdup(reply_uuid);
720 if (!dmevh->uuid) {
725 if (!(dmt = _get_device_info(dmevh))) {
730 dm_event_handler_set_dso(dmevh, reply_dso);
731 dm_event_handler_set_event_mask(dmevh, reply_mask);
743 dmevh->dev_name = dm_strdup(dm_task_get_name(dmt));
744 if (!dmevh->dev_name) {
755 dmevh->major = info.major;
756 dmevh->minor = info.minor;
769 _dm_event_handler_clear_dev_info(dmevh);