public inbox for libc-alpha@sourceware.org
 help / color / mirror / Atom feed
From: Zack Weinberg <zackw@panix.com>
To: libc-alpha@sourceware.org
Cc: joseph@codesourcery.com
Subject: [PATCH 11/13] Installed-header hygiene (BZ#20366): struct osockaddr.
Date: Tue, 30 Aug 2016 01:36:00 -0000	[thread overview]
Message-ID: <20160830011645.25769-12-zackw@panix.com> (raw)
In-Reply-To: <20160830011645.25769-11-zackw@panix.com>

sys/socket.h defines struct osockaddr only under __USE_MISC, whereas
protocols/talkd.h requires it unconditionally.  This is another place
where the bits/types/foo.h approach comes in handy.

I would also be amenable to removing struct osockaddr from sys/socket.h,
defining it only in protocols/talkd.h, on the theory that nothing else
should be using it anymore.  (Frankly, I doubt anyone would miss
protocols/talkd.h at this point, but we _have_ historically preferred
not to delete anything.)

	* socket/bits/types/struct_osockaddr.h: New header.
	* include/bits/types/struct_osockaddr.h: New wrapper.
	* socket/Makefile: Install the new header.
	* socket/sys/socket.h
	* inet/protocols/talkd.h: Refer to bits/types/struct_osockaddr.h
	for the definition of struct osockaddr.
---
 include/bits/types/struct_osockaddr.h |  1 +
 inet/protocols/talkd.h                |  1 +
 socket/Makefile                       |  3 ++-
 socket/bits/types/struct_osockaddr.h  | 12 ++++++++++++
 socket/sys/socket.h                   |  8 +-------
 5 files changed, 17 insertions(+), 8 deletions(-)
 create mode 100644 include/bits/types/struct_osockaddr.h
 create mode 100644 socket/bits/types/struct_osockaddr.h

diff --git a/include/bits/types/struct_osockaddr.h b/include/bits/types/struct_osockaddr.h
new file mode 100644
index 0000000..78f3188
--- /dev/null
+++ b/include/bits/types/struct_osockaddr.h
@@ -0,0 +1 @@
+#include "../../socket/bits/types/struct_osockaddr.h"
diff --git a/inet/protocols/talkd.h b/inet/protocols/talkd.h
index 34e2654..09bd8a9 100644
--- a/inet/protocols/talkd.h
+++ b/inet/protocols/talkd.h
@@ -53,6 +53,7 @@
 #include <sys/types.h>
 #include <sys/socket.h>
 #include <stdint.h>
+#include <bits/types/struct_osockaddr.h>
 
 /*
  * Client->server request message format.
diff --git a/socket/Makefile b/socket/Makefile
index 92450e8..6be5ec7 100644
--- a/socket/Makefile
+++ b/socket/Makefile
@@ -23,7 +23,8 @@ subdir	:= socket
 include ../Makeconfig
 
 headers	:= sys/socket.h sys/un.h bits/sockaddr.h bits/socket.h \
-	   bits/socket2.h sys/socketvar.h net/if.h
+	   bits/socket2.h bits/types/struct_osockaddr.h \
+	   sys/socketvar.h net/if.h
 
 routines := accept bind connect getpeername getsockname getsockopt	\
 	    listen recv recvfrom recvmsg send sendmsg sendto		\
diff --git a/socket/bits/types/struct_osockaddr.h b/socket/bits/types/struct_osockaddr.h
new file mode 100644
index 0000000..b3cec56
--- /dev/null
+++ b/socket/bits/types/struct_osockaddr.h
@@ -0,0 +1,12 @@
+#ifndef _BITS_TYPES_STRUCT_OSOCKADDR_H
+#define _BITS_TYPES_STRUCT_OSOCKADDR_H
+
+/* This is the 4.3 BSD `struct sockaddr' format, which is used as wire
+   format in the grotty old 4.3 `talk' protocol.  */
+struct osockaddr
+{
+  unsigned short int sa_family;
+  unsigned char sa_data[14];
+};
+
+#endif
diff --git a/socket/sys/socket.h b/socket/sys/socket.h
index c9f0f50..5be1b91 100644
--- a/socket/sys/socket.h
+++ b/socket/sys/socket.h
@@ -38,13 +38,7 @@ __BEGIN_DECLS
 #include <bits/socket.h>
 
 #ifdef __USE_MISC
-/* This is the 4.3 BSD `struct sockaddr' format, which is used as wire
-   format in the grotty old 4.3 `talk' protocol.  */
-struct osockaddr
-  {
-    unsigned short int sa_family;
-    unsigned char sa_data[14];
-  };
+# include <bits/types/struct_osockaddr.h>
 #endif
 
 /* The following constants should be used for the second parameter of
-- 
2.9.3

  reply	other threads:[~2016-08-30  1:36 UTC|newest]

Thread overview: 62+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-08-30  1:17 [PATCH 00/13] Installed-header hygiene (BZ#20366) Zack Weinberg
2016-08-30  1:17 ` [PATCH 01/13] Installed-header hygiene (BZ#20366): obsolete BSD u_* types Zack Weinberg
2016-08-30  1:17   ` [PATCH 02/13] Installed-header hygiene (BZ#20366): manual fixups after mechanical change Zack Weinberg
2016-08-30  1:17     ` [PATCH 03/13] Installed-header hygiene (BZ#20366): missing inclusions A Zack Weinberg
2016-08-30  1:16       ` [PATCH 04/13] Installed-header hygiene (BZ#20366): missing inclusions B Zack Weinberg
2016-08-30  1:16         ` [PATCH 05/13] Installed header hygiene (BZ#20366): BYTE_ORDER macros Zack Weinberg
2016-08-30  1:17           ` [PATCH 06/13] Installed header hygiene (BZ#20366): Macros used in #if without checking whether they are defined Zack Weinberg
2016-08-30  1:17             ` [PATCH 07/13] Installed-header hygiene (BZ#20366): stack_t Zack Weinberg
2016-08-30  1:36               ` [PATCH 08/13] Installed-header hygiene (BZ#20366): time.h types Zack Weinberg
2016-08-30  1:17                 ` [PATCH 09/13] Installed-header hygiene (BZ#20366): struct ifreq Zack Weinberg
2016-08-30  1:17                   ` [PATCH 10/13] Installed-header hygiene (BZ#20366): struct ether_addr Zack Weinberg
2016-08-30  1:36                     ` Zack Weinberg [this message]
2016-08-30  1:17                       ` [PATCH 12/13] Installed-header hygiene (BZ#20366): Miscellaneous Zack Weinberg
2016-08-30  1:17                         ` [PATCH 13/13] Installed header hygiene (BZ#20366): Test of installed headers Zack Weinberg
2016-08-30  1:28                           ` Joseph Myers
2016-08-30  3:12                             ` Zack Weinberg
2016-09-22 12:20                               ` Zack Weinberg
2016-09-21 20:12                           ` Carlos O'Donell
2016-09-21 19:53                         ` [PATCH 12/13] Installed-header hygiene (BZ#20366): Miscellaneous Carlos O'Donell
2016-09-21 19:27                       ` [PATCH 11/13] Installed-header hygiene (BZ#20366): struct osockaddr Carlos O'Donell
2016-09-21 19:26                     ` [PATCH 10/13] Installed-header hygiene (BZ#20366): struct ether_addr Carlos O'Donell
2016-09-21 19:51                     ` Carlos O'Donell
2016-09-21 20:33                       ` Zack Weinberg
2016-09-21 19:15                   ` [PATCH 09/13] Installed-header hygiene (BZ#20366): struct ifreq Carlos O'Donell
2016-08-30 17:10                 ` [PATCH 08/13] Installed-header hygiene (BZ#20366): time.h types Joseph Myers
2016-09-21 19:04                 ` Carlos O'Donell
2016-09-21 19:12                   ` Zack Weinberg
2016-09-21 19:50                     ` Carlos O'Donell
2016-09-21 19:50               ` [PATCH 07/13] Installed-header hygiene (BZ#20366): stack_t Carlos O'Donell
2016-09-21 18:02             ` [PATCH 06/13] Installed header hygiene (BZ#20366): Macros used in #if without checking whether they are defined Carlos O'Donell
2016-09-21 18:05               ` Joseph Myers
2016-09-21 18:41                 ` Carlos O'Donell
2016-09-21 18:47                   ` Paul Eggert
2016-09-21 19:09                     ` Carlos O'Donell
2016-09-21 19:59                   ` Joseph Myers
2016-09-21 20:24                     ` Carlos O'Donell
2016-09-21 18:09               ` Zack Weinberg
2016-09-21 17:56           ` [PATCH 05/13] Installed header hygiene (BZ#20366): BYTE_ORDER macros Carlos O'Donell
2016-09-21 17:52         ` [PATCH 04/13] Installed-header hygiene (BZ#20366): missing inclusions B Carlos O'Donell
2016-08-30  1:23       ` [PATCH 03/13] Installed-header hygiene (BZ#20366): missing inclusions A Joseph Myers
2016-08-30  3:12         ` Zack Weinberg
2016-09-21 17:54           ` Carlos O'Donell
2016-09-21 17:52       ` Carlos O'Donell
2016-09-21 17:58         ` Joseph Myers
2016-09-21 18:22         ` Zack Weinberg
2016-09-21 18:43           ` Carlos O'Donell
2016-09-21 17:43     ` [PATCH 02/13] Installed-header hygiene (BZ#20366): manual fixups after mechanical change Carlos O'Donell
2016-08-30  1:22   ` [PATCH 01/13] Installed-header hygiene (BZ#20366): obsolete BSD u_* types Joseph Myers
2016-08-30  3:12     ` Zack Weinberg
2016-08-30 17:10       ` Joseph Myers
2016-09-21 17:41   ` Carlos O'Donell
2016-08-30  1:26 ` [PATCH 00/13] Installed-header hygiene (BZ#20366) Joseph Myers
2016-08-30  3:12   ` Zack Weinberg
2016-08-30  7:51     ` Andreas Schwab
2016-09-06 17:10 ` Zack Weinberg
2016-09-21 14:22   ` Zack Weinberg
2016-09-21 17:34 ` Carlos O'Donell
2016-09-21 17:52 ` Carlos O'Donell
2016-09-21 18:05   ` Zack Weinberg
2016-09-21 18:08     ` Joseph Myers
2016-09-21 18:10       ` Zack Weinberg
2016-09-21 18:46         ` Carlos O'Donell

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20160830011645.25769-12-zackw@panix.com \
    --to=zackw@panix.com \
    --cc=joseph@codesourcery.com \
    --cc=libc-alpha@sourceware.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).