Update.
[platform/upstream/glibc.git] / sysdeps / unix / sysv / linux / bits / socket.h
index e74b011..c1f752e 100644 (file)
@@ -63,10 +63,10 @@ enum __socket_type
 #define        PF_INET         2       /* IP protocol family.  */
 #define        PF_AX25         3       /* Amateur Radio AX.25.  */
 #define        PF_IPX          4       /* Novell Internet Protocol.  */
-#define        PF_APPLETALK    5       /* Don't use this.  */
+#define        PF_APPLETALK    5       /* Appletalk DDP.  */
 #define        PF_NETROM       6       /* Amateur radio NetROM.  */
 #define        PF_BRIDGE       7       /* Multiprotocol bridge.  */
-#define        PF_AAL5         8       /* Reserved for Werner's ATM.  */
+#define        PF_ATMPVC       8       /* ATM PVCs.  */
 #define        PF_X25          9       /* Reserved for X.25 project.  */
 #define        PF_INET6        10      /* IP version 6.  */
 #define        PF_ROSE         11      /* Amateur Radio X.25 PLP.  */
@@ -78,6 +78,9 @@ enum __socket_type
 #define        PF_ROUTE        PF_NETLINK /* Alias to emulate 4.4BSD.  */
 #define        PF_PACKET       17      /* Packet family.  */
 #define        PF_ASH          18      /* Ash.  */
+#define        PF_ECONET       19      /* Acorn Econet.  */
+#define        PF_ATMSVC       20      /* ATM SVCs.  */
+#define        PF_SNA          22      /* Linux SNA Project */
 #define        PF_MAX          32      /* For now..  */
 
 /* Address families.  */
@@ -91,7 +94,7 @@ enum __socket_type
 #define        AF_APPLETALK    PF_APPLETALK
 #define        AF_NETROM       PF_NETROM
 #define        AF_BRIDGE       PF_BRIDGE
-#define        AF_AAL5         PF_AAL5
+#define        AF_ATMPVC       PF_ATMPVC
 #define        AF_X25          PF_X25
 #define        AF_INET6        PF_INET6
 #define        AF_ROSE         PF_ROSE
@@ -103,6 +106,9 @@ enum __socket_type
 #define        AF_ROUTE        PF_ROUTE
 #define        AF_PACKET       PF_PACKET
 #define        AF_ASH          PF_ASH
+#define        AF_ECONET       PF_ECONET
+#define        AF_ATMSVC       PF_ATMSVC
+#define        AF_SNA          PF_SNA
 #define        AF_MAX          PF_MAX
 
 /* Socket level values.  Others are defined in the appropriate headers.
@@ -216,12 +222,32 @@ __cmsg_nxthdr (struct msghdr *__mhdr, struct cmsghdr *__cmsg)
    <linux/socket.h>.  */
 enum
   {
-    SCM_RIGHTS = 0x01,         /* Data array contains access rights.  */
+    SCM_RIGHTS = 0x01,         /* Transfer file descriptors.  */
 #define SCM_RIGHTS SCM_RIGHTS
-    __SCM_CREDENTIALS = 0x02,  /* Data array is `struct ucred'.  */
-    __SCM_CONNECT = 0x03       /* Data array is `struct scm_connect'.  */
+#ifdef __USE_BSD
+    SCM_CREDS = 0x02,          /* BSD-compatible credentials passing.  */
+# define SCM_CREDS SCM_CREDS
+#endif
+    __SCM_CONNECT = 0x03,      /* Data array is `struct scm_connect'.  */
   };
 
+#ifdef __USE_BSD
+
+/* User visible structure for SCM_CREDS message
+   (chosen for BSD source compatibility) */
+
+# define CMGROUP_MAX 16  /* Linux does not provide this info, so it doesn't
+                           matter... use what bsd does. */
+struct cmsgcred
+{
+  pid_t cmcred_pid;                    /* PID of sending process.  */
+  uid_t cmcred_uid;                    /* Real UID of sending process.  */
+  uid_t cmcred_euid;                   /* Effective UID of sending process. */
+  gid_t cmcred_gid;                    /* Real GID of sending process.  */
+  short int cmcred_ngroups;            /* Number or groups.  */
+  gid_t cmcred_groups[CMGROUP_MAX];    /* Groups.  */
+};
+#endif
 
 /* Get socket manipulation related informations from kernel headers.  */
 #include <asm/socket.h>