mirror of
git://sourceware.org/git/lvm2.git
synced 2024-12-21 13:34:40 +03:00
3b649c3076
Enums are single 'values' so not a proper type for bitfields. (Probably better to use such values as defines). Although here 'daemon_talk()' is part of library API, it's hidden non-public API call - and moreover 'enum' and 'unsigned' are using the same size, so linker shouldn't have any issue with this symbol usage. For this reason there are no 'versioning' tricks applied.
77 lines
2.4 KiB
C
77 lines
2.4 KiB
C
/*
|
|
* Copyright (C) 2005-2007 Red Hat, Inc. All rights reserved.
|
|
*
|
|
* This file is part of the device-mapper userspace tools.
|
|
*
|
|
* This copyrighted material is made available to anyone wishing to use,
|
|
* modify, copy, or redistribute it subject to the terms and conditions
|
|
* of the GNU Lesser General Public License v.2.1.
|
|
*
|
|
* You should have received a copy of the GNU Lesser General Public License
|
|
* along with this program; if not, write to the Free Software Foundation,
|
|
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
|
*/
|
|
|
|
#ifndef __DMEVENTD_DOT_H__
|
|
#define __DMEVENTD_DOT_H__
|
|
|
|
/* FIXME This stuff must be configurable. */
|
|
|
|
#define DM_EVENT_FIFO_CLIENT DEFAULT_DM_RUN_DIR "/dmeventd-client"
|
|
#define DM_EVENT_FIFO_SERVER DEFAULT_DM_RUN_DIR "/dmeventd-server"
|
|
|
|
#define DM_EVENT_DEFAULT_TIMEOUT 10
|
|
|
|
/* Commands for the daemon passed in the message below. */
|
|
enum dm_event_command {
|
|
DM_EVENT_CMD_ACTIVE = 1,
|
|
DM_EVENT_CMD_REGISTER_FOR_EVENT,
|
|
DM_EVENT_CMD_UNREGISTER_FOR_EVENT,
|
|
DM_EVENT_CMD_GET_REGISTERED_DEVICE,
|
|
DM_EVENT_CMD_GET_NEXT_REGISTERED_DEVICE,
|
|
DM_EVENT_CMD_SET_TIMEOUT,
|
|
DM_EVENT_CMD_GET_TIMEOUT,
|
|
DM_EVENT_CMD_HELLO,
|
|
DM_EVENT_CMD_DIE,
|
|
DM_EVENT_CMD_GET_STATUS,
|
|
DM_EVENT_CMD_GET_PARAMETERS,
|
|
};
|
|
|
|
/* Message passed between client and daemon. */
|
|
struct dm_event_daemon_message {
|
|
uint32_t cmd;
|
|
uint32_t size;
|
|
char *data;
|
|
};
|
|
|
|
/* FIXME Is this meant to be exported? I can't see where the
|
|
interface uses it. */
|
|
/* Fifos for client/daemon communication. */
|
|
struct dm_event_fifos {
|
|
int client;
|
|
int server;
|
|
const char *client_path;
|
|
const char *server_path;
|
|
};
|
|
|
|
/* EXIT_SUCCESS 0 -- stdlib.h */
|
|
/* EXIT_FAILURE 1 -- stdlib.h */
|
|
/* EXIT_LOCKFILE_INUSE 2 -- obsoleted */
|
|
#define EXIT_DESC_CLOSE_FAILURE 3
|
|
#define EXIT_DESC_OPEN_FAILURE 4
|
|
/* EXIT_OPEN_PID_FAILURE 5 -- obsoleted */
|
|
#define EXIT_FIFO_FAILURE 6
|
|
#define EXIT_CHDIR_FAILURE 7
|
|
|
|
/* Implemented in libdevmapper-event.c, but not part of public API. */
|
|
// FIXME misuse of bitmask as enum
|
|
int daemon_talk(struct dm_event_fifos *fifos,
|
|
struct dm_event_daemon_message *msg, int cmd,
|
|
const char *dso_name, const char *dev_name,
|
|
unsigned evmask, uint32_t timeout);
|
|
int init_fifos(struct dm_event_fifos *fifos);
|
|
void fini_fifos(struct dm_event_fifos *fifos);
|
|
int dm_event_get_version(struct dm_event_fifos *fifos, int *version);
|
|
|
|
#endif /* __DMEVENTD_DOT_H__ */
|