From 0ee48b4aca419a4b02c82a50299bcd6e23a3a25b Mon Sep 17 00:00:00 2001 From: gallatin Date: Thu, 16 Nov 2000 01:05:53 +0000 Subject: Use the linux_connect() on alpha rather than passing directly through to our native connect(). This is required to deal with the differences in the way linux handles connects on non-blocking sockets. This gets the private beta of the Compaq Linux/alpha JDK working on FreeBSD/alpha Approved by: marcel --- sys/compat/linux/linux_socket.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) (limited to 'sys/compat') diff --git a/sys/compat/linux/linux_socket.c b/sys/compat/linux/linux_socket.c index 2fdd3df..cfc7179 100644 --- a/sys/compat/linux/linux_socket.c +++ b/sys/compat/linux/linux_socket.c @@ -343,8 +343,10 @@ struct linux_connect_args { struct sockaddr * name; int namelen; }; +int linux_connect(struct proc *, struct linux_connect_args *); +#endif /* !__alpha__*/ -static int +int linux_connect(struct proc *p, struct linux_connect_args *args) { struct linux_connect_args linux_args; @@ -355,8 +357,12 @@ linux_connect(struct proc *p, struct linux_connect_args *args) } */ bsd_args; int error; +#ifdef __alpha__ + bcopy(args, &linux_args, sizeof(linux_args)); +#else if ((error = copyin(args, &linux_args, sizeof(linux_args)))) return (error); +#endif /* __alpha__ */ bsd_args.s = linux_args.s; bsd_args.name = (caddr_t)linux_args.name; @@ -418,6 +424,8 @@ linux_connect(struct proc *p, struct linux_connect_args *args) return (error); } +#ifndef __alpha__ + struct linux_listen_args { int s; int backlog; -- cgit v1.1