@@ -655,6 +655,13 @@ s! {
655
655
pub updated: :: c_ulong,
656
656
pub ha: [ :: c_uchar; :: MAX_ADDR_LEN ] ,
657
657
}
658
+
659
+ pub struct inotify_event {
660
+ pub wd: :: c_int,
661
+ pub mask: :: uint32_t,
662
+ pub cookie: :: uint32_t,
663
+ pub len: :: uint32_t
664
+ }
658
665
}
659
666
660
667
pub const ABDAY_1 : :: nl_item = 0x20000 ;
@@ -1677,6 +1684,45 @@ pub const ARPD_LOOKUP: ::c_ushort = 0x02;
1677
1684
pub const ARPD_FLUSH : :: c_ushort = 0x03 ;
1678
1685
pub const ATF_MAGIC : :: c_int = 0x80 ;
1679
1686
1687
+ // uapi/linux/inotify.h
1688
+ pub const IN_ACCESS : :: uint32_t = 0x0000_0001 ;
1689
+ pub const IN_MODIFY : :: uint32_t = 0x0000_0002 ;
1690
+ pub const IN_ATTRIB : :: uint32_t = 0x0000_0004 ;
1691
+ pub const IN_CLOSE_WRITE : :: uint32_t = 0x0000_0008 ;
1692
+ pub const IN_CLOSE_NOWRITE : :: uint32_t = 0x0000_0010 ;
1693
+ pub const IN_CLOSE : :: uint32_t = ( IN_CLOSE_WRITE | IN_CLOSE_NOWRITE ) ;
1694
+ pub const IN_OPEN : :: uint32_t = 0x0000_0020 ;
1695
+ pub const IN_MOVED_FROM : :: uint32_t = 0x0000_0040 ;
1696
+ pub const IN_MOVED_TO : :: uint32_t = 0x0000_0080 ;
1697
+ pub const IN_MOVE : :: uint32_t = ( IN_MOVED_FROM | IN_MOVED_TO ) ;
1698
+ pub const IN_CREATE : :: uint32_t = 0x0000_0100 ;
1699
+ pub const IN_DELETE : :: uint32_t = 0x0000_0200 ;
1700
+ pub const IN_DELETE_SELF : :: uint32_t = 0x0000_0400 ;
1701
+ pub const IN_MOVE_SELF : :: uint32_t = 0x0000_0800 ;
1702
+
1703
+ pub const IN_UNMOUNT : :: uint32_t = 0x0000_2000 ;
1704
+ pub const IN_Q_OVERFLOW : :: uint32_t = 0x0000_4000 ;
1705
+ pub const IN_IGNORED : :: uint32_t = 0x0000_8000 ;
1706
+
1707
+ pub const IN_ONLYDIR : :: uint32_t = 0x0100_0000 ;
1708
+ pub const IN_DONT_FOLLOW : :: uint32_t = 0x0200_0000 ;
1709
+ // pub const IN_EXCL_UNLINK: ::uint32_t = 0x0400_0000;
1710
+
1711
+ // pub const IN_MASK_CREATE: ::uint32_t = 0x1000_0000;
1712
+ // pub const IN_MASK_ADD: ::uint32_t = 0x2000_0000;
1713
+ pub const IN_ISDIR : :: uint32_t = 0x4000_0000 ;
1714
+ pub const IN_ONESHOT : :: uint32_t = 0x8000_0000 ;
1715
+
1716
+ pub const IN_ALL_EVENTS : :: uint32_t = (
1717
+ IN_ACCESS | IN_MODIFY | IN_ATTRIB | IN_CLOSE_WRITE |
1718
+ IN_CLOSE_NOWRITE | IN_OPEN | IN_MOVED_FROM |
1719
+ IN_MOVED_TO | IN_DELETE | IN_CREATE | IN_DELETE_SELF |
1720
+ IN_MOVE_SELF
1721
+ ) ;
1722
+
1723
+ pub const IN_CLOEXEC : :: c_int = O_CLOEXEC ;
1724
+ pub const IN_NONBLOCK : :: c_int = O_NONBLOCK ;
1725
+
1680
1726
#[ cfg( not( target_arch = "sparc64" ) ) ]
1681
1727
pub const SO_TIMESTAMPING : :: c_int = 37 ;
1682
1728
#[ cfg( target_arch = "sparc64" ) ]
@@ -2259,6 +2305,12 @@ extern {
2259
2305
nobj : :: size_t ,
2260
2306
stream : * mut :: FILE
2261
2307
) -> :: size_t ;
2308
+ pub fn inotify_init ( ) -> :: c_int ;
2309
+ pub fn inotify_init1 ( flags : :: c_int ) -> :: c_int ;
2310
+ pub fn inotify_add_watch ( fd : :: c_int ,
2311
+ path : * const :: c_char ,
2312
+ mask : :: uint32_t ) -> :: c_int ;
2313
+ pub fn inotify_rm_watch ( fd : :: c_int , wd : :: c_int ) -> :: c_int ;
2262
2314
}
2263
2315
2264
2316
cfg_if ! {
0 commit comments