1- /*
2- * libudev - interface to udev device information
3- *
4- * Copyright (C) 2008-2009 Kay Sievers <kay.sievers@vrfy.org>
5- *
6- * This library is free software; you can redistribute it and/or
7- * modify it under the terms of the GNU Lesser General Public
8- * License as published by the Free Software Foundation; either
9- * version 2.1 of the License, or (at your option) any later version.
10- */
1+ /***
2+ This file is part of systemd.
3+
4+ Copyright 2008-2012 Kay Sievers <kay@vrfy.org>
5+
6+ systemd is free software; you can redistribute it and/or modify it
7+ under the terms of the GNU Lesser General Public License as published by
8+ the Free Software Foundation; either version 2.1 of the License, or
9+ (at your option) any later version.
10+
11+ systemd 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+ Lesser General Public License for more details.
15+
16+ You should have received a copy of the GNU Lesser General Public License
17+ along with systemd; If not, see <http://www.gnu.org/licenses/>.
18+ ***/
1119
1220#ifndef _LIBUDEV_H_
1321#define _LIBUDEV_H_
@@ -22,22 +30,20 @@ extern "C" {
2230
2331/*
2432 * udev - library context
25- *
33+ *
2634 * reads the udev config and system environment
2735 * allows custom logging
2836 */
2937struct udev ;
3038struct udev * udev_ref (struct udev * udev );
31- void udev_unref (struct udev * udev );
39+ struct udev * udev_unref (struct udev * udev );
3240struct udev * udev_new (void );
3341void udev_set_log_fn (struct udev * udev ,
34- void (* log_fn )(struct udev * udev ,
35- int priority , const char * file , int line , const char * fn ,
36- const char * format , va_list args ));
42+ void (* log_fn )(struct udev * udev ,
43+ int priority , const char * file , int line , const char * fn ,
44+ const char * format , va_list args ));
3745int udev_get_log_priority (struct udev * udev );
3846void udev_set_log_priority (struct udev * udev , int priority );
39- const char * udev_get_sys_path (struct udev * udev );
40- const char * udev_get_dev_path (struct udev * udev );
4147void * udev_get_userdata (struct udev * udev );
4248void udev_set_userdata (struct udev * udev , void * userdata );
4349
@@ -59,9 +65,9 @@ const char *udev_list_entry_get_value(struct udev_list_entry *list_entry);
5965 * Helper to iterate over all entries of a list.
6066 */
6167#define udev_list_entry_foreach (list_entry , first_entry ) \
62- for (list_entry = first_entry; \
63- list_entry != NULL; \
64- list_entry = udev_list_entry_get_next(list_entry))
68+ for (list_entry = first_entry; \
69+ list_entry != NULL; \
70+ list_entry = udev_list_entry_get_next(list_entry))
6571
6672/*
6773 * udev_device
@@ -70,15 +76,17 @@ const char *udev_list_entry_get_value(struct udev_list_entry *list_entry);
7076 */
7177struct udev_device ;
7278struct udev_device * udev_device_ref (struct udev_device * udev_device );
73- void udev_device_unref (struct udev_device * udev_device );
79+ struct udev_device * udev_device_unref (struct udev_device * udev_device );
7480struct udev * udev_device_get_udev (struct udev_device * udev_device );
7581struct udev_device * udev_device_new_from_syspath (struct udev * udev , const char * syspath );
7682struct udev_device * udev_device_new_from_devnum (struct udev * udev , char type , dev_t devnum );
7783struct udev_device * udev_device_new_from_subsystem_sysname (struct udev * udev , const char * subsystem , const char * sysname );
84+ struct udev_device * udev_device_new_from_device_id (struct udev * udev , const char * id );
85+ struct udev_device * udev_device_new_from_environment (struct udev * udev );
7886/* udev_device_get_parent_*() does not take a reference on the returned device, it is automatically unref'd with the parent */
7987struct udev_device * udev_device_get_parent (struct udev_device * udev_device );
8088struct udev_device * udev_device_get_parent_with_subsystem_devtype (struct udev_device * udev_device ,
81- const char * subsystem , const char * devtype );
89+ const char * subsystem , const char * devtype );
8290/* retrieve device properties */
8391const char * udev_device_get_devpath (struct udev_device * udev_device );
8492const char * udev_device_get_subsystem (struct udev_device * udev_device );
@@ -87,14 +95,20 @@ const char *udev_device_get_syspath(struct udev_device *udev_device);
8795const char * udev_device_get_sysname (struct udev_device * udev_device );
8896const char * udev_device_get_sysnum (struct udev_device * udev_device );
8997const char * udev_device_get_devnode (struct udev_device * udev_device );
98+ int udev_device_get_is_initialized (struct udev_device * udev_device );
9099struct udev_list_entry * udev_device_get_devlinks_list_entry (struct udev_device * udev_device );
91100struct udev_list_entry * udev_device_get_properties_list_entry (struct udev_device * udev_device );
101+ struct udev_list_entry * udev_device_get_tags_list_entry (struct udev_device * udev_device );
102+ struct udev_list_entry * udev_device_get_sysattr_list_entry (struct udev_device * udev_device );
92103const char * udev_device_get_property_value (struct udev_device * udev_device , const char * key );
93104const char * udev_device_get_driver (struct udev_device * udev_device );
94105dev_t udev_device_get_devnum (struct udev_device * udev_device );
95106const char * udev_device_get_action (struct udev_device * udev_device );
96107unsigned long long int udev_device_get_seqnum (struct udev_device * udev_device );
108+ unsigned long long int udev_device_get_usec_since_initialized (struct udev_device * udev_device );
97109const char * udev_device_get_sysattr_value (struct udev_device * udev_device , const char * sysattr );
110+ int udev_device_set_sysattr_value (struct udev_device * udev_device , const char * sysattr , char * value );
111+ int udev_device_has_tag (struct udev_device * udev_device , const char * tag );
98112
99113/*
100114 * udev_monitor
@@ -103,19 +117,19 @@ const char *udev_device_get_sysattr_value(struct udev_device *udev_device, const
103117 */
104118struct udev_monitor ;
105119struct udev_monitor * udev_monitor_ref (struct udev_monitor * udev_monitor );
106- void udev_monitor_unref (struct udev_monitor * udev_monitor );
120+ struct udev_monitor * udev_monitor_unref (struct udev_monitor * udev_monitor );
107121struct udev * udev_monitor_get_udev (struct udev_monitor * udev_monitor );
108122/* kernel and udev generated events over netlink */
109123struct udev_monitor * udev_monitor_new_from_netlink (struct udev * udev , const char * name );
110- /* custom socket (use netlink and filters instead) */
111- struct udev_monitor * udev_monitor_new_from_socket (struct udev * udev , const char * socket_path );
112124/* bind socket */
113125int udev_monitor_enable_receiving (struct udev_monitor * udev_monitor );
126+ int udev_monitor_set_receive_buffer_size (struct udev_monitor * udev_monitor , int size );
114127int udev_monitor_get_fd (struct udev_monitor * udev_monitor );
115128struct udev_device * udev_monitor_receive_device (struct udev_monitor * udev_monitor );
116129/* in-kernel socket filters to select messages that get delivered to a listener */
117130int udev_monitor_filter_add_match_subsystem_devtype (struct udev_monitor * udev_monitor ,
118- const char * subsystem , const char * devtype );
131+ const char * subsystem , const char * devtype );
132+ int udev_monitor_filter_add_match_tag (struct udev_monitor * udev_monitor , const char * tag );
119133int udev_monitor_filter_update (struct udev_monitor * udev_monitor );
120134int udev_monitor_filter_remove (struct udev_monitor * udev_monitor );
121135
@@ -126,7 +140,7 @@ int udev_monitor_filter_remove(struct udev_monitor *udev_monitor);
126140 */
127141struct udev_enumerate ;
128142struct udev_enumerate * udev_enumerate_ref (struct udev_enumerate * udev_enumerate );
129- void udev_enumerate_unref (struct udev_enumerate * udev_enumerate );
143+ struct udev_enumerate * udev_enumerate_unref (struct udev_enumerate * udev_enumerate );
130144struct udev * udev_enumerate_get_udev (struct udev_enumerate * udev_enumerate );
131145struct udev_enumerate * udev_enumerate_new (struct udev * udev );
132146/* device properties filter */
@@ -136,6 +150,9 @@ int udev_enumerate_add_match_sysattr(struct udev_enumerate *udev_enumerate, cons
136150int udev_enumerate_add_nomatch_sysattr (struct udev_enumerate * udev_enumerate , const char * sysattr , const char * value );
137151int udev_enumerate_add_match_property (struct udev_enumerate * udev_enumerate , const char * property , const char * value );
138152int udev_enumerate_add_match_sysname (struct udev_enumerate * udev_enumerate , const char * sysname );
153+ int udev_enumerate_add_match_tag (struct udev_enumerate * udev_enumerate , const char * tag );
154+ int udev_enumerate_add_match_parent (struct udev_enumerate * udev_enumerate , struct udev_device * parent );
155+ int udev_enumerate_add_match_is_initialized (struct udev_enumerate * udev_enumerate );
139156int udev_enumerate_add_syspath (struct udev_enumerate * udev_enumerate , const char * syspath );
140157/* run enumeration with active filters */
141158int udev_enumerate_scan_devices (struct udev_enumerate * udev_enumerate );
@@ -150,18 +167,38 @@ struct udev_list_entry *udev_enumerate_get_list_entry(struct udev_enumerate *ude
150167 */
151168struct udev_queue ;
152169struct udev_queue * udev_queue_ref (struct udev_queue * udev_queue );
153- void udev_queue_unref (struct udev_queue * udev_queue );
170+ struct udev_queue * udev_queue_unref (struct udev_queue * udev_queue );
154171struct udev * udev_queue_get_udev (struct udev_queue * udev_queue );
155172struct udev_queue * udev_queue_new (struct udev * udev );
156- unsigned long long int udev_queue_get_kernel_seqnum (struct udev_queue * udev_queue );
157- unsigned long long int udev_queue_get_udev_seqnum (struct udev_queue * udev_queue );
173+ unsigned long long int udev_queue_get_kernel_seqnum (struct udev_queue * udev_queue ) __attribute__ (( deprecated )) ;
174+ unsigned long long int udev_queue_get_udev_seqnum (struct udev_queue * udev_queue ) __attribute__ (( deprecated )) ;
158175int udev_queue_get_udev_is_active (struct udev_queue * udev_queue );
159176int udev_queue_get_queue_is_empty (struct udev_queue * udev_queue );
160- int udev_queue_get_seqnum_is_finished (struct udev_queue * udev_queue , unsigned long long int seqnum );
177+ int udev_queue_get_seqnum_is_finished (struct udev_queue * udev_queue , unsigned long long int seqnum ) __attribute__ (( deprecated )) ;
161178int udev_queue_get_seqnum_sequence_is_finished (struct udev_queue * udev_queue ,
162- unsigned long long int start , unsigned long long int end );
163- struct udev_list_entry * udev_queue_get_queued_list_entry (struct udev_queue * udev_queue );
164- struct udev_list_entry * udev_queue_get_failed_list_entry (struct udev_queue * udev_queue );
179+ unsigned long long int start , unsigned long long int end ) __attribute__ ((deprecated ));
180+ int udev_queue_get_fd (struct udev_queue * udev_queue );
181+ int udev_queue_flush (struct udev_queue * udev_queue );
182+ struct udev_list_entry * udev_queue_get_queued_list_entry (struct udev_queue * udev_queue ) __attribute__ ((deprecated ));
183+
184+ /*
185+ * udev_hwdb
186+ *
187+ * access to the static hardware properties database
188+ */
189+ struct udev_hwdb ;
190+ struct udev_hwdb * udev_hwdb_new (struct udev * udev );
191+ struct udev_hwdb * udev_hwdb_ref (struct udev_hwdb * hwdb );
192+ struct udev_hwdb * udev_hwdb_unref (struct udev_hwdb * hwdb );
193+ struct udev_list_entry * udev_hwdb_get_properties_list_entry (struct udev_hwdb * hwdb , const char * modalias , unsigned int flags );
194+
195+ /*
196+ * udev_util
197+ *
198+ * udev specific utilities
199+ */
200+ int udev_util_encode_string (const char * str , char * str_enc , size_t len );
201+
165202
166203#ifdef __cplusplus
167204} /* extern "C" */
0 commit comments