]> bbs.cooldavid.org Git - net-next-2.6.git/blobdiff - include/linux/net.h
[NET]: Round out in-kernel sockets API
[net-next-2.6.git] / include / linux / net.h
index 84a490e5f0a1234e68b0f83caf0e01b5f8d8812a..19da2c08d7b6b75a36946ff6a32c867077a961d5 100644 (file)
@@ -18,9 +18,7 @@
 #ifndef _LINUX_NET_H
 #define _LINUX_NET_H
 
-#include <linux/config.h>
 #include <linux/wait.h>
-#include <linux/stringify.h>
 #include <asm/socket.h>
 
 struct poll_table_struct;
@@ -57,11 +55,13 @@ typedef enum {
 #define __SO_ACCEPTCON (1 << 16)       /* performed a listen           */
 
 #ifdef __KERNEL__
+#include <linux/stringify.h>
 
 #define SOCK_ASYNC_NOSPACE     0
 #define SOCK_ASYNC_WAITDATA    1
 #define SOCK_NOSPACE           2
 #define SOCK_PASSCRED          3
+#define SOCK_PASSSEC           4
 
 #ifndef ARCH_HAS_SOCKET_TYPES
 /**
@@ -208,6 +208,25 @@ extern int              kernel_recvmsg(struct socket *sock, struct msghdr *msg,
                                    struct kvec *vec, size_t num,
                                    size_t len, int flags);
 
+extern int kernel_bind(struct socket *sock, struct sockaddr *addr,
+                      int addrlen);
+extern int kernel_listen(struct socket *sock, int backlog);
+extern int kernel_accept(struct socket *sock, struct socket **newsock,
+                        int flags);
+extern int kernel_connect(struct socket *sock, struct sockaddr *addr,
+                         int addrlen, int flags);
+extern int kernel_getsockname(struct socket *sock, struct sockaddr *addr,
+                             int *addrlen);
+extern int kernel_getpeername(struct socket *sock, struct sockaddr *addr,
+                             int *addrlen);
+extern int kernel_getsockopt(struct socket *sock, int level, int optname,
+                            char *optval, int *optlen);
+extern int kernel_setsockopt(struct socket *sock, int level, int optname,
+                            char *optval, int optlen);
+extern int kernel_sendpage(struct socket *sock, struct page *page, int offset,
+                          size_t size, int flags);
+extern int kernel_sock_ioctl(struct socket *sock, int cmd, unsigned long arg);
+
 #ifndef CONFIG_SMP
 #define SOCKOPS_WRAPPED(name) name
 #define SOCKOPS_WRAP(name, fam)