History log of /bionic/tools/versioner/current/sys/socket.h
Revision Date Author Comments
90242350053e6fd2c03640d3f9b37864d18c414d 06-Feb-2018 George Burgess IV <gbiv@google.com> Remove __overloadable/__RENAME_CLANG

Now that we have a clang that supports transparent overloads, we can
kill all of this cruft, and restore our upstream sources to their
untouched glory. Woohoo!

Bug: 12231437
Test: Built aosp_marlin; no obvious patch-related aosp_mips issues.
Change-Id: I520a19d014f12137f80e43f973dccd6711c571cd
64f355ffbd715a3c8b467c3b37701ad404b566b4 31-Aug-2017 Elliott Hughes <enh@google.com> Use in_addr in ip_mreq_source and ip_msfilter.

This adds a new mechanism to say "replace struct S with #include <bits/S.h>".

Also switch epoll_event over to the new mechanism.

Also use the kernel's struct sockaddr_storage directly rather than behind
an unnecessary #define.

This patch also removes some dead code in the header scrubber. This code
still needs rewriting completely. I learned that a "block" isn't necessarily
a single struct definition, say; it might be a run of them. It seems like
a block is a run of preprocessor directives or a run of regular code.

Bug: https://issuetracker.google.com/36987220
Test: new test
Change-Id: Ic6a5c09559766a4babe3cd4c3ea538b885e07308
ff26a16c1de7be696719e9001f0707b7c55b52cf 18-Aug-2017 Elliott Hughes <enh@google.com> Re-submit "Name function arguments in libc headers for Studio."

This reverts commit 9af9120091ceb96641d7c6c645fabad96db4bc0d (a revert
of 079bff4fa52b0c3c76057451cc9cdecf1827fce0), now the versioner bug is
fixed.

Bug: http://b/64613623 # header bug
Bug: http://b/64802958 # versioner bug
Change-Id: I1cb9d7832d4b3aecdc57a9285e2291443e59d02d
9af9120091ceb96641d7c6c645fabad96db4bc0d 17-Aug-2017 Colin Cross <ccross@android.com> Revert "Name function arguments in libc headers for Studio."

This reverts commit 079bff4fa52b0c3c76057451cc9cdecf1827fce0.

Broke builds with SANITIZE_HOST=address with an asan failure in versioner.

Change-Id: I22b113fd5405589d1a25e5e137c450aaba1ade5f
079bff4fa52b0c3c76057451cc9cdecf1827fce0 17-Aug-2017 Elliott Hughes <enh@google.com> Name function arguments in libc headers for Studio.

Second batch of headers...

Bug: http://b/64613623
Test: builds
Change-Id: I8eef043dbf32afee8ff814e9d005f46aee8fa21f
b97049c0390cb1a11b9cb0b14391972e69398ce5 25-Jul-2017 George Burgess IV <gbiv@google.com> libc: Split FORTIFY into its own headers

This patch cleans up our standard headers by moving most of the FORTIFY
cruft out in to its own sandbox. In order to include the *_chk and
*_real declarations, you can either enable FORTIFY, or `#define
__BIONIC_DECLARE_FORTIFY_HELPERS`.

Both sys/select.h and strings.h are explicitly ignored by this patch.
Both of these files have very small __BIONIC_FORTIFY blocks, and don't
define any actual FORTIFY'ed functions (just macros, and 3 *_chk
functions).

This patch also makes the versioner ignore the FORTIFY implementation
headers, since we're guaranteed to pick the FORTIFY'ed headers up when
looking at the regular headers. (...Not to mention that making the
FORTIFY'ed headers freestanding would be annoying to do and maintain for
~no benefit).

We bake the knowledge of where FORTIFY headers live directly into the
versioner. We could go with a more general approach (e.g. adding an -X
IGNORED_FILE flag that tells the versioner to ignore
$HEADER_PATH/$IGNORED_FILE), but we'd then have to repeat that for every
test, every manual invocation of the versioner, etc. for no benefit
that's obvious to me.

Bug: 12231437
Test: m checkbuild on bullhead internal master + CtsBionicTestCases. no
new errors.

Change-Id: Iffc0cc609009b33d989cdaddde0a809282131a5b
cfb61712c4367c2943f1b4fb7838d5e125020bef 20-Apr-2017 Josh Gao <jmgao@google.com> The future is now.

__INTRODUCED_IN_FUTURE -> __INTRODUCED_IN(26)

