linux_socket.c (283413) | linux_socket.c (283415) |
---|---|
1/*- 2 * Copyright (c) 1995 S��ren Schmidt 3 * All rights reserved. 4 * 5 * Redistribution and use in source and binary forms, with or without 6 * modification, are permitted provided that the following conditions 7 * are met: 8 * 1. Redistributions of source code must retain the above copyright --- 13 unchanged lines hidden (view full) --- 22 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 23 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 24 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 25 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 26 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 27 */ 28 29#include <sys/cdefs.h> | 1/*- 2 * Copyright (c) 1995 S��ren Schmidt 3 * All rights reserved. 4 * 5 * Redistribution and use in source and binary forms, with or without 6 * modification, are permitted provided that the following conditions 7 * are met: 8 * 1. Redistributions of source code must retain the above copyright --- 13 unchanged lines hidden (view full) --- 22 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 23 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 24 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 25 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 26 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 27 */ 28 29#include <sys/cdefs.h> |
30__FBSDID("$FreeBSD: head/sys/compat/linux/linux_socket.c 283413 2015-05-24 15:41:27Z dchagin $"); | 30__FBSDID("$FreeBSD: head/sys/compat/linux/linux_socket.c 283415 2015-05-24 15:43:53Z dchagin $"); |
31 32/* XXX we use functions that might not exist. */ 33#include "opt_compat.h" 34#include "opt_inet6.h" 35 36#include <sys/param.h> 37#include <sys/proc.h> 38#include <sys/systm.h> --- 1486 unchanged lines hidden (view full) --- 1525 error = sys_getsockopt(td, &bsd_args); 1526 bsd_to_linux_sockaddr((struct sockaddr *)bsd_args.val); 1527 } else 1528 error = sys_getsockopt(td, &bsd_args); 1529 1530 return (error); 1531} 1532 | 31 32/* XXX we use functions that might not exist. */ 33#include "opt_compat.h" 34#include "opt_inet6.h" 35 36#include <sys/param.h> 37#include <sys/proc.h> 38#include <sys/systm.h> --- 1486 unchanged lines hidden (view full) --- 1525 error = sys_getsockopt(td, &bsd_args); 1526 bsd_to_linux_sockaddr((struct sockaddr *)bsd_args.val); 1527 } else 1528 error = sys_getsockopt(td, &bsd_args); 1529 1530 return (error); 1531} 1532 |
1533#if defined(__i386__) || (defined(__amd64__) && defined(COMPAT_LINUX32)) 1534 |
|
1533/* Argument list sizes for linux_socketcall */ 1534 1535#define LINUX_AL(x) ((x) * sizeof(l_ulong)) 1536 1537static const unsigned char lxs_args[] = { 1538 LINUX_AL(0) /* unused*/, LINUX_AL(3) /* socket */, 1539 LINUX_AL(3) /* bind */, LINUX_AL(3) /* connect */, 1540 LINUX_AL(2) /* listen */, LINUX_AL(3) /* accept */, 1541 LINUX_AL(3) /* getsockname */, LINUX_AL(3) /* getpeername */, 1542 LINUX_AL(4) /* socketpair */, LINUX_AL(4) /* send */, 1543 LINUX_AL(4) /* recv */, LINUX_AL(6) /* sendto */, 1544 LINUX_AL(6) /* recvfrom */, LINUX_AL(2) /* shutdown */, 1545 LINUX_AL(5) /* setsockopt */, LINUX_AL(5) /* getsockopt */, 1546 LINUX_AL(3) /* sendmsg */, LINUX_AL(3) /* recvmsg */, 1547 LINUX_AL(4) /* accept4 */ 1548}; 1549 1550#define LINUX_AL_SIZE sizeof(lxs_args) / sizeof(lxs_args[0]) - 1 1551 | 1535/* Argument list sizes for linux_socketcall */ 1536 1537#define LINUX_AL(x) ((x) * sizeof(l_ulong)) 1538 1539static const unsigned char lxs_args[] = { 1540 LINUX_AL(0) /* unused*/, LINUX_AL(3) /* socket */, 1541 LINUX_AL(3) /* bind */, LINUX_AL(3) /* connect */, 1542 LINUX_AL(2) /* listen */, LINUX_AL(3) /* accept */, 1543 LINUX_AL(3) /* getsockname */, LINUX_AL(3) /* getpeername */, 1544 LINUX_AL(4) /* socketpair */, LINUX_AL(4) /* send */, 1545 LINUX_AL(4) /* recv */, LINUX_AL(6) /* sendto */, 1546 LINUX_AL(6) /* recvfrom */, LINUX_AL(2) /* shutdown */, 1547 LINUX_AL(5) /* setsockopt */, LINUX_AL(5) /* getsockopt */, 1548 LINUX_AL(3) /* sendmsg */, LINUX_AL(3) /* recvmsg */, 1549 LINUX_AL(4) /* accept4 */ 1550}; 1551 1552#define LINUX_AL_SIZE sizeof(lxs_args) / sizeof(lxs_args[0]) - 1 1553 |
1552#if defined(__i386__) || (defined(__amd64__) && defined(COMPAT_LINUX32)) | |
1553int 1554linux_socketcall(struct thread *td, struct linux_socketcall_args *args) 1555{ 1556 l_ulong a[6]; 1557 void *arg; 1558 int error; 1559 1560 if (args->what < LINUX_SOCKET || args->what > LINUX_AL_SIZE) --- 49 unchanged lines hidden --- | 1554int 1555linux_socketcall(struct thread *td, struct linux_socketcall_args *args) 1556{ 1557 l_ulong a[6]; 1558 void *arg; 1559 int error; 1560 1561 if (args->what < LINUX_SOCKET || args->what > LINUX_AL_SIZE) --- 49 unchanged lines hidden --- |