summaryrefslogtreecommitdiffstats
path: root/vendor/libc
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-17 12:20:29 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-17 12:20:29 +0000
commit631cd5845e8de329d0e227aaa707d7ea228b8f8f (patch)
treea1b87c8f8cad01cf18f7c5f57a08f102771ed303 /vendor/libc
parentAdding debian version 1.69.0+dfsg1-1. (diff)
downloadrustc-631cd5845e8de329d0e227aaa707d7ea228b8f8f.tar.xz
rustc-631cd5845e8de329d0e227aaa707d7ea228b8f8f.zip
Merging upstream version 1.70.0+dfsg1.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'vendor/libc')
-rw-r--r--vendor/libc/.cargo-checksum.json2
-rw-r--r--vendor/libc/Cargo.toml2
-rw-r--r--vendor/libc/build.rs108
-rw-r--r--vendor/libc/src/fuchsia/mod.rs1
-rw-r--r--vendor/libc/src/lib.rs6
-rw-r--r--vendor/libc/src/unix/aix/mod.rs2314
-rw-r--r--vendor/libc/src/unix/aix/powerpc64.rs570
-rw-r--r--vendor/libc/src/unix/bsd/apple/long_array.rs8
-rw-r--r--vendor/libc/src/unix/bsd/apple/mod.rs22
-rw-r--r--vendor/libc/src/unix/bsd/freebsdlike/freebsd/freebsd11/mod.rs4
-rw-r--r--vendor/libc/src/unix/bsd/freebsdlike/freebsd/freebsd12/mod.rs14
-rw-r--r--vendor/libc/src/unix/bsd/freebsdlike/freebsd/freebsd13/mod.rs17
-rw-r--r--vendor/libc/src/unix/bsd/freebsdlike/freebsd/freebsd14/mod.rs17
-rw-r--r--vendor/libc/src/unix/bsd/freebsdlike/freebsd/mod.rs981
-rw-r--r--vendor/libc/src/unix/bsd/freebsdlike/mod.rs3
-rw-r--r--vendor/libc/src/unix/bsd/netbsdlike/mod.rs1
-rw-r--r--vendor/libc/src/unix/bsd/netbsdlike/netbsd/mod.rs64
-rw-r--r--vendor/libc/src/unix/bsd/netbsdlike/openbsd/mod.rs4
-rw-r--r--vendor/libc/src/unix/haiku/mod.rs11
-rw-r--r--vendor/libc/src/unix/linux_like/android/b32/arm.rs8
-rw-r--r--vendor/libc/src/unix/linux_like/android/b32/x86/mod.rs8
-rw-r--r--vendor/libc/src/unix/linux_like/android/b64/aarch64/mod.rs33
-rw-r--r--vendor/libc/src/unix/linux_like/android/b64/riscv64/mod.rs23
-rw-r--r--vendor/libc/src/unix/linux_like/android/b64/x86_64/mod.rs8
-rw-r--r--vendor/libc/src/unix/linux_like/android/mod.rs18
-rw-r--r--vendor/libc/src/unix/linux_like/emscripten/mod.rs8
-rw-r--r--vendor/libc/src/unix/linux_like/linux/align.rs41
-rw-r--r--vendor/libc/src/unix/linux_like/linux/arch/generic/mod.rs4
-rw-r--r--vendor/libc/src/unix/linux_like/linux/gnu/b32/arm/mod.rs21
-rw-r--r--vendor/libc/src/unix/linux_like/linux/gnu/b32/m68k/mod.rs2
-rw-r--r--vendor/libc/src/unix/linux_like/linux/gnu/b32/mod.rs2
-rw-r--r--vendor/libc/src/unix/linux_like/linux/gnu/b32/riscv32/mod.rs2
-rw-r--r--vendor/libc/src/unix/linux_like/linux/gnu/b64/aarch64/ilp32.rs2
-rw-r--r--vendor/libc/src/unix/linux_like/linux/gnu/b64/aarch64/lp64.rs2
-rw-r--r--vendor/libc/src/unix/linux_like/linux/gnu/b64/aarch64/mod.rs7
-rw-r--r--vendor/libc/src/unix/linux_like/linux/gnu/b64/loongarch64/mod.rs2
-rw-r--r--vendor/libc/src/unix/linux_like/linux/gnu/b64/mips64/mod.rs2
-rw-r--r--vendor/libc/src/unix/linux_like/linux/gnu/b64/powerpc64/mod.rs2
-rw-r--r--vendor/libc/src/unix/linux_like/linux/gnu/b64/riscv64/mod.rs2
-rw-r--r--vendor/libc/src/unix/linux_like/linux/gnu/b64/s390x.rs2
-rw-r--r--vendor/libc/src/unix/linux_like/linux/gnu/b64/sparc64/mod.rs2
-rw-r--r--vendor/libc/src/unix/linux_like/linux/gnu/b64/x86_64/mod.rs1
-rw-r--r--vendor/libc/src/unix/linux_like/linux/gnu/b64/x86_64/not_x32.rs1
-rw-r--r--vendor/libc/src/unix/linux_like/linux/gnu/b64/x86_64/x32.rs1
-rw-r--r--vendor/libc/src/unix/linux_like/linux/gnu/mod.rs40
-rw-r--r--vendor/libc/src/unix/linux_like/linux/mod.rs411
-rw-r--r--vendor/libc/src/unix/linux_like/linux/musl/b32/mod.rs1
-rw-r--r--vendor/libc/src/unix/linux_like/linux/musl/b32/riscv32/mod.rs2
-rw-r--r--vendor/libc/src/unix/linux_like/linux/musl/b64/mod.rs1
-rw-r--r--vendor/libc/src/unix/linux_like/linux/musl/mod.rs28
-rw-r--r--vendor/libc/src/unix/linux_like/linux/no_align.rs37
-rw-r--r--vendor/libc/src/unix/linux_like/linux/uclibc/arm/mod.rs25
-rw-r--r--vendor/libc/src/unix/linux_like/linux/uclibc/mips/mips32/mod.rs27
-rw-r--r--vendor/libc/src/unix/linux_like/linux/uclibc/mips/mips64/mod.rs2
-rw-r--r--vendor/libc/src/unix/linux_like/linux/uclibc/mips/mod.rs18
-rw-r--r--vendor/libc/src/unix/linux_like/linux/uclibc/x86_64/mod.rs3
-rw-r--r--vendor/libc/src/unix/linux_like/mod.rs34
-rw-r--r--vendor/libc/src/unix/mod.rs43
-rw-r--r--vendor/libc/src/unix/newlib/mod.rs2
-rw-r--r--vendor/libc/src/unix/nto/mod.rs1
-rw-r--r--vendor/libc/src/unix/solarish/mod.rs4
-rw-r--r--vendor/libc/src/wasi.rs5
-rw-r--r--vendor/libc/src/xous.rs49
63 files changed, 4884 insertions, 202 deletions
diff --git a/vendor/libc/.cargo-checksum.json b/vendor/libc/.cargo-checksum.json
index e90619c72..2b9184f0d 100644
--- a/vendor/libc/.cargo-checksum.json
+++ b/vendor/libc/.cargo-checksum.json
@@ -1 +1 @@
-{"files":{"CONTRIBUTING.md":"bdc90b52cf803faac96e594069a86dd8ea150d5ba7fb3e6cadfc08dac4c7b0ce","Cargo.toml":"cec0b42b20e776ac9165b5a5eedfbd8fc033700cacabfa4209c60d35833e42f1","LICENSE-APACHE":"62c7a1e35f56406896d7aa7ca52d0cc0d272ac022b5d2796e7d6905db8a3636a","LICENSE-MIT":"a8d47ff51ca256f56a8932dba07660672dbfe3004257ca8de708aac1415937a1","README.md":"776affa26b66843a2b4f1a1c8f88d92f6461b74568911450fea717e9db6f877b","build.rs":"cecfa3f926ab4a9c87cd59cc0d687f98eceb6035b0dde185152e5206d090f8d0","rustfmt.toml":"eaa2ea84fc1ba0359b77680804903e07bb38d257ab11986b95b158e460f787b2","src/fixed_width_ints.rs":"7f986e5f5e68d25ef04d386fd2f640e8be8f15427a8d4a458ea01d26b8dca0ca","src/fuchsia/aarch64.rs":"378776a9e40766154a54c94c2a7b4675b5c302a38e6e42da99e67bfbaee60e56","src/fuchsia/align.rs":"ae1cf8f011a99737eabeb14ffff768e60f13b13363d7646744dbb0f443dab3d6","src/fuchsia/mod.rs":"1b4e6c34b01b4c970f4d4c044d1642020e0fc2ea1b8442e8f1a9b698569ab1f6","src/fuchsia/no_align.rs":"303f3f1b255e0088b5715094353cf00476131d8e94e6aebb3f469557771c8b8a","src/fuchsia/x86_64.rs":"93a3632b5cf67d2a6bcb7dc0a558605252d5fe689e0f38d8aa2ec5852255ac87","src/hermit/aarch64.rs":"86048676e335944c37a63d0083d0f368ae10ceccefeed9debb3bbe08777fc682","src/hermit/mod.rs":"d3bfce41e4463d4be8020a2d063c9bfa8b665f45f1cc6cbf3163f5d01e7cb21f","src/hermit/x86_64.rs":"ab832b7524e5fb15c49ff7431165ab1a37dc4667ae0b58e8306f4c539bfa110c","src/lib.rs":"ce753ef318b300bbd441feabdd77d00322dfb6ce9eee8c78a38afe02b57aa4c0","src/macros.rs":"b457eb028b8e8ab3c24bb7292b874ad4e491edbb83594f6a3da024df5348c088","src/psp.rs":"dd31aabd46171d474ec5828372e28588935120e7355c90c105360d8fa9264c1c","src/sgx.rs":"16a95cdefc81c5ee00d8353a60db363c4cc3e0f75abcd5d0144723f2a306ed1b","src/solid/aarch64.rs":"a726e47f324adf73a4a0b67a2c183408d0cad105ae66acf36db37a42ab7f8707","src/solid/arm.rs":"e39a4f74ebbef3b97b8c95758ad741123d84ed3eb48d9cf4f1f4872097fc27fe","src/solid/mod.rs":"5f4151dca5132e4b4e4c23ab9737e12856dddbdc0ca3f7dbc004328ef3c8acde","src/switch.rs":"9da3dd39b3de45a7928789926e8572d00e1e11a39e6f7289a1349aadce90edba","src/unix/align.rs":"2cdc7c826ef7ae61f5171c5ae8c445a743d86f1a7f2d9d7e4ceeec56d6874f65","src/unix/bsd/apple/b32/align.rs":"ec833a747866fe19ca2d9b4d3c9ff0385faba5edf4bd0d15fa68884c40b0e26c","src/unix/bsd/apple/b32/mod.rs":"2546ad3eb6aecb95f916648bc63264117c92b4b4859532b34cb011e4c75a5a72","src/unix/bsd/apple/b64/aarch64/align.rs":"e8eb38d064b5fefec6f37d42873820a0483e7c758ed336cc59a7155455ca89c9","src/unix/bsd/apple/b64/aarch64/mod.rs":"44c217a4f263afe7a97435de9323d20a96c37836f899ca0925306d4b7e073c27","src/unix/bsd/apple/b64/align.rs":"ec833a747866fe19ca2d9b4d3c9ff0385faba5edf4bd0d15fa68884c40b0e26c","src/unix/bsd/apple/b64/mod.rs":"f5e278a1af7fb358891d1c9be4eb7e815aaca0c5cb738d0c3604ba2208a856f7","src/unix/bsd/apple/b64/x86_64/align.rs":"ec833a747866fe19ca2d9b4d3c9ff0385faba5edf4bd0d15fa68884c40b0e26c","src/unix/bsd/apple/b64/x86_64/mod.rs":"8c87c5855038aae5d433c8f5eb3b29b0a175879a0245342b3bfd83bdf4cfd936","src/unix/bsd/apple/mod.rs":"1cc76b056d5925aedae04ead411057dc5c6c9bd3948609fdb30164ac1fb6565e","src/unix/bsd/freebsdlike/dragonfly/errno.rs":"8295b8bb0dfd38d2cdb4d9192cdeeb534cc6c3b208170e64615fa3e0edb3e578","src/unix/bsd/freebsdlike/dragonfly/mod.rs":"8986a8c79bcadfbdb58ec1a72e1aff8ce9b341c9392d7b0b7449bddf6db59058","src/unix/bsd/freebsdlike/freebsd/aarch64.rs":"6c8e216385f53a4bf5f171749b57602fc34a4e4b160a44ca31c058cb0c8a2126","src/unix/bsd/freebsdlike/freebsd/arm.rs":"59d6a670eea562fb87686e243e0a84603d29a2028a3d4b3f99ccc01bd04d2f47","src/unix/bsd/freebsdlike/freebsd/freebsd11/b64.rs":"9808d152c1196aa647f1b0f0cf84dac8c930da7d7f897a44975545e3d9d17681","src/unix/bsd/freebsdlike/freebsd/freebsd11/mod.rs":"badda6f0f7666f38345b1f4ca78817a47bc92bbdcdc3a1377f376f4e08c316e5","src/unix/bsd/freebsdlike/freebsd/freebsd12/b64.rs":"61cbe45f8499bedb168106b686d4f8239472f25c7553b069eec2afe197ff2df6","src/unix/bsd/freebsdlike/freebsd/freebsd12/mod.rs":"327700c5668be863f1fea205c82b0402e2936b883df63dda677716c30a50a284","src/unix/bsd/freebsdlike/freebsd/freebsd12/x86_64.rs":"2df36a7f122f6d6e5753cfb4d22e915cc80f6bc91c0161b3daae55a481bfd052","src/unix/bsd/freebsdlike/freebsd/freebsd13/b64.rs":"61cbe45f8499bedb168106b686d4f8239472f25c7553b069eec2afe197ff2df6","src/unix/bsd/freebsdlike/freebsd/freebsd13/mod.rs":"7f689e9a944c919834ec852b30c224f98e14b4b4087571adefeea5abad5d6374","src/unix/bsd/freebsdlike/freebsd/freebsd13/x86_64.rs":"2df36a7f122f6d6e5753cfb4d22e915cc80f6bc91c0161b3daae55a481bfd052","src/unix/bsd/freebsdlike/freebsd/freebsd14/b64.rs":"61cbe45f8499bedb168106b686d4f8239472f25c7553b069eec2afe197ff2df6","src/unix/bsd/freebsdlike/freebsd/freebsd14/mod.rs":"9b6fa1c3f5217f9482e0bed3bd0ea2905cdf56d628307cea48e49d8e00a6b09d","src/unix/bsd/freebsdlike/freebsd/freebsd14/x86_64.rs":"2df36a7f122f6d6e5753cfb4d22e915cc80f6bc91c0161b3daae55a481bfd052","src/unix/bsd/freebsdlike/freebsd/mod.rs":"26bda8cf730ab4868523a6ed7c513f51885cad30cdd02da905ff35b597576415","src/unix/bsd/freebsdlike/freebsd/powerpc.rs":"9ca3f82f88974e6db5569f2d76a5a3749b248a31747a6c0da5820492bdfeca42","src/unix/bsd/freebsdlike/freebsd/powerpc64.rs":"2dae3ecc87eac3b11657aa98915def55fc4b5c0de11fe26aae23329a54628a9a","src/unix/bsd/freebsdlike/freebsd/riscv64.rs":"fa4bed4c58cad24ba3395941c7fa6b11e089551a04714f9561078e400f5b2b62","src/unix/bsd/freebsdlike/freebsd/x86.rs":"c5005e3249eb7c93cfbac72a9e9272320d80ce7983da990ceb05a447f59a02c5","src/unix/bsd/freebsdlike/freebsd/x86_64/align.rs":"0e1f69a88fca1c32874b1daf5db3d446fefbe518dca497f096cc9168c39dde70","src/unix/bsd/freebsdlike/freebsd/x86_64/mod.rs":"51e4dd0c8ae247bb652feda5adad9333ea3bb30c750c3a3935e0b0e47d7803eb","src/unix/bsd/freebsdlike/mod.rs":"bd80ce2ff628ed5eaa856ebe8b6a8fb0e89d1c9728040b9ee6b967beb4bcf3a7","src/unix/bsd/mod.rs":"0c672b075b5616fca2cc56c00ee31c3f554dcbd2e88a7c2ba1437aa6e5604319","src/unix/bsd/netbsdlike/mod.rs":"34f60d73631f3c59936c87db1f62ddb8f693901c3cb199f7f370882e84d509fa","src/unix/bsd/netbsdlike/netbsd/aarch64.rs":"65dcb58d11e8d8028401a9d07ca3eb4cb4f053e04249cc877353449d84ccc4cb","src/unix/bsd/netbsdlike/netbsd/arm.rs":"58cdbb70b0d6f536551f0f3bb3725d2d75c4690db12c26c034e7d6ec4a924452","src/unix/bsd/netbsdlike/netbsd/mod.rs":"107a4aa396b8383c66e0ace2f941450b4b69146558cdc4d9fbe33eeab51760f1","src/unix/bsd/netbsdlike/netbsd/powerpc.rs":"ee7ff5d89d0ed22f531237b5059aa669df93a3b5c489fa641465ace8d405bf41","src/unix/bsd/netbsdlike/netbsd/sparc64.rs":"9489f4b3e4566f43bb12dfb92238960613dac7f6a45cc13068a8d152b902d7d9","src/unix/bsd/netbsdlike/netbsd/x86.rs":"20692320e36bfe028d1a34d16fe12ca77aa909cb02bda167376f98f1a09aefe7","src/unix/bsd/netbsdlike/netbsd/x86_64.rs":"1afe5ef46b14397cdd68664b5b232e4f5b035b6db1d4cf411c899d51ebca9f30","src/unix/bsd/netbsdlike/openbsd/aarch64.rs":"dd91931d373b7ecaf6e2de25adadee10d16fa9b12c2cbacdff3eb291e1ba36af","src/unix/bsd/netbsdlike/openbsd/arm.rs":"01580d261bc6447bb327a0d982181b7bdabfa066cee65a30373d3ced729ad307","src/unix/bsd/netbsdlike/openbsd/mips64.rs":"8532a189ae10c7d668d9d4065da8b05d124e09bd39442c9f74a7f231c43eca48","src/unix/bsd/netbsdlike/openbsd/mod.rs":"38b7d65a86701a75a9047a3ef3b006f09ffbb33ab2312174bcee889efb74e100","src/unix/bsd/netbsdlike/openbsd/powerpc.rs":"01580d261bc6447bb327a0d982181b7bdabfa066cee65a30373d3ced729ad307","src/unix/bsd/netbsdlike/openbsd/powerpc64.rs":"1dd5449dd1fd3d51e30ffdeeaece91d0aaf05c710e0ac699fecc5461cfa2c28e","src/unix/bsd/netbsdlike/openbsd/riscv64.rs":"1dd5449dd1fd3d51e30ffdeeaece91d0aaf05c710e0ac699fecc5461cfa2c28e","src/unix/bsd/netbsdlike/openbsd/sparc64.rs":"d04fd287afbaa2c5df9d48c94e8374a532a3ba491b424ddf018270c7312f4085","src/unix/bsd/netbsdlike/openbsd/x86.rs":"6f7f5c4fde2a2259eb547890cbd86570cea04ef85347d7569e94e679448bec87","src/unix/bsd/netbsdlike/openbsd/x86_64.rs":"d31db31630289c85af3339dbe357998a21ca584cbae31607448fe2cf7675a4e1","src/unix/haiku/b32.rs":"a2efdbf7158a6da341e1db9176b0ab193ba88b449616239ed95dced11f54d87b","src/unix/haiku/b64.rs":"ff8115367d3d7d354f792d6176dfaaa26353f57056197b563bf4681f91ff7985","src/unix/haiku/mod.rs":"891f77891349938ffb2048db0446e28f2b7f78a0286042d0f0a9af6c2d4570af","src/unix/haiku/native.rs":"dbfcbf4954a79d1df2ff58e0590bbcb8c57dfc7a32392aa73ee4726b66bd6cc8","src/unix/haiku/x86_64.rs":"3ec3aeeb7ed208b8916f3e32d42bfd085ff5e16936a1a35d9a52789f043b7237","src/unix/hermit/aarch64.rs":"86048676e335944c37a63d0083d0f368ae10ceccefeed9debb3bbe08777fc682","src/unix/hermit/mod.rs":"a1494a0bddf301cceb0d9b8529a84b5882fe855ceae77a1c4e8d6034e705e26c","src/unix/hermit/x86_64.rs":"ab832b7524e5fb15c49ff7431165ab1a37dc4667ae0b58e8306f4c539bfa110c","src/unix/linux_like/android/b32/arm.rs":"007391f35663762d8097a8a5ae301accb82c729713da0dfd9631c4bc69d9305e","src/unix/linux_like/android/b32/mod.rs":"7c173e0375119bf06a3081652faede95e5bcd6858e7576b7533d037978737c8f","src/unix/linux_like/android/b32/x86/align.rs":"812914e4241df82e32b12375ca3374615dc3a4bdd4cf31f0423c5815320c0dab","src/unix/linux_like/android/b32/x86/mod.rs":"81b4ab3ffc347e819f2f62c09dcd923d9d12d14b3d0e66ddc06ab78fa75a4b88","src/unix/linux_like/android/b64/aarch64/align.rs":"2179c3b1608fa4bf68840482bfc2b2fa3ee2faf6fcae3770f9e505cddca35c7b","src/unix/linux_like/android/b64/aarch64/int128.rs":"1735f6f5c56770d20dd426442f09724d9b2052b46a7cd82f23f3288a4a7276de","src/unix/linux_like/android/b64/aarch64/mod.rs":"f12594f7a57654ea63794822761c1ef9029ee5cef6bbad498c928a5bff2dfade","src/unix/linux_like/android/b64/mod.rs":"71e4fcbe952bfa4a5f9022f3972e906917b38f729b9d8ef57cd5d179104894ac","src/unix/linux_like/android/b64/riscv64/align.rs":"0bf138f84e5327d8339bcd4adf071a6832b516445e597552c82bbd881095e3a8","src/unix/linux_like/android/b64/riscv64/mod.rs":"80e9f93fed838a48b4e2e8d77b95c72cfd7c0647bcce63851555c5ad16dad143","src/unix/linux_like/android/b64/x86_64/align.rs":"7169d07a9fd4716f7512719aec9fda5d8bed306dc0720ffc1b21696c9951e3c6","src/unix/linux_like/android/b64/x86_64/mod.rs":"40be3b9dac9b52f3fd341fae4593a8c8c11a79ed694bcccf82f8810253c77492","src/unix/linux_like/android/mod.rs":"bf37384b99034eb1817303d9e1b35fe895da1010b024ada128e84059dad2c73b","src/unix/linux_like/emscripten/align.rs":"86c95cbed7a7161b1f23ee06843e7b0e2340ad92b2cb86fe2a8ef3e0e8c36216","src/unix/linux_like/emscripten/mod.rs":"24a6b0eadc011ee75c5bcbd18fe9f30d64006b71ec1416f6352e6015917240fc","src/unix/linux_like/emscripten/no_align.rs":"0128e4aa721a9902754828b61b5ec7d8a86619983ed1e0544a85d35b1051fad6","src/unix/linux_like/linux/align.rs":"d6c259942c8e843373accd180fc8f4f45f03544dfd21b93a8d02641ead3ef63e","src/unix/linux_like/linux/arch/generic/mod.rs":"46dd6634e564fb1b60c8a2d1018ef8f365d1a8ed26f162c99528922d06d14134","src/unix/linux_like/linux/arch/mips/mod.rs":"2d166054a586bb4bf6e4a4ba35f7574907b217225eff8f1a43adc4277e142460","src/unix/linux_like/linux/arch/mod.rs":"466a29622e47c6c7f1500682b2eb17f5566dd81b322cd6348f0fdd355cec593a","src/unix/linux_like/linux/arch/powerpc/mod.rs":"3f6da7b0fa7b394c7d4eea2bb3caa7a7729ab0d6c1491fef02206a912c41b815","src/unix/linux_like/linux/arch/sparc/mod.rs":"91593ec0440f1dd8f8e612028f432c44c14089286e2aca50e10511ab942db8c3","src/unix/linux_like/linux/gnu/align.rs":"e4a3c27fe20a57b8d612c34cb05bc70646edb5cec7251957315afa53a7b9f936","src/unix/linux_like/linux/gnu/b32/arm/align.rs":"6ec0eb3ee93f7ae99fd714b4deabfb5e97fbcefd8c26f5a45fb8e7150899cdeb","src/unix/linux_like/linux/gnu/b32/arm/mod.rs":"5bd3f6b3484e049ddaac95f411b0d82cbf1cd28e6a5defbc927bd917f5f7d299","src/unix/linux_like/linux/gnu/b32/m68k/align.rs":"8faa92f77a9232c035418d45331774e64a9a841d99c91791570a203bf2b45bcb","src/unix/linux_like/linux/gnu/b32/m68k/mod.rs":"a2a0a9400dae44086ebf579e0448e0676d4a3214d1ae7d13a024857251e23b6b","src/unix/linux_like/linux/gnu/b32/mips/align.rs":"429fb5e005cb7143602d430098b6ebfb7d360685b194f333dfd587472ae954ee","src/unix/linux_like/linux/gnu/b32/mips/mod.rs":"6b9a5dac6f937ddc1453e808e3c43502c87143332df9e43ac64fb8b1eda6c116","src/unix/linux_like/linux/gnu/b32/mod.rs":"8da281da578cdee972e952b118b903b370320897a7e335342a15e1359864bef2","src/unix/linux_like/linux/gnu/b32/powerpc.rs":"5c5d90326b54b57b98eff4745fe7a3fb02f053b2dc782241a73e807b491936a3","src/unix/linux_like/linux/gnu/b32/riscv32/align.rs":"d321491612be8d5c61b6ec2dc0111beb3a22e58803f99cd37543efe86621b119","src/unix/linux_like/linux/gnu/b32/riscv32/mod.rs":"5e7c1e29aeb82fc422f45b73fb0cf3d13d0902300f9150d2755a9074f8d96999","src/unix/linux_like/linux/gnu/b32/sparc/align.rs":"21adbed27df73e2d1ed934aaf733a643003d7baf2bde9c48ea440895bcca6d41","src/unix/linux_like/linux/gnu/b32/sparc/mod.rs":"80894eece66e9348f45d1b07ad37c757ea694bbd10ed49d3f920b34e9f51a9a3","src/unix/linux_like/linux/gnu/b32/x86/align.rs":"e4bafdc4a519a7922a81b37a62bbfd1177a2f620890eef8f1fbc47162e9eb413","src/unix/linux_like/linux/gnu/b32/x86/mod.rs":"c703cc5e9de2dc31d9e5831bfb6f354d6e3518b2ae02263f68a9a70f1c0167e2","src/unix/linux_like/linux/gnu/b64/aarch64/align.rs":"ea39d5fd8ca5a71314127d1e1f542bca34ac566eac9a95662076d91ea4bee548","src/unix/linux_like/linux/gnu/b64/aarch64/ilp32.rs":"21a21503ef2e095f4371044915d4bfb07a8578011cb5c713cd9f45947b0b5730","src/unix/linux_like/linux/gnu/b64/aarch64/int128.rs":"1735f6f5c56770d20dd426442f09724d9b2052b46a7cd82f23f3288a4a7276de","src/unix/linux_like/linux/gnu/b64/aarch64/lp64.rs":"e78c3cd197f44832338b414d1a9bc0d194f44c74db77bd7bf830c1fff62b2690","src/unix/linux_like/linux/gnu/b64/aarch64/mod.rs":"666beae35371cb54a4ad091764e0e3ca4983d5205179c119a8ff97d3ae301869","src/unix/linux_like/linux/gnu/b64/loongarch64/align.rs":"6616c38bf8cab53034dce9f968adae8fb7771334445a93876d000cfd08f117a8","src/unix/linux_like/linux/gnu/b64/loongarch64/mod.rs":"17e9478b6a5830f6b8f6bea4ccab712cfd1972cdfb43b97408a068e4ea924106","src/unix/linux_like/linux/gnu/b64/mips64/align.rs":"7169d07a9fd4716f7512719aec9fda5d8bed306dc0720ffc1b21696c9951e3c6","src/unix/linux_like/linux/gnu/b64/mips64/mod.rs":"80b4b97a41564290c510e68a1fb20cfd8424206f010e71a596f12877de886a71","src/unix/linux_like/linux/gnu/b64/mod.rs":"3c6555f30a7a8852757b31a542ea73fb6a16a6e27e838397e819278ad56e57a4","src/unix/linux_like/linux/gnu/b64/powerpc64/align.rs":"e29c4868bbecfa4a6cd8a2ad06193f3bbc78a468cc1dc9df83f002f1268130d9","src/unix/linux_like/linux/gnu/b64/powerpc64/mod.rs":"a595e37c2325ceb40ef66c634bd3c255ad184a1d70ff8025e98a075f0ec67704","src/unix/linux_like/linux/gnu/b64/riscv64/align.rs":"d321491612be8d5c61b6ec2dc0111beb3a22e58803f99cd37543efe86621b119","src/unix/linux_like/linux/gnu/b64/riscv64/mod.rs":"ef4b13477ffd8532fb6705ca3fa63a1f13e8d19ee39b083c5355dfce430c1a5b","src/unix/linux_like/linux/gnu/b64/s390x.rs":"788fde4fa1919859cc028b59da31de00449edd2b2c1530ae76134beac418b73c","src/unix/linux_like/linux/gnu/b64/sparc64/align.rs":"e29c4868bbecfa4a6cd8a2ad06193f3bbc78a468cc1dc9df83f002f1268130d9","src/unix/linux_like/linux/gnu/b64/sparc64/mod.rs":"c4fa0ede3f78b21a9982667922cccd0681bee3cb6d42208ea9958f65e93d6308","src/unix/linux_like/linux/gnu/b64/x86_64/align.rs":"62e822478356db4a73b6bbd1b36d825b893939ab4b308ec11b0578bcc4b49769","src/unix/linux_like/linux/gnu/b64/x86_64/mod.rs":"e37e0421290b152fe508883181c41225e09dd5452a6b085e8d807b3b54823028","src/unix/linux_like/linux/gnu/b64/x86_64/not_x32.rs":"c1b6345ce14f67d1b2e2f7f2c0ff9a074c07acbd348df69cb4558bda8c8fb9ae","src/unix/linux_like/linux/gnu/b64/x86_64/x32.rs":"3f4d2aeadb7d2620cad09564abdbfc5cf02eeb5a27f2bab8a4e9b4bdbdb258a5","src/unix/linux_like/linux/gnu/mod.rs":"e31aa4bd147c83d05dcd13baca4b9f676320a7713ff50de08b51d0c88f8241a3","src/unix/linux_like/linux/gnu/no_align.rs":"9cd223135de75315840ff9c3fd5441ba1cb632b96b5c85a76f8316c86653db25","src/unix/linux_like/linux/mod.rs":"8862912e65ae64dd26728ced492eacbdd3753b7a19432fc8fdf5a673ff7526c9","src/unix/linux_like/linux/musl/b32/arm/align.rs":"3e8ac052c1043764776b54c93ba4260e061df998631737a897d9d47d54f7b80c","src/unix/linux_like/linux/musl/b32/arm/mod.rs":"f5b217a93f99c2852f7fd1459f529798372fa7df84ee0cfd3d8cdd5b2021b8cf","src/unix/linux_like/linux/musl/b32/hexagon.rs":"226a8b64ce9c75abbbee6d2dceb0b44f7b6c750c4102ebd4d015194afee6666e","src/unix/linux_like/linux/musl/b32/mips/align.rs":"429fb5e005cb7143602d430098b6ebfb7d360685b194f333dfd587472ae954ee","src/unix/linux_like/linux/musl/b32/mips/mod.rs":"16a7a03d998a5db11be9ee81525c7faec4623383260e8bc125b1c53a050fde75","src/unix/linux_like/linux/musl/b32/mod.rs":"580e27c5ce3344df686f1ffc08fdfa2c282d1ceb623d778c50d210d4bd65ec7e","src/unix/linux_like/linux/musl/b32/powerpc.rs":"dc52adc264c34bce80753d6bd064e8fc4b8237fa1e5c5315ccb6c72df74c2813","src/unix/linux_like/linux/musl/b32/riscv32/align.rs":"efd2accf33b87de7c7547903359a5da896edc33cd6c719552c7474b60d4a5d48","src/unix/linux_like/linux/musl/b32/riscv32/mod.rs":"e57dc5562553aab6d0765e0ec266254aa52975f8757bfe97e0c6028fa7d5d37c","src/unix/linux_like/linux/musl/b32/x86/align.rs":"08e77fbd7435d7dec2ff56932433bece3f02e47ce810f89004a275a86d39cbe1","src/unix/linux_like/linux/musl/b32/x86/mod.rs":"7a1586f77bb693f0b319ec720c35963da056287fc42f8e2ccf1d5b2bcccf4fd6","src/unix/linux_like/linux/musl/b64/aarch64/align.rs":"6ba32725d24d7d8e6aa111f3b57aafa318f83b606abe96561329151829821133","src/unix/linux_like/linux/musl/b64/aarch64/int128.rs":"1735f6f5c56770d20dd426442f09724d9b2052b46a7cd82f23f3288a4a7276de","src/unix/linux_like/linux/musl/b64/aarch64/mod.rs":"31e75179cbb4e26425b3f5b052e358f593153da662884655e60801d852e55dc2","src/unix/linux_like/linux/musl/b64/mips64.rs":"9a5d29f666332bb056d0e2951e9de989aa1dc016075f009db3f2f628e0cdda8c","src/unix/linux_like/linux/musl/b64/mod.rs":"8c10627bd582cb272514e7350ae4743a65d489356eae039d2e7e55cd533fbbc8","src/unix/linux_like/linux/musl/b64/powerpc64.rs":"455dc0ffa55afc1db6ffaf461f6f2a7b49d31658bfebe0bb4efac5967a6f956c","src/unix/linux_like/linux/musl/b64/riscv64/align.rs":"d321491612be8d5c61b6ec2dc0111beb3a22e58803f99cd37543efe86621b119","src/unix/linux_like/linux/musl/b64/riscv64/mod.rs":"42d4b6d36807f37759094a732a321080cccdf498b174d632cebba147051de294","src/unix/linux_like/linux/musl/b64/s390x.rs":"d8a4fdfea0960ec284cae4facb8b0fb342e8aa41544cffacdcaf08c5a92a43f8","src/unix/linux_like/linux/musl/b64/x86_64/align.rs":"77309276ad7a42cbe59ca381f23590b7a143aded05555b34a5b307b808cbca6e","src/unix/linux_like/linux/musl/b64/x86_64/mod.rs":"7a877cd23b64be66d28e6b8dddae32d59a88d69115637539daf19381f4e39330","src/unix/linux_like/linux/musl/mod.rs":"8d8b50a0bf7ec53bd4d2ea92e8bfae14529f0beb3f22a65b55623f7086fee8ac","src/unix/linux_like/linux/no_align.rs":"da2a8721becaaaa528781f97f5d9aae6a982ae5d4f5f6d2ffc0150bed72319b3","src/unix/linux_like/linux/non_exhaustive.rs":"181a05bf94fdb911db83ce793b993bd6548a4115b306a7ef3c10f745a8fea3e9","src/unix/linux_like/linux/uclibc/align.rs":"9ed16138d8e439bd90930845a65eafa7ebd67366e6bf633936d44014f6e4c959","src/unix/linux_like/linux/uclibc/arm/align.rs":"e4a3c27fe20a57b8d612c34cb05bc70646edb5cec7251957315afa53a7b9f936","src/unix/linux_like/linux/uclibc/arm/mod.rs":"bf2dcf0a468f386899f572324f3bc14be1974f570afdfff1075ca6c5dd57710d","src/unix/linux_like/linux/uclibc/arm/no_align.rs":"9cd223135de75315840ff9c3fd5441ba1cb632b96b5c85a76f8316c86653db25","src/unix/linux_like/linux/uclibc/mips/mips32/align.rs":"e4a3c27fe20a57b8d612c34cb05bc70646edb5cec7251957315afa53a7b9f936","src/unix/linux_like/linux/uclibc/mips/mips32/mod.rs":"d2fc251754458b697ef6e599f0a670ebca18f61e4026bf681be4e2baa896b9df","src/unix/linux_like/linux/uclibc/mips/mips32/no_align.rs":"9cd223135de75315840ff9c3fd5441ba1cb632b96b5c85a76f8316c86653db25","src/unix/linux_like/linux/uclibc/mips/mips64/align.rs":"a7bdcb18a37a2d91e64d5fad83ea3edc78f5412adb28f77ab077dbb26dd08b2d","src/unix/linux_like/linux/uclibc/mips/mips64/mod.rs":"256a428290a560163ef7dc7d18b27bd3c6ce9748a0f28d5dc7f82203ee228220","src/unix/linux_like/linux/uclibc/mips/mips64/no_align.rs":"4a18e3875698c85229599225ac3401a2a40da87e77b2ad4ef47c6fcd5a24ed30","src/unix/linux_like/linux/uclibc/mips/mod.rs":"367ec5483ad317e6ccba1ac0888da6cf088a8d32689214cc8d16129aa692260c","src/unix/linux_like/linux/uclibc/mod.rs":"1c3d25cddcfefa2bd17bdc81550826be31a08eef235e13f825f169a5029c8bca","src/unix/linux_like/linux/uclibc/no_align.rs":"3f28637046524618adaa1012e26cb7ffe94b9396e6b518cccdc69d59f274d709","src/unix/linux_like/linux/uclibc/x86_64/l4re.rs":"024eba5753e852dbdd212427351affe7e83f9916c1864bce414d7aa2618f192e","src/unix/linux_like/linux/uclibc/x86_64/mod.rs":"420dbea99e99091f333641e202960fa4bed0733de2a834e610708555be6bab4c","src/unix/linux_like/linux/uclibc/x86_64/other.rs":"42c3f71e58cabba373f6a55a623f3c31b85049eb64824c09c2b082b3b2d6a0a8","src/unix/linux_like/mod.rs":"759e65c13f7e49a6efd1a979c821c53c478648f7f00cb29da65d92904c7c6814","src/unix/mod.rs":"a55d80aae47b642e25810c2321626f4cc5168170230a1d73953dfca58709b774","src/unix/newlib/aarch64/mod.rs":"bac93836a9a57b2c710f32f852e92a4d11ad6759ab0fb6ad33e71d60e53278af","src/unix/newlib/align.rs":"28aaf87fafbc6b312622719d472d8cf65f9e5467d15339df5f73e66d8502b28a","src/unix/newlib/arm/mod.rs":"cbba6b3e957eceb496806e60de8725a23ff3fa0015983b4b4fa27b233732b526","src/unix/newlib/espidf/mod.rs":"816f235f4aa4baabba7f2606b31d0fdb03988c52194c966728de8690bf17299d","src/unix/newlib/generic.rs":"eab066d9f0a0f3eb53cc1073d01496bba0110989e1f6a59838afd19f870cd599","src/unix/newlib/horizon/mod.rs":"7cc5cc120437421db139bfa6a90b18168cd3070bdd0f5be96d40fe4c996f3ca1","src/unix/newlib/mod.rs":"47d853beaa42b4aa17532d7687715e00e1da6632fccbcdcb079382dbde5412ff","src/unix/newlib/no_align.rs":"e0743b2179495a9514bc3a4d1781e492878c4ec834ee0085d0891dd1712e82fb","src/unix/newlib/powerpc/mod.rs":"0202ffd57caf75b6afa2c9717750ffb96e375ac33df0ae9609a3f831be393b67","src/unix/no_align.rs":"c06e95373b9088266e0b14bba0954eef95f93fb2b01d951855e382d22de78e53","src/unix/nto/aarch64.rs":"4709c9afdc8d583be876598e7c238499ee3e8da5bd2baa614d9c7dd414851555","src/unix/nto/mod.rs":"a4ed355f33ab18041cf642e2f4d1a50dc96b5bce778715f04352c34d020961b5","src/unix/nto/neutrino.rs":"62198d95ccc0fe7ece6f9d5c0b29fc22303ef458886efb5e09aad524eca2ab7b","src/unix/nto/x86_64.rs":"a3e18e93c2999da1cd7a6f748a4b60c07aefb73d8ea2aafec19a84cfb040bc8e","src/unix/redox/mod.rs":"c8afea39f81e73ad4e9bf8a8f25138a200e616048e189debad80a6b7e08f710f","src/unix/solarish/compat.rs":"00f1ee3faec9da69204e42f025f6735dd13d894071a154425dcc43ecbdd06e7f","src/unix/solarish/illumos.rs":"cd93c2d84722bbf9933a92842a8998eb0b2afc962f50bc2546ad127b82809fa7","src/unix/solarish/mod.rs":"b1c0a1d347b30d45c85429b7236d234f5b2c86b9eec439e897c9371d856c187a","src/unix/solarish/solaris.rs":"41b350a89ddf01cd12a10f93640f92be53be0b0d976021cdc08da17bf3e72edf","src/unix/solarish/x86.rs":"e86e806df0caed72765040eaa2f3c883198d1aa91508540adf9b7008c77f522e","src/unix/solarish/x86_64.rs":"ec2b01f194eb8a6a27133c57681da195a949e03098f3ea1e847227a9c09ef5fc","src/unix/solarish/x86_common.rs":"ac869d9c3c95645c22460468391eb1982023c3a8e02b9e06a72e3aef3d5f1eac","src/vxworks/aarch64.rs":"98f0afdc511cd02557e506c21fed6737585490a1dce7a9d4941d08c437762b99","src/vxworks/arm.rs":"acb7968ce99fe3f4abdf39d98f8133d21a4fba435b8ef7084777cb181d788e88","src/vxworks/mod.rs":"ff063860fc4fe3bca6332742764e29c1506884added21aa7722144c1fb3f4018","src/vxworks/powerpc.rs":"acb7968ce99fe3f4abdf39d98f8133d21a4fba435b8ef7084777cb181d788e88","src/vxworks/powerpc64.rs":"98f0afdc511cd02557e506c21fed6737585490a1dce7a9d4941d08c437762b99","src/vxworks/x86.rs":"552f007f38317620b23889cb7c49d1d115841252439060122f52f434fbc6e5ba","src/vxworks/x86_64.rs":"018d92be3ad628a129eff9f2f5dfbc0883d8b8e5f2fa917b900a7f98ed6b514a","src/wasi.rs":"b9a2ecc75fd2359a2484e93fdd1c539d2abc109cd9455d8f566476bcfb19df3d","src/windows/gnu/align.rs":"b2c13ec1b9f3b39a75c452c80c951dff9d0215e31d77e883b4502afb31794647","src/windows/gnu/mod.rs":"3c8c7edb7cdf5d0c44af936db2a94869585c69dfabeef30571b4f4e38375767a","src/windows/mod.rs":"5421b92f47cb69845f4323b1a14e533d8a17acc6412c58e67f4d41def749de2f","src/windows/msvc/mod.rs":"c068271e00fca6b62bc4bf44bcf142cfc38caeded9b6c4e01d1ceef3ccf986f4","tests/const_fn.rs":"cb75a1f0864f926aebe79118fc34d51a0d1ade2c20a394e7774c7e545f21f1f4"},"package":"201de327520df007757c1f0adce6e827fe8562fbc28bfd9c15571c66ca1f5f79"} \ No newline at end of file
+{"files":{"CONTRIBUTING.md":"bdc90b52cf803faac96e594069a86dd8ea150d5ba7fb3e6cadfc08dac4c7b0ce","Cargo.toml":"96bf2f6d97a370699fa12dba540978a01b5cd84dd72fe6cff8a7700744e8122e","LICENSE-APACHE":"62c7a1e35f56406896d7aa7ca52d0cc0d272ac022b5d2796e7d6905db8a3636a","LICENSE-MIT":"a8d47ff51ca256f56a8932dba07660672dbfe3004257ca8de708aac1415937a1","README.md":"776affa26b66843a2b4f1a1c8f88d92f6461b74568911450fea717e9db6f877b","build.rs":"104ceb079ec13f06d440a348a07974ff5a18dca1f74b9c2fde7be9e3074c25e7","rustfmt.toml":"eaa2ea84fc1ba0359b77680804903e07bb38d257ab11986b95b158e460f787b2","src/fixed_width_ints.rs":"7f986e5f5e68d25ef04d386fd2f640e8be8f15427a8d4a458ea01d26b8dca0ca","src/fuchsia/aarch64.rs":"378776a9e40766154a54c94c2a7b4675b5c302a38e6e42da99e67bfbaee60e56","src/fuchsia/align.rs":"ae1cf8f011a99737eabeb14ffff768e60f13b13363d7646744dbb0f443dab3d6","src/fuchsia/mod.rs":"68d860865d8ccc6c493948c781105e0901fc3312cfa1337f0092c0668706200a","src/fuchsia/no_align.rs":"303f3f1b255e0088b5715094353cf00476131d8e94e6aebb3f469557771c8b8a","src/fuchsia/x86_64.rs":"93a3632b5cf67d2a6bcb7dc0a558605252d5fe689e0f38d8aa2ec5852255ac87","src/hermit/aarch64.rs":"86048676e335944c37a63d0083d0f368ae10ceccefeed9debb3bbe08777fc682","src/hermit/mod.rs":"d3bfce41e4463d4be8020a2d063c9bfa8b665f45f1cc6cbf3163f5d01e7cb21f","src/hermit/x86_64.rs":"ab832b7524e5fb15c49ff7431165ab1a37dc4667ae0b58e8306f4c539bfa110c","src/lib.rs":"24111461547739f3646f95bcb66c43f2ae679a727ff5938299434c522c02e458","src/macros.rs":"b457eb028b8e8ab3c24bb7292b874ad4e491edbb83594f6a3da024df5348c088","src/psp.rs":"dd31aabd46171d474ec5828372e28588935120e7355c90c105360d8fa9264c1c","src/sgx.rs":"16a95cdefc81c5ee00d8353a60db363c4cc3e0f75abcd5d0144723f2a306ed1b","src/solid/aarch64.rs":"a726e47f324adf73a4a0b67a2c183408d0cad105ae66acf36db37a42ab7f8707","src/solid/arm.rs":"e39a4f74ebbef3b97b8c95758ad741123d84ed3eb48d9cf4f1f4872097fc27fe","src/solid/mod.rs":"5f4151dca5132e4b4e4c23ab9737e12856dddbdc0ca3f7dbc004328ef3c8acde","src/switch.rs":"9da3dd39b3de45a7928789926e8572d00e1e11a39e6f7289a1349aadce90edba","src/unix/aix/mod.rs":"55a5280c0e5498c1632b2772a7846bce0a130dde61a7fd59220d7971f9084b56","src/unix/aix/powerpc64.rs":"8c471cf7e4604da9f640db1be68d918303b326744e36e6ee159114040401d2cf","src/unix/align.rs":"2cdc7c826ef7ae61f5171c5ae8c445a743d86f1a7f2d9d7e4ceeec56d6874f65","src/unix/bsd/apple/b32/align.rs":"ec833a747866fe19ca2d9b4d3c9ff0385faba5edf4bd0d15fa68884c40b0e26c","src/unix/bsd/apple/b32/mod.rs":"2546ad3eb6aecb95f916648bc63264117c92b4b4859532b34cb011e4c75a5a72","src/unix/bsd/apple/b64/aarch64/align.rs":"e8eb38d064b5fefec6f37d42873820a0483e7c758ed336cc59a7155455ca89c9","src/unix/bsd/apple/b64/aarch64/mod.rs":"44c217a4f263afe7a97435de9323d20a96c37836f899ca0925306d4b7e073c27","src/unix/bsd/apple/b64/align.rs":"ec833a747866fe19ca2d9b4d3c9ff0385faba5edf4bd0d15fa68884c40b0e26c","src/unix/bsd/apple/b64/mod.rs":"f5e278a1af7fb358891d1c9be4eb7e815aaca0c5cb738d0c3604ba2208a856f7","src/unix/bsd/apple/b64/x86_64/align.rs":"ec833a747866fe19ca2d9b4d3c9ff0385faba5edf4bd0d15fa68884c40b0e26c","src/unix/bsd/apple/b64/x86_64/mod.rs":"8c87c5855038aae5d433c8f5eb3b29b0a175879a0245342b3bfd83bdf4cfd936","src/unix/bsd/apple/long_array.rs":"3cf1f19b812e6d093c819dc65ce55b13491963e0780eda0d0bd1577603e81948","src/unix/bsd/apple/mod.rs":"52b90d584e771447c3608079681adbb32367267021d12f5eb5940b7646f16f4a","src/unix/bsd/freebsdlike/dragonfly/errno.rs":"8295b8bb0dfd38d2cdb4d9192cdeeb534cc6c3b208170e64615fa3e0edb3e578","src/unix/bsd/freebsdlike/dragonfly/mod.rs":"8986a8c79bcadfbdb58ec1a72e1aff8ce9b341c9392d7b0b7449bddf6db59058","src/unix/bsd/freebsdlike/freebsd/aarch64.rs":"6c8e216385f53a4bf5f171749b57602fc34a4e4b160a44ca31c058cb0c8a2126","src/unix/bsd/freebsdlike/freebsd/arm.rs":"59d6a670eea562fb87686e243e0a84603d29a2028a3d4b3f99ccc01bd04d2f47","src/unix/bsd/freebsdlike/freebsd/freebsd11/b64.rs":"9808d152c1196aa647f1b0f0cf84dac8c930da7d7f897a44975545e3d9d17681","src/unix/bsd/freebsdlike/freebsd/freebsd11/mod.rs":"fa83dcd4597c6621b95228d80ea6250c37136463300f80a9961a09bdab5e25c3","src/unix/bsd/freebsdlike/freebsd/freebsd12/b64.rs":"61cbe45f8499bedb168106b686d4f8239472f25c7553b069eec2afe197ff2df6","src/unix/bsd/freebsdlike/freebsd/freebsd12/mod.rs":"c7c574d65a8408f6eee32bd5d0cc40e33e41c7e61d98d338609ae5beec72f390","src/unix/bsd/freebsdlike/freebsd/freebsd12/x86_64.rs":"2df36a7f122f6d6e5753cfb4d22e915cc80f6bc91c0161b3daae55a481bfd052","src/unix/bsd/freebsdlike/freebsd/freebsd13/b64.rs":"61cbe45f8499bedb168106b686d4f8239472f25c7553b069eec2afe197ff2df6","src/unix/bsd/freebsdlike/freebsd/freebsd13/mod.rs":"834ec71df759e8d38489986b7720f1b296ca774c23c8034e2d9b02b9f55ab781","src/unix/bsd/freebsdlike/freebsd/freebsd13/x86_64.rs":"2df36a7f122f6d6e5753cfb4d22e915cc80f6bc91c0161b3daae55a481bfd052","src/unix/bsd/freebsdlike/freebsd/freebsd14/b64.rs":"61cbe45f8499bedb168106b686d4f8239472f25c7553b069eec2afe197ff2df6","src/unix/bsd/freebsdlike/freebsd/freebsd14/mod.rs":"58b7766136a22ace828c974f34240eb38feec2c8aa2ee8b6ca38e3b44a6fa348","src/unix/bsd/freebsdlike/freebsd/freebsd14/x86_64.rs":"2df36a7f122f6d6e5753cfb4d22e915cc80f6bc91c0161b3daae55a481bfd052","src/unix/bsd/freebsdlike/freebsd/mod.rs":"cbfb50eeca94674f3e51992ab41cb020127d9405002eacf4b8bf7b2a0418f2ea","src/unix/bsd/freebsdlike/freebsd/powerpc.rs":"9ca3f82f88974e6db5569f2d76a5a3749b248a31747a6c0da5820492bdfeca42","src/unix/bsd/freebsdlike/freebsd/powerpc64.rs":"2dae3ecc87eac3b11657aa98915def55fc4b5c0de11fe26aae23329a54628a9a","src/unix/bsd/freebsdlike/freebsd/riscv64.rs":"fa4bed4c58cad24ba3395941c7fa6b11e089551a04714f9561078e400f5b2b62","src/unix/bsd/freebsdlike/freebsd/x86.rs":"c5005e3249eb7c93cfbac72a9e9272320d80ce7983da990ceb05a447f59a02c5","src/unix/bsd/freebsdlike/freebsd/x86_64/align.rs":"0e1f69a88fca1c32874b1daf5db3d446fefbe518dca497f096cc9168c39dde70","src/unix/bsd/freebsdlike/freebsd/x86_64/mod.rs":"51e4dd0c8ae247bb652feda5adad9333ea3bb30c750c3a3935e0b0e47d7803eb","src/unix/bsd/freebsdlike/mod.rs":"f5ebb2f36dffd9c897b18b168cf28fbff9cc68983ae2d4910cb1ba9764693381","src/unix/bsd/mod.rs":"0c672b075b5616fca2cc56c00ee31c3f554dcbd2e88a7c2ba1437aa6e5604319","src/unix/bsd/netbsdlike/mod.rs":"0a66f7de43710e35a6a546e6c39066aa8b91a6efadb71db88738b0a577fd5537","src/unix/bsd/netbsdlike/netbsd/aarch64.rs":"65dcb58d11e8d8028401a9d07ca3eb4cb4f053e04249cc877353449d84ccc4cb","src/unix/bsd/netbsdlike/netbsd/arm.rs":"58cdbb70b0d6f536551f0f3bb3725d2d75c4690db12c26c034e7d6ec4a924452","src/unix/bsd/netbsdlike/netbsd/mod.rs":"4493317993af390d8aafc2cb7ace4c349dfc9d2451fd666844f04a4fa1f47442","src/unix/bsd/netbsdlike/netbsd/powerpc.rs":"ee7ff5d89d0ed22f531237b5059aa669df93a3b5c489fa641465ace8d405bf41","src/unix/bsd/netbsdlike/netbsd/sparc64.rs":"9489f4b3e4566f43bb12dfb92238960613dac7f6a45cc13068a8d152b902d7d9","src/unix/bsd/netbsdlike/netbsd/x86.rs":"20692320e36bfe028d1a34d16fe12ca77aa909cb02bda167376f98f1a09aefe7","src/unix/bsd/netbsdlike/netbsd/x86_64.rs":"1afe5ef46b14397cdd68664b5b232e4f5b035b6db1d4cf411c899d51ebca9f30","src/unix/bsd/netbsdlike/openbsd/aarch64.rs":"dd91931d373b7ecaf6e2de25adadee10d16fa9b12c2cbacdff3eb291e1ba36af","src/unix/bsd/netbsdlike/openbsd/arm.rs":"01580d261bc6447bb327a0d982181b7bdabfa066cee65a30373d3ced729ad307","src/unix/bsd/netbsdlike/openbsd/mips64.rs":"8532a189ae10c7d668d9d4065da8b05d124e09bd39442c9f74a7f231c43eca48","src/unix/bsd/netbsdlike/openbsd/mod.rs":"c0f06c4af4dd3169b8bcd13a2fb7be6ac9dfa901e11bfd22058fff2aa6caed2e","src/unix/bsd/netbsdlike/openbsd/powerpc.rs":"01580d261bc6447bb327a0d982181b7bdabfa066cee65a30373d3ced729ad307","src/unix/bsd/netbsdlike/openbsd/powerpc64.rs":"1dd5449dd1fd3d51e30ffdeeaece91d0aaf05c710e0ac699fecc5461cfa2c28e","src/unix/bsd/netbsdlike/openbsd/riscv64.rs":"1dd5449dd1fd3d51e30ffdeeaece91d0aaf05c710e0ac699fecc5461cfa2c28e","src/unix/bsd/netbsdlike/openbsd/sparc64.rs":"d04fd287afbaa2c5df9d48c94e8374a532a3ba491b424ddf018270c7312f4085","src/unix/bsd/netbsdlike/openbsd/x86.rs":"6f7f5c4fde2a2259eb547890cbd86570cea04ef85347d7569e94e679448bec87","src/unix/bsd/netbsdlike/openbsd/x86_64.rs":"d31db31630289c85af3339dbe357998a21ca584cbae31607448fe2cf7675a4e1","src/unix/haiku/b32.rs":"a2efdbf7158a6da341e1db9176b0ab193ba88b449616239ed95dced11f54d87b","src/unix/haiku/b64.rs":"ff8115367d3d7d354f792d6176dfaaa26353f57056197b563bf4681f91ff7985","src/unix/haiku/mod.rs":"0b5a77da05582896e680e236ddd3d813a7b8a2ecfde21c1b72ec17883e2de6a7","src/unix/haiku/native.rs":"dbfcbf4954a79d1df2ff58e0590bbcb8c57dfc7a32392aa73ee4726b66bd6cc8","src/unix/haiku/x86_64.rs":"3ec3aeeb7ed208b8916f3e32d42bfd085ff5e16936a1a35d9a52789f043b7237","src/unix/hermit/aarch64.rs":"86048676e335944c37a63d0083d0f368ae10ceccefeed9debb3bbe08777fc682","src/unix/hermit/mod.rs":"a1494a0bddf301cceb0d9b8529a84b5882fe855ceae77a1c4e8d6034e705e26c","src/unix/hermit/x86_64.rs":"ab832b7524e5fb15c49ff7431165ab1a37dc4667ae0b58e8306f4c539bfa110c","src/unix/linux_like/android/b32/arm.rs":"ce582de7e983a33d3bfad13075c53aac9016cee35f06ad8653ee9072c3ec2564","src/unix/linux_like/android/b32/mod.rs":"7c173e0375119bf06a3081652faede95e5bcd6858e7576b7533d037978737c8f","src/unix/linux_like/android/b32/x86/align.rs":"812914e4241df82e32b12375ca3374615dc3a4bdd4cf31f0423c5815320c0dab","src/unix/linux_like/android/b32/x86/mod.rs":"e6d107efbcd37b5b85dfa18f683300cbf768ffa0237997a9fa52b184a53323ac","src/unix/linux_like/android/b64/aarch64/align.rs":"2179c3b1608fa4bf68840482bfc2b2fa3ee2faf6fcae3770f9e505cddca35c7b","src/unix/linux_like/android/b64/aarch64/int128.rs":"1735f6f5c56770d20dd426442f09724d9b2052b46a7cd82f23f3288a4a7276de","src/unix/linux_like/android/b64/aarch64/mod.rs":"171f8c37a2d2e45065bd3547dfcec70b02aa3da34cd99d259d150c753f620846","src/unix/linux_like/android/b64/mod.rs":"71e4fcbe952bfa4a5f9022f3972e906917b38f729b9d8ef57cd5d179104894ac","src/unix/linux_like/android/b64/riscv64/align.rs":"0bf138f84e5327d8339bcd4adf071a6832b516445e597552c82bbd881095e3a8","src/unix/linux_like/android/b64/riscv64/mod.rs":"19d4bf2237c47127eba9144e0b82e995bc079315e719179a91813b0ae7b0e49d","src/unix/linux_like/android/b64/x86_64/align.rs":"7169d07a9fd4716f7512719aec9fda5d8bed306dc0720ffc1b21696c9951e3c6","src/unix/linux_like/android/b64/x86_64/mod.rs":"4ec2de11a9b65c4325b7b991f0b99a414975e0e61ba8668caca5d921e9b314d1","src/unix/linux_like/android/mod.rs":"21b1b70c1d398bd342794376b41975bfe3daf75127c7a11d825cc4b839811153","src/unix/linux_like/emscripten/align.rs":"86c95cbed7a7161b1f23ee06843e7b0e2340ad92b2cb86fe2a8ef3e0e8c36216","src/unix/linux_like/emscripten/mod.rs":"712c52856ee323b8057b9452e4ab484a0e652581a530b67c3db25e819919d718","src/unix/linux_like/emscripten/no_align.rs":"0128e4aa721a9902754828b61b5ec7d8a86619983ed1e0544a85d35b1051fad6","src/unix/linux_like/linux/align.rs":"28b2cd7c3eddc53c247aa11340da205d1d2e478f199493d330c61e75ec16ee96","src/unix/linux_like/linux/arch/generic/mod.rs":"249387e62ce11dfe5a93652699df6e5d8d29311d70d7a0e58fc1298a2ac8d750","src/unix/linux_like/linux/arch/mips/mod.rs":"2d166054a586bb4bf6e4a4ba35f7574907b217225eff8f1a43adc4277e142460","src/unix/linux_like/linux/arch/mod.rs":"466a29622e47c6c7f1500682b2eb17f5566dd81b322cd6348f0fdd355cec593a","src/unix/linux_like/linux/arch/powerpc/mod.rs":"3f6da7b0fa7b394c7d4eea2bb3caa7a7729ab0d6c1491fef02206a912c41b815","src/unix/linux_like/linux/arch/sparc/mod.rs":"91593ec0440f1dd8f8e612028f432c44c14089286e2aca50e10511ab942db8c3","src/unix/linux_like/linux/gnu/align.rs":"e4a3c27fe20a57b8d612c34cb05bc70646edb5cec7251957315afa53a7b9f936","src/unix/linux_like/linux/gnu/b32/arm/align.rs":"6ec0eb3ee93f7ae99fd714b4deabfb5e97fbcefd8c26f5a45fb8e7150899cdeb","src/unix/linux_like/linux/gnu/b32/arm/mod.rs":"45be81a806c55fed92c20a33c5e4cfb23b3933f7b4feff47db33d37dda34e6d3","src/unix/linux_like/linux/gnu/b32/m68k/align.rs":"8faa92f77a9232c035418d45331774e64a9a841d99c91791570a203bf2b45bcb","src/unix/linux_like/linux/gnu/b32/m68k/mod.rs":"6aab7f1b864e9691d14aa7d389f717c4077b8eed72a7f11e3b8c7fef245e4046","src/unix/linux_like/linux/gnu/b32/mips/align.rs":"429fb5e005cb7143602d430098b6ebfb7d360685b194f333dfd587472ae954ee","src/unix/linux_like/linux/gnu/b32/mips/mod.rs":"6b9a5dac6f937ddc1453e808e3c43502c87143332df9e43ac64fb8b1eda6c116","src/unix/linux_like/linux/gnu/b32/mod.rs":"caade9dc8b7179711102da342819bdf330c42c796b4587d0ed419550dab2e9ad","src/unix/linux_like/linux/gnu/b32/powerpc.rs":"5c5d90326b54b57b98eff4745fe7a3fb02f053b2dc782241a73e807b491936a3","src/unix/linux_like/linux/gnu/b32/riscv32/align.rs":"d321491612be8d5c61b6ec2dc0111beb3a22e58803f99cd37543efe86621b119","src/unix/linux_like/linux/gnu/b32/riscv32/mod.rs":"ca8bc84fff8c65ecda6c03421f4fe7689f199dce39f1ca382a45bf0b13a1cb00","src/unix/linux_like/linux/gnu/b32/sparc/align.rs":"21adbed27df73e2d1ed934aaf733a643003d7baf2bde9c48ea440895bcca6d41","src/unix/linux_like/linux/gnu/b32/sparc/mod.rs":"80894eece66e9348f45d1b07ad37c757ea694bbd10ed49d3f920b34e9f51a9a3","src/unix/linux_like/linux/gnu/b32/x86/align.rs":"e4bafdc4a519a7922a81b37a62bbfd1177a2f620890eef8f1fbc47162e9eb413","src/unix/linux_like/linux/gnu/b32/x86/mod.rs":"c703cc5e9de2dc31d9e5831bfb6f354d6e3518b2ae02263f68a9a70f1c0167e2","src/unix/linux_like/linux/gnu/b64/aarch64/align.rs":"ea39d5fd8ca5a71314127d1e1f542bca34ac566eac9a95662076d91ea4bee548","src/unix/linux_like/linux/gnu/b64/aarch64/ilp32.rs":"bf4611b737813deef6787babf6c01698605f3b75482269b8546318667bc68e29","src/unix/linux_like/linux/gnu/b64/aarch64/int128.rs":"1735f6f5c56770d20dd426442f09724d9b2052b46a7cd82f23f3288a4a7276de","src/unix/linux_like/linux/gnu/b64/aarch64/lp64.rs":"11a950697fdda0258c6e37c6b13993348c8de4134105ed4faa79358e53175072","src/unix/linux_like/linux/gnu/b64/aarch64/mod.rs":"d7be998105fc2f6248b7fdfcedb5a0519122d28625fcfd5dccf72617fb30c45e","src/unix/linux_like/linux/gnu/b64/loongarch64/align.rs":"6616c38bf8cab53034dce9f968adae8fb7771334445a93876d000cfd08f117a8","src/unix/linux_like/linux/gnu/b64/loongarch64/mod.rs":"9c39dfc3843e72bd8dba21aa5ef2795411cd8a0004a0cfe79c9b9f89ab92eb55","src/unix/linux_like/linux/gnu/b64/mips64/align.rs":"7169d07a9fd4716f7512719aec9fda5d8bed306dc0720ffc1b21696c9951e3c6","src/unix/linux_like/linux/gnu/b64/mips64/mod.rs":"628c410b9aaec3c8f43838a28616b577a1d6de60a9799b09bb884d80281f96eb","src/unix/linux_like/linux/gnu/b64/mod.rs":"3c6555f30a7a8852757b31a542ea73fb6a16a6e27e838397e819278ad56e57a4","src/unix/linux_like/linux/gnu/b64/powerpc64/align.rs":"e29c4868bbecfa4a6cd8a2ad06193f3bbc78a468cc1dc9df83f002f1268130d9","src/unix/linux_like/linux/gnu/b64/powerpc64/mod.rs":"c778a136f06c2ffeacea19fa14ce79b828f91b67a002dec5ce87289bae36234e","src/unix/linux_like/linux/gnu/b64/riscv64/align.rs":"d321491612be8d5c61b6ec2dc0111beb3a22e58803f99cd37543efe86621b119","src/unix/linux_like/linux/gnu/b64/riscv64/mod.rs":"88bde5520c86793f2cf97062d66c1b3f4dd66206c453a601ebf9110d90abc6f8","src/unix/linux_like/linux/gnu/b64/s390x.rs":"a2fd9277c2dcf76f7a16a3bcca745d5a9932c765c0dc2feb31c3641be25eb0aa","src/unix/linux_like/linux/gnu/b64/sparc64/align.rs":"e29c4868bbecfa4a6cd8a2ad06193f3bbc78a468cc1dc9df83f002f1268130d9","src/unix/linux_like/linux/gnu/b64/sparc64/mod.rs":"e8047e9966a2b90063e0151a0278c54885e7b323286cf5ab55cbaf151fc772d3","src/unix/linux_like/linux/gnu/b64/x86_64/align.rs":"62e822478356db4a73b6bbd1b36d825b893939ab4b308ec11b0578bcc4b49769","src/unix/linux_like/linux/gnu/b64/x86_64/mod.rs":"891e595d33714b9883b92f0554d1d361fba2b6c3f6cac09a288252f44c6ec667","src/unix/linux_like/linux/gnu/b64/x86_64/not_x32.rs":"38f74ce15d9662ce4818815a2b87be1618d5e45f190f7e4db84ff3285b4421fb","src/unix/linux_like/linux/gnu/b64/x86_64/x32.rs":"b20218a11364a6dec87f96d6c0d8b19e660697ab09ad5ee0e9b3a9dafedaaebb","src/unix/linux_like/linux/gnu/mod.rs":"daf0eff7fddf6d7a2c15a5bc89e3a0dfe463a40f38880fe3fb444105d0ae0f07","src/unix/linux_like/linux/gnu/no_align.rs":"9cd223135de75315840ff9c3fd5441ba1cb632b96b5c85a76f8316c86653db25","src/unix/linux_like/linux/mod.rs":"f305c518fc8ef7e151b22a93d23ad304d1302e71ae7082b0c3676d5409ad6646","src/unix/linux_like/linux/musl/b32/arm/align.rs":"3e8ac052c1043764776b54c93ba4260e061df998631737a897d9d47d54f7b80c","src/unix/linux_like/linux/musl/b32/arm/mod.rs":"f5b217a93f99c2852f7fd1459f529798372fa7df84ee0cfd3d8cdd5b2021b8cf","src/unix/linux_like/linux/musl/b32/hexagon.rs":"226a8b64ce9c75abbbee6d2dceb0b44f7b6c750c4102ebd4d015194afee6666e","src/unix/linux_like/linux/musl/b32/mips/align.rs":"429fb5e005cb7143602d430098b6ebfb7d360685b194f333dfd587472ae954ee","src/unix/linux_like/linux/musl/b32/mips/mod.rs":"16a7a03d998a5db11be9ee81525c7faec4623383260e8bc125b1c53a050fde75","src/unix/linux_like/linux/musl/b32/mod.rs":"31677597fd9544c4b1ec1477628288f6273fabbc06e38f33da862ad55f019ce1","src/unix/linux_like/linux/musl/b32/powerpc.rs":"dc52adc264c34bce80753d6bd064e8fc4b8237fa1e5c5315ccb6c72df74c2813","src/unix/linux_like/linux/musl/b32/riscv32/align.rs":"efd2accf33b87de7c7547903359a5da896edc33cd6c719552c7474b60d4a5d48","src/unix/linux_like/linux/musl/b32/riscv32/mod.rs":"b857ccbc8f0fbc8a6a5959f3496a4fd5a9a1dd986c15c8e716f3e2902c25181c","src/unix/linux_like/linux/musl/b32/x86/align.rs":"08e77fbd7435d7dec2ff56932433bece3f02e47ce810f89004a275a86d39cbe1","src/unix/linux_like/linux/musl/b32/x86/mod.rs":"7a1586f77bb693f0b319ec720c35963da056287fc42f8e2ccf1d5b2bcccf4fd6","src/unix/linux_like/linux/musl/b64/aarch64/align.rs":"6ba32725d24d7d8e6aa111f3b57aafa318f83b606abe96561329151829821133","src/unix/linux_like/linux/musl/b64/aarch64/int128.rs":"1735f6f5c56770d20dd426442f09724d9b2052b46a7cd82f23f3288a4a7276de","src/unix/linux_like/linux/musl/b64/aarch64/mod.rs":"31e75179cbb4e26425b3f5b052e358f593153da662884655e60801d852e55dc2","src/unix/linux_like/linux/musl/b64/mips64.rs":"9a5d29f666332bb056d0e2951e9de989aa1dc016075f009db3f2f628e0cdda8c","src/unix/linux_like/linux/musl/b64/mod.rs":"884243eb5af7df963d858d5baf47e622b45f04e0ae701728b134e986191b614b","src/unix/linux_like/linux/musl/b64/powerpc64.rs":"455dc0ffa55afc1db6ffaf461f6f2a7b49d31658bfebe0bb4efac5967a6f956c","src/unix/linux_like/linux/musl/b64/riscv64/align.rs":"d321491612be8d5c61b6ec2dc0111beb3a22e58803f99cd37543efe86621b119","src/unix/linux_like/linux/musl/b64/riscv64/mod.rs":"42d4b6d36807f37759094a732a321080cccdf498b174d632cebba147051de294","src/unix/linux_like/linux/musl/b64/s390x.rs":"d8a4fdfea0960ec284cae4facb8b0fb342e8aa41544cffacdcaf08c5a92a43f8","src/unix/linux_like/linux/musl/b64/x86_64/align.rs":"77309276ad7a42cbe59ca381f23590b7a143aded05555b34a5b307b808cbca6e","src/unix/linux_like/linux/musl/b64/x86_64/mod.rs":"7a877cd23b64be66d28e6b8dddae32d59a88d69115637539daf19381f4e39330","src/unix/linux_like/linux/musl/mod.rs":"8965596cc33a032f7495c74d0d25ff9169e425491b36c4563b291e9f12e2a1b6","src/unix/linux_like/linux/no_align.rs":"1a754a4af299894a79835aa092d8322d301179e2b20609defd6bb4bc880e6b4a","src/unix/linux_like/linux/non_exhaustive.rs":"181a05bf94fdb911db83ce793b993bd6548a4115b306a7ef3c10f745a8fea3e9","src/unix/linux_like/linux/uclibc/align.rs":"9ed16138d8e439bd90930845a65eafa7ebd67366e6bf633936d44014f6e4c959","src/unix/linux_like/linux/uclibc/arm/align.rs":"e4a3c27fe20a57b8d612c34cb05bc70646edb5cec7251957315afa53a7b9f936","src/unix/linux_like/linux/uclibc/arm/mod.rs":"50288ff9e411ab0966da24838f2c2a5618021bc19c422a04f577b2979ef4081e","src/unix/linux_like/linux/uclibc/arm/no_align.rs":"9cd223135de75315840ff9c3fd5441ba1cb632b96b5c85a76f8316c86653db25","src/unix/linux_like/linux/uclibc/mips/mips32/align.rs":"e4a3c27fe20a57b8d612c34cb05bc70646edb5cec7251957315afa53a7b9f936","src/unix/linux_like/linux/uclibc/mips/mips32/mod.rs":"d0c4434e2bf813372c418a8f516c706cdccc9f7be2f0921b2207b0afdb66fe81","src/unix/linux_like/linux/uclibc/mips/mips32/no_align.rs":"9cd223135de75315840ff9c3fd5441ba1cb632b96b5c85a76f8316c86653db25","src/unix/linux_like/linux/uclibc/mips/mips64/align.rs":"a7bdcb18a37a2d91e64d5fad83ea3edc78f5412adb28f77ab077dbb26dd08b2d","src/unix/linux_like/linux/uclibc/mips/mips64/mod.rs":"3f38ee6a4690b9d7594be20d216467a34d955f7653c2c8ce1e6147daeb53f1e0","src/unix/linux_like/linux/uclibc/mips/mips64/no_align.rs":"4a18e3875698c85229599225ac3401a2a40da87e77b2ad4ef47c6fcd5a24ed30","src/unix/linux_like/linux/uclibc/mips/mod.rs":"a048fce1c2d9b1ad57305642e8ad05ca0f0c7e4753267a2e2d6b4fee5db3b072","src/unix/linux_like/linux/uclibc/mod.rs":"1c3d25cddcfefa2bd17bdc81550826be31a08eef235e13f825f169a5029c8bca","src/unix/linux_like/linux/uclibc/no_align.rs":"3f28637046524618adaa1012e26cb7ffe94b9396e6b518cccdc69d59f274d709","src/unix/linux_like/linux/uclibc/x86_64/l4re.rs":"024eba5753e852dbdd212427351affe7e83f9916c1864bce414d7aa2618f192e","src/unix/linux_like/linux/uclibc/x86_64/mod.rs":"196d03affbefb85716937c15904831e731eb222ee906e05e42102d639a8152ea","src/unix/linux_like/linux/uclibc/x86_64/other.rs":"42c3f71e58cabba373f6a55a623f3c31b85049eb64824c09c2b082b3b2d6a0a8","src/unix/linux_like/mod.rs":"adfa87d7f8790795f22576ab9b7064f7d0085b539d24d8223275e66edbab320d","src/unix/mod.rs":"362da723eaad726ae72664d801315f4cf70a042250de1231761bfd12390e27b8","src/unix/newlib/aarch64/mod.rs":"bac93836a9a57b2c710f32f852e92a4d11ad6759ab0fb6ad33e71d60e53278af","src/unix/newlib/align.rs":"28aaf87fafbc6b312622719d472d8cf65f9e5467d15339df5f73e66d8502b28a","src/unix/newlib/arm/mod.rs":"cbba6b3e957eceb496806e60de8725a23ff3fa0015983b4b4fa27b233732b526","src/unix/newlib/espidf/mod.rs":"816f235f4aa4baabba7f2606b31d0fdb03988c52194c966728de8690bf17299d","src/unix/newlib/generic.rs":"eab066d9f0a0f3eb53cc1073d01496bba0110989e1f6a59838afd19f870cd599","src/unix/newlib/horizon/mod.rs":"7cc5cc120437421db139bfa6a90b18168cd3070bdd0f5be96d40fe4c996f3ca1","src/unix/newlib/mod.rs":"fcf8b307933cba5e9c485537499386326d665fe83b6fcfb9e9e1837f73332668","src/unix/newlib/no_align.rs":"e0743b2179495a9514bc3a4d1781e492878c4ec834ee0085d0891dd1712e82fb","src/unix/newlib/powerpc/mod.rs":"0202ffd57caf75b6afa2c9717750ffb96e375ac33df0ae9609a3f831be393b67","src/unix/no_align.rs":"c06e95373b9088266e0b14bba0954eef95f93fb2b01d951855e382d22de78e53","src/unix/nto/aarch64.rs":"4709c9afdc8d583be876598e7c238499ee3e8da5bd2baa614d9c7dd414851555","src/unix/nto/mod.rs":"44b74cd89794aecd7db67aad1c4114273f70be8d2e4633e3965f144fe53a7b88","src/unix/nto/neutrino.rs":"62198d95ccc0fe7ece6f9d5c0b29fc22303ef458886efb5e09aad524eca2ab7b","src/unix/nto/x86_64.rs":"a3e18e93c2999da1cd7a6f748a4b60c07aefb73d8ea2aafec19a84cfb040bc8e","src/unix/redox/mod.rs":"c8afea39f81e73ad4e9bf8a8f25138a200e616048e189debad80a6b7e08f710f","src/unix/solarish/compat.rs":"00f1ee3faec9da69204e42f025f6735dd13d894071a154425dcc43ecbdd06e7f","src/unix/solarish/illumos.rs":"cd93c2d84722bbf9933a92842a8998eb0b2afc962f50bc2546ad127b82809fa7","src/unix/solarish/mod.rs":"6442ed05eb390d44a03daa9800af1030f2ee3e61db98675262c227b28de51937","src/unix/solarish/solaris.rs":"41b350a89ddf01cd12a10f93640f92be53be0b0d976021cdc08da17bf3e72edf","src/unix/solarish/x86.rs":"e86e806df0caed72765040eaa2f3c883198d1aa91508540adf9b7008c77f522e","src/unix/solarish/x86_64.rs":"ec2b01f194eb8a6a27133c57681da195a949e03098f3ea1e847227a9c09ef5fc","src/unix/solarish/x86_common.rs":"ac869d9c3c95645c22460468391eb1982023c3a8e02b9e06a72e3aef3d5f1eac","src/vxworks/aarch64.rs":"98f0afdc511cd02557e506c21fed6737585490a1dce7a9d4941d08c437762b99","src/vxworks/arm.rs":"acb7968ce99fe3f4abdf39d98f8133d21a4fba435b8ef7084777cb181d788e88","src/vxworks/mod.rs":"ff063860fc4fe3bca6332742764e29c1506884added21aa7722144c1fb3f4018","src/vxworks/powerpc.rs":"acb7968ce99fe3f4abdf39d98f8133d21a4fba435b8ef7084777cb181d788e88","src/vxworks/powerpc64.rs":"98f0afdc511cd02557e506c21fed6737585490a1dce7a9d4941d08c437762b99","src/vxworks/x86.rs":"552f007f38317620b23889cb7c49d1d115841252439060122f52f434fbc6e5ba","src/vxworks/x86_64.rs":"018d92be3ad628a129eff9f2f5dfbc0883d8b8e5f2fa917b900a7f98ed6b514a","src/wasi.rs":"09ee3b3348b212b050f6ca8ae008a28679ea44a375674307a4e7c9ca0d3ed7d5","src/windows/gnu/align.rs":"b2c13ec1b9f3b39a75c452c80c951dff9d0215e31d77e883b4502afb31794647","src/windows/gnu/mod.rs":"3c8c7edb7cdf5d0c44af936db2a94869585c69dfabeef30571b4f4e38375767a","src/windows/mod.rs":"5421b92f47cb69845f4323b1a14e533d8a17acc6412c58e67f4d41def749de2f","src/windows/msvc/mod.rs":"c068271e00fca6b62bc4bf44bcf142cfc38caeded9b6c4e01d1ceef3ccf986f4","src/xous.rs":"eb0675f25ba01f73072d2b70907fb8abb1148facefe5a20756c49250f3d65fae","tests/const_fn.rs":"cb75a1f0864f926aebe79118fc34d51a0d1ade2c20a394e7774c7e545f21f1f4"},"package":"99227334921fae1a979cf0bfdfcc6b3e5ce376ef57e16fb6fb3ea2ed6095f80c"} \ No newline at end of file
diff --git a/vendor/libc/Cargo.toml b/vendor/libc/Cargo.toml
index 60e7b1674..b281582ca 100644
--- a/vendor/libc/Cargo.toml
+++ b/vendor/libc/Cargo.toml
@@ -11,7 +11,7 @@
[package]
name = "libc"
-version = "0.2.139"
+version = "0.2.140"
authors = ["The Rust Project Developers"]
build = "build.rs"
exclude = [
diff --git a/vendor/libc/build.rs b/vendor/libc/build.rs
index bbee2d28a..e60672a76 100644
--- a/vendor/libc/build.rs
+++ b/vendor/libc/build.rs
@@ -2,6 +2,40 @@ use std::env;
use std::process::Command;
use std::str;
+// List of cfgs this build script is allowed to set. The list is needed to support check-cfg, as we
+// need to know all the possible cfgs that this script will set. If you need to set another cfg
+// make sure to add it to this list as well.
+const ALLOWED_CFGS: &'static [&'static str] = &[
+ "freebsd10",
+ "freebsd11",
+ "freebsd12",
+ "freebsd13",
+ "freebsd14",
+ "libc_align",
+ "libc_cfg_target_vendor",
+ "libc_const_extern_fn",
+ "libc_const_extern_fn_unstable",
+ "libc_const_size_of",
+ "libc_core_cvoid",
+ "libc_deny_warnings",
+ "libc_int128",
+ "libc_long_array",
+ "libc_non_exhaustive",
+ "libc_packedN",
+ "libc_priv_mod_use",
+ "libc_ptr_addr_of",
+ "libc_thread_local",
+ "libc_underscore_const_names",
+ "libc_union",
+];
+
+// Extra values to allow for check-cfg.
+const CHECK_CFG_EXTRA: &'static [(&'static str, &'static [&'static str])] = &[
+ ("target_os", &["switch", "aix", "ohos"]),
+ ("target_env", &["illumos", "wasi", "aix", "ohos"]),
+ ("target_arch", &["loongarch64"]),
+];
+
fn main() {
// Avoid unnecessary re-building.
println!("cargo:rerun-if-changed=build.rs");
@@ -11,6 +45,7 @@ fn main() {
let align_cargo_feature = env::var("CARGO_FEATURE_ALIGN").is_ok();
let const_extern_fn_cargo_feature = env::var("CARGO_FEATURE_CONST_EXTERN_FN").is_ok();
let libc_ci = env::var("LIBC_CI").is_ok();
+ let libc_check_cfg = env::var("LIBC_CHECK_CFG").is_ok();
if env::var("CARGO_FEATURE_USE_STD").is_ok() {
println!(
@@ -25,89 +60,107 @@ fn main() {
// On CI, we detect the actual FreeBSD version and match its ABI exactly,
// running tests to ensure that the ABI is correct.
match which_freebsd() {
- Some(10) if libc_ci || rustc_dep_of_std => {
- println!("cargo:rustc-cfg=freebsd10")
- }
- Some(11) if libc_ci => println!("cargo:rustc-cfg=freebsd11"),
- Some(12) if libc_ci => println!("cargo:rustc-cfg=freebsd12"),
- Some(13) if libc_ci => println!("cargo:rustc-cfg=freebsd13"),
- Some(14) if libc_ci => println!("cargo:rustc-cfg=freebsd14"),
- Some(_) | None => println!("cargo:rustc-cfg=freebsd11"),
+ Some(10) if libc_ci || rustc_dep_of_std => set_cfg("freebsd10"),
+ Some(11) if libc_ci => set_cfg("freebsd11"),
+ Some(12) if libc_ci => set_cfg("freebsd12"),
+ Some(13) if libc_ci => set_cfg("freebsd13"),
+ Some(14) if libc_ci => set_cfg("freebsd14"),
+ Some(_) | None => set_cfg("freebsd11"),
}
// On CI: deny all warnings
if libc_ci {
- println!("cargo:rustc-cfg=libc_deny_warnings");
+ set_cfg("libc_deny_warnings");
}
// Rust >= 1.15 supports private module use:
if rustc_minor_ver >= 15 || rustc_dep_of_std {
- println!("cargo:rustc-cfg=libc_priv_mod_use");
+ set_cfg("libc_priv_mod_use");
}
// Rust >= 1.19 supports unions:
if rustc_minor_ver >= 19 || rustc_dep_of_std {
- println!("cargo:rustc-cfg=libc_union");
+ set_cfg("libc_union");
}
// Rust >= 1.24 supports const mem::size_of:
if rustc_minor_ver >= 24 || rustc_dep_of_std {
- println!("cargo:rustc-cfg=libc_const_size_of");
+ set_cfg("libc_const_size_of");
}
// Rust >= 1.25 supports repr(align):
if rustc_minor_ver >= 25 || rustc_dep_of_std || align_cargo_feature {
- println!("cargo:rustc-cfg=libc_align");
+ set_cfg("libc_align");
}
// Rust >= 1.26 supports i128 and u128:
if rustc_minor_ver >= 26 || rustc_dep_of_std {
- println!("cargo:rustc-cfg=libc_int128");
+ set_cfg("libc_int128");
}
// Rust >= 1.30 supports `core::ffi::c_void`, so libc can just re-export it.
// Otherwise, it defines an incompatible type to retaining
// backwards-compatibility.
if rustc_minor_ver >= 30 || rustc_dep_of_std {
- println!("cargo:rustc-cfg=libc_core_cvoid");
+ set_cfg("libc_core_cvoid");
}
// Rust >= 1.33 supports repr(packed(N)) and cfg(target_vendor).
if rustc_minor_ver >= 33 || rustc_dep_of_std {
- println!("cargo:rustc-cfg=libc_packedN");
- println!("cargo:rustc-cfg=libc_cfg_target_vendor");
+ set_cfg("libc_packedN");
+ set_cfg("libc_cfg_target_vendor");
}
// Rust >= 1.40 supports #[non_exhaustive].
if rustc_minor_ver >= 40 || rustc_dep_of_std {
- println!("cargo:rustc-cfg=libc_non_exhaustive");
+ set_cfg("libc_non_exhaustive");
+ }
+
+ // Rust >= 1.47 supports long array:
+ if rustc_minor_ver >= 47 || rustc_dep_of_std {
+ set_cfg("libc_long_array");
}
if rustc_minor_ver >= 51 || rustc_dep_of_std {
- println!("cargo:rustc-cfg=libc_ptr_addr_of");
+ set_cfg("libc_ptr_addr_of");
}
// Rust >= 1.37.0 allows underscores as anonymous constant names.
if rustc_minor_ver >= 37 || rustc_dep_of_std {
- println!("cargo:rustc-cfg=libc_underscore_const_names");
+ set_cfg("libc_underscore_const_names");
}
// #[thread_local] is currently unstable
if rustc_dep_of_std {
- println!("cargo:rustc-cfg=libc_thread_local");
+ set_cfg("libc_thread_local");
}
// Rust >= 1.62.0 allows to use `const_extern_fn` for "Rust" and "C".
if rustc_minor_ver >= 62 {
- println!("cargo:rustc-cfg=libc_const_extern_fn");
+ set_cfg("libc_const_extern_fn");
} else {
// Rust < 1.62.0 requires a crate feature and feature gate.
if const_extern_fn_cargo_feature {
if !is_nightly || rustc_minor_ver < 40 {
panic!("const-extern-fn requires a nightly compiler >= 1.40");
}
- println!("cargo:rustc-cfg=libc_const_extern_fn_unstable");
- println!("cargo:rustc-cfg=libc_const_extern_fn");
+ set_cfg("libc_const_extern_fn_unstable");
+ set_cfg("libc_const_extern_fn");
+ }
+ }
+
+ // check-cfg is a nightly cargo/rustc feature to warn when unknown cfgs are used across the
+ // codebase. libc can configure it if the appropriate environment variable is passed. Since
+ // rust-lang/rust enforces it, this is useful when using a custom libc fork there.
+ //
+ // https://doc.rust-lang.org/nightly/cargo/reference/unstable.html#check-cfg
+ if libc_check_cfg {
+ for cfg in ALLOWED_CFGS {
+ println!("cargo:rustc-check-cfg=values({})", cfg);
+ }
+ for &(name, values) in CHECK_CFG_EXTRA {
+ let values = values.join("\",\"");
+ println!("cargo:rustc-check-cfg=values({},\"{}\")", name, values);
}
}
}
@@ -176,3 +229,10 @@ fn which_freebsd() -> Option<i32> {
_ => None,
}
}
+
+fn set_cfg(cfg: &str) {
+ if !ALLOWED_CFGS.contains(&cfg) {
+ panic!("trying to set cfg {}, but it is not in ALLOWED_CFGS", cfg);
+ }
+ println!("cargo:rustc-cfg={}", cfg);
+}
diff --git a/vendor/libc/src/fuchsia/mod.rs b/vendor/libc/src/fuchsia/mod.rs
index 5c6aebde2..ea1ae466b 100644
--- a/vendor/libc/src/fuchsia/mod.rs
+++ b/vendor/libc/src/fuchsia/mod.rs
@@ -2602,6 +2602,7 @@ pub const PR_SET_MM_MAP: ::c_int = 14;
pub const PR_SET_MM_MAP_SIZE: ::c_int = 15;
pub const PR_SET_PTRACER: ::c_int = 0x59616d61;
+pub const PR_SET_PTRACER_ANY: ::c_ulong = 0xffffffffffffffff;
pub const PR_SET_CHILD_SUBREAPER: ::c_int = 36;
pub const PR_GET_CHILD_SUBREAPER: ::c_int = 37;
diff --git a/vendor/libc/src/lib.rs b/vendor/libc/src/lib.rs
index acda09159..d9bd318d1 100644
--- a/vendor/libc/src/lib.rs
+++ b/vendor/libc/src/lib.rs
@@ -151,6 +151,12 @@ cfg_if! {
mod wasi;
pub use wasi::*;
+ } else if #[cfg(target_os = "xous")] {
+ mod fixed_width_ints;
+ pub use fixed_width_ints::*;
+
+ mod xous;
+ pub use xous::*;
} else {
// non-supported targets: empty...
}
diff --git a/vendor/libc/src/unix/aix/mod.rs b/vendor/libc/src/unix/aix/mod.rs
new file mode 100644
index 000000000..3348ead5b
--- /dev/null
+++ b/vendor/libc/src/unix/aix/mod.rs
@@ -0,0 +1,2314 @@
+pub type c_char = i8;
+pub type caddr_t = *mut ::c_char;
+// FIXME: clockid_t must be c_long, but time.rs accepts only i32
+pub type clockid_t = ::c_int;
+pub type blkcnt_t = ::c_long;
+pub type clock_t = ::c_int;
+pub type daddr_t = ::c_long;
+pub type dev_t = ::c_ulong;
+pub type fsblkcnt_t = ::c_ulong;
+pub type fsfilcnt_t = ::c_ulong;
+pub type ino_t = ::c_ulong;
+pub type key_t = ::c_long;
+pub type mode_t = ::c_uint;
+pub type nlink_t = ::c_short;
+pub type rlim_t = ::c_ulong;
+pub type speed_t = ::c_uint;
+pub type tcflag_t = ::c_uint;
+pub type time_t = ::c_long;
+pub type timer_t = ::c_long;
+pub type wchar_t = ::c_uint;
+pub type nfds_t = ::c_int;
+pub type projid_t = ::c_int;
+pub type id_t = ::c_uint;
+pub type blksize64_t = ::c_ulonglong;
+pub type blkcnt64_t = ::c_ulonglong;
+
+pub type suseconds_t = ::c_int;
+pub type useconds_t = ::c_uint;
+pub type off_t = ::c_long;
+pub type off64_t = ::c_longlong;
+
+pub type socklen_t = ::c_uint;
+pub type sa_family_t = ::c_uchar;
+pub type in_port_t = ::c_ushort;
+pub type in_addr_t = ::c_uint;
+
+pub type signal_t = ::c_int;
+pub type pthread_t = ::c_uint;
+pub type pthread_key_t = ::c_uint;
+pub type blksize_t = ::c_long;
+pub type nl_item = ::c_int;
+pub type mqd_t = ::c_int;
+pub type shmatt_t = ::c_ulong;
+
+pub type sem_t = ::c_int;
+pub type pollset_t = ::c_int;
+
+pub type pthread_rwlockattr_t = *mut ::c_void;
+pub type pthread_condattr_t = *mut ::c_void;
+pub type pthread_mutexattr_t = *mut ::c_void;
+pub type pthread_attr_t = *mut ::c_void;
+
+e! {
+ pub enum uio_rw {
+ UIO_READ = 0,
+ UIO_WRITE,
+ UIO_READ_NO_MOVE,
+ UIO_WRITE_NO_MOVE,
+ UIO_PWRITE,
+ }
+}
+
+s! {
+ pub struct fsid_t {
+ pub val: [::c_uint; 2],
+ }
+
+ pub struct fsid64_t {
+ pub val: [::uint64_t; 2],
+ }
+
+ pub struct timezone {
+ pub tz_minuteswest: ::c_int,
+ pub tz_dsttime: ::c_int,
+ }
+
+ pub struct ip_mreq {
+ pub imr_multiaddr: in_addr,
+ pub imr_interface: in_addr,
+ }
+
+ pub struct dirent {
+ pub d_offset: ::c_ulong,
+ pub d_ino: ::ino_t,
+ pub d_reclen: ::c_ushort,
+ pub d_namlen: ::c_ushort,
+ pub d_name: [::c_char; 256]
+ }
+
+ pub struct termios {
+ pub c_iflag: ::tcflag_t,
+ pub c_oflag: ::tcflag_t,
+ pub c_cflag: ::tcflag_t,
+ pub c_lflag: ::tcflag_t,
+ pub c_cc: [::cc_t; ::NCCS]
+ }
+
+ pub struct flock64 {
+ pub l_type: ::c_short,
+ pub l_whence: ::c_short,
+ pub l_sysid: ::c_uint,
+ pub l_pid: ::pid_t,
+ pub l_vfs: ::c_int,
+ pub l_start: ::off64_t,
+ pub l_len: ::off64_t,
+ }
+
+ pub struct msghdr {
+ pub msg_name: *mut ::c_void,
+ pub msg_namelen: ::socklen_t,
+ pub msg_iov: *mut ::iovec,
+ pub msg_iovlen: ::c_int,
+ pub msg_control: *mut ::c_void,
+ pub msg_controllen: socklen_t,
+ pub msg_flags: ::c_int,
+ }
+
+ pub struct statvfs64 {
+ pub f_bsize: ::blksize64_t,
+ pub f_frsize: ::blksize64_t,
+ pub f_blocks: ::blkcnt64_t,
+ pub f_bfree: ::blkcnt64_t,
+ pub f_bavail: ::blkcnt64_t,
+ pub f_files: ::blkcnt64_t,
+ pub f_ffree: ::blkcnt64_t,
+ pub f_favail: ::blkcnt64_t,
+ pub f_fsid: fsid64_t,
+ pub f_basetype: [::c_char; 16],
+ pub f_flag: ::c_ulong,
+ pub f_namemax: ::c_ulong,
+ pub f_fstr: [::c_char; 32],
+ pub f_filler: [::c_ulong; 16]
+ }
+
+ pub struct lconv {
+ pub decimal_point: *mut ::c_char,
+ pub thousands_sep: *mut ::c_char,
+ pub grouping: *mut ::c_char,
+ pub int_curr_symbol: *mut ::c_char,
+ pub currency_symbol: *mut ::c_char,
+ pub mon_decimal_point: *mut ::c_char,
+ pub mon_thousands_sep: *mut ::c_char,
+ pub mon_grouping: *mut ::c_char,
+ pub positive_sign: *mut ::c_char,
+ pub negative_sign: *mut ::c_char,
+ pub int_frac_digits: ::c_char,
+ pub frac_digits: ::c_char,
+ pub p_cs_precedes: ::c_char,
+ pub p_sep_by_space: ::c_char,
+ pub n_cs_precedes: ::c_char,
+ pub n_sep_by_space: ::c_char,
+ pub p_sign_posn: ::c_char,
+ pub n_sign_posn: ::c_char,
+ pub left_parenthesis: *mut ::c_char,
+ pub right_parenthesis: *mut ::c_char,
+ pub int_p_cs_precedes: ::c_char,
+ pub int_p_sep_by_space: ::c_char,
+ pub int_n_cs_precedes: ::c_char,
+ pub int_n_sep_by_space: ::c_char,
+ pub int_p_sign_posn: ::c_char,
+ pub int_n_sign_posn: ::c_char,
+ }
+
+ pub struct tm {
+ pub tm_sec: ::c_int,
+ pub tm_min: ::c_int,
+ pub tm_hour: ::c_int,
+ pub tm_mday: ::c_int,
+ pub tm_mon: ::c_int,
+ pub tm_year: ::c_int,
+ pub tm_wday: ::c_int,
+ pub tm_yday: ::c_int,
+ pub tm_isdst: ::c_int
+ }
+
+ pub struct addrinfo {
+ pub ai_flags: ::c_int,
+ pub ai_family: ::c_int,
+ pub ai_socktype: ::c_int,
+ pub ai_protocol: ::c_int,
+ pub ai_addrlen: ::c_ulong,
+ pub ai_canonname: *mut ::c_char,
+ pub ai_addr: *mut ::sockaddr,
+ pub ai_next: *mut addrinfo,
+ pub ai_eflags: ::c_int,
+ }
+
+ pub struct in_addr {
+ pub s_addr: in_addr_t
+ }
+
+ pub struct ip_mreq_source {
+ pub imr_multiaddr: in_addr,
+ pub imr_sourceaddr: in_addr,
+ pub imr_interface: in_addr,
+ }
+
+ pub struct sockaddr {
+ pub sa_len: ::c_uchar,
+ pub sa_family: sa_family_t,
+ pub sa_data: [::c_char; 14],
+ }
+
+ pub struct sockaddr_dl {
+ pub sdl_len: ::c_uchar,
+ pub sdl_family: ::c_uchar,
+ pub sdl_index: ::c_ushort,
+ pub sdl_type: ::c_uchar,
+ pub sdl_nlen: ::c_uchar,
+ pub sdl_alen: ::c_uchar,
+ pub sdl_slen: ::c_uchar,
+ pub sdl_data: [::c_char; 120],
+ }
+
+ pub struct sockaddr_in {
+ pub sin_len: ::c_uchar,
+ pub sin_family: sa_family_t,
+ pub sin_port: in_port_t,
+ pub sin_addr: in_addr,
+ pub sin_zero: [::c_char; 8]
+ }
+
+ pub struct sockaddr_in6 {
+ pub sin6_len: ::c_uchar,
+ pub sin6_family: ::c_uchar,
+ pub sin6_port: ::uint16_t,
+ pub sin6_flowinfo: ::uint32_t,
+ pub sin6_addr: ::in6_addr,
+ pub sin6_scope_id: ::uint32_t
+ }
+
+ pub struct sockaddr_storage {
+ pub __ss_len: ::c_uchar,
+ pub ss_family: sa_family_t,
+ __ss_pad1: [::c_char; 6],
+ __ss_align: ::int64_t,
+ __ss_pad2: [::c_char; 1265],
+ }
+
+ pub struct sockaddr_un {
+ pub sun_len: ::c_uchar,
+ pub sun_family: sa_family_t,
+ pub sun_path: [::c_char; 1023]
+ }
+
+ pub struct st_timespec {
+ pub tv_sec: ::time_t,
+ pub tv_nsec: ::c_int,
+ }
+
+ pub struct statfs64 {
+ pub f_version: ::c_int,
+ pub f_type: ::c_int,
+ pub f_bsize: blksize64_t,
+ pub f_blocks: blkcnt64_t,
+ pub f_bfree: blkcnt64_t,
+ pub f_bavail: blkcnt64_t,
+ pub f_files: ::uint64_t,
+ pub f_ffree: ::uint64_t,
+ pub f_fsid: fsid64_t,
+ pub f_vfstype: ::c_int,
+ pub f_fsize: blksize64_t,
+ pub f_vfsnumber: ::c_int,
+ pub f_vfsoff: ::c_int,
+ pub f_vfslen: ::c_int,
+ pub f_vfsvers: ::c_int,
+ pub f_fname: [::c_char; 32],
+ pub f_fpack: [::c_char; 32],
+ pub f_name_max: ::c_int,
+ }
+
+ pub struct passwd {
+ pub pw_name: *mut ::c_char,
+ pub pw_passwd: *mut ::c_char,
+ pub pw_uid: ::uid_t,
+ pub pw_gid: ::gid_t,
+ pub pw_gecos: *mut ::c_char,
+ pub pw_dir: *mut ::c_char,
+ pub pw_shell: *mut ::c_char
+ }
+
+ pub struct utsname {
+ pub sysname: [::c_char; 32],
+ pub nodename: [::c_char; 32],
+ pub release: [::c_char; 32],
+ pub version: [::c_char; 32],
+ pub machine: [::c_char; 32],
+ }
+
+ pub struct xutsname {
+ pub nid: ::c_uint,
+ pub reserved: ::c_int,
+ pub longnid: ::c_ulonglong,
+ }
+
+ pub struct cmsghdr {
+ pub cmsg_len: ::socklen_t,
+ pub cmsg_level: ::c_int,
+ pub cmsg_type: ::c_int,
+ }
+
+ pub struct sigevent {
+ pub sigev_value: ::sigval,
+ pub sigev_signo: ::c_int,
+ pub sigev_notify: ::c_int,
+ pub sigev_notify_function: extern fn(val: sigval),
+ pub sigev_notify_attributes: *mut pthread_attr_t,
+ }
+
+ // Should be union with another 'sival_int'
+ pub struct sigval64 {
+ pub sival_ptr: ::c_ulonglong,
+ }
+
+ pub struct sigevent64 {
+ pub sigev_value: sigval64,
+ pub sigev_signo: ::c_int,
+ pub sigev_notify: ::c_int,
+ pub sigev_notify_function: ::c_ulonglong,
+ pub sigev_notify_attributes: ::c_ulonglong,
+ }
+
+ pub struct osigevent {
+ pub sevt_value: *mut ::c_void,
+ pub sevt_signo: signal_t,
+ }
+
+ pub struct poll_ctl {
+ pub cmd: ::c_short,
+ pub events: ::c_short,
+ pub fd: ::c_int,
+ }
+
+ pub struct sf_parms {
+ pub header_data: *mut ::c_void,
+ pub header_length: ::c_uint,
+ pub file_descriptor: ::c_int,
+ pub file_size: ::uint64_t,
+ pub file_offset: ::uint64_t,
+ pub file_bytes: ::int64_t,
+ pub trailer_data: *mut ::c_void,
+ pub trailer_length: ::c_uint,
+ pub bytes_sent: ::uint64_t,
+ }
+}
+
+s_no_extra_traits! {
+ #[cfg(libc_union)]
+ pub union __sigaction_sa_union {
+ pub __su_handler: extern fn(c: ::c_int),
+ pub __su_sigaction: extern fn(c: ::c_int, info: *mut siginfo_t, ptr: *mut ::c_void),
+ }
+
+ pub struct sigaction {
+ #[cfg(libc_union)]
+ pub sa_union: __sigaction_sa_union,
+ pub sa_mask: sigset_t,
+ pub sa_flags: ::c_int,
+ }
+
+ #[cfg(libc_union)]
+ pub union __poll_ctl_ext_u {
+ pub addr: *mut ::c_void,
+ pub data32: u32,
+ pub data: u64,
+ }
+
+ pub struct poll_ctl_ext {
+ pub version: u8,
+ pub command: u8,
+ pub events: ::c_short,
+ pub fd: ::c_int,
+ #[cfg(libc_union)]
+ pub u: __poll_ctl_ext_u,
+ pub reversed64: [u64; 6],
+ }
+}
+
+cfg_if! {
+ if #[cfg(feature = "extra_traits")] {
+ #[cfg(libc_union)]
+ impl PartialEq for __sigaction_sa_union {
+ fn eq(&self, other: &__sigaction_sa_union) -> bool {
+ unsafe {
+ self.__su_handler == other.__su_handler
+ && self.__su_sigaction == other.__su_sigaction
+ }
+ }
+ }
+ #[cfg(libc_union)]
+ impl Eq for __sigaction_sa_union {}
+ #[cfg(libc_union)]
+ impl ::fmt::Debug for __sigaction_sa_union {
+ fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result {
+ f.debug_struct("__sigaction_sa_union")
+ .field("__su_handler", unsafe { &self.__su_handler })
+ .field("__su_sigaction", unsafe { &self.__su_sigaction })
+ .finish()
+ }
+ }
+ #[cfg(libc_union)]
+ impl ::hash::Hash for __sigaction_sa_union {
+ fn hash<H: ::hash::Hasher>(&self, state: &mut H) {
+ unsafe {
+ self.__su_handler.hash(state);
+ self.__su_sigaction.hash(state);
+ }
+ }
+ }
+
+ impl PartialEq for sigaction {
+ fn eq(&self, other: &sigaction) -> bool {
+ #[cfg(libc_union)]
+ let union_eq = self.sa_union == other.sa_union;
+ #[cfg(not(libc_union))]
+ let union_eq = true;
+ self.sa_mask == other.sa_mask
+ && self.sa_flags == other.sa_flags
+ && union_eq
+ }
+ }
+ impl Eq for sigaction {}
+ impl ::fmt::Debug for sigaction {
+ fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result {
+ let mut struct_formatter = f.debug_struct("sigaction");
+ #[cfg(libc_union)]
+ struct_formatter.field("sa_union", &self.sa_union);
+ struct_formatter.field("sa_mask", &self.sa_mask);
+ struct_formatter.field("sa_flags", &self.sa_flags);
+ struct_formatter.finish()
+ }
+ }
+ impl ::hash::Hash for sigaction {
+ fn hash<H: ::hash::Hasher>(&self, state: &mut H) {
+ #[cfg(libc_union)]
+ self.sa_union.hash(state);
+ self.sa_mask.hash(state);
+ self.sa_flags.hash(state);
+ }
+ }
+
+ #[cfg(libc_union)]
+ impl PartialEq for __poll_ctl_ext_u {
+ fn eq(&self, other: &__poll_ctl_ext_u) -> bool {
+ unsafe {
+ self.addr == other.addr
+ && self.data32 == other.data32
+ && self.data == other.data
+ }
+ }
+ }
+ #[cfg(libc_union)]
+ impl Eq for __poll_ctl_ext_u {}
+ #[cfg(libc_union)]
+ impl ::fmt::Debug for __poll_ctl_ext_u {
+ fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result {
+ f.debug_struct("__poll_ctl_ext_u")
+ .field("addr", unsafe { &self.addr })
+ .field("data32", unsafe { &self.data32 })
+ .field("data", unsafe { &self.data })
+ .finish()
+ }
+ }
+ #[cfg(libc_union)]
+ impl ::hash::Hash for __poll_ctl_ext_u {
+ fn hash<H: ::hash::Hasher>(&self, state: &mut H) {
+ unsafe {
+ self.addr.hash(state);
+ self.data32.hash(state);
+ self.data.hash(state);
+ }
+ }
+ }
+
+ impl PartialEq for poll_ctl_ext {
+ fn eq(&self, other: &poll_ctl_ext) -> bool {
+ #[cfg(libc_union)]
+ let union_eq = self.u == other.u;
+ #[cfg(not(libc_union))]
+ let union_eq = true;
+ self.version == other.version
+ && self.command == other.command
+ && self.events == other.events
+ && self.fd == other.fd
+ && self.reversed64 == other.reversed64
+ && union_eq
+ }
+ }
+ impl Eq for poll_ctl_ext {}
+ impl ::fmt::Debug for poll_ctl_ext {
+ fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result {
+ let mut struct_formatter = f.debug_struct("poll_ctl_ext");
+ struct_formatter.field("version", &self.version);
+ struct_formatter.field("command", &self.command);
+ struct_formatter.field("events", &self.events);
+ struct_formatter.field("fd", &self.fd);
+ #[cfg(libc_union)]
+ struct_formatter.field("u", &self.u);
+ struct_formatter.field("reversed64", &self.reversed64);
+ struct_formatter.finish()
+ }
+ }
+ impl ::hash::Hash for poll_ctl_ext {
+ fn hash<H: ::hash::Hasher>(&self, state: &mut H) {
+ self.version.hash(state);
+ self.command.hash(state);
+ self.events.hash(state);
+ self.fd.hash(state);
+ #[cfg(libc_union)]
+ self.u.hash(state);
+ self.reversed64.hash(state);
+ }
+ }
+ }
+}
+
+// dlfcn.h
+pub const RTLD_LAZY: ::c_int = 0x4;
+pub const RTLD_NOW: ::c_int = 0x2;
+pub const RTLD_GLOBAL: ::c_int = 0x10000;
+pub const RTLD_LOCAL: ::c_int = 0x80000;
+pub const RTLD_DEFAULT: *mut ::c_void = -1isize as *mut ::c_void;
+
+// fcntl.h
+pub const O_RDONLY: ::c_int = 0x0;
+pub const O_WRONLY: ::c_int = 0x1;
+pub const O_RDWR: ::c_int = 0x2;
+pub const O_NDELAY: ::c_int = 0x8000;
+pub const O_APPEND: ::c_int = 0x8;
+pub const O_DSYNC: ::c_int = 0x400000;
+pub const O_CREAT: ::c_int = 0x100;
+pub const O_EXCL: ::c_int = 0x400;
+pub const O_NOCTTY: ::c_int = 0x800;
+pub const O_TRUNC: ::c_int = 0x200;
+pub const O_NOFOLLOW: ::c_int = 0x1000000;
+pub const O_DIRECTORY: ::c_int = 0x80000;
+pub const O_SEARCH: ::c_int = 0x20;
+pub const O_EXEC: ::c_int = 0x20;
+pub const O_CLOEXEC: ::c_int = 0x800000;
+pub const O_ACCMODE: ::c_int = O_RDONLY | O_WRONLY | O_RDWR;
+pub const O_DIRECT: ::c_int = 0x8000000;
+pub const F_DUPFD_CLOEXEC: ::c_int = 16;
+pub const F_GETLK64: ::c_int = 11;
+pub const F_SETLK64: ::c_int = 12;
+pub const F_SETLKW64: ::c_int = 13;
+pub const F_DUP2FD: ::c_int = 14;
+pub const F_TSTLK: ::c_int = 15;
+pub const F_GETLK: ::c_int = F_GETLK64;
+pub const F_SETLK: ::c_int = F_SETLK64;
+pub const F_SETLKW: ::c_int = F_SETLKW64;
+pub const F_GETOWN: ::c_int = 8;
+pub const F_SETOWN: ::c_int = 9;
+pub const AT_FDCWD: ::c_int = -2;
+pub const AT_SYMLINK_NOFOLLOW: ::c_int = 1;
+pub const AT_SYMLINK_FOLLOW: ::c_int = 2;
+pub const AT_REMOVEDIR: ::c_int = 1;
+pub const AT_EACCESS: ::c_int = 1;
+pub const F_DUPFD: ::c_int = 0;
+pub const F_GETFD: ::c_int = 1;
+pub const F_SETFD: ::c_int = 2;
+pub const F_GETFL: ::c_int = 3;
+pub const F_SETFL: ::c_int = 4;
+pub const O_SYNC: ::c_int = 16;
+pub const O_NONBLOCK: ::c_int = 4;
+pub const POSIX_FADV_NORMAL: ::c_int = 1;
+pub const POSIX_FADV_SEQUENTIAL: ::c_int = 2;
+pub const POSIX_FADV_RANDOM: ::c_int = 3;
+pub const POSIX_FADV_WILLNEED: ::c_int = 4;
+pub const POSIX_FADV_DONTNEED: ::c_int = 5;
+pub const POSIX_FADV_NOREUSE: ::c_int = 6;
+
+// glob.h
+pub const GLOB_APPEND: ::c_int = 0x1;
+pub const GLOB_DOOFFS: ::c_int = 0x2;
+pub const GLOB_ERR: ::c_int = 0x4;
+pub const GLOB_MARK: ::c_int = 0x8;
+pub const GLOB_NOCHECK: ::c_int = 0x10;
+pub const GLOB_NOSORT: ::c_int = 0x20;
+pub const GLOB_NOESCAPE: ::c_int = 0x80;
+pub const GLOB_NOSPACE: ::c_int = 0x2000;
+pub const GLOB_ABORTED: ::c_int = 0x1000;
+pub const GLOB_NOMATCH: ::c_int = 0x4000;
+
+// langinfo.h
+pub const DAY_1: ::nl_item = 13;
+pub const DAY_2: ::nl_item = 14;
+pub const DAY_3: ::nl_item = 15;
+pub const DAY_4: ::nl_item = 16;
+pub const DAY_5: ::nl_item = 17;
+pub const DAY_6: ::nl_item = 18;
+pub const DAY_7: ::nl_item = 19;
+pub const ABDAY_1: ::nl_item = 6;
+pub const ABDAY_2: ::nl_item = 7;
+pub const ABDAY_3: ::nl_item = 8;
+pub const ABDAY_4: ::nl_item = 9;
+pub const ABDAY_5: ::nl_item = 10;
+pub const ABDAY_6: ::nl_item = 11;
+pub const ABDAY_7: ::nl_item = 12;
+pub const MON_1: ::nl_item = 32;
+pub const MON_2: ::nl_item = 33;
+pub const MON_3: ::nl_item = 34;
+pub const MON_4: ::nl_item = 35;
+pub const MON_5: ::nl_item = 36;
+pub const MON_6: ::nl_item = 37;
+pub const MON_7: ::nl_item = 38;
+pub const MON_8: ::nl_item = 39;
+pub const MON_9: ::nl_item = 40;
+pub const MON_10: ::nl_item = 41;
+pub const MON_11: ::nl_item = 42;
+pub const MON_12: ::nl_item = 43;
+pub const ABMON_1: ::nl_item = 20;
+pub const ABMON_2: ::nl_item = 21;
+pub const ABMON_3: ::nl_item = 22;
+pub const ABMON_4: ::nl_item = 23;
+pub const ABMON_5: ::nl_item = 24;
+pub const ABMON_6: ::nl_item = 25;
+pub const ABMON_7: ::nl_item = 26;
+pub const ABMON_8: ::nl_item = 27;
+pub const ABMON_9: ::nl_item = 28;
+pub const ABMON_10: ::nl_item = 29;
+pub const ABMON_11: ::nl_item = 30;
+pub const ABMON_12: ::nl_item = 31;
+pub const RADIXCHAR: ::nl_item = 44;
+pub const THOUSEP: ::nl_item = 45;
+pub const YESSTR: ::nl_item = 46;
+pub const NOSTR: ::nl_item = 47;
+pub const CRNCYSTR: ::nl_item = 48;
+pub const D_T_FMT: ::nl_item = 1;
+pub const D_FMT: ::nl_item = 2;
+pub const T_FMT: ::nl_item = 3;
+pub const AM_STR: ::nl_item = 4;
+pub const PM_STR: ::nl_item = 5;
+pub const CODESET: ::nl_item = 49;
+pub const T_FMT_AMPM: ::nl_item = 55;
+pub const ERA: ::nl_item = 56;
+pub const ERA_D_FMT: ::nl_item = 57;
+pub const ERA_D_T_FMT: ::nl_item = 58;
+pub const ERA_T_FMT: ::nl_item = 59;
+pub const ALT_DIGITS: ::nl_item = 60;
+pub const YESEXPR: ::nl_item = 61;
+pub const NOEXPR: ::nl_item = 62;
+
+// locale.h
+pub const LC_CTYPE: ::c_int = 1;
+pub const LC_NUMERIC: ::c_int = 3;
+pub const LC_TIME: ::c_int = 4;
+pub const LC_COLLATE: ::c_int = 0;
+pub const LC_MONETARY: ::c_int = 2;
+pub const LC_MESSAGES: ::c_int = 4;
+pub const LC_ALL: ::c_int = -1;
+pub const LC_CTYPE_MASK: ::c_int = 2;
+pub const LC_NUMERIC_MASK: ::c_int = 16;
+pub const LC_TIME_MASK: ::c_int = 32;
+pub const LC_COLLATE_MASK: ::c_int = 1;
+pub const LC_MONETARY_MASK: ::c_int = 8;
+pub const LC_MESSAGES_MASK: ::c_int = 4;
+pub const LC_ALL_MASK: ::c_int = LC_CTYPE_MASK
+ | LC_NUMERIC_MASK
+ | LC_TIME_MASK
+ | LC_COLLATE_MASK
+ | LC_MONETARY_MASK
+ | LC_MESSAGES_MASK;
+
+// netdb.h
+pub const NI_MAXHOST: ::socklen_t = 1025;
+pub const NI_MAXSERV: ::socklen_t = 32;
+pub const NI_NOFQDN: ::socklen_t = 0x1;
+pub const NI_NUMERICHOST: ::socklen_t = 0x2;
+pub const NI_NAMEREQD: ::socklen_t = 0x4;
+pub const NI_NUMERICSERV: ::socklen_t = 0x8;
+pub const NI_DGRAM: ::socklen_t = 0x10;
+pub const NI_NUMERICSCOPE: ::socklen_t = 0x40;
+pub const EAI_AGAIN: ::c_int = 2;
+pub const EAI_BADFLAGS: ::c_int = 3;
+pub const EAI_FAIL: ::c_int = 4;
+pub const EAI_FAMILY: ::c_int = 5;
+pub const EAI_MEMORY: ::c_int = 6;
+pub const EAI_NODATA: ::c_int = 7;
+pub const EAI_NONAME: ::c_int = 8;
+pub const EAI_SERVICE: ::c_int = 9;
+pub const EAI_SOCKTYPE: ::c_int = 10;
+pub const EAI_SYSTEM: ::c_int = 11;
+pub const EAI_OVERFLOW: ::c_int = 13;
+pub const AI_CANONNAME: ::c_int = 0x01;
+pub const AI_PASSIVE: ::c_int = 0x02;
+pub const AI_NUMERICHOST: ::c_int = 0x04;
+pub const AI_ADDRCONFIG: ::c_int = 0x08;
+pub const AI_V4MAPPED: ::c_int = 0x10;
+pub const AI_ALL: ::c_int = 0x20;
+pub const AI_NUMERICSERV: ::c_int = 0x40;
+pub const AI_EXTFLAGS: ::c_int = 0x80;
+pub const AI_DEFAULT: ::c_int = AI_V4MAPPED | AI_ADDRCONFIG;
+
+// net/bpf.h
+pub const DLT_NULL: ::c_int = 0x18;
+pub const DLT_EN10MB: ::c_int = 0x6;
+pub const DLT_EN3MB: ::c_int = 0x1a;
+pub const DLT_AX25: ::c_int = 0x5;
+pub const DLT_PRONET: ::c_int = 0xd;
+pub const DLT_IEEE802: ::c_int = 0x7;
+pub const DLT_ARCNET: ::c_int = 0x23;
+pub const DLT_SLIP: ::c_int = 0x1c;
+pub const DLT_PPP: ::c_int = 0x17;
+pub const DLT_FDDI: ::c_int = 0xf;
+pub const DLT_ATM: ::c_int = 0x25;
+pub const DLT_IPOIB: ::c_int = 0xc7;
+pub const BIOCSETF: ::c_ulong = 0x80104267;
+pub const BIOCGRTIMEOUT: ::c_ulong = 0x4010426e;
+pub const BIOCGBLEN: ::c_int = 0x40044266;
+pub const BIOCSBLEN: ::c_int = 0xc0044266;
+pub const BIOCFLUSH: ::c_int = 0x20004268;
+pub const BIOCPROMISC: ::c_int = 0x20004269;
+pub const BIOCGDLT: ::c_int = 0x4004426a;
+pub const BIOCSRTIMEOUT: ::c_int = 0x8010426d;
+pub const BIOCGSTATS: ::c_int = 0x4008426f;
+pub const BIOCIMMEDIATE: ::c_int = 0x80044270;
+pub const BIOCVERSION: ::c_int = 0x40044271;
+pub const BIOCSDEVNO: ::c_int = 0x20004272;
+
+// net/if.h
+pub const IFF_UP: ::c_int = 0x1;
+pub const IFF_BROADCAST: ::c_int = 0x2;
+pub const IFF_DEBUG: ::c_int = 0x4;
+pub const IFF_LOOPBACK: ::c_int = 0x8;
+pub const IFF_POINTOPOINT: ::c_int = 0x10;
+pub const IFF_NOTRAILERS: ::c_int = 0x20;
+pub const IFF_RUNNING: ::c_int = 0x40;
+pub const IFF_NOARP: ::c_int = 0x80;
+pub const IFF_PROMISC: ::c_int = 0x100;
+pub const IFF_ALLMULTI: ::c_int = 0x200;
+pub const IFF_MULTICAST: ::c_int = 0x80000;
+
+// net/route.h
+pub const RTM_ADD: ::c_int = 0x1;
+pub const RTM_DELETE: ::c_int = 0x2;
+pub const RTM_CHANGE: ::c_int = 0x3;
+pub const RTM_GET: ::c_int = 0x4;
+pub const RTM_LOSING: ::c_int = 0x5;
+pub const RTM_REDIRECT: ::c_int = 0x6;
+pub const RTM_MISS: ::c_int = 0x7;
+pub const RTM_LOCK: ::c_int = 0x8;
+pub const RTM_OLDADD: ::c_int = 0x9;
+pub const RTM_OLDDEL: ::c_int = 0xa;
+pub const RTM_RESOLVE: ::c_int = 0xb;
+pub const RTM_NEWADDR: ::c_int = 0xc;
+pub const RTM_DELADDR: ::c_int = 0xd;
+pub const RTM_IFINFO: ::c_int = 0xe;
+pub const RTM_EXPIRE: ::c_int = 0xf;
+pub const RTM_RTLOST: ::c_int = 0x10;
+pub const RTM_GETNEXT: ::c_int = 0x11;
+pub const RTM_SAMEADDR: ::c_int = 0x12;
+pub const RTM_SET: ::c_int = 0x13;
+pub const RTV_MTU: ::c_int = 0x1;
+pub const RTV_HOPCOUNT: ::c_int = 0x2;
+pub const RTV_EXPIRE: ::c_int = 0x4;
+pub const RTV_RPIPE: ::c_int = 0x8;
+pub const RTV_SPIPE: ::c_int = 0x10;
+pub const RTV_SSTHRESH: ::c_int = 0x20;
+pub const RTV_RTT: ::c_int = 0x40;
+pub const RTV_RTTVAR: ::c_int = 0x80;
+pub const RTA_DST: ::c_int = 0x1;
+pub const RTA_GATEWAY: ::c_int = 0x2;
+pub const RTA_NETMASK: ::c_int = 0x4;
+pub const RTA_GENMASK: ::c_int = 0x8;
+pub const RTA_IFP: ::c_int = 0x10;
+pub const RTA_IFA: ::c_int = 0x20;
+pub const RTA_AUTHOR: ::c_int = 0x40;
+pub const RTA_BRD: ::c_int = 0x80;
+pub const RTA_DOWNSTREAM: ::c_int = 0x100;
+pub const RTAX_DST: ::c_int = 0;
+pub const RTAX_GATEWAY: ::c_int = 1;
+pub const RTAX_NETMASK: ::c_int = 2;
+pub const RTAX_GENMASK: ::c_int = 3;
+pub const RTAX_IFP: ::c_int = 4;
+pub const RTAX_IFA: ::c_int = 5;
+pub const RTAX_AUTHOR: ::c_int = 6;
+pub const RTAX_BRD: ::c_int = 7;
+pub const RTAX_MAX: ::c_int = 8;
+pub const RTF_UP: ::c_int = 0x1;
+pub const RTF_GATEWAY: ::c_int = 0x2;
+pub const RTF_HOST: ::c_int = 0x4;
+pub const RTF_REJECT: ::c_int = 0x8;
+pub const RTF_DYNAMIC: ::c_int = 0x10;
+pub const RTF_MODIFIED: ::c_int = 0x20;
+pub const RTF_DONE: ::c_int = 0x40;
+pub const RTF_MASK: ::c_int = 0x80;
+pub const RTF_CLONING: ::c_int = 0x100;
+pub const RTF_XRESOLVE: ::c_int = 0x200;
+pub const RTF_LLINFO: ::c_int = 0x400;
+pub const RTF_STATIC: ::c_int = 0x800;
+pub const RTF_BLACKHOLE: ::c_int = 0x1000;
+pub const RTF_BUL: ::c_int = 0x2000;
+pub const RTF_PROTO2: ::c_int = 0x4000;
+pub const RTF_PROTO1: ::c_int = 0x8000;
+pub const RTF_CLONE: ::c_int = 0x10000;
+pub const RTF_CLONED: ::c_int = 0x20000;
+pub const RTF_PROTO3: ::c_int = 0x40000;
+pub const RTF_BCE: ::c_int = 0x80000;
+pub const RTF_PINNED: ::c_int = 0x100000;
+pub const RTF_LOCAL: ::c_int = 0x200000;
+pub const RTF_BROADCAST: ::c_int = 0x400000;
+pub const RTF_MULTICAST: ::c_int = 0x800000;
+pub const RTF_ACTIVE_DGD: ::c_int = 0x1000000;
+pub const RTF_STOPSRCH: ::c_int = 0x2000000;
+pub const RTF_FREE_IN_PROG: ::c_int = 0x4000000;
+pub const RTF_PERMANENT6: ::c_int = 0x8000000;
+pub const RTF_UNREACHABLE: ::c_int = 0x10000000;
+pub const RTF_CACHED: ::c_int = 0x20000000;
+pub const RTF_SMALLMTU: ::c_int = 0x40000;
+
+// netinet/in.h
+pub const IPPROTO_HOPOPTS: ::c_int = 0;
+pub const IPPROTO_IGMP: ::c_int = 2;
+pub const IPPROTO_GGP: ::c_int = 3;
+pub const IPPROTO_IPIP: ::c_int = 4;
+pub const IPPROTO_EGP: ::c_int = 8;
+pub const IPPROTO_PUP: ::c_int = 12;
+pub const IPPROTO_IDP: ::c_int = 22;
+pub const IPPROTO_TP: ::c_int = 29;
+pub const IPPROTO_ROUTING: ::c_int = 43;
+pub const IPPROTO_FRAGMENT: ::c_int = 44;
+pub const IPPROTO_QOS: ::c_int = 45;
+pub const IPPROTO_RSVP: ::c_int = 46;
+pub const IPPROTO_GRE: ::c_int = 47;
+pub const IPPROTO_ESP: ::c_int = 50;
+pub const IPPROTO_AH: ::c_int = 51;
+pub const IPPROTO_NONE: ::c_int = 59;
+pub const IPPROTO_DSTOPTS: ::c_int = 60;
+pub const IPPROTO_LOCAL: ::c_int = 63;
+pub const IPPROTO_EON: ::c_int = 80;
+pub const IPPROTO_BIP: ::c_int = 0x53;
+pub const IPPROTO_SCTP: ::c_int = 132;
+pub const IPPROTO_MH: ::c_int = 135;
+pub const IPPROTO_GIF: ::c_int = 140;
+pub const IPPROTO_RAW: ::c_int = 255;
+pub const IPPROTO_MAX: ::c_int = 256;
+pub const IP_OPTIONS: ::c_int = 1;
+pub const IP_HDRINCL: ::c_int = 2;
+pub const IP_TOS: ::c_int = 3;
+pub const IP_TTL: ::c_int = 4;
+pub const IP_UNICAST_HOPS: ::c_int = 4;
+pub const IP_RECVOPTS: ::c_int = 5;
+pub const IP_RECVRETOPTS: ::c_int = 6;
+pub const IP_RECVDSTADDR: ::c_int = 7;
+pub const IP_RETOPTS: ::c_int = 8;
+pub const IP_MULTICAST_IF: ::c_int = 9;
+pub const IP_MULTICAST_TTL: ::c_int = 10;
+pub const IP_MULTICAST_HOPS: ::c_int = 10;
+pub const IP_MULTICAST_LOOP: ::c_int = 11;
+pub const IP_ADD_MEMBERSHIP: ::c_int = 12;
+pub const IP_DROP_MEMBERSHIP: ::c_int = 13;
+pub const IP_RECVMACHDR: ::c_int = 14;
+pub const IP_RECVIFINFO: ::c_int = 15;
+pub const IP_BROADCAST_IF: ::c_int = 16;
+pub const IP_DHCPMODE: ::c_int = 17;
+pub const IP_RECVIF: ::c_int = 20;
+pub const IP_ADDRFORM: ::c_int = 22;
+pub const IP_DONTFRAG: ::c_int = 25;
+pub const IP_FINDPMTU: ::c_int = 26;
+pub const IP_PMTUAGE: ::c_int = 27;
+pub const IP_RECVINTERFACE: ::c_int = 32;
+pub const IP_RECVTTL: ::c_int = 34;
+pub const IP_BLOCK_SOURCE: ::c_int = 58;
+pub const IP_UNBLOCK_SOURCE: ::c_int = 59;
+pub const IP_ADD_SOURCE_MEMBERSHIP: ::c_int = 60;
+pub const IP_DROP_SOURCE_MEMBERSHIP: ::c_int = 61;
+pub const IP_DEFAULT_MULTICAST_TTL: ::c_int = 1;
+pub const IP_DEFAULT_MULTICAST_LOOP: ::c_int = 1;
+pub const IP_INC_MEMBERSHIPS: ::c_int = 20;
+pub const IP_INIT_MEMBERSHIP: ::c_int = 20;
+pub const IPV6_UNICAST_HOPS: ::c_int = IP_TTL;
+pub const IPV6_MULTICAST_IF: ::c_int = IP_MULTICAST_IF;
+pub const IPV6_MULTICAST_HOPS: ::c_int = IP_MULTICAST_TTL;
+pub const IPV6_MULTICAST_LOOP: ::c_int = IP_MULTICAST_LOOP;
+pub const IPV6_RECVPKTINFO: ::c_int = 35;
+pub const IPV6_V6ONLY: ::c_int = 37;
+pub const IPV6_ADD_MEMBERSHIP: ::c_int = IP_ADD_MEMBERSHIP;
+pub const IPV6_DROP_MEMBERSHIP: ::c_int = IP_DROP_MEMBERSHIP;
+pub const IPV6_JOIN_GROUP: ::c_int = IP_ADD_MEMBERSHIP;
+pub const IPV6_LEAVE_GROUP: ::c_int = IP_DROP_MEMBERSHIP;
+
+// netinet/tcp.h
+pub const TCP_NODELAY: ::c_int = 0x1;
+pub const TCP_MAXSEG: ::c_int = 0x2;
+pub const TCP_RFC1323: ::c_int = 0x4;
+pub const TCP_KEEPALIVE: ::c_int = 0x8;
+pub const TCP_KEEPIDLE: ::c_int = 0x11;
+pub const TCP_KEEPINTVL: ::c_int = 0x12;
+pub const TCP_KEEPCNT: ::c_int = 0x13;
+pub const TCP_NODELAYACK: ::c_int = 0x14;
+
+// pthread.h
+pub const PTHREAD_CREATE_JOINABLE: ::c_int = 0;
+pub const PTHREAD_CREATE_DETACHED: ::c_int = 1;
+pub const PTHREAD_PROCESS_SHARED: ::c_int = 0;
+pub const PTHREAD_PROCESS_PRIVATE: ::c_ushort = 1;
+pub const PTHREAD_STACK_MIN: ::size_t = PAGESIZE as ::size_t * 4;
+pub const PTHREAD_MUTEX_NORMAL: ::c_int = 5;
+pub const PTHREAD_MUTEX_ERRORCHECK: ::c_int = 3;
+pub const PTHREAD_MUTEX_RECURSIVE: ::c_int = 4;
+pub const PTHREAD_MUTEX_DEFAULT: ::c_int = PTHREAD_MUTEX_NORMAL;
+
+// spawn.h
+pub const POSIX_SPAWN_SETPGROUP: ::c_int = 0x1;
+pub const POSIX_SPAWN_SETSIGMASK: ::c_int = 0x2;
+pub const POSIX_SPAWN_SETSIGDEF: ::c_int = 0x4;
+pub const POSIX_SPAWN_SETSCHEDULER: ::c_int = 0x8;
+pub const POSIX_SPAWN_SETSCHEDPARAM: ::c_int = 0x10;
+pub const POSIX_SPAWN_RESETIDS: ::c_int = 0x20;
+pub const POSIX_SPAWN_FORK_HANDLERS: ::c_int = 0x1000;
+
+// stdio.h
+pub const EOF: ::c_int = -1;
+pub const SEEK_SET: ::c_int = 0;
+pub const SEEK_CUR: ::c_int = 1;
+pub const SEEK_END: ::c_int = 2;
+pub const _IOFBF: ::c_int = 0o000;
+pub const _IONBF: ::c_int = 0o004;
+pub const _IOLBF: ::c_int = 0o100;
+pub const BUFSIZ: ::c_uint = 4096;
+pub const FOPEN_MAX: ::c_uint = 32767;
+pub const FILENAME_MAX: ::c_uint = 255;
+pub const L_tmpnam: ::c_uint = 21;
+pub const TMP_MAX: ::c_uint = 16384;
+
+// stdlib.h
+pub const EXIT_FAILURE: ::c_int = 1;
+pub const EXIT_SUCCESS: ::c_int = 0;
+pub const RAND_MAX: ::c_int = 32767;
+
+// sys/access.h
+pub const F_OK: ::c_int = 0;
+pub const R_OK: ::c_int = 4;
+pub const W_OK: ::c_int = 2;
+pub const X_OK: ::c_int = 1;
+
+// sys/aio.h
+pub const LIO_NOP: ::c_int = 0;
+pub const LIO_READ: ::c_int = 1;
+pub const LIO_WRITE: ::c_int = 2;
+
+// sys/errno.h
+pub const EPERM: ::c_int = 1;
+pub const ENOENT: ::c_int = 2;
+pub const ESRCH: ::c_int = 3;
+pub const EINTR: ::c_int = 4;
+pub const EIO: ::c_int = 5;
+pub const ENXIO: ::c_int = 6;
+pub const E2BIG: ::c_int = 7;
+pub const ENOEXEC: ::c_int = 8;
+pub const EBADF: ::c_int = 9;
+pub const ECHILD: ::c_int = 10;
+pub const EAGAIN: ::c_int = 11;
+pub const ENOMEM: ::c_int = 12;
+pub const EACCES: ::c_int = 13;
+pub const EFAULT: ::c_int = 14;
+pub const ENOTBLK: ::c_int = 15;
+pub const EBUSY: ::c_int = 16;
+pub const EEXIST: ::c_int = 17;
+pub const EXDEV: ::c_int = 18;
+pub const ENODEV: ::c_int = 19;
+pub const ENOTDIR: ::c_int = 20;
+pub const EISDIR: ::c_int = 21;
+pub const EINVAL: ::c_int = 22;
+pub const ENFILE: ::c_int = 23;
+pub const EMFILE: ::c_int = 24;
+pub const ENOTTY: ::c_int = 25;
+pub const ETXTBSY: ::c_int = 26;
+pub const EFBIG: ::c_int = 27;
+pub const ENOSPC: ::c_int = 28;
+pub const ESPIPE: ::c_int = 29;
+pub const EROFS: ::c_int = 30;
+pub const EMLINK: ::c_int = 31;
+pub const EPIPE: ::c_int = 32;
+pub const EDOM: ::c_int = 33;
+pub const ERANGE: ::c_int = 34;
+pub const ENOMSG: ::c_int = 35;
+pub const EIDRM: ::c_int = 36;
+pub const ECHRNG: ::c_int = 37;
+pub const EL2NSYNC: ::c_int = 38;
+pub const EL3HLT: ::c_int = 39;
+pub const EL3RST: ::c_int = 40;
+pub const ELNRNG: ::c_int = 41;
+pub const EUNATCH: ::c_int = 42;
+pub const ENOCSI: ::c_int = 43;
+pub const EL2HLT: ::c_int = 44;
+pub const EDEADLK: ::c_int = 45;
+pub const ENOLCK: ::c_int = 49;
+pub const ECANCELED: ::c_int = 117;
+pub const ENOTSUP: ::c_int = 124;
+pub const EPROCLIM: ::c_int = 83;
+pub const EDQUOT: ::c_int = 88;
+pub const EOWNERDEAD: ::c_int = 95;
+pub const ENOTRECOVERABLE: ::c_int = 94;
+pub const ENOSTR: ::c_int = 123;
+pub const ENODATA: ::c_int = 122;
+pub const ETIME: ::c_int = 119;
+pub const ENOSR: ::c_int = 118;
+pub const EREMOTE: ::c_int = 93;
+pub const ENOLINK: ::c_int = 126;
+pub const EPROTO: ::c_int = 121;
+pub const EMULTIHOP: ::c_int = 125;
+pub const EBADMSG: ::c_int = 120;
+pub const ENAMETOOLONG: ::c_int = 86;
+pub const EOVERFLOW: ::c_int = 127;
+pub const EILSEQ: ::c_int = 116;
+pub const ENOSYS: ::c_int = 109;
+pub const ELOOP: ::c_int = 85;
+pub const ERESTART: ::c_int = 82;
+pub const ENOTEMPTY: ::c_int = 87;
+pub const EUSERS: ::c_int = 84;
+pub const ENOTSOCK: ::c_int = 57;
+pub const EDESTADDRREQ: ::c_int = 58;
+pub const EMSGSIZE: ::c_int = 59;
+pub const EPROTOTYPE: ::c_int = 60;
+pub const ENOPROTOOPT: ::c_int = 61;
+pub const EPROTONOSUPPORT: ::c_int = 62;
+pub const ESOCKTNOSUPPORT: ::c_int = 63;
+pub const EOPNOTSUPP: ::c_int = 64;
+pub const EPFNOSUPPORT: ::c_int = 65;
+pub const EAFNOSUPPORT: ::c_int = 66;
+pub const EADDRINUSE: ::c_int = 67;
+pub const EADDRNOTAVAIL: ::c_int = 68;
+pub const ENETDOWN: ::c_int = 69;
+pub const ENETUNREACH: ::c_int = 70;
+pub const ENETRESET: ::c_int = 71;
+pub const ECONNABORTED: ::c_int = 72;
+pub const ECONNRESET: ::c_int = 73;
+pub const ENOBUFS: ::c_int = 74;
+pub const EISCONN: ::c_int = 75;
+pub const ENOTCONN: ::c_int = 76;
+pub const ESHUTDOWN: ::c_int = 77;
+pub const ETOOMANYREFS: ::c_int = 115;
+pub const ETIMEDOUT: ::c_int = 78;
+pub const ECONNREFUSED: ::c_int = 79;
+pub const EHOSTDOWN: ::c_int = 80;
+pub const EHOSTUNREACH: ::c_int = 81;
+pub const EWOULDBLOCK: ::c_int = EAGAIN;
+pub const EALREADY: ::c_int = 56;
+pub const EINPROGRESS: ::c_int = 55;
+pub const ESTALE: ::c_int = 52;
+
+// sys/dr.h
+pub const LPAR_INFO_FORMAT1: ::c_int = 1;
+pub const LPAR_INFO_FORMAT2: ::c_int = 2;
+pub const WPAR_INFO_FORMAT: ::c_int = 3;
+pub const PROC_MODULE_INFO: ::c_int = 4;
+pub const NUM_PROC_MODULE_TYPES: ::c_int = 5;
+pub const LPAR_INFO_VRME_NUM_POOLS: ::c_int = 6;
+pub const LPAR_INFO_VRME_POOLS: ::c_int = 7;
+pub const LPAR_INFO_VRME_LPAR: ::c_int = 8;
+pub const LPAR_INFO_VRME_RESET_HWMARKS: ::c_int = 9;
+pub const LPAR_INFO_VRME_ALLOW_DESIRED: ::c_int = 10;
+pub const EMTP_INFO_FORMAT: ::c_int = 11;
+pub const LPAR_INFO_LPM_CAPABILITY: ::c_int = 12;
+pub const ENERGYSCALE_INFO: ::c_int = 13;
+
+// sys/file.h
+pub const LOCK_SH: ::c_int = 1;
+pub const LOCK_EX: ::c_int = 2;
+pub const LOCK_NB: ::c_int = 4;
+pub const LOCK_UN: ::c_int = 8;
+
+// sys/flock.h
+pub const F_RDLCK: ::c_short = 0o01;
+pub const F_WRLCK: ::c_short = 0o02;
+pub const F_UNLCK: ::c_short = 0o03;
+
+// sys/fs/quota_common.h
+pub const Q_QUOTAON: ::c_int = 0x100;
+pub const Q_QUOTAOFF: ::c_int = 0x200;
+pub const Q_SETUSE: ::c_int = 0x500;
+pub const Q_SYNC: ::c_int = 0x600;
+pub const Q_GETQUOTA: ::c_int = 0x300;
+pub const Q_SETQLIM: ::c_int = 0x400;
+pub const Q_SETQUOTA: ::c_int = 0x400;
+
+// sys/ioctl.h
+pub const IOCPARM_MASK: ::c_int = 0x7f;
+pub const IOC_VOID: ::c_int = 0x20000000;
+pub const IOC_OUT: ::c_int = 0x40000000;
+pub const IOC_IN: ::c_int = 0x40000000 << 1;
+pub const IOC_INOUT: ::c_int = IOC_IN | IOC_OUT;
+pub const FIOCLEX: ::c_int = 536897025;
+pub const FIONCLEX: ::c_int = 536897026;
+pub const FIONREAD: ::c_int = 1074030207;
+pub const FIONBIO: ::c_int = -2147195266;
+pub const FIOASYNC: ::c_int = -2147195267;
+pub const FIOSETOWN: ::c_int = -2147195268;
+pub const FIOGETOWN: ::c_int = 1074030203;
+pub const TIOCGETD: ::c_int = 0x40047400;
+pub const TIOCSETD: ::c_int = 0x80047401;
+pub const TIOCHPCL: ::c_int = 0x20007402;
+pub const TIOCMODG: ::c_int = 0x40047403;
+pub const TIOCMODS: ::c_int = 0x80047404;
+pub const TIOCM_LE: ::c_int = 0x1;
+pub const TIOCM_DTR: ::c_int = 0x2;
+pub const TIOCM_RTS: ::c_int = 0x4;
+pub const TIOCM_ST: ::c_int = 0x8;
+pub const TIOCM_SR: ::c_int = 0x10;
+pub const TIOCM_CTS: ::c_int = 0x20;
+pub const TIOCM_CAR: ::c_int = 0x40;
+pub const TIOCM_CD: ::c_int = 0x40;
+pub const TIOCM_RNG: ::c_int = 0x80;
+pub const TIOCM_RI: ::c_int = 0x80;
+pub const TIOCM_DSR: ::c_int = 0x100;
+pub const TIOCGETP: ::c_int = 0x40067408;
+pub const TIOCSETP: ::c_int = 0x80067409;
+pub const TIOCSETN: ::c_int = 0x8006740a;
+pub const TIOCEXCL: ::c_int = 0x2000740d;
+pub const TIOCNXCL: ::c_int = 0x2000740e;
+pub const TIOCFLUSH: ::c_int = 0x80047410;
+pub const TIOCSETC: ::c_int = 0x80067411;
+pub const TIOCGETC: ::c_int = 0x40067412;
+pub const TANDEM: ::c_int = 0x1;
+pub const CBREAK: ::c_int = 0x2;
+pub const LCASE: ::c_int = 0x4;
+
+// sys/ipc.h
+pub const IPC_ALLOC: ::c_int = 0o100000;
+pub const IPC_CREAT: ::c_int = 0o020000;
+pub const IPC_EXCL: ::c_int = 0o002000;
+pub const IPC_NOWAIT: ::c_int = 0o004000;
+pub const IPC_RMID: ::c_int = 0;
+pub const IPC_SET: ::c_int = 101;
+pub const IPC_R: ::c_int = 0o0400;
+pub const IPC_W: ::c_int = 0o0200;
+pub const IPC_O: ::c_int = 0o1000;
+pub const IPC_NOERROR: ::c_int = 0o10000;
+
+// sys/ldr.h
+pub const L_GETINFO: ::c_int = 2;
+pub const L_GETMESSAGE: ::c_int = 1;
+pub const L_GETLIBPATH: ::c_int = 3;
+pub const L_GETXINFO: ::c_int = 8;
+
+// sys/limits.h
+pub const PATH_MAX: ::c_int = 1023;
+pub const PAGESIZE: ::c_int = 4096;
+pub const IOV_MAX: ::c_int = 16;
+pub const AIO_LISTIO_MAX: ::c_int = 4096;
+pub const PIPE_BUF: usize = 32768;
+
+// sys/lockf.h
+pub const F_LOCK: ::c_int = 1;
+pub const F_TEST: ::c_int = 3;
+pub const F_TLOCK: ::c_int = 2;
+pub const F_ULOCK: ::c_int = 0;
+
+// sys/mman.h
+pub const PROT_NONE: ::c_int = 0;
+pub const PROT_READ: ::c_int = 1;
+pub const PROT_WRITE: ::c_int = 2;
+pub const PROT_EXEC: ::c_int = 4;
+pub const MAP_FILE: ::c_int = 0;
+pub const MAP_SHARED: ::c_int = 1;
+pub const MAP_PRIVATE: ::c_int = 2;
+pub const MAP_FIXED: ::c_int = 0x100;
+pub const MAP_ANON: ::c_int = 0x10;
+pub const MAP_ANONYMOUS: ::c_int = 0x10;
+pub const MAP_FAILED: *mut ::c_void = !0 as *mut ::c_void;
+pub const MCL_CURRENT: ::c_int = 0x100;
+pub const MCL_FUTURE: ::c_int = 0x200;
+pub const MS_SYNC: ::c_int = 0x20;
+pub const MS_ASYNC: ::c_int = 0x10;
+pub const MS_INVALIDATE: ::c_int = 0x40;
+pub const POSIX_MADV_NORMAL: ::c_int = 1;
+pub const POSIX_MADV_RANDOM: ::c_int = 3;
+pub const POSIX_MADV_SEQUENTIAL: ::c_int = 2;
+pub const POSIX_MADV_WILLNEED: ::c_int = 4;
+pub const POSIX_MADV_DONTNEED: ::c_int = 5;
+pub const MADV_NORMAL: ::c_int = 0;
+pub const MADV_RANDOM: ::c_int = 1;
+pub const MADV_SEQUENTIAL: ::c_int = 2;
+pub const MADV_WILLNEED: ::c_int = 3;
+pub const MADV_DONTNEED: ::c_int = 4;
+
+// sys/mode.h
+pub const S_IFMT: mode_t = 0o170000;
+pub const S_IFREG: mode_t = 0o100000;
+pub const S_IFDIR: mode_t = 0o40000;
+pub const S_IFBLK: mode_t = 0o60000;
+pub const S_IFCHR: mode_t = 0o20000;
+pub const S_IFIFO: mode_t = 0o10000;
+pub const S_IRWXU: mode_t = 0o700;
+pub const S_IRUSR: mode_t = 0o400;
+pub const S_IWUSR: mode_t = 0o200;
+pub const S_IXUSR: mode_t = 0o100;
+pub const S_IRWXG: mode_t = 0o70;
+pub const S_IRGRP: mode_t = 0o40;
+pub const S_IWGRP: mode_t = 0o20;
+pub const S_IXGRP: mode_t = 0o10;
+pub const S_IRWXO: mode_t = 7;
+pub const S_IROTH: mode_t = 4;
+pub const S_IWOTH: mode_t = 2;
+pub const S_IXOTH: mode_t = 1;
+pub const S_IFLNK: mode_t = 0o120000;
+pub const S_IFSOCK: mode_t = 0o140000;
+
+// sys/m_signal.h
+pub const SIGSTKSZ: ::size_t = 4096;
+pub const MINSIGSTKSZ: ::size_t = 1200;
+
+// sys/params.h
+pub const MAXPATHLEN: ::c_int = PATH_MAX + 1;
+pub const MAXSYMLINKS: ::c_int = 20;
+
+// sys/poll.h
+pub const POLLIN: ::c_short = 0x0001;
+pub const POLLPRI: ::c_short = 0x0004;
+pub const POLLOUT: ::c_short = 0x0002;
+pub const POLLERR: ::c_short = 0x4000;
+pub const POLLHUP: ::c_short = 0x2000;
+pub const POLLMSG: ::c_short = 0x0080;
+pub const POLLSYNC: ::c_short = 0x8000;
+pub const POLLNVAL: ::c_short = POLLSYNC;
+pub const POLLNORM: ::c_short = POLLIN;
+pub const POLLRDNORM: ::c_short = 0x0010;
+pub const POLLWRNORM: ::c_short = POLLOUT;
+pub const POLLRDBAND: ::c_short = 0x0020;
+pub const POLLWRBAND: ::c_short = 0x0040;
+
+// sys/pollset.h
+pub const PS_ADD: ::c_uchar = 0;
+pub const PS_MOD: ::c_uchar = 1;
+pub const PS_DELETE: ::c_uchar = 2;
+pub const PS_REPLACE: ::c_uchar = 3;
+
+// sys/ptrace.h
+pub const PT_TRACE_ME: ::c_int = 0;
+pub const PT_READ_I: ::c_int = 1;
+pub const PT_READ_D: ::c_int = 2;
+pub const PT_WRITE_I: ::c_int = 4;
+pub const PT_WRITE_D: ::c_int = 5;
+pub const PT_CONTINUE: ::c_int = 7;
+pub const PT_KILL: ::c_int = 8;
+pub const PT_STEP: ::c_int = 9;
+pub const PT_READ_GPR: ::c_int = 11;
+pub const PT_READ_FPR: ::c_int = 12;
+pub const PT_WRITE_GPR: ::c_int = 14;
+pub const PT_WRITE_FPR: ::c_int = 15;
+pub const PT_READ_BLOCK: ::c_int = 17;
+pub const PT_WRITE_BLOCK: ::c_int = 19;
+pub const PT_ATTACH: ::c_int = 30;
+pub const PT_DETACH: ::c_int = 31;
+pub const PT_REGSET: ::c_int = 32;
+pub const PT_REATT: ::c_int = 33;
+pub const PT_LDINFO: ::c_int = 34;
+pub const PT_MULTI: ::c_int = 35;
+pub const PT_NEXT: ::c_int = 36;
+pub const PT_SET: ::c_int = 37;
+pub const PT_CLEAR: ::c_int = 38;
+pub const PT_LDXINFO: ::c_int = 39;
+pub const PT_QUERY: ::c_int = 40;
+pub const PT_WATCH: ::c_int = 41;
+pub const PTT_CONTINUE: ::c_int = 50;
+pub const PTT_STEP: ::c_int = 51;
+pub const PTT_READ_SPRS: ::c_int = 52;
+pub const PTT_WRITE_SPRS: ::c_int = 53;
+pub const PTT_READ_GPRS: ::c_int = 54;
+pub const PTT_WRITE_GPRS: ::c_int = 55;
+pub const PTT_READ_FPRS: ::c_int = 56;
+pub const PTT_WRITE_FPRS: ::c_int = 57;
+pub const PTT_READ_VEC: ::c_int = 58;
+pub const PTT_WRITE_VEC: ::c_int = 59;
+pub const PTT_WATCH: ::c_int = 60;
+pub const PTT_SET_TRAP: ::c_int = 61;
+pub const PTT_CLEAR_TRAP: ::c_int = 62;
+pub const PTT_READ_UKEYSET: ::c_int = 63;
+pub const PT_GET_UKEY: ::c_int = 64;
+pub const PTT_READ_FPSCR_HI: ::c_int = 65;
+pub const PTT_WRITE_FPSCR_HI: ::c_int = 66;
+pub const PTT_READ_VSX: ::c_int = 67;
+pub const PTT_WRITE_VSX: ::c_int = 68;
+pub const PTT_READ_TM: ::c_int = 69;
+
+// sys/resource.h
+pub const RLIMIT_CPU: ::c_int = 0;
+pub const RLIMIT_FSIZE: ::c_int = 1;
+pub const RLIMIT_DATA: ::c_int = 2;
+pub const RLIMIT_STACK: ::c_int = 3;
+pub const RLIMIT_CORE: ::c_int = 4;
+pub const RLIMIT_RSS: ::c_int = 5;
+pub const RLIMIT_AS: ::c_int = 6;
+pub const RLIMIT_NOFILE: ::c_int = 7;
+pub const RLIMIT_THREADS: ::c_int = 8;
+pub const RLIMIT_NPROC: ::c_int = 9;
+pub const RUSAGE_SELF: ::c_int = 0;
+pub const RUSAGE_CHILDREN: ::c_int = -1;
+pub const PRIO_PROCESS: ::c_int = 0;
+pub const PRIO_PGRP: ::c_int = 1;
+pub const PRIO_USER: ::c_int = 2;
+
+// sys/sched.h
+pub const SCHED_OTHER: ::c_int = 0;
+pub const SCHED_FIFO: ::c_int = 1;
+pub const SCHED_RR: ::c_int = 2;
+pub const SCHED_LOCAL: ::c_int = 3;
+pub const SCHED_GLOBAL: ::c_int = 4;
+pub const SCHED_FIFO2: ::c_int = 5;
+pub const SCHED_FIFO3: ::c_int = 6;
+pub const SCHED_FIFO4: ::c_int = 7;
+
+// sys/sem.h
+pub const SEM_UNDO: ::c_int = 0o10000;
+pub const GETNCNT: ::c_int = 3;
+pub const GETPID: ::c_int = 4;
+pub const GETVAL: ::c_int = 5;
+pub const GETALL: ::c_int = 6;
+pub const GETZCNT: ::c_int = 7;
+pub const SETVAL: ::c_int = 8;
+pub const SETALL: ::c_int = 9;
+
+// sys/shm.h
+pub const SHMLBA: ::c_int = 0x10000000;
+pub const SHMLBA_EXTSHM: ::c_int = 0x1000;
+pub const SHM_SHMAT: ::c_int = 0x80000000;
+pub const SHM_RDONLY: ::c_int = 0o10000;
+pub const SHM_RND: ::c_int = 0o20000;
+pub const SHM_PIN: ::c_int = 0o4000;
+pub const SHM_LGPAGE: ::c_int = 0o20000000000;
+pub const SHM_MAP: ::c_int = 0o4000;
+pub const SHM_FMAP: ::c_int = 0o2000;
+pub const SHM_COPY: ::c_int = 0o40000;
+pub const SHM_CLEAR: ::c_int = 0;
+pub const SHM_HGSEG: ::c_int = 0o10000000000;
+pub const SHM_R: ::c_int = IPC_R;
+pub const SHM_W: ::c_int = IPC_W;
+pub const SHM_DEST: ::c_int = 0o2000;
+
+// sys/signal.h
+pub const SA_ONSTACK: ::c_int = 0x00000001;
+pub const SA_RESETHAND: ::c_int = 0x00000002;
+pub const SA_RESTART: ::c_int = 0x00000008;
+pub const SA_SIGINFO: ::c_int = 0x00000100;
+pub const SA_NODEFER: ::c_int = 0x00000200;
+pub const SA_NOCLDWAIT: ::c_int = 0x00000400;
+pub const SA_NOCLDSTOP: ::c_int = 0x00000004;
+pub const SS_ONSTACK: ::c_int = 0x00000001;
+pub const SS_DISABLE: ::c_int = 0x00000002;
+pub const SIGCHLD: ::c_int = 20;
+pub const SIGBUS: ::c_int = 10;
+pub const SIG_BLOCK: ::c_int = 0;
+pub const SIG_UNBLOCK: ::c_int = 1;
+pub const SIG_SETMASK: ::c_int = 2;
+pub const SIGEV_NONE: ::c_int = 1;
+pub const SIGEV_SIGNAL: ::c_int = 2;
+pub const SIGEV_THREAD: ::c_int = 3;
+pub const SIGHUP: ::c_int = 1;
+pub const SIGINT: ::c_int = 2;
+pub const SIGQUIT: ::c_int = 3;
+pub const SIGILL: ::c_int = 4;
+pub const SIGABRT: ::c_int = 6;
+pub const SIGEMT: ::c_int = 7;
+pub const SIGFPE: ::c_int = 8;
+pub const SIGKILL: ::c_int = 9;
+pub const SIGSEGV: ::c_int = 11;
+pub const SIGSYS: ::c_int = 12;
+pub const SIGPIPE: ::c_int = 13;
+pub const SIGALRM: ::c_int = 14;
+pub const SIGTERM: ::c_int = 15;
+pub const SIGUSR1: ::c_int = 30;
+pub const SIGUSR2: ::c_int = 31;
+pub const SIGPWR: ::c_int = 29;
+pub const SIGWINCH: ::c_int = 28;
+pub const SIGURG: ::c_int = 16;
+pub const SIGPOLL: ::c_int = SIGIO;
+pub const SIGIO: ::c_int = 23;
+pub const SIGSTOP: ::c_int = 17;
+pub const SIGTSTP: ::c_int = 18;
+pub const SIGCONT: ::c_int = 19;
+pub const SIGTTIN: ::c_int = 21;
+pub const SIGTTOU: ::c_int = 22;
+pub const SIGVTALRM: ::c_int = 34;
+pub const SIGPROF: ::c_int = 32;
+pub const SIGXCPU: ::c_int = 24;
+pub const SIGXFSZ: ::c_int = 25;
+pub const SIGTRAP: ::c_int = 5;
+pub const SI_USER: ::c_int = 0;
+pub const SI_UNDEFINED: ::c_int = 8;
+pub const SI_EMPTY: ::c_int = 9;
+pub const BUS_ADRALN: ::c_int = 1;
+pub const BUS_ADRERR: ::c_int = 2;
+pub const BUS_OBJERR: ::c_int = 3;
+pub const BUS_UEGARD: ::c_int = 4;
+pub const CLD_EXITED: ::c_int = 10;
+pub const CLD_KILLED: ::c_int = 11;
+pub const CLD_DUMPED: ::c_int = 12;
+pub const CLD_TRAPPED: ::c_int = 13;
+pub const CLD_STOPPED: ::c_int = 14;
+pub const CLD_CONTINUED: ::c_int = 15;
+pub const FPE_INTDIV: ::c_int = 20;
+pub const FPE_INTOVF: ::c_int = 21;
+pub const FPE_FLTDIV: ::c_int = 22;
+pub const FPE_FLTOVF: ::c_int = 23;
+pub const FPE_FLTUND: ::c_int = 24;
+pub const FPE_FLTRES: ::c_int = 25;
+pub const FPE_FLTINV: ::c_int = 26;
+pub const FPE_FLTSUB: ::c_int = 27;
+pub const ILL_ILLOPC: ::c_int = 30;
+pub const ILL_ILLOPN: ::c_int = 31;
+pub const ILL_ILLADR: ::c_int = 32;
+pub const ILL_ILLTRP: ::c_int = 33;
+pub const ILL_PRVOPC: ::c_int = 34;
+pub const ILL_PRVREG: ::c_int = 35;
+pub const ILL_COPROC: ::c_int = 36;
+pub const ILL_BADSTK: ::c_int = 37;
+pub const ILL_TMBADTHING: ::c_int = 38;
+pub const POLL_IN: ::c_int = 40;
+pub const POLL_OUT: ::c_int = 41;
+pub const POLL_MSG: ::c_int = -3;
+pub const POLL_ERR: ::c_int = 43;
+pub const POLL_PRI: ::c_int = 44;
+pub const POLL_HUP: ::c_int = 45;
+pub const SEGV_MAPERR: ::c_int = 50;
+pub const SEGV_ACCERR: ::c_int = 51;
+pub const SEGV_KEYERR: ::c_int = 52;
+pub const TRAP_BRKPT: ::c_int = 60;
+pub const TRAP_TRACE: ::c_int = 61;
+pub const SI_QUEUE: ::c_int = 71;
+pub const SI_TIMER: ::c_int = 72;
+pub const SI_ASYNCIO: ::c_int = 73;
+pub const SI_MESGQ: ::c_int = 74;
+
+// sys/socket.h
+pub const AF_UNSPEC: ::c_int = 0;
+pub const AF_UNIX: ::c_int = 1;
+pub const AF_INET: ::c_int = 2;
+pub const AF_IMPLINK: ::c_int = 3;
+pub const AF_PUP: ::c_int = 4;
+pub const AF_CHAOS: ::c_int = 5;
+pub const AF_NS: ::c_int = 6;
+pub const AF_ECMA: ::c_int = 8;
+pub const AF_DATAKIT: ::c_int = 9;
+pub const AF_CCITT: ::c_int = 10;
+pub const AF_SNA: ::c_int = 11;
+pub const AF_DECnet: ::c_int = 12;
+pub const AF_DLI: ::c_int = 13;
+pub const AF_LAT: ::c_int = 14;
+pub const AF_HYLINK: ::c_int = 15;
+pub const AF_APPLETALK: ::c_int = 16;
+pub const AF_ISO: ::c_int = 7;
+pub const AF_OSI: ::c_int = AF_ISO;
+pub const AF_ROUTE: ::c_int = 17;
+pub const AF_LINK: ::c_int = 18;
+pub const AF_INET6: ::c_int = 24;
+pub const AF_INTF: ::c_int = 20;
+pub const AF_RIF: ::c_int = 21;
+pub const AF_NDD: ::c_int = 23;
+pub const AF_MAX: ::c_int = 30;
+pub const PF_UNSPEC: ::c_int = AF_UNSPEC;
+pub const PF_UNIX: ::c_int = AF_UNIX;
+pub const PF_INET: ::c_int = AF_INET;
+pub const PF_IMPLINK: ::c_int = AF_IMPLINK;
+pub const PF_PUP: ::c_int = AF_PUP;
+pub const PF_CHAOS: ::c_int = AF_CHAOS;
+pub const PF_NS: ::c_int = AF_NS;
+pub const PF_ISO: ::c_int = AF_ISO;
+pub const PF_OSI: ::c_int = AF_ISO;
+pub const PF_ECMA: ::c_int = AF_ECMA;
+pub const PF_DATAKIT: ::c_int = AF_DATAKIT;
+pub const PF_CCITT: ::c_int = AF_CCITT;
+pub const PF_SNA: ::c_int = AF_SNA;
+pub const PF_DECnet: ::c_int = AF_DECnet;
+pub const PF_DLI: ::c_int = AF_DLI;
+pub const PF_LAT: ::c_int = AF_LAT;
+pub const PF_HYLINK: ::c_int = AF_HYLINK;
+pub const PF_APPLETALK: ::c_int = AF_APPLETALK;
+pub const PF_ROUTE: ::c_int = AF_ROUTE;
+pub const PF_LINK: ::c_int = AF_LINK;
+pub const PF_XTP: ::c_int = 19;
+pub const PF_RIF: ::c_int = AF_RIF;
+pub const PF_INTF: ::c_int = AF_INTF;
+pub const PF_NDD: ::c_int = AF_NDD;
+pub const PF_INET6: ::c_int = AF_INET6;
+pub const PF_MAX: ::c_int = AF_MAX;
+pub const SF_CLOSE: ::c_int = 1;
+pub const SF_REUSE: ::c_int = 2;
+pub const SF_DONT_CACHE: ::c_int = 4;
+pub const SF_SYNC_CACHE: ::c_int = 8;
+pub const SOCK_DGRAM: ::c_int = 2;
+pub const SOCK_STREAM: ::c_int = 1;
+pub const SOCK_RAW: ::c_int = 3;
+pub const SOCK_RDM: ::c_int = 4;
+pub const SOCK_SEQPACKET: ::c_int = 5;
+pub const SOL_SOCKET: ::c_int = 0xffff;
+pub const SO_DEBUG: ::c_int = 0x0001;
+pub const SO_ACCEPTCONN: ::c_int = 0x0002;
+pub const SO_REUSEADDR: ::c_int = 0x0004;
+pub const SO_KEEPALIVE: ::c_int = 0x0008;
+pub const SO_DONTROUTE: ::c_int = 0x0010;
+pub const SO_BROADCAST: ::c_int = 0x0020;
+pub const SO_USELOOPBACK: ::c_int = 0x0040;
+pub const SO_LINGER: ::c_int = 0x0080;
+pub const SO_OOBINLINE: ::c_int = 0x0100;
+pub const SO_REUSEPORT: ::c_int = 0x0200;
+pub const SO_USE_IFBUFS: ::c_int = 0x0400;
+pub const SO_CKSUMRECV: ::c_int = 0x0800;
+pub const SO_NOREUSEADDR: ::c_int = 0x1000;
+pub const SO_KERNACCEPT: ::c_int = 0x2000;
+pub const SO_NOMULTIPATH: ::c_int = 0x4000;
+pub const SO_AUDIT: ::c_int = 0x8000;
+pub const SO_SNDBUF: ::c_int = 0x1001;
+pub const SO_RCVBUF: ::c_int = 0x1002;
+pub const SO_SNDLOWAT: ::c_int = 0x1003;
+pub const SO_RCVLOWAT: ::c_int = 0x1004;
+pub const SO_SNDTIMEO: ::c_int = 0x1005;
+pub const SO_RCVTIMEO: ::c_int = 0x1006;
+pub const SO_ERROR: ::c_int = 0x1007;
+pub const SO_TYPE: ::c_int = 0x1008;
+pub const SCM_RIGHTS: ::c_int = 0x01;
+pub const MSG_OOB: ::c_int = 0x1;
+pub const MSG_PEEK: ::c_int = 0x2;
+pub const MSG_DONTROUTE: ::c_int = 0x4;
+pub const MSG_EOR: ::c_int = 0x8;
+pub const MSG_TRUNC: ::c_int = 0x10;
+pub const MSG_CTRUNC: ::c_int = 0x20;
+pub const MSG_WAITALL: ::c_int = 0x40;
+pub const MSG_MPEG2: ::c_int = 0x80;
+pub const MSG_NOSIGNAL: ::c_int = 0x100;
+pub const MSG_WAITFORONE: ::c_int = 0x200;
+pub const MSG_ARGEXT: ::c_int = 0x400;
+pub const MSG_NONBLOCK: ::c_int = 0x4000;
+pub const MSG_COMPAT: ::c_int = 0x8000;
+pub const MSG_MAXIOVLEN: ::c_int = 16;
+pub const SHUT_RD: ::c_int = 0;
+pub const SHUT_WR: ::c_int = 1;
+pub const SHUT_RDWR: ::c_int = 2;
+
+// sys/stat.h
+pub const UTIME_NOW: ::c_int = -2;
+pub const UTIME_OMIT: ::c_int = -3;
+
+// sys/statvfs.h
+pub const ST_RDONLY: ::c_ulong = 0x0001;
+pub const ST_NOSUID: ::c_ulong = 0x0040;
+pub const ST_NODEV: ::c_ulong = 0x0080;
+
+// sys/stropts.h
+pub const I_NREAD: ::c_int = 0x20005301;
+pub const I_PUSH: ::c_int = 0x20005302;
+pub const I_POP: ::c_int = 0x20005303;
+pub const I_LOOK: ::c_int = 0x20005304;
+pub const I_FLUSH: ::c_int = 0x20005305;
+pub const I_SRDOPT: ::c_int = 0x20005306;
+pub const I_GRDOPT: ::c_int = 0x20005307;
+pub const I_STR: ::c_int = 0x20005308;
+pub const I_SETSIG: ::c_int = 0x20005309;
+pub const I_GETSIG: ::c_int = 0x2000530a;
+pub const I_FIND: ::c_int = 0x2000530b;
+pub const I_LINK: ::c_int = 0x2000530c;
+pub const I_UNLINK: ::c_int = 0x2000530d;
+pub const I_PEEK: ::c_int = 0x2000530f;
+pub const I_FDINSERT: ::c_int = 0x20005310;
+pub const I_SENDFD: ::c_int = 0x20005311;
+pub const I_RECVFD: ::c_int = 0x20005312;
+pub const I_SWROPT: ::c_int = 0x20005314;
+pub const I_GWROPT: ::c_int = 0x20005315;
+pub const I_LIST: ::c_int = 0x20005316;
+pub const I_PLINK: ::c_int = 0x2000531d;
+pub const I_PUNLINK: ::c_int = 0x2000531e;
+pub const I_FLUSHBAND: ::c_int = 0x20005313;
+pub const I_CKBAND: ::c_int = 0x20005318;
+pub const I_GETBAND: ::c_int = 0x20005319;
+pub const I_ATMARK: ::c_int = 0x20005317;
+pub const I_SETCLTIME: ::c_int = 0x2000531b;
+pub const I_GETCLTIME: ::c_int = 0x2000531c;
+pub const I_CANPUT: ::c_int = 0x2000531a;
+
+// sys/syslog.h
+pub const LOG_CRON: ::c_int = 9 << 3;
+pub const LOG_AUTHPRIV: ::c_int = 10 << 3;
+pub const LOG_NFACILITIES: ::c_int = 24;
+pub const LOG_PERROR: ::c_int = 0x20;
+
+// sys/systemcfg.h
+pub const SC_ARCH: ::c_int = 1;
+pub const SC_IMPL: ::c_int = 2;
+pub const SC_VERS: ::c_int = 3;
+pub const SC_WIDTH: ::c_int = 4;
+pub const SC_NCPUS: ::c_int = 5;
+pub const SC_L1C_ATTR: ::c_int = 6;
+pub const SC_L1C_ISZ: ::c_int = 7;
+pub const SC_L1C_DSZ: ::c_int = 8;
+pub const SC_L1C_ICA: ::c_int = 9;
+pub const SC_L1C_DCA: ::c_int = 10;
+pub const SC_L1C_IBS: ::c_int = 11;
+pub const SC_L1C_DBS: ::c_int = 12;
+pub const SC_L1C_ILS: ::c_int = 13;
+pub const SC_L1C_DLS: ::c_int = 14;
+pub const SC_L2C_SZ: ::c_int = 15;
+pub const SC_L2C_AS: ::c_int = 16;
+pub const SC_TLB_ATTR: ::c_int = 17;
+pub const SC_ITLB_SZ: ::c_int = 18;
+pub const SC_DTLB_SZ: ::c_int = 19;
+pub const SC_ITLB_ATT: ::c_int = 20;
+pub const SC_DTLB_ATT: ::c_int = 21;
+pub const SC_RESRV_SZ: ::c_int = 22;
+pub const SC_PRI_LC: ::c_int = 23;
+pub const SC_PRO_LC: ::c_int = 24;
+pub const SC_RTC_TYPE: ::c_int = 25;
+pub const SC_VIRT_AL: ::c_int = 26;
+pub const SC_CAC_CONG: ::c_int = 27;
+pub const SC_MOD_ARCH: ::c_int = 28;
+pub const SC_MOD_IMPL: ::c_int = 29;
+pub const SC_XINT: ::c_int = 30;
+pub const SC_XFRAC: ::c_int = 31;
+pub const SC_KRN_ATTR: ::c_int = 32;
+pub const SC_PHYSMEM: ::c_int = 33;
+pub const SC_SLB_ATTR: ::c_int = 34;
+pub const SC_SLB_SZ: ::c_int = 35;
+pub const SC_MAX_NCPUS: ::c_int = 37;
+pub const SC_MAX_REALADDR: ::c_int = 38;
+pub const SC_ORIG_ENT_CAP: ::c_int = 39;
+pub const SC_ENT_CAP: ::c_int = 40;
+pub const SC_DISP_WHE: ::c_int = 41;
+pub const SC_CAPINC: ::c_int = 42;
+pub const SC_VCAPW: ::c_int = 43;
+pub const SC_SPLP_STAT: ::c_int = 44;
+pub const SC_SMT_STAT: ::c_int = 45;
+pub const SC_SMT_TC: ::c_int = 46;
+pub const SC_VMX_VER: ::c_int = 47;
+pub const SC_LMB_SZ: ::c_int = 48;
+pub const SC_MAX_XCPU: ::c_int = 49;
+pub const SC_EC_LVL: ::c_int = 50;
+pub const SC_AME_STAT: ::c_int = 51;
+pub const SC_ECO_STAT: ::c_int = 52;
+pub const SC_DFP_VER: ::c_int = 53;
+pub const SC_VRM_STAT: ::c_int = 54;
+pub const SC_PHYS_IMP: ::c_int = 55;
+pub const SC_PHYS_VER: ::c_int = 56;
+pub const SC_SPCM_STATUS: ::c_int = 57;
+pub const SC_SPCM_MAX: ::c_int = 58;
+pub const SC_TM_VER: ::c_int = 59;
+pub const SC_NX_CAP: ::c_int = 60;
+pub const SC_PKS_STATE: ::c_int = 61;
+pub const SC_MMA_VER: ::c_int = 62;
+pub const POWER_RS: ::c_int = 1;
+pub const POWER_PC: ::c_int = 2;
+pub const IA64: ::c_int = 3;
+pub const POWER_RS1: ::c_int = 0x1;
+pub const POWER_RSC: ::c_int = 0x2;
+pub const POWER_RS2: ::c_int = 0x4;
+pub const POWER_601: ::c_int = 0x8;
+pub const POWER_604: ::c_int = 0x10;
+pub const POWER_603: ::c_int = 0x20;
+pub const POWER_620: ::c_int = 0x40;
+pub const POWER_630: ::c_int = 0x80;
+pub const POWER_A35: ::c_int = 0x100;
+pub const POWER_RS64II: ::c_int = 0x200;
+pub const POWER_RS64III: ::c_int = 0x400;
+pub const POWER_4: ::c_int = 0x800;
+pub const POWER_RS64IV: ::c_int = POWER_4;
+pub const POWER_MPC7450: ::c_int = 0x1000;
+pub const POWER_5: ::c_int = 0x2000;
+pub const POWER_6: ::c_int = 0x4000;
+pub const POWER_7: ::c_int = 0x8000;
+pub const POWER_8: ::c_int = 0x10000;
+pub const POWER_9: ::c_int = 0x20000;
+
+// sys/time.h
+pub const FD_SETSIZE: usize = 65534;
+pub const TIMEOFDAY: ::c_int = 9;
+pub const CLOCK_REALTIME: ::clockid_t = TIMEOFDAY as clockid_t;
+pub const CLOCK_MONOTONIC: ::clockid_t = 10;
+pub const TIMER_ABSTIME: ::c_int = 999;
+pub const ITIMER_REAL: ::c_int = 0;
+pub const ITIMER_VIRTUAL: ::c_int = 1;
+pub const ITIMER_PROF: ::c_int = 2;
+pub const ITIMER_VIRT: ::c_int = 3;
+pub const ITIMER_REAL1: ::c_int = 20;
+pub const ITIMER_REAL_TH: ::c_int = ITIMER_REAL1;
+
+// sys/termio.h
+pub const TCGETA: ::c_int = TIOC | 5;
+pub const TCSETA: ::c_int = TIOC | 6;
+pub const TCSETAW: ::c_int = TIOC | 7;
+pub const TCSETAF: ::c_int = TIOC | 8;
+pub const TCSBRK: ::c_int = TIOC | 9;
+pub const TCXONC: ::c_int = TIOC | 11;
+pub const TCFLSH: ::c_int = TIOC | 12;
+pub const TCGETS: ::c_int = TIOC | 1;
+pub const TCSETS: ::c_int = TIOC | 2;
+pub const TCSANOW: ::c_int = 0;
+pub const TCSETSW: ::c_int = TIOC | 3;
+pub const TCSADRAIN: ::c_int = 1;
+pub const TCSETSF: ::c_int = TIOC | 4;
+pub const TCSAFLUSH: ::c_int = 2;
+pub const TCIFLUSH: ::c_int = 0;
+pub const TCOFLUSH: ::c_int = 1;
+pub const TCIOFLUSH: ::c_int = 2;
+pub const TCOOFF: ::c_int = 0;
+pub const TCOON: ::c_int = 1;
+pub const TCIOFF: ::c_int = 2;
+pub const TCION: ::c_int = 3;
+pub const TIOC: ::c_int = 0x5400;
+pub const TIOCGWINSZ: ::c_int = 0x40087468;
+pub const TIOCSWINSZ: ::c_int = 0x80087467;
+pub const TIOCLBIS: ::c_int = 0x8004747f;
+pub const TIOCLBIC: ::c_int = 0x8004747e;
+pub const TIOCLSET: ::c_int = 0x8004747d;
+pub const TIOCLGET: ::c_int = 0x4004747c;
+pub const TIOCSBRK: ::c_int = 0x2000747b;
+pub const TIOCCBRK: ::c_int = 0x2000747a;
+pub const TIOCSDTR: ::c_int = 0x20007479;
+pub const TIOCCDTR: ::c_int = 0x20007478;
+pub const TIOCSLTC: ::c_int = 0x80067475;
+pub const TIOCGLTC: ::c_int = 0x40067474;
+pub const TIOCOUTQ: ::c_int = 0x40047473;
+pub const TIOCNOTTY: ::c_int = 0x20007471;
+pub const TIOCSTOP: ::c_int = 0x2000746f;
+pub const TIOCSTART: ::c_int = 0x2000746e;
+pub const TIOCGPGRP: ::c_int = 0x40047477;
+pub const TIOCSPGRP: ::c_int = 0x80047476;
+pub const TIOCGSID: ::c_int = 0x40047448;
+pub const TIOCSTI: ::c_int = 0x80017472;
+pub const TIOCMSET: ::c_int = 0x8004746d;
+pub const TIOCMBIS: ::c_int = 0x8004746c;
+pub const TIOCMBIC: ::c_int = 0x8004746b;
+pub const TIOCMGET: ::c_int = 0x4004746a;
+pub const TIOCREMOTE: ::c_int = 0x80047469;
+
+// sys/wait.h
+pub const P_ALL: ::c_int = 0;
+pub const P_PID: ::c_int = 1;
+pub const P_PGID: ::c_int = 2;
+pub const WNOHANG: ::c_int = 0x1;
+pub const WUNTRACED: ::c_int = 0x2;
+pub const WEXITED: ::c_int = 0x04;
+pub const WCONTINUED: ::c_int = 0x01000000;
+pub const WNOWAIT: ::c_int = 0x10;
+pub const _W_STOPPED: ::c_int = 0x00000040;
+pub const _W_SLWTED: ::c_int = 0x0000007c;
+pub const _W_SEWTED: ::c_int = 0x0000007d;
+pub const _W_SFWTED: ::c_int = 0x0000007e;
+pub const _W_STRC: ::c_int = 0x0000007f;
+
+// termios.h
+pub const NCCS: usize = 16;
+pub const CSIZE: ::tcflag_t = 0x00000030;
+pub const CS5: ::tcflag_t = 0x00000000;
+pub const CS6: ::tcflag_t = 0x00000010;
+pub const CS7: ::tcflag_t = 0x00000020;
+pub const CS8: ::tcflag_t = 0x00000030;
+pub const CSTOPB: ::tcflag_t = 0x00000040;
+pub const ECHO: ::tcflag_t = 0x20000;
+pub const ECHOE: ::tcflag_t = 0x00000010;
+pub const ECHOK: ::tcflag_t = 0x00000020;
+pub const ECHONL: ::tcflag_t = 0x00000040;
+pub const ECHOCTL: ::tcflag_t = 0x00020000;
+pub const ECHOPRT: ::tcflag_t = 0x00040000;
+pub const ECHOKE: ::tcflag_t = 0x00080000;
+pub const IGNBRK: ::tcflag_t = 0x00000001;
+pub const BRKINT: ::tcflag_t = 0x00000002;
+pub const IGNPAR: ::tcflag_t = 0x00000004;
+pub const PARMRK: ::tcflag_t = 0x00000008;
+pub const INPCK: ::tcflag_t = 0x00000010;
+pub const ISTRIP: ::tcflag_t = 0x00000020;
+pub const INLCR: ::tcflag_t = 0x00000040;
+pub const IGNCR: ::tcflag_t = 0x00000080;
+pub const ICRNL: ::tcflag_t = 0x00000100;
+pub const IXON: ::tcflag_t = 0x0001;
+pub const IXOFF: ::tcflag_t = 0x00000400;
+pub const IXANY: ::tcflag_t = 0x00001000;
+pub const IMAXBEL: ::tcflag_t = 0x00010000;
+pub const OPOST: ::tcflag_t = 0x00000001;
+pub const ONLCR: ::tcflag_t = 0x00000004;
+pub const OCRNL: ::tcflag_t = 0x00000008;
+pub const ONOCR: ::tcflag_t = 0x00000010;
+pub const ONLRET: ::tcflag_t = 0x00000020;
+pub const CREAD: ::tcflag_t = 0x00000080;
+pub const IEXTEN: ::tcflag_t = 0x00200000;
+pub const TOSTOP: ::tcflag_t = 0x00010000;
+pub const FLUSHO: ::tcflag_t = 0x00100000;
+pub const PENDIN: ::tcflag_t = 0x20000000;
+pub const NOFLSH: ::tcflag_t = 0x00000080;
+pub const VINTR: usize = 0;
+pub const VQUIT: usize = 1;
+pub const VERASE: usize = 2;
+pub const VKILL: usize = 3;
+pub const VEOF: usize = 4;
+pub const VEOL: usize = 5;
+pub const VSTART: usize = 7;
+pub const VSTOP: usize = 8;
+pub const VSUSP: usize = 9;
+pub const VMIN: usize = 4;
+pub const VTIME: usize = 5;
+pub const VEOL2: usize = 6;
+pub const VDSUSP: usize = 10;
+pub const VREPRINT: usize = 11;
+pub const VDISCRD: usize = 12;
+pub const VWERSE: usize = 13;
+pub const VLNEXT: usize = 14;
+pub const B0: ::speed_t = 0x0;
+pub const B50: ::speed_t = 0x1;
+pub const B75: ::speed_t = 0x2;
+pub const B110: ::speed_t = 0x3;
+pub const B134: ::speed_t = 0x4;
+pub const B150: ::speed_t = 0x5;
+pub const B200: ::speed_t = 0x6;
+pub const B300: ::speed_t = 0x7;
+pub const B600: ::speed_t = 0x8;
+pub const B1200: ::speed_t = 0x9;
+pub const B1800: ::speed_t = 0xa;
+pub const B2400: ::speed_t = 0xb;
+pub const B4800: ::speed_t = 0xc;
+pub const B9600: ::speed_t = 0xd;
+pub const B19200: ::speed_t = 0xe;
+pub const B38400: ::speed_t = 0xf;
+pub const EXTA: ::speed_t = B19200;
+pub const EXTB: ::speed_t = B38400;
+pub const IUCLC: ::tcflag_t = 0x00000800;
+pub const OFILL: ::tcflag_t = 0x00000040;
+pub const OFDEL: ::tcflag_t = 0x00000080;
+pub const CRDLY: ::tcflag_t = 0x00000300;
+pub const CR0: ::tcflag_t = 0x00000000;
+pub const CR1: ::tcflag_t = 0x00000100;
+pub const CR2: ::tcflag_t = 0x00000200;
+pub const CR3: ::tcflag_t = 0x00000300;
+pub const TABDLY: ::tcflag_t = 0x00000c00;
+pub const TAB0: ::tcflag_t = 0x00000000;
+pub const TAB1: ::tcflag_t = 0x00000400;
+pub const TAB2: ::tcflag_t = 0x00000800;
+pub const TAB3: ::tcflag_t = 0x00000c00;
+pub const BSDLY: ::tcflag_t = 0x00001000;
+pub const BS0: ::tcflag_t = 0x00000000;
+pub const BS1: ::tcflag_t = 0x00001000;
+pub const FFDLY: ::tcflag_t = 0x00002000;
+pub const FF0: ::tcflag_t = 0x00000000;
+pub const FF1: ::tcflag_t = 0x00002000;
+pub const NLDLY: ::tcflag_t = 0x00004000;
+pub const NL0: ::tcflag_t = 0x00000000;
+pub const NL1: ::tcflag_t = 0x00004000;
+pub const VTDLY: ::tcflag_t = 0x00008000;
+pub const VT0: ::tcflag_t = 0x00000000;
+pub const VT1: ::tcflag_t = 0x00008000;
+pub const OXTABS: ::tcflag_t = 0x00040000;
+pub const ONOEOT: ::tcflag_t = 0x00080000;
+pub const CBAUD: ::tcflag_t = 0x0000000f;
+pub const PARENB: ::tcflag_t = 0x00000100;
+pub const PARODD: ::tcflag_t = 0x00000200;
+pub const HUPCL: ::tcflag_t = 0x00000400;
+pub const CLOCAL: ::tcflag_t = 0x00000800;
+pub const CIBAUD: ::tcflag_t = 0x000f0000;
+pub const IBSHIFT: ::tcflag_t = 16;
+pub const PAREXT: ::tcflag_t = 0x00100000;
+pub const ISIG: ::tcflag_t = 0x00000001;
+pub const ICANON: ::tcflag_t = 0x00000002;
+pub const XCASE: ::tcflag_t = 0x00000004;
+pub const ALTWERASE: ::tcflag_t = 0x00400000;
+
+// time.h
+pub const CLOCK_PROCESS_CPUTIME_ID: ::clockid_t = 11;
+pub const CLOCK_THREAD_CPUTIME_ID: ::clockid_t = 12;
+
+// unistd.h
+pub const STDIN_FILENO: ::c_int = 0;
+pub const STDOUT_FILENO: ::c_int = 1;
+pub const STDERR_FILENO: ::c_int = 2;
+pub const _POSIX_VDISABLE: ::c_int = 0xff;
+pub const _PC_LINK_MAX: ::c_int = 11;
+pub const _PC_MAX_CANON: ::c_int = 12;
+pub const _PC_MAX_INPUT: ::c_int = 13;
+pub const _PC_NAME_MAX: ::c_int = 14;
+pub const _PC_PATH_MAX: ::c_int = 16;
+pub const _PC_PIPE_BUF: ::c_int = 17;
+pub const _PC_NO_TRUNC: ::c_int = 15;
+pub const _PC_VDISABLE: ::c_int = 18;
+pub const _PC_CHOWN_RESTRICTED: ::c_int = 10;
+pub const _PC_ASYNC_IO: ::c_int = 19;
+pub const _PC_PRIO_IO: ::c_int = 21;
+pub const _PC_SYNC_IO: ::c_int = 20;
+pub const _PC_ALLOC_SIZE_MIN: ::c_int = 26;
+pub const _PC_REC_INCR_XFER_SIZE: ::c_int = 27;
+pub const _PC_REC_MAX_XFER_SIZE: ::c_int = 28;
+pub const _PC_REC_MIN_XFER_SIZE: ::c_int = 29;
+pub const _PC_REC_XFER_ALIGN: ::c_int = 30;
+pub const _PC_SYMLINK_MAX: ::c_int = 25;
+pub const _PC_2_SYMLINKS: ::c_int = 31;
+pub const _PC_TIMESTAMP_RESOLUTION: ::c_int = 32;
+pub const _PC_FILESIZEBITS: ::c_int = 22;
+pub const _SC_ARG_MAX: ::c_int = 0;
+pub const _SC_CHILD_MAX: ::c_int = 1;
+pub const _SC_CLK_TCK: ::c_int = 2;
+pub const _SC_NGROUPS_MAX: ::c_int = 3;
+pub const _SC_OPEN_MAX: ::c_int = 4;
+pub const _SC_JOB_CONTROL: ::c_int = 7;
+pub const _SC_SAVED_IDS: ::c_int = 8;
+pub const _SC_VERSION: ::c_int = 9;
+pub const _SC_PASS_MAX: ::c_int = 45;
+pub const _SC_PAGESIZE: ::c_int = _SC_PAGE_SIZE;
+pub const _SC_PAGE_SIZE: ::c_int = 48;
+pub const _SC_XOPEN_VERSION: ::c_int = 46;
+pub const _SC_NPROCESSORS_CONF: ::c_int = 71;
+pub const _SC_NPROCESSORS_ONLN: ::c_int = 72;
+pub const _SC_STREAM_MAX: ::c_int = 5;
+pub const _SC_TZNAME_MAX: ::c_int = 6;
+pub const _SC_AIO_LISTIO_MAX: ::c_int = 75;
+pub const _SC_AIO_MAX: ::c_int = 76;
+pub const _SC_AIO_PRIO_DELTA_MAX: ::c_int = 77;
+pub const _SC_ASYNCHRONOUS_IO: ::c_int = 78;
+pub const _SC_DELAYTIMER_MAX: ::c_int = 79;
+pub const _SC_FSYNC: ::c_int = 80;
+pub const _SC_MAPPED_FILES: ::c_int = 84;
+pub const _SC_MEMLOCK: ::c_int = 85;
+pub const _SC_MEMLOCK_RANGE: ::c_int = 86;
+pub const _SC_MEMORY_PROTECTION: ::c_int = 87;
+pub const _SC_MESSAGE_PASSING: ::c_int = 88;
+pub const _SC_MQ_OPEN_MAX: ::c_int = 89;
+pub const _SC_MQ_PRIO_MAX: ::c_int = 90;
+pub const _SC_PRIORITIZED_IO: ::c_int = 91;
+pub const _SC_PRIORITY_SCHEDULING: ::c_int = 92;
+pub const _SC_REALTIME_SIGNALS: ::c_int = 93;
+pub const _SC_RTSIG_MAX: ::c_int = 94;
+pub const _SC_SEMAPHORES: ::c_int = 95;
+pub const _SC_SEM_NSEMS_MAX: ::c_int = 96;
+pub const _SC_SEM_VALUE_MAX: ::c_int = 97;
+pub const _SC_SHARED_MEMORY_OBJECTS: ::c_int = 98;
+pub const _SC_SIGQUEUE_MAX: ::c_int = 99;
+pub const _SC_SYNCHRONIZED_IO: ::c_int = 100;
+pub const _SC_TIMERS: ::c_int = 102;
+pub const _SC_TIMER_MAX: ::c_int = 103;
+pub const _SC_2_C_BIND: ::c_int = 51;
+pub const _SC_2_C_DEV: ::c_int = 32;
+pub const _SC_2_C_VERSION: ::c_int = 52;
+pub const _SC_2_FORT_DEV: ::c_int = 33;
+pub const _SC_2_FORT_RUN: ::c_int = 34;
+pub const _SC_2_LOCALEDEF: ::c_int = 35;
+pub const _SC_2_SW_DEV: ::c_int = 36;
+pub const _SC_2_UPE: ::c_int = 53;
+pub const _SC_2_VERSION: ::c_int = 31;
+pub const _SC_BC_BASE_MAX: ::c_int = 23;
+pub const _SC_BC_DIM_MAX: ::c_int = 24;
+pub const _SC_BC_SCALE_MAX: ::c_int = 25;
+pub const _SC_BC_STRING_MAX: ::c_int = 26;
+pub const _SC_COLL_WEIGHTS_MAX: ::c_int = 50;
+pub const _SC_EXPR_NEST_MAX: ::c_int = 28;
+pub const _SC_LINE_MAX: ::c_int = 29;
+pub const _SC_RE_DUP_MAX: ::c_int = 30;
+pub const _SC_XOPEN_CRYPT: ::c_int = 56;
+pub const _SC_XOPEN_ENH_I18N: ::c_int = 57;
+pub const _SC_XOPEN_SHM: ::c_int = 55;
+pub const _SC_2_CHAR_TERM: ::c_int = 54;
+pub const _SC_XOPEN_XCU_VERSION: ::c_int = 109;
+pub const _SC_ATEXIT_MAX: ::c_int = 47;
+pub const _SC_IOV_MAX: ::c_int = 58;
+pub const _SC_XOPEN_UNIX: ::c_int = 73;
+pub const _SC_T_IOV_MAX: ::c_int = 0;
+pub const _SC_PHYS_PAGES: ::c_int = 113;
+pub const _SC_AVPHYS_PAGES: ::c_int = 114;
+pub const _SC_THREAD_DESTRUCTOR_ITERATIONS: ::c_int = 101;
+pub const _SC_GETGR_R_SIZE_MAX: ::c_int = 81;
+pub const _SC_GETPW_R_SIZE_MAX: ::c_int = 82;
+pub const _SC_LOGIN_NAME_MAX: ::c_int = 83;
+pub const _SC_THREAD_KEYS_MAX: ::c_int = 68;
+pub const _SC_THREAD_STACK_MIN: ::c_int = 69;
+pub const _SC_THREAD_THREADS_MAX: ::c_int = 70;
+pub const _SC_TTY_NAME_MAX: ::c_int = 104;
+pub const _SC_THREADS: ::c_int = 60;
+pub const _SC_THREAD_ATTR_STACKADDR: ::c_int = 61;
+pub const _SC_THREAD_ATTR_STACKSIZE: ::c_int = 62;
+pub const _SC_THREAD_PRIORITY_SCHEDULING: ::c_int = 64;
+pub const _SC_THREAD_PRIO_INHERIT: ::c_int = 65;
+pub const _SC_THREAD_PRIO_PROTECT: ::c_int = 66;
+pub const _SC_THREAD_PROCESS_SHARED: ::c_int = 67;
+pub const _SC_THREAD_SAFE_FUNCTIONS: ::c_int = 59;
+pub const _SC_XOPEN_LEGACY: ::c_int = 112;
+pub const _SC_XOPEN_REALTIME: ::c_int = 110;
+pub const _SC_XOPEN_REALTIME_THREADS: ::c_int = 111;
+pub const _SC_XBS5_ILP32_OFF32: ::c_int = 105;
+pub const _SC_XBS5_ILP32_OFFBIG: ::c_int = 106;
+pub const _SC_XBS5_LP64_OFF64: ::c_int = 107;
+pub const _SC_XBS5_LPBIG_OFFBIG: ::c_int = 108;
+pub const _SC_2_PBS: ::c_int = 132;
+pub const _SC_2_PBS_ACCOUNTING: ::c_int = 133;
+pub const _SC_2_PBS_CHECKPOINT: ::c_int = 134;
+pub const _SC_2_PBS_LOCATE: ::c_int = 135;
+pub const _SC_2_PBS_MESSAGE: ::c_int = 136;
+pub const _SC_2_PBS_TRACK: ::c_int = 137;
+pub const _SC_ADVISORY_INFO: ::c_int = 130;
+pub const _SC_BARRIERS: ::c_int = 138;
+pub const _SC_CLOCK_SELECTION: ::c_int = 139;
+pub const _SC_CPUTIME: ::c_int = 140;
+pub const _SC_HOST_NAME_MAX: ::c_int = 126;
+pub const _SC_MONOTONIC_CLOCK: ::c_int = 141;
+pub const _SC_READER_WRITER_LOCKS: ::c_int = 142;
+pub const _SC_REGEXP: ::c_int = 127;
+pub const _SC_SHELL: ::c_int = 128;
+pub const _SC_SPAWN: ::c_int = 143;
+pub const _SC_SPIN_LOCKS: ::c_int = 144;
+pub const _SC_SPORADIC_SERVER: ::c_int = 145;
+pub const _SC_SS_REPL_MAX: ::c_int = 156;
+pub const _SC_SYMLOOP_MAX: ::c_int = 129;
+pub const _SC_THREAD_CPUTIME: ::c_int = 146;
+pub const _SC_THREAD_SPORADIC_SERVER: ::c_int = 147;
+pub const _SC_TIMEOUTS: ::c_int = 148;
+pub const _SC_TRACE: ::c_int = 149;
+pub const _SC_TRACE_EVENT_FILTER: ::c_int = 150;
+pub const _SC_TRACE_EVENT_NAME_MAX: ::c_int = 157;
+pub const _SC_TRACE_INHERIT: ::c_int = 151;
+pub const _SC_TRACE_LOG: ::c_int = 152;
+pub const _SC_TRACE_NAME_MAX: ::c_int = 158;
+pub const _SC_TRACE_SYS_MAX: ::c_int = 159;
+pub const _SC_TRACE_USER_EVENT_MAX: ::c_int = 160;
+pub const _SC_TYPED_MEMORY_OBJECTS: ::c_int = 153;
+pub const _SC_V6_ILP32_OFF32: ::c_int = 121;
+pub const _SC_V6_ILP32_OFFBIG: ::c_int = 122;
+pub const _SC_V6_LP64_OFF64: ::c_int = 123;
+pub const _SC_V6_LPBIG_OFFBIG: ::c_int = 124;
+pub const _SC_XOPEN_STREAMS: ::c_int = 125;
+pub const _SC_IPV6: ::c_int = 154;
+pub const _SC_RAW_SOCKETS: ::c_int = 155;
+
+// utmp.h
+pub const EMPTY: ::c_short = -1;
+pub const RUN_LVL: ::c_short = 1;
+pub const BOOT_TIME: ::c_short = 2;
+pub const OLD_TIME: ::c_short = 3;
+pub const NEW_TIME: ::c_short = 4;
+pub const INIT_PROCESS: ::c_short = 5;
+pub const LOGIN_PROCESS: ::c_short = 6;
+pub const USER_PROCESS: ::c_short = 7;
+pub const DEAD_PROCESS: ::c_short = 8;
+pub const ACCOUNTING: ::c_short = 9;
+
+f! {
+ pub fn CMSG_FIRSTHDR(mhdr: *const msghdr) -> *mut cmsghdr {
+ if (*mhdr).msg_controllen as usize >= ::mem::size_of::<cmsghdr>() {
+ (*mhdr).msg_control as *mut cmsghdr
+ } else {
+ 0 as *mut cmsghdr
+ }
+ }
+
+ pub fn CMSG_NXTHDR(mhdr: *const msghdr, cmsg: *const cmsghdr) -> *mut cmsghdr {
+ if cmsg.is_null() {
+ CMSG_FIRSTHDR(mhdr)
+ } else {
+ if (cmsg as usize + (*cmsg).cmsg_len as usize + ::mem::size_of::<::cmsghdr>()) >
+ ((*mhdr).msg_control as usize + (*mhdr).msg_controllen as usize) {
+ 0 as *mut ::cmsghdr
+ } else {
+ // AIX does not have any alignment/padding for ancillary data, so we don't need _CMSG_ALIGN here.
+ (cmsg as usize + (*cmsg).cmsg_len as usize) as *mut cmsghdr
+ }
+ }
+ }
+
+ pub fn CMSG_DATA(cmsg: *const ::cmsghdr) -> *mut ::c_uchar {
+ (cmsg as *mut ::c_uchar).offset(::mem::size_of::<::cmsghdr>() as isize)
+ }
+
+ pub fn CMSG_LEN(length: ::c_uint) -> ::c_uint {
+ ::mem::size_of::<::cmsghdr>() as ::c_uint + length
+ }
+
+ pub fn CMSG_SPACE(length: ::c_uint) -> ::c_uint {
+ ::mem::size_of::<::cmsghdr>() as ::c_uint + length
+ }
+
+ pub fn FD_ZERO(set: *mut fd_set) -> () {
+ for slot in (*set).fds_bits.iter_mut() {
+ *slot = 0;
+ }
+ }
+
+ pub fn FD_SET(fd: ::c_int, set: *mut fd_set) -> () {
+ let bits = ::mem::size_of::<::c_long>() * 8;
+ let fd = fd as usize;
+ (*set).fds_bits[fd / bits] |= 1 << (fd % bits);
+ return
+ }
+
+ pub fn FD_CLR(fd: ::c_int, set: *mut fd_set) -> () {
+ let bits = ::mem::size_of::<::c_long>() * 8;
+ let fd = fd as usize;
+ (*set).fds_bits[fd / bits] &= !(1 << (fd % bits));
+ return
+ }
+
+ pub fn FD_ISSET(fd: ::c_int, set: *const fd_set) -> bool {
+ let bits = ::mem::size_of::<::c_long>() * 8;
+ let fd = fd as usize;
+ return ((*set).fds_bits[fd / bits] & (1 << (fd % bits))) != 0
+ }
+
+ pub fn major(dev: ::dev_t) -> ::c_uint {
+ let x = dev >> 16;
+ x as ::c_uint
+ }
+
+ pub fn minor(dev: ::dev_t) -> ::c_uint {
+ let y = dev & 0xFFFF;
+ y as ::c_uint
+ }
+
+ pub fn makedev(major: ::c_uint, minor: ::c_uint) -> ::dev_t {
+ let major = major as ::dev_t;
+ let minor = minor as ::dev_t;
+ let mut dev = 0;
+ dev |= major << 16;
+ dev |= minor;
+ dev
+ }
+}
+
+safe_f! {
+ pub {const} fn WIFSTOPPED(status: ::c_int) -> bool {
+ (status & _W_STOPPED) != 0
+ }
+
+ pub {const} fn WSTOPSIG(status: ::c_int) -> ::c_int {
+ if WIFSTOPPED(status) {
+ (((status as ::c_uint) >> 8) & 0xff) as ::c_int
+ } else {
+ -1
+ }
+ }
+
+ pub {const} fn WIFEXITED(status: ::c_int) -> bool {
+ (status & 0xFF) == 0
+ }
+
+ pub {const} fn WEXITSTATUS(status: ::c_int) -> ::c_int {
+ if WIFEXITED(status) {
+ (((status as ::c_uint) >> 8) & 0xff) as ::c_int
+ } else {
+ -1
+ }
+ }
+
+ pub {const} fn WIFSIGNALED(status: ::c_int) -> bool {
+ !WIFEXITED(status) && !WIFSTOPPED(status)
+ }
+
+ pub {const} fn WTERMSIG(status: ::c_int) -> ::c_int {
+ if WIFSIGNALED(status) {
+ (((status as ::c_uint) >> 16) & 0xff) as ::c_int
+ } else {
+ -1
+ }
+ }
+
+ pub {const} fn WIFCONTINUED(status: ::c_int) -> bool {
+ (status & WCONTINUED) != 0
+ }
+
+ // AIX doesn't have native WCOREDUMP.
+ pub {const} fn WCOREDUMP(_status: ::c_int) -> bool {
+ false
+ }
+}
+
+extern "C" {
+ pub fn acct(filename: *const ::c_char) -> ::c_int;
+ pub fn bind(socket: ::c_int, address: *const ::sockaddr, address_len: ::socklen_t) -> ::c_int;
+ pub fn clock_getres(clk_id: ::clockid_t, tp: *mut ::timespec) -> ::c_int;
+ pub fn clock_gettime(clk_id: ::clockid_t, tp: *mut ::timespec) -> ::c_int;
+ pub fn clock_settime(clock_id: ::clockid_t, tp: *const ::timespec) -> ::c_int;
+ pub fn dirfd(dirp: *mut ::DIR) -> ::c_int;
+ pub fn endgrent();
+ pub fn endpwent();
+ pub fn faccessat(
+ dirfd: ::c_int,
+ pathname: *const ::c_char,
+ mode: ::c_int,
+ flags: ::c_int,
+ ) -> ::c_int;
+ pub fn fdatasync(fd: ::c_int) -> ::c_int;
+ pub fn fgetgrent(file: *mut ::FILE) -> *mut ::group;
+ pub fn fgetpwent(file: *mut ::FILE) -> *mut ::passwd;
+ pub fn fstatfs(fd: ::c_int, buf: *mut statfs) -> ::c_int;
+ pub fn fstatfs64(fd: ::c_int, buf: *mut statfs64) -> ::c_int;
+ pub fn futimens(fd: ::c_int, times: *const ::timespec) -> ::c_int;
+ pub fn getgrent() -> *mut ::group;
+ pub fn getgrgid(gid: ::gid_t) -> *mut ::group;
+ pub fn getgrgid_r(
+ gid: ::gid_t,
+ grp: *mut ::group,
+ buf: *mut ::c_char,
+ buflen: ::size_t,
+ result: *mut *mut ::group,
+ ) -> ::c_int;
+ pub fn getgrnam(name: *const ::c_char) -> *mut ::group;
+ pub fn getgrnam_r(
+ name: *const ::c_char,
+ grp: *mut ::group,
+ buf: *mut ::c_char,
+ buflen: ::size_t,
+ result: *mut *mut ::group,
+ ) -> ::c_int;
+ pub fn getgrset(user: *mut ::c_char) -> *mut ::c_char;
+ pub fn getpeereid(socket: ::c_int, euid: *mut ::uid_t, egid: *mut ::gid_t) -> ::c_int;
+ pub fn getpriority(which: ::c_int, who: ::id_t) -> ::c_int;
+ pub fn getpwent() -> *mut ::passwd;
+ pub fn getpwnam_r(
+ name: *const ::c_char,
+ pwd: *mut passwd,
+ buf: *mut ::c_char,
+ buflen: ::size_t,
+ result: *mut *mut passwd,
+ ) -> ::c_int;
+ pub fn getpwuid_r(
+ uid: ::uid_t,
+ pwd: *mut passwd,
+ buf: *mut ::c_char,
+ buflen: ::size_t,
+ result: *mut *mut passwd,
+ ) -> ::c_int;
+ pub fn getrlimit(resource: ::c_int, rlim: *mut ::rlimit) -> ::c_int;
+ pub fn gettimeofday(tp: *mut ::timeval, tz: *mut ::c_void) -> ::c_int;
+ pub fn initgroups(name: *const ::c_char, basegid: ::gid_t) -> ::c_int;
+ pub fn ioctl(fildes: ::c_int, request: ::c_int, ...) -> ::c_int;
+ pub fn loadquery(flags: ::c_int, buf: *mut ::c_char, buflen: ::c_uint) -> ::c_int;
+ pub fn lpar_get_info(command: ::c_int, buf: *mut ::c_void, bufsize: ::size_t) -> ::c_int;
+ pub fn lpar_set_resources(id: ::c_int, resource: *mut ::c_void) -> ::c_int;
+ pub fn madvise(addr: *mut ::c_void, len: ::size_t, advice: ::c_int) -> ::c_int;
+ pub fn mkfifoat(dirfd: ::c_int, pathname: *const ::c_char, mode: ::mode_t) -> ::c_int;
+ pub fn mknodat(
+ dirfd: ::c_int,
+ pathname: *const ::c_char,
+ mode: ::mode_t,
+ dev: dev_t,
+ ) -> ::c_int;
+ pub fn mprotect(addr: *mut ::c_void, len: ::size_t, prot: ::c_int) -> ::c_int;
+ pub fn msync(addr: *mut ::c_void, len: ::size_t, flags: ::c_int) -> ::c_int;
+ pub fn pollset_create(maxfd: ::c_int) -> pollset_t;
+ pub fn pollset_ctl(
+ ps: pollset_t,
+ pollctl_array: *mut poll_ctl,
+ array_length: ::c_int,
+ ) -> ::c_int;
+ pub fn pollset_destroy(ps: pollset_t) -> ::c_int;
+ pub fn pollset_poll(
+ ps: pollset_t,
+ polldata_array: *mut ::pollfd,
+ array_length: ::c_int,
+ timeout: ::c_int,
+ ) -> ::c_int;
+ pub fn pollset_query(ps: pollset_t, pollfd_query: *mut ::pollfd) -> ::c_int;
+ pub fn posix_fadvise(fd: ::c_int, offset: ::off_t, len: ::off_t, advise: ::c_int) -> ::c_int;
+ pub fn posix_fallocate(fd: ::c_int, offset: ::off_t, len: ::off_t) -> ::c_int;
+ pub fn preadv(fd: ::c_int, iov: *const ::iovec, iovcnt: ::c_int, offset: ::off_t) -> ::ssize_t;
+ pub fn pthread_atfork(
+ prepare: ::Option<unsafe extern "C" fn()>,
+ parent: ::Option<unsafe extern "C" fn()>,
+ child: ::Option<unsafe extern "C" fn()>,
+ ) -> ::c_int;
+ pub fn pthread_condattr_setclock(
+ attr: *mut pthread_condattr_t,
+ clock_id: ::clockid_t,
+ ) -> ::c_int;
+ pub fn pthread_create(
+ native: *mut ::pthread_t,
+ attr: *const ::pthread_attr_t,
+ f: extern "C" fn(*mut ::c_void) -> *mut ::c_void,
+ value: *mut ::c_void,
+ ) -> ::c_int;
+ pub fn pthread_kill(thread: ::pthread_t, signal: ::c_int) -> ::c_int;
+ pub fn pthread_sigmask(how: ::c_int, set: *const sigset_t, oldset: *mut sigset_t) -> ::c_int;
+ pub fn pwritev(fd: ::c_int, iov: *const ::iovec, iovcnt: ::c_int, offset: ::off_t)
+ -> ::ssize_t;
+ #[link_name = "__linux_quotactl"]
+ pub fn quotactl(
+ cmd: ::c_int,
+ special: *const ::c_char,
+ id: ::c_int,
+ data: *mut ::c_char,
+ ) -> ::c_int;
+ pub fn readv(fd: ::c_int, iov: *const ::iovec, iovcnt: ::c_int) -> ::ssize_t;
+ pub fn recvfrom(
+ socket: ::c_int,
+ buf: *mut ::c_void,
+ len: ::size_t,
+ flags: ::c_int,
+ addr: *mut ::sockaddr,
+ addrlen: *mut ::socklen_t,
+ ) -> ::ssize_t;
+ pub fn recvmsg(sockfd: ::c_int, msg: *mut msghdr, flags: ::c_int) -> ::ssize_t;
+ pub fn send_file(socket: *mut ::c_int, iobuf: *mut sf_parms, flags: ::c_uint) -> ::ssize_t;
+ pub fn sendmsg(sockfd: ::c_int, msg: *const msghdr, flags: ::c_int) -> ::ssize_t;
+ pub fn setgroups(ngroups: ::c_int, ptr: *const ::gid_t) -> ::c_int;
+ pub fn setgrent();
+ pub fn sethostname(name: *const ::c_char, len: ::c_int) -> ::c_int;
+ pub fn setpriority(which: ::c_int, who: id_t, priority: ::c_int) -> ::c_int;
+ pub fn setpwent();
+ pub fn setrlimit(resource: ::c_int, rlim: *const ::rlimit) -> ::c_int;
+ pub fn settimeofday(tv: *const ::timeval, tz: *const ::timezone) -> ::c_int;
+ pub fn sigwait(set: *const sigset_t, sig: *mut ::c_int) -> ::c_int;
+ pub fn shm_open(name: *const ::c_char, oflag: ::c_int, mode: ::mode_t) -> ::c_int;
+ pub fn shm_unlink(name: *const ::c_char) -> ::c_int;
+ pub fn statfs(path: *const ::c_char, buf: *mut statfs) -> ::c_int;
+ pub fn statfs64(path: *const ::c_char, buf: *mut statfs64) -> ::c_int;
+ pub fn strerror_r(errnum: ::c_int, buf: *mut c_char, buflen: ::size_t) -> ::c_int;
+ pub fn sync();
+ pub fn uname(buf: *mut ::utsname) -> ::c_int;
+ pub fn utimensat(
+ dirfd: ::c_int,
+ path: *const ::c_char,
+ times: *const ::timespec,
+ flag: ::c_int,
+ ) -> ::c_int;
+ pub fn writev(fd: ::c_int, iov: *const ::iovec, iovcnt: ::c_int) -> ::ssize_t;
+
+ // Use AIX thread-safe version errno.
+ pub fn _Errno() -> *mut ::c_int;
+}
+
+cfg_if! {
+ if #[cfg(target_arch = "powerpc64")] {
+ mod powerpc64;
+ pub use self::powerpc64::*;
+ }
+}
diff --git a/vendor/libc/src/unix/aix/powerpc64.rs b/vendor/libc/src/unix/aix/powerpc64.rs
new file mode 100644
index 000000000..1f96ae37a
--- /dev/null
+++ b/vendor/libc/src/unix/aix/powerpc64.rs
@@ -0,0 +1,570 @@
+pub type c_long = i64;
+pub type c_ulong = u64;
+
+s! {
+ pub struct sigset_t {
+ pub ss_set: [c_ulong; 4],
+ }
+
+ pub struct fd_set {
+ pub fds_bits: [c_long; 1024],
+ }
+
+ pub struct flock {
+ pub l_type: ::c_short,
+ pub l_whence: ::c_short,
+ pub l_sysid: ::c_uint,
+ pub l_pid: ::pid_t,
+ pub l_vfs: ::c_int,
+ pub l_start: ::off_t,
+ pub l_len: ::off_t,
+ }
+
+ pub struct statvfs {
+ pub f_bsize: ::c_ulong,
+ pub f_frsize: ::c_ulong,
+ pub f_blocks: ::fsblkcnt_t,
+ pub f_bfree: ::fsblkcnt_t,
+ pub f_bavail: ::fsblkcnt_t,
+ pub f_files: ::fsfilcnt_t,
+ pub f_ffree: ::fsfilcnt_t,
+ pub f_favail: ::fsfilcnt_t,
+ pub f_fsid: ::c_ulong,
+ pub f_basetype: [::c_char; 16],
+ pub f_flag: ::c_ulong,
+ pub f_namemax: ::c_ulong,
+ pub f_fstr: [::c_char; 32],
+ pub f_filler: [::c_ulong; 16]
+ }
+
+ pub struct pthread_rwlock_t {
+ __rw_word: [::c_long; 10],
+ }
+
+ pub struct pthread_cond_t {
+ __cv_word: [::c_long; 6],
+ }
+
+ pub struct pthread_mutex_t {
+ __mt_word: [::c_long; 8],
+ }
+
+ pub struct stat {
+ pub st_dev: ::dev_t,
+ pub st_ino: ::ino_t,
+ pub st_mode: ::mode_t,
+ pub st_nlink: ::nlink_t,
+ pub st_flag: ::c_ushort,
+ pub st_uid: ::uid_t,
+ pub st_gid: ::gid_t,
+ pub st_rdev: ::dev_t,
+ pub st_ssize: ::c_int,
+ pub st_atime: ::st_timespec,
+ pub st_mtime: ::st_timespec,
+ pub st_ctime: ::st_timespec,
+ pub st_blksize: ::blksize_t,
+ pub st_blocks: ::blkcnt_t,
+ pub st_vfstype: ::c_int,
+ pub st_vfs: ::c_uint,
+ pub st_type: ::c_uint,
+ pub st_gen: ::c_uint,
+ pub st_reserved: [::c_uint; 9],
+ pub st_padto_ll: ::c_uint,
+ pub st_size: ::off_t,
+ }
+
+ pub struct statfs {
+ pub f_version: ::c_int,
+ pub f_type: ::c_int,
+ pub f_bsize: ::c_ulong,
+ pub f_blocks: ::fsblkcnt_t,
+ pub f_bfree: ::fsblkcnt_t,
+ pub f_bavail: ::fsblkcnt_t,
+ pub f_files: ::fsblkcnt_t,
+ pub f_ffree: ::fsblkcnt_t,
+ pub f_fsid: ::fsid64_t,
+ pub f_vfstype: ::c_int,
+ pub f_fsize: ::c_ulong,
+ pub f_vfsnumber: ::c_int,
+ pub f_vfsoff: ::c_int,
+ pub f_vfslen: ::c_int,
+ pub f_vfsvers: ::c_int,
+ pub f_fname: [::c_char; 32],
+ pub f_fpack: [::c_char; 32],
+ pub f_name_max: ::c_int,
+ }
+}
+
+s_no_extra_traits! {
+ #[cfg(libc_union)]
+ pub union sigval {
+ pub sival_ptr: *mut ::c_void,
+ pub sival_int: ::c_int,
+ }
+
+ pub struct siginfo_t {
+ pub si_signo: ::c_int,
+ pub si_errno: ::c_int,
+ pub si_code: ::c_int,
+ pub si_pid: ::pid_t,
+ pub si_uid: ::uid_t,
+ pub si_status: ::c_int,
+ pub si_addr: *mut ::c_void,
+ pub si_band: ::c_long,
+ #[cfg(libc_union)]
+ pub si_value: sigval,
+ pub __si_flags: ::c_int,
+ pub __pad: [::c_int; 3],
+ }
+
+ #[cfg(libc_union)]
+ pub union _kernel_simple_lock {
+ pub _slock: ::c_long,
+ // Should be pointer to 'lock_data_instrumented'
+ pub _slockp: *mut ::c_void,
+ }
+
+ pub struct fileops_t {
+ pub fo_rw: extern fn(file: *mut file, rw: ::uio_rw, io: *mut ::c_void, ext: ::c_long,
+ secattr: *mut ::c_void) -> ::c_int,
+ pub fo_ioctl: extern fn(file: *mut file, a: ::c_long, b: ::caddr_t, c: ::c_long,
+ d: ::c_long) -> ::c_int,
+ pub fo_select: extern fn(file: *mut file, a: ::c_int, b: *mut ::c_ushort,
+ c: extern fn()) -> ::c_int,
+ pub fo_close: extern fn(file: *mut file) -> ::c_int,
+ pub fo_fstat: extern fn(file: *mut file, sstat: *mut ::stat) -> ::c_int,
+ }
+
+ pub struct file {
+ pub f_flag: ::c_long,
+ pub f_count: ::c_int,
+ pub f_options: ::c_short,
+ pub f_type: ::c_short,
+ // Should be pointer to 'vnode'
+ pub f_data: *mut ::c_void,
+ pub f_offset: ::c_longlong,
+ pub f_dir_off: ::c_long,
+ // Should be pointer to 'cred'
+ pub f_cred: *mut ::c_void,
+ #[cfg(libc_union)]
+ pub f_lock: _kernel_simple_lock,
+ #[cfg(libc_union)]
+ pub f_offset_lock: _kernel_simple_lock,
+ pub f_vinfo: ::caddr_t,
+ pub f_ops: *mut fileops_t,
+ pub f_parentp: ::caddr_t,
+ pub f_fnamep: ::caddr_t,
+ pub f_fdata: [::c_char; 160],
+ }
+
+ #[cfg(libc_union)]
+ pub union __ld_info_file {
+ pub _ldinfo_fd: ::c_int,
+ pub _ldinfo_fp: *mut file,
+ pub _core_offset: ::c_long,
+ }
+
+ pub struct ld_info {
+ pub ldinfo_next: ::c_uint,
+ pub ldinfo_flags: ::c_uint,
+ #[cfg(libc_union)]
+ pub _file: __ld_info_file,
+ pub ldinfo_textorg: *mut ::c_void,
+ pub ldinfo_textsize: ::c_ulong,
+ pub ldinfo_dataorg: *mut ::c_void,
+ pub ldinfo_datasize: ::c_ulong,
+ pub ldinfo_filename: [::c_char; 2],
+ }
+
+ #[cfg(libc_union)]
+ pub union __pollfd_ext_u {
+ pub addr: *mut ::c_void,
+ pub data32: u32,
+ pub data: u64,
+ }
+
+ pub struct pollfd_ext {
+ pub fd: ::c_int,
+ pub events: ::c_ushort,
+ pub revents: ::c_ushort,
+ #[cfg(libc_union)]
+ pub data: __pollfd_ext_u,
+ }
+}
+
+cfg_if! {
+ if #[cfg(feature = "extra_traits")] {
+ #[cfg(libc_union)]
+ impl PartialEq for sigval {
+ fn eq(&self, other: &sigval) -> bool {
+ unsafe {
+ self.sival_ptr == other.sival_ptr
+ && self.sival_int == other.sival_int
+ }
+ }
+ }
+ #[cfg(libc_union)]
+ impl Eq for sigval {}
+ #[cfg(libc_union)]
+ impl ::fmt::Debug for sigval {
+ fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result {
+ f.debug_struct("sigval")
+ .field("sival_ptr", unsafe { &self.sival_ptr })
+ .field("sival_int", unsafe { &self.sival_int })
+ .finish()
+ }
+ }
+ #[cfg(libc_union)]
+ impl ::hash::Hash for sigval {
+ fn hash<H: ::hash::Hasher>(&self, state: &mut H) {
+ unsafe {
+ self.sival_ptr.hash(state);
+ self.sival_int.hash(state);
+ }
+ }
+ }
+
+ impl PartialEq for siginfo_t {
+ fn eq(&self, other: &siginfo_t) -> bool {
+ #[cfg(libc_union)]
+ let value_eq = self.si_value == other.si_value;
+ #[cfg(not(libc_union))]
+ let value_eq = true;
+ self.si_signo == other.si_signo
+ && self.si_errno == other.si_errno
+ && self.si_code == other.si_code
+ && self.si_pid == other.si_pid
+ && self.si_uid == other.si_uid
+ && self.si_status == other.si_status
+ && self.si_addr == other.si_addr
+ && self.si_band == other.si_band
+ && self.__si_flags == other.__si_flags
+ && value_eq
+ }
+ }
+ impl Eq for siginfo_t {}
+ impl ::fmt::Debug for siginfo_t {
+ fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result {
+ let mut struct_formatter = f.debug_struct("siginfo_t");
+ struct_formatter.field("si_signo", &self.si_signo);
+ struct_formatter.field("si_errno", &self.si_errno);
+ struct_formatter.field("si_code", &self.si_code);
+ struct_formatter.field("si_pid", &self.si_pid);
+ struct_formatter.field("si_uid", &self.si_uid);
+ struct_formatter.field("si_status", &self.si_status);
+ struct_formatter.field("si_addr", &self.si_addr);
+ struct_formatter.field("si_band", &self.si_band);
+ #[cfg(libc_union)]
+ struct_formatter.field("si_value", &self.si_value);
+ struct_formatter.field("__si_flags", &self.__si_flags);
+ struct_formatter.finish()
+ }
+ }
+ impl ::hash::Hash for siginfo_t {
+ fn hash<H: ::hash::Hasher>(&self, state: &mut H) {
+ self.si_signo.hash(state);
+ self.si_errno.hash(state);
+ self.si_code.hash(state);
+ self.si_pid.hash(state);
+ self.si_uid.hash(state);
+ self.si_status.hash(state);
+ self.si_addr.hash(state);
+ self.si_band.hash(state);
+ #[cfg(libc_union)]
+ self.si_value.hash(state);
+ self.__si_flags.hash(state);
+ }
+ }
+
+ #[cfg(libc_union)]
+ impl PartialEq for _kernel_simple_lock {
+ fn eq(&self, other: &_kernel_simple_lock) -> bool {
+ unsafe {
+ self._slock == other._slock
+ && self._slockp == other._slockp
+ }
+ }
+ }
+ #[cfg(libc_union)]
+ impl Eq for _kernel_simple_lock {}
+ #[cfg(libc_union)]
+ impl ::fmt::Debug for _kernel_simple_lock {
+ fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result {
+ f.debug_struct("sigval")
+ .field("_slock", unsafe { &self._slock })
+ .field("_slockp", unsafe { &self._slockp })
+ .finish()
+ }
+ }
+ #[cfg(libc_union)]
+ impl ::hash::Hash for _kernel_simple_lock {
+ fn hash<H: ::hash::Hasher>(&self, state: &mut H) {
+ unsafe {
+ self._slock.hash(state);
+ self._slockp.hash(state);
+ }
+ }
+ }
+
+ impl PartialEq for fileops_t {
+ fn eq(&self, other: &fileops_t) -> bool {
+ self.fo_rw == other.fo_rw
+ && self.fo_ioctl == other.fo_ioctl
+ && self.fo_select == other.fo_select
+ && self.fo_close == other.fo_close
+ && self.fo_fstat == other.fo_fstat
+ }
+ }
+ impl Eq for fileops_t {}
+ impl ::fmt::Debug for fileops_t {
+ fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result {
+ let mut struct_formatter = f.debug_struct("fileops_t");
+ struct_formatter.field("fo_rw", &self.fo_rw);
+ struct_formatter.field("fo_ioctl", &self.fo_ioctl);
+ struct_formatter.field("fo_select", &self.fo_select);
+ struct_formatter.field("fo_close", &self.fo_close);
+ struct_formatter.field("fo_fstat", &self.fo_fstat);
+ struct_formatter.finish()
+ }
+ }
+ impl ::hash::Hash for fileops_t {
+ fn hash<H: ::hash::Hasher>(&self, state: &mut H) {
+ self.fo_rw.hash(state);
+ self.fo_ioctl.hash(state);
+ self.fo_select.hash(state);
+ self.fo_close.hash(state);
+ self.fo_fstat.hash(state);
+ }
+ }
+
+ impl PartialEq for file {
+ fn eq(&self, other: &file) -> bool {
+ #[cfg(libc_union)]
+ let lock_eq = self.f_lock == other.f_lock
+ && self.f_offset_lock == other.f_offset_lock;
+ #[cfg(not(libc_union))]
+ let lock_eq = true;
+ self.f_flag == other.f_flag
+ && self.f_count == other.f_count
+ && self.f_options == other.f_options
+ && self.f_type == other.f_type
+ && self.f_data == other.f_data
+ && self.f_offset == other.f_offset
+ && self.f_dir_off == other.f_dir_off
+ && self.f_cred == other.f_cred
+ && self.f_vinfo == other.f_vinfo
+ && self.f_ops == other.f_ops
+ && self.f_parentp == other.f_parentp
+ && self.f_fnamep == other.f_fnamep
+ && self.f_fdata == other.f_fdata
+ && lock_eq
+ }
+ }
+ impl Eq for file {}
+ impl ::fmt::Debug for file {
+ fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result {
+ let mut struct_formatter = f.debug_struct("file");
+ struct_formatter.field("f_flag", &self.f_flag);
+ struct_formatter.field("f_count", &self.f_count);
+ struct_formatter.field("f_options", &self.f_options);
+ struct_formatter.field("f_type", &self.f_type);
+ struct_formatter.field("f_data", &self.f_data);
+ struct_formatter.field("f_offset", &self.f_offset);
+ struct_formatter.field("f_dir_off", &self.f_dir_off);
+ struct_formatter.field("f_cred", &self.f_cred);
+ #[cfg(libc_union)]
+ struct_formatter.field("f_lock", &self.f_lock);
+ #[cfg(libc_union)]
+ struct_formatter.field("f_offset_lock", &self.f_offset_lock);
+ struct_formatter.field("f_vinfo", &self.f_vinfo);
+ struct_formatter.field("f_ops", &self.f_ops);
+ struct_formatter.field("f_parentp", &self.f_parentp);
+ struct_formatter.field("f_fnamep", &self.f_fnamep);
+ struct_formatter.field("f_fdata", &self.f_fdata);
+ struct_formatter.finish()
+ }
+ }
+ impl ::hash::Hash for file {
+ fn hash<H: ::hash::Hasher>(&self, state: &mut H) {
+ self.f_flag.hash(state);
+ self.f_count.hash(state);
+ self.f_options.hash(state);
+ self.f_type.hash(state);
+ self.f_data.hash(state);
+ self.f_offset.hash(state);
+ self.f_dir_off.hash(state);
+ self.f_cred.hash(state);
+ #[cfg(libc_union)]
+ self.f_lock.hash(state);
+ #[cfg(libc_union)]
+ self.f_offset_lock.hash(state);
+ self.f_vinfo.hash(state);
+ self.f_ops.hash(state);
+ self.f_parentp.hash(state);
+ self.f_fnamep.hash(state);
+ self.f_fdata.hash(state);
+ }
+ }
+
+ #[cfg(libc_union)]
+ impl PartialEq for __ld_info_file {
+ fn eq(&self, other: &__ld_info_file) -> bool {
+ unsafe {
+ self._ldinfo_fd == other._ldinfo_fd
+ && self._ldinfo_fp == other._ldinfo_fp
+ && self._core_offset == other._core_offset
+ }
+ }
+ }
+ #[cfg(libc_union)]
+ impl Eq for __ld_info_file {}
+ #[cfg(libc_union)]
+ impl ::fmt::Debug for __ld_info_file {
+ fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result {
+ f.debug_struct("__ld_info_file")
+ .field("_ldinfo_fd", unsafe { &self._ldinfo_fd })
+ .field("_ldinfo_fp", unsafe { &self._ldinfo_fp })
+ .field("_core_offset", unsafe { &self._core_offset })
+ .finish()
+ }
+ }
+ #[cfg(libc_union)]
+ impl ::hash::Hash for __ld_info_file {
+ fn hash<H: ::hash::Hasher>(&self, state: &mut H) {
+ unsafe {
+ self._ldinfo_fd.hash(state);
+ self._ldinfo_fp.hash(state);
+ self._core_offset.hash(state);
+ }
+ }
+ }
+
+ impl PartialEq for ld_info {
+ fn eq(&self, other: &ld_info) -> bool {
+ #[cfg(libc_union)]
+ let file_eq = self._file == other._file;
+ #[cfg(not(libc_union))]
+ let file_eq = true;
+ self.ldinfo_next == other.ldinfo_next
+ && self.ldinfo_flags == other.ldinfo_flags
+ && self.ldinfo_textorg == other.ldinfo_textorg
+ && self.ldinfo_textsize == other.ldinfo_textsize
+ && self.ldinfo_dataorg == other.ldinfo_dataorg
+ && self.ldinfo_datasize == other.ldinfo_datasize
+ && self.ldinfo_filename == other.ldinfo_filename
+ && file_eq
+ }
+ }
+ impl Eq for ld_info {}
+ impl ::fmt::Debug for ld_info {
+ fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result {
+ let mut struct_formatter = f.debug_struct("ld_info");
+ struct_formatter.field("ldinfo_next", &self.ldinfo_next);
+ struct_formatter.field("ldinfo_flags", &self.ldinfo_flags);
+ struct_formatter.field("ldinfo_textorg", &self.ldinfo_textorg);
+ struct_formatter.field("ldinfo_textsize", &self.ldinfo_textsize);
+ struct_formatter.field("ldinfo_dataorg", &self.ldinfo_dataorg);
+ struct_formatter.field("ldinfo_datasize", &self.ldinfo_datasize);
+ struct_formatter.field("ldinfo_filename", &self.ldinfo_filename);
+ #[cfg(libc_union)]
+ struct_formatter.field("_file", &self._file);
+ struct_formatter.finish()
+ }
+ }
+ impl ::hash::Hash for ld_info {
+ fn hash<H: ::hash::Hasher>(&self, state: &mut H) {
+ self.ldinfo_next.hash(state);
+ self.ldinfo_flags.hash(state);
+ self.ldinfo_textorg.hash(state);
+ self.ldinfo_textsize.hash(state);
+ self.ldinfo_dataorg.hash(state);
+ self.ldinfo_datasize.hash(state);
+ self.ldinfo_filename.hash(state);
+ #[cfg(libc_union)]
+ self._file.hash(state);
+ }
+ }
+
+ #[cfg(libc_union)]
+ impl PartialEq for __pollfd_ext_u {
+ fn eq(&self, other: &__pollfd_ext_u) -> bool {
+ unsafe {
+ self.addr == other.addr
+ && self.data32 == other.data32
+ && self.data == other.data
+ }
+ }
+ }
+ #[cfg(libc_union)]
+ impl Eq for __pollfd_ext_u {}
+ #[cfg(libc_union)]
+ impl ::fmt::Debug for __pollfd_ext_u {
+ fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result {
+ f.debug_struct("__pollfd_ext_u")
+ .field("addr", unsafe { &self.addr })
+ .field("data32", unsafe { &self.data32 })
+ .field("data", unsafe { &self.data })
+ .finish()
+ }
+ }
+ #[cfg(libc_union)]
+ impl ::hash::Hash for __pollfd_ext_u {
+ fn hash<H: ::hash::Hasher>(&self, state: &mut H) {
+ unsafe {
+ self.addr.hash(state);
+ self.data.hash(state);
+ self.data32.hash(state);
+ }
+ }
+ }
+
+ impl PartialEq for pollfd_ext {
+ fn eq(&self, other: &pollfd_ext) -> bool {
+ #[cfg(libc_union)]
+ let data_eq = self.data == other.data;
+ #[cfg(not(libc_union))]
+ let data_eq = true;
+ self.fd == other.fd
+ && self.events == other.events
+ && self.revents == other.revents
+ && data_eq
+ }
+ }
+ impl Eq for pollfd_ext {}
+ impl ::fmt::Debug for pollfd_ext {
+ fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result {
+ let mut struct_formatter = f.debug_struct("pollfd_ext");
+ struct_formatter.field("fd", &self.fd);
+ struct_formatter.field("events", &self.events);
+ struct_formatter.field("revents", &self.revents);
+ #[cfg(libc_union)]
+ struct_formatter.field("data", &self.data);
+ struct_formatter.finish()
+ }
+ }
+ impl ::hash::Hash for pollfd_ext {
+ fn hash<H: ::hash::Hasher>(&self, state: &mut H) {
+ self.fd.hash(state);
+ self.events.hash(state);
+ self.revents.hash(state);
+ #[cfg(libc_union)]
+ self.data.hash(state);
+ }
+ }
+ }
+}
+
+pub const PTHREAD_MUTEX_INITIALIZER: pthread_mutex_t = pthread_mutex_t {
+ __mt_word: [0, 2, 0, 0, 0, 0, 0, 0],
+};
+pub const PTHREAD_COND_INITIALIZER: pthread_cond_t = pthread_cond_t {
+ __cv_word: [0, 0, 0, 0, 2, 0],
+};
+pub const PTHREAD_RWLOCK_INITIALIZER: pthread_rwlock_t = pthread_rwlock_t {
+ __rw_word: [2, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+};
+pub const RLIM_INFINITY: ::c_ulong = 0x7fffffffffffffff;
+
+extern "C" {
+ pub fn getsystemcfg(label: ::c_int) -> ::c_ulong;
+}
diff --git a/vendor/libc/src/unix/bsd/apple/long_array.rs b/vendor/libc/src/unix/bsd/apple/long_array.rs
new file mode 100644
index 000000000..4c56a275a
--- /dev/null
+++ b/vendor/libc/src/unix/bsd/apple/long_array.rs
@@ -0,0 +1,8 @@
+s! {
+ pub struct ctl_info {
+ pub ctl_id: u32,
+ pub ctl_name: [::c_char; MAX_KCTL_NAME],
+ }
+}
+
+pub const MAX_KCTL_NAME: usize = 96;
diff --git a/vendor/libc/src/unix/bsd/apple/mod.rs b/vendor/libc/src/unix/bsd/apple/mod.rs
index 6b391893a..519a99346 100644
--- a/vendor/libc/src/unix/bsd/apple/mod.rs
+++ b/vendor/libc/src/unix/bsd/apple/mod.rs
@@ -3313,6 +3313,8 @@ pub const MINCORE_MODIFIED: ::c_int = 0x4;
pub const MINCORE_REFERENCED_OTHER: ::c_int = 0x8;
pub const MINCORE_MODIFIED_OTHER: ::c_int = 0x10;
+pub const CTLIOCGINFO: c_ulong = 0xc0644e03;
+
//
// sys/netinet/in.h
// Protocols (RFC 1700)
@@ -5188,6 +5190,10 @@ extern "C" {
f: extern "C" fn(*mut ::c_void) -> *mut ::c_void,
value: *mut ::c_void,
) -> ::c_int;
+ pub fn pthread_stack_frame_decode_np(
+ frame_addr: ::uintptr_t,
+ return_addr: *mut ::uintptr_t,
+ ) -> ::uintptr_t;
pub fn pthread_get_stackaddr_np(thread: ::pthread_t) -> *mut ::c_void;
pub fn pthread_get_stacksize_np(thread: ::pthread_t) -> ::size_t;
pub fn pthread_condattr_setpshared(attr: *mut pthread_condattr_t, pshared: ::c_int) -> ::c_int;
@@ -5195,6 +5201,7 @@ extern "C" {
attr: *const pthread_condattr_t,
pshared: *mut ::c_int,
) -> ::c_int;
+ pub fn pthread_main_np() -> ::c_int;
pub fn pthread_mutexattr_setpshared(
attr: *mut pthread_mutexattr_t,
pshared: ::c_int,
@@ -5556,6 +5563,14 @@ extern "C" {
subpref: *mut ::cpu_subtype_t,
ocount: *mut ::size_t,
) -> ::c_int;
+ pub fn posix_spawnattr_set_qos_class_np(
+ attr: *mut posix_spawnattr_t,
+ qos_class: ::qos_class_t,
+ ) -> ::c_int;
+ pub fn posix_spawnattr_get_qos_class_np(
+ attr: *const posix_spawnattr_t,
+ qos_class: *mut ::qos_class_t,
+ ) -> ::c_int;
pub fn posix_spawn_file_actions_init(actions: *mut posix_spawn_file_actions_t) -> ::c_int;
pub fn posix_spawn_file_actions_destroy(actions: *mut posix_spawn_file_actions_t) -> ::c_int;
@@ -5931,3 +5946,10 @@ cfg_if! {
// Unknown target_arch
}
}
+
+cfg_if! {
+ if #[cfg(libc_long_array)] {
+ mod long_array;
+ pub use self::long_array::*;
+ }
+}
diff --git a/vendor/libc/src/unix/bsd/freebsdlike/freebsd/freebsd11/mod.rs b/vendor/libc/src/unix/bsd/freebsdlike/freebsd/freebsd11/mod.rs
index 563c0f936..f2d170fb2 100644
--- a/vendor/libc/src/unix/bsd/freebsdlike/freebsd/freebsd11/mod.rs
+++ b/vendor/libc/src/unix/bsd/freebsdlike/freebsd/freebsd11/mod.rs
@@ -462,8 +462,8 @@ extern "C" {
msgflg: ::c_int,
) -> ::c_int;
- pub fn fdatasync(fd: ::c_int) -> ::c_int;
-
+ // Type of `path` argument changed from `const void*` to `void*`
+ // in FreeBSD 12
pub fn dirname(path: *const ::c_char) -> *mut ::c_char;
pub fn basename(path: *const ::c_char) -> *mut ::c_char;
}
diff --git a/vendor/libc/src/unix/bsd/freebsdlike/freebsd/freebsd12/mod.rs b/vendor/libc/src/unix/bsd/freebsdlike/freebsd/freebsd12/mod.rs
index df00b6c1d..5cd4eff26 100644
--- a/vendor/libc/src/unix/bsd/freebsdlike/freebsd/freebsd12/mod.rs
+++ b/vendor/libc/src/unix/bsd/freebsdlike/freebsd/freebsd12/mod.rs
@@ -473,20 +473,6 @@ extern "C" {
msgtyp: ::c_long,
msgflg: ::c_int,
) -> ::ssize_t;
- pub fn clock_nanosleep(
- clk_id: ::clockid_t,
- flags: ::c_int,
- rqtp: *const ::timespec,
- rmtp: *mut ::timespec,
- ) -> ::c_int;
-
- pub fn fdatasync(fd: ::c_int) -> ::c_int;
-
- pub fn getrandom(buf: *mut ::c_void, buflen: ::size_t, flags: ::c_uint) -> ::ssize_t;
- pub fn elf_aux_info(aux: ::c_int, buf: *mut ::c_void, buflen: ::c_int) -> ::c_int;
- pub fn setproctitle_fast(fmt: *const ::c_char, ...);
- pub fn timingsafe_bcmp(a: *const ::c_void, b: *const ::c_void, len: ::size_t) -> ::c_int;
- pub fn timingsafe_memcmp(a: *const ::c_void, b: *const ::c_void, len: ::size_t) -> ::c_int;
pub fn dirname(path: *mut ::c_char) -> *mut ::c_char;
pub fn basename(path: *mut ::c_char) -> *mut ::c_char;
diff --git a/vendor/libc/src/unix/bsd/freebsdlike/freebsd/freebsd13/mod.rs b/vendor/libc/src/unix/bsd/freebsdlike/freebsd/freebsd13/mod.rs
index 72a38dc22..56564eeb4 100644
--- a/vendor/libc/src/unix/bsd/freebsdlike/freebsd/freebsd13/mod.rs
+++ b/vendor/libc/src/unix/bsd/freebsdlike/freebsd/freebsd13/mod.rs
@@ -492,23 +492,6 @@ extern "C" {
msgtyp: ::c_long,
msgflg: ::c_int,
) -> ::ssize_t;
- pub fn clock_nanosleep(
- clk_id: ::clockid_t,
- flags: ::c_int,
- rqtp: *const ::timespec,
- rmtp: *mut ::timespec,
- ) -> ::c_int;
-
- pub fn eventfd(init: ::c_uint, flags: ::c_int) -> ::c_int;
-
- pub fn fdatasync(fd: ::c_int) -> ::c_int;
-
- pub fn getrandom(buf: *mut ::c_void, buflen: ::size_t, flags: ::c_uint) -> ::ssize_t;
- pub fn getentropy(buf: *mut ::c_void, buflen: ::size_t) -> ::c_int;
- pub fn elf_aux_info(aux: ::c_int, buf: *mut ::c_void, buflen: ::c_int) -> ::c_int;
- pub fn setproctitle_fast(fmt: *const ::c_char, ...);
- pub fn timingsafe_bcmp(a: *const ::c_void, b: *const ::c_void, len: ::size_t) -> ::c_int;
- pub fn timingsafe_memcmp(a: *const ::c_void, b: *const ::c_void, len: ::size_t) -> ::c_int;
pub fn cpuset_getdomain(
level: ::cpulevel_t,
diff --git a/vendor/libc/src/unix/bsd/freebsdlike/freebsd/freebsd14/mod.rs b/vendor/libc/src/unix/bsd/freebsdlike/freebsd/freebsd14/mod.rs
index 115b47764..d60f1a174 100644
--- a/vendor/libc/src/unix/bsd/freebsdlike/freebsd/freebsd14/mod.rs
+++ b/vendor/libc/src/unix/bsd/freebsdlike/freebsd/freebsd14/mod.rs
@@ -492,23 +492,6 @@ extern "C" {
msgtyp: ::c_long,
msgflg: ::c_int,
) -> ::ssize_t;
- pub fn clock_nanosleep(
- clk_id: ::clockid_t,
- flags: ::c_int,
- rqtp: *const ::timespec,
- rmtp: *mut ::timespec,
- ) -> ::c_int;
-
- pub fn eventfd(init: ::c_uint, flags: ::c_int) -> ::c_int;
-
- pub fn fdatasync(fd: ::c_int) -> ::c_int;
-
- pub fn getrandom(buf: *mut ::c_void, buflen: ::size_t, flags: ::c_uint) -> ::ssize_t;
- pub fn getentropy(buf: *mut ::c_void, buflen: ::size_t) -> ::c_int;
- pub fn elf_aux_info(aux: ::c_int, buf: *mut ::c_void, buflen: ::c_int) -> ::c_int;
- pub fn setproctitle_fast(fmt: *const ::c_char, ...);
- pub fn timingsafe_bcmp(a: *const ::c_void, b: *const ::c_void, len: ::size_t) -> ::c_int;
- pub fn timingsafe_memcmp(a: *const ::c_void, b: *const ::c_void, len: ::size_t) -> ::c_int;
pub fn cpuset_getdomain(
level: ::cpulevel_t,
diff --git a/vendor/libc/src/unix/bsd/freebsdlike/freebsd/mod.rs b/vendor/libc/src/unix/bsd/freebsdlike/freebsd/mod.rs
index 2a4fbbf05..b70a40f15 100644
--- a/vendor/libc/src/unix/bsd/freebsdlike/freebsd/mod.rs
+++ b/vendor/libc/src/unix/bsd/freebsdlike/freebsd/mod.rs
@@ -46,6 +46,8 @@ pub type au_asid_t = ::pid_t;
pub type cpusetid_t = ::c_int;
+pub type sctp_assoc_t = u32;
+
#[cfg_attr(feature = "extra_traits", derive(Debug, Hash, PartialEq, Eq))]
#[repr(u32)]
pub enum devstat_support_flags {
@@ -355,6 +357,13 @@ s! {
pub pc_limit: ::off_t,
}
+ pub struct ptrace_sc_remote {
+ pub pscr_ret: ptrace_sc_ret,
+ pub pscr_syscall: ::c_uint,
+ pub pscr_nargs: ::c_uint,
+ pub pscr_args: *mut ::register_t,
+ }
+
pub struct cpuset_t {
#[cfg(target_pointer_width = "64")]
__bits: [::c_long; 4],
@@ -987,6 +996,68 @@ s! {
pub pcbcnt: u32,
}
+ pub struct tcp_info {
+ pub tcpi_state: u8,
+ pub __tcpi_ca_state: u8,
+ pub __tcpi_retransmits: u8,
+ pub __tcpi_probes: u8,
+ pub __tcpi_backoff: u8,
+ pub tcpi_options: u8,
+ pub tcp_snd_wscale: u8,
+ pub tcp_rcv_wscale: u8,
+ pub tcpi_rto: u32,
+ pub __tcpi_ato: u32,
+ pub tcpi_snd_mss: u32,
+ pub tcpi_rcv_mss: u32,
+ pub __tcpi_unacked: u32,
+ pub __tcpi_sacked: u32,
+ pub __tcpi_lost: u32,
+ pub __tcpi_retrans: u32,
+ pub __tcpi_fackets: u32,
+ pub __tcpi_last_data_sent: u32,
+ pub __tcpi_last_ack_sent: u32,
+ pub tcpi_last_data_recv: u32,
+ pub __tcpi_last_ack_recv: u32,
+ pub __tcpi_pmtu: u32,
+ pub __tcpi_rcv_ssthresh: u32,
+ pub tcpi_rtt: u32,
+ pub tcpi_rttvar: u32,
+ pub tcpi_snd_ssthresh: u32,
+ pub tcpi_snd_cwnd: u32,
+ pub __tcpi_advmss: u32,
+ pub __tcpi_reordering: u32,
+ pub __tcpi_rcv_rtt: u32,
+ pub tcpi_rcv_space: u32,
+ pub tcpi_snd_wnd: u32,
+ pub tcpi_snd_bwnd: u32,
+ pub tcpi_snd_nxt: u32,
+ pub tcpi_rcv_nxt: u32,
+ pub tcpi_toe_tid: u32,
+ pub tcpi_snd_rexmitpack: u32,
+ pub tcpi_rcv_ooopack: u32,
+ pub tcpi_snd_zerowin: u32,
+ #[cfg(freebsd14)]
+ pub tcpi_delivered_ce: u32,
+ #[cfg(freebsd14)]
+ pub tcpi_received_ce: u32,
+ #[cfg(freebsd14)]
+ pub __tcpi_delivered_e1_bytes: u32,
+ #[cfg(freebsd14)]
+ pub __tcpi_delivered_e0_bytes: u32,
+ #[cfg(freebsd14)]
+ pub __tcpi_delivered_ce_bytes: u32,
+ #[cfg(freebsd14)]
+ pub __tcpi_received_e1_bytes: u32,
+ #[cfg(freebsd14)]
+ pub __tcpi_received_e0_bytes: u32,
+ #[cfg(freebsd14)]
+ pub __tcpi_received_ce_bytes: u32,
+ #[cfg(freebsd14)]
+ pub __tcpi_pad: [u32; 19],
+ #[cfg(not(freebsd14))]
+ pub __tcpi_pad: [u32; 26],
+ }
+
pub struct _umtx_time {
pub _timeout: ::timespec,
pub _flags: u32,
@@ -1007,6 +1078,247 @@ s! {
pub struct memory_type_list {
__priv: [::uintptr_t; 2],
}
+
+ pub struct pidfh {
+ __priva: [[::uintptr_t; 32]; 8],
+ __privb: [::uintptr_t; 2],
+ }
+
+ pub struct sctp_event {
+ pub se_assoc_id: ::sctp_assoc_t,
+ pub se_type: u16,
+ pub se_on: u8,
+ }
+
+ pub struct sctp_event_subscribe {
+ pub sctp_data_io_event: u8,
+ pub sctp_association_event: u8,
+ pub sctp_address_event: u8,
+ pub sctp_send_failure_event: u8,
+ pub sctp_peer_error_event: u8,
+ pub sctp_shutdown_event: u8,
+ pub sctp_partial_delivery_event: u8,
+ pub sctp_adaptation_layer_event: u8,
+ pub sctp_authentication_event: u8,
+ pub sctp_sender_dry_event: u8,
+ pub sctp_stream_reset_event: u8,
+ }
+
+ pub struct sctp_initmsg {
+ pub sinit_num_ostreams: u16,
+ pub sinit_max_instreams: u16,
+ pub sinit_max_attempts: u16,
+ pub sinit_max_init_timeo: u16,
+ }
+
+ pub struct sctp_sndrcvinfo {
+ pub sinfo_stream: u16,
+ pub sinfo_ssn: u16,
+ pub sinfo_flags: u16,
+ pub sinfo_ppid: u32,
+ pub sinfo_context: u32,
+ pub sinfo_timetolive: u32,
+ pub sinfo_tsn: u32,
+ pub sinfo_cumtsn: u32,
+ pub sinfo_assoc_id: ::sctp_assoc_t,
+ pub sinfo_keynumber: u16,
+ pub sinfo_keynumber_valid: u16,
+ pub __reserve_pad: [[u8; 23]; 4],
+ }
+
+ pub struct sctp_extrcvinfo {
+ pub sinfo_stream: u16,
+ pub sinfo_ssn: u16,
+ pub sinfo_flags: u16,
+ pub sinfo_ppid: u32,
+ pub sinfo_context: u32,
+ pub sinfo_timetolive: u32,
+ pub sinfo_tsn: u32,
+ pub sinfo_cumtsn: u32,
+ pub sinfo_assoc_id: ::sctp_assoc_t,
+ pub serinfo_next_flags: u16,
+ pub serinfo_next_stream: u16,
+ pub serinfo_next_aid: u32,
+ pub serinfo_next_length: u32,
+ pub serinfo_next_ppid: u32,
+ pub sinfo_keynumber: u16,
+ pub sinfo_keynumber_valid: u16,
+ pub __reserve_pad: [[u8; 19]; 4],
+ }
+
+ pub struct sctp_sndinfo {
+ pub snd_sid: u16,
+ pub snd_flags: u16,
+ pub snd_ppid: u32,
+ pub snd_context: u32,
+ pub snd_assoc_id: ::sctp_assoc_t,
+ }
+
+ pub struct sctp_prinfo {
+ pub pr_policy: u16,
+ pub pr_value: u32,
+ }
+
+ pub struct sctp_default_prinfo {
+ pub pr_policy: u16,
+ pub pr_value: u32,
+ pub pr_assoc_id: ::sctp_assoc_t,
+ }
+
+ pub struct sctp_authinfo {
+ pub auth_keynumber: u16,
+ }
+
+ pub struct sctp_rcvinfo {
+ pub rcv_sid: u16,
+ pub rcv_ssn: u16,
+ pub rcv_flags: u16,
+ pub rcv_ppid: u32,
+ pub rcv_tsn: u32,
+ pub rcv_cumtsn: u32,
+ pub rcv_context: u32,
+ pub rcv_assoc_id: ::sctp_assoc_t,
+ }
+
+ pub struct sctp_nxtinfo {
+ pub nxt_sid: u16,
+ pub nxt_flags: u16,
+ pub nxt_ppid: u32,
+ pub nxt_length: u32,
+ pub nxt_assoc_id: ::sctp_assoc_t,
+ }
+
+ pub struct sctp_recvv_rn {
+ pub recvv_rcvinfo: sctp_rcvinfo,
+ pub recvv_nxtinfo: sctp_nxtinfo,
+ }
+
+ pub struct sctp_sendv_spa {
+ pub sendv_flags: u32,
+ pub sendv_sndinfo: sctp_sndinfo,
+ pub sendv_prinfo: sctp_prinfo,
+ pub sendv_authinfo: sctp_authinfo,
+ }
+
+ pub struct sctp_snd_all_completes {
+ pub sall_stream: u16,
+ pub sall_flags: u16,
+ pub sall_ppid: u32,
+ pub sall_context: u32,
+ pub sall_num_sent: u32,
+ pub sall_num_failed: u32,
+ }
+
+ pub struct sctp_pcbinfo {
+ pub ep_count: u32,
+ pub asoc_count: u32,
+ pub laddr_count: u32,
+ pub raddr_count: u32,
+ pub chk_count: u32,
+ pub readq_count: u32,
+ pub free_chunks: u32,
+ pub stream_oque: u32,
+ }
+
+ pub struct sctp_sockstat {
+ pub ss_assoc_id: ::sctp_assoc_t,
+ pub ss_total_sndbuf: u32,
+ pub ss_total_recv_buf: u32,
+ }
+
+ pub struct sctp_assoc_change {
+ pub sac_type: u16,
+ pub sac_flags: u16,
+ pub sac_length: u32,
+ pub sac_state: u16,
+ pub sac_error: u16,
+ pub sac_outbound_streams: u16,
+ pub sac_inbound_streams: u16,
+ pub sac_assoc_id: ::sctp_assoc_t,
+ pub sac_info: [u8; 0],
+ }
+
+ pub struct sctp_paddr_change {
+ pub spc_type: u16,
+ pub spc_flags: u16,
+ pub spc_length: u32,
+ pub spc_aaddr: ::sockaddr_storage,
+ pub spc_state: u32,
+ pub spc_error: u32,
+ pub spc_assoc_id: ::sctp_assoc_t,
+ }
+
+ pub struct sctp_remote_error {
+ pub sre_type: u16,
+ pub sre_flags: u16,
+ pub sre_length: u32,
+ pub sre_error: u16,
+ pub sre_assoc_id: ::sctp_assoc_t,
+ pub sre_data: [u8; 0],
+ }
+
+ pub struct sctp_send_failed_event {
+ pub ssfe_type: u16,
+ pub ssfe_flags: u16,
+ pub ssfe_length: u32,
+ pub ssfe_error: u32,
+ pub ssfe_info: sctp_sndinfo,
+ pub ssfe_assoc_id: ::sctp_assoc_t,
+ pub ssfe_data: [u8; 0],
+ }
+
+ pub struct sctp_shutdown_event {
+ pub sse_type: u16,
+ pub sse_flags: u16,
+ pub sse_length: u32,
+ pub sse_assoc_id: ::sctp_assoc_t,
+ }
+
+ pub struct sctp_adaptation_event {
+ pub sai_type: u16,
+ pub sai_flags: u16,
+ pub sai_length: u32,
+ pub sai_adaptation_ind: u32,
+ pub sai_assoc_id: ::sctp_assoc_t,
+ }
+
+ pub struct sctp_setadaptation {
+ pub ssb_adaptation_ind: u32,
+ }
+
+ pub struct sctp_pdapi_event {
+ pub pdapi_type: u16,
+ pub pdapi_flags: u16,
+ pub pdapi_length: u32,
+ pub pdapi_indication: u32,
+ pub pdapi_stream: u16,
+ pub pdapi_seq: u16,
+ pub pdapi_assoc_id: ::sctp_assoc_t,
+ }
+
+ pub struct sctp_sender_dry_event {
+ pub sender_dry_type: u16,
+ pub sender_dry_flags: u16,
+ pub sender_dry_length: u32,
+ pub sender_dry_assoc_id: ::sctp_assoc_t,
+ }
+
+ pub struct sctp_stream_reset_event {
+ pub strreset_type: u16,
+ pub strreset_flags: u16,
+ pub strreset_length: u32,
+ pub strreset_assoc_id: ::sctp_assoc_t,
+ pub strreset_stream_list: [u16; 0],
+ }
+
+ pub struct sctp_stream_change_event {
+ pub strchange_type: u16,
+ pub strchange_flags: u16,
+ pub strchange_length: u32,
+ pub strchange_assoc_id: ::sctp_assoc_t,
+ pub strchange_instrms: u16,
+ pub strchange_outstrms: u16,
+ }
}
s_no_extra_traits! {
@@ -1217,6 +1529,88 @@ s_no_extra_traits! {
pub ifdr_vendor: u32,
pub ifdr_msg: [::c_char; ::IFDR_MSG_SIZE as usize],
}
+
+ #[repr(packed)]
+ pub struct sctphdr {
+ pub src_port: u16,
+ pub dest_port: u16,
+ pub v_tag: u32,
+ pub checksum: u32,
+ }
+
+ #[repr(packed)]
+ pub struct sctp_chunkhdr {
+ pub chunk_type: u8,
+ pub chunk_flags: u8,
+ pub chunk_length: u16,
+ }
+
+ #[repr(packed)]
+ pub struct sctp_paramhdr {
+ pub param_type: u16,
+ pub param_length: u16,
+ }
+
+ #[repr(packed)]
+ pub struct sctp_gen_error_cause {
+ pub code: u16,
+ pub length: u16,
+ pub info: [u8; 0],
+ }
+
+ #[repr(packed)]
+ pub struct sctp_error_cause {
+ pub code: u16,
+ pub length: u16,
+ }
+
+ #[repr(packed)]
+ pub struct sctp_error_invalid_stream {
+ pub cause: sctp_error_cause,
+ pub stream_id: u16,
+ __reserved: u16,
+ }
+
+ #[repr(packed)]
+ pub struct sctp_error_missing_param {
+ pub cause: sctp_error_cause,
+ pub num_missing_params: u32,
+ pub tpe: [u8; 0],
+ }
+
+ #[repr(packed)]
+ pub struct sctp_error_stale_cookie {
+ pub cause: sctp_error_cause,
+ pub stale_time: u32,
+ }
+
+ #[repr(packed)]
+ pub struct sctp_error_out_of_resource {
+ pub cause: sctp_error_cause,
+ }
+
+ #[repr(packed)]
+ pub struct sctp_error_unresolv_addr {
+ pub cause: sctp_error_cause,
+ }
+
+ #[repr(packed)]
+ pub struct sctp_error_unrecognized_chunk {
+ pub cause: sctp_error_cause,
+ pub ch: sctp_chunkhdr,
+ }
+
+ #[repr(packed)]
+ pub struct sctp_error_no_user_data {
+ pub cause: sctp_error_cause,
+ pub tsn: u32,
+ }
+
+ #[repr(packed)]
+ pub struct sctp_error_auth_invalid_hmac {
+ pub cause: sctp_error_cause,
+ pub hmac_id: u16,
+ }
}
cfg_if! {
@@ -1878,6 +2272,301 @@ cfg_if! {
self.__ifi_lastchange.hash(state);
}
}
+
+ impl PartialEq for sctphdr {
+ fn eq(&self, other: &sctphdr) -> bool {
+ return {self.src_port} == {other.src_port} &&
+ {self.dest_port} == {other.dest_port} &&
+ {self.v_tag} == {other.v_tag} &&
+ {self.checksum} == {other.checksum}
+ }
+ }
+ impl Eq for sctphdr {}
+ impl ::fmt::Debug for sctphdr {
+ fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result {
+ f.debug_struct("sctphdr")
+ .field("src_port", &{self.src_port})
+ .field("dest_port", &{self.dest_port})
+ .field("v_tag", &{self.v_tag})
+ .field("checksum", &{self.checksum})
+ .finish()
+ }
+ }
+ impl ::hash::Hash for sctphdr {
+ fn hash<H: ::hash::Hasher>(&self, state: &mut H) {
+ {self.src_port}.hash(state);
+ {self.dest_port}.hash(state);
+ {self.v_tag}.hash(state);
+ {self.checksum}.hash(state);
+ }
+ }
+
+ impl PartialEq for sctp_chunkhdr {
+ fn eq(&self, other: &sctp_chunkhdr) -> bool {
+ return {self.chunk_type} == {other.chunk_type} &&
+ {self.chunk_flags} == {other.chunk_flags} &&
+ {self.chunk_length} == {other.chunk_length}
+ }
+ }
+ impl Eq for sctp_chunkhdr {}
+ impl ::fmt::Debug for sctp_chunkhdr {
+ fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result {
+ f.debug_struct("sctp_chunkhdr")
+ .field("chunk_type", &{self.chunk_type})
+ .field("chunk_flags", &{self.chunk_flags})
+ .field("chunk_length", &{self.chunk_length})
+ .finish()
+ }
+ }
+ impl ::hash::Hash for sctp_chunkhdr {
+ fn hash<H: ::hash::Hasher>(&self, state: &mut H) {
+ {self.chunk_type}.hash(state);
+ {self.chunk_flags}.hash(state);
+ {self.chunk_length}.hash(state);
+ }
+ }
+
+ impl PartialEq for sctp_paramhdr {
+ fn eq(&self, other: &sctp_paramhdr) -> bool {
+ return {self.param_type} == {other.param_type} &&
+ {self.param_length} == {other.param_length}
+ }
+ }
+ impl Eq for sctp_paramhdr {}
+ impl ::fmt::Debug for sctp_paramhdr {
+ fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result {
+ f.debug_struct("sctp_paramhdr")
+ .field("param_type", &{self.param_type})
+ .field("param_length", &{self.param_length})
+ .finish()
+ }
+ }
+ impl ::hash::Hash for sctp_paramhdr {
+ fn hash<H: ::hash::Hasher>(&self, state: &mut H) {
+ {self.param_type}.hash(state);
+ {self.param_length}.hash(state);
+ }
+ }
+
+ impl PartialEq for sctp_gen_error_cause {
+ fn eq(&self, other: &sctp_gen_error_cause) -> bool {
+ return {self.code} == {other.code} &&
+ {self.length} == {other.length} &&
+ {self.info}.iter().zip({other.info}.iter()).all(|(a,b)| a == b)
+ }
+ }
+ impl Eq for sctp_gen_error_cause {}
+ impl ::fmt::Debug for sctp_gen_error_cause {
+ fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result {
+ f.debug_struct("sctp_gen_error_cause")
+ .field("code", &{self.code})
+ .field("length", &{self.length})
+ // FIXME: .field("info", &{self.info})
+ .finish()
+ }
+ }
+ impl ::hash::Hash for sctp_gen_error_cause {
+ fn hash<H: ::hash::Hasher>(&self, state: &mut H) {
+ {self.code}.hash(state);
+ {self.length}.hash(state);
+ {self.info}.hash(state);
+ }
+ }
+
+ impl PartialEq for sctp_error_cause {
+ fn eq(&self, other: &sctp_error_cause) -> bool {
+ return {self.code} == {other.code} &&
+ {self.length} == {other.length}
+ }
+ }
+ impl Eq for sctp_error_cause {}
+ impl ::fmt::Debug for sctp_error_cause {
+ fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result {
+ f.debug_struct("sctp_error_cause")
+ .field("code", &{self.code})
+ .field("length", &{self.length})
+ .finish()
+ }
+ }
+ impl ::hash::Hash for sctp_error_cause {
+ fn hash<H: ::hash::Hasher>(&self, state: &mut H) {
+ {self.code}.hash(state);
+ {self.length}.hash(state);
+ }
+ }
+
+ impl PartialEq for sctp_error_invalid_stream {
+ fn eq(&self, other: &sctp_error_invalid_stream) -> bool {
+ return {self.cause} == {other.cause} &&
+ {self.stream_id} == {other.stream_id}
+ }
+ }
+ impl Eq for sctp_error_invalid_stream {}
+ impl ::fmt::Debug for sctp_error_invalid_stream {
+ fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result {
+ f.debug_struct("sctp_error_invalid_stream")
+ .field("cause", &{self.cause})
+ .field("stream_id", &{self.stream_id})
+ .finish()
+ }
+ }
+ impl ::hash::Hash for sctp_error_invalid_stream {
+ fn hash<H: ::hash::Hasher>(&self, state: &mut H) {
+ {self.cause}.hash(state);
+ {self.stream_id}.hash(state);
+ }
+ }
+
+ impl PartialEq for sctp_error_missing_param {
+ fn eq(&self, other: &sctp_error_missing_param) -> bool {
+ return {self.cause} == {other.cause} &&
+ {self.num_missing_params} == {other.num_missing_params} &&
+ {self.tpe}.iter().zip({other.tpe}.iter()).all(|(a,b)| a == b)
+ }
+ }
+ impl Eq for sctp_error_missing_param {}
+ impl ::fmt::Debug for sctp_error_missing_param {
+ fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result {
+ f.debug_struct("sctp_error_missing_param")
+ .field("cause", &{self.cause})
+ .field("num_missing_params", &{self.num_missing_params})
+ // FIXME: .field("tpe", &{self.tpe})
+ .finish()
+ }
+ }
+ impl ::hash::Hash for sctp_error_missing_param {
+ fn hash<H: ::hash::Hasher>(&self, state: &mut H) {
+ {self.cause}.hash(state);
+ {self.num_missing_params}.hash(state);
+ {self.tpe}.hash(state);
+ }
+ }
+
+ impl PartialEq for sctp_error_stale_cookie {
+ fn eq(&self, other: &sctp_error_stale_cookie) -> bool {
+ return {self.cause} == {other.cause} &&
+ {self.stale_time} == {other.stale_time}
+ }
+ }
+ impl Eq for sctp_error_stale_cookie {}
+ impl ::fmt::Debug for sctp_error_stale_cookie {
+ fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result {
+ f.debug_struct("sctp_error_stale_cookie")
+ .field("cause", &{self.cause})
+ .field("stale_time", &{self.stale_time})
+ .finish()
+ }
+ }
+ impl ::hash::Hash for sctp_error_stale_cookie {
+ fn hash<H: ::hash::Hasher>(&self, state: &mut H) {
+ {self.cause}.hash(state);
+ {self.stale_time}.hash(state);
+ }
+ }
+
+ impl PartialEq for sctp_error_out_of_resource {
+ fn eq(&self, other: &sctp_error_out_of_resource) -> bool {
+ return {self.cause} == {other.cause}
+ }
+ }
+ impl Eq for sctp_error_out_of_resource {}
+ impl ::fmt::Debug for sctp_error_out_of_resource {
+ fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result {
+ f.debug_struct("sctp_error_out_of_resource")
+ .field("cause", &{self.cause})
+ .finish()
+ }
+ }
+ impl ::hash::Hash for sctp_error_out_of_resource {
+ fn hash<H: ::hash::Hasher>(&self, state: &mut H) {
+ {self.cause}.hash(state);
+ }
+ }
+
+ impl PartialEq for sctp_error_unresolv_addr {
+ fn eq(&self, other: &sctp_error_unresolv_addr) -> bool {
+ return {self.cause} == {other.cause}
+ }
+ }
+ impl Eq for sctp_error_unresolv_addr {}
+ impl ::fmt::Debug for sctp_error_unresolv_addr {
+ fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result {
+ f.debug_struct("sctp_error_unresolv_addr")
+ .field("cause", &{self.cause})
+ .finish()
+ }
+ }
+ impl ::hash::Hash for sctp_error_unresolv_addr {
+ fn hash<H: ::hash::Hasher>(&self, state: &mut H) {
+ {self.cause}.hash(state);
+ }
+ }
+
+ impl PartialEq for sctp_error_unrecognized_chunk {
+ fn eq(&self, other: &sctp_error_unrecognized_chunk) -> bool {
+ return {self.cause} == {other.cause} &&
+ {self.ch} == {other.ch}
+ }
+ }
+ impl Eq for sctp_error_unrecognized_chunk {}
+ impl ::fmt::Debug for sctp_error_unrecognized_chunk {
+ fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result {
+ f.debug_struct("sctp_error_unrecognized_chunk")
+ .field("cause", &{self.cause})
+ .field("ch", &{self.ch})
+ .finish()
+ }
+ }
+ impl ::hash::Hash for sctp_error_unrecognized_chunk {
+ fn hash<H: ::hash::Hasher>(&self, state: &mut H) {
+ {self.cause}.hash(state);
+ {self.ch}.hash(state);
+ }
+ }
+
+ impl PartialEq for sctp_error_no_user_data {
+ fn eq(&self, other: &sctp_error_no_user_data) -> bool {
+ return {self.cause} == {other.cause} &&
+ {self.tsn} == {other.tsn}
+ }
+ }
+ impl Eq for sctp_error_no_user_data {}
+ impl ::fmt::Debug for sctp_error_no_user_data {
+ fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result {
+ f.debug_struct("sctp_error_no_user_data")
+ .field("cause", &{self.cause})
+ .field("tsn", &{self.tsn})
+ .finish()
+ }
+ }
+ impl ::hash::Hash for sctp_error_no_user_data {
+ fn hash<H: ::hash::Hasher>(&self, state: &mut H) {
+ {self.cause}.hash(state);
+ {self.tsn}.hash(state);
+ }
+ }
+
+ impl PartialEq for sctp_error_auth_invalid_hmac {
+ fn eq(&self, other: &sctp_error_auth_invalid_hmac) -> bool {
+ return {self.cause} == {other.cause} &&
+ {self.hmac_id} == {other.hmac_id}
+ }
+ }
+ impl Eq for sctp_error_auth_invalid_hmac {}
+ impl ::fmt::Debug for sctp_error_auth_invalid_hmac {
+ fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result {
+ f.debug_struct("sctp_error_invalid_hmac")
+ .field("cause", &{self.cause})
+ .field("hmac_id", &{self.hmac_id})
+ .finish()
+ }
+ }
+ impl ::hash::Hash for sctp_error_auth_invalid_hmac {
+ fn hash<H: ::hash::Hasher>(&self, state: &mut H) {
+ {self.cause}.hash(state);
+ {self.hmac_id}.hash(state);
+ }
+ }
}
}
@@ -1928,8 +2617,14 @@ pub const SF_USER_READAHEAD: ::c_int = 0x00000008;
pub const SF_NOCACHE: ::c_int = 0x00000010;
pub const O_CLOEXEC: ::c_int = 0x00100000;
pub const O_DIRECTORY: ::c_int = 0x00020000;
+pub const O_DSYNC: ::c_int = 0x01000000;
+pub const O_EMPTY_PATH: ::c_int = 0x02000000;
pub const O_EXEC: ::c_int = 0x00040000;
+pub const O_PATH: ::c_int = 0x00400000;
+pub const O_RESOLVE_BENEATH: ::c_int = 0x00800000;
+pub const O_SEARCH: ::c_int = O_EXEC;
pub const O_TTY_INIT: ::c_int = 0x00080000;
+pub const O_VERIFY: ::c_int = 0x00200000;
pub const F_GETLK: ::c_int = 11;
pub const F_SETLK: ::c_int = 12;
pub const F_SETLKW: ::c_int = 13;
@@ -2306,9 +3001,17 @@ pub const SO_SETFIB: ::c_int = 0x1014;
pub const SO_USER_COOKIE: ::c_int = 0x1015;
pub const SO_PROTOCOL: ::c_int = 0x1016;
pub const SO_PROTOTYPE: ::c_int = SO_PROTOCOL;
+pub const SO_TS_CLOCK: ::c_int = 0x1017;
pub const SO_DOMAIN: ::c_int = 0x1019;
pub const SO_VENDOR: ::c_int = 0x80000000;
+pub const SO_TS_REALTIME_MICRO: ::c_int = 0;
+pub const SO_TS_BINTIME: ::c_int = 1;
+pub const SO_TS_REALTIME: ::c_int = 2;
+pub const SO_TS_MONOTONIC: ::c_int = 3;
+pub const SO_TS_DEFAULT: ::c_int = SO_TS_REALTIME_MICRO;
+pub const SO_TS_CLOCK_MAX: ::c_int = SO_TS_MONOTONIC;
+
pub const LOCAL_CREDS: ::c_int = 2;
pub const LOCAL_CREDS_PERSISTENT: ::c_int = 3;
pub const LOCAL_CONNWAIT: ::c_int = 4;
@@ -2356,6 +3059,7 @@ pub const PT_VM_TIMESTAMP: ::c_int = 40;
pub const PT_VM_ENTRY: ::c_int = 41;
pub const PT_GETREGSET: ::c_int = 42;
pub const PT_SETREGSET: ::c_int = 43;
+pub const PT_SC_REMOTE: ::c_int = 44;
pub const PT_FIRSTMACH: ::c_int = 64;
pub const PTRACE_EXEC: ::c_int = 0x0001;
@@ -3033,6 +3737,8 @@ pub const AT_EACCESS: ::c_int = 0x100;
pub const AT_SYMLINK_NOFOLLOW: ::c_int = 0x200;
pub const AT_SYMLINK_FOLLOW: ::c_int = 0x400;
pub const AT_REMOVEDIR: ::c_int = 0x800;
+pub const AT_RESOLVE_BENEATH: ::c_int = 0x2000;
+pub const AT_EMPTY_PATH: ::c_int = 0x4000;
pub const AT_NULL: ::c_int = 0;
pub const AT_IGNORE: ::c_int = 1;
@@ -3792,6 +4498,167 @@ pub const CPU_WHICH_CPUSET: ::c_int = 3;
pub const CPU_WHICH_IRQ: ::c_int = 4;
pub const CPU_WHICH_JAIL: ::c_int = 5;
+// sys/signal.h
+pub const SIGTHR: ::c_int = 32;
+pub const SIGLWP: ::c_int = SIGTHR;
+pub const SIGLIBRT: ::c_int = 33;
+
+// netinet/sctp.h
+pub const SCTP_FUTURE_ASSOC: ::c_int = 0;
+pub const SCTP_CURRENT_ASSOC: ::c_int = 1;
+pub const SCTP_ALL_ASSOC: ::c_int = 2;
+
+pub const SCTP_NO_NEXT_MSG: ::c_int = 0x0000;
+pub const SCTP_NEXT_MSG_AVAIL: ::c_int = 0x0001;
+pub const SCTP_NEXT_MSG_ISCOMPLETE: ::c_int = 0x0002;
+pub const SCTP_NEXT_MSG_IS_UNORDERED: ::c_int = 0x0004;
+pub const SCTP_NEXT_MSG_IS_NOTIFICATION: ::c_int = 0x0008;
+
+pub const SCTP_RECVV_NOINFO: ::c_int = 0;
+pub const SCTP_RECVV_RCVINFO: ::c_int = 1;
+pub const SCTP_RECVV_NXTINFO: ::c_int = 2;
+pub const SCTP_RECVV_RN: ::c_int = 3;
+
+pub const SCTP_SENDV_NOINFO: ::c_int = 0;
+pub const SCTP_SENDV_SNDINFO: ::c_int = 1;
+pub const SCTP_SENDV_PRINFO: ::c_int = 2;
+pub const SCTP_SENDV_AUTHINFO: ::c_int = 3;
+pub const SCTP_SENDV_SPA: ::c_int = 4;
+
+pub const SCTP_SEND_SNDINFO_VALID: ::c_int = 0x00000001;
+pub const SCTP_SEND_PRINFO_VALID: ::c_int = 0x00000002;
+pub const SCTP_SEND_AUTHINFO_VALID: ::c_int = 0x00000004;
+
+pub const SCTP_NOTIFICATION: ::c_int = 0x0010;
+pub const SCTP_COMPLETE: ::c_int = 0x0020;
+pub const SCTP_EOF: ::c_int = 0x0100;
+pub const SCTP_ABORT: ::c_int = 0x0200;
+pub const SCTP_UNORDERED: ::c_int = 0x0400;
+pub const SCTP_ADDR_OVER: ::c_int = 0x0800;
+pub const SCTP_SENDALL: ::c_int = 0x1000;
+pub const SCTP_EOR: ::c_int = 0x2000;
+pub const SCTP_SACK_IMMEDIATELY: ::c_int = 0x4000;
+pub const SCTP_PR_SCTP_NONE: ::c_int = 0x0000;
+pub const SCTP_PR_SCTP_TTL: ::c_int = 0x0001;
+pub const SCTP_PR_SCTP_PRIO: ::c_int = 0x0002;
+pub const SCTP_PR_SCTP_BUF: ::c_int = SCTP_PR_SCTP_PRIO;
+pub const SCTP_PR_SCTP_RTX: ::c_int = 0x0003;
+pub const SCTP_PR_SCTP_MAX: ::c_int = SCTP_PR_SCTP_RTX;
+pub const SCTP_PR_SCTP_ALL: ::c_int = 0x000f;
+
+pub const SCTP_INIT: ::c_int = 0x0001;
+pub const SCTP_SNDRCV: ::c_int = 0x0002;
+pub const SCTP_EXTRCV: ::c_int = 0x0003;
+pub const SCTP_SNDINFO: ::c_int = 0x0004;
+pub const SCTP_RCVINFO: ::c_int = 0x0005;
+pub const SCTP_NXTINFO: ::c_int = 0x0006;
+pub const SCTP_PRINFO: ::c_int = 0x0007;
+pub const SCTP_AUTHINFO: ::c_int = 0x0008;
+pub const SCTP_DSTADDRV4: ::c_int = 0x0009;
+pub const SCTP_DSTADDRV6: ::c_int = 0x000a;
+
+pub const SCTP_RTOINFO: ::c_int = 0x00000001;
+pub const SCTP_ASSOCINFO: ::c_int = 0x00000002;
+pub const SCTP_INITMSG: ::c_int = 0x00000003;
+pub const SCTP_NODELAY: ::c_int = 0x00000004;
+pub const SCTP_AUTOCLOSE: ::c_int = 0x00000005;
+pub const SCTP_SET_PEER_PRIMARY_ADDR: ::c_int = 0x00000006;
+pub const SCTP_PRIMARY_ADDR: ::c_int = 0x00000007;
+pub const SCTP_ADAPTATION_LAYER: ::c_int = 0x00000008;
+pub const SCTP_ADAPTION_LAYER: ::c_int = 0x00000008;
+pub const SCTP_DISABLE_FRAGMENTS: ::c_int = 0x00000009;
+pub const SCTP_PEER_ADDR_PARAMS: ::c_int = 0x0000000a;
+pub const SCTP_DEFAULT_SEND_PARAM: ::c_int = 0x0000000b;
+pub const SCTP_EVENTS: ::c_int = 0x0000000c;
+pub const SCTP_I_WANT_MAPPED_V4_ADDR: ::c_int = 0x0000000d;
+pub const SCTP_MAXSEG: ::c_int = 0x0000000e;
+pub const SCTP_DELAYED_SACK: ::c_int = 0x0000000f;
+pub const SCTP_FRAGMENT_INTERLEAVE: ::c_int = 0x00000010;
+pub const SCTP_PARTIAL_DELIVERY_POINT: ::c_int = 0x00000011;
+pub const SCTP_AUTH_CHUNK: ::c_int = 0x00000012;
+pub const SCTP_AUTH_KEY: ::c_int = 0x00000013;
+pub const SCTP_HMAC_IDENT: ::c_int = 0x00000014;
+pub const SCTP_AUTH_ACTIVE_KEY: ::c_int = 0x00000015;
+pub const SCTP_AUTH_DELETE_KEY: ::c_int = 0x00000016;
+pub const SCTP_USE_EXT_RCVINFO: ::c_int = 0x00000017;
+pub const SCTP_AUTO_ASCONF: ::c_int = 0x00000018;
+pub const SCTP_MAXBURST: ::c_int = 0x00000019;
+pub const SCTP_MAX_BURST: ::c_int = 0x00000019;
+pub const SCTP_CONTEXT: ::c_int = 0x0000001a;
+pub const SCTP_EXPLICIT_EOR: ::c_int = 0x00000001b;
+pub const SCTP_REUSE_PORT: ::c_int = 0x00000001c;
+pub const SCTP_AUTH_DEACTIVATE_KEY: ::c_int = 0x00000001d;
+pub const SCTP_EVENT: ::c_int = 0x0000001e;
+pub const SCTP_RECVRCVINFO: ::c_int = 0x0000001f;
+pub const SCTP_RECVNXTINFO: ::c_int = 0x00000020;
+pub const SCTP_DEFAULT_SNDINFO: ::c_int = 0x00000021;
+pub const SCTP_DEFAULT_PRINFO: ::c_int = 0x00000022;
+pub const SCTP_PEER_ADDR_THLDS: ::c_int = 0x00000023;
+pub const SCTP_REMOTE_UDP_ENCAPS_PORT: ::c_int = 0x00000024;
+pub const SCTP_ECN_SUPPORTED: ::c_int = 0x00000025;
+pub const SCTP_AUTH_SUPPORTED: ::c_int = 0x00000027;
+pub const SCTP_ASCONF_SUPPORTED: ::c_int = 0x00000028;
+pub const SCTP_RECONFIG_SUPPORTED: ::c_int = 0x00000029;
+pub const SCTP_NRSACK_SUPPORTED: ::c_int = 0x00000030;
+pub const SCTP_PKTDROP_SUPPORTED: ::c_int = 0x00000031;
+pub const SCTP_MAX_CWND: ::c_int = 0x00000032;
+
+pub const SCTP_STATUS: ::c_int = 0x00000100;
+pub const SCTP_GET_PEER_ADDR_INFO: ::c_int = 0x00000101;
+pub const SCTP_PEER_AUTH_CHUNKS: ::c_int = 0x00000102;
+pub const SCTP_LOCAL_AUTH_CHUNKS: ::c_int = 0x00000103;
+pub const SCTP_GET_ASSOC_NUMBER: ::c_int = 0x00000104;
+pub const SCTP_GET_ASSOC_ID_LIST: ::c_int = 0x00000105;
+pub const SCTP_TIMEOUTS: ::c_int = 0x00000106;
+pub const SCTP_PR_STREAM_STATUS: ::c_int = 0x00000107;
+pub const SCTP_PR_ASSOC_STATUS: ::c_int = 0x00000108;
+
+pub const SCTP_COMM_UP: ::c_int = 0x0001;
+pub const SCTP_COMM_LOST: ::c_int = 0x0002;
+pub const SCTP_RESTART: ::c_int = 0x0003;
+pub const SCTP_SHUTDOWN_COMP: ::c_int = 0x0004;
+pub const SCTP_CANT_STR_ASSOC: ::c_int = 0x0005;
+
+pub const SCTP_ASSOC_SUPPORTS_PR: ::c_int = 0x01;
+pub const SCTP_ASSOC_SUPPORTS_AUTH: ::c_int = 0x02;
+pub const SCTP_ASSOC_SUPPORTS_ASCONF: ::c_int = 0x03;
+pub const SCTP_ASSOC_SUPPORTS_MULTIBUF: ::c_int = 0x04;
+pub const SCTP_ASSOC_SUPPORTS_RE_CONFIG: ::c_int = 0x05;
+pub const SCTP_ASSOC_SUPPORTS_INTERLEAVING: ::c_int = 0x06;
+pub const SCTP_ASSOC_SUPPORTS_MAX: ::c_int = 0x06;
+
+pub const SCTP_ADDR_AVAILABLE: ::c_int = 0x0001;
+pub const SCTP_ADDR_UNREACHABLE: ::c_int = 0x0002;
+pub const SCTP_ADDR_REMOVED: ::c_int = 0x0003;
+pub const SCTP_ADDR_ADDED: ::c_int = 0x0004;
+pub const SCTP_ADDR_MADE_PRIM: ::c_int = 0x0005;
+pub const SCTP_ADDR_CONFIRMED: ::c_int = 0x0006;
+
+pub const SCTP_ACTIVE: ::c_int = 0x0001;
+pub const SCTP_INACTIVE: ::c_int = 0x0002;
+pub const SCTP_UNCONFIRMED: ::c_int = 0x0200;
+
+pub const SCTP_DATA_UNSENT: ::c_int = 0x0001;
+pub const SCTP_DATA_SENT: ::c_int = 0x0002;
+
+pub const SCTP_PARTIAL_DELIVERY_ABORTED: ::c_int = 0x0001;
+
+pub const SCTP_AUTH_NEW_KEY: ::c_int = 0x0001;
+pub const SCTP_AUTH_NEWKEY: ::c_int = SCTP_AUTH_NEW_KEY;
+pub const SCTP_AUTH_NO_AUTH: ::c_int = 0x0002;
+pub const SCTP_AUTH_FREE_KEY: ::c_int = 0x0003;
+
+pub const SCTP_STREAM_RESET_INCOMING_SSN: ::c_int = 0x0001;
+pub const SCTP_STREAM_RESET_OUTGOING_SSN: ::c_int = 0x0002;
+pub const SCTP_STREAM_RESET_DENIED: ::c_int = 0x0004;
+pub const SCTP_STREAM_RESET_FAILED: ::c_int = 0x0008;
+
+pub const SCTP_ASSOC_RESET_DENIED: ::c_int = 0x0004;
+pub const SCTP_ASSOC_RESET_FAILED: ::c_int = 0x0008;
+
+pub const SCTP_STREAM_CHANGE_DENIED: ::c_int = 0x0004;
+pub const SCTP_STREAM_CHANGE_FAILED: ::c_int = 0x0008;
+
const_fn! {
{const} fn _ALIGN(p: usize) -> usize {
(p + _ALIGNBYTES) & !_ALIGNBYTES
@@ -3913,6 +4780,39 @@ safe_f! {
pub {const} fn WIFSIGNALED(status: ::c_int) -> bool {
(status & 0o177) != 0o177 && (status & 0o177) != 0 && status != 0x13
}
+
+ pub {const} fn INVALID_SINFO_FLAG(x: ::c_int) -> bool {
+ (x) & 0xfffffff0 & !(SCTP_EOF | SCTP_ABORT | SCTP_UNORDERED |
+ SCTP_ADDR_OVER | SCTP_SENDALL | SCTP_EOR | SCTP_SACK_IMMEDIATELY) != 0
+ }
+
+ pub {const} fn PR_SCTP_POLICY(x: ::c_int) -> ::c_int {
+ x & 0x0f
+ }
+
+ pub {const} fn PR_SCTP_ENABLED(x: ::c_int) -> bool {
+ PR_SCTP_POLICY(x) != SCTP_PR_SCTP_NONE && PR_SCTP_POLICY(x) != SCTP_PR_SCTP_ALL
+ }
+
+ pub {const} fn PR_SCTP_TTL_ENABLED(x: ::c_int) -> bool {
+ PR_SCTP_POLICY(x) == SCTP_PR_SCTP_TTL
+ }
+
+ pub {const} fn PR_SCTP_BUF_ENABLED(x: ::c_int) -> bool {
+ PR_SCTP_POLICY(x) == SCTP_PR_SCTP_BUF
+ }
+
+ pub {const} fn PR_SCTP_RTX_ENABLED(x: ::c_int) -> bool {
+ PR_SCTP_POLICY(x) == SCTP_PR_SCTP_RTX
+ }
+
+ pub {const} fn PR_SCTP_INVALID_POLICY(x: ::c_int) -> bool {
+ PR_SCTP_POLICY(x) > SCTP_PR_SCTP_MAX
+ }
+
+ pub {const} fn PR_SCTP_VALID_POLICY(x: ::c_int) -> bool {
+ PR_SCTP_POLICY(x) <= SCTP_PR_SCTP_MAX
+ }
}
cfg_if! {
@@ -4368,6 +5268,14 @@ extern "C" {
pub fn getpagesizes(pagesize: *mut ::size_t, nelem: ::c_int) -> ::c_int;
pub fn clock_getcpuclockid2(arg1: ::id_t, arg2: ::c_int, arg3: *mut clockid_t) -> ::c_int;
+ pub fn clock_nanosleep(
+ clk_id: ::clockid_t,
+ flags: ::c_int,
+ rqtp: *const ::timespec,
+ rmtp: *mut ::timespec,
+ ) -> ::c_int;
+
+ pub fn strchrnul(s: *const ::c_char, c: ::c_int) -> *mut ::c_char;
pub fn shm_create_largepage(
path: *const ::c_char,
@@ -4384,6 +5292,17 @@ extern "C" {
pub fn memfd_create(name: *const ::c_char, flags: ::c_uint) -> ::c_int;
pub fn setaudit(auditinfo: *const auditinfo_t) -> ::c_int;
+ pub fn eventfd(init: ::c_uint, flags: ::c_int) -> ::c_int;
+
+ pub fn fdatasync(fd: ::c_int) -> ::c_int;
+
+ pub fn getrandom(buf: *mut ::c_void, buflen: ::size_t, flags: ::c_uint) -> ::ssize_t;
+ pub fn getentropy(buf: *mut ::c_void, buflen: ::size_t) -> ::c_int;
+ pub fn elf_aux_info(aux: ::c_int, buf: *mut ::c_void, buflen: ::c_int) -> ::c_int;
+ pub fn setproctitle_fast(fmt: *const ::c_char, ...);
+ pub fn timingsafe_bcmp(a: *const ::c_void, b: *const ::c_void, len: ::size_t) -> ::c_int;
+ pub fn timingsafe_memcmp(a: *const ::c_void, b: *const ::c_void, len: ::size_t) -> ::c_int;
+
pub fn _umtx_op(
obj: *mut ::c_void,
op: ::c_int,
@@ -4391,6 +5310,57 @@ extern "C" {
uaddr: *mut ::c_void,
uaddr2: *mut ::c_void,
) -> ::c_int;
+
+ pub fn sctp_peeloff(s: ::c_int, id: ::sctp_assoc_t) -> ::c_int;
+ pub fn sctp_bindx(s: ::c_int, addrs: *mut ::sockaddr, num: ::c_int, tpe: ::c_int) -> ::c_int;
+ pub fn sctp_connectx(
+ s: ::c_int,
+ addrs: *const ::sockaddr,
+ addrcnt: ::c_int,
+ id: *mut ::sctp_assoc_t,
+ ) -> ::c_int;
+ pub fn sctp_getaddrlen(family: ::sa_family_t) -> ::c_int;
+ pub fn sctp_getpaddrs(
+ s: ::c_int,
+ asocid: ::sctp_assoc_t,
+ addrs: *mut *mut ::sockaddr,
+ ) -> ::c_int;
+ pub fn sctp_freepaddrs(addrs: *mut ::sockaddr);
+ pub fn sctp_getladdrs(
+ s: ::c_int,
+ asocid: ::sctp_assoc_t,
+ addrs: *mut *mut ::sockaddr,
+ ) -> ::c_int;
+ pub fn sctp_freeladdrs(addrs: *mut ::sockaddr);
+ pub fn sctp_opt_info(
+ s: ::c_int,
+ id: ::sctp_assoc_t,
+ opt: ::c_int,
+ arg: *mut ::c_void,
+ size: *mut ::socklen_t,
+ ) -> ::c_int;
+ pub fn sctp_sendv(
+ sd: ::c_int,
+ iov: *const ::iovec,
+ iovcnt: ::c_int,
+ addrs: *mut ::sockaddr,
+ addrcnt: ::c_int,
+ info: *mut ::c_void,
+ infolen: ::socklen_t,
+ infotype: ::c_uint,
+ flags: ::c_int,
+ ) -> ::ssize_t;
+ pub fn sctp_recvv(
+ sd: ::c_int,
+ iov: *const ::iovec,
+ iovcnt: ::c_int,
+ from: *mut ::sockaddr,
+ fromlen: *mut ::socklen_t,
+ info: *mut ::c_void,
+ infolen: *mut ::socklen_t,
+ infotype: *mut ::c_uint,
+ flags: *mut ::c_int,
+ ) -> ::ssize_t;
}
#[link(name = "memstat")]
@@ -4483,6 +5453,17 @@ extern "C" {
pub fn flopenat(fd: ::c_int, path: *const ::c_char, flags: ::c_int, ...) -> ::c_int;
pub fn getlocalbase() -> *const ::c_char;
+
+ pub fn pidfile_open(
+ path: *const ::c_char,
+ mode: ::mode_t,
+ pidptr: *mut ::pid_t,
+ ) -> *mut ::pidfh;
+ pub fn pidfile_write(path: *mut ::pidfh) -> ::c_int;
+ pub fn pidfile_close(path: *mut ::pidfh) -> ::c_int;
+ pub fn pidfile_remove(path: *mut ::pidfh) -> ::c_int;
+ pub fn pidfile_fileno(path: *const ::pidfh) -> ::c_int;
+ // FIXME: pidfile_signal in due time (both manpage present and updated image snapshot)
}
#[link(name = "procstat")]
diff --git a/vendor/libc/src/unix/bsd/freebsdlike/mod.rs b/vendor/libc/src/unix/bsd/freebsdlike/mod.rs
index 9aefb36e4..6a0f383bc 100644
--- a/vendor/libc/src/unix/bsd/freebsdlike/mod.rs
+++ b/vendor/libc/src/unix/bsd/freebsdlike/mod.rs
@@ -824,12 +824,15 @@ pub const CLOCK_VIRTUAL: ::clockid_t = 1;
pub const CLOCK_PROF: ::clockid_t = 2;
pub const CLOCK_MONOTONIC: ::clockid_t = 4;
pub const CLOCK_UPTIME: ::clockid_t = 5;
+pub const CLOCK_BOOTTIME: ::clockid_t = CLOCK_UPTIME;
pub const CLOCK_UPTIME_PRECISE: ::clockid_t = 7;
pub const CLOCK_UPTIME_FAST: ::clockid_t = 8;
pub const CLOCK_REALTIME_PRECISE: ::clockid_t = 9;
pub const CLOCK_REALTIME_FAST: ::clockid_t = 10;
+pub const CLOCK_REALTIME_COARSE: ::clockid_t = CLOCK_REALTIME_FAST;
pub const CLOCK_MONOTONIC_PRECISE: ::clockid_t = 11;
pub const CLOCK_MONOTONIC_FAST: ::clockid_t = 12;
+pub const CLOCK_MONOTONIC_COARSE: ::clockid_t = CLOCK_MONOTONIC_FAST;
pub const CLOCK_SECOND: ::clockid_t = 13;
pub const CLOCK_THREAD_CPUTIME_ID: ::clockid_t = 14;
pub const CLOCK_PROCESS_CPUTIME_ID: ::clockid_t = 15;
diff --git a/vendor/libc/src/unix/bsd/netbsdlike/mod.rs b/vendor/libc/src/unix/bsd/netbsdlike/mod.rs
index b71531c25..c43a4b9e8 100644
--- a/vendor/libc/src/unix/bsd/netbsdlike/mod.rs
+++ b/vendor/libc/src/unix/bsd/netbsdlike/mod.rs
@@ -746,6 +746,7 @@ extern "C" {
pub fn dirname(path: *mut ::c_char) -> *mut ::c_char;
pub fn basename(path: *mut ::c_char) -> *mut ::c_char;
+ pub fn getentropy(buf: *mut ::c_void, buflen: ::size_t) -> ::c_int;
}
cfg_if! {
diff --git a/vendor/libc/src/unix/bsd/netbsdlike/netbsd/mod.rs b/vendor/libc/src/unix/bsd/netbsdlike/netbsd/mod.rs
index 41f6b23d1..87132e258 100644
--- a/vendor/libc/src/unix/bsd/netbsdlike/netbsd/mod.rs
+++ b/vendor/libc/src/unix/bsd/netbsdlike/netbsd/mod.rs
@@ -709,6 +709,49 @@ s! {
#[cfg(libc_union)]
pub ifc_ifcu: __c_anonymous_ifc_ifcu,
}
+
+ pub struct tcp_info {
+ pub tcpi_state: u8,
+ pub __tcpi_ca_state: u8,
+ pub __tcpi_retransmits: u8,
+ pub __tcpi_probes: u8,
+ pub __tcpi_backoff: u8,
+ pub tcpi_options: u8,
+ pub tcp_snd_wscale: u8,
+ pub tcp_rcv_wscale: u8,
+ pub tcpi_rto: u32,
+ pub __tcpi_ato: u32,
+ pub tcpi_snd_mss: u32,
+ pub tcpi_rcv_mss: u32,
+ pub __tcpi_unacked: u32,
+ pub __tcpi_sacked: u32,
+ pub __tcpi_lost: u32,
+ pub __tcpi_retrans: u32,
+ pub __tcpi_fackets: u32,
+ pub __tcpi_last_data_sent: u32,
+ pub __tcpi_last_ack_sent: u32,
+ pub tcpi_last_data_recv: u32,
+ pub __tcpi_last_ack_recv: u32,
+ pub __tcpi_pmtu: u32,
+ pub __tcpi_rcv_ssthresh: u32,
+ pub tcpi_rtt: u32,
+ pub tcpi_rttvar: u32,
+ pub tcpi_snd_ssthresh: u32,
+ pub tcpi_snd_cwnd: u32,
+ pub __tcpi_advmss: u32,
+ pub __tcpi_reordering: u32,
+ pub __tcpi_rcv_rtt: u32,
+ pub tcpi_rcv_space: u32,
+ pub tcpi_snd_wnd: u32,
+ pub tcpi_snd_bwnd: u32,
+ pub tcpi_snd_nxt: u32,
+ pub tcpi_rcv_nxt: u32,
+ pub tcpi_toe_tid: u32,
+ pub tcpi_snd_rexmitpack: u32,
+ pub tcpi_rcv_ooopack: u32,
+ pub tcpi_snd_zerowin: u32,
+ pub __tcpi_pad: [u32; 26],
+ }
}
s_no_extra_traits! {
@@ -1926,6 +1969,9 @@ pub const EVFILT_SIGNAL: u32 = 5;
pub const EVFILT_TIMER: u32 = 6;
pub const EVFILT_VNODE: u32 = 3;
pub const EVFILT_WRITE: u32 = 1;
+pub const EVFILT_FS: u32 = 7;
+pub const EVFILT_USER: u32 = 8;
+pub const EVFILT_EMPTY: u32 = 9;
pub const EV_ADD: u32 = 0x1;
pub const EV_DELETE: u32 = 0x2;
@@ -1956,6 +2002,11 @@ pub const NOTE_PCTRLMASK: u32 = 0xf0000000;
pub const NOTE_TRACK: u32 = 0x00000001;
pub const NOTE_TRACKERR: u32 = 0x00000002;
pub const NOTE_CHILD: u32 = 0x00000004;
+pub const NOTE_MSECONDS: u32 = 0x00000000;
+pub const NOTE_SECONDS: u32 = 0x00000001;
+pub const NOTE_USECONDS: u32 = 0x00000002;
+pub const NOTE_NSECONDS: u32 = 0x00000003;
+pub const NOTE_ABSTIME: u32 = 0x000000010;
pub const TMP_MAX: ::c_uint = 308915776;
@@ -2321,6 +2372,11 @@ pub const XATTR_REPLACE: ::c_int = 0x02;
// sys/extattr.h
pub const EXTATTR_NAMESPACE_EMPTY: ::c_int = 0;
+// For getrandom()
+pub const GRND_NONBLOCK: ::c_uint = 0x1;
+pub const GRND_RANDOM: ::c_uint = 0x2;
+pub const GRND_INSECURE: ::c_uint = 0x4;
+
const_fn! {
{const} fn _ALIGN(p: usize) -> usize {
(p + _ALIGNBYTES) & !_ALIGNBYTES
@@ -2793,7 +2849,12 @@ extern "C" {
ts: *const ::timespec,
sigmask: *const ::sigset_t,
) -> ::c_int;
-
+ pub fn ppoll(
+ fds: *mut ::pollfd,
+ nfds: ::nfds_t,
+ ts: *const ::timespec,
+ sigmask: *const ::sigset_t,
+ ) -> ::c_int;
pub fn posix_spawn(
pid: *mut ::pid_t,
path: *const ::c_char,
@@ -2870,6 +2931,7 @@ extern "C" {
fd: ::c_int,
newfd: ::c_int,
) -> ::c_int;
+ pub fn getrandom(buf: *mut ::c_void, buflen: ::size_t, flags: ::c_uint) -> ::ssize_t;
}
#[link(name = "util")]
diff --git a/vendor/libc/src/unix/bsd/netbsdlike/openbsd/mod.rs b/vendor/libc/src/unix/bsd/netbsdlike/openbsd/mod.rs
index 3c966990a..87acecb6a 100644
--- a/vendor/libc/src/unix/bsd/netbsdlike/openbsd/mod.rs
+++ b/vendor/libc/src/unix/bsd/netbsdlike/openbsd/mod.rs
@@ -498,6 +498,7 @@ s! {
pub p_tid: i32,
pub p_rtableid: u32,
pub p_pledge: u64,
+ pub p_name: [::c_char; KI_MAXCOMLEN as usize],
}
pub struct kinfo_vmentry {
@@ -1822,7 +1823,6 @@ extern "C" {
newp: *mut ::c_void,
newlen: ::size_t,
) -> ::c_int;
- pub fn getentropy(buf: *mut ::c_void, buflen: ::size_t) -> ::c_int;
pub fn setresgid(rgid: ::gid_t, egid: ::gid_t, sgid: ::gid_t) -> ::c_int;
pub fn setresuid(ruid: ::uid_t, euid: ::uid_t, suid: ::uid_t) -> ::c_int;
pub fn ptrace(request: ::c_int, pid: ::pid_t, addr: caddr_t, data: ::c_int) -> ::c_int;
@@ -1888,6 +1888,8 @@ extern "C" {
timeout: *const ::timespec,
uaddr2: *mut u32,
) -> ::c_int;
+
+ pub fn mimmutable(addr: *mut ::c_void, len: ::size_t) -> ::c_int;
}
#[link(name = "execinfo")]
diff --git a/vendor/libc/src/unix/haiku/mod.rs b/vendor/libc/src/unix/haiku/mod.rs
index 95ddadaee..1c40c51e6 100644
--- a/vendor/libc/src/unix/haiku/mod.rs
+++ b/vendor/libc/src/unix/haiku/mod.rs
@@ -1984,6 +1984,17 @@ extern "C" {
longopts: *const option,
longindex: *mut ::c_int,
) -> ::c_int;
+ pub fn strcasecmp_l(
+ string1: *const ::c_char,
+ string2: *const ::c_char,
+ locale: ::locale_t,
+ ) -> ::c_int;
+ pub fn strncasecmp_l(
+ string1: *const ::c_char,
+ string2: *const ::c_char,
+ length: ::size_t,
+ locale: ::locale_t,
+ ) -> ::c_int;
}
#[link(name = "bsd")]
diff --git a/vendor/libc/src/unix/linux_like/android/b32/arm.rs b/vendor/libc/src/unix/linux_like/android/b32/arm.rs
index 8b8e54955..a062175ee 100644
--- a/vendor/libc/src/unix/linux_like/android/b32/arm.rs
+++ b/vendor/libc/src/unix/linux_like/android/b32/arm.rs
@@ -501,9 +501,17 @@ pub const SYS_pwritev2: ::c_long = 393;
pub const SYS_pkey_mprotect: ::c_long = 394;
pub const SYS_pkey_alloc: ::c_long = 395;
pub const SYS_pkey_free: ::c_long = 396;
+pub const SYS_statx: ::c_long = 397;
+pub const SYS_pidfd_send_signal: ::c_long = 424;
pub const SYS_io_uring_setup: ::c_long = 425;
pub const SYS_io_uring_enter: ::c_long = 426;
pub const SYS_io_uring_register: ::c_long = 427;
+pub const SYS_open_tree: ::c_long = 428;
+pub const SYS_move_mount: ::c_long = 429;
+pub const SYS_fsopen: ::c_long = 430;
+pub const SYS_fsconfig: ::c_long = 431;
+pub const SYS_fsmount: ::c_long = 432;
+pub const SYS_fspick: ::c_long = 433;
// offsets in mcontext_t.gregs from sys/ucontext.h
pub const REG_R0: ::c_int = 0;
diff --git a/vendor/libc/src/unix/linux_like/android/b32/x86/mod.rs b/vendor/libc/src/unix/linux_like/android/b32/x86/mod.rs
index 9545ecbfb..e549f3b51 100644
--- a/vendor/libc/src/unix/linux_like/android/b32/x86/mod.rs
+++ b/vendor/libc/src/unix/linux_like/android/b32/x86/mod.rs
@@ -533,9 +533,17 @@ pub const SYS_pwritev2: ::c_long = 379;
pub const SYS_pkey_mprotect: ::c_long = 380;
pub const SYS_pkey_alloc: ::c_long = 381;
pub const SYS_pkey_free: ::c_long = 382;
+pub const SYS_statx: ::c_long = 383;
+pub const SYS_pidfd_send_signal: ::c_long = 424;
pub const SYS_io_uring_setup: ::c_long = 425;
pub const SYS_io_uring_enter: ::c_long = 426;
pub const SYS_io_uring_register: ::c_long = 427;
+pub const SYS_open_tree: ::c_long = 428;
+pub const SYS_move_mount: ::c_long = 429;
+pub const SYS_fsopen: ::c_long = 430;
+pub const SYS_fsconfig: ::c_long = 431;
+pub const SYS_fsmount: ::c_long = 432;
+pub const SYS_fspick: ::c_long = 433;
// offsets in user_regs_structs, from sys/reg.h
pub const EBX: ::c_int = 0;
diff --git a/vendor/libc/src/unix/linux_like/android/b64/aarch64/mod.rs b/vendor/libc/src/unix/linux_like/android/b64/aarch64/mod.rs
index 36871b084..e7247fbb6 100644
--- a/vendor/libc/src/unix/linux_like/android/b64/aarch64/mod.rs
+++ b/vendor/libc/src/unix/linux_like/android/b64/aarch64/mod.rs
@@ -107,6 +107,31 @@ pub const HWCAP2_SVESHA3: ::c_ulong = 1 << 5;
pub const HWCAP2_SVESM4: ::c_ulong = 1 << 6;
pub const HWCAP2_FLAGM2: ::c_ulong = 1 << 7;
pub const HWCAP2_FRINT: ::c_ulong = 1 << 8;
+pub const HWCAP2_SVEI8MM: ::c_ulong = 1 << 9;
+pub const HWCAP2_SVEF32MM: ::c_ulong = 1 << 10;
+pub const HWCAP2_SVEF64MM: ::c_ulong = 1 << 11;
+pub const HWCAP2_SVEBF16: ::c_ulong = 1 << 12;
+pub const HWCAP2_I8MM: ::c_ulong = 1 << 13;
+pub const HWCAP2_BF16: ::c_ulong = 1 << 14;
+pub const HWCAP2_DGH: ::c_ulong = 1 << 15;
+pub const HWCAP2_RNG: ::c_ulong = 1 << 16;
+pub const HWCAP2_BTI: ::c_ulong = 1 << 17;
+pub const HWCAP2_MTE: ::c_ulong = 1 << 18;
+pub const HWCAP2_ECV: ::c_ulong = 1 << 19;
+pub const HWCAP2_AFP: ::c_ulong = 1 << 20;
+pub const HWCAP2_RPRES: ::c_ulong = 1 << 21;
+pub const HWCAP2_MTE3: ::c_ulong = 1 << 22;
+pub const HWCAP2_SME: ::c_ulong = 1 << 23;
+pub const HWCAP2_SME_I16I64: ::c_ulong = 1 << 24;
+pub const HWCAP2_SME_F64F64: ::c_ulong = 1 << 25;
+pub const HWCAP2_SME_I8I32: ::c_ulong = 1 << 26;
+pub const HWCAP2_SME_F16F32: ::c_ulong = 1 << 27;
+pub const HWCAP2_SME_B16F32: ::c_ulong = 1 << 28;
+pub const HWCAP2_SME_F32F32: ::c_ulong = 1 << 29;
+pub const HWCAP2_SME_FA64: ::c_ulong = 1 << 30;
+pub const HWCAP2_WFXT: ::c_ulong = 1 << 31;
+pub const HWCAP2_EBF16: ::c_ulong = 1 << 32;
+pub const HWCAP2_SVE_EBF16: ::c_ulong = 1 << 33;
pub const SYS_io_setup: ::c_long = 0;
pub const SYS_io_destroy: ::c_long = 1;
@@ -374,9 +399,17 @@ pub const SYS_pwritev2: ::c_long = 287;
pub const SYS_pkey_mprotect: ::c_long = 288;
pub const SYS_pkey_alloc: ::c_long = 289;
pub const SYS_pkey_free: ::c_long = 290;
+pub const SYS_statx: ::c_long = 291;
+pub const SYS_pidfd_send_signal: ::c_long = 424;
pub const SYS_io_uring_setup: ::c_long = 425;
pub const SYS_io_uring_enter: ::c_long = 426;
pub const SYS_io_uring_register: ::c_long = 427;
+pub const SYS_open_tree: ::c_long = 428;
+pub const SYS_move_mount: ::c_long = 429;
+pub const SYS_fsopen: ::c_long = 430;
+pub const SYS_fsconfig: ::c_long = 431;
+pub const SYS_fsmount: ::c_long = 432;
+pub const SYS_fspick: ::c_long = 433;
pub const SYS_syscalls: ::c_long = 436;
cfg_if! {
diff --git a/vendor/libc/src/unix/linux_like/android/b64/riscv64/mod.rs b/vendor/libc/src/unix/linux_like/android/b64/riscv64/mod.rs
index 2421792cf..9d414dc15 100644
--- a/vendor/libc/src/unix/linux_like/android/b64/riscv64/mod.rs
+++ b/vendor/libc/src/unix/linux_like/android/b64/riscv64/mod.rs
@@ -60,12 +60,12 @@ pub const SIGSTKSZ: ::size_t = 8192;
pub const MINSIGSTKSZ: ::size_t = 2048;
// From NDK's asm/hwcap.h
-pub const COMPAT_HWCAP_ISA_I: ::c_ulong = 1 << ('I' - 'A');
-pub const COMPAT_HWCAP_ISA_M: ::c_ulong = 1 << ('M' - 'A');
-pub const COMPAT_HWCAP_ISA_A: ::c_ulong = 1 << ('A' - 'A');
-pub const COMPAT_HWCAP_ISA_F: ::c_ulong = 1 << ('F' - 'A');
-pub const COMPAT_HWCAP_ISA_D: ::c_ulong = 1 << ('D' - 'A');
-pub const COMPAT_HWCAP_ISA_C: ::c_ulong = 1 << ('C' - 'A');
+pub const COMPAT_HWCAP_ISA_I: ::c_ulong = 1 << (b'I' - b'A');
+pub const COMPAT_HWCAP_ISA_M: ::c_ulong = 1 << (b'M' - b'A');
+pub const COMPAT_HWCAP_ISA_A: ::c_ulong = 1 << (b'A' - b'A');
+pub const COMPAT_HWCAP_ISA_F: ::c_ulong = 1 << (b'F' - b'A');
+pub const COMPAT_HWCAP_ISA_D: ::c_ulong = 1 << (b'D' - b'A');
+pub const COMPAT_HWCAP_ISA_C: ::c_ulong = 1 << (b'C' - b'A');
pub const SYS_io_setup: ::c_long = 0;
pub const SYS_io_destroy: ::c_long = 1;
@@ -332,6 +332,17 @@ pub const SYS_pwritev2: ::c_long = 287;
pub const SYS_pkey_mprotect: ::c_long = 288;
pub const SYS_pkey_alloc: ::c_long = 289;
pub const SYS_pkey_free: ::c_long = 290;
+pub const SYS_statx: ::c_long = 291;
+pub const SYS_pidfd_send_signal: ::c_long = 424;
+pub const SYS_io_uring_setup: ::c_long = 425;
+pub const SYS_io_uring_enter: ::c_long = 426;
+pub const SYS_io_uring_register: ::c_long = 427;
+pub const SYS_open_tree: ::c_long = 428;
+pub const SYS_move_mount: ::c_long = 429;
+pub const SYS_fsopen: ::c_long = 430;
+pub const SYS_fsconfig: ::c_long = 431;
+pub const SYS_fsmount: ::c_long = 432;
+pub const SYS_fspick: ::c_long = 433;
pub const SYS_syscalls: ::c_long = 436;
cfg_if! {
diff --git a/vendor/libc/src/unix/linux_like/android/b64/x86_64/mod.rs b/vendor/libc/src/unix/linux_like/android/b64/x86_64/mod.rs
index 1e3ee31c5..be6b5011c 100644
--- a/vendor/libc/src/unix/linux_like/android/b64/x86_64/mod.rs
+++ b/vendor/libc/src/unix/linux_like/android/b64/x86_64/mod.rs
@@ -728,9 +728,17 @@ pub const SYS_pwritev2: ::c_long = 328;
pub const SYS_pkey_mprotect: ::c_long = 329;
pub const SYS_pkey_alloc: ::c_long = 330;
pub const SYS_pkey_free: ::c_long = 331;
+pub const SYS_statx: ::c_long = 332;
+pub const SYS_pidfd_send_signal: ::c_long = 424;
pub const SYS_io_uring_setup: ::c_long = 425;
pub const SYS_io_uring_enter: ::c_long = 426;
pub const SYS_io_uring_register: ::c_long = 427;
+pub const SYS_open_tree: ::c_long = 428;
+pub const SYS_move_mount: ::c_long = 429;
+pub const SYS_fsopen: ::c_long = 430;
+pub const SYS_fsconfig: ::c_long = 431;
+pub const SYS_fsmount: ::c_long = 432;
+pub const SYS_fspick: ::c_long = 433;
// offsets in user_regs_structs, from sys/reg.h
pub const R15: ::c_int = 0;
diff --git a/vendor/libc/src/unix/linux_like/android/mod.rs b/vendor/libc/src/unix/linux_like/android/mod.rs
index adec24a0a..ca2938ac2 100644
--- a/vendor/libc/src/unix/linux_like/android/mod.rs
+++ b/vendor/libc/src/unix/linux_like/android/mod.rs
@@ -2121,6 +2121,10 @@ pub const PT_HIOS: u32 = 0x6fffffff;
pub const PT_LOPROC: u32 = 0x70000000;
pub const PT_HIPROC: u32 = 0x7fffffff;
+// uapi/linux/mount.h
+pub const OPEN_TREE_CLONE: ::c_uint = 0x01;
+pub const OPEN_TREE_CLOEXEC: ::c_uint = O_CLOEXEC as ::c_uint;
+
// linux/netfilter.h
pub const NF_DROP: ::c_int = 0;
pub const NF_ACCEPT: ::c_int = 1;
@@ -2728,6 +2732,18 @@ pub const SCHED_RESET_ON_FORK: ::c_int = 0x40000000;
pub const CLONE_PIDFD: ::c_int = 0x1000;
+// linux/membarrier.h
+pub const MEMBARRIER_CMD_QUERY: ::c_int = 0;
+pub const MEMBARRIER_CMD_GLOBAL: ::c_int = 1 << 0;
+pub const MEMBARRIER_CMD_GLOBAL_EXPEDITED: ::c_int = 1 << 1;
+pub const MEMBARRIER_CMD_REGISTER_GLOBAL_EXPEDITED: ::c_int = 1 << 2;
+pub const MEMBARRIER_CMD_PRIVATE_EXPEDITED: ::c_int = 1 << 3;
+pub const MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDITED: ::c_int = 1 << 4;
+pub const MEMBARRIER_CMD_PRIVATE_EXPEDITED_SYNC_CORE: ::c_int = 1 << 5;
+pub const MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDITED_SYNC_CORE: ::c_int = 1 << 6;
+pub const MEMBARRIER_CMD_PRIVATE_EXPEDITED_RSEQ: ::c_int = 1 << 7;
+pub const MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDITED_RSEQ: ::c_int = 1 << 8;
+
// linux/mempolicy.h
pub const MPOL_DEFAULT: ::c_int = 0;
pub const MPOL_PREFERRED: ::c_int = 1;
@@ -3506,6 +3522,8 @@ extern "C" {
longopts: *const option,
longindex: *mut ::c_int,
) -> ::c_int;
+
+ pub fn syncfs(fd: ::c_int) -> ::c_int;
}
cfg_if! {
diff --git a/vendor/libc/src/unix/linux_like/emscripten/mod.rs b/vendor/libc/src/unix/linux_like/emscripten/mod.rs
index f2024900c..5b947b634 100644
--- a/vendor/libc/src/unix/linux_like/emscripten/mod.rs
+++ b/vendor/libc/src/unix/linux_like/emscripten/mod.rs
@@ -1119,6 +1119,7 @@ pub const PR_SET_MM_MAP: ::c_int = 14;
pub const PR_SET_MM_MAP_SIZE: ::c_int = 15;
pub const PR_SET_PTRACER: ::c_int = 0x59616d61;
+pub const PR_SET_PTRACER_ANY: ::c_ulong = 0xffffffffffffffff;
pub const PR_SET_CHILD_SUBREAPER: ::c_int = 36;
pub const PR_GET_CHILD_SUBREAPER: ::c_int = 37;
@@ -1724,7 +1725,7 @@ f! {
pub fn major(dev: ::dev_t) -> ::c_uint {
// see
// https://github.com/emscripten-core/emscripten/blob/
- // master/system/include/libc/sys/sysmacros.h
+ // main/system/lib/libc/musl/include/sys/sysmacros.h
let mut major = 0;
major |= (dev & 0x00000fff) >> 8;
major |= (dev & 0xfffff000) >> 31 >> 1;
@@ -1734,7 +1735,7 @@ f! {
pub fn minor(dev: ::dev_t) -> ::c_uint {
// see
// https://github.com/emscripten-core/emscripten/blob/
- // master/system/include/libc/sys/sysmacros.h
+ // main/system/lib/libc/musl/include/sys/sysmacros.h
let mut minor = 0;
minor |= (dev & 0x000000ff) >> 0;
minor |= (dev & 0xffffff00) >> 12;
@@ -1814,7 +1815,6 @@ extern "C" {
) -> ::c_int;
pub fn getloadavg(loadavg: *mut ::c_double, nelem: ::c_int) -> ::c_int;
- // Not available now on Android
pub fn mkfifoat(dirfd: ::c_int, pathname: *const ::c_char, mode: ::mode_t) -> ::c_int;
pub fn if_nameindex() -> *mut if_nameindex;
pub fn if_freenameindex(ptr: *mut if_nameindex);
@@ -1882,6 +1882,8 @@ extern "C" {
f: extern "C" fn(*mut ::c_void) -> *mut ::c_void,
value: *mut ::c_void,
) -> ::c_int;
+
+ pub fn getentropy(buf: *mut ::c_void, buflen: ::size_t) -> ::c_int;
}
cfg_if! {
diff --git a/vendor/libc/src/unix/linux_like/linux/align.rs b/vendor/libc/src/unix/linux_like/linux/align.rs
index 3a3277f29..cd4bbc721 100644
--- a/vendor/libc/src/unix/linux_like/linux/align.rs
+++ b/vendor/libc/src/unix/linux_like/linux/align.rs
@@ -28,9 +28,10 @@ macro_rules! expand_align {
size: [u8; ::__SIZEOF_PTHREAD_MUTEXATTR_T],
}
- #[cfg_attr(any(target_env = "musl", target_pointer_width = "32"),
+ #[cfg_attr(any(target_env = "musl", target_env = "ohos", target_pointer_width = "32"),
repr(align(4)))]
#[cfg_attr(all(not(target_env = "musl"),
+ not(target_env = "ohos"),
target_pointer_width = "64"),
repr(align(8)))]
pub struct pthread_rwlockattr_t {
@@ -44,6 +45,12 @@ macro_rules! expand_align {
size: [u8; ::__SIZEOF_PTHREAD_CONDATTR_T],
}
+ #[repr(align(4))]
+ pub struct pthread_barrierattr_t {
+ #[doc(hidden)]
+ size: [u8; ::__SIZEOF_PTHREAD_BARRIERATTR_T],
+ }
+
#[repr(align(8))]
pub struct fanotify_event_metadata {
pub event_len: __u32,
@@ -57,16 +64,16 @@ macro_rules! expand_align {
}
s_no_extra_traits! {
- #[cfg_attr(all(target_env = "musl",
+ #[cfg_attr(all(any(target_env = "musl", target_env = "ohos"),
target_pointer_width = "32"),
repr(align(4)))]
- #[cfg_attr(all(target_env = "musl",
+ #[cfg_attr(all(any(target_env = "musl", target_env = "ohos"),
target_pointer_width = "64"),
repr(align(8)))]
- #[cfg_attr(all(not(target_env = "musl"),
+ #[cfg_attr(all(not(any(target_env = "musl", target_env = "ohos")),
target_arch = "x86"),
repr(align(4)))]
- #[cfg_attr(all(not(target_env = "musl"),
+ #[cfg_attr(all(not(any(target_env = "musl", target_env = "ohos")),
not(target_arch = "x86")),
repr(align(8)))]
pub struct pthread_cond_t {
@@ -123,6 +130,30 @@ macro_rules! expand_align {
size: [u8; ::__SIZEOF_PTHREAD_RWLOCK_T],
}
+ #[cfg_attr(all(target_pointer_width = "32",
+ any(target_arch = "mips",
+ target_arch = "arm",
+ target_arch = "hexagon",
+ target_arch = "m68k",
+ target_arch = "powerpc",
+ target_arch = "sparc",
+ target_arch = "x86_64",
+ target_arch = "x86")),
+ repr(align(4)))]
+ #[cfg_attr(any(target_pointer_width = "64",
+ not(any(target_arch = "mips",
+ target_arch = "arm",
+ target_arch = "hexagon",
+ target_arch = "m68k",
+ target_arch = "powerpc",
+ target_arch = "sparc",
+ target_arch = "x86_64",
+ target_arch = "x86"))),
+ repr(align(8)))]
+ pub struct pthread_barrier_t {
+ size: [u8; ::__SIZEOF_PTHREAD_BARRIER_T],
+ }
+
// linux/can.h
#[repr(align(8))]
#[allow(missing_debug_implementations)]
diff --git a/vendor/libc/src/unix/linux_like/linux/arch/generic/mod.rs b/vendor/libc/src/unix/linux_like/linux/arch/generic/mod.rs
index 40bc30a4f..cffe748de 100644
--- a/vendor/libc/src/unix/linux_like/linux/arch/generic/mod.rs
+++ b/vendor/libc/src/unix/linux_like/linux/arch/generic/mod.rs
@@ -95,7 +95,7 @@ cfg_if! {
if #[cfg(all(any(target_arch = "x86",
target_arch = "x86_64",
target_arch = "aarch64"),
- not(target_env = "musl")))] {
+ not(any(target_env = "musl", target_env = "ohos"))))] {
pub const SO_TIMESTAMP_NEW: ::c_int = 63;
pub const SO_TIMESTAMPNS_NEW: ::c_int = 64;
pub const SO_TIMESTAMPING_NEW: ::c_int = 65;
@@ -252,7 +252,7 @@ cfg_if! {
pub const RLIMIT_RTTIME: ::__rlimit_resource_t = 15;
pub const RLIMIT_NLIMITS: ::__rlimit_resource_t = RLIM_NLIMITS;
- } else if #[cfg(target_env = "musl")] {
+ } else if #[cfg(any(target_env = "musl", target_env = "ohos"))] {
pub const RLIMIT_CPU: ::c_int = 0;
pub const RLIMIT_FSIZE: ::c_int = 1;
diff --git a/vendor/libc/src/unix/linux_like/linux/gnu/b32/arm/mod.rs b/vendor/libc/src/unix/linux_like/linux/gnu/b32/arm/mod.rs
index e0ac0dfc3..ea905eb7c 100644
--- a/vendor/libc/src/unix/linux_like/linux/gnu/b32/arm/mod.rs
+++ b/vendor/libc/src/unix/linux_like/linux/gnu/b32/arm/mod.rs
@@ -191,6 +191,27 @@ s! {
pub arm_cpsr: ::c_ulong,
pub fault_address: ::c_ulong,
}
+
+ pub struct user_regs {
+ pub arm_r0: ::c_ulong,
+ pub arm_r1: ::c_ulong,
+ pub arm_r2: ::c_ulong,
+ pub arm_r3: ::c_ulong,
+ pub arm_r4: ::c_ulong,
+ pub arm_r5: ::c_ulong,
+ pub arm_r6: ::c_ulong,
+ pub arm_r7: ::c_ulong,
+ pub arm_r8: ::c_ulong,
+ pub arm_r9: ::c_ulong,
+ pub arm_r10: ::c_ulong,
+ pub arm_fp: ::c_ulong,
+ pub arm_ip: ::c_ulong,
+ pub arm_sp: ::c_ulong,
+ pub arm_lr: ::c_ulong,
+ pub arm_pc: ::c_ulong,
+ pub arm_cpsr: ::c_ulong,
+ pub arm_orig_r0: ::c_ulong,
+ }
}
pub const VEOF: usize = 4;
diff --git a/vendor/libc/src/unix/linux_like/linux/gnu/b32/m68k/mod.rs b/vendor/libc/src/unix/linux_like/linux/gnu/b32/m68k/mod.rs
index 3b78f181c..69725ee7c 100644
--- a/vendor/libc/src/unix/linux_like/linux/gnu/b32/m68k/mod.rs
+++ b/vendor/libc/src/unix/linux_like/linux/gnu/b32/m68k/mod.rs
@@ -5,7 +5,7 @@ s! {
pub struct sigaction {
pub sa_sigaction: ::sighandler_t,
pub sa_mask: ::sigset_t,
- pub sa_flags: ::c_ulong,
+ pub sa_flags: ::c_int,
pub sa_restorer: ::Option<extern fn()>,
}
diff --git a/vendor/libc/src/unix/linux_like/linux/gnu/b32/mod.rs b/vendor/libc/src/unix/linux_like/linux/gnu/b32/mod.rs
index ad0d64c51..66d1d016f 100644
--- a/vendor/libc/src/unix/linux_like/linux/gnu/b32/mod.rs
+++ b/vendor/libc/src/unix/linux_like/linux/gnu/b32/mod.rs
@@ -163,8 +163,10 @@ pub const F_OFD_SETLKW: ::c_int = 38;
pub const __SIZEOF_PTHREAD_CONDATTR_T: usize = 4;
pub const __SIZEOF_PTHREAD_MUTEX_T: usize = 24;
pub const __SIZEOF_PTHREAD_RWLOCK_T: usize = 32;
+pub const __SIZEOF_PTHREAD_BARRIER_T: usize = 20;
pub const __SIZEOF_PTHREAD_MUTEXATTR_T: usize = 4;
pub const __SIZEOF_PTHREAD_RWLOCKATTR_T: usize = 8;
+pub const __SIZEOF_PTHREAD_BARRIERATTR_T: usize = 4;
cfg_if! {
if #[cfg(target_arch = "sparc")] {
diff --git a/vendor/libc/src/unix/linux_like/linux/gnu/b32/riscv32/mod.rs b/vendor/libc/src/unix/linux_like/linux/gnu/b32/riscv32/mod.rs
index 827f85e86..6e3130324 100644
--- a/vendor/libc/src/unix/linux_like/linux/gnu/b32/riscv32/mod.rs
+++ b/vendor/libc/src/unix/linux_like/linux/gnu/b32/riscv32/mod.rs
@@ -335,6 +335,7 @@ pub const TCSAFLUSH: ::c_int = 2;
pub const __SIZEOF_PTHREAD_CONDATTR_T: usize = 4;
pub const __SIZEOF_PTHREAD_MUTEXATTR_T: usize = 4;
+pub const __SIZEOF_PTHREAD_BARRIERATTR_T: usize = 4;
pub const O_DIRECT: ::c_int = 16384;
pub const O_DIRECTORY: ::c_int = 65536;
pub const O_NOFOLLOW: ::c_int = 131072;
@@ -452,6 +453,7 @@ pub const FLUSHO: ::tcflag_t = 4096;
pub const EXTPROC: ::tcflag_t = 65536;
pub const __SIZEOF_PTHREAD_MUTEX_T: usize = 40;
pub const __SIZEOF_PTHREAD_RWLOCK_T: usize = 56;
+pub const __SIZEOF_PTHREAD_BARRIER_T: usize = 32;
pub const NGREG: usize = 32;
pub const REG_PC: usize = 0;
pub const REG_RA: usize = 1;
diff --git a/vendor/libc/src/unix/linux_like/linux/gnu/b64/aarch64/ilp32.rs b/vendor/libc/src/unix/linux_like/linux/gnu/b64/aarch64/ilp32.rs
index 24b7f4e6b..0848fb588 100644
--- a/vendor/libc/src/unix/linux_like/linux/gnu/b64/aarch64/ilp32.rs
+++ b/vendor/libc/src/unix/linux_like/linux/gnu/b64/aarch64/ilp32.rs
@@ -7,6 +7,8 @@ pub const __SIZEOF_PTHREAD_CONDATTR_T: usize = 4;
pub const __SIZEOF_PTHREAD_MUTEX_T: usize = 32;
pub const __SIZEOF_PTHREAD_MUTEXATTR_T: usize = 4;
pub const __SIZEOF_PTHREAD_RWLOCK_T: usize = 48;
+pub const __SIZEOF_PTHREAD_BARRIERATTR_T: usize = 4;
+pub const __SIZEOF_PTHREAD_BARRIER_T: usize = 20;
align_const! {
#[cfg(target_endian = "little")]
diff --git a/vendor/libc/src/unix/linux_like/linux/gnu/b64/aarch64/lp64.rs b/vendor/libc/src/unix/linux_like/linux/gnu/b64/aarch64/lp64.rs
index 14d39e543..3802caf64 100644
--- a/vendor/libc/src/unix/linux_like/linux/gnu/b64/aarch64/lp64.rs
+++ b/vendor/libc/src/unix/linux_like/linux/gnu/b64/aarch64/lp64.rs
@@ -7,6 +7,8 @@ pub const __SIZEOF_PTHREAD_CONDATTR_T: usize = 8;
pub const __SIZEOF_PTHREAD_MUTEX_T: usize = 48;
pub const __SIZEOF_PTHREAD_MUTEXATTR_T: usize = 8;
pub const __SIZEOF_PTHREAD_RWLOCK_T: usize = 56;
+pub const __SIZEOF_PTHREAD_BARRIERATTR_T: usize = 8;
+pub const __SIZEOF_PTHREAD_BARRIER_T: usize = 32;
align_const! {
#[cfg(target_endian = "little")]
diff --git a/vendor/libc/src/unix/linux_like/linux/gnu/b64/aarch64/mod.rs b/vendor/libc/src/unix/linux_like/linux/gnu/b64/aarch64/mod.rs
index a20a1cf68..f46ea941b 100644
--- a/vendor/libc/src/unix/linux_like/linux/gnu/b64/aarch64/mod.rs
+++ b/vendor/libc/src/unix/linux_like/linux/gnu/b64/aarch64/mod.rs
@@ -590,6 +590,13 @@ pub const PR_PAC_APDAKEY: ::c_ulong = 1 << 2;
pub const PR_PAC_APDBKEY: ::c_ulong = 1 << 3;
pub const PR_PAC_APGAKEY: ::c_ulong = 1 << 4;
+pub const PR_SME_SET_VL: ::c_int = 63;
+pub const PR_SME_GET_VL: ::c_int = 64;
+pub const PR_SME_VL_LEN_MAX: ::c_int = 0xffff;
+
+pub const PR_SME_SET_VL_INHERIT: ::c_ulong = 1 << 17;
+pub const PR_SME_SET_VL_ONE_EXEC: ::c_ulong = 1 << 18;
+
// Syscall table
pub const SYS_io_setup: ::c_long = 0;
pub const SYS_io_destroy: ::c_long = 1;
diff --git a/vendor/libc/src/unix/linux_like/linux/gnu/b64/loongarch64/mod.rs b/vendor/libc/src/unix/linux_like/linux/gnu/b64/loongarch64/mod.rs
index d64c353bb..af2825b60 100644
--- a/vendor/libc/src/unix/linux_like/linux/gnu/b64/loongarch64/mod.rs
+++ b/vendor/libc/src/unix/linux_like/linux/gnu/b64/loongarch64/mod.rs
@@ -193,8 +193,10 @@ s! {
pub const __SIZEOF_PTHREAD_CONDATTR_T: usize = 4;
pub const __SIZEOF_PTHREAD_MUTEXATTR_T: usize = 4;
+pub const __SIZEOF_PTHREAD_BARRIERATTR_T: usize = 4;
pub const __SIZEOF_PTHREAD_MUTEX_T: usize = 40;
pub const __SIZEOF_PTHREAD_RWLOCK_T: usize = 56;
+pub const __SIZEOF_PTHREAD_BARRIER_T: usize = 32;
align_const! {
#[cfg(target_endian = "little")]
diff --git a/vendor/libc/src/unix/linux_like/linux/gnu/b64/mips64/mod.rs b/vendor/libc/src/unix/linux_like/linux/gnu/b64/mips64/mod.rs
index 0bf5084d5..66b29a8aa 100644
--- a/vendor/libc/src/unix/linux_like/linux/gnu/b64/mips64/mod.rs
+++ b/vendor/libc/src/unix/linux_like/linux/gnu/b64/mips64/mod.rs
@@ -188,8 +188,10 @@ s! {
pub const __SIZEOF_PTHREAD_CONDATTR_T: usize = 4;
pub const __SIZEOF_PTHREAD_MUTEXATTR_T: usize = 4;
+pub const __SIZEOF_PTHREAD_BARRIERATTR_T: usize = 4;
pub const __SIZEOF_PTHREAD_MUTEX_T: usize = 40;
pub const __SIZEOF_PTHREAD_RWLOCK_T: usize = 56;
+pub const __SIZEOF_PTHREAD_BARRIER_T: usize = 32;
align_const! {
#[cfg(target_endian = "little")]
diff --git a/vendor/libc/src/unix/linux_like/linux/gnu/b64/powerpc64/mod.rs b/vendor/libc/src/unix/linux_like/linux/gnu/b64/powerpc64/mod.rs
index ce8ce97bb..2b225e480 100644
--- a/vendor/libc/src/unix/linux_like/linux/gnu/b64/powerpc64/mod.rs
+++ b/vendor/libc/src/unix/linux_like/linux/gnu/b64/powerpc64/mod.rs
@@ -201,6 +201,7 @@ pub const RTLD_GLOBAL: ::c_int = 0x100;
pub const RTLD_NOLOAD: ::c_int = 0x4;
pub const VEOF: usize = 4;
pub const __SIZEOF_PTHREAD_RWLOCK_T: usize = 56;
+pub const __SIZEOF_PTHREAD_BARRIER_T: usize = 32;
pub const O_APPEND: ::c_int = 1024;
pub const O_CREAT: ::c_int = 64;
@@ -402,6 +403,7 @@ pub const EFD_CLOEXEC: ::c_int = 0x80000;
pub const __SIZEOF_PTHREAD_CONDATTR_T: usize = 4;
pub const __SIZEOF_PTHREAD_MUTEX_T: usize = 40;
pub const __SIZEOF_PTHREAD_MUTEXATTR_T: usize = 4;
+pub const __SIZEOF_PTHREAD_BARRIERATTR_T: usize = 4;
align_const! {
#[cfg(target_endian = "little")]
diff --git a/vendor/libc/src/unix/linux_like/linux/gnu/b64/riscv64/mod.rs b/vendor/libc/src/unix/linux_like/linux/gnu/b64/riscv64/mod.rs
index 9d022f96e..c84442f1f 100644
--- a/vendor/libc/src/unix/linux_like/linux/gnu/b64/riscv64/mod.rs
+++ b/vendor/libc/src/unix/linux_like/linux/gnu/b64/riscv64/mod.rs
@@ -368,6 +368,7 @@ pub const EPOLL_CLOEXEC: ::c_int = 524288;
pub const EFD_CLOEXEC: ::c_int = 524288;
pub const __SIZEOF_PTHREAD_CONDATTR_T: usize = 4;
pub const __SIZEOF_PTHREAD_MUTEXATTR_T: usize = 4;
+pub const __SIZEOF_PTHREAD_BARRIERATTR_T: usize = 4;
pub const O_DIRECT: ::c_int = 16384;
pub const O_DIRECTORY: ::c_int = 65536;
pub const O_NOFOLLOW: ::c_int = 131072;
@@ -491,6 +492,7 @@ pub const FLUSHO: ::tcflag_t = 4096;
pub const EXTPROC: ::tcflag_t = 65536;
pub const __SIZEOF_PTHREAD_MUTEX_T: usize = 40;
pub const __SIZEOF_PTHREAD_RWLOCK_T: usize = 56;
+pub const __SIZEOF_PTHREAD_BARRIER_T: usize = 32;
pub const NGREG: usize = 32;
pub const REG_PC: usize = 0;
pub const REG_RA: usize = 1;
diff --git a/vendor/libc/src/unix/linux_like/linux/gnu/b64/s390x.rs b/vendor/libc/src/unix/linux_like/linux/gnu/b64/s390x.rs
index c4bae089c..c2c4f31cf 100644
--- a/vendor/libc/src/unix/linux_like/linux/gnu/b64/s390x.rs
+++ b/vendor/libc/src/unix/linux_like/linux/gnu/b64/s390x.rs
@@ -289,8 +289,10 @@ pub const EFD_CLOEXEC: ::c_int = 0x80000;
pub const __SIZEOF_PTHREAD_CONDATTR_T: usize = 4;
pub const __SIZEOF_PTHREAD_MUTEXATTR_T: usize = 4;
+pub const __SIZEOF_PTHREAD_BARRIERATTR_T: usize = 4;
pub const __SIZEOF_PTHREAD_MUTEX_T: usize = 40;
pub const __SIZEOF_PTHREAD_RWLOCK_T: usize = 56;
+pub const __SIZEOF_PTHREAD_BARRIER_T: usize = 32;
align_const! {
pub const PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP: ::pthread_mutex_t =
diff --git a/vendor/libc/src/unix/linux_like/linux/gnu/b64/sparc64/mod.rs b/vendor/libc/src/unix/linux_like/linux/gnu/b64/sparc64/mod.rs
index 9fdacfac8..2427c7a0a 100644
--- a/vendor/libc/src/unix/linux_like/linux/gnu/b64/sparc64/mod.rs
+++ b/vendor/libc/src/unix/linux_like/linux/gnu/b64/sparc64/mod.rs
@@ -204,6 +204,7 @@ pub const RTLD_DEEPBIND: ::c_int = 0x8;
pub const RTLD_GLOBAL: ::c_int = 0x100;
pub const RTLD_NOLOAD: ::c_int = 0x4;
pub const __SIZEOF_PTHREAD_RWLOCK_T: usize = 56;
+pub const __SIZEOF_PTHREAD_BARRIER_T: usize = 32;
pub const O_APPEND: ::c_int = 0x8;
pub const O_CREAT: ::c_int = 0x200;
@@ -401,6 +402,7 @@ pub const EFD_CLOEXEC: ::c_int = 0x400000;
pub const __SIZEOF_PTHREAD_CONDATTR_T: usize = 4;
pub const __SIZEOF_PTHREAD_MUTEX_T: usize = 40;
pub const __SIZEOF_PTHREAD_MUTEXATTR_T: usize = 4;
+pub const __SIZEOF_PTHREAD_BARRIERATTR_T: usize = 4;
align_const! {
pub const PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP: ::pthread_mutex_t =
diff --git a/vendor/libc/src/unix/linux_like/linux/gnu/b64/x86_64/mod.rs b/vendor/libc/src/unix/linux_like/linux/gnu/b64/x86_64/mod.rs
index d515d2231..e6307e282 100644
--- a/vendor/libc/src/unix/linux_like/linux/gnu/b64/x86_64/mod.rs
+++ b/vendor/libc/src/unix/linux_like/linux/gnu/b64/x86_64/mod.rs
@@ -600,6 +600,7 @@ pub const EFD_CLOEXEC: ::c_int = 0x80000;
pub const __SIZEOF_PTHREAD_CONDATTR_T: usize = 4;
pub const __SIZEOF_PTHREAD_MUTEXATTR_T: usize = 4;
+pub const __SIZEOF_PTHREAD_BARRIERATTR_T: usize = 4;
pub const O_DIRECT: ::c_int = 0x4000;
pub const O_DIRECTORY: ::c_int = 0x10000;
diff --git a/vendor/libc/src/unix/linux_like/linux/gnu/b64/x86_64/not_x32.rs b/vendor/libc/src/unix/linux_like/linux/gnu/b64/x86_64/not_x32.rs
index 35d2714ee..3831dfad9 100644
--- a/vendor/libc/src/unix/linux_like/linux/gnu/b64/x86_64/not_x32.rs
+++ b/vendor/libc/src/unix/linux_like/linux/gnu/b64/x86_64/not_x32.rs
@@ -22,6 +22,7 @@ s! {
pub const __SIZEOF_PTHREAD_MUTEX_T: usize = 40;
pub const __SIZEOF_PTHREAD_RWLOCK_T: usize = 56;
+pub const __SIZEOF_PTHREAD_BARRIER_T: usize = 32;
align_const! {
#[cfg(target_endian = "little")]
diff --git a/vendor/libc/src/unix/linux_like/linux/gnu/b64/x86_64/x32.rs b/vendor/libc/src/unix/linux_like/linux/gnu/b64/x86_64/x32.rs
index 807b948ef..06aa0da2d 100644
--- a/vendor/libc/src/unix/linux_like/linux/gnu/b64/x86_64/x32.rs
+++ b/vendor/libc/src/unix/linux_like/linux/gnu/b64/x86_64/x32.rs
@@ -22,6 +22,7 @@ s! {
pub const __SIZEOF_PTHREAD_MUTEX_T: usize = 32;
pub const __SIZEOF_PTHREAD_RWLOCK_T: usize = 44;
+pub const __SIZEOF_PTHREAD_BARRIER_T: usize = 20;
align_const! {
pub const PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP: ::pthread_mutex_t =
diff --git a/vendor/libc/src/unix/linux_like/linux/gnu/mod.rs b/vendor/libc/src/unix/linux_like/linux/gnu/mod.rs
index 98a58a2ac..dbec992f0 100644
--- a/vendor/libc/src/unix/linux_like/linux/gnu/mod.rs
+++ b/vendor/libc/src/unix/linux_like/linux/gnu/mod.rs
@@ -37,7 +37,8 @@ s! {
pub stx_dev_major: u32,
pub stx_dev_minor: u32,
pub stx_mnt_id: u64,
- __statx_pad2: u64,
+ pub stx_dio_mem_align: u32,
+ pub stx_dio_offset_align: u32,
__statx_pad3: [u64; 12],
}
@@ -874,6 +875,10 @@ pub const PTRACE_INTERRUPT: ::c_uint = 0x4207;
pub const PTRACE_LISTEN: ::c_uint = 0x4208;
pub const PTRACE_PEEKSIGINFO: ::c_uint = 0x4209;
pub const PTRACE_GET_SYSCALL_INFO: ::c_uint = 0x420e;
+pub const PTRACE_SYSCALL_INFO_NONE: ::__u8 = 0;
+pub const PTRACE_SYSCALL_INFO_ENTRY: ::__u8 = 1;
+pub const PTRACE_SYSCALL_INFO_EXIT: ::__u8 = 2;
+pub const PTRACE_SYSCALL_INFO_SECCOMP: ::__u8 = 3;
// linux/fs.h
@@ -1018,6 +1023,7 @@ pub const STATX_BLOCKS: ::c_uint = 0x0400;
pub const STATX_BASIC_STATS: ::c_uint = 0x07ff;
pub const STATX_BTIME: ::c_uint = 0x0800;
pub const STATX_MNT_ID: ::c_uint = 0x1000;
+pub const STATX_DIOALIGN: ::c_uint = 0x2000;
pub const STATX_ALL: ::c_uint = 0x0fff;
pub const STATX__RESERVED: ::c_int = 0x80000000;
pub const STATX_ATTR_COMPRESSED: ::c_int = 0x0004;
@@ -1206,14 +1212,6 @@ extern "C" {
pub fn ntp_gettime(buf: *mut ntptimeval) -> ::c_int;
pub fn clock_adjtime(clk_id: ::clockid_t, buf: *mut ::timex) -> ::c_int;
- pub fn copy_file_range(
- fd_in: ::c_int,
- off_in: *mut ::off64_t,
- fd_out: ::c_int,
- off_out: *mut ::off64_t,
- len: ::size_t,
- flags: ::c_uint,
- ) -> ::ssize_t;
pub fn fanotify_mark(
fd: ::c_int,
flags: ::c_uint,
@@ -1373,6 +1371,30 @@ extern "C" {
pub fn gnu_get_libc_version() -> *const ::c_char;
}
+// posix/spawn.h
+extern "C" {
+ // Added in `glibc` 2.29
+ pub fn posix_spawn_file_actions_addchdir_np(
+ actions: *mut ::posix_spawn_file_actions_t,
+ path: *const ::c_char,
+ ) -> ::c_int;
+ // Added in `glibc` 2.29
+ pub fn posix_spawn_file_actions_addfchdir_np(
+ actions: *mut ::posix_spawn_file_actions_t,
+ fd: ::c_int,
+ ) -> ::c_int;
+ // Added in `glibc` 2.34
+ pub fn posix_spawn_file_actions_addclosefrom_np(
+ actions: *mut ::posix_spawn_file_actions_t,
+ from: ::c_int,
+ ) -> ::c_int;
+ // Added in `glibc` 2.35
+ pub fn posix_spawn_file_actions_addtcsetpgrp_np(
+ actions: *mut ::posix_spawn_file_actions_t,
+ tcfd: ::c_int,
+ ) -> ::c_int;
+}
+
cfg_if! {
if #[cfg(any(target_arch = "x86",
target_arch = "arm",
diff --git a/vendor/libc/src/unix/linux_like/linux/mod.rs b/vendor/libc/src/unix/linux_like/linux/mod.rs
index 9658f0744..6ac0f7092 100644
--- a/vendor/libc/src/unix/linux_like/linux/mod.rs
+++ b/vendor/libc/src/unix/linux_like/linux/mod.rs
@@ -48,6 +48,9 @@ pub type name_t = u64;
pub type iconv_t = *mut ::c_void;
+// linux/sctp.h
+pub type sctp_assoc_t = ::__s32;
+
#[cfg_attr(feature = "extra_traits", derive(Debug))]
pub enum fpos64_t {} // FIXME: fill this out with a struct
impl ::Copy for fpos64_t {}
@@ -468,9 +471,9 @@ s! {
__pgrp: ::pid_t,
__sd: ::sigset_t,
__ss: ::sigset_t,
- #[cfg(target_env = "musl")]
+ #[cfg(any(target_env = "musl", target_env = "ohos"))]
__prio: ::c_int,
- #[cfg(not(target_env = "musl"))]
+ #[cfg(not(any(target_env = "musl", target_env = "ohos")))]
__sp: ::sched_param,
__policy: ::c_int,
__pad: [::c_int; 16],
@@ -625,6 +628,63 @@ s! {
pub flag: *mut ::c_int,
pub val: ::c_int,
}
+
+ // linux/sctp.h
+
+ pub struct sctp_initmsg {
+ pub sinit_num_ostreams: ::__u16,
+ pub sinit_max_instreams: ::__u16,
+ pub sinit_max_attempts: ::__u16,
+ pub sinit_max_init_timeo: ::__u16,
+ }
+
+ pub struct sctp_sndrcvinfo {
+ pub sinfo_stream: ::__u16,
+ pub sinfo_ssn: ::__u16,
+ pub sinfo_flags: ::__u16,
+ pub sinfo_ppid: ::__u32,
+ pub sinfo_context: ::__u32,
+ pub sinfo_timetolive: ::__u32,
+ pub sinfo_tsn: ::__u32,
+ pub sinfo_cumtsn: ::__u32,
+ pub sinfo_assoc_id: ::sctp_assoc_t,
+ }
+
+ pub struct sctp_sndinfo {
+ pub snd_sid: ::__u16,
+ pub snd_flags: ::__u16,
+ pub snd_ppid: ::__u32,
+ pub snd_context: ::__u32,
+ pub snd_assoc_id: ::sctp_assoc_t,
+ }
+
+ pub struct sctp_rcvinfo {
+ pub rcv_sid: ::__u16,
+ pub rcv_ssn: ::__u16,
+ pub rcv_flags: ::__u16,
+ pub rcv_ppid: ::__u32,
+ pub rcv_tsn: ::__u32,
+ pub rcv_cumtsn: ::__u32,
+ pub rcv_context: ::__u32,
+ pub rcv_assoc_id: ::sctp_assoc_t,
+ }
+
+ pub struct sctp_nxtinfo {
+ pub nxt_sid: ::__u16,
+ pub nxt_flags: ::__u16,
+ pub nxt_ppid: ::__u32,
+ pub nxt_length: ::__u32,
+ pub nxt_assoc_id: ::sctp_assoc_t,
+ }
+
+ pub struct sctp_prinfo {
+ pub pr_policy: ::__u16,
+ pub pr_value: ::__u32,
+ }
+
+ pub struct sctp_authinfo {
+ pub auth_keynumber: ::__u16,
+ }
}
s_no_extra_traits! {
@@ -938,6 +998,28 @@ cfg_if! {
}
}
+ impl PartialEq for pthread_barrier_t {
+ fn eq(&self, other: &pthread_barrier_t) -> bool {
+ self.size.iter().zip(other.size.iter()).all(|(a,b)| a == b)
+ }
+ }
+
+ impl Eq for pthread_barrier_t {}
+
+ impl ::fmt::Debug for pthread_barrier_t {
+ fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result {
+ f.debug_struct("pthread_barrier_t")
+ .field("size", &self.size)
+ .finish()
+ }
+ }
+
+ impl ::hash::Hash for pthread_barrier_t {
+ fn hash<H: ::hash::Hasher>(&self, state: &mut H) {
+ self.size.hash(state);
+ }
+ }
+
impl PartialEq for sockaddr_alg {
fn eq(&self, other: &sockaddr_alg) -> bool {
self.salg_family == other.salg_family
@@ -1143,7 +1225,7 @@ cfg_if! {
}
cfg_if! {
- if #[cfg(any(target_env = "gnu", target_env = "musl"))] {
+ if #[cfg(any(target_env = "gnu", target_env = "musl", target_env = "ohos"))] {
pub const ABDAY_1: ::nl_item = 0x20000;
pub const ABDAY_2: ::nl_item = 0x20001;
pub const ABDAY_3: ::nl_item = 0x20002;
@@ -1699,6 +1781,12 @@ pub const IFLA_PROP_LIST: ::c_ushort = 52;
pub const IFLA_ALT_IFNAME: ::c_ushort = 53;
pub const IFLA_PERM_ADDRESS: ::c_ushort = 54;
pub const IFLA_PROTO_DOWN_REASON: ::c_ushort = 55;
+pub const IFLA_PARENT_DEV_NAME: ::c_ushort = 56;
+pub const IFLA_PARENT_DEV_BUS_NAME: ::c_ushort = 57;
+pub const IFLA_GRO_MAX_SIZE: ::c_ushort = 58;
+pub const IFLA_TSO_MAX_SIZE: ::c_ushort = 59;
+pub const IFLA_TSO_MAX_SEGS: ::c_ushort = 60;
+pub const IFLA_ALLMULTI: ::c_ushort = 61;
pub const IFLA_INFO_UNSPEC: ::c_ushort = 0;
pub const IFLA_INFO_KIND: ::c_ushort = 1;
@@ -1761,6 +1849,18 @@ pub const MPOL_F_NUMA_BALANCING: ::c_int = 1 << 13;
pub const MPOL_F_RELATIVE_NODES: ::c_int = 1 << 14;
pub const MPOL_F_STATIC_NODES: ::c_int = 1 << 15;
+// linux/membarrier.h
+pub const MEMBARRIER_CMD_QUERY: ::c_int = 0;
+pub const MEMBARRIER_CMD_GLOBAL: ::c_int = 1 << 0;
+pub const MEMBARRIER_CMD_GLOBAL_EXPEDITED: ::c_int = 1 << 1;
+pub const MEMBARRIER_CMD_REGISTER_GLOBAL_EXPEDITED: ::c_int = 1 << 2;
+pub const MEMBARRIER_CMD_PRIVATE_EXPEDITED: ::c_int = 1 << 3;
+pub const MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDITED: ::c_int = 1 << 4;
+pub const MEMBARRIER_CMD_PRIVATE_EXPEDITED_SYNC_CORE: ::c_int = 1 << 5;
+pub const MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDITED_SYNC_CORE: ::c_int = 1 << 6;
+pub const MEMBARRIER_CMD_PRIVATE_EXPEDITED_RSEQ: ::c_int = 1 << 7;
+pub const MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDITED_RSEQ: ::c_int = 1 << 8;
+
align_const! {
pub const PTHREAD_MUTEX_INITIALIZER: pthread_mutex_t = pthread_mutex_t {
size: [0; __SIZEOF_PTHREAD_MUTEX_T],
@@ -1825,6 +1925,7 @@ pub const IPC_STAT: ::c_int = 2;
pub const IPC_INFO: ::c_int = 3;
pub const MSG_STAT: ::c_int = 11;
pub const MSG_INFO: ::c_int = 12;
+pub const MSG_NOTIFICATION: ::c_int = 0x8000;
pub const MSG_NOERROR: ::c_int = 0o10000;
pub const MSG_EXCEPT: ::c_int = 0o20000;
@@ -2013,6 +2114,7 @@ pub const PR_SET_MM_MAP: ::c_int = 14;
pub const PR_SET_MM_MAP_SIZE: ::c_int = 15;
pub const PR_SET_PTRACER: ::c_int = 0x59616d61;
+pub const PR_SET_PTRACER_ANY: ::c_ulong = 0xffffffffffffffff;
pub const PR_SET_CHILD_SUBREAPER: ::c_int = 36;
pub const PR_GET_CHILD_SUBREAPER: ::c_int = 37;
@@ -2042,6 +2144,16 @@ pub const PR_CAP_AMBIENT_CLEAR_ALL: ::c_int = 4;
pub const PR_SET_VMA: ::c_int = 0x53564d41;
pub const PR_SET_VMA_ANON_NAME: ::c_int = 0;
+pub const PR_SCHED_CORE: ::c_int = 62;
+pub const PR_SCHED_CORE_GET: ::c_int = 0;
+pub const PR_SCHED_CORE_CREATE: ::c_int = 1;
+pub const PR_SCHED_CORE_SHARE_TO: ::c_int = 2;
+pub const PR_SCHED_CORE_SHARE_FROM: ::c_int = 3;
+pub const PR_SCHED_CORE_MAX: ::c_int = 4;
+pub const PR_SCHED_CORE_SCOPE_THREAD: ::c_int = 0;
+pub const PR_SCHED_CORE_SCOPE_THREAD_GROUP: ::c_int = 1;
+pub const PR_SCHED_CORE_SCOPE_PROCESS_GROUP: ::c_int = 2;
+
pub const GRND_NONBLOCK: ::c_uint = 0x0001;
pub const GRND_RANDOM: ::c_uint = 0x0002;
pub const GRND_INSECURE: ::c_uint = 0x0004;
@@ -3132,6 +3244,10 @@ pub const IN_ALL_EVENTS: u32 = IN_ACCESS
pub const IN_CLOEXEC: ::c_int = O_CLOEXEC;
pub const IN_NONBLOCK: ::c_int = O_NONBLOCK;
+// uapi/linux/mount.h
+pub const OPEN_TREE_CLONE: ::c_uint = 0x01;
+pub const OPEN_TREE_CLOEXEC: ::c_uint = O_CLOEXEC as ::c_uint;
+
// uapi/linux/netfilter/nf_tables.h
pub const NFT_TABLE_MAXNAMELEN: ::c_int = 256;
pub const NFT_CHAIN_MAXNAMELEN: ::c_int = 256;
@@ -3413,6 +3529,27 @@ pub const FUTEX_PRIVATE_FLAG: ::c_int = 128;
pub const FUTEX_CLOCK_REALTIME: ::c_int = 256;
pub const FUTEX_CMD_MASK: ::c_int = !(FUTEX_PRIVATE_FLAG | FUTEX_CLOCK_REALTIME);
+pub const FUTEX_BITSET_MATCH_ANY: ::c_int = 0xffffffff;
+
+pub const FUTEX_OP_SET: ::c_int = 0;
+pub const FUTEX_OP_ADD: ::c_int = 1;
+pub const FUTEX_OP_OR: ::c_int = 2;
+pub const FUTEX_OP_ANDN: ::c_int = 3;
+pub const FUTEX_OP_XOR: ::c_int = 4;
+
+pub const FUTEX_OP_OPARG_SHIFT: ::c_int = 8;
+
+pub const FUTEX_OP_CMP_EQ: ::c_int = 0;
+pub const FUTEX_OP_CMP_NE: ::c_int = 1;
+pub const FUTEX_OP_CMP_LT: ::c_int = 2;
+pub const FUTEX_OP_CMP_LE: ::c_int = 3;
+pub const FUTEX_OP_CMP_GT: ::c_int = 4;
+pub const FUTEX_OP_CMP_GE: ::c_int = 5;
+
+pub fn FUTEX_OP(op: ::c_int, oparg: ::c_int, cmp: ::c_int, cmparg: ::c_int) -> ::c_int {
+ ((op & 0xf) << 28) | ((cmp & 0xf) << 24) | ((oparg & 0xfff) << 12) | (cmparg & 0xfff)
+}
+
// linux/reboot.h
pub const LINUX_REBOOT_MAGIC1: ::c_int = 0xfee1dead;
pub const LINUX_REBOOT_MAGIC2: ::c_int = 672274793;
@@ -3587,6 +3724,82 @@ pub const J1939_EE_INFO_RX_ABORT: ::c_int = 4;
pub const J1939_FILTER_MAX: ::c_int = 512;
+// linux/sctp.h
+pub const SCTP_FUTURE_ASSOC: ::c_int = 0;
+pub const SCTP_CURRENT_ASSOC: ::c_int = 1;
+pub const SCTP_ALL_ASSOC: ::c_int = 2;
+pub const SCTP_RTOINFO: ::c_int = 0;
+pub const SCTP_ASSOCINFO: ::c_int = 1;
+pub const SCTP_INITMSG: ::c_int = 2;
+pub const SCTP_NODELAY: ::c_int = 3;
+pub const SCTP_AUTOCLOSE: ::c_int = 4;
+pub const SCTP_SET_PEER_PRIMARY_ADDR: ::c_int = 5;
+pub const SCTP_PRIMARY_ADDR: ::c_int = 6;
+pub const SCTP_ADAPTATION_LAYER: ::c_int = 7;
+pub const SCTP_DISABLE_FRAGMENTS: ::c_int = 8;
+pub const SCTP_PEER_ADDR_PARAMS: ::c_int = 9;
+pub const SCTP_DEFAULT_SEND_PARAM: ::c_int = 10;
+pub const SCTP_EVENTS: ::c_int = 11;
+pub const SCTP_I_WANT_MAPPED_V4_ADDR: ::c_int = 12;
+pub const SCTP_MAXSEG: ::c_int = 13;
+pub const SCTP_STATUS: ::c_int = 14;
+pub const SCTP_GET_PEER_ADDR_INFO: ::c_int = 15;
+pub const SCTP_DELAYED_ACK_TIME: ::c_int = 16;
+pub const SCTP_DELAYED_ACK: ::c_int = SCTP_DELAYED_ACK_TIME;
+pub const SCTP_DELAYED_SACK: ::c_int = SCTP_DELAYED_ACK_TIME;
+pub const SCTP_CONTEXT: ::c_int = 17;
+pub const SCTP_FRAGMENT_INTERLEAVE: ::c_int = 18;
+pub const SCTP_PARTIAL_DELIVERY_POINT: ::c_int = 19;
+pub const SCTP_MAX_BURST: ::c_int = 20;
+pub const SCTP_AUTH_CHUNK: ::c_int = 21;
+pub const SCTP_HMAC_IDENT: ::c_int = 22;
+pub const SCTP_AUTH_KEY: ::c_int = 23;
+pub const SCTP_AUTH_ACTIVE_KEY: ::c_int = 24;
+pub const SCTP_AUTH_DELETE_KEY: ::c_int = 25;
+pub const SCTP_PEER_AUTH_CHUNKS: ::c_int = 26;
+pub const SCTP_LOCAL_AUTH_CHUNKS: ::c_int = 27;
+pub const SCTP_GET_ASSOC_NUMBER: ::c_int = 28;
+pub const SCTP_GET_ASSOC_ID_LIST: ::c_int = 29;
+pub const SCTP_AUTO_ASCONF: ::c_int = 30;
+pub const SCTP_PEER_ADDR_THLDS: ::c_int = 31;
+pub const SCTP_RECVRCVINFO: ::c_int = 32;
+pub const SCTP_RECVNXTINFO: ::c_int = 33;
+pub const SCTP_DEFAULT_SNDINFO: ::c_int = 34;
+pub const SCTP_AUTH_DEACTIVATE_KEY: ::c_int = 35;
+pub const SCTP_REUSE_PORT: ::c_int = 36;
+pub const SCTP_PEER_ADDR_THLDS_V2: ::c_int = 37;
+pub const SCTP_PR_SCTP_NONE: ::c_int = 0x0000;
+pub const SCTP_PR_SCTP_TTL: ::c_int = 0x0010;
+pub const SCTP_PR_SCTP_RTX: ::c_int = 0x0020;
+pub const SCTP_PR_SCTP_PRIO: ::c_int = 0x0030;
+pub const SCTP_PR_SCTP_MAX: ::c_int = SCTP_PR_SCTP_PRIO;
+pub const SCTP_PR_SCTP_MASK: ::c_int = 0x0030;
+pub const SCTP_ENABLE_RESET_STREAM_REQ: ::c_int = 0x01;
+pub const SCTP_ENABLE_RESET_ASSOC_REQ: ::c_int = 0x02;
+pub const SCTP_ENABLE_CHANGE_ASSOC_REQ: ::c_int = 0x04;
+pub const SCTP_ENABLE_STRRESET_MASK: ::c_int = 0x07;
+pub const SCTP_STREAM_RESET_INCOMING: ::c_int = 0x01;
+pub const SCTP_STREAM_RESET_OUTGOING: ::c_int = 0x02;
+
+pub const SCTP_INIT: ::c_int = 0;
+pub const SCTP_SNDRCV: ::c_int = 1;
+pub const SCTP_SNDINFO: ::c_int = 2;
+pub const SCTP_RCVINFO: ::c_int = 3;
+pub const SCTP_NXTINFO: ::c_int = 4;
+pub const SCTP_PRINFO: ::c_int = 5;
+pub const SCTP_AUTHINFO: ::c_int = 6;
+pub const SCTP_DSTADDRV4: ::c_int = 7;
+pub const SCTP_DSTADDRV6: ::c_int = 8;
+
+pub const SCTP_UNORDERED: ::c_int = 1 << 0;
+pub const SCTP_ADDR_OVER: ::c_int = 1 << 1;
+pub const SCTP_ABORT: ::c_int = 1 << 2;
+pub const SCTP_SACK_IMMEDIATELY: ::c_int = 1 << 3;
+pub const SCTP_SENDALL: ::c_int = 1 << 6;
+pub const SCTP_PR_SCTP_ALL: ::c_int = 1 << 7;
+pub const SCTP_NOTIFICATION: ::c_int = MSG_NOTIFICATION;
+pub const SCTP_EOF: ::c_int = ::MSG_FIN;
+
f! {
pub fn NLA_ALIGN(len: ::c_int) -> ::c_int {
return ((len) + NLA_ALIGNTO - 1) & !(NLA_ALIGNTO - 1)
@@ -3662,6 +3875,20 @@ f! {
set1.bits == set2.bits
}
+ pub fn SCTP_PR_INDEX(policy: ::c_int) -> ::c_int {
+ policy >> 4 - 1
+ }
+
+ pub fn SCTP_PR_POLICY(policy: ::c_int) -> ::c_int {
+ policy & SCTP_PR_SCTP_MASK
+ }
+
+ pub fn SCTP_PR_SET_POLICY(flags: &mut ::c_int, policy: ::c_int) -> () {
+ *flags &= !SCTP_PR_SCTP_MASK;
+ *flags |= policy;
+ ()
+ }
+
pub fn major(dev: ::dev_t) -> ::c_uint {
let mut major = 0;
major |= (dev & 0x00000000000fff00) >> 8;
@@ -3728,10 +3955,22 @@ safe_f! {
dev |= (minor & 0xffffff00) << 12;
dev
}
+
+ pub {const} fn SCTP_PR_TTL_ENABLED(policy: ::c_int) -> bool {
+ policy == SCTP_PR_SCTP_TTL
+ }
+
+ pub {const} fn SCTP_PR_RTX_ENABLED(policy: ::c_int) -> bool {
+ policy == SCTP_PR_SCTP_RTX
+ }
+
+ pub {const} fn SCTP_PR_PRIO_ENABLED(policy: ::c_int) -> bool {
+ policy == SCTP_PR_SCTP_PRIO
+ }
}
cfg_if! {
- if #[cfg(not(target_env = "uclibc"))] {
+ if #[cfg(all(not(target_env = "uclibc"), not(target_env = "ohos")))] {
extern "C" {
pub fn aio_read(aiocbp: *mut aiocb) -> ::c_int;
pub fn aio_write(aiocbp: *mut aiocb) -> ::c_int;
@@ -3750,6 +3989,13 @@ cfg_if! {
nitems: ::c_int,
sevp: *mut ::sigevent,
) -> ::c_int;
+ }
+ }
+}
+
+cfg_if! {
+ if #[cfg(not(target_env = "uclibc"))] {
+ extern "C" {
pub fn pwritev(
fd: ::c_int,
iov: *const ::iovec,
@@ -3799,8 +4045,79 @@ cfg_if! {
}
}
+// These functions are not available on OpenHarmony
+cfg_if! {
+ if #[cfg(not(target_env = "ohos"))] {
+ extern "C" {
+ // Only `getspnam_r` is implemented for musl, out of all of the reenterant
+ // functions from `shadow.h`.
+ // https://git.musl-libc.org/cgit/musl/tree/include/shadow.h
+ pub fn getspnam_r(
+ name: *const ::c_char,
+ spbuf: *mut spwd,
+ buf: *mut ::c_char,
+ buflen: ::size_t,
+ spbufp: *mut *mut spwd,
+ ) -> ::c_int;
+
+ pub fn shm_open(name: *const c_char, oflag: ::c_int, mode: mode_t) -> ::c_int;
+ pub fn shm_unlink(name: *const ::c_char) -> ::c_int;
+
+ pub fn mq_open(name: *const ::c_char, oflag: ::c_int, ...) -> ::mqd_t;
+ pub fn mq_close(mqd: ::mqd_t) -> ::c_int;
+ pub fn mq_unlink(name: *const ::c_char) -> ::c_int;
+ pub fn mq_receive(
+ mqd: ::mqd_t,
+ msg_ptr: *mut ::c_char,
+ msg_len: ::size_t,
+ msg_prio: *mut ::c_uint,
+ ) -> ::ssize_t;
+ pub fn mq_timedreceive(
+ mqd: ::mqd_t,
+ msg_ptr: *mut ::c_char,
+ msg_len: ::size_t,
+ msg_prio: *mut ::c_uint,
+ abs_timeout: *const ::timespec,
+ ) -> ::ssize_t;
+ pub fn mq_send(
+ mqd: ::mqd_t,
+ msg_ptr: *const ::c_char,
+ msg_len: ::size_t,
+ msg_prio: ::c_uint,
+ ) -> ::c_int;
+ pub fn mq_timedsend(
+ mqd: ::mqd_t,
+ msg_ptr: *const ::c_char,
+ msg_len: ::size_t,
+ msg_prio: ::c_uint,
+ abs_timeout: *const ::timespec,
+ ) -> ::c_int;
+ pub fn mq_getattr(mqd: ::mqd_t, attr: *mut ::mq_attr) -> ::c_int;
+ pub fn mq_setattr(
+ mqd: ::mqd_t,
+ newattr: *const ::mq_attr,
+ oldattr: *mut ::mq_attr
+ ) -> ::c_int;
+
+ pub fn pthread_mutex_consistent(mutex: *mut pthread_mutex_t) -> ::c_int;
+ pub fn pthread_cancel(thread: ::pthread_t) -> ::c_int;
+ pub fn pthread_mutexattr_getrobust(
+ attr: *const pthread_mutexattr_t,
+ robustness: *mut ::c_int,
+ ) -> ::c_int;
+ pub fn pthread_mutexattr_setrobust(
+ attr: *mut pthread_mutexattr_t,
+ robustness: ::c_int,
+ ) -> ::c_int;
+ }
+ }
+}
+
extern "C" {
- #[cfg_attr(not(target_env = "musl"), link_name = "__xpg_strerror_r")]
+ #[cfg_attr(
+ not(any(target_env = "musl", target_env = "ohos")),
+ link_name = "__xpg_strerror_r"
+ )]
pub fn strerror_r(errnum: ::c_int, buf: *mut c_char, buflen: ::size_t) -> ::c_int;
pub fn abs(i: ::c_int) -> ::c_int;
@@ -3831,18 +4148,6 @@ extern "C" {
pub fn getspent() -> *mut spwd;
pub fn getspnam(name: *const ::c_char) -> *mut spwd;
- // Only `getspnam_r` is implemented for musl, out of all of the reenterant
- // functions from `shadow.h`.
- // https://git.musl-libc.org/cgit/musl/tree/include/shadow.h
- pub fn getspnam_r(
- name: *const ::c_char,
- spbuf: *mut spwd,
- buf: *mut ::c_char,
- buflen: ::size_t,
- spbufp: *mut *mut spwd,
- ) -> ::c_int;
-
- pub fn shm_open(name: *const c_char, oflag: ::c_int, mode: mode_t) -> ::c_int;
// System V IPC
pub fn shmget(key: ::key_t, size: ::size_t, shmflg: ::c_int) -> ::c_int;
@@ -3948,37 +4253,6 @@ extern "C" {
id: ::c_int,
data: *mut ::c_char,
) -> ::c_int;
- pub fn mq_open(name: *const ::c_char, oflag: ::c_int, ...) -> ::mqd_t;
- pub fn mq_close(mqd: ::mqd_t) -> ::c_int;
- pub fn mq_unlink(name: *const ::c_char) -> ::c_int;
- pub fn mq_receive(
- mqd: ::mqd_t,
- msg_ptr: *mut ::c_char,
- msg_len: ::size_t,
- msg_prio: *mut ::c_uint,
- ) -> ::ssize_t;
- pub fn mq_timedreceive(
- mqd: ::mqd_t,
- msg_ptr: *mut ::c_char,
- msg_len: ::size_t,
- msg_prio: *mut ::c_uint,
- abs_timeout: *const ::timespec,
- ) -> ::ssize_t;
- pub fn mq_send(
- mqd: ::mqd_t,
- msg_ptr: *const ::c_char,
- msg_len: ::size_t,
- msg_prio: ::c_uint,
- ) -> ::c_int;
- pub fn mq_timedsend(
- mqd: ::mqd_t,
- msg_ptr: *const ::c_char,
- msg_len: ::size_t,
- msg_prio: ::c_uint,
- abs_timeout: *const ::timespec,
- ) -> ::c_int;
- pub fn mq_getattr(mqd: ::mqd_t, attr: *mut ::mq_attr) -> ::c_int;
- pub fn mq_setattr(mqd: ::mqd_t, newattr: *const ::mq_attr, oldattr: *mut ::mq_attr) -> ::c_int;
pub fn epoll_pwait(
epfd: ::c_int,
events: *mut ::epoll_event,
@@ -4045,8 +4319,6 @@ extern "C" {
pub fn posix_madvise(addr: *mut ::c_void, len: ::size_t, advice: ::c_int) -> ::c_int;
- pub fn shm_unlink(name: *const ::c_char) -> ::c_int;
-
pub fn seekdir(dirp: *mut ::DIR, loc: ::c_long);
pub fn telldir(dirp: *mut ::DIR) -> ::c_long;
@@ -4150,11 +4422,28 @@ extern "C" {
attr: *mut pthread_mutexattr_t,
protocol: ::c_int,
) -> ::c_int;
- pub fn pthread_mutex_consistent(mutex: *mut pthread_mutex_t) -> ::c_int;
+
pub fn pthread_mutex_timedlock(
lock: *mut pthread_mutex_t,
abstime: *const ::timespec,
) -> ::c_int;
+ pub fn pthread_barrierattr_init(attr: *mut ::pthread_barrierattr_t) -> ::c_int;
+ pub fn pthread_barrierattr_destroy(attr: *mut ::pthread_barrierattr_t) -> ::c_int;
+ pub fn pthread_barrierattr_getpshared(
+ attr: *const ::pthread_barrierattr_t,
+ shared: *mut ::c_int,
+ ) -> ::c_int;
+ pub fn pthread_barrierattr_setpshared(
+ attr: *mut ::pthread_barrierattr_t,
+ shared: ::c_int,
+ ) -> ::c_int;
+ pub fn pthread_barrier_init(
+ barrier: *mut pthread_barrier_t,
+ attr: *const ::pthread_barrierattr_t,
+ count: ::c_uint,
+ ) -> ::c_int;
+ pub fn pthread_barrier_destroy(barrier: *mut pthread_barrier_t) -> ::c_int;
+ pub fn pthread_barrier_wait(barrier: *mut pthread_barrier_t) -> ::c_int;
pub fn pthread_spin_init(lock: *mut ::pthread_spinlock_t, pshared: ::c_int) -> ::c_int;
pub fn pthread_spin_destroy(lock: *mut ::pthread_spinlock_t) -> ::c_int;
pub fn pthread_spin_lock(lock: *mut ::pthread_spinlock_t) -> ::c_int;
@@ -4231,7 +4520,6 @@ extern "C" {
pub fn pthread_sigmask(how: ::c_int, set: *const sigset_t, oldset: *mut sigset_t) -> ::c_int;
pub fn sem_open(name: *const ::c_char, oflag: ::c_int, ...) -> *mut sem_t;
pub fn getgrnam(name: *const ::c_char) -> *mut ::group;
- pub fn pthread_cancel(thread: ::pthread_t) -> ::c_int;
pub fn pthread_kill(thread: ::pthread_t, sig: ::c_int) -> ::c_int;
pub fn sem_unlink(name: *const ::c_char) -> ::c_int;
pub fn daemon(nochdir: ::c_int, noclose: ::c_int) -> ::c_int;
@@ -4266,14 +4554,6 @@ extern "C" {
attr: *const pthread_mutexattr_t,
pshared: *mut ::c_int,
) -> ::c_int;
- pub fn pthread_mutexattr_getrobust(
- attr: *const pthread_mutexattr_t,
- robustness: *mut ::c_int,
- ) -> ::c_int;
- pub fn pthread_mutexattr_setrobust(
- attr: *mut pthread_mutexattr_t,
- robustness: ::c_int,
- ) -> ::c_int;
pub fn popen(command: *const c_char, mode: *const c_char) -> *mut ::FILE;
pub fn faccessat(
dirfd: ::c_int,
@@ -4458,13 +4738,22 @@ extern "C" {
longopts: *const option,
longindex: *mut ::c_int,
) -> ::c_int;
+
+ pub fn copy_file_range(
+ fd_in: ::c_int,
+ off_in: *mut ::off64_t,
+ fd_out: ::c_int,
+ off_out: *mut ::off64_t,
+ len: ::size_t,
+ flags: ::c_uint,
+ ) -> ::ssize_t;
}
cfg_if! {
if #[cfg(target_env = "uclibc")] {
mod uclibc;
pub use self::uclibc::*;
- } else if #[cfg(target_env = "musl")] {
+ } else if #[cfg(any(target_env = "musl", target_env = "ohos"))] {
mod musl;
pub use self::musl::*;
} else if #[cfg(target_env = "gnu")] {
diff --git a/vendor/libc/src/unix/linux_like/linux/musl/b32/mod.rs b/vendor/libc/src/unix/linux_like/linux/musl/b32/mod.rs
index 63824fbf5..cecd6dcab 100644
--- a/vendor/libc/src/unix/linux_like/linux/musl/b32/mod.rs
+++ b/vendor/libc/src/unix/linux_like/linux/musl/b32/mod.rs
@@ -38,6 +38,7 @@ s! {
pub const __SIZEOF_PTHREAD_RWLOCK_T: usize = 32;
pub const __SIZEOF_PTHREAD_MUTEX_T: usize = 24;
+pub const __SIZEOF_PTHREAD_BARRIER_T: usize = 20;
cfg_if! {
if #[cfg(any(target_arch = "x86"))] {
diff --git a/vendor/libc/src/unix/linux_like/linux/musl/b32/riscv32/mod.rs b/vendor/libc/src/unix/linux_like/linux/musl/b32/riscv32/mod.rs
index 573624620..9ce6a9fd3 100644
--- a/vendor/libc/src/unix/linux_like/linux/musl/b32/riscv32/mod.rs
+++ b/vendor/libc/src/unix/linux_like/linux/musl/b32/riscv32/mod.rs
@@ -366,6 +366,7 @@ pub const TIOCM_DSR: ::c_int = 256;
pub const __SIZEOF_PTHREAD_CONDATTR_T: usize = 4;
pub const __SIZEOF_PTHREAD_MUTEXATTR_T: usize = 4;
+pub const __SIZEOF_PTHREAD_BARRIERATTR_T: usize = 4;
pub const O_DIRECT: ::c_int = 16384;
pub const O_DIRECTORY: ::c_int = 65536;
pub const O_NOFOLLOW: ::c_int = 131072;
@@ -504,6 +505,7 @@ pub const TIOCSWINSZ: ::c_int = 21524;
pub const FIONREAD: ::c_int = 21531;
pub const __SIZEOF_PTHREAD_MUTEX_T: usize = 40;
pub const __SIZEOF_PTHREAD_RWLOCK_T: usize = 56;
+pub const __SIZEOF_PTHREAD_BARRIER_T: usize = 32;
pub const SYS_read: ::c_long = 63;
pub const SYS_write: ::c_long = 64;
diff --git a/vendor/libc/src/unix/linux_like/linux/musl/b64/mod.rs b/vendor/libc/src/unix/linux_like/linux/musl/b64/mod.rs
index 34c63bc69..f437355d9 100644
--- a/vendor/libc/src/unix/linux_like/linux/musl/b64/mod.rs
+++ b/vendor/libc/src/unix/linux_like/linux/musl/b64/mod.rs
@@ -132,6 +132,7 @@ s! {
pub const __SIZEOF_PTHREAD_RWLOCK_T: usize = 56;
pub const __SIZEOF_PTHREAD_MUTEX_T: usize = 40;
+pub const __SIZEOF_PTHREAD_BARRIER_T: usize = 32;
pub const SOCK_NONBLOCK: ::c_int = 2048;
diff --git a/vendor/libc/src/unix/linux_like/linux/musl/mod.rs b/vendor/libc/src/unix/linux_like/linux/musl/mod.rs
index 2a894a602..37a8ca2af 100644
--- a/vendor/libc/src/unix/linux_like/linux/musl/mod.rs
+++ b/vendor/libc/src/unix/linux_like/linux/musl/mod.rs
@@ -287,12 +287,14 @@ s_no_extra_traits! {
// FIXME: musl added paddings and adjusted
// layout in 1.2.0 but our CI is still 1.1.24.
- // So, I'm leaving some fields as comments for now.
+ // So, I'm leaving some fields as cfg for now.
// ref. https://github.com/bminor/musl/commit/
// 1e7f0fcd7ff2096904fd93a2ee6d12a2392be392
+ //
+ // OpenHarmony uses the musl 1.2 layout.
pub struct utmpx {
pub ut_type: ::c_short,
- //__ut_pad1: ::c_short,
+ __ut_pad1: ::c_short,
pub ut_pid: ::pid_t,
pub ut_line: [::c_char; 32],
pub ut_id: [::c_char; 4],
@@ -300,15 +302,22 @@ s_no_extra_traits! {
pub ut_host: [::c_char; 256],
pub ut_exit: __exit_status,
- //#[cfg(target_endian = "little")]
+ #[cfg(target_env = "musl")]
pub ut_session: ::c_long,
- //#[cfg(target_endian = "little")]
- //__ut_pad2: ::c_long,
- //#[cfg(not(target_endian = "little"))]
- //__ut_pad2: ::c_int,
- //#[cfg(not(target_endian = "little"))]
- //pub ut_session: ::c_int,
+ #[cfg(target_env = "ohos")]
+ #[cfg(target_endian = "little")]
+ pub ut_session: ::c_int,
+ #[cfg(target_env = "ohos")]
+ #[cfg(target_endian = "little")]
+ __ut_pad2: ::c_int,
+
+ #[cfg(target_env = "ohos")]
+ #[cfg(not(target_endian = "little"))]
+ __ut_pad2: ::c_int,
+ #[cfg(target_env = "ohos")]
+ #[cfg(not(target_endian = "little"))]
+ pub ut_session: ::c_int,
pub ut_tv: ::timeval,
pub ut_addr_v6: [::c_uint; 4],
@@ -537,6 +546,7 @@ pub const SIGUNUSED: ::c_int = ::SIGSYS;
pub const __SIZEOF_PTHREAD_CONDATTR_T: usize = 4;
pub const __SIZEOF_PTHREAD_MUTEXATTR_T: usize = 4;
pub const __SIZEOF_PTHREAD_RWLOCKATTR_T: usize = 8;
+pub const __SIZEOF_PTHREAD_BARRIERATTR_T: usize = 4;
pub const CPU_SETSIZE: ::c_int = 128;
diff --git a/vendor/libc/src/unix/linux_like/linux/no_align.rs b/vendor/libc/src/unix/linux_like/linux/no_align.rs
index 2b5abb3be..6f5f2f7c0 100644
--- a/vendor/libc/src/unix/linux_like/linux/no_align.rs
+++ b/vendor/libc/src/unix/linux_like/linux/no_align.rs
@@ -11,7 +11,7 @@ macro_rules! expand_align {
target_arch = "riscv32",
target_arch = "loongarch64",
all(target_arch = "aarch64",
- target_env = "musl")))]
+ any(target_env = "musl", target_env = "ohos"))))]
__align: [::c_int; 0],
#[cfg(not(any(target_arch = "x86_64",
target_arch = "powerpc64",
@@ -22,15 +22,15 @@ macro_rules! expand_align {
target_arch = "riscv32",
target_arch = "loongarch64",
all(target_arch = "aarch64",
- target_env = "musl"))))]
+ any(target_env = "musl", target_env = "ohos")))))]
__align: [::c_long; 0],
size: [u8; ::__SIZEOF_PTHREAD_MUTEXATTR_T],
}
pub struct pthread_rwlockattr_t {
- #[cfg(target_env = "musl")]
+ #[cfg(any(target_env = "musl", target_env = "ohos"))]
__align: [::c_int; 0],
- #[cfg(not(target_env = "musl"))]
+ #[cfg(not(any(target_env = "musl", target_env = "ohos")))]
__align: [::c_long; 0],
size: [u8; ::__SIZEOF_PTHREAD_RWLOCKATTR_T],
}
@@ -40,6 +40,11 @@ macro_rules! expand_align {
size: [u8; ::__SIZEOF_PTHREAD_CONDATTR_T],
}
+ pub struct pthread_barrierattr_t {
+ __align: [::c_int; 0],
+ size: [u8; ::__SIZEOF_PTHREAD_BARRIERATTR_T],
+ }
+
pub struct fanotify_event_metadata {
__align: [::c_long; 0],
pub event_len: __u32,
@@ -54,9 +59,9 @@ macro_rules! expand_align {
s_no_extra_traits! {
pub struct pthread_cond_t {
- #[cfg(target_env = "musl")]
+ #[cfg(any(target_env = "musl", target_env = "ohos"))]
__align: [*const ::c_void; 0],
- #[cfg(not(target_env = "musl"))]
+ #[cfg(not(any(target_env = "musl", target_env = "ohos")))]
__align: [::c_longlong; 0],
size: [u8; ::__SIZEOF_PTHREAD_COND_T],
}
@@ -100,6 +105,26 @@ macro_rules! expand_align {
__align: [::c_longlong; 0],
size: [u8; ::__SIZEOF_PTHREAD_RWLOCK_T],
}
+
+ pub struct pthread_barrier_t {
+ #[cfg(any(target_arch = "mips",
+ target_arch = "arm",
+ target_arch = "m68k",
+ target_arch = "powerpc",
+ target_arch = "sparc",
+ all(target_arch = "x86_64",
+ target_pointer_width = "32")))]
+ __align: [::c_long; 0],
+ #[cfg(not(any(target_arch = "mips",
+ target_arch = "arm",
+ target_arch = "m68k",
+ target_arch = "powerpc",
+ target_arch = "sparc",
+ all(target_arch = "x86_64",
+ target_pointer_width = "32"))))]
+ __align: [::c_longlong; 0],
+ size: [u8; ::__SIZEOF_PTHREAD_BARRIER_T],
+ }
}
};
}
diff --git a/vendor/libc/src/unix/linux_like/linux/uclibc/arm/mod.rs b/vendor/libc/src/unix/linux_like/linux/uclibc/arm/mod.rs
index 25125bcc9..cff82f005 100644
--- a/vendor/libc/src/unix/linux_like/linux/uclibc/arm/mod.rs
+++ b/vendor/libc/src/unix/linux_like/linux/uclibc/arm/mod.rs
@@ -466,6 +466,7 @@ pub const POLLWRBAND: ::c_short = 0x200;
pub const POLLWRNORM: ::c_short = 0x100;
pub const PTHREAD_STACK_MIN: ::size_t = 16384;
pub const RTLD_GLOBAL: ::c_int = 0x00100;
+pub const PIDFD_NONBLOCK: ::c_int = 0x800;
// These are typed unsigned to match sigaction
pub const SA_NOCLDSTOP: ::c_ulong = 0x1;
@@ -883,11 +884,35 @@ pub const SYS_pwritev2: ::c_long = 393;
pub const SYS_pkey_mprotect: ::c_long = 394;
pub const SYS_pkey_alloc: ::c_long = 395;
pub const SYS_pkey_free: ::c_long = 396;
+// FIXME: should be a `c_long` too, but a bug slipped in.
pub const SYS_statx: ::c_int = 397;
pub const SYS_pidfd_send_signal: ::c_long = 424;
+pub const SYS_io_uring_setup: ::c_long = 425;
+pub const SYS_io_uring_enter: ::c_long = 426;
+pub const SYS_io_uring_register: ::c_long = 427;
+pub const SYS_open_tree: ::c_long = 428;
+pub const SYS_move_mount: ::c_long = 429;
+pub const SYS_fsopen: ::c_long = 430;
+pub const SYS_fsconfig: ::c_long = 431;
+pub const SYS_fsmount: ::c_long = 432;
+pub const SYS_fspick: ::c_long = 433;
pub const SYS_pidfd_open: ::c_long = 434;
pub const SYS_clone3: ::c_long = 435;
+pub const SYS_close_range: ::c_long = 436;
+pub const SYS_openat2: ::c_long = 437;
pub const SYS_pidfd_getfd: ::c_long = 438;
+pub const SYS_faccessat2: ::c_long = 439;
+pub const SYS_process_madvise: ::c_long = 440;
+pub const SYS_epoll_pwait2: ::c_long = 441;
+pub const SYS_mount_setattr: ::c_long = 442;
+pub const SYS_quotactl_fd: ::c_long = 443;
+pub const SYS_landlock_create_ruleset: ::c_long = 444;
+pub const SYS_landlock_add_rule: ::c_long = 445;
+pub const SYS_landlock_restrict_self: ::c_long = 446;
+pub const SYS_memfd_secret: ::c_long = 447;
+pub const SYS_process_mrelease: ::c_long = 448;
+pub const SYS_futex_waitv: ::c_long = 449;
+pub const SYS_set_mempolicy_home_node: ::c_long = 450;
cfg_if! {
if #[cfg(libc_align)] {
diff --git a/vendor/libc/src/unix/linux_like/linux/uclibc/mips/mips32/mod.rs b/vendor/libc/src/unix/linux_like/linux/uclibc/mips/mips32/mod.rs
index 7f9d3c031..a5aca85a3 100644
--- a/vendor/libc/src/unix/linux_like/linux/uclibc/mips/mips32/mod.rs
+++ b/vendor/libc/src/unix/linux_like/linux/uclibc/mips/mips32/mod.rs
@@ -623,7 +623,34 @@ pub const SYS_pwritev2: ::c_long = 4000 + 362;
pub const SYS_pkey_mprotect: ::c_long = 4000 + 363;
pub const SYS_pkey_alloc: ::c_long = 4000 + 364;
pub const SYS_pkey_free: ::c_long = 4000 + 365;
+pub const SYS_statx: ::c_long = 4000 + 366;
+pub const SYS_pidfd_send_signal: ::c_long = 4000 + 424;
+pub const SYS_io_uring_setup: ::c_long = 4000 + 425;
+pub const SYS_io_uring_enter: ::c_long = 4000 + 426;
+pub const SYS_io_uring_register: ::c_long = 4000 + 427;
+pub const SYS_open_tree: ::c_long = 4000 + 428;
+pub const SYS_move_mount: ::c_long = 4000 + 429;
+pub const SYS_fsopen: ::c_long = 4000 + 430;
+pub const SYS_fsconfig: ::c_long = 4000 + 431;
+pub const SYS_fsmount: ::c_long = 4000 + 432;
+pub const SYS_fspick: ::c_long = 4000 + 433;
+pub const SYS_pidfd_open: ::c_long = 4000 + 434;
pub const SYS_clone3: ::c_long = 4000 + 435;
+pub const SYS_close_range: ::c_long = 4000 + 436;
+pub const SYS_openat2: ::c_long = 4000 + 437;
+pub const SYS_pidfd_getfd: ::c_long = 4000 + 438;
+pub const SYS_faccessat2: ::c_long = 4000 + 439;
+pub const SYS_process_madvise: ::c_long = 4000 + 440;
+pub const SYS_epoll_pwait2: ::c_long = 4000 + 441;
+pub const SYS_mount_setattr: ::c_long = 4000 + 442;
+pub const SYS_quotactl_fd: ::c_long = 4000 + 443;
+pub const SYS_landlock_create_ruleset: ::c_long = 4000 + 444;
+pub const SYS_landlock_add_rule: ::c_long = 4000 + 445;
+pub const SYS_landlock_restrict_self: ::c_long = 4000 + 446;
+pub const SYS_memfd_secret: ::c_long = 4000 + 447;
+pub const SYS_process_mrelease: ::c_long = 4000 + 448;
+pub const SYS_futex_waitv: ::c_long = 4000 + 449;
+pub const SYS_set_mempolicy_home_node: ::c_long = 4000 + 450;
#[link(name = "util")]
extern "C" {
diff --git a/vendor/libc/src/unix/linux_like/linux/uclibc/mips/mips64/mod.rs b/vendor/libc/src/unix/linux_like/linux/uclibc/mips/mips64/mod.rs
index be6d2813d..8ca100fcd 100644
--- a/vendor/libc/src/unix/linux_like/linux/uclibc/mips/mips64/mod.rs
+++ b/vendor/libc/src/unix/linux_like/linux/uclibc/mips/mips64/mod.rs
@@ -189,8 +189,10 @@ s! {
pub const __SIZEOF_PTHREAD_CONDATTR_T: usize = 4;
pub const __SIZEOF_PTHREAD_MUTEXATTR_T: usize = 4;
+pub const __SIZEOF_PTHREAD_BARRIERATTR_T: usize = 4;
pub const __SIZEOF_PTHREAD_MUTEX_T: usize = 40;
pub const __SIZEOF_PTHREAD_RWLOCK_T: usize = 56;
+pub const __SIZEOF_PTHREAD_BARRIER_T: usize = 32;
pub const SYS_gettid: ::c_long = 5178; // Valid for n64
diff --git a/vendor/libc/src/unix/linux_like/linux/uclibc/mips/mod.rs b/vendor/libc/src/unix/linux_like/linux/uclibc/mips/mod.rs
index 61684094f..56bfcc5d3 100644
--- a/vendor/libc/src/unix/linux_like/linux/uclibc/mips/mod.rs
+++ b/vendor/libc/src/unix/linux_like/linux/uclibc/mips/mod.rs
@@ -38,6 +38,8 @@ pub const O_ACCMODE: ::c_int = 3;
pub const O_DIRECT: ::c_int = 0x8000;
pub const O_DIRECTORY: ::c_int = 0x10000;
pub const O_NOFOLLOW: ::c_int = 0x20000;
+pub const O_NOATIME: ::c_int = 0x40000;
+pub const O_PATH: ::c_int = 0o010000000;
pub const O_APPEND: ::c_int = 8;
pub const O_CREAT: ::c_int = 256;
@@ -49,9 +51,11 @@ pub const O_RSYNC: ::c_int = 0x10;
pub const O_DSYNC: ::c_int = 0x10;
pub const O_FSYNC: ::c_int = 0x10;
pub const O_ASYNC: ::c_int = 0x1000;
+pub const O_LARGEFILE: ::c_int = 0x2000;
pub const O_NDELAY: ::c_int = 0x80;
pub const SOCK_NONBLOCK: ::c_int = 128;
+pub const PIDFD_NONBLOCK: ::c_int = 128;
pub const EDEADLK: ::c_int = 45;
pub const ENAMETOOLONG: ::c_int = 78;
@@ -72,6 +76,7 @@ pub const EL2HLT: ::c_int = 44;
pub const EBADE: ::c_int = 50;
pub const EBADR: ::c_int = 51;
pub const EXFULL: ::c_int = 52;
+pub const FFDLY: ::c_int = 0o0100000;
pub const ENOANO: ::c_int = 53;
pub const EBADRQC: ::c_int = 54;
pub const EBADSLT: ::c_int = 55;
@@ -147,6 +152,8 @@ pub const MAP_POPULATE: ::c_int = 0x10000;
pub const MAP_NONBLOCK: ::c_int = 0x20000;
pub const MAP_STACK: ::c_int = 0x40000;
+pub const NLDLY: ::tcflag_t = 0o0000400;
+
pub const SOCK_STREAM: ::c_int = 2;
pub const SOCK_DGRAM: ::c_int = 1;
pub const SOCK_SEQPACKET: ::c_int = 5;
@@ -207,30 +214,39 @@ pub const RTLD_GLOBAL: ::c_int = 0x4;
pub const SIGSTKSZ: ::size_t = 8192;
pub const CBAUD: ::tcflag_t = 0o0010017;
+pub const CBAUDEX: ::tcflag_t = 0o0010000;
+pub const CIBAUD: ::tcflag_t = 0o002003600000;
pub const TAB1: ::tcflag_t = 0x00000800;
pub const TAB2: ::tcflag_t = 0x00001000;
pub const TAB3: ::tcflag_t = 0x00001800;
+pub const TABDLY: ::tcflag_t = 0o0014000;
pub const CR1: ::tcflag_t = 0x00000200;
pub const CR2: ::tcflag_t = 0x00000400;
pub const CR3: ::tcflag_t = 0x00000600;
pub const FF1: ::tcflag_t = 0x00008000;
pub const BS1: ::tcflag_t = 0x00002000;
+pub const BSDLY: ::tcflag_t = 0o0020000;
pub const VT1: ::tcflag_t = 0x00004000;
pub const VWERASE: usize = 14;
+pub const XTABS: ::tcflag_t = 0o0014000;
pub const VREPRINT: usize = 12;
pub const VSUSP: usize = 10;
+pub const VSWTC: usize = 7;
+pub const VTDLY: ::c_int = 0o0040000;
pub const VSTART: usize = 8;
pub const VSTOP: usize = 9;
pub const VDISCARD: usize = 13;
pub const VTIME: usize = 5;
pub const IXON: ::tcflag_t = 0x00000400;
pub const IXOFF: ::tcflag_t = 0x00001000;
+pub const OLCUC: ::tcflag_t = 0o0000002;
pub const ONLCR: ::tcflag_t = 0x4;
pub const CSIZE: ::tcflag_t = 0x00000030;
pub const CS6: ::tcflag_t = 0x00000010;
pub const CS7: ::tcflag_t = 0x00000020;
pub const CS8: ::tcflag_t = 0x00000030;
pub const CSTOPB: ::tcflag_t = 0x00000040;
+pub const CRDLY: ::c_int = 0o0003000;
pub const CREAD: ::tcflag_t = 0x00000080;
pub const PARENB: ::tcflag_t = 0x00000100;
pub const PARODD: ::tcflag_t = 0x00000200;
@@ -247,6 +263,8 @@ pub const ICANON: ::tcflag_t = 0x00000002;
pub const PENDIN: ::tcflag_t = 0x00004000;
pub const NOFLSH: ::tcflag_t = 0x00000080;
+pub const MAP_HUGETLB: ::c_int = 0x80000;
+
pub const B0: ::speed_t = 0o000000;
pub const B50: ::speed_t = 0o000001;
pub const B75: ::speed_t = 0o000002;
diff --git a/vendor/libc/src/unix/linux_like/linux/uclibc/x86_64/mod.rs b/vendor/libc/src/unix/linux_like/linux/uclibc/x86_64/mod.rs
index 43ac79296..390119e3b 100644
--- a/vendor/libc/src/unix/linux_like/linux/uclibc/x86_64/mod.rs
+++ b/vendor/libc/src/unix/linux_like/linux/uclibc/x86_64/mod.rs
@@ -330,6 +330,9 @@ pub const __SIZEOF_PTHREAD_COND_T: usize = 48;
pub const __SIZEOF_PTHREAD_CONDATTR_T: usize = 4;
pub const __SIZEOF_PTHREAD_RWLOCK_T: usize = 56;
pub const __SIZEOF_PTHREAD_RWLOCKATTR_T: usize = 8;
+pub const __SIZEOF_PTHREAD_BARRIER_T: usize = 32;
+pub const __SIZEOF_PTHREAD_BARRIERATTR_T: usize = 4;
+pub const PIDFD_NONBLOCK: ::c_int = 04000;
cfg_if! {
if #[cfg(target_os = "l4re")] {
diff --git a/vendor/libc/src/unix/linux_like/mod.rs b/vendor/libc/src/unix/linux_like/mod.rs
index e2e73b330..db5774596 100644
--- a/vendor/libc/src/unix/linux_like/mod.rs
+++ b/vendor/libc/src/unix/linux_like/mod.rs
@@ -108,13 +108,13 @@ s! {
pub struct sched_param {
pub sched_priority: ::c_int,
- #[cfg(any(target_env = "musl", target_os = "emscripten"))]
+ #[cfg(any(target_env = "musl", target_os = "emscripten", target_env = "ohos"))]
pub sched_ss_low_priority: ::c_int,
- #[cfg(any(target_env = "musl", target_os = "emscripten"))]
+ #[cfg(any(target_env = "musl", target_os = "emscripten", target_env = "ohos"))]
pub sched_ss_repl_period: ::timespec,
- #[cfg(any(target_env = "musl", target_os = "emscripten"))]
+ #[cfg(any(target_env = "musl", target_os = "emscripten", target_env = "ohos"))]
pub sched_ss_init_budget: ::timespec,
- #[cfg(any(target_env = "musl", target_os = "emscripten"))]
+ #[cfg(any(target_env = "musl", target_os = "emscripten", target_env = "ohos"))]
pub sched_ss_max_repl: ::c_int,
}
@@ -557,7 +557,21 @@ pub const XATTR_CREATE: ::c_int = 0x1;
pub const XATTR_REPLACE: ::c_int = 0x2;
cfg_if! {
- if #[cfg(not(target_env = "uclibc"))] {
+ if #[cfg(target_env = "ohos")] {
+ pub const LC_CTYPE: ::c_int = 0;
+ pub const LC_NUMERIC: ::c_int = 1;
+ pub const LC_TIME: ::c_int = 2;
+ pub const LC_COLLATE: ::c_int = 3;
+ pub const LC_MONETARY: ::c_int = 4;
+ pub const LC_MESSAGES: ::c_int = 5;
+ pub const LC_PAPER: ::c_int = 6;
+ pub const LC_NAME: ::c_int = 7;
+ pub const LC_ADDRESS: ::c_int = 8;
+ pub const LC_TELEPHONE: ::c_int = 9;
+ pub const LC_MEASUREMENT: ::c_int = 10;
+ pub const LC_IDENTIFICATION: ::c_int = 11;
+ pub const LC_ALL: ::c_int = 12;
+ } else if #[cfg(not(target_env = "uclibc"))] {
pub const LC_CTYPE: ::c_int = 0;
pub const LC_NUMERIC: ::c_int = 1;
pub const LC_TIME: ::c_int = 2;
@@ -973,7 +987,11 @@ pub const TCP_QUICKACK: ::c_int = 12;
pub const TCP_CONGESTION: ::c_int = 13;
pub const TCP_MD5SIG: ::c_int = 14;
cfg_if! {
- if #[cfg(all(target_os = "linux", any(target_env = "gnu", target_env = "musl")))] {
+ if #[cfg(all(target_os = "linux", any(
+ target_env = "gnu",
+ target_env = "musl",
+ target_env = "ohos"
+ )))] {
// WARN: deprecated
pub const TCP_COOKIE_TRANSACTIONS: ::c_int = 15;
}
@@ -1006,6 +1024,7 @@ cfg_if! {
pub const TCP_CM_INQ: ::c_int = TCP_INQ;
// NOTE: Some CI images doesn't have this option yet.
// pub const TCP_TX_DELAY: ::c_int = 37;
+ pub const TCP_MD5SIG_MAXKEYLEN: usize = 80;
}
}
@@ -1201,6 +1220,7 @@ pub const AT_REMOVEDIR: ::c_int = 0x200;
pub const AT_SYMLINK_FOLLOW: ::c_int = 0x400;
pub const AT_NO_AUTOMOUNT: ::c_int = 0x800;
pub const AT_EMPTY_PATH: ::c_int = 0x1000;
+pub const AT_RECURSIVE: ::c_int = 0x8000;
pub const LOG_CRON: ::c_int = 9 << 3;
pub const LOG_AUTHPRIV: ::c_int = 10 << 3;
@@ -1782,6 +1802,8 @@ extern "C" {
pub fn sendmsg(fd: ::c_int, msg: *const ::msghdr, flags: ::c_int) -> ::ssize_t;
pub fn recvmsg(fd: ::c_int, msg: *mut ::msghdr, flags: ::c_int) -> ::ssize_t;
pub fn uname(buf: *mut ::utsname) -> ::c_int;
+
+ pub fn strchrnul(s: *const ::c_char, c: ::c_int) -> *mut ::c_char;
}
cfg_if! {
diff --git a/vendor/libc/src/unix/mod.rs b/vendor/libc/src/unix/mod.rs
index 826b83518..b005970b9 100644
--- a/vendor/libc/src/unix/mod.rs
+++ b/vendor/libc/src/unix/mod.rs
@@ -130,7 +130,7 @@ s! {
#[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))]
__pad14: u32,
- #[cfg(any(target_env = "musl", target_os = "emscripten"))]
+ #[cfg(any(target_env = "musl", target_env = "ohos", target_os = "emscripten"))]
__reserved: [c_long; 16],
}
@@ -351,7 +351,7 @@ cfg_if! {
#[link(name = "dl", cfg(not(target_feature = "crt-static")))]
#[link(name = "c", cfg(not(target_feature = "crt-static")))]
extern {}
- } else if #[cfg(target_env = "musl")] {
+ } else if #[cfg(any(target_env = "musl", target_env = "ohos"))] {
#[cfg_attr(feature = "rustc-dep-of-std",
link(name = "c", kind = "static", modifiers = "-bundle",
cfg(target_feature = "crt-static")))]
@@ -404,6 +404,12 @@ cfg_if! {
#[cfg_attr(feature = "rustc-dep-of-std",
link(name = "c", cfg(not(target_feature = "crt-static"))))]
extern {}
+ } else if #[cfg(target_env = "aix")] {
+ #[link(name = "c")]
+ #[link(name = "m")]
+ #[link(name = "bsd")]
+ #[link(name = "pthread")]
+ extern {}
} else {
#[link(name = "c")]
#[link(name = "m")]
@@ -1186,7 +1192,6 @@ extern "C" {
pub fn dlerror() -> *mut ::c_char;
pub fn dlsym(handle: *mut ::c_void, symbol: *const ::c_char) -> *mut ::c_void;
pub fn dlclose(handle: *mut ::c_void) -> ::c_int;
- pub fn dladdr(addr: *const ::c_void, info: *mut Dl_info) -> ::c_int;
#[cfg(not(all(
libc_cfg_target_vendor,
@@ -1212,7 +1217,10 @@ extern "C" {
pub fn gai_strerror(errcode: ::c_int) -> *const ::c_char;
#[cfg_attr(
any(
- all(target_os = "linux", not(target_env = "musl")),
+ all(
+ target_os = "linux",
+ not(any(target_env = "musl", target_env = "ohos"))
+ ),
target_os = "freebsd",
target_os = "dragonfly",
target_os = "haiku"
@@ -1231,11 +1239,11 @@ extern "C" {
pub fn res_init() -> ::c_int;
#[cfg_attr(target_os = "netbsd", link_name = "__gmtime_r50")]
- #[cfg_attr(target_env = "musl", allow(deprecated))]
+ #[cfg_attr(any(target_env = "musl", target_env = "ohos"), allow(deprecated))]
// FIXME: for `time_t`
pub fn gmtime_r(time_p: *const time_t, result: *mut tm) -> *mut tm;
#[cfg_attr(target_os = "netbsd", link_name = "__localtime_r50")]
- #[cfg_attr(target_env = "musl", allow(deprecated))]
+ #[cfg_attr(any(target_env = "musl", target_env = "ohos"), allow(deprecated))]
// FIXME: for `time_t`
pub fn localtime_r(time_p: *const time_t, result: *mut tm) -> *mut tm;
#[cfg_attr(
@@ -1243,27 +1251,27 @@ extern "C" {
link_name = "mktime$UNIX2003"
)]
#[cfg_attr(target_os = "netbsd", link_name = "__mktime50")]
- #[cfg_attr(target_env = "musl", allow(deprecated))]
+ #[cfg_attr(any(target_env = "musl", target_env = "ohos"), allow(deprecated))]
// FIXME: for `time_t`
pub fn mktime(tm: *mut tm) -> time_t;
#[cfg_attr(target_os = "netbsd", link_name = "__time50")]
- #[cfg_attr(target_env = "musl", allow(deprecated))]
+ #[cfg_attr(any(target_env = "musl", target_env = "ohos"), allow(deprecated))]
// FIXME: for `time_t`
pub fn time(time: *mut time_t) -> time_t;
#[cfg_attr(target_os = "netbsd", link_name = "__gmtime50")]
- #[cfg_attr(target_env = "musl", allow(deprecated))]
+ #[cfg_attr(any(target_env = "musl", target_env = "ohos"), allow(deprecated))]
// FIXME: for `time_t`
pub fn gmtime(time_p: *const time_t) -> *mut tm;
#[cfg_attr(target_os = "netbsd", link_name = "__locatime50")]
- #[cfg_attr(target_env = "musl", allow(deprecated))]
+ #[cfg_attr(any(target_env = "musl", target_env = "ohos"), allow(deprecated))]
// FIXME: for `time_t`
pub fn localtime(time_p: *const time_t) -> *mut tm;
#[cfg_attr(target_os = "netbsd", link_name = "__difftime50")]
- #[cfg_attr(target_env = "musl", allow(deprecated))]
+ #[cfg_attr(any(target_env = "musl", target_env = "ohos"), allow(deprecated))]
// FIXME: for `time_t`
pub fn difftime(time1: time_t, time0: time_t) -> ::c_double;
#[cfg_attr(target_os = "netbsd", link_name = "__timegm50")]
- #[cfg_attr(target_env = "musl", allow(deprecated))]
+ #[cfg_attr(any(target_env = "musl", target_env = "ohos"), allow(deprecated))]
// FIXME: for `time_t`
pub fn timegm(tm: *mut ::tm) -> time_t;
@@ -1417,6 +1425,14 @@ cfg_if! {
}
cfg_if! {
+ if #[cfg(not(target_os = "aix"))] {
+ extern "C" {
+ pub fn dladdr(addr: *const ::c_void, info: *mut Dl_info) -> ::c_int;
+ }
+ }
+}
+
+cfg_if! {
if #[cfg(not(any(target_env = "uclibc", target_os = "nto")))] {
extern "C" {
pub fn open_wmemstream(
@@ -1570,6 +1586,9 @@ cfg_if! {
} else if #[cfg(target_os = "nto")] {
mod nto;
pub use self::nto::*;
+ } else if #[cfg(target_os = "aix")] {
+ mod aix;
+ pub use self::aix::*;
} else {
// Unknown target_os
}
diff --git a/vendor/libc/src/unix/newlib/mod.rs b/vendor/libc/src/unix/newlib/mod.rs
index 3875f1cb4..1477a6040 100644
--- a/vendor/libc/src/unix/newlib/mod.rs
+++ b/vendor/libc/src/unix/newlib/mod.rs
@@ -271,7 +271,7 @@ pub const PTHREAD_MUTEX_RECURSIVE: ::c_int = 1;
pub const PTHREAD_MUTEX_ERRORCHECK: ::c_int = 2;
cfg_if! {
- if #[cfg(target_os = "horizon")] {
+ if #[cfg(any(target_os = "horizon", target_os = "espidf"))] {
pub const FD_SETSIZE: usize = 64;
} else {
pub const FD_SETSIZE: usize = 1024;
diff --git a/vendor/libc/src/unix/nto/mod.rs b/vendor/libc/src/unix/nto/mod.rs
index 45e97ceac..b8fcf9df8 100644
--- a/vendor/libc/src/unix/nto/mod.rs
+++ b/vendor/libc/src/unix/nto/mod.rs
@@ -2748,7 +2748,6 @@ extern "C" {
pub fn strerror_r(errnum: ::c_int, buf: *mut c_char, buflen: ::size_t) -> ::c_int;
pub fn abs(i: ::c_int) -> ::c_int;
- pub fn atof(s: *const ::c_char) -> ::c_double;
pub fn labs(i: ::c_long) -> ::c_long;
pub fn rand() -> ::c_int;
pub fn srand(seed: ::c_uint);
diff --git a/vendor/libc/src/unix/solarish/mod.rs b/vendor/libc/src/unix/solarish/mod.rs
index 99135d5f5..88f9cab9d 100644
--- a/vendor/libc/src/unix/solarish/mod.rs
+++ b/vendor/libc/src/unix/solarish/mod.rs
@@ -1280,8 +1280,8 @@ pub const FILENAME_MAX: ::c_uint = 1024;
pub const L_tmpnam: ::c_uint = 25;
pub const TMP_MAX: ::c_uint = 17576;
-pub const GRND_NONBLOCK: ::c_int = 0x0001;
-pub const GRND_RANDOM: ::c_int = 0x0002;
+pub const GRND_NONBLOCK: ::c_uint = 0x0001;
+pub const GRND_RANDOM: ::c_uint = 0x0002;
pub const O_RDONLY: ::c_int = 0;
pub const O_WRONLY: ::c_int = 1;
diff --git a/vendor/libc/src/wasi.rs b/vendor/libc/src/wasi.rs
index abfebd643..1a855e0e0 100644
--- a/vendor/libc/src/wasi.rs
+++ b/vendor/libc/src/wasi.rs
@@ -246,12 +246,15 @@ pub const S_IFREG: mode_t = 32768;
pub const S_IFLNK: mode_t = 40960;
pub const S_IFSOCK: mode_t = 49152;
pub const S_IFMT: mode_t = 57344;
+pub const S_IRWXO: mode_t = 0x7;
pub const S_IXOTH: mode_t = 0x1;
pub const S_IWOTH: mode_t = 0x2;
pub const S_IROTH: mode_t = 0x4;
+pub const S_IRWXG: mode_t = 0x38;
pub const S_IXGRP: mode_t = 0x8;
pub const S_IWGRP: mode_t = 0x10;
pub const S_IRGRP: mode_t = 0x20;
+pub const S_IRWXU: mode_t = 0x1c0;
pub const S_IXUSR: mode_t = 0x40;
pub const S_IWUSR: mode_t = 0x80;
pub const S_IRUSR: mode_t = 0x100;
@@ -822,4 +825,6 @@ extern "C" {
pub fn arc4random() -> u32;
pub fn arc4random_buf(a: *mut c_void, b: size_t);
pub fn arc4random_uniform(a: u32) -> u32;
+
+ pub fn __errno_location() -> *mut ::c_int;
}
diff --git a/vendor/libc/src/xous.rs b/vendor/libc/src/xous.rs
new file mode 100644
index 000000000..e6c0c2573
--- /dev/null
+++ b/vendor/libc/src/xous.rs
@@ -0,0 +1,49 @@
+//! Xous C type definitions
+
+pub type c_schar = i8;
+pub type c_uchar = u8;
+pub type c_short = i16;
+pub type c_ushort = u16;
+pub type c_int = i32;
+pub type c_uint = u32;
+pub type c_float = f32;
+pub type c_double = f64;
+pub type c_longlong = i64;
+pub type c_ulonglong = u64;
+pub type intmax_t = i64;
+pub type uintmax_t = u64;
+
+pub type size_t = usize;
+pub type ptrdiff_t = isize;
+pub type intptr_t = isize;
+pub type uintptr_t = usize;
+pub type ssize_t = isize;
+
+pub type off_t = i64;
+pub type c_char = u8;
+pub type c_long = i64;
+pub type c_ulong = u64;
+pub type wchar_t = u32;
+
+pub const INT_MIN: c_int = -2147483648;
+pub const INT_MAX: c_int = 2147483647;
+
+cfg_if! {
+ if #[cfg(libc_core_cvoid)] {
+ pub use ::ffi::c_void;
+ } else {
+ // Use repr(u8) as LLVM expects `void*` to be the same as `i8*` to help
+ // enable more optimization opportunities around it recognizing things
+ // like malloc/free.
+ #[repr(u8)]
+ #[allow(missing_copy_implementations)]
+ #[allow(missing_debug_implementations)]
+ pub enum c_void {
+ // Two dummy variants so the #[repr] attribute can be used.
+ #[doc(hidden)]
+ __variant1,
+ #[doc(hidden)]
+ __variant2,
+ }
+ }
+}