Bug: http://b/37437368
Test: treehugger
Change-Id: I601a23da83b65a0cd582cc840ed3856a9031b673
(cherry picked from commit cb302f932a3532f1484e1e70894e9b1199384283)

(Cherry picked a DO N*T MERGE commit that should have been merged)
(cherry picked from commit 2e8e5e60b6ecbcfe2110242e41b9ec5340b11cf5)
2e8e5e60b6ecbcfe2110242e41b9ec5340b11cf5 20-Apr-2017 Josh Gao <jmgao@google.com> DO NOT MERGE: The future is now.

__INTRODUCED_IN_FUTURE -> __INTRODUCED_IN(26)

Bug: http://b/37437368
Test: treehugger
Change-Id: I601a23da83b65a0cd582cc840ed3856a9031b673
(cherry picked from commit cb302f932a3532f1484e1e70894e9b1199384283)
cb302f932a3532f1484e1e70894e9b1199384283 20-Apr-2017 Josh Gao <jmgao@google.com> The future is now.

__INTRODUCED_IN_FUTURE -> __INTRODUCED_IN(26)

Bug: http://b/37437368
Test: treehugger
Change-Id: I601a23da83b65a0cd582cc840ed3856a9031b673
95b59c520b24aabcdc63b93a3f1eaf73e57a3afe 14-Feb-2017 Daniel Micay <danielmicay@gmail.com> add fortified implementations of send/sendto

Bug: None
Test: Bullhead builds+boots; CtsBionicTestCases passes.
Change-Id: I2f137a100f679f7f2145d84b2f29ddd3e96a36ae
156d5a8ae93c6515919dd6706481991c7c0dc600 10-Feb-2017 George Burgess IV <gbiv@google.com> Match __bos0 to __pass_object_size0 in FORTIFY

pass_object_size(N) forwards the result of __builtin_object_size(param,
N) to a function. So, a function that looks like:

size_t foo(void *const p __pass_object_size) { return __bos0(p); }
int bar = foo(baz);

would effectively be turned into

size_t foo(void *const p, size_t sz) { return sz; }
int bar = foo(baz, __bos(baz)); // note that this is not __bos0

This is bad, since if we're using __bos0, we want more relaxed
objectsize checks.

__bos0 should be more permissive than __bos in all cases, so this
change Should Be Fineā„¢.

This change also makes GCC and clang share another function's
implementation (recv). I just realized we need to add special
diagnostic-related overloads bits for clang to it, but I can do that in
another patch.

Bug: None
Test: Bullhead builds and boots; CtsBionicTestCases passes.
Change-Id: I6818d0041328ab5fd0946a1e57321a977c1e1250
7cc779f15c524e1622f7d5b1c7e82e6ffc6677fd 09-Feb-2017 George Burgess IV <gbiv@google.com> libc: add clang FORTIFY support

This patch adds clang-style FORTIFY to Bionic. For more information on
FORTIFY, please see https://goo.gl/8HS2dW . This implementation works
for versions of clang that don't support diagnose_if, so please see the
"without diagnose_if" sections. We plan to swap to a diagnose_if-based
FORTIFY later this year (since it doesn't really add any features; it
just simplifies the implementation a lot, and it gives us much prettier
diagnostics)

Bug: 32073964
Test: Builds on angler, bullhead, marlin, sailfish. Bionic CTS tests
pass on Angler and Bullhead.

Change-Id: I607aecbeee81529709b1eee7bef5b0836151eb2b
8d7687143843c4fe8c8e79ea8abbc2d6b9c889f2 14-Dec-2016 Elliott Hughes <enh@google.com> Update socket constants.

This corresponds to Linux 4.10.

Bug: N/A
Test: builds
Change-Id: Ia7135c9fec181613b79726d1b16867133cdefd04
5bc78c8bcd0c1e634c04029309ede3ec05f2d424 16-Nov-2016 Elliott Hughes <enh@google.com> Add and use constants for the Android API levels.

Test: bionic tests still pass
Change-Id: If1b619cfc9db1d3f5d91f14f2ace71058dca0c4a
11f0e10c4911e39733145194ee78bb65d684fff4 09-Sep-2016 Dan Albert <danalbert@google.com> Provide an inline __cmsg_nxthdr.

This was defined as an inline in the legacy NDK headers. Keep that
here until we can get it into libandroid_support.

