Date: Mon, 29 Sep 2008 10:16:46 GMT From: Ed Schouten <ed@FreeBSD.org> To: Perforce Change Reviews <perforce@FreeBSD.org> Subject: PERFORCE change 150646 for review Message-ID: <200809291016.m8TAGken061722@repoman.freebsd.org>
next in thread | raw e-mail | index | archive | help
http://perforce.freebsd.org/chv.cgi?CH=150646 Change 150646 by ed@ed_dull on 2008/09/29 10:16:25 IFC. Affected files ... .. //depot/projects/mpsafetty/ObsoleteFiles.inc#14 integrate .. //depot/projects/mpsafetty/bin/pkill/pkill.1#2 integrate .. //depot/projects/mpsafetty/bin/pkill/pkill.c#2 integrate .. //depot/projects/mpsafetty/gnu/lib/csu/Makefile#3 integrate .. //depot/projects/mpsafetty/gnu/usr.bin/gdb/kgdb/trgt_i386.c#2 integrate .. //depot/projects/mpsafetty/sbin/ipfw/ipfw.8#5 integrate .. //depot/projects/mpsafetty/sbin/ipfw/ipfw2.c#5 integrate .. //depot/projects/mpsafetty/sbin/setkey/setkey.8#2 integrate .. //depot/projects/mpsafetty/share/examples/drivers/make_pseudo_driver.sh#3 integrate .. //depot/projects/mpsafetty/share/man/man3/Makefile#2 integrate .. //depot/projects/mpsafetty/share/man/man3/makedev.3#1 branch .. //depot/projects/mpsafetty/share/man/man9/Makefile#8 integrate .. //depot/projects/mpsafetty/share/man/man9/device_ids.9#2 delete .. //depot/projects/mpsafetty/share/man/man9/make_dev.9#4 integrate .. //depot/projects/mpsafetty/share/man/man9/spl.9#2 integrate .. //depot/projects/mpsafetty/sys/amd64/amd64/mp_machdep.c#4 integrate .. //depot/projects/mpsafetty/sys/amd64/include/smp.h#2 integrate .. //depot/projects/mpsafetty/sys/arm/arm/pmap.c#2 integrate .. //depot/projects/mpsafetty/sys/arm/at91/at91_mci.c#3 integrate .. //depot/projects/mpsafetty/sys/cddl/contrib/opensolaris/uts/common/dtrace/dtrace.c#4 integrate .. //depot/projects/mpsafetty/sys/conf/files.powerpc#3 integrate .. //depot/projects/mpsafetty/sys/conf/files.sparc64#5 integrate .. //depot/projects/mpsafetty/sys/conf/options.sparc64#4 integrate .. //depot/projects/mpsafetty/sys/dev/cfe/cfe_console.c#2 integrate .. //depot/projects/mpsafetty/sys/dev/mmc/mmc.c#2 integrate .. //depot/projects/mpsafetty/sys/dev/mmc/mmcbrvar.h#2 integrate .. //depot/projects/mpsafetty/sys/dev/mmc/mmcreg.h#2 integrate .. //depot/projects/mpsafetty/sys/dev/mmc/mmcsd.c#2 integrate .. //depot/projects/mpsafetty/sys/dev/mmc/mmcvar.h#2 integrate .. //depot/projects/mpsafetty/sys/geom/part/g_part.c#4 integrate .. //depot/projects/mpsafetty/sys/geom/part/g_part_bsd.c#2 integrate .. //depot/projects/mpsafetty/sys/geom/part/g_part_pc98.c#2 integrate .. //depot/projects/mpsafetty/sys/i386/i386/db_trace.c#2 integrate .. //depot/projects/mpsafetty/sys/i386/i386/mp_machdep.c#3 integrate .. //depot/projects/mpsafetty/sys/i386/include/smp.h#3 integrate .. //depot/projects/mpsafetty/sys/i386/xen/mp_machdep.c#4 integrate .. //depot/projects/mpsafetty/sys/ia64/ia64/interrupt.c#2 integrate .. //depot/projects/mpsafetty/sys/ia64/ia64/mp_machdep.c#2 integrate .. //depot/projects/mpsafetty/sys/ia64/ia64/sal.c#3 integrate .. //depot/projects/mpsafetty/sys/ia64/include/smp.h#2 integrate .. //depot/projects/mpsafetty/sys/kern/kern_conf.c#8 integrate .. //depot/projects/mpsafetty/sys/kern/kern_shutdown.c#2 integrate .. //depot/projects/mpsafetty/sys/mips/adm5120/if_admsw.c#3 integrate .. //depot/projects/mpsafetty/sys/mips/include/param.h#2 integrate .. //depot/projects/mpsafetty/sys/mips/include/smp.h#2 integrate .. //depot/projects/mpsafetty/sys/mips/mips/mp_machdep.c#3 integrate .. //depot/projects/mpsafetty/sys/mips/mips/pmap.c#2 integrate .. //depot/projects/mpsafetty/sys/mips/mips/trap.c#2 integrate .. //depot/projects/mpsafetty/sys/net80211/ieee80211_scan_sta.c#2 integrate .. //depot/projects/mpsafetty/sys/netinet/ip_fw2.c#9 integrate .. //depot/projects/mpsafetty/sys/powerpc/include/dbdma.h#3 integrate .. //depot/projects/mpsafetty/sys/powerpc/include/smp.h#3 integrate .. //depot/projects/mpsafetty/sys/powerpc/powermac/ata_dbdma.c#1 branch .. //depot/projects/mpsafetty/sys/powerpc/powermac/ata_dbdma.h#1 branch .. //depot/projects/mpsafetty/sys/powerpc/powermac/ata_kauai.c#2 integrate .. //depot/projects/mpsafetty/sys/powerpc/powermac/ata_macio.c#2 integrate .. //depot/projects/mpsafetty/sys/powerpc/powermac/dbdma.c#3 integrate .. //depot/projects/mpsafetty/sys/powerpc/powerpc/cpu.c#4 integrate .. //depot/projects/mpsafetty/sys/powerpc/powerpc/intr_machdep.c#2 integrate .. //depot/projects/mpsafetty/sys/powerpc/powerpc/mp_machdep.c#3 integrate .. //depot/projects/mpsafetty/sys/sparc64/pci/schizo.c#1 branch .. //depot/projects/mpsafetty/sys/sparc64/pci/schizoreg.h#1 branch .. //depot/projects/mpsafetty/sys/sparc64/pci/schizovar.h#1 branch .. //depot/projects/mpsafetty/sys/sun4v/include/smp.h#2 integrate .. //depot/projects/mpsafetty/sys/sys/pmc.h#2 integrate .. //depot/projects/mpsafetty/sys/sys/systm.h#3 integrate .. //depot/projects/mpsafetty/sys/sys/types.h#3 integrate .. //depot/projects/mpsafetty/usr.sbin/Makefile#9 integrate Differences ... ==== //depot/projects/mpsafetty/ObsoleteFiles.inc#14 (text+ko) ==== @@ -1,5 +1,5 @@ # -# $FreeBSD: src/ObsoleteFiles.inc,v 1.162 2008/09/21 16:11:11 antoine Exp $ +# $FreeBSD: src/ObsoleteFiles.inc,v 1.163 2008/09/28 20:15:45 ed Exp $ # # This file lists old files (OLD_FILES), libraries (OLD_LIBS) and # directories (OLD_DIRS) which should get removed at an update. Recently @@ -14,6 +14,12 @@ # The file is partitioned: OLD_FILES first, then OLD_LIBS and OLD_DIRS last. # +# 20080928: removal of inaccurate device_ids(9) manual page +OLD_FILES+=usr/share/man/man9/device_ids.9.gz +OLD_FILES+=usr/share/man/man9/major.9.gz +OLD_FILES+=usr/share/man/man9/minor.9.gz +OLD_FILES+=usr/share/man/man9/umajor.9.gz +OLD_FILES+=usr/share/man/man9/uminor.9.gz # 20080917: removal of manpage for axed kernel primitive suser(9) OLD_FILES+=usr/share/man/man9/suser.9.gz OLD_FILES+=usr/share/man/man9/suser_cred.9.gz ==== //depot/projects/mpsafetty/bin/pkill/pkill.1#2 (text+ko) ==== @@ -1,6 +1,6 @@ .\" $NetBSD: pkill.1,v 1.8 2003/02/14 15:59:18 grant Exp $ .\" -.\" $FreeBSD: src/bin/pkill/pkill.1,v 1.1 2008/08/31 14:27:59 yar Exp $ +.\" $FreeBSD: src/bin/pkill/pkill.1,v 1.2 2008/09/28 16:44:15 ed Exp $ .\" .\" Copyright (c) 2002 The NetBSD Foundation, Inc. .\" All rights reserved. @@ -179,10 +179,9 @@ Restrict matches to processes associated with a terminal in the comma-separated list .Ar tty . -Terminal names may be of the form -.Pa tty Ns Ar xx -or the shortened form -.Ar xx . +The +.Pa /dev/ +prefix of the terminal names must be omitted. A single dash .Pq Ql - matches processes not associated with a terminal. ==== //depot/projects/mpsafetty/bin/pkill/pkill.c#2 (text+ko) ==== @@ -38,7 +38,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/bin/pkill/pkill.c,v 1.1 2008/08/31 14:27:59 yar Exp $"); +__FBSDID("$FreeBSD: src/bin/pkill/pkill.c,v 1.2 2008/09/28 16:44:15 ed Exp $"); #include <sys/types.h> #include <sys/param.h> @@ -607,12 +607,11 @@ struct passwd *pw; struct group *gr; struct stat st; - const char *cp, *prefix; + const char *cp; char *sp, *ep, buf[MAXPATHLEN]; int empty; empty = 1; - prefix = _PATH_DEV; while ((sp = strsep(&src, ",")) != NULL) { if (*sp == '\0') @@ -673,11 +672,9 @@ cp = "console"; } else { cp = sp; - if (strncmp(sp, "tty", 3) != 0) - prefix = _PATH_TTY; } - snprintf(buf, sizeof(buf), "%s%s", prefix, cp); + snprintf(buf, sizeof(buf), _PATH_DEV "%s", cp); if (stat(buf, &st) == -1) { if (errno == ENOENT) { ==== //depot/projects/mpsafetty/gnu/lib/csu/Makefile#3 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/gnu/lib/csu/Makefile,v 1.30 2008/09/26 15:00:18 marcel Exp $ +# $FreeBSD: src/gnu/lib/csu/Makefile,v 1.31 2008/09/28 19:17:54 marcel Exp $ GCCDIR= ${.CURDIR}/../../../contrib/gcc GCCLIB= ${.CURDIR}/../../../contrib/gcclibs @@ -25,7 +25,7 @@ BEGINSRC= crtbegin.asm ENDSRC= crtend.asm CFLAGS+= -x assembler-with-cpp # Ugly hack -CFLAGS+= -D_OSRELDATE_H -include osreldate.h +CFLAGS+= -include osreldate.h .undef SRCS # hack for 'make depend' .endif .if ${MACHINE_ARCH} == "powerpc" ==== //depot/projects/mpsafetty/gnu/usr.bin/gdb/kgdb/trgt_i386.c#2 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/gnu/usr.bin/gdb/kgdb/trgt_i386.c,v 1.12 2008/05/09 19:00:40 jhb Exp $"); +__FBSDID("$FreeBSD: src/gnu/usr.bin/gdb/kgdb/trgt_i386.c,v 1.13 2008/09/27 15:58:37 kib Exp $"); #include <sys/param.h> #include <sys/proc.h> @@ -242,10 +242,14 @@ }; struct kgdb_frame_cache { - int intrframe; + int frame_type; CORE_ADDR pc; CORE_ADDR sp; }; +#define FT_NORMAL 1 +#define FT_INTRFRAME 2 +#define FT_INTRTRAPFRAME 3 +#define FT_TIMERFRAME 4 static int kgdb_trgt_frame_offset[15] = { offsetof(struct trapframe, tf_eax), @@ -278,7 +282,17 @@ *this_cache = cache; cache->pc = frame_func_unwind(next_frame); find_pc_partial_function(cache->pc, &pname, NULL, NULL); - cache->intrframe = (pname[0] == 'X') ? 1 : 0; + if (pname[0] != 'X') + cache->frame_type = FT_NORMAL; + else if (strcmp(pname, "Xtimerint") == 0) + cache->frame_type = FT_TIMERFRAME; + else if (strcmp(pname, "Xcpustop") == 0 || + strcmp(pname, "Xrendezvous") == 0 || + strcmp(pname, "Xipi_intr_bitmap_handler") == 0 || + strcmp(pname, "Xlazypmap") == 0) + cache->frame_type = FT_INTRTRAPFRAME; + else + cache->frame_type = FT_INTRFRAME; frame_unwind_register(next_frame, SP_REGNUM, buf); cache->sp = extract_unsigned_integer(buf, register_size(current_gdbarch, SP_REGNUM)); @@ -321,7 +335,23 @@ return; cache = kgdb_trgt_frame_cache(next_frame, this_cache); - *addrp = cache->sp + ofs + (cache->intrframe ? 4 : 0); + switch (cache->frame_type) { + case FT_NORMAL: + break; + case FT_INTRFRAME: + ofs += 4; + break; + case FT_TIMERFRAME: + break; + case FT_INTRTRAPFRAME: + ofs -= ofs_fix; + break; + default: + fprintf_unfiltered(gdb_stderr, "Correct FT_XXX frame offsets " + "for %d\n", cache->frame_type); + break; + } + *addrp = cache->sp + ofs; *lvalp = lval_memory; target_read_memory(*addrp, valuep, regsz); } ==== //depot/projects/mpsafetty/sbin/ipfw/ipfw.8#5 (text+ko) ==== @@ -1,7 +1,7 @@ .\" -.\" $FreeBSD: src/sbin/ipfw/ipfw.8,v 1.216 2008/08/27 15:30:09 ivoras Exp $ +.\" $FreeBSD: src/sbin/ipfw/ipfw.8,v 1.217 2008/09/27 15:09:00 rik Exp $ .\" -.Dd November 26, 2007 +.Dd September 27, 2008 .Dt IPFW 8 .Os .Sh NAME @@ -49,9 +49,13 @@ .Nm .Cm table Ar number Cm delete Ar addr Ns Op / Ns Ar masklen .Nm -.Cm table Ar number Cm flush +.Cm table +.Brq Ar number | all +.Cm flush .Nm -.Cm table Ar number Cm list +.Cm table +.Brq Ar number | all +.Cm list .Pp .Nm .Brq Cm pipe | queue @@ -2242,6 +2246,11 @@ .It Va net.inet.ip.fw.debug : No 1 Controls debugging messages produced by .Nm . +.It Va net.inet.ip.fw.default_rule : No 65535 +The default rule number (read-only). +By the design of +.Nm , the default rule is the last one, so its number +can also serve as the highest number allowed for a rule. .It Va net.inet.ip.fw.dyn_buckets : No 256 The number of buckets in the hash table for dynamic rules. Must be a power of 2, up to 65536. @@ -2295,6 +2304,8 @@ node is not passed though the firewall again. Otherwise, after an action, the packet is reinjected into the firewall at the next rule. +.It Va net.inet.ip.fw.tables_max : No 128 +Maximum number of tables (read-only). .It Va net.inet.ip.fw.verbose : No 1 Enables verbose messages. .It Va net.inet.ip.fw.verbose_limit : No 0 ==== //depot/projects/mpsafetty/sbin/ipfw/ipfw2.c#5 (text+ko) ==== @@ -17,7 +17,7 @@ * * NEW command line interface for IP firewall facility * - * $FreeBSD: src/sbin/ipfw/ipfw2.c,v 1.128 2008/09/22 04:12:27 keramida Exp $ + * $FreeBSD: src/sbin/ipfw/ipfw2.c,v 1.130 2008/09/27 15:58:54 rik Exp $ */ #include <sys/param.h> @@ -2721,6 +2721,7 @@ "set [disable N... enable N...] | move [rule] X to Y | swap X Y | show\n" "set N {show|list|zero|resetlog|delete} [N{,N}] | flush\n" "table N {add ip[/bits] [value] | delete ip[/bits] | flush | list}\n" +"table all {flush | list}\n" "\n" "RULE-BODY: check-state [PARAMS] | ACTION [PARAMS] ADDR [OPTION_LIST]\n" "ACTION: check-state | allow | count | deny | unreach{,6} CODE |\n" @@ -5856,22 +5857,24 @@ free(av); } -static void table_list(ipfw_table_entry ent); +static void table_list(ipfw_table_entry ent, int need_header); /* * This one handles all table-related commands * ipfw table N add addr[/masklen] [value] * ipfw table N delete addr[/masklen] - * ipfw table N flush - * ipfw table N list + * ipfw table {N | all} flush + * ipfw table {N | all} list */ static void table_handler(int ac, char *av[]) { ipfw_table_entry ent; int do_add; + int is_all; size_t len; char *p; + uint32_t a; uint32_t tables_max; len = sizeof(tables_max); @@ -5889,13 +5892,22 @@ ac--; av++; if (ac && isdigit(**av)) { ent.tbl = atoi(*av); + is_all = 0; + ac--; av++; + } else if (ac && _substrcmp(*av, "all") == 0) { + ent.tbl = 0; + is_all = 1; ac--; av++; } else - errx(EX_USAGE, "table number required"); + errx(EX_USAGE, "table number or 'all' keyword required"); if (ent.tbl >= tables_max) errx(EX_USAGE, "The table number exceeds the maximum allowed " "value (%d)", tables_max - 1); NEED1("table needs command"); + if (is_all && _substrcmp(*av, "list") != 0 + && _substrcmp(*av, "flush") != 0) + errx(EX_USAGE, "table number required"); + if (_substrcmp(*av, "add") == 0 || _substrcmp(*av, "delete") == 0) { do_add = **av == 'a'; @@ -5945,16 +5957,23 @@ } } } else if (_substrcmp(*av, "flush") == 0) { - if (do_cmd(IP_FW_TABLE_FLUSH, &ent.tbl, sizeof(ent.tbl)) < 0) - err(EX_OSERR, "setsockopt(IP_FW_TABLE_FLUSH)"); + a = is_all ? tables_max : (ent.tbl + 1); + do { + if (do_cmd(IP_FW_TABLE_FLUSH, &ent.tbl, + sizeof(ent.tbl)) < 0) + err(EX_OSERR, "setsockopt(IP_FW_TABLE_FLUSH)"); + } while (++ent.tbl < a); } else if (_substrcmp(*av, "list") == 0) { - table_list(ent); + a = is_all ? tables_max : (ent.tbl + 1); + do { + table_list(ent, is_all); + } while (++ent.tbl < a); } else errx(EX_USAGE, "invalid table command %s", *av); } static void -table_list(ipfw_table_entry ent) +table_list(ipfw_table_entry ent, int need_header) { ipfw_table *tbl; socklen_t l; @@ -5976,6 +5995,8 @@ tbl->tbl = ent.tbl; if (do_cmd(IP_FW_TABLE_LIST, tbl, (uintptr_t)&l) < 0) err(EX_OSERR, "getsockopt(IP_FW_TABLE_LIST)"); + if (tbl->cnt && need_header) + printf("---table(%d)---\n", tbl->tbl); for (a = 0; a < tbl->cnt; a++) { unsigned int tval; tval = tbl->ent[a].value; ==== //depot/projects/mpsafetty/sbin/setkey/setkey.8#2 (text+ko) ==== @@ -27,7 +27,7 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.\" $FreeBSD: src/sbin/setkey/setkey.8,v 1.38 2007/05/09 19:37:00 gnn Exp $ +.\" $FreeBSD: src/sbin/setkey/setkey.8,v 1.39 2008/09/29 05:31:27 maxim Exp $ .\" .Dd May 13, 2006 .Dt SETKEY 8 @@ -475,7 +475,7 @@ .Li ah , .Li esp or -.Li ipcomp +.Li ipcomp . The .Ar mode is either ==== //depot/projects/mpsafetty/share/examples/drivers/make_pseudo_driver.sh#3 (text+ko) ==== @@ -6,7 +6,7 @@ # # Trust me, RUN THIS SCRIPT :) # -# $FreeBSD: src/share/examples/drivers/make_pseudo_driver.sh,v 1.14 2008/09/22 16:10:12 ed Exp $ +# $FreeBSD: src/share/examples/drivers/make_pseudo_driver.sh,v 1.15 2008/09/27 16:52:57 ed Exp $ # #-------cut here------------------ @@ -168,7 +168,7 @@ * device specific Misc defines */ #define BUFFERSIZE 1024 -#define UNIT(dev) minor(dev) /* assume one minor number per unit */ +#define UNIT(dev) dev2unit(dev) /* assume one minor number per unit */ /* * One of these per allocated device ==== //depot/projects/mpsafetty/share/man/man3/Makefile#2 (text+ko) ==== @@ -1,5 +1,5 @@ # @(#)Makefile 8.2 (Berkeley) 12/13/93 -# $FreeBSD: src/share/man/man3/Makefile,v 1.48 2008/05/22 14:40:03 ed Exp $ +# $FreeBSD: src/share/man/man3/Makefile,v 1.49 2008/09/28 20:15:45 ed Exp $ .include <bsd.own.mk> @@ -8,6 +8,7 @@ end.3 \ fpgetround.3 \ intro.3 \ + makedev.3 \ ${PTHREAD_MAN} \ queue.3 \ siginfo.3 \ @@ -36,6 +37,8 @@ fpgetround.3 fpsetmask.3 \ fpgetround.3 fpsetprec.3 \ fpgetround.3 fpsetround.3 +MLINKS+= makedev.3 major.3 \ + makedev.3 minor.3 MLINKS+= ${PTHREAD_MLINKS} MLINKS+= queue.3 LIST_EMPTY.3 \ queue.3 LIST_ENTRY.3 \ ==== //depot/projects/mpsafetty/share/man/man9/Makefile#8 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/share/man/man9/Makefile,v 1.341 2008/09/17 15:49:44 attilio Exp $ +# $FreeBSD: src/share/man/man9/Makefile,v 1.342 2008/09/28 20:15:45 ed Exp $ MAN= accept_filter.9 \ accf_data.9 \ @@ -82,7 +82,6 @@ device_get_sysctl.9 \ device_get_unit.9 \ DEVICE_IDENTIFY.9 \ - device_ids.9 \ device_printf.9 \ DEVICE_PROBE.9 \ device_probe_and_attach.9 \ @@ -570,10 +569,6 @@ device_get_state.9 device_unbusy.9 MLINKS+=device_get_sysctl.9 device_get_sysctl_ctx.9 \ device_get_sysctl.9 device_get_sysctl_tree.9 -MLINKS+=device_ids.9 major.9 \ - device_ids.9 minor.9 \ - device_ids.9 umajor.9 \ - device_ids.9 uminor.9 MLINKS+=device_quiet.9 device_is_quiet.9 \ device_quiet.9 device_verbose.9 MLINKS+=device_set_desc.9 device_get_desc.9 \ ==== //depot/projects/mpsafetty/share/man/man9/make_dev.9#4 (text+ko) ==== @@ -22,9 +22,9 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.\" $FreeBSD: src/share/man/man9/make_dev.9,v 1.25 2008/09/26 14:31:24 ed Exp $ +.\" $FreeBSD: src/share/man/man9/make_dev.9,v 1.26 2008/09/28 20:15:45 ed Exp $ .\" -.Dd September 8, 2008 +.Dd September 28, 2008 .Os .Dt MAKE_DEV 9 .Sh NAME @@ -186,7 +186,9 @@ These are designed to replace the .Fa unit argument to -.Fn make_dev . +.Fn make_dev , +which can be obtained with +.Fn dev2unit . .Pp The .Fn destroy_dev ==== //depot/projects/mpsafetty/share/man/man9/spl.9#2 (text+ko) ==== @@ -23,7 +23,7 @@ .\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF .\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. .\" -.\" $FreeBSD: src/share/man/man9/spl.9,v 1.20 2005/06/28 20:15:18 hmp Exp $ +.\" $FreeBSD: src/share/man/man9/spl.9,v 1.21 2008/09/28 03:45:16 imp Exp $ .\" .Dd July 21, 1996 .Os @@ -74,6 +74,15 @@ See .Xr mutex 9 for more information. +The API is now a complete NOP. +This man page documents historical behavior so you can understand the +code locking that the spl did when converting code from versions of the +kernel prior to +.Fx 5.0 . +The examples in this man page are also obsolete and should not be viewed +as documenting +.Fx 5.0 +and newer. .Ef .Pp The @@ -211,6 +220,9 @@ the system. The historical number scheme can be considered as a simple linearly ordered set of interrupt priority groups. +.Pp +.Fx 5.0 eliminated spl entirely in favor of locking primitives which scale +to more than one processor. .Sh AUTHORS This manual page was written by .An J\(:org Wunsch . ==== //depot/projects/mpsafetty/sys/amd64/amd64/mp_machdep.c#4 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/amd64/amd64/mp_machdep.c,v 1.293 2008/09/08 09:59:05 kib Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/mp_machdep.c,v 1.294 2008/09/28 18:34:14 marius Exp $"); #include "opt_cpu.h" #include "opt_kstack_pages.h" @@ -1013,21 +1013,6 @@ } /* - * send an IPI INTerrupt containing 'vector' to all CPUs, including myself - */ -void -ipi_all(u_int ipi) -{ - - if (IPI_IS_BITMAPED(ipi) || (ipi == IPI_STOP && stop_cpus_with_nmi)) { - ipi_selected(all_cpus, ipi); - return; - } - CTR2(KTR_SMP, "%s: ipi: %x", __func__, ipi); - lapic_ipi_vectored(ipi, APIC_IPI_DEST_ALL); -} - -/* * send an IPI to all CPUs EXCEPT myself */ void @@ -1042,21 +1027,6 @@ lapic_ipi_vectored(ipi, APIC_IPI_DEST_OTHERS); } -/* - * send an IPI to myself - */ -void -ipi_self(u_int ipi) -{ - - if (IPI_IS_BITMAPED(ipi) || (ipi == IPI_STOP && stop_cpus_with_nmi)) { - ipi_selected(PCPU_GET(cpumask), ipi); - return; - } - CTR2(KTR_SMP, "%s: ipi: %x", __func__, ipi); - lapic_ipi_vectored(ipi, APIC_IPI_DEST_SELF); -} - #ifdef STOP_NMI /* * send NMI IPI to selected CPUs ==== //depot/projects/mpsafetty/sys/amd64/include/smp.h#2 (text+ko) ==== @@ -6,7 +6,7 @@ * this stuff is worth it, you can buy me a beer in return. Poul-Henning Kamp * ---------------------------------------------------------------------------- * - * $FreeBSD: src/sys/amd64/include/smp.h,v 1.92 2008/03/02 07:58:40 jeff Exp $ + * $FreeBSD: src/sys/amd64/include/smp.h,v 1.93 2008/09/28 18:34:14 marius Exp $ * */ @@ -55,9 +55,7 @@ void cpustop_handler(void); void init_secondary(void); void ipi_selected(u_int cpus, u_int ipi); -void ipi_all(u_int ipi); void ipi_all_but_self(u_int ipi); -void ipi_self(u_int ipi); void ipi_bitmap_handler(struct trapframe frame); u_int mp_bootaddress(u_int); int mp_grab_cpu_hlt(void); ==== //depot/projects/mpsafetty/sys/arm/arm/pmap.c#2 (text+ko) ==== @@ -147,7 +147,7 @@ #include "opt_vm.h" #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/arm/arm/pmap.c,v 1.101 2008/05/18 04:16:55 alc Exp $"); +__FBSDID("$FreeBSD: src/sys/arm/arm/pmap.c,v 1.102 2008/09/28 05:36:25 imp Exp $"); #include <sys/param.h> #include <sys/systm.h> #include <sys/kernel.h> @@ -2592,7 +2592,6 @@ cpu_tlb_flushD(); cpu_cpwait(); kernel_vm_end = pmap_curmaxkvaddr; - } ==== //depot/projects/mpsafetty/sys/arm/at91/at91_mci.c#3 (text+ko) ==== @@ -24,7 +24,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/arm/at91/at91_mci.c,v 1.5 2008/09/05 22:30:59 imp Exp $"); +__FBSDID("$FreeBSD: src/sys/arm/at91/at91_mci.c,v 1.6 2008/09/28 23:37:56 imp Exp $"); #include <sys/param.h> #include <sys/systm.h> @@ -642,6 +642,9 @@ case MMCBR_IVAR_VDD: *(int *)result = sc->host.ios.vdd; break; + case MMCBR_IVAR_CAPS: + *(int *)result = sc->host.ios.caps; + break; } return (0); } @@ -678,9 +681,11 @@ case MMCBR_IVAR_VDD: sc->host.ios.vdd = value; break; + /* These are read-only */ case MMCBR_IVAR_HOST_OCR: case MMCBR_IVAR_F_MIN: case MMCBR_IVAR_F_MAX: + case MMCBR_IVAR_CAPS: return (EINVAL); } return (0); ==== //depot/projects/mpsafetty/sys/cddl/contrib/opensolaris/uts/common/dtrace/dtrace.c#4 (text+ko) ==== @@ -18,7 +18,7 @@ * * CDDL HEADER END * - * $FreeBSD: src/sys/cddl/contrib/opensolaris/uts/common/dtrace/dtrace.c,v 1.7 2008/09/27 08:51:18 ed Exp $ + * $FreeBSD: src/sys/cddl/contrib/opensolaris/uts/common/dtrace/dtrace.c,v 1.8 2008/09/27 17:52:48 jb Exp $ */ /* @@ -12815,7 +12815,11 @@ state = ddi_get_soft_state(dtrace_softstate, minor); #else if (dev != NULL) { - cr = dev->si_cred; + /* + * Disable this until we have the ability to set user + * credentials for DTrace. + * cr = dev->si_cred; + */ m = dev2unit(dev); } ==== //depot/projects/mpsafetty/sys/conf/files.powerpc#3 (text+ko) ==== @@ -1,7 +1,7 @@ # This file tells config what files go into building a kernel, # files marked standard are always included. # -# $FreeBSD: src/sys/conf/files.powerpc,v 1.80 2008/08/26 10:41:49 raj Exp $ +# $FreeBSD: src/sys/conf/files.powerpc,v 1.81 2008/09/27 15:13:44 nwhitehorn Exp $ # # The long compile-with and dependency lines are required because of # limitations in config: backslash-newline doesn't work in strings, and @@ -109,6 +109,7 @@ powerpc/ofw/ofw_syscons.c optional sc aim powerpc/powermac/ata_kauai.c optional powermac ata powerpc/powermac/ata_macio.c optional powermac ata +powerpc/powermac/ata_dbdma.c optional powermac ata powerpc/powermac/dbdma.c optional powermac pci powerpc/powermac/grackle.c optional powermac pci powerpc/powermac/hrowpic.c optional powermac pci ==== //depot/projects/mpsafetty/sys/conf/files.sparc64#5 (text+ko) ==== @@ -1,7 +1,7 @@ # This file tells config what files go into building a kernel, # files marked standard are always included. # -# $FreeBSD: src/sys/conf/files.sparc64,v 1.99 2008/09/20 11:34:18 marius Exp $ +# $FreeBSD: src/sys/conf/files.sparc64,v 1.100 2008/09/28 00:07:05 marius Exp $ # # The long compile-with and dependency lines are required because of # limitations in config: backslash-newline doesn't work in strings, and @@ -84,6 +84,7 @@ sparc64/pci/ofw_pcib_subr.c optional pci sparc64/pci/ofw_pcibus.c optional pci sparc64/pci/psycho.c optional pci +sparc64/pci/schizo.c optional pci sparc64/sbus/dma_sbus.c optional sbus sparc64/sbus/sbus.c optional sbus sparc64/sbus/lsi64854.c optional sbus ==== //depot/projects/mpsafetty/sys/conf/options.sparc64#4 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/sys/conf/options.sparc64,v 1.17 2008/09/20 11:46:07 marius Exp $ +# $FreeBSD: src/sys/conf/options.sparc64,v 1.18 2008/09/28 00:07:05 marius Exp $ GFB_DEBUG opt_gfb.h GFB_NO_FONT_LOADING opt_gfb.h @@ -24,5 +24,7 @@ DEBUGGER_ON_POWERFAIL opt_psycho.h PSYCHO_DEBUG opt_psycho.h +SCHIZO_DEBUG opt_schizo.h + SUNKBD_DFLT_KEYMAP opt_sunkbd.h SUNKBD_EMULATE_ATKBD opt_sunkbd.h ==== //depot/projects/mpsafetty/sys/dev/cfe/cfe_console.c#2 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/dev/cfe/cfe_console.c,v 1.3 2008/09/26 05:37:54 imp Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/cfe/cfe_console.c,v 1.4 2008/09/28 03:33:01 imp Exp $"); #include "opt_comconsole.h" @@ -126,7 +126,7 @@ if (len == 0) break; while (cfe_write(conhandle, buf, len) == 0) - ; + continue; } } @@ -190,7 +190,7 @@ unsigned char ch; while ((result = cfe_read(conhandle, &ch, 1)) == 0) - ; + continue; if (result > 0) { #if defined(KDB) && defined(ALT_BREAK_TO_DEBUGGER) @@ -228,7 +228,7 @@ cbuf = c; while (cfe_write(conhandle, &cbuf, 1) == 0) - ; + continue; } SYSINIT(cndev, SI_SUB_CONFIGURE, SI_ORDER_MIDDLE, cn_drvinit, NULL); ==== //depot/projects/mpsafetty/sys/dev/mmc/mmc.c#2 (text+ko) ==== @@ -51,7 +51,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/dev/mmc/mmc.c,v 1.4 2007/06/05 17:04:44 imp Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/mmc/mmc.c,v 1.11 2008/09/29 01:32:21 imp Exp $"); #include <sys/param.h> #include <sys/systm.h> @@ -86,6 +86,7 @@ enum mmc_card_mode mode; struct mmc_cid cid; /* cid decoded */ struct mmc_csd csd; /* csd decoded */ + u_char read_only; /* True when the device is read-only */ }; #define CMD_RETRIES 3 @@ -97,14 +98,15 @@ #define MMC_LOCK(_sc) mtx_lock(&(_sc)->sc_mtx) #define MMC_UNLOCK(_sc) mtx_unlock(&(_sc)->sc_mtx) -#define MMC_LOCK_INIT(_sc) \ - mtx_init(&_sc->sc_mtx, device_get_nameunit(_sc->dev), \ +#define MMC_LOCK_INIT(_sc) \ + mtx_init(&_sc->sc_mtx, device_get_nameunit(_sc->dev), \ "mmc", MTX_DEF) #define MMC_LOCK_DESTROY(_sc) mtx_destroy(&_sc->sc_mtx); #define MMC_ASSERT_LOCKED(_sc) mtx_assert(&_sc->sc_mtx, MA_OWNED); #define MMC_ASSERT_UNLOCKED(_sc) mtx_assert(&_sc->sc_mtx, MA_NOTOWNED); static void mmc_delayed_attach(void *); +static void mmc_power_down(struct mmc_softc *sc); static int mmc_wait_for_cmd(struct mmc_softc *sc, struct mmc_command *cmd, int retries); static int mmc_wait_for_command(struct mmc_softc *sc, uint32_t opcode, @@ -120,7 +122,7 @@ mmc_probe(device_t dev) { - device_set_desc(dev, "mmc/sd bus"); + device_set_desc(dev, "MMC/SD bus"); return (0); } @@ -160,6 +162,7 @@ free(ivar, M_DEVBUF); } free(kids, M_TEMP); + mmc_power_down(sc); MMC_LOCK_DESTROY(sc); @@ -173,7 +176,7 @@ int err; int rca; - err = MMCBR_ACQUIRE_HOST(device_get_parent(busdev), dev); + err = MMCBR_ACQUIRE_HOST(device_get_parent(busdev), busdev); if (err) return (err); sc = device_get_softc(busdev); @@ -184,24 +187,29 @@ MMC_UNLOCK(sc); if (busdev != dev) { - // Keep track of the last rca that we've selected. If - // we're asked to do it again, don't. We never unselect - // unless the bus code itself wants the mmc bus. + /* + * Keep track of the last rca that we've selected. If + * we're asked to do it again, don't. We never + * unselect unless the bus code itself wants the mmc + * bus, and constantly reselecting causes problems. + */ rca = mmc_get_rca(dev); if (sc->last_rca != rca) { mmc_wait_for_command(sc, MMC_SELECT_CARD, rca << 16, MMC_RSP_R1 | MMC_CMD_AC, NULL, CMD_RETRIES); sc->last_rca = rca; } - // XXX should set bus width here? + /* XXX should set bus width here? */ } else { - // If there's a card selected, stand down. + /* + * If there's a card selected, stand down. + */ if (sc->last_rca != 0) { mmc_wait_for_command(sc, MMC_SELECT_CARD, 0, MMC_RSP_R1 | MMC_CMD_AC, NULL, CMD_RETRIES); sc->last_rca = 0; } - // XXX should set bus width here? + /* XXX should set bus width here? */ } return (0); @@ -221,7 +229,7 @@ if (sc->owner != dev) panic("mmc: you don't own the bus. game over."); MMC_UNLOCK(sc); - err = MMCBR_RELEASE_HOST(device_get_parent(busdev), dev); + err = MMCBR_RELEASE_HOST(device_get_parent(busdev), busdev); if (err) return (err); MMC_LOCK(sc); @@ -239,8 +247,8 @@ static uint32_t mmc_select_vdd(struct mmc_softc *sc, uint32_t ocr) { - // XXX - return ocr; + + return ocr & MMC_OCR_VOLTAGE; } static int @@ -259,7 +267,7 @@ { struct mmc_softc *sc; -// printf("Wakeup for req %p done_data %p\n", req, req->done_data); +/* printf("Wakeup for req %p done_data %p\n", req, req->done_data); */ sc = (struct mmc_softc *)req->done_data; MMC_LOCK(sc); req->flags |= MMC_REQ_DONE; @@ -274,14 +282,14 @@ req->done = mmc_wakeup; req->done_data = sc; -// printf("Submitting request %p sc %p\n", req, sc); +/* printf("Submitting request %p sc %p\n", req, sc); */ MMCBR_REQUEST(device_get_parent(sc->dev), sc->dev, req); MMC_LOCK(sc); do { err = msleep(req, &sc->sc_mtx, PZERO | PCATCH, "mmcreq", hz / 10); } while (!(req->flags & MMC_REQ_DONE) && err == EAGAIN); -// printf("Request %p done with error %d\n", req, err); +/* printf("Request %p done with error %d\n", req, err); */ MMC_UNLOCK(sc); return (err); } @@ -304,7 +312,7 @@ cmd->retries = retries; cmd->data = NULL; mreq.cmd = cmd; -// printf("CMD: %x ARG %x\n", cmd->opcode, cmd->arg); +/* printf("CMD: %x ARG %x\n", cmd->opcode, cmd->arg); */ mmc_wait_for_req(sc, &mreq); return (cmd->error); } @@ -453,7 +461,19 @@ mmc_ms_delay(2); } -// I wonder if the following is endian safe. +static void +mmc_power_down(struct mmc_softc *sc) +{ + device_t dev = sc->dev; + + mmcbr_set_bus_mode(dev, opendrain); + mmcbr_set_chip_select(dev, cs_dontcare); + mmcbr_set_bus_width(dev, bus_width_1); + mmcbr_set_power_mode(dev, power_off); + mmcbr_set_clock(dev, 0); + mmcbr_update_ios(dev); +} + static uint32_t >>> TRUNCATED FOR MAIL (1000 lines) <<<
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200809291016.m8TAGken061722>