Date: Fri, 3 Nov 2006 23:58:10 GMT From: John Birrell <jb@FreeBSD.org> To: Perforce Change Reviews <perforce@freebsd.org> Subject: PERFORCE change 109170 for review Message-ID: <200611032358.kA3NwAOs028186@repoman.freebsd.org>
next in thread | raw e-mail | index | archive | help
http://perforce.freebsd.org/chv.cgi?CH=109170 Change 109170 by jb@jb_freebsd8 on 2006/11/03 23:57:34 IFC Affected files ... .. //depot/projects/dtrace/doc/en_US.ISO8859-1/books/porters-handbook/book.sgml#31 integrate .. //depot/projects/dtrace/src/sys/compat/freebsd32/freebsd32_proto.h#13 integrate .. //depot/projects/dtrace/src/sys/compat/freebsd32/freebsd32_syscall.h#13 integrate .. //depot/projects/dtrace/src/sys/compat/freebsd32/freebsd32_syscalls.c#13 integrate .. //depot/projects/dtrace/src/sys/compat/freebsd32/freebsd32_sysent.c#13 integrate .. //depot/projects/dtrace/src/sys/compat/freebsd32/syscalls.master#14 integrate .. //depot/projects/dtrace/src/sys/conf/files#37 integrate .. //depot/projects/dtrace/src/sys/modules/ath_rate_amrr/Makefile#5 integrate .. //depot/projects/dtrace/src/sys/modules/bge/Makefile#4 integrate .. //depot/projects/dtrace/src/sys/modules/nfe/Makefile#3 integrate .. //depot/projects/dtrace/src/sys/netinet/sctp_input.c#2 integrate .. //depot/projects/dtrace/src/sys/netinet/sctp_pcb.c#2 integrate .. //depot/projects/dtrace/src/sys/netinet/sctp_timer.c#2 integrate .. //depot/projects/dtrace/src/sys/netinet/sctp_usrreq.c#2 integrate .. //depot/projects/dtrace/src/sys/netinet/sctputil.c#2 integrate .. //depot/projects/dtrace/src/sys/sparc64/sparc64/genassym.c#8 integrate .. //depot/projects/dtrace/src/sys/sun4v/include/elf.h#6 integrate .. //depot/projects/dtrace/src/sys/sun4v/include/trap.h#5 integrate .. //depot/projects/dtrace/src/sys/sun4v/include/utrap.h#5 integrate .. //depot/projects/dtrace/src/sys/sun4v/sun4v/exception.S#7 integrate .. //depot/projects/dtrace/src/sys/sun4v/sun4v/trap.c#12 integrate .. //depot/projects/dtrace/src/sys/sun4v/sun4v/wbuf.S#6 integrate .. //depot/projects/dtrace/www/en/gnome/docs/faq2.sgml#9 integrate Differences ... ==== //depot/projects/dtrace/doc/en_US.ISO8859-1/books/porters-handbook/book.sgml#31 (text+ko) ==== @@ -1,7 +1,7 @@ <!-- The FreeBSD Documentation Project - $FreeBSD: doc/en_US.ISO8859-1/books/porters-handbook/book.sgml,v 1.764 2006/10/30 09:37:40 danger Exp $ + $FreeBSD: doc/en_US.ISO8859-1/books/porters-handbook/book.sgml,v 1.765 2006/11/03 21:04:09 glewis Exp $ --> <!DOCTYPE BOOK PUBLIC "-//FreeBSD//DTD DocBook V4.1-Based Extension//EN" [ @@ -5201,7 +5201,7 @@ <para>There are several JDKs in the ports collection, from various vendors, and in several versions. If your port must use one of these versions, you can define which one. The most current - version is <filename role="package">java/jdk14</filename>.</para> + version is <filename role="package">java/jdk15</filename>.</para> <table frame="none"> <title>Variables that may be set by ports that use Java</title> ==== //depot/projects/dtrace/src/sys/compat/freebsd32/freebsd32_proto.h#13 (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.73 2006/11/03 18:57:48 rrs Exp $ - * created from FreeBSD: src/sys/compat/freebsd32/syscalls.master,v 1.86 2006/11/03 15:23:12 rrs Exp + * $FreeBSD: src/sys/compat/freebsd32/freebsd32_proto.h,v 1.74 2006/11/03 21:23:33 ru Exp $ + * created from FreeBSD: src/sys/compat/freebsd32/syscalls.master,v 1.87 2006/11/03 21:21:28 ru Exp */ #ifndef _FREEBSD32_SYSPROTO_H_ @@ -309,37 +309,6 @@ char param_l_[PADL_(struct thr_param32 *)]; struct thr_param32 * param; char param_r_[PADR_(struct thr_param32 *)]; char param_size_l_[PADL_(int)]; int param_size; char param_size_r_[PADR_(int)]; }; -struct sctp_peeloff_args { - char sd_l_[PADL_(int)]; int sd; char sd_r_[PADR_(int)]; - char name_l_[PADL_(uint32_t)]; uint32_t name; char name_r_[PADR_(uint32_t)]; -}; -struct sctp_generic_sendmsg_args { - char sd_l_[PADL_(int)]; int sd; char sd_r_[PADR_(int)]; - char msg_l_[PADL_(caddr_t)]; caddr_t msg; char msg_r_[PADR_(caddr_t)]; - char mlen_l_[PADL_(int)]; int mlen; char mlen_r_[PADR_(int)]; - char to_l_[PADL_(caddr_t)]; caddr_t to; char to_r_[PADR_(caddr_t)]; - char tolen_l_[PADL_(__socklen_t)]; __socklen_t tolen; char tolen_r_[PADR_(__socklen_t)]; - char sinfo_l_[PADL_(struct sctp_sndrcvinfo *)]; struct sctp_sndrcvinfo * sinfo; char sinfo_r_[PADR_(struct sctp_sndrcvinfo *)]; - char flags_l_[PADL_(int)]; int flags; char flags_r_[PADR_(int)]; -}; -struct sctp_generic_sendmsg_iov_args { - char sd_l_[PADL_(int)]; int sd; char sd_r_[PADR_(int)]; - char iov_l_[PADL_(struct iovec *)]; struct iovec * iov; char iov_r_[PADR_(struct iovec *)]; - char iovlen_l_[PADL_(int)]; int iovlen; char iovlen_r_[PADR_(int)]; - char to_l_[PADL_(caddr_t)]; caddr_t to; char to_r_[PADR_(caddr_t)]; - char tolen_l_[PADL_(__socklen_t)]; __socklen_t tolen; char tolen_r_[PADR_(__socklen_t)]; - char sinfo_l_[PADL_(struct sctp_sndrcvinfo *)]; struct sctp_sndrcvinfo * sinfo; char sinfo_r_[PADR_(struct sctp_sndrcvinfo *)]; - char flags_l_[PADL_(int)]; int flags; char flags_r_[PADR_(int)]; -}; -struct sctp_generic_recvmsg_args { - char sd_l_[PADL_(int)]; int sd; char sd_r_[PADR_(int)]; - char iov_l_[PADL_(struct iovec *)]; struct iovec * iov; char iov_r_[PADR_(struct iovec *)]; - char iovlen_l_[PADL_(int)]; int iovlen; char iovlen_r_[PADR_(int)]; - char from_l_[PADL_(struct sockaddr *)]; struct sockaddr * from; char from_r_[PADR_(struct sockaddr *)]; - char fromlenaddr_l_[PADL_(__socklen_t *)]; __socklen_t * fromlenaddr; char fromlenaddr_r_[PADR_(__socklen_t *)]; - char sinfo_l_[PADL_(struct sctp_sndrcvinfo *)]; struct sctp_sndrcvinfo * sinfo; char sinfo_r_[PADR_(struct sctp_sndrcvinfo *)]; - char msg_flags_l_[PADL_(int *)]; int * msg_flags; char msg_flags_r_[PADR_(int *)]; -}; int freebsd32_wait4(struct thread *, struct freebsd32_wait4_args *); int freebsd32_recvmsg(struct thread *, struct freebsd32_recvmsg_args *); int freebsd32_sendmsg(struct thread *, struct freebsd32_sendmsg_args *); @@ -393,10 +362,6 @@ int freebsd32_thr_suspend(struct thread *, struct freebsd32_thr_suspend_args *); int freebsd32_umtx_op(struct thread *, struct freebsd32_umtx_op_args *); int freebsd32_thr_new(struct thread *, struct freebsd32_thr_new_args *); -int sctp_peeloff(struct thread *, struct sctp_peeloff_args *); -int sctp_generic_sendmsg(struct thread *, struct sctp_generic_sendmsg_args *); -int sctp_generic_sendmsg_iov(struct thread *, struct sctp_generic_sendmsg_iov_args *); -int sctp_generic_recvmsg(struct thread *, struct sctp_generic_recvmsg_args *); #ifdef COMPAT_43 @@ -539,10 +504,6 @@ #define FREEBSD32_SYS_AUE_freebsd32_thr_suspend AUE_NULL #define FREEBSD32_SYS_AUE_freebsd32_umtx_op AUE_NULL #define FREEBSD32_SYS_AUE_freebsd32_thr_new AUE_NULL -#define FREEBSD32_SYS_AUE_sctp_peeloff AUE_NULL -#define FREEBSD32_SYS_AUE_sctp_generic_sendmsg AUE_NULL -#define FREEBSD32_SYS_AUE_sctp_generic_sendmsg_iov AUE_NULL -#define FREEBSD32_SYS_AUE_sctp_generic_recvmsg AUE_NULL #undef PAD_ #undef PADL_ ==== //depot/projects/dtrace/src/sys/compat/freebsd32/freebsd32_syscall.h#13 (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.71 2006/11/03 18:57:48 rrs Exp $ - * created from FreeBSD: src/sys/compat/freebsd32/syscalls.master,v 1.86 2006/11/03 15:23:12 rrs Exp + * $FreeBSD: src/sys/compat/freebsd32/freebsd32_syscall.h,v 1.72 2006/11/03 21:23:33 ru Exp $ + * created from FreeBSD: src/sys/compat/freebsd32/syscalls.master,v 1.87 2006/11/03 21:21:28 ru Exp */ #define FREEBSD32_SYS_syscall 0 ==== //depot/projects/dtrace/src/sys/compat/freebsd32/freebsd32_syscalls.c#13 (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.62 2006/11/03 18:57:48 rrs Exp $ - * created from FreeBSD: src/sys/compat/freebsd32/syscalls.master,v 1.86 2006/11/03 15:23:12 rrs Exp + * $FreeBSD: src/sys/compat/freebsd32/freebsd32_syscalls.c,v 1.63 2006/11/03 21:23:33 ru Exp $ + * created from FreeBSD: src/sys/compat/freebsd32/syscalls.master,v 1.87 2006/11/03 21:21:28 ru Exp */ const char *freebsd32_syscallnames[] = { ==== //depot/projects/dtrace/src/sys/compat/freebsd32/freebsd32_sysent.c#13 (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.72 2006/11/03 18:57:48 rrs Exp $ - * created from FreeBSD: src/sys/compat/freebsd32/syscalls.master,v 1.86 2006/11/03 15:23:12 rrs Exp + * $FreeBSD: src/sys/compat/freebsd32/freebsd32_sysent.c,v 1.73 2006/11/03 21:23:33 ru Exp $ + * created from FreeBSD: src/sys/compat/freebsd32/syscalls.master,v 1.87 2006/11/03 21:21:28 ru Exp */ #include "opt_compat.h" ==== //depot/projects/dtrace/src/sys/compat/freebsd32/syscalls.master#14 (text+ko) ==== @@ -1,4 +1,4 @@ - $FreeBSD: src/sys/compat/freebsd32/syscalls.master,v 1.86 2006/11/03 15:23:12 rrs Exp $ + $FreeBSD: src/sys/compat/freebsd32/syscalls.master,v 1.87 2006/11/03 21:21:28 ru Exp $ ; from: @(#)syscalls.master 8.2 (Berkeley) 1/13/94 ; from: src/sys/kern/syscalls.master 1.107 ; @@ -771,13 +771,13 @@ 468 AUE_NULL UNIMPL nosys 469 AUE_NULL UNIMPL __getpath_fromfd 470 AUE_NULL UNIMPL __getpath_fromaddr -471 AUE_NULL STD { int sctp_peeloff(int sd, uint32_t name); } -472 AUE_NULL STD { int sctp_generic_sendmsg(int sd, caddr_t msg, int mlen, \ - caddr_t to, __socklen_t tolen, \ +471 AUE_NULL NOPROTO { int sctp_peeloff(int sd, uint32_t name); } +472 AUE_NULL NOPROTO { int sctp_generic_sendmsg(int sd, caddr_t msg, int mlen, \ + caddr_t to, __socklen_t tolen, \ struct sctp_sndrcvinfo *sinfo, int flags); } -473 AUE_NULL STD { int sctp_generic_sendmsg_iov(int sd, struct iovec *iov, int iovlen, \ - caddr_t to, __socklen_t tolen, \ +473 AUE_NULL NOPROTO { int sctp_generic_sendmsg_iov(int sd, struct iovec *iov, int iovlen, \ + caddr_t to, __socklen_t tolen, \ struct sctp_sndrcvinfo *sinfo, int flags); } -474 AUE_NULL STD { int sctp_generic_recvmsg(int sd, struct iovec *iov, int iovlen, \ +474 AUE_NULL NOPROTO { int sctp_generic_recvmsg(int sd, struct iovec *iov, int iovlen, \ struct sockaddr * from, __socklen_t *fromlenaddr, \ struct sctp_sndrcvinfo *sinfo, int *msg_flags); } ==== //depot/projects/dtrace/src/sys/conf/files#37 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/sys/conf/files,v 1.1158 2006/11/03 15:23:13 rrs Exp $ +# $FreeBSD: src/sys/conf/files,v 1.1159 2006/11/03 21:09:03 ru Exp $ # # The long compile-with and dependency lines are required because of # limitations in config: backslash-newline doesn't work in strings, and @@ -351,7 +351,7 @@ crypto/sha1.c optional carp | crypto | ipsec | \ netgraph_mppc_encryption | sctp crypto/sha2/sha2.c optional crypto | geom_bde | ipsec | random | \ - sctp + sctp ddb/db_access.c optional ddb ddb/db_break.c optional ddb ddb/db_command.c optional ddb @@ -1813,7 +1813,7 @@ netinet6/raw_ip6.c optional inet6 netinet6/route6.c optional inet6 netinet6/scope6.c optional inet6 -netinet6/sctp6_usrreq.c optional inet6 inet6 sctp +netinet6/sctp6_usrreq.c optional inet6 sctp netinet6/udp6_output.c optional inet6 netinet6/udp6_usrreq.c optional inet6 netipsec/ipsec.c optional fast_ipsec ==== //depot/projects/dtrace/src/sys/modules/ath_rate_amrr/Makefile#5 (text+ko) ==== @@ -33,14 +33,14 @@ # ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF # THE POSSIBILITY OF SUCH DAMAGES. # -# $FreeBSD: src/sys/modules/ath_rate_amrr/Makefile,v 1.3 2006/09/18 16:50:59 sam Exp $ +# $FreeBSD: src/sys/modules/ath_rate_amrr/Makefile,v 1.4 2006/11/03 21:41:19 ru Exp $ # .PATH: ${.CURDIR}/../../dev/ath/ath_rate/amrr KMOD= ath_rate SRCS= amrr.c -SRCS+= opt_bdg.h device_if.h bus_if.h pci_if.h opt_inet.h +SRCS+= device_if.h bus_if.h pci_if.h opt_inet.h HAL= ${.CURDIR}/../../contrib/dev/ath CFLAGS+= -I. -I${.CURDIR}/../../dev/ath -I${HAL} ==== //depot/projects/dtrace/src/sys/modules/bge/Makefile#4 (text+ko) ==== @@ -1,8 +1,8 @@ -# $FreeBSD: src/sys/modules/bge/Makefile,v 1.4 2005/09/27 18:10:33 mlaier Exp $ +# $FreeBSD: src/sys/modules/bge/Makefile,v 1.5 2006/11/03 21:41:19 ru Exp $ .PATH: ${.CURDIR}/../../dev/bge KMOD= if_bge -SRCS= opt_bge.h if_bge.c miibus_if.h miidevs.h device_if.h bus_if.h pci_if.h +SRCS= if_bge.c miibus_if.h miidevs.h device_if.h bus_if.h pci_if.h .include <bsd.kmod.mk> ==== //depot/projects/dtrace/src/sys/modules/nfe/Makefile#3 (text+ko) ==== @@ -1,8 +1,8 @@ -# $FreeBSD: src/sys/modules/nfe/Makefile,v 1.1 2006/06/26 23:41:07 obrien Exp $ +# $FreeBSD: src/sys/modules/nfe/Makefile,v 1.2 2006/11/03 21:41:19 ru Exp $ .PATH: ${.CURDIR}/../../dev/nfe KMOD= if_nfe -SRCS= if_nfe.c opt_bdg.h device_if.h bus_if.h pci_if.h miibus_if.h +SRCS= if_nfe.c device_if.h bus_if.h pci_if.h miibus_if.h .include <bsd.kmod.mk> ==== //depot/projects/dtrace/src/sys/netinet/sctp_input.c#2 (text+ko) ==== @@ -31,7 +31,7 @@ /* $KAME: sctp_input.c,v 1.27 2005/03/06 16:04:17 itojun Exp $ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/netinet/sctp_input.c,v 1.1 2006/11/03 15:23:15 rrs Exp $"); +__FBSDID("$FreeBSD: src/sys/netinet/sctp_input.c,v 1.2 2006/11/03 23:04:34 rrs Exp $"); #include "opt_ipsec.h" #include "opt_compat.h" @@ -250,7 +250,7 @@ sctp_free_remote_addr(sp->net); sp->net = NULL; /* Free the chunk */ - printf("sp:%x tcb:%x weird free case\n", + printf("sp:%p tcb:%p weird free case\n", (u_int)sp, (u_int)stcb); sctp_free_a_strmoq(stcb, sp); ==== //depot/projects/dtrace/src/sys/netinet/sctp_pcb.c#2 (text+ko) ==== @@ -31,7 +31,7 @@ /* $KAME: sctp_pcb.c,v 1.38 2005/03/06 16:04:18 itojun Exp $ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/netinet/sctp_pcb.c,v 1.1 2006/11/03 15:23:15 rrs Exp $"); +__FBSDID("$FreeBSD: src/sys/netinet/sctp_pcb.c,v 1.2 2006/11/03 23:04:34 rrs Exp $"); #include "opt_ipsec.h" #include "opt_compat.h" @@ -2206,7 +2206,7 @@ sp = TAILQ_LAST(&((asoc->asoc.locked_on_sending)->outqueue), sctp_streamhead); if (sp == NULL) { - printf("Error, sp is NULL, locked on sending is %x strm:%d\n", + printf("Error, sp is NULL, locked on sending is %ps strm:%d\n", (u_int)asoc->asoc.locked_on_sending, asoc->asoc.locked_on_sending->stream_no); } else { ==== //depot/projects/dtrace/src/sys/netinet/sctp_timer.c#2 (text+ko) ==== @@ -31,7 +31,7 @@ /* $KAME: sctp_timer.c,v 1.29 2005/03/06 16:04:18 itojun Exp $ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/netinet/sctp_timer.c,v 1.1 2006/11/03 15:23:15 rrs Exp $"); +__FBSDID("$FreeBSD: src/sys/netinet/sctp_timer.c,v 1.2 2006/11/03 23:04:34 rrs Exp $"); #include "opt_ipsec.h" #include "opt_compat.h" @@ -862,7 +862,7 @@ int win_probe, num_mk; #ifdef SCTP_FR_LOGGING - sctp_log_fr(sctps_datadropchklmt.sctps_senddata, 0, 0, SCTP_FR_T3_TIMEOUT); + sctp_log_fr(0, 0, 0, SCTP_FR_T3_TIMEOUT); #ifdef SCTP_CWND_LOGGING { struct sctp_nets *lnet; @@ -1662,7 +1662,7 @@ } if ((it->inp->inp_starting_point_for_iterator != NULL) && (it->inp->inp_starting_point_for_iterator != it)) { - printf("Iterator collision, waiting for one at 0x%x\n", + printf("Iterator collision, waiting for one at %p\n", (uint32_t) it->inp); SCTP_INP_WUNLOCK(it->inp); goto start_timer_return; ==== //depot/projects/dtrace/src/sys/netinet/sctp_usrreq.c#2 (text+ko) ==== @@ -31,7 +31,7 @@ /* $KAME: sctp_usrreq.c,v 1.48 2005/03/07 23:26:08 itojun Exp $ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/netinet/sctp_usrreq.c,v 1.1 2006/11/03 15:23:15 rrs Exp $"); +__FBSDID("$FreeBSD: src/sys/netinet/sctp_usrreq.c,v 1.3 2006/11/03 23:04:34 rrs Exp $"); #include "opt_ipsec.h" @@ -1134,8 +1134,7 @@ sp = TAILQ_LAST(&asoc->locked_on_sending->outqueue, sctp_streamhead); if (sp == NULL) { - printf("Error, sp is NULL, locked on sending is %x strm:%d\n", - (u_int)asoc->locked_on_sending, + printf("Error, sp is NULL, locked on sending is non-null strm:%d\n", asoc->locked_on_sending->stream_no); } else { if ((sp->length == 0) && (sp->msg_is_complete == 0)) @@ -1275,8 +1274,7 @@ sp = TAILQ_LAST(&asoc->locked_on_sending->outqueue, sctp_streamhead); if (sp == NULL) { - printf("Error, sp is NULL, locked on sending is %x strm:%d\n", - (u_int)asoc->locked_on_sending, + printf("Error, sp is NULL, locked on sending is non-null strm:%d\n", asoc->locked_on_sending->stream_no); } else { if ((sp->length == 0) && (sp->msg_is_complete == 0)) { @@ -3133,7 +3131,7 @@ error = EINVAL; break; } - on_off = (mtod(m, int)); + on_off = *(mtod(m, int *)); if (on_off) { sctp_feature_on(inp, SCTP_PCB_FLAGS_FRAG_INTERLEAVE); } else { ==== //depot/projects/dtrace/src/sys/netinet/sctputil.c#2 (text+ko) ==== @@ -31,7 +31,7 @@ /* $KAME: sctputil.c,v 1.37 2005/03/07 23:26:09 itojun Exp $ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/netinet/sctputil.c,v 1.1 2006/11/03 15:23:15 rrs Exp $"); +__FBSDID("$FreeBSD: src/sys/netinet/sctputil.c,v 1.2 2006/11/03 23:04:34 rrs Exp $"); #include "opt_ipsec.h" @@ -3271,12 +3271,12 @@ break; case SCTP_NOTIFY_AUTH_NEW_KEY: sctp_notify_authentication(stcb, SCTP_AUTH_NEWKEY, error, - (uint32_t) data); + (uint16_t) (uintptr_t) data); break; #if 0 case SCTP_NOTIFY_AUTH_KEY_CONFLICT: sctp_notify_authentication(stcb, SCTP_AUTH_KEY_CONFLICT, - error, (uint32_t) data); + error, (uint16_t) (uintptr_t) data); break; #endif /* not yet? remove? */ ==== //depot/projects/dtrace/src/sys/sparc64/sparc64/genassym.c#8 (text+ko) ==== @@ -27,7 +27,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/sparc64/sparc64/genassym.c,v 1.62 2006/11/01 04:54:51 jb Exp $"); +__FBSDID("$FreeBSD: src/sys/sparc64/sparc64/genassym.c,v 1.63 2006/11/03 23:33:40 kmacy Exp $"); #include "opt_kstack_pages.h" @@ -73,6 +73,7 @@ #include <machine/utrap.h> #ifdef SUN4V #include <machine/mmu.h> +#include <machine/trap.h> #include <machine/tte_hash.h> #endif @@ -300,6 +301,7 @@ ASSYM(PCB_NSAVED, offsetof(struct pcb, pcb_nsaved)); ASSYM(PCB_PC, offsetof(struct pcb, pcb_pc)); ASSYM(PCB_SP, offsetof(struct pcb, pcb_sp)); +ASSYM(PCB_PAD, offsetof(struct pcb, pcb_pad)); ==== //depot/projects/dtrace/src/sys/sun4v/include/elf.h#6 (text+ko) ==== @@ -23,7 +23,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/sys/sun4v/include/elf.h,v 1.1 2006/10/05 06:14:25 kmacy Exp $ + * $FreeBSD: src/sys/sun4v/include/elf.h,v 1.2 2006/11/03 23:03:46 jb Exp $ */ #ifndef _MACHINE_ELF_H_ ==== //depot/projects/dtrace/src/sys/sun4v/include/trap.h#5 (text+ko) ==== @@ -23,7 +23,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/sys/sun4v/include/trap.h,v 1.1 2006/10/05 06:14:26 kmacy Exp $ + * $FreeBSD: src/sys/sun4v/include/trap.h,v 1.2 2006/11/03 23:41:53 kmacy Exp $ */ #ifndef _MACHINE_TRAP_H_ @@ -31,12 +31,6 @@ #ifdef _KERNEL - -#define T_DATA_MISS 0x31 -#define T_ALIGNMENT 0x34 -#define T_DATA_PROTECTION 0x6c -#define T_MEM_ADDRESS_NOT_ALIGNED T_ALIGNMENT - #define T_RESERVED 0 #define T_INSTRUCTION_EXCEPTION 1 #define T_INSTRUCTION_ERROR 2 @@ -46,99 +40,108 @@ #define T_PRIVILEGED_OPCODE 6 #define T_FP_DISABLED 7 #define T_FP_EXCEPTION_IEEE_754 8 +#define T_FP_EXCEPTION_OTHER 9 +#define T_TAG_OVERFLOW 10 +#define T_DIVISION_BY_ZERO 11 +#define T_DATA_EXCEPTION 12 +#define T_DATA_ERROR 13 +#define T_DATA_PROTECTION 14 +#define T_MEM_ADDRESS_NOT_ALIGNED 15 +#define T_ALIGNMENT 15 +#define T_PRIVILEGED_ACTION 16 +#define T_ASYNC_DATA_ERROR 17 +#define T_TRAP_INSTRUCTION_16 18 +#define T_TRAP_INSTRUCTION_17 19 +#define T_TRAP_INSTRUCTION_18 20 +#define T_TRAP_INSTRUCTION_19 21 +#define T_TRAP_INSTRUCTION_20 22 +#define T_TRAP_INSTRUCTION_21 23 +#define T_TRAP_INSTRUCTION_22 24 +#define T_TRAP_INSTRUCTION_23 25 +#define T_TRAP_INSTRUCTION_24 26 +#define T_TRAP_INSTRUCTION_25 27 +#define T_TRAP_INSTRUCTION_26 28 +#define T_TRAP_INSTRUCTION_27 29 +#define T_TRAP_INSTRUCTION_28 30 +#define T_TRAP_INSTRUCTION_29 31 +#define T_TRAP_INSTRUCTION_30 32 +#define T_TRAP_INSTRUCTION_31 33 +#define T_INSTRUCTION_MISS 34 +#define T_DATA_MISS 35 -#define T_INSTRUCTION_MISS 0x09 -#define T_TAG_OVERFLOW 0x0a -#define T_DIVISION_BY_ZERO 0x0b -#define T_DATA_EXCEPTION 0x0c -#define T_DATA_ERROR 0x0d - - -#define T_PRIVILEGED_ACTION 0x10 -#define T_ASYNC_DATA_ERROR 0x11 -#define T_TRAP_INSTRUCTION_16 0x12 -#define T_TRAP_INSTRUCTION_17 0x13 -#define T_TRAP_INSTRUCTION_18 0x14 -#define T_TRAP_INSTRUCTION_19 0x15 -#define T_TRAP_INSTRUCTION_20 0x16 -#define T_TRAP_INSTRUCTION_21 0x17 -#define T_TRAP_INSTRUCTION_22 0x18 -#define T_TRAP_INSTRUCTION_23 0x19 -#define T_TRAP_INSTRUCTION_24 0x1a -#define T_TRAP_INSTRUCTION_25 0x1b -#define T_TRAP_INSTRUCTION_26 0x1c -#define T_TRAP_INSTRUCTION_27 0x1d -#define T_TRAP_INSTRUCTION_28 0x1e -#define T_TRAP_INSTRUCTION_29 0x1f -#define T_TRAP_INSTRUCTION_30 0x20 -#define T_TRAP_INSTRUCTION_31 0x21 -#define T_FP_EXCEPTION_OTHER 0x22 - - - -#define T_INTERRUPT 0x24 -#define T_PA_WATCHPOINT 0x25 -#define T_VA_WATCHPOINT 0x26 -#define T_CORRECTED_ECC_ERROR 0x27 -#define T_SPILL 0x28 -#define T_FILL 0x29 -#define T_FILL_RET 0x2a -#define T_BREAKPOINT 0x2b -#define T_CLEAN_WINDOW 0x2c -#define T_RANGE_CHECK 0x2d -#define T_FIX_ALIGNMENT 0x2e -#define T_INTEGER_OVERFLOW 0x2f -#define T_SYSCALL 0x30 -#define T_RSTRWP_PHYS -#define T_RSTRWP_VIRT +#define T_INTERRUPT 36 +#define T_PA_WATCHPOINT 37 +#define T_VA_WATCHPOINT 38 +#define T_CORRECTED_ECC_ERROR 39 +#define T_SPILL 40 +#define T_FILL 41 +#define T_FILL_RET 42 +#define T_BREAKPOINT 43 +#define T_CLEAN_WINDOW 44 +#define T_RANGE_CHECK 45 +#define T_FIX_ALIGNMENT 46 +#define T_INTEGER_OVERFLOW 47 +#define T_SYSCALL 48 +#define T_RSTRWP_PHYS 49 +#define T_RSTRWP_VIRT 50 #define T_KSTACK_FAULT 51 #define T_RESUMABLE_ERROR 52 #define T_NONRESUMABLE_ERROR 53 #define T_MAX (T_NONRESUMABLE_ERROR + 1) -#define T_KERNEL 0x100 -#define TRAP_MASK ((1<<8)-1) -#define TRAP_CTX_SHIFT 10 +#define T_KERNEL 64 -#define PTL1_BAD_DEBUG 0 -#define PTL1_BAD_WTRAP 1 -#define PTL1_BAD_KMISS 2 -#define PTL1_BAD_KPROT_FAULT 3 -#define PTL1_BAD_ISM 4 -#define PTL1_BAD_MMUTRAP 5 -#define PTL1_BAD_TRAP 6 -#define PTL1_BAD_FPTRAP 7 -#define PTL1_BAD_INTR_REQ 8 -#define PTL1_BAD_TRACE_PTR 9 -#define PTL1_BAD_STACK 10 -#define PTL1_BAD_DTRACE_FLAGS 11 -#define PTL1_BAD_CTX_STEAL 12 -#define PTL1_BAD_ECC 13 -#define PTL1_BAD_HCALL 14 -#define PTL1_BAD_GL 15 - - -#define TL_CPU_MONDO 0x1 -#define TL_DEV_MONDO 0x2 -#define TL_TSB_MISS 0x3 -#define TL_TL0_TRAP 0x4 -#define TL_SET_ACKMASK 0x5 - +#define TRAP_MASK ((1<<6)-1) +#define TRAP_CTX_SHIFT 8 /* * These defines are used by the TL1 tlb miss handlers to calculate * the pc to jump to in the case the entry was not found in the TSB. */ -#define WTRAP_ALIGN 0x7f /* window handlers are 128 byte align */ -#define WTRAP_FAULTOFF 124 /* last instruction in handler */ +#define WTRAP_ALIGN 0x7f /* window handlers are 128 byte align */ +#define WTRAP_FAULTOFF 124 /* last instruction in handler */ + /* use the following defines to determine if trap was a fill or a spill */ -#define WTRAP_TTMASK 0x180 -#define WTRAP_TYPE 0x080 +#define WTRAP_TTMASK 0x180 +#define WTRAP_TYPE 0x080 + +#define TT_INSTRUCTION_EXCEPTION 0x8 +#define TT_INSTRUCTION_MISS 0x9 +#define TT_ILLEGAL_INSTRUCTION 0x10 +#define TT_PRIVILEGED_OPCODE 0x11 +#define TT_FP_EXCEPTION_IEEE_754 0x21 +#define TT_FP_EXCEPTION_OTHER 0x22 +#define TT_TAG_OVERFLOW 0x23 +#define TT_DIVISION_BY_ZERO 0x28 +#define TT_DATA_EXCEPTION 0x30 +#define TT_DATA_MISS 0x31 +#define TT_ALIGNNMENT 0x34 +#define TT_DATA_PROTECTION 0x6c +#define TT_ALIGNMENT 0x6c +#define TT_BREAKPOINT 0x76 + +#define PTL1_BAD_DEBUG 0 +#define PTL1_BAD_WTRAP 1 +#define PTL1_BAD_KMISS 2 +#define PTL1_BAD_KPROT_FAULT 3 +#define PTL1_BAD_ISM 4 +#define PTL1_BAD_MMUTRAP 5 +#define PTL1_BAD_TRAP 6 +#define PTL1_BAD_FPTRAP 7 +#define PTL1_BAD_INTR_REQ 8 +#define PTL1_BAD_TRACE_PTR 9 +#define PTL1_BAD_STACK 10 +#define PTL1_BAD_DTRACE_FLAGS 11 +#define PTL1_BAD_CTX_STEAL 12 +#define PTL1_BAD_ECC 13 +#define PTL1_BAD_HCALL 14 +#define PTL1_BAD_GL 15 + #ifndef LOCORE extern const char *trap_msg[]; -void trap_init(void); +extern void trap_init(void); #endif #endif ==== //depot/projects/dtrace/src/sys/sun4v/include/utrap.h#5 (text+ko) ==== @@ -23,7 +23,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/sys/sun4v/include/utrap.h,v 1.1 2006/10/05 06:14:26 kmacy Exp $ + * $FreeBSD: src/sys/sun4v/include/utrap.h,v 1.2 2006/11/03 23:41:53 kmacy Exp $ */ #ifndef _MACHINE_UTRAP_H_ @@ -77,6 +77,7 @@ /* 8 is 32-bit ABI syscall (old solaris syscall?) */ #define ST_BSD_SYSCALL 9 #define ST_FP_RESTORE 10 +#define ST_FPEMU_CONTEXT 11 /* 11-15 are available */ /* 16 is linux 32 bit syscall (but supposed to be reserved, grr) */ /* 17 is old linux 64 bit syscall (but supposed to be reserved, grr) */ ==== //depot/projects/dtrace/src/sys/sun4v/sun4v/exception.S#7 (text+ko) ==== @@ -27,7 +27,7 @@ #include <machine/asm.h> -__FBSDID("$FreeBSD: src/sys/sun4v/sun4v/exception.S,v 1.2 2006/10/09 04:45:19 kmacy Exp $") +__FBSDID("$FreeBSD: src/sys/sun4v/sun4v/exception.S,v 1.3 2006/11/03 23:41:53 kmacy Exp $") #include "opt_compat.h" #include "opt_ddb.h" @@ -57,6 +57,7 @@ .register %g6,#ignore .register %g7,#ignore + .globl trap_conversion #define PCB_REG %g6 @@ -314,7 +315,7 @@ ldxa [%g1 + %g2]ASI_REAL, %g3 sub %g0, 1, %g4 set trap, %g1 - ba %xcc, tl0_trap + ba,pt %xcc, tl0_trap mov T_INSTRUCTION_EXCEPTION, %g2 .align 32 @@ -327,8 +328,7 @@ mov MMFSA_I_CTX, %g7 ldxa [%g1 + %g2]ASI_REAL, %g4 ldxa [%g1 + %g3]ASI_REAL, %g5 - ba,pt %xcc, tsb_miss_handler - mov T_INSTRUCTION_MISS, %g3 + ba,a,pt %xcc, tsb_miss_handler .align 32 .endm @@ -357,8 +357,7 @@ mov MMFSA_D_CTX, %g7 ldxa [%g1 + %g2]ASI_REAL, %g4 ldxa [%g1 + %g3]ASI_REAL, %g5 - ba,pt %xcc, tsb_miss_handler - mov T_DATA_MISS, %g3 + ba,a,pt %xcc, tsb_miss_handler .align 32 .endm @@ -367,8 +366,7 @@ mov MMFSA_D_ADDR, %g3 mov MMFSA_D_CTX, %g7 ldxa [%g1 + %g3]ASI_REAL, %g5 - ba,pt %xcc, tsb_miss_handler - mov T_DATA_PROTECTION, %g3 + ba,a,pt %xcc, tsb_miss_handler .align 32 .endm @@ -406,7 +404,7 @@ clr %g3 sub %g0, 1, %g4 set trap, %g1 - ba %xcc, tl0_trap + ba,pt %xcc, tl0_trap mov T_RESUMABLE_ERROR, %g2 .align 32 .endm @@ -415,7 +413,7 @@ clr %g3 sub %g0, 1, %g4 set trap, %g1 - ba %xcc, tl0_trap + ba,pt %xcc, tl0_trap mov T_NONRESUMABLE_ERROR, %g2 .align 32 .endm @@ -732,6 +730,33 @@ .align 32 .endm #endif + + ! fetch FP context into local registers + .macro tl0_fpemu_context + GET_PCB(PCB_REG) ! 3 instructions + ldx [PCB_REG + PCB_PAD], %l5 ! %tstate + ldx [PCB_REG + PCB_PAD + 8], %l6 ! %tpc + ldx [PCB_REG + PCB_PAD + 16], %l7 ! %tncp + ldx [PCB_REG + PCB_PAD + 24], %g2 ! %tt + ba,a,pt %xcc, tl0_fpemu_context + .align 32 + .endm + +ENTRY(tl0_fpemu_context) + mov %g2, %o0 + clr %o1 + + rd %fprs, %l1 + or %l1, FPRS_FEF, %l2 + wr %l2, 0, %fprs + stx %fsr, [PCB_REG + PCB_PAD] + ldx [PCB_REG + PCB_PAD], %l4 + wr %l1, 0, %fprs + + sub %fp, CCFSZ, %sp + done +END(tl0_fpemu_context) + .macro tl0_fp_restore GET_PCB(PCB_REG) ! 3 instructions ldx [%g6 + PCB_FLAGS], %g1 @@ -898,7 +923,8 @@ tl0_gen T_SYSCALL ! 0x108 tl0_gen T_SYSCALL ! 0x109 tl0_fp_restore ! 0x10a - tl0_reserved 5 ! 0x10b-0x10f + tl0_fpemu_context ! 0x10b + tl0_reserved 4 ! 0x10c-0x10f tl0_gen T_TRAP_INSTRUCTION_16 ! 0x110 tl0_gen T_TRAP_INSTRUCTION_17 ! 0x111 tl0_gen T_TRAP_INSTRUCTION_18 ! 0x112 @@ -1355,6 +1381,8 @@ ! %g1 pc of trap handler ! %g2, %g3 args of trap handler + ! %g2 software trap type + ! %g3 additional argument to trap ! %g4 desired pil ! %g5, %g6 temps ! %g7 saved @@ -1380,6 +1408,37 @@ bnz,pn %xcc, tl0_ktrap nop ENTRY(tl0_utrap) + GET_PCPU_SCRATCH + + cmp %g2, UT_MAX + bge,a,pn %xcc, skip_utrap + nop + + ldx [PCPU(CURTHREAD)], %g5 + ldx [%g5 + TD_PROC], %g5 + ldx [%g5 + P_MD + MD_UTRAP], %g5 + brz,pn %g5, skip_utrap + sllx %g2, PTR_SHIFT, %g6 + ldx [%g5 + %g6], %g5 + brz,pn %g5, skip_utrap + nop + + mov %g5, %g4 + + ! 0) save trap state to memory + ldx [PCPU_REG + PC_CURPCB], %g6 + rdpr %tstate, %g5 + stx %g5, [%g6 + PCB_PAD] + rdpr %tpc, %g5 + stx %g5, [%g6 + PCB_PAD + 8] + rdpr %tnpc, %g5 + stx %g5, [%g6 + PCB_PAD + 16] + stx %g2, [%g6 + PCB_PAD + 24] + + wrpr %g4, %tnpc + done +skip_utrap: + #ifdef notyet /* we need to determine from the hardware the number of register windows */ sethi %hi(nwin_minus_one), %g5 @@ -1387,29 +1446,12 @@ #else mov nwin_minus_one, %g5 #endif - GET_PCB(%g6) + ldx [PCPU_REG + PC_CURPCB], %g6 wrpr %g0, %g5, %cleanwin ldx [%g6 + PCB_KSTACK], %g6 sub %g6, TF_SIZEOF, %g6 -#ifdef DEBUG_KSTACK - mov %o0, %g5 - mov %o3, %l0 - mov %o4, %l1 - mov %o5, %l2 - mov %o6, %l3 - mov %o7, %l4 - mov 0x10, %o0 - mov %g6, %o1 - ta TTRACE_ADDENTRY - mov %g5, %o0 - mov %l0, %o3 - mov %l1, %o4 - mov %l2, %o5 - mov %l3, %o6 - mov %l4, %o7 -#endif + save %g6, 0, %sp - rdpr %canrestore, %l0 rdpr %wstate, %l1 wrpr %g0, 0, %canrestore @@ -1456,21 +1498,25 @@ ! brlz,pt %g4, 1f nop +#if 0 #ifdef PMAP_DEBUG rdpr %pil, %l0 cmp %g4, %l0 - bge,pt %xcc, 0f + bge,pt %xcc, 10f nop call panic -0: +10: +#endif #endif - wrpr %g0, %g4, %pil 1: wrpr %g0, %g6, %tnpc + + ! save g7 before it can be overwritten by PCPU when returning from an interrupt wrpr %g0, 0, %gl - stx %g7, [%l7 + TF_G7] ! save g7 before it can be overwritten by PCPU when returning from an interrupt + stx %g7, [%l7 + TF_G7] wrpr %g0, 1, %gl + rdpr %cwp, %l0 set TSTATE_KERNEL, %l1 wrpr %l1, %l0, %tstate @@ -1722,7 +1768,11 @@ RESTORE_TRAPWIN(PCPU_REG, %g1, 14, 15) - mov %g3, %g2 ! trap type + ! convert hardware trap type to kernel trap type + set trap_conversion, %g2 + sllx %g3, INT_SHIFT, %g3 + ld [%g2 + %g3], %g2 + sethi %hi(trap), %g1 or %g6, %g5, %g3 ! trap data sub %g0, 1, %g4 ! pil info @@ -1732,13 +1782,13 @@ tsb_miss_found: wr %g0, %l3, %asi - cmp %g3, T_DATA_MISS ! TSB data miss + cmp %g3, TT_DATA_MISS ! TSB data miss be,pt %xcc, 9f or %l7, VTD_REF, %l7 ! set referenced unconditionally - cmp %g3, T_INSTRUCTION_MISS ! TSB instruction miss + cmp %g3, TT_INSTRUCTION_MISS ! TSB instruction miss be,pt %xcc, 9f nop - cmp %g3, T_DATA_PROTECTION ! protection fault + cmp %g3, TT_DATA_PROTECTION ! protection fault bne,pn %xcc, unsupported_fault_trap ! we don't handle any other fault types currently nop andcc %l7, VTD_SW_W, %g0 ! write enabled? @@ -1798,7 +1848,7 @@ RESTORE_TRAPWIN(PCPU_REG, %g1, 13, 16) upgrade_demap: rdpr %tt, %g3 - cmp %g3, T_DATA_PROTECTION + cmp %g3, TT_DATA_PROTECTION beq,pn %xcc, demap_begin nop retry ==== //depot/projects/dtrace/src/sys/sun4v/sun4v/trap.c#12 (text+ko) ==== @@ -37,7 +37,7 @@ * * from: @(#)trap.c 7.4 (Berkeley) 5/13/91 * from: FreeBSD: src/sys/i386/i386/trap.c,v 1.197 2001/07/19 - * $FreeBSD: src/sys/sun4v/sun4v/trap.c,v 1.2 2006/10/17 03:53:38 jb Exp $ + * $FreeBSD: src/sys/sun4v/sun4v/trap.c,v 1.3 2006/11/03 23:41:53 kmacy Exp $ */ #include "opt_ddb.h" @@ -132,7 +132,7 @@ extern char *syscallnames[]; -static int trap_conversion[256]; +int trap_conversion[256]; const char *trap_msg[] = { "reserved", @@ -226,8 +226,7 @@ SIGILL, /* trap instruction 29 */ SIGILL, /* trap instruction 30 */ SIGILL, /* trap instruction 31 */ - SIGSEGV, /* floating point not implemented */ - /* should be SIGFPE but other signals currently cause problems */ + SIGFPE, /* floating point error */ SIGSEGV, /* fast data access mmu miss */ -1, /* interrupt */ -1, /* physical address watchpoint */ @@ -255,6 +254,7 @@ &debugger_on_signal, 0, ""); #endif + void trap_init(void) { @@ -267,15 +267,20 @@ init_mondo_queue(); OF_set_mmfsa_traptable(&tl0_base, mmfsa); - for (i = 0; i < 128; i++) - trap_conversion[i] = i; - for (i = 128; i < 256; i++) + for (i = 0; i < 256; i++) trap_conversion[i] = 0; - trap_conversion[0x31] = 35; >>> TRUNCATED FOR MAIL (1000 lines) <<<
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200611032358.kA3NwAOs028186>