aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux/socket.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/linux/socket.h')
-rw-r--r--include/linux/socket.h23
1 files changed, 15 insertions, 8 deletions
diff --git a/include/linux/socket.h b/include/linux/socket.h
index 7b3aae2052a6..edbb1d07ddf4 100644
--- a/include/linux/socket.h
+++ b/include/linux/socket.h
@@ -24,15 +24,16 @@ struct __kernel_sockaddr_storage {
24#include <linux/types.h> /* pid_t */ 24#include <linux/types.h> /* pid_t */
25#include <linux/compiler.h> /* __user */ 25#include <linux/compiler.h> /* __user */
26 26
27struct pid;
28struct cred;
29
27#define __sockaddr_check_size(size) \ 30#define __sockaddr_check_size(size) \
28 BUILD_BUG_ON(((size) > sizeof(struct __kernel_sockaddr_storage))) 31 BUILD_BUG_ON(((size) > sizeof(struct __kernel_sockaddr_storage)))
29 32
30#ifdef __KERNEL__ 33#ifdef CONFIG_PROC_FS
31# ifdef CONFIG_PROC_FS
32struct seq_file; 34struct seq_file;
33extern void socket_seq_show(struct seq_file *seq); 35extern void socket_seq_show(struct seq_file *seq);
34# endif 36#endif
35#endif /* __KERNEL__ */
36 37
37typedef unsigned short sa_family_t; 38typedef unsigned short sa_family_t;
38 39
@@ -189,7 +190,9 @@ struct ucred {
189#define AF_ISDN 34 /* mISDN sockets */ 190#define AF_ISDN 34 /* mISDN sockets */
190#define AF_PHONET 35 /* Phonet sockets */ 191#define AF_PHONET 35 /* Phonet sockets */
191#define AF_IEEE802154 36 /* IEEE802154 sockets */ 192#define AF_IEEE802154 36 /* IEEE802154 sockets */
192#define AF_MAX 37 /* For now.. */ 193#define AF_CAIF 37 /* CAIF sockets */
194#define AF_ALG 38 /* Algorithm sockets */
195#define AF_MAX 39 /* For now.. */
193 196
194/* Protocol families, same as address families. */ 197/* Protocol families, same as address families. */
195#define PF_UNSPEC AF_UNSPEC 198#define PF_UNSPEC AF_UNSPEC
@@ -229,6 +232,8 @@ struct ucred {
229#define PF_ISDN AF_ISDN 232#define PF_ISDN AF_ISDN
230#define PF_PHONET AF_PHONET 233#define PF_PHONET AF_PHONET
231#define PF_IEEE802154 AF_IEEE802154 234#define PF_IEEE802154 AF_IEEE802154
235#define PF_CAIF AF_CAIF
236#define PF_ALG AF_ALG
232#define PF_MAX AF_MAX 237#define PF_MAX AF_MAX
233 238
234/* Maximum queue length specifiable by listen. */ 239/* Maximum queue length specifiable by listen. */
@@ -255,6 +260,7 @@ struct ucred {
255#define MSG_ERRQUEUE 0x2000 /* Fetch message from error queue */ 260#define MSG_ERRQUEUE 0x2000 /* Fetch message from error queue */
256#define MSG_NOSIGNAL 0x4000 /* Do not generate SIGPIPE */ 261#define MSG_NOSIGNAL 0x4000 /* Do not generate SIGPIPE */
257#define MSG_MORE 0x8000 /* Sender will send more */ 262#define MSG_MORE 0x8000 /* Sender will send more */
263#define MSG_WAITFORONE 0x10000 /* recvmmsg(): block until 1+ packets avail */
258 264
259#define MSG_EOF MSG_FIN 265#define MSG_EOF MSG_FIN
260 266
@@ -300,11 +306,14 @@ struct ucred {
300#define SOL_PNPIPE 275 306#define SOL_PNPIPE 275
301#define SOL_RDS 276 307#define SOL_RDS 276
302#define SOL_IUCV 277 308#define SOL_IUCV 277
309#define SOL_CAIF 278
310#define SOL_ALG 279
303 311
304/* IPX options */ 312/* IPX options */
305#define IPX_TYPE 1 313#define IPX_TYPE 1
306 314
307#ifdef __KERNEL__ 315extern void cred_to_ucred(struct pid *pid, const struct cred *cred, struct ucred *ucred);
316
308extern int memcpy_fromiovec(unsigned char *kdata, struct iovec *iov, int len); 317extern int memcpy_fromiovec(unsigned char *kdata, struct iovec *iov, int len);
309extern int memcpy_fromiovecend(unsigned char *kdata, const struct iovec *iov, 318extern int memcpy_fromiovecend(unsigned char *kdata, const struct iovec *iov,
310 int offset, int len); 319 int offset, int len);
@@ -317,7 +326,6 @@ extern int verify_iovec(struct msghdr *m, struct iovec *iov, struct sockaddr *ad
317extern int memcpy_toiovec(struct iovec *v, unsigned char *kdata, int len); 326extern int memcpy_toiovec(struct iovec *v, unsigned char *kdata, int len);
318extern int memcpy_toiovecend(const struct iovec *v, unsigned char *kdata, 327extern int memcpy_toiovecend(const struct iovec *v, unsigned char *kdata,
319 int offset, int len); 328 int offset, int len);
320extern int move_addr_to_user(struct sockaddr *kaddr, int klen, void __user *uaddr, int __user *ulen);
321extern int move_addr_to_kernel(void __user *uaddr, int ulen, struct sockaddr *kaddr); 329extern int move_addr_to_kernel(void __user *uaddr, int ulen, struct sockaddr *kaddr);
322extern int put_cmsg(struct msghdr*, int level, int type, int len, void *data); 330extern int put_cmsg(struct msghdr*, int level, int type, int len, void *data);
323 331
@@ -325,6 +333,5 @@ struct timespec;
325 333
326extern int __sys_recvmmsg(int fd, struct mmsghdr __user *mmsg, unsigned int vlen, 334extern int __sys_recvmmsg(int fd, struct mmsghdr __user *mmsg, unsigned int vlen,
327 unsigned int flags, struct timespec *timeout); 335 unsigned int flags, struct timespec *timeout);
328#endif
329#endif /* not kernel and not glibc */ 336#endif /* not kernel and not glibc */
330#endif /* _LINUX_SOCKET_H */ 337#endif /* _LINUX_SOCKET_H */