Test: make checkbuild
Bug: http://b/30465923
Change-Id: I62393b58e4fba3bc7337cc5ecf4ae1590b0e9917
2b9605fec499b24bcbe9ff408b934455b4d85e57 16-Aug-2016 Elliott Hughes <enh@google.com> Fix various <sys/socket.h> prototypes.

http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/sys_socket.h.html

Interestingly, recvmmsg/sendmmsg do actually return int, unlike their
recv/recvmsg/sendv/sendvmsg siblings.

The generated assembler stubs don't actually change.

Change-Id: If71cd02431903774de9bbce77fbedf6b03f90c0f
8197aca7f2110fa764c1aecd005d878d8ddd3a3c 12-Aug-2016 Elliott Hughes <enh@google.com> Fix recvfrom prototype.

http://pubs.opengroup.org/onlinepubs/9699919799/functions/recvfrom.html

Change-Id: Iba203c74045c88e53e28c2e0c8bc1f9ac63ce23e
dfa6bbb54bd9ab2a71df4c066427ea804608e20b 03-Aug-2016 Dan Albert <danalbert@google.com> Guard fortify inlines with __ANDROID_API__.

Test: make checkbuild with libc ndk_library patches applied
Change-Id: Ic5e248994c4f2702b0f4d6dfeda787187ea86017
3b2096a9d6edd74622b94cacc76b77100f919b84 23-Jul-2016 Elliott Hughes <enh@google.com> Remove unnecessary 'extern's.

Change-Id: Iba2b3fb6ff88e504f1657b915120ae43d58a1e03
508d292f8deb2933914b0ceef56908cdd4ee589f 22-Jul-2016 Elliott Hughes <enh@google.com> Only define sa_family_t once.

Change-Id: Icf700910c836d22c8a27ad026ec8af11697edd5a
14adff1cfa06a3d4d3281a9bf7848b556d84c20d 29-Apr-2016 Josh Gao <jmgao@google.com> Add versioning information to symbols.

Bug: http://b/28178111
Change-Id: I46bf95accd819f4521afb1173d8badcc5e9df31c
c7ca8f3a6332638021b9ae99e1ce15739350ee98 28-Jan-2016 Greg Hackmann <ghackmann@google.com> socket.h: update AF_* constants

Change-Id: I8ca219fa429ca8d8f872ed1db98275cd1a06f00b
Signed-off-by: Greg Hackmann <ghackmann@google.com>
d75abb9614b04c3da3104099752726f9d1c6d8c7 26-Aug-2015 Greg Hackmann <ghackmann@google.com> Fix SOCK_* flag definitions

MIPS and the rest of the world only disagree on the first two SOCK_*
constants, so restructure the #ifdef accordingly.

As a deliberate side effect, this fixes SOCK_DCCP being missing on
non-MIPS platforms.

Change-Id: I2267008f1121a7eebe1ed9097afab6e612bce7f0
Signed-off-by: Greg Hackmann <ghackmann@google.com>
268af26359c8f1c87585e26d2763e3a3a63f8714 11-Sep-2015 Dan Albert <danalbert@google.com> CMSG_DATA should return an unsigned char*.

http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/sys_socket.h.html
> CMSG_DATA(cmsg)
> If the argument is a pointer to a cmsghdr structure, this macro
> shall return an unsigned character pointer to the data array
> associated with the cmsghdr structure.

Change-Id: I3f89ba19cbca4e6727abc65a2bbcd59267892ba8
55ee845b8ec0861d09197b32fbb5f2d34320155d 07-Oct-2014 Dan Albert <danalbert@google.com> Inline helpers need to be exported unmangled.

__open_2() is used by the fortify implementation of open(2) in
fcntl.h, and as such needs an unmangled C name. For some reason
(inlining?), this doesn't cause problems at the default optimization
level, but does for -O0.

The rest of these didn't cause build failures, but they look suspect
and probably will, we just haven't caught them yet.

(cherry-pick of 658727e111ed6dee7be5239494f0764f7b1b02f8 with conflicts
in stdio.h and string.h.)

Bug: 17784968
Change-Id: I7391a7a8999ee204eaf6abd14a3d5373ea419d5b
658727e111ed6dee7be5239494f0764f7b1b02f8 07-Oct-2014 Dan Albert <danalbert@google.com> Inline helpers need to be exported unmangled.

__open_2() is used by the fortify implementation of open(2) in
fcntl.h, and as such needs an unmangled C name. For some reason
(inlining?), this doesn't cause problems at the default optimization
level, but does for -O0.

