1 ! Copyright (C) 2010 Niklas Waern.
2 ! See http://factorcode.org/license.txt for BSD license.
3 USING: alien alien.c-types alien.libraries alien.syntax
4 fry kernel sequences unix.types ;
7 << "libudev" "libudev.so" cdecl add-library >>
13 FUNCTION: udev* udev_ref (
18 FUNCTION: void udev_unref (
23 FUNCTION: udev* udev_new ( ) ;
27 CALLBACK: void udev_set_log_fn_callback (
35 FUNCTION: void udev_set_log_fn (
37 udev_set_log_fn_callback log_fn ) ;
41 FUNCTION: int udev_get_log_priority (
46 FUNCTION: void udev_set_log_priority (
52 FUNCTION: c-string udev_get_sys_path (
57 FUNCTION: c-string udev_get_dev_path (
62 FUNCTION: void* udev_get_userdata (
67 FUNCTION: void udev_set_userdata (
73 C-TYPE: udev_list_entry
75 FUNCTION: udev_list_entry* udev_list_entry_get_next (
76 udev_list_entry* list_entry ) ;
80 FUNCTION: udev_list_entry* udev_list_entry_get_by_name (
81 udev_list_entry* list_entry,
86 FUNCTION: c-string udev_list_entry_get_name (
87 udev_list_entry* list_entry ) ;
91 FUNCTION: c-string udev_list_entry_get_value (
92 udev_list_entry* list_entry ) ;
96 ! Helper to iterate over all entries of a list.
97 : udev_list_entry_foreach ( ... first_entry quot: ( ... x -- ... ) -- ... )
98 [ [ dup ] ] dip '[ [ @ ] keep udev_list_entry_get_next ]
101 ! Get all list entries _as_ a list
102 : udev-list-entries ( first_entry -- seq )
103 [ ] collector [ udev_list_entry_foreach ] dip ;
109 FUNCTION: udev_device* udev_device_ref (
110 udev_device* udev_device ) ;
114 FUNCTION: void udev_device_unref (
115 udev_device* udev_device ) ;
119 FUNCTION: udev* udev_device_get_udev (
120 udev_device* udev_device ) ;
124 FUNCTION: udev_device* udev_device_new_from_syspath (
130 FUNCTION: udev_device* udev_device_new_from_devnum (
137 FUNCTION: udev_device* udev_device_new_from_subsystem_sysname (
144 FUNCTION: udev_device* udev_device_get_parent (
145 udev_device* udev_device ) ;
149 FUNCTION: udev_device* udev_device_get_parent_with_subsystem_devtype (
150 udev_device* udev_device,
156 FUNCTION: c-string udev_device_get_devpath (
157 udev_device* udev_device ) ;
161 FUNCTION: c-string udev_device_get_subsystem (
162 udev_device* udev_device ) ;
166 FUNCTION: c-string udev_device_get_devtype (
167 udev_device* udev_device ) ;
171 FUNCTION: c-string udev_device_get_syspath (
172 udev_device* udev_device ) ;
176 FUNCTION: c-string udev_device_get_sysname (
177 udev_device* udev_device ) ;
181 FUNCTION: c-string udev_device_get_sysnum (
182 udev_device* udev_device ) ;
186 FUNCTION: c-string udev_device_get_devnode (
187 udev_device* udev_device ) ;
191 FUNCTION: udev_list_entry* udev_device_get_devlinks_list_entry (
192 udev_device* udev_device ) ;
196 FUNCTION: udev_list_entry* udev_device_get_properties_list_entry (
197 udev_device* udev_device ) ;
201 FUNCTION: c-string udev_device_get_property_value (
202 udev_device* udev_device,
207 FUNCTION: c-string udev_device_get_driver (
208 udev_device* udev_device ) ;
212 FUNCTION: dev_t udev_device_get_devnum (
213 udev_device* udev_device ) ;
217 FUNCTION: c-string udev_device_get_action (
218 udev_device* udev_device ) ;
222 FUNCTION: ulonglong udev_device_get_seqnum (
223 udev_device* udev_device ) ;
227 FUNCTION: c-string udev_device_get_sysattr_value (
228 udev_device* udev_device,
235 FUNCTION: udev_monitor* udev_monitor_ref (
236 udev_monitor* udev_monitor ) ;
240 FUNCTION: void udev_monitor_unref (
241 udev_monitor* udev_monitor ) ;
245 FUNCTION: udev* udev_monitor_get_udev (
246 udev_monitor* udev_monitor ) ;
250 FUNCTION: udev_monitor* udev_monitor_new_from_netlink (
256 FUNCTION: udev_monitor* udev_monitor_new_from_socket (
258 c-string socket_path ) ;
262 FUNCTION: int udev_monitor_enable_receiving (
263 udev_monitor* udev_monitor ) ;
267 FUNCTION: int udev_monitor_set_receive_buffer_size (
268 udev_monitor* udev_monitor,
273 FUNCTION: int udev_monitor_get_fd (
274 udev_monitor* udev_monitor ) ;
278 FUNCTION: udev_device* udev_monitor_receive_device (
279 udev_monitor* udev_monitor ) ;
283 FUNCTION: int udev_monitor_filter_add_match_subsystem_devtype (
284 udev_monitor* udev_monitor,
290 FUNCTION: int udev_monitor_filter_update (
291 udev_monitor* udev_monitor ) ;
295 FUNCTION: int udev_monitor_filter_remove (
296 udev_monitor* udev_monitor ) ;
300 C-TYPE: udev_enumerate
302 FUNCTION: udev_enumerate* udev_enumerate_ref (
303 udev_enumerate* udev_enumerate ) ;
307 FUNCTION: void udev_enumerate_unref (
308 udev_enumerate* udev_enumerate ) ;
312 FUNCTION: udev* udev_enumerate_get_udev (
313 udev_enumerate* udev_enumerate ) ;
317 FUNCTION: udev_enumerate* udev_enumerate_new (
322 FUNCTION: int udev_enumerate_add_match_subsystem (
323 udev_enumerate* udev_enumerate,
324 c-string subsystem ) ;
328 FUNCTION: int udev_enumerate_add_nomatch_subsystem (
329 udev_enumerate* udev_enumerate,
330 c-string subsystem ) ;
334 FUNCTION: int udev_enumerate_add_match_sysattr (
335 udev_enumerate* udev_enumerate,
341 FUNCTION: int udev_enumerate_add_nomatch_sysattr (
342 udev_enumerate* udev_enumerate,
348 FUNCTION: int udev_enumerate_add_match_property (
349 udev_enumerate* udev_enumerate,
355 FUNCTION: int udev_enumerate_add_match_sysname (
356 udev_enumerate* udev_enumerate,
361 FUNCTION: int udev_enumerate_add_syspath (
362 udev_enumerate* udev_enumerate,
367 FUNCTION: int udev_enumerate_scan_devices (
368 udev_enumerate* udev_enumerate ) ;
372 FUNCTION: int udev_enumerate_scan_subsystems (
373 udev_enumerate* udev_enumerate ) ;
377 FUNCTION: udev_list_entry* udev_enumerate_get_list_entry (
378 udev_enumerate* udev_enumerate ) ;
384 FUNCTION: udev_queue* udev_queue_ref (
385 udev_queue* udev_queue ) ;
389 FUNCTION: void udev_queue_unref (
390 udev_queue* udev_queue ) ;
394 FUNCTION: udev* udev_queue_get_udev (
395 udev_queue* udev_queue ) ;
399 FUNCTION: udev_queue* udev_queue_new (
404 FUNCTION: ulonglong udev_queue_get_kernel_seqnum (
405 udev_queue* udev_queue ) ;
409 FUNCTION: ulonglong udev_queue_get_udev_seqnum (
410 udev_queue* udev_queue ) ;
414 FUNCTION: int udev_queue_get_udev_is_active (
415 udev_queue* udev_queue ) ;
419 FUNCTION: int udev_queue_get_queue_is_empty (
420 udev_queue* udev_queue ) ;
424 FUNCTION: int udev_queue_get_seqnum_is_finished (
425 udev_queue* udev_queue,
430 FUNCTION: int udev_queue_get_seqnum_sequence_is_finished (
431 udev_queue* udev_queue,
437 FUNCTION: udev_list_entry* udev_queue_get_queued_list_entry (
438 udev_queue* udev_queue ) ;
442 FUNCTION: udev_list_entry* udev_queue_get_failed_list_entry (
443 udev_queue* udev_queue ) ;