Deleted Added
full compact
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 ---