The rest of these didn't cause build failures, but they look suspect
and probably will, we just haven't caught them yet.

Bug: 17784968
Change-Id: I7391a7a8999ee204eaf6abd14a3d5373ea419d5b
d87d401ab134996d1f25f5b63cefb48b5b5877c8 18-Aug-2014 Elliott Hughes <enh@google.com> Improve <sys/cdefs.h>.

Fix and use __RENAME (and lose ___RENAME --- two underscores should be
enough for anybody). This was the point of this change, because I want
to use __RENAME to support the two basename variants and the two
strerror_r variants.

Lose a bunch of macros that weren't being used.

Lose three dead files from the DNS code.

Bug: 17784968

(cherry picked from commit 2cfb4e8e2e217ef0e4140dcbf9b3da809781158c)

Change-Id: I5e96146f92c0521248c78c0933bec5e9a9818222
2cfb4e8e2e217ef0e4140dcbf9b3da809781158c 18-Aug-2014 Elliott Hughes <enh@google.com> Improve <sys/cdefs.h>.

Fix and use __RENAME (and lose ___RENAME --- two underscores should be
enough for anybody). This was the point of this change, because I want
to use __RENAME to support the two basename variants and the two
strerror_r variants.

Lose a bunch of macros that weren't being used.

Lose three dead files from the DNS code.

Change-Id: I3ef645c566b16a52217bc2e68c7d54b37c7c9522
291da8d3533b3ee47f8d742c72d789d3149d15da 18-Jul-2014 Elliott Hughes <enh@google.com> Remove SIOCKILLADDR from <sys/socket.h>.

(cherry picked from commit 8a3d1ca183e19d849728318fe8b0d36856fa000f)

Change-Id: Idb5cc4cff3ece7fa8740db12a19438d1a1c9a6a8
8a3d1ca183e19d849728318fe8b0d36856fa000f 18-Jul-2014 Elliott Hughes <enh@google.com> Remove SIOCKILLADDR from <sys/socket.h>.

Change-Id: I6b64a9abe01c786a9ec26aee1517cb981a4860fb
f6968e3c0822b27e9aa584c3490573f34b1725c1 12-Jul-2014 Elliott Hughes <enh@google.com> Define SIOCKILLADDR which isn't in the common kernel uapi headers.

(cherry picked from commit 2ba2888cac2f04daff7bbaf032d0df7a095b00c3)

Change-Id: I3845871bb44dae94d9a0428af0f562ddfb8bd660
2ba2888cac2f04daff7bbaf032d0df7a095b00c3 12-Jul-2014 Elliott Hughes <enh@google.com> Define SIOCKILLADDR which isn't in the common kernel uapi headers.

Change-Id: I8760950d13a9625aa543e76bc9d6cd86ac782c2e
096b4eb752aa7a5392875cb2f2faf0d67c676ac1 19-Jun-2014 Calin Juravle <calin@google.com> Prefix cmsg_nxthdr with "__".

This brings us on par with glibc.

To avoid breaking clients, temporary keep cmsg_nxthdr until the next NDK
refresh.

Bug: 15822452
Change-Id: I24c24e68c31f4f2b8f3d2df7acd575cb75174173
ff64831b0965c16c95c9f81a148f30a6ef3a6c64 07-Apr-2014 Calin Juravle <calin@google.com> Use glibc structure for __cmsg_nxthdr.

Bug: 13418328
Change-Id: I7e656b373e53e80d708325321e48dcedacf5086d
9cea3775056d0a8d04d49c3983440b89d82a462b 31-Mar-2014 Christopher Ferris <cferris@google.com> Small accept4 fixes.

Put the accept4 test in the sorted order, and put the accept4 define in
sorted order.

Also add the missing SYS_RECVMMSG and SYS_SENDMMSG defines.

Change-Id: Iba55354975e0d5027dbee53f6de752c2df719493
8f2a30a92ab6981cccbc1a9e17b738f7542ae33f 26-Mar-2014 Andrei Emeltchenko <andrei.emeltchenko@intel.com> Add accept4() syscall

Add accept4() using SYSCALLS.TXT and gensyscall

Change-Id: I6f19f29144186d15d46423e10f2cc4b4223719c6
f1de90b3a26d6ec46c0f1c741ef93509fe69f942 19-Mar-2014 Calin Juravle <calin@google.com> Clean up CMSG_*HDR in <sys/socket.h>

