]>
git.ipfire.org Git - thirdparty/systemd.git/blob - udev.h
4 * Copyright (C) 2003 Greg Kroah-Hartman <greg@kroah.com>
5 * Copyright (C) 2003-2005 Kay Sievers <kay.sievers@vrfy.org>
7 * This program is free software; you can redistribute it and/or modify it
8 * under the terms of the GNU General Public License as published by the
9 * Free Software Foundation version 2 of the License.
11 * This program is distributed in the hope that it will be useful, but
12 * WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 * General Public License for more details.
16 * You should have received a copy of the GNU General Public License along
17 * with this program; if not, write to the Free Software Foundation, Inc.,
18 * 675 Mass Ave, Cambridge, MA 02139, USA.
25 #include <sys/types.h>
26 #include <sys/param.h>
27 #include "libsysfs/sysfs/libsysfs.h"
30 #define COMMENT_CHARACTER '#'
31 #define PATH_TO_NAME_CHAR '@'
36 #define SEQNUM_SIZE 32
37 #define VALUE_SIZE 128
39 #define DEFAULT_PARTITIONS_COUNT 15
40 #define UDEV_ALARM_TIMEOUT 180
42 #define DB_DIR ".udev/db"
55 char devpath
[PATH_SIZE
];
56 char subsystem
[NAME_SIZE
];
57 char action
[NAME_SIZE
];
59 enum device_type type
;
61 char devname
[PATH_SIZE
];
62 struct list_head symlink_list
;
64 char owner
[USER_SIZE
];
66 char group
[USER_SIZE
];
71 struct list_head run_list
;
73 struct list_head env_list
;
75 char tmp_node
[PATH_SIZE
];
80 char config_file
[PATH_SIZE
];
81 char bus_id
[NAME_SIZE
];
82 char program_result
[PATH_SIZE
];
83 char kernel_number
[NAME_SIZE
];
84 char kernel_name
[NAME_SIZE
];
88 extern int udev_init_device(struct udevice
*udev
, const char* devpath
, const char *subsystem
, const char *action
);
89 extern void udev_cleanup_device(struct udevice
*udev
);
90 extern dev_t
get_devt(struct sysfs_class_device
*class_dev
);
91 extern int udev_process_event(struct udev_rules
*rules
, struct udevice
*udev
);
92 extern int udev_add_device(struct udevice
*udev
, struct sysfs_class_device
*class_dev
);
93 extern int udev_remove_device(struct udevice
*udev
);
94 extern void udev_init_config(void);
95 extern int udev_start(void);
96 extern int udev_make_node(struct udevice
*udev
, const char *file
, dev_t devt
, mode_t mode
, uid_t uid
, gid_t gid
);
98 extern int udev_db_add_device(struct udevice
*dev
);
99 extern int udev_db_delete_device(struct udevice
*dev
);
100 extern int udev_db_get_device(struct udevice
*udev
, const char *devpath
);
101 extern int udev_db_lookup_name(const char *name
, char *devpath
, size_t len
);
102 extern int udev_db_get_all_entries(struct list_head
*name_list
);
104 extern char sysfs_path
[PATH_SIZE
];
105 extern char udev_root
[PATH_SIZE
];
106 extern char udev_config_filename
[PATH_SIZE
];
107 extern char udev_rules_filename
[PATH_SIZE
];
108 extern int udev_log_priority
;