1- From 1c11650435d49430ddc9838ae0e59a8bcdad8243 Mon Sep 17 00:00:00 2001
1+ From 698a2f63c0fde81a3c2aec2c2de0e7ccfe0f3bd8 Mon Sep 17 00:00:00 2001
22From: Andy-Python-Programmer <andypythonappdeveloper@gmail.com>
3- Date: Fri, 3 Mar 2023 16:39:55 +1100
3+ Date: Fri, 3 Mar 2023 18:52:53 +1100
44Subject: [PATCH] <xxx>
55
66---
77 .../linux_like/linux/gnu/b64/x86_64/mod.rs | 4 +-
88 src/unix/linux_like/linux/gnu/mod.rs | 4 +-
99 src/unix/linux_like/linux/mod.rs | 28 +-
10- src/unix/mlibc/mod.rs | 460 ++++++++++++++++--
11- 4 files changed, 442 insertions(+), 54 deletions(-)
10+ src/unix/mlibc/mod.rs | 499 ++++++++++++++++--
11+ 4 files changed, 481 insertions(+), 54 deletions(-)
1212
1313diff --git a/src/unix/linux_like/linux/gnu/b64/x86_64/mod.rs b/src/unix/linux_like/linux/gnu/b64/x86_64/mod.rs
1414index e6307e2..cae81c4 100644
@@ -185,7 +185,7 @@ index be12190..c8762d5 100644
185185 .field("ifr_name", &self.ifr_name)
186186 .field("ifr_ifru", &self.ifr_ifru)
187187diff --git a/src/unix/mlibc/mod.rs b/src/unix/mlibc/mod.rs
188- index 2046530..0d74760 100644
188+ index 2046530..b479ed2 100644
189189--- a/src/unix/mlibc/mod.rs
190190+++ b/src/unix/mlibc/mod.rs
191191@@ -47,7 +47,6 @@ pub type fsfilcnt_t = ::c_uint;
@@ -287,7 +287,7 @@ index 2046530..0d74760 100644
287287 }
288288 pub struct pthread_rwlock_t {
289289 pub __mlibc_m: ::c_uint,
290- @@ -319,10 +348,73 @@ s! {
290+ @@ -319,10 +348,111 @@ s! {
291291 pub struct fd_set {
292292 pub fds_bits: [c_char; 128],
293293 }
@@ -333,6 +333,44 @@ index 2046530..0d74760 100644
333333+ pub l_start: ::off_t,
334334+ pub l_len: ::off_t,
335335+ pub l_pid: ::pid_t,
336+ + }
337+ + }
338+ +
339+ + s_no_extra_traits! {
340+ + // options/posix/include/net/if.h
341+ + #[cfg(libc_union)]
342+ + pub union __c_anonymous_ifr_ifru {
343+ + pub ifru_addr: ::sockaddr,
344+ + pub ifru_dstaddr: ::sockaddr,
345+ + pub ifru_broadaddr: ::sockaddr,
346+ + pub ifru_netmask: ::sockaddr,
347+ + pub ifru_hwaddr: ::sockaddr,
348+ + pub ifru_flags: ::c_short,
349+ + pub ifru_ifindex: ::c_int,
350+ + pub ifru_metric: ::c_int,
351+ + pub ifru_mtu: ::c_int,
352+ + pub ifru_map: __c_anonymous_ifru_map,
353+ + pub ifru_slave: [::c_char; ::IFNAMSIZ],
354+ + pub ifru_newname: [::c_char; ::IFNAMSIZ],
355+ + pub ifru_data: *mut ::c_char,
356+ + }
357+ +
358+ + pub struct __c_anonymous_ifru_map {
359+ + pub mem_start: ::c_ulong,
360+ + pub mem_end: ::c_ulong,
361+ + pub base_addr: ::c_ushort,
362+ + pub irq: ::c_uchar,
363+ + pub dma: ::c_uchar,
364+ + pub port: ::c_uchar,
365+ + }
366+ +
367+ + pub struct ifreq {
368+ + /// if name, e.g. "en0"
369+ + pub ifr_name: [::c_char; ::IFNAMSIZ],
370+ + #[cfg(libc_union)]
371+ + pub ifr_ifru: __c_anonymous_ifr_ifru,
372+ + #[cfg(not(libc_union))]
373+ + pub ifr_ifru: ::sockaddr,
336374+ }
337375 }
338376
@@ -361,7 +399,7 @@ index 2046530..0d74760 100644
361399 pub {const} fn WCOREDUMP(x: ::c_int) -> bool {
362400 x & WCOREFLAG != 0
363401 }
364- @@ -349,6 +441 ,104 @@ safe_f! {
402+ @@ -349,6 +479 ,104 @@ safe_f! {
365403 }
366404 }
367405
@@ -466,7 +504,7 @@ index 2046530..0d74760 100644
466504 // abis/mlibc/vm-flags.h
467505 pub const MAP_ANON: ::c_int = 8;
468506 pub const MAP_PRIVATE: ::c_int = 1;
469- @@ -356,11 +546 ,24 @@ pub const MAP_SHARED: ::c_int = 2;
507+ @@ -356,11 +584 ,24 @@ pub const MAP_SHARED: ::c_int = 2;
470508 pub const PROT_EXEC: ::c_int = 4;
471509 pub const PROT_READ: ::c_int = 1;
472510 pub const PROT_WRITE: ::c_int = 2;
@@ -491,7 +529,7 @@ index 2046530..0d74760 100644
491529
492530 // options/ansi/include/time.h
493531 pub const CLOCK_MONOTONIC: clockid_t = 1;
494- @@ -369,33 +572 ,49 @@ pub const CLOCK_REALTIME: clockid_t = 0;
532+ @@ -369,33 +610 ,49 @@ pub const CLOCK_REALTIME: clockid_t = 0;
495533 // options/posix/include/netdb.h
496534 pub const EAI_SYSTEM: ::c_int = 9;
497535
@@ -563,7 +601,7 @@ index 2046530..0d74760 100644
563601
564602 // abis/linux/signal.h
565603 pub const SIGABRT: ::c_int = 6;
566- @@ -436,45 +655 ,121 @@ pub const SIGSYS: ::c_int = 31;
604+ @@ -436,45 +693 ,121 @@ pub const SIGSYS: ::c_int = 31;
567605 pub const SIGUNUSED: ::c_int = SIGSYS;
568606 pub const SIGCANCEL: ::c_int = 32;
569607
@@ -686,7 +724,7 @@ index 2046530..0d74760 100644
686724 pub const SOCK_STREAM: ::c_int = 4;
687725 pub const SOL_SOCKET: ::c_int = 1;
688726 pub const SO_ACCEPTCONN: ::c_int = 1;
689- @@ -494,6 +789 ,8 @@ pub const SO_SNDLOWAT: ::c_int = 14;
727+ @@ -494,6 +827 ,8 @@ pub const SO_SNDLOWAT: ::c_int = 14;
690728 pub const SO_SNDTIMEO: ::c_int = 15;
691729 pub const SO_TYPE: ::c_int = 16;
692730 pub const SO_SNDBUFFORCE: ::c_int = 17;
@@ -695,7 +733,7 @@ index 2046530..0d74760 100644
695733 pub const SO_PEERCRED: ::c_int = 18;
696734 pub const SO_ATTACH_FILTER: ::c_int = 19;
697735 pub const SO_PASSCRED: ::c_int = 20;
698- @@ -503,6 +800 ,12 @@ pub const SO_PROTOCOL: ::c_int = 23;
736+ @@ -503,6 +838 ,12 @@ pub const SO_PROTOCOL: ::c_int = 23;
699737 pub const SO_REUSEPORT: ::c_int = 24;
700738 pub const SO_TIMESTAMP: ::c_int = 25;
701739
@@ -708,7 +746,7 @@ index 2046530..0d74760 100644
708746 // abis/mlibc/errno.h
709747 pub const EDOM: ::c_int = 1;
710748 pub const EILSEQ: ::c_int = 2;
711- @@ -592,15 +895 ,24 @@ pub const ENOTBLK: ::c_int = 1083;
749+ @@ -592,15 +933 ,24 @@ pub const ENOTBLK: ::c_int = 1083;
712750
713751 // options/posix/include/fcntl.h
714752 pub const AT_FDCWD: ::c_int = -100;
@@ -734,7 +772,7 @@ index 2046530..0d74760 100644
734772 pub const F_GETOWN: ::c_int = 10;
735773 pub const F_SETOWN: ::c_int = 11;
736774 pub const O_ACCMODE: ::c_int = 7;
737- @@ -644,23 +956,54 @@ pub const S_IXGRP: mode_t = 0o10;
775+ @@ -644,23 +994,55 @@ pub const S_IXGRP: mode_t = 0o10;
738776 pub const S_IXOTH: mode_t = 0o1;
739777 pub const S_IXUSR: mode_t = 0o100;
740778
@@ -786,11 +824,12 @@ index 2046530..0d74760 100644
786824+ pub const PATH_MAX: ::size_t = 4096;
787825+
788826+ // abis/linux/ioctls.h
789- + pub const SIOCGIFHWADDR: ::c_ulong = 0x00008927;
827+ + pub const SIOCGIFHWADDR: ::c_ulong = 0x8927;
828+ + pub const SIOCSIFADDR: ::c_ulong = 0x8916;
790829
791830 // options/posix/include/pthread.h
792831 align_const! {
793- @@ -668,9 +1011 ,12 @@ align_const! {
832+ @@ -668,9 +1050 ,12 @@ align_const! {
794833 __mlibc_state: 0,
795834 __mlibc_recursion: 0,
796835 __mlibc_flags: 0,
@@ -803,7 +842,7 @@ index 2046530..0d74760 100644
803842 };
804843 pub const PTHREAD_RWLOCK_INITIALIZER: pthread_rwlock_t = pthread_rwlock_t {
805844 __mlibc_m: 0,
806- @@ -689,11 +1035 ,40 @@ pub const PTHREAD_PROCESS_PRIVATE: ::c_int = 0;
845+ @@ -689,11 +1074 ,40 @@ pub const PTHREAD_PROCESS_PRIVATE: ::c_int = 0;
807846 pub const PTHREAD_PROCESS_SHARED: ::c_int = 1;
808847
809848 extern "C" {
@@ -844,7 +883,7 @@ index 2046530..0d74760 100644
844883 pub fn getgrgid_r(
845884 gid: ::gid_t,
846885 grp: *mut ::group,
847- @@ -728,13 +1103 ,24 @@ extern "C" {
886+ @@ -728,13 +1142 ,24 @@ extern "C" {
848887 buflen: ::size_t,
849888 result: *mut *mut passwd,
850889 ) -> ::c_int;
@@ -873,7 +912,7 @@ index 2046530..0d74760 100644
873912 pub fn pthread_create(
874913 thread: *mut ::pthread_t,
875914 attr: *const ::pthread_attr_t,
876- @@ -752,6 +1138 ,8 @@ extern "C" {
915+ @@ -752,6 +1177 ,8 @@ extern "C" {
877916 addr: *mut ::sockaddr,
878917 addrlen: *mut ::socklen_t,
879918 ) -> ::ssize_t;
0 commit comments