Removed __CMSG_NXTHDR, __CMSG_FIRSTHDR and cmsg_nxthdr.

Bug: 13418328
Change-Id: I6b1ed58b41b3f37d41e070c4f222b5bfa512bc48
247dc91889ffc8b71fc3371edba9d834afab96ab 11-Mar-2014 Elliott Hughes <enh@google.com> Take ownership of various simple syscall wrappers.

None of these trivial functions is something we're going to get from BSD.

Change-Id: Iee1d1281b73db67da5ec303da7a49748121464bf
a8b1eb3fcf13fab029a16fa3b6636218a64c4583 01-Mar-2014 Elliott Hughes <enh@google.com> Fix build.

Change-Id: I71cde79263d5f5a8382865b8151f65c5c05ea17b
6ff0c75c838e73d2aeccc0102ab58a7b865172ca 10-Feb-2014 Guillaume Ranquet <guillaumex.ranquet@intel.com> Add recvmmsg and sendmmsg syscalls.

Also add the corresponding constant, struct, and function declarations
to <sys/socket.h>, and perfunctory tests so we know that the symbols
actually exist.

Signed-off-by: Guillaume Ranquet <guillaumex.ranquet@intel.com>
Change-Id: Ib0d854239d3716be90ad70973c579aff4895a4f7
9f87a0b285128542a221f2b69d3b959a4e33c054 07-Feb-2014 Elliott Hughes <enh@google.com> Remove <sys/_types.h>.

Bug: 12213562
Change-Id: I0d10664f9da60739bdbad0408be0dd61eea3c1fe
43d2137af0e2f65b7febf4414e10b979aa0007bf 14-Oct-2013 Andrei Emeltchenko <andrei.emeltchenko@intel.com> Add SOCK_CLOEXEC and SOCK_NONBLOCK socket flags.

SOCK_CLOEXEC is used to atomically set close-on-exec flag for the new
descriptor(s), and SOCK_NONBLOCK is used to mark descriptor(s) as
non-blocking.

Change-Id: I8ba6a70543d23759e3ddcc7ff9c21b567184d681
60f4f9a5b99a0a66817f50edfc2194a49f8b5146 25-Sep-2013 Nick Kralevich <nnk@google.com> libc: fortify recvfrom()

Fortify calls to recv() and recvfrom().

We use __bos0 to match glibc's behavior, and because I haven't
tested using __bos.

Change-Id: Iad6ae96551a89af17a9c347b80cdefcf2020c505
d73c0b300e2dbaa4cc59f87fc1435661e5e1c736 04-Jan-2013 Elliott Hughes <enh@google.com> Add AF_CAN and PF_CAN (and other missing families).

Change-Id: I2c183a6f5f7a7e81e87dad85d8c9aff9c43ed33a
86ec05acc9df3098c4e99e5b3ad85dcef66712c7 12-Sep-2012 Elliott Hughes <enh@google.com> Update the kernel headers to match external/kernel-headers.

Note that the Linux kernel handed over responsibility for most of the
socket constants to glibc some time ago. Someone had updated our
external/kernel-headers file but not regenerated the bionic headers,
so this change copies the missing stuff from the old bionic <linux/socket.h>
into <sys/socket.h>. This is what glibc does.

I've hacked a few of the other files to #include <sys/socket.h> for
backward compatibility, but even so this requires numerous other
changes to switch people over from direct inclusion of <linux/...> headers.

Change-Id: I0e4af64e631d3cef911a31d90f2f806e058278a0
6437eac15a5b595ab26ef51834509c44695eb7e4 03-Aug-2012 Raghu Gandham <raghu@mips.com> MIPS support to sys/ headers

Change-Id: I32207a1d918e4842da341f6b242ae39c69a83b03
1dc9e472e19acfe6dc7f41e429236e7eef7ceda1 04-Mar-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //depot/cupcake/@135843
1767f908af327fa388b1c66883760ad851267013 04-Mar-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //depot/cupcake/@135843
4e468ed2eb86a2406e14f1eca82072ee501d05fd 18-Dec-2008 The Android Open Source Project <initial-contribution@android.com> Code drop from //branches/cupcake/...@124589
a27d2baa0c1a2ec70f47ea9199b1dd6762c8a349 21-Oct-2008 The Android Open Source Project <initial-contribution@android.com> Initial Contribution