Date: Sun, 24 Aug 2008 22:29:18 GMT From: Julian Elischer <julian@FreeBSD.org> To: Perforce Change Reviews <perforce@freebsd.org> Subject: PERFORCE change 148299 for review Message-ID: <200808242229.m7OMTI5L075567@repoman.freebsd.org>
next in thread | raw e-mail | index | archive | help
http://perforce.freebsd.org/chv.cgi?CH=148299 Change 148299 by julian@julian_trafmon1 on 2008/08/24 22:29:12 IFC@148296 Affected files ... .. //depot/projects/vimage/src/sys/bsm/audit_kevents.h#7 integrate .. //depot/projects/vimage/src/sys/compat/freebsd32/freebsd32_proto.h#10 integrate .. //depot/projects/vimage/src/sys/compat/freebsd32/freebsd32_syscall.h#10 integrate .. //depot/projects/vimage/src/sys/compat/freebsd32/freebsd32_syscalls.c#10 integrate .. //depot/projects/vimage/src/sys/compat/freebsd32/freebsd32_sysent.c#10 integrate .. //depot/projects/vimage/src/sys/compat/freebsd32/syscalls.master#11 integrate .. //depot/projects/vimage/src/sys/conf/options#31 integrate .. //depot/projects/vimage/src/sys/dev/syscons/syscons.c#9 integrate .. //depot/projects/vimage/src/sys/kern/init_sysent.c#7 integrate .. //depot/projects/vimage/src/sys/kern/syscalls.c#7 integrate .. //depot/projects/vimage/src/sys/kern/syscalls.master#8 integrate .. //depot/projects/vimage/src/sys/kern/vfs_subr.c#15 integrate .. //depot/projects/vimage/src/sys/modules/Makefile#27 integrate .. //depot/projects/vimage/src/sys/net/if_spppsubr.c#8 integrate .. //depot/projects/vimage/src/sys/security/audit/audit_syscalls.c#14 integrate .. //depot/projects/vimage/src/sys/sparc64/sparc64/trap.c#7 integrate .. //depot/projects/vimage/src/sys/sys/syscall.h#7 integrate .. //depot/projects/vimage/src/sys/sys/syscall.mk#7 integrate .. //depot/projects/vimage/src/sys/sys/sysproto.h#7 integrate Differences ... ==== //depot/projects/vimage/src/sys/bsm/audit_kevents.h#7 (text) ==== @@ -27,7 +27,7 @@ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * * P4: //depot/projects/trustedbsd/audit3/sys/bsm/audit_kevents.h#34 - * $FreeBSD: src/sys/bsm/audit_kevents.h,v 1.14 2008/08/20 08:31:58 ed Exp $ + * $FreeBSD: src/sys/bsm/audit_kevents.h,v 1.15 2008/08/24 21:20:35 rwatson Exp $ */ #ifndef _BSM_AUDIT_KEVENTS_H_ @@ -548,7 +548,7 @@ #define AUE_MKNODAT 43150 /* FreeBSD. */ #define AUE_READLINKAT 43151 /* FreeBSD. */ #define AUE_SYMLINKAT 43152 /* FreeBSD. */ -#define AUE_POSIXOPENPT 43153 /* FreeBSD. */ +#define AUE_POSIX_OPENPT 43185 /* FreeBSD. */ /* * Darwin BSM uses a number of AUE_O_* definitions, which are aliased to the ==== //depot/projects/vimage/src/sys/compat/freebsd32/freebsd32_proto.h#10 (text+ko) ==== @@ -2,8 +2,8 @@ * System call prototypes. * * DO NOT EDIT-- this file is automatically generated. - * $FreeBSD: src/sys/compat/freebsd32/freebsd32_proto.h,v 1.88 2008/08/20 08:39:10 ed Exp $ - * created from FreeBSD: head/sys/compat/freebsd32/syscalls.master 181905 2008-08-20 08:31:58Z ed + * $FreeBSD: src/sys/compat/freebsd32/freebsd32_proto.h,v 1.89 2008/08/24 21:23:08 rwatson Exp $ + * created from FreeBSD: head/sys/compat/freebsd32/syscalls.master 182123 2008-08-24 21:20:35Z rwatson */ #ifndef _FREEBSD32_SYSPROTO_H_ ==== //depot/projects/vimage/src/sys/compat/freebsd32/freebsd32_syscall.h#10 (text+ko) ==== @@ -2,8 +2,8 @@ * System call numbers. * * DO NOT EDIT-- this file is automatically generated. - * $FreeBSD: src/sys/compat/freebsd32/freebsd32_syscall.h,v 1.87 2008/08/20 08:39:10 ed Exp $ - * created from FreeBSD: head/sys/compat/freebsd32/syscalls.master 181905 2008-08-20 08:31:58Z ed + * $FreeBSD: src/sys/compat/freebsd32/freebsd32_syscall.h,v 1.88 2008/08/24 21:23:08 rwatson Exp $ + * created from FreeBSD: head/sys/compat/freebsd32/syscalls.master 182123 2008-08-24 21:20:35Z rwatson */ #define FREEBSD32_SYS_syscall 0 ==== //depot/projects/vimage/src/sys/compat/freebsd32/freebsd32_syscalls.c#10 (text+ko) ==== @@ -2,8 +2,8 @@ * System call names. * * DO NOT EDIT-- this file is automatically generated. - * $FreeBSD: src/sys/compat/freebsd32/freebsd32_syscalls.c,v 1.78 2008/08/20 08:39:10 ed Exp $ - * created from FreeBSD: head/sys/compat/freebsd32/syscalls.master 181905 2008-08-20 08:31:58Z ed + * $FreeBSD: src/sys/compat/freebsd32/freebsd32_syscalls.c,v 1.79 2008/08/24 21:23:08 rwatson Exp $ + * created from FreeBSD: head/sys/compat/freebsd32/syscalls.master 182123 2008-08-24 21:20:35Z rwatson */ const char *freebsd32_syscallnames[] = { ==== //depot/projects/vimage/src/sys/compat/freebsd32/freebsd32_sysent.c#10 (text+ko) ==== @@ -2,8 +2,8 @@ * System call switch table. * * DO NOT EDIT-- this file is automatically generated. - * $FreeBSD: src/sys/compat/freebsd32/freebsd32_sysent.c,v 1.88 2008/08/20 08:39:10 ed Exp $ - * created from FreeBSD: head/sys/compat/freebsd32/syscalls.master 181905 2008-08-20 08:31:58Z ed + * $FreeBSD: src/sys/compat/freebsd32/freebsd32_sysent.c,v 1.89 2008/08/24 21:23:08 rwatson Exp $ + * created from FreeBSD: head/sys/compat/freebsd32/syscalls.master 182123 2008-08-24 21:20:35Z rwatson */ #include "opt_compat.h" @@ -542,5 +542,5 @@ { AS(renameat_args), (sy_call_t *)renameat, AUE_RENAMEAT, NULL, 0, 0 }, /* 501 = renameat */ { AS(symlinkat_args), (sy_call_t *)symlinkat, AUE_SYMLINKAT, NULL, 0, 0 }, /* 502 = symlinkat */ { AS(unlinkat_args), (sy_call_t *)unlinkat, AUE_UNLINKAT, NULL, 0, 0 }, /* 503 = unlinkat */ - { AS(posix_openpt_args), (sy_call_t *)posix_openpt, AUE_POSIXOPENPT, NULL, 0, 0 }, /* 504 = posix_openpt */ + { AS(posix_openpt_args), (sy_call_t *)posix_openpt, AUE_POSIX_OPENPT, NULL, 0, 0 }, /* 504 = posix_openpt */ }; ==== //depot/projects/vimage/src/sys/compat/freebsd32/syscalls.master#11 (text+ko) ==== @@ -1,4 +1,4 @@ - $FreeBSD: src/sys/compat/freebsd32/syscalls.master,v 1.103 2008/08/21 22:57:31 obrien Exp $ + $FreeBSD: src/sys/compat/freebsd32/syscalls.master,v 1.104 2008/08/24 21:20:35 rwatson Exp $ ; from: @(#)syscalls.master 8.2 (Berkeley) 1/13/94 ; from: src/sys/kern/syscalls.master 1.107 ; @@ -853,4 +853,4 @@ char *path2); } 503 AUE_UNLINKAT NOPROTO { int unlinkat(int fd, char *path, \ int flag); } -504 AUE_POSIXOPENPT NOPROTO { int posix_openpt(int flags); } +504 AUE_POSIX_OPENPT NOPROTO { int posix_openpt(int flags); } ==== //depot/projects/vimage/src/sys/conf/options#31 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/sys/conf/options,v 1.637 2008/08/23 15:26:36 rwatson Exp $ +# $FreeBSD: src/sys/conf/options,v 1.638 2008/08/24 21:33:10 julian Exp $ # # On the handling of kernel options # ==== //depot/projects/vimage/src/sys/dev/syscons/syscons.c#9 (text+ko) ==== @@ -30,7 +30,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/dev/syscons/syscons.c,v 1.461 2008/08/20 08:31:58 ed Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/syscons/syscons.c,v 1.462 2008/08/24 19:50:57 ed Exp $"); #include "opt_compat.h" #include "opt_syscons.h" @@ -103,7 +103,6 @@ static int sc_console_unit = -1; static int sc_saver_keyb_only = 1; static scr_stat *sc_console; -static struct tty *sc_console_tty; static struct consdev *sc_consptr; static void *kernel_console_ts; static scr_stat main_console; @@ -362,6 +361,7 @@ video_info_t info; #endif int vc; + struct tty *tp; flags &= ~SC_KERNEL_CONSOLE; @@ -457,8 +457,8 @@ */ } - sc_console_tty = sc_alloc_tty(0, "consolectl"); - SC_STAT(sc_console_tty) = sc_console; + tp = sc_alloc_tty(0, "consolectl"); + SC_STAT(tp) = sc_console; return 0; } @@ -639,13 +639,8 @@ while ((c = scgetc(sc, SCGETC_NONBLOCK)) != NOKEY) { cur_tty = SC_DEV(sc, sc->cur_scp->index); - if (!tty_opened(cur_tty)) { - cur_tty = sc_console_tty; - if (cur_tty == NULL) - continue; - if (!tty_opened(cur_tty)) - continue; - } + if (!tty_opened(cur_tty)) + continue; if ((*sc->cur_scp->tsw->te_input)(sc->cur_scp, c, cur_tty)) continue; @@ -1473,7 +1468,7 @@ return; /* initialize required fields */ - sprintf(cp->cn_name, "consolectl"); + strcpy(cp->cn_name, "ttyv0"); } static void ==== //depot/projects/vimage/src/sys/kern/init_sysent.c#7 (text+ko) ==== @@ -2,8 +2,8 @@ * System call switch table. * * DO NOT EDIT-- this file is automatically generated. - * $FreeBSD: src/sys/kern/init_sysent.c,v 1.242 2008/08/20 08:39:10 ed Exp $ - * created from FreeBSD: head/sys/kern/syscalls.master 181905 2008-08-20 08:31:58Z ed + * $FreeBSD: src/sys/kern/init_sysent.c,v 1.243 2008/08/24 21:23:08 rwatson Exp $ + * created from FreeBSD: head/sys/kern/syscalls.master 182123 2008-08-24 21:20:35Z rwatson */ #include "opt_compat.h" @@ -532,5 +532,5 @@ { AS(renameat_args), (sy_call_t *)renameat, AUE_RENAMEAT, NULL, 0, 0 }, /* 501 = renameat */ { AS(symlinkat_args), (sy_call_t *)symlinkat, AUE_SYMLINKAT, NULL, 0, 0 }, /* 502 = symlinkat */ { AS(unlinkat_args), (sy_call_t *)unlinkat, AUE_UNLINKAT, NULL, 0, 0 }, /* 503 = unlinkat */ - { AS(posix_openpt_args), (sy_call_t *)posix_openpt, AUE_POSIXOPENPT, NULL, 0, 0 }, /* 504 = posix_openpt */ + { AS(posix_openpt_args), (sy_call_t *)posix_openpt, AUE_POSIX_OPENPT, NULL, 0, 0 }, /* 504 = posix_openpt */ }; ==== //depot/projects/vimage/src/sys/kern/syscalls.c#7 (text+ko) ==== @@ -2,8 +2,8 @@ * System call names. * * DO NOT EDIT-- this file is automatically generated. - * $FreeBSD: src/sys/kern/syscalls.c,v 1.226 2008/08/20 08:39:10 ed Exp $ - * created from FreeBSD: head/sys/kern/syscalls.master 181905 2008-08-20 08:31:58Z ed + * $FreeBSD: src/sys/kern/syscalls.c,v 1.227 2008/08/24 21:23:08 rwatson Exp $ + * created from FreeBSD: head/sys/kern/syscalls.master 182123 2008-08-24 21:20:35Z rwatson */ const char *syscallnames[] = { ==== //depot/projects/vimage/src/sys/kern/syscalls.master#8 (text+ko) ==== @@ -1,4 +1,4 @@ - $FreeBSD: src/sys/kern/syscalls.master,v 1.245 2008/08/21 22:57:31 obrien Exp $ + $FreeBSD: src/sys/kern/syscalls.master,v 1.246 2008/08/24 21:20:35 rwatson Exp $ ; from: @(#)syscalls.master 8.2 (Berkeley) 1/13/94 ; ; System call name/number master file. @@ -894,6 +894,6 @@ 502 AUE_SYMLINKAT STD { int symlinkat(char *path1, int fd, \ char *path2); } 503 AUE_UNLINKAT STD { int unlinkat(int fd, char *path, int flag); } -504 AUE_POSIXOPENPT STD { int posix_openpt(int flags); } +504 AUE_POSIX_OPENPT STD { int posix_openpt(int flags); } ; Please copy any additions and changes to the following compatability tables: ; sys/compat/freebsd32/syscalls.master ==== //depot/projects/vimage/src/sys/kern/vfs_subr.c#15 (text+ko) ==== @@ -39,7 +39,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/kern/vfs_subr.c,v 1.736 2008/07/30 12:39:18 ed Exp $"); +__FBSDID("$FreeBSD: src/sys/kern/vfs_subr.c,v 1.737 2008/08/24 20:16:44 csjp Exp $"); #include "opt_ddb.h" #include "opt_mac.h" @@ -968,7 +968,7 @@ mac_vnode_init(vp); if (mp != NULL && (mp->mnt_flag & MNT_MULTILABEL) == 0) mac_vnode_associate_singlelabel(mp, vp); - else if (mp == NULL) + else if (mp == NULL && vops != &dead_vnodeops) printf("NULL mp in getnewvnode()\n"); #endif if (mp != NULL) { ==== //depot/projects/vimage/src/sys/modules/Makefile#27 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/sys/modules/Makefile,v 1.585 2008/08/23 21:00:40 jhb Exp $ +# $FreeBSD: src/sys/modules/Makefile,v 1.586 2008/08/24 21:27:01 imp Exp $ .include <bsd.own.mk> @@ -278,6 +278,7 @@ uftdi \ ugen \ uhid \ + uipaq \ ukbd \ ulpt \ umass \ ==== //depot/projects/vimage/src/sys/net/if_spppsubr.c#8 (text+ko) ==== @@ -18,24 +18,14 @@ * * From: Version 2.4, Thu Apr 30 17:17:21 MSD 1997 * - * $FreeBSD: src/sys/net/if_spppsubr.c,v 1.128 2008/08/17 23:27:27 bz Exp $ + * $FreeBSD: src/sys/net/if_spppsubr.c,v 1.129 2008/08/24 20:40:00 imp Exp $ */ #include <sys/param.h> -#if defined(__FreeBSD__) && __FreeBSD__ >= 3 #include "opt_inet.h" #include "opt_inet6.h" #include "opt_ipx.h" -#endif - -#ifdef NetBSD1_3 -# if NetBSD1_3 > 6 -# include "opt_inet.h" -# include "opt_inet6.h" -# include "opt_iso.h" -# endif -#endif #include <sys/systm.h> #include <sys/kernel.h> @@ -43,18 +33,12 @@ #include <sys/sockio.h> #include <sys/socket.h> #include <sys/syslog.h> -#if defined(__FreeBSD__) && __FreeBSD__ >= 3 #include <sys/random.h> -#endif #include <sys/malloc.h> #include <sys/mbuf.h> #include <sys/vimage.h> -#if defined (__OpenBSD__) -#include <sys/md5k.h> -#else #include <sys/md5.h> -#endif #include <net/vnet.h> #include <net/if.h> @@ -68,10 +52,6 @@ #include <netinet/ip.h> #include <net/slcompress.h> -#if defined (__NetBSD__) || defined (__OpenBSD__) -#include <machine/cpu.h> /* XXX for softnet */ -#endif - #include <machine/stdarg.h> #include <netinet/in_var.h> @@ -85,11 +65,7 @@ #include <netinet6/scope6_var.h> #endif -#if defined (__FreeBSD__) || defined (__OpenBSD__) -# include <netinet/if_ether.h> -#else -# include <net/ethertypes.h> -#endif +#include <netinet/if_ether.h> #ifdef IPX #include <netipx/ipx.h> @@ -98,12 +74,7 @@ #include <net/if_sppp.h> -#if defined(__FreeBSD__) && __FreeBSD__ >= 3 -# define IOCTL_CMD_T u_long -#else -# define IOCTL_CMD_T int -#endif - +#define IOCTL_CMD_T u_long #define MAXALIVECNT 3 /* max. alive packets */ /* @@ -264,13 +235,8 @@ void (*scr)(struct sppp *sp); }; -#if defined(__FreeBSD__) && __FreeBSD__ >= 3 && __FreeBSD_version < 501113 -#define SPP_FMT "%s%d: " -#define SPP_ARGS(ifp) (ifp)->if_name, (ifp)->if_unit -#else #define SPP_FMT "%s: " #define SPP_ARGS(ifp) (ifp)->if_xname -#endif #define SPPP_LOCK(sp) \ do { \ @@ -1425,11 +1391,7 @@ ++sp->pp_loopcnt; /* Generate new local sequence number */ -#if defined(__FreeBSD__) && __FreeBSD__ >= 3 sp->pp_seq[IDX_LCP] = random(); -#else - sp->pp_seq[IDX_LCP] ^= time.tv_sec ^ time.tv_usec; -#endif break; } sp->pp_loopcnt = 0; @@ -2674,11 +2636,7 @@ if (magic == ~sp->lcp.magic) { if (debug) log(-1, "magic glitch "); -#if defined(__FreeBSD__) && __FreeBSD__ >= 3 sp->lcp.magic = random(); -#else - sp->lcp.magic = time.tv_sec + time.tv_usec; -#endif } else { sp->lcp.magic = magic; if (debug) @@ -2859,11 +2817,7 @@ if (sp->lcp.opts & (1 << LCP_OPT_MAGIC)) { if (! sp->lcp.magic) -#if defined(__FreeBSD__) && __FreeBSD__ >= 3 sp->lcp.magic = random(); -#else - sp->lcp.magic = time.tv_sec + time.tv_usec; -#endif opt[i++] = LCP_OPT_MAGIC; opt[i++] = 6; opt[i++] = sp->lcp.magic >> 24; @@ -4386,15 +4340,7 @@ /* Compute random challenge. */ ch = (u_long *)sp->myauth.challenge; -#if defined(__FreeBSD__) && __FreeBSD__ >= 3 read_random(&seed, sizeof seed); -#else - { - struct timeval tv; - microtime(&tv); - seed = tv.tv_sec ^ tv.tv_usec; - } -#endif ch[0] = seed ^ random(); ch[1] = seed ^ random(); ch[2] = seed ^ random(); @@ -4903,17 +4849,7 @@ * aliases don't make any sense on a p2p link anyway. */ si = 0; -#if defined(__FreeBSD__) && __FreeBSD__ >= 3 TAILQ_FOREACH(ifa, &ifp->if_addrhead, ifa_link) -#elif defined(__NetBSD__) || defined (__OpenBSD__) - for (ifa = TAILQ_FIRST(&ifp->if_addrlist); - ifa; - ifa = TAILQ_NEXT(ifa, ifa_list)) -#else - for (ifa = ifp->if_addrlist; - ifa; - ifa = ifa->ifa_next) -#endif if (ifa->ifa_addr->sa_family == AF_INET) { si = (struct sockaddr_in *)ifa->ifa_addr; sm = (struct sockaddr_in *)ifa->ifa_netmask; @@ -4953,17 +4889,7 @@ * aliases don't make any sense on a p2p link anyway. */ si = 0; -#if defined(__FreeBSD__) && __FreeBSD__ >= 3 TAILQ_FOREACH(ifa, &ifp->if_addrhead, ifa_link) -#elif defined(__NetBSD__) || defined (__OpenBSD__) - for (ifa = TAILQ_FIRST(&ifp->if_addrlist); - ifa; - ifa = TAILQ_NEXT(ifa, ifa_list)) -#else - for (ifa = ifp->if_addrlist; - ifa; - ifa = ifa->ifa_next) -#endif { if (ifa->ifa_addr->sa_family == AF_INET) { @@ -4976,17 +4902,6 @@ if (ifa && si) { int error; -#if defined(__NetBSD__) && __NetBSD_Version__ >= 103080000 - struct sockaddr_in new_sin = *si; - - new_sin.sin_addr.s_addr = htonl(src); - error = in_ifinit(ifp, ifatoia(ifa), &new_sin, 1); - if(debug && error) - { - log(LOG_DEBUG, SPP_FMT "sppp_set_ip_addr: in_ifinit " - " failed, error=%d\n", SPP_ARGS(ifp), error); - } -#else /* delete old route */ error = rtinit(ifa, (int)RTM_DELETE, RTF_HOST); if(debug && error) @@ -5008,7 +4923,6 @@ log(LOG_DEBUG, SPP_FMT "sppp_set_ip_addr: rtinit ADD failed, error=%d", SPP_ARGS(ifp), error); } -#endif } } @@ -5033,17 +4947,7 @@ * aliases don't make any sense on a p2p link anyway. */ si = 0; -#if defined(__FreeBSD__) && __FreeBSD__ >= 3 TAILQ_FOREACH(ifa, &ifp->if_addrhead, ifa_link) -#elif defined(__NetBSD__) || defined (__OpenBSD__) - for (ifa = ifp->if_addrlist.tqh_first; - ifa; - ifa = ifa->ifa_list.tqe_next) -#else - for (ifa = ifp->if_addrlist; - ifa; - ifa = ifa->ifa_next) -#endif if (ifa->ifa_addr->sa_family == AF_INET6) { si = (struct sockaddr_in6 *)ifa->ifa_addr; sm = (struct sockaddr_in6 *)ifa->ifa_netmask; @@ -5096,15 +5000,7 @@ */ sin6 = NULL; -#if defined(__FreeBSD__) && __FreeBSD__ >= 3 TAILQ_FOREACH(ifa, &ifp->if_addrhead, ifa_link) -#elif defined(__NetBSD__) || defined (__OpenBSD__) - for (ifa = ifp->if_addrlist.tqh_first; - ifa; - ifa = ifa->ifa_list.tqe_next) -#else - for (ifa = ifp->if_addrlist; ifa; ifa = ifa->ifa_next) -#endif { if (ifa->ifa_addr->sa_family == AF_INET6) { ==== //depot/projects/vimage/src/sys/security/audit/audit_syscalls.c#14 (text) ==== @@ -28,7 +28,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/security/audit/audit_syscalls.c,v 1.29 2008/08/23 14:39:01 rwatson Exp $"); +__FBSDID("$FreeBSD: src/sys/security/audit/audit_syscalls.c,v 1.30 2008/08/24 19:55:10 rwatson Exp $"); #include "opt_mac.h" @@ -508,7 +508,7 @@ if (error) return (error); if (td->td_ucred->cr_audit.ai_termid.at_type == AU_IPv6) - return (EOVERFLOW); + return (ERANGE); bzero(&ai, sizeof(ai)); ai.ai_auid = td->td_ucred->cr_audit.ai_auid; ai.ai_mask = td->td_ucred->cr_audit.ai_mask; ==== //depot/projects/vimage/src/sys/sparc64/sparc64/trap.c#7 (text+ko) ==== @@ -40,7 +40,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/sparc64/sparc64/trap.c,v 1.91 2008/08/13 20:30:28 marius Exp $"); +__FBSDID("$FreeBSD: src/sys/sparc64/sparc64/trap.c,v 1.93 2008/08/24 20:53:36 marius Exp $"); #include "opt_ddb.h" #include "opt_ktr.h" @@ -388,6 +388,7 @@ struct proc *p; vm_offset_t va; vm_prot_t prot; + vm_map_entry_t entry; u_long ctx; int flags; int type; @@ -461,6 +462,19 @@ KASSERT(tf->tf_tstate & TSTATE_PRIV, ("trap_pfault: fault on nucleus context from user mode")); + if (tf->tf_tpc >= (u_long)copy_nofault_begin && + tf->tf_tpc <= (u_long)copy_nofault_end) { + vm_map_lock_read(kernel_map); + if (vm_map_lookup_entry(kernel_map, va, &entry) && + (entry->eflags & MAP_ENTRY_NOFAULT) != 0) { + tf->tf_tpc = (u_long)copy_fault; + tf->tf_tnpc = tf->tf_tpc + 4; + vm_map_unlock_read(kernel_map); + return (0); + } + vm_map_unlock_read(kernel_map); + } + /* * We don't have to worry about process locking or stacks in * the kernel. @@ -560,18 +574,15 @@ narg = callp->sy_narg; - if (narg <= regcnt) { - argp = &tf->tf_out[reg]; - error = 0; - } else { - KASSERT(narg <= sizeof(args) / sizeof(args[0]), - ("Too many syscall arguments!")); - argp = args; - bcopy(&tf->tf_out[reg], args, sizeof(args[0]) * regcnt); + KASSERT(narg <= sizeof(args) / sizeof(args[0]), + ("Too many syscall arguments!")); + error = 0; + argp = args; + bcopy(&tf->tf_out[reg], args, sizeof(args[0]) * regcnt); + if (narg > regcnt) error = copyin((void *)(tf->tf_out[6] + SPOFF + offsetof(struct frame, fr_pad[6])), &args[regcnt], (narg - regcnt) * sizeof(args[0])); - } CTR5(KTR_SYSC, "syscall: td=%p %s(%#lx, %#lx, %#lx)", td, syscallnames[code], argp[0], argp[1], argp[2]); ==== //depot/projects/vimage/src/sys/sys/syscall.h#7 (text+ko) ==== @@ -2,8 +2,8 @@ * System call numbers. * * DO NOT EDIT-- this file is automatically generated. - * $FreeBSD: src/sys/sys/syscall.h,v 1.223 2008/08/20 08:39:10 ed Exp $ - * created from FreeBSD: head/sys/kern/syscalls.master 181905 2008-08-20 08:31:58Z ed + * $FreeBSD: src/sys/sys/syscall.h,v 1.224 2008/08/24 21:23:08 rwatson Exp $ + * created from FreeBSD: head/sys/kern/syscalls.master 182123 2008-08-24 21:20:35Z rwatson */ #define SYS_syscall 0 ==== //depot/projects/vimage/src/sys/sys/syscall.mk#7 (text+ko) ==== @@ -1,7 +1,7 @@ # FreeBSD system call names. # DO NOT EDIT-- this file is automatically generated. -# $FreeBSD: src/sys/sys/syscall.mk,v 1.178 2008/08/20 08:39:10 ed Exp $ -# created from FreeBSD: head/sys/kern/syscalls.master 181905 2008-08-20 08:31:58Z ed +# $FreeBSD: src/sys/sys/syscall.mk,v 1.179 2008/08/24 21:23:08 rwatson Exp $ +# created from FreeBSD: head/sys/kern/syscalls.master 182123 2008-08-24 21:20:35Z rwatson MIASM = \ syscall.o \ exit.o \ ==== //depot/projects/vimage/src/sys/sys/sysproto.h#7 (text+ko) ==== @@ -2,8 +2,8 @@ * System call prototypes. * * DO NOT EDIT-- this file is automatically generated. - * $FreeBSD: src/sys/sys/sysproto.h,v 1.227 2008/08/20 08:39:10 ed Exp $ - * created from FreeBSD: head/sys/kern/syscalls.master 181905 2008-08-20 08:31:58Z ed + * $FreeBSD: src/sys/sys/sysproto.h,v 1.228 2008/08/24 21:23:08 rwatson Exp $ + * created from FreeBSD: head/sys/kern/syscalls.master 182123 2008-08-24 21:20:35Z rwatson */ #ifndef _SYS_SYSPROTO_H_ @@ -2573,7 +2573,7 @@ #define SYS_AUE_renameat AUE_RENAMEAT #define SYS_AUE_symlinkat AUE_SYMLINKAT #define SYS_AUE_unlinkat AUE_UNLINKAT -#define SYS_AUE_posix_openpt AUE_POSIXOPENPT +#define SYS_AUE_posix_openpt AUE_POSIX_OPENPT #undef PAD_ #undef PADL_
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200808242229.m7OMTI5L075567>