]> git.ipfire.org Git - thirdparty/systemd.git/blame - src/core/device.h
relicense to LGPLv2.1 (with exceptions)
[thirdparty/systemd.git] / src / core / device.h
CommitLineData
03467c88 1/*-*- Mode: C; c-basic-offset: 8; indent-tabs-mode: nil -*-*/
5cb5a6ff
LP
2
3#ifndef foodevicehfoo
4#define foodevicehfoo
5
a7334b09
LP
6/***
7 This file is part of systemd.
8
9 Copyright 2010 Lennart Poettering
10
11 systemd is free software; you can redistribute it and/or modify it
5430f7f2
LP
12 under the terms of the GNU Lesser General Public License as published by
13 the Free Software Foundation; either version 2.1 of the License, or
a7334b09
LP
14 (at your option) any later version.
15
16 systemd is distributed in the hope that it will be useful, but
17 WITHOUT ANY WARRANTY; without even the implied warranty of
18 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
5430f7f2 19 Lesser General Public License for more details.
a7334b09 20
5430f7f2 21 You should have received a copy of the GNU Lesser General Public License
a7334b09
LP
22 along with systemd; If not, see <http://www.gnu.org/licenses/>.
23***/
24
5cb5a6ff
LP
25typedef struct Device Device;
26
87f0e418 27#include "unit.h"
5cb5a6ff
LP
28
29/* We simply watch devices, we cannot plug/unplug them. That
30 * simplifies the state engine greatly */
31typedef enum DeviceState {
32 DEVICE_DEAD,
73608ed9 33 DEVICE_PLUGGED,
6326a423
LP
34 _DEVICE_STATE_MAX,
35 _DEVICE_STATE_INVALID = -1
5cb5a6ff
LP
36} DeviceState;
37
38struct Device {
ac155bb8 39 Unit meta;
5cb5a6ff 40
25ac040b 41 char *sysfs;
8fe914ec 42
35b8ca3a 43 /* In order to be able to distinguish dependencies on
8fe914ec
LP
44 different device nodes we might end up creating multiple
45 devices for the same sysfs path. We chain them up here. */
46
47 LIST_FIELDS(struct Device, same_sysfs);
7fab9d01
LP
48
49 DeviceState state;
5cb5a6ff
LP
50};
51
87f0e418 52extern const UnitVTable device_vtable;
5cb5a6ff 53
f94ea366
LP
54void device_fd_event(Manager *m, int events);
55
a16e1123
LP
56const char* device_state_to_string(DeviceState i);
57DeviceState device_state_from_string(const char *s);
58
5cb5a6ff 59#endif