From owner-p4-projects@FreeBSD.ORG Sun Feb 1 00:13:55 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id DDE161065786; Sun, 1 Feb 2009 00:13:54 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 9CA7F106575A for ; Sun, 1 Feb 2009 00:13:54 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 899F38FC0A for ; Sun, 1 Feb 2009 00:13:54 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n110DsBb066321 for ; Sun, 1 Feb 2009 00:13:54 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n110DsKH066319 for perforce@freebsd.org; Sun, 1 Feb 2009 00:13:54 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Sun, 1 Feb 2009 00:13:54 GMT Message-Id: <200902010013.n110DsKH066319@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to bb+lists.freebsd.perforce@cyrus.watson.org using -f From: Robert Watson To: Perforce Change Reviews Cc: Subject: PERFORCE change 156974 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 01 Feb 2009 00:13:56 -0000 http://perforce.freebsd.org/chv.cgi?CH=156974 Change 156974 by rwatson@rwatson_freebsd_capabilities on 2009/02/01 00:13:14 Borrow more specific start address (entry) language for the ldscript for rtld-elf-cap as we blend preparing ld-elf-cap.so as a shared object and/or binary with fixed load offset. Affected files ... .. //depot/projects/trustedbsd/capabilities/src/libexec/rtld-elf-cap/rtld-elf-cap.xs#3 edit Differences ... ==== //depot/projects/trustedbsd/capabilities/src/libexec/rtld-elf-cap/rtld-elf-cap.xs#3 (text+ko) ==== @@ -9,7 +9,7 @@ SECTIONS { /* Read-only sections, merged into text segment: */ - . = 0x04000000 + SIZEOF_HEADERS; + PROVIDE (__executable_start = 0x04000000); . = 0x04000000 + SIZEOF_HEADERS; .hash : { *(.hash) } .dynsym : { *(.dynsym) } .dynstr : { *(.dynstr) } From owner-p4-projects@FreeBSD.ORG Sun Feb 1 00:22:03 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 41F53106567B; Sun, 1 Feb 2009 00:22:03 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id F2CAD1065676 for ; Sun, 1 Feb 2009 00:22:02 +0000 (UTC) (envelope-from gabor@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id E0DB98FC19 for ; Sun, 1 Feb 2009 00:22:02 +0000 (UTC) (envelope-from gabor@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n110M2Gp066996 for ; Sun, 1 Feb 2009 00:22:02 GMT (envelope-from gabor@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n110M2Fw066994 for perforce@freebsd.org; Sun, 1 Feb 2009 00:22:02 GMT (envelope-from gabor@freebsd.org) Date: Sun, 1 Feb 2009 00:22:02 GMT Message-Id: <200902010022.n110M2Fw066994@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to gabor@freebsd.org using -f From: Gabor Kovesdan To: Perforce Change Reviews Cc: Subject: PERFORCE change 156975 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 01 Feb 2009 00:22:04 -0000 http://perforce.freebsd.org/chv.cgi?CH=156975 Change 156975 by gabor@gabor_server on 2009/02/01 00:21:27 - Some rework on --exclude / --include - Extra --exclude-dir / --include-dir options will come Affected files ... .. //depot/projects/soc2008/gabor_textproc/grep/grep.c#78 edit .. //depot/projects/soc2008/gabor_textproc/grep/grep.h#45 edit .. //depot/projects/soc2008/gabor_textproc/grep/util.c#78 edit Differences ... ==== //depot/projects/soc2008/gabor_textproc/grep/grep.c#78 (text+ko) ==== @@ -96,7 +96,7 @@ /* Filename exclusion/inclusion patterns */ int epatterns, epattern_sz; -char **epattern; +struct epat *epattern; /* For regex errors */ char re_error[RE_ERROR_BUF + 1]; @@ -123,7 +123,6 @@ int lbflag; /* --line-buffered */ int nullflag; /* --null */ int exclflag; /* --exclude */ -int inclflag; /* --include */ char *label; /* --label */ char *color; /* --color */ int grepbehave = GREP_BASIC; /* -EFGP: type of the regex */ @@ -142,7 +141,9 @@ LABEL_OPT, NULL_OPT, R_EXCLUDE_OPT, - R_INCLUDE_OPT + R_INCLUDE_OPT, + R_DEXCLUDE_OPT, + R_DINCLUDE_OPT }; /* Housekeeping */ @@ -181,6 +182,8 @@ {"colour", optional_argument, NULL, COLOR_OPT}, {"exclude", required_argument, NULL, R_EXCLUDE_OPT}, {"include", required_argument, NULL, R_INCLUDE_OPT}, +/* {"exclude-dir", required_argument, NULL, R_DEXCLUDE_OPT}, + {"include-dir", required_argument, NULL, R_DINCLUDE_OPT}, */ {"after-context", required_argument, NULL, 'A'}, {"text", no_argument, NULL, 'a'}, {"before-context", required_argument, NULL, 'B'}, @@ -247,19 +250,21 @@ * Adds an include/exclude pattern to the internal array. */ static void -add_epattern(char *pat, size_t len) +add_epattern(char *pat, size_t len, int type, int mode) { /* Increase size if necessary */ if (epatterns == epattern_sz) { epattern_sz *= 2; - epattern = grep_realloc(epattern, ++epattern_sz * sizeof(*epattern)); + epattern = grep_realloc(epattern, ++epattern_sz * sizeof(struct epat)); } if (len > 0 && pat[len - 1] == '\n') --len; - epattern[epatterns] = grep_malloc(len + 1); - memcpy(epattern[epatterns], pat, len); - epattern[epatterns][len] = '\0'; + epattern[epatterns].pat = grep_malloc(len + 1); + memcpy(epattern[epatterns].pat, pat, len); + epattern[epatterns].pat[len] = '\0'; + epattern[epatterns].type = type; + epattern[epatterns].mode = mode; ++epatterns; } @@ -510,16 +515,26 @@ case R_INCLUDE_OPT: if (dirbehave != DIR_RECURSE) usage(); - inclflag = 1; - exclflag = 0; - add_epattern(basename(optarg), strlen(basename(optarg))); + exclflag = 1; + add_epattern(basename(optarg), strlen(basename(optarg)), FILE_PAT, INCL_PAT); break; case R_EXCLUDE_OPT: if (dirbehave != DIR_RECURSE) usage(); - inclflag = 0; + exclflag = 1; + add_epattern(basename(optarg), strlen(basename(optarg)), FILE_PAT, EXCL_PAT); + break; + case R_DINCLUDE_OPT: + if (dirbehave != DIR_RECURSE) + usage(); + exclflag = 1; + add_epattern(basename(optarg), strlen(basename(optarg)), DIR_PAT, INCL_PAT); + break; + case R_DEXCLUDE_OPT: + if (dirbehave != DIR_RECURSE) + usage(); exclflag = 1; - add_epattern(basename(optarg), strlen(basename(optarg))); + add_epattern(basename(optarg), strlen(basename(optarg)), DIR_PAT, EXCL_PAT); break; case HELP_OPT: default: ==== //depot/projects/soc2008/gabor_textproc/grep/grep.h#45 (text+ko) ==== @@ -68,6 +68,11 @@ #define LINK_EXPLICIT 1 #define LINK_SKIP 2 +#define FILE_PAT 0 +#define DIR_PAT 1 +#define EXCL_PAT 0 +#define INCL_PAT 1 + #define MAX_LINE_MATCHES 32 struct file { @@ -87,6 +92,12 @@ char *dat; }; +struct epat { + char *pat; + int type; + int mode; +}; + typedef struct { unsigned char *pattern; int len; @@ -104,13 +115,14 @@ extern int Eflag, Fflag, Gflag, Hflag, Lflag, bflag, cflag, hflag, iflag, lflag, mflag, nflag, oflag, qflag, sflag, vflag, wflag, xflag; -extern int nullflag, exclflag, inclflag; +extern int nullflag, exclflag; extern unsigned long long Aflag, Bflag, mcount; extern char *color, *label; extern int grepbehave, binbehave, filebehave, devbehave, dirbehave, linkbehave; extern int first, prev, matchall, patterns, epatterns, tail, notfound; -extern char **pattern, **epattern; +extern char **pattern; +extern struct epat *epattern; extern regex_t *r_pattern, *er_pattern; extern fastgrep_t *fg_pattern; ==== //depot/projects/soc2008/gabor_textproc/grep/util.c#78 (text+ko) ==== @@ -97,22 +97,18 @@ break; default: /* Check for file exclusion/inclusion */ + ok = 1; if (exclflag) { - ok = 1; - for (i = 0; i < epatterns; ++i) - if (fnmatch(epattern[i], basename(p->fts_path), 0) == 0) { - ok = 0; - break; + for (i = 0; i < epatterns; ++i) { + if (fnmatch(epattern[i].pat, basename(p->fts_path), 0) == 0) { + if (epattern[i].mode == EXCL_PAT) + ok = 0; + else + ok = 1; } - } else if (inclflag) { - ok = 0; - for (i = 0; i < epatterns; i++) - if (fnmatch(epattern[i], basename(p->fts_path), 0) == 0) { - ok = 1; - break; - } - } else - ok = 1; + } + } + if (ok) c += procfile(p->fts_path); break; From owner-p4-projects@FreeBSD.ORG Sun Feb 1 00:26:07 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 800761065712; Sun, 1 Feb 2009 00:26:07 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 3C01910656BF for ; Sun, 1 Feb 2009 00:26:07 +0000 (UTC) (envelope-from gabor@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 2A3DF8FC12 for ; Sun, 1 Feb 2009 00:26:07 +0000 (UTC) (envelope-from gabor@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n110Q7id067363 for ; Sun, 1 Feb 2009 00:26:07 GMT (envelope-from gabor@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n110Q7I7067361 for perforce@freebsd.org; Sun, 1 Feb 2009 00:26:07 GMT (envelope-from gabor@freebsd.org) Date: Sun, 1 Feb 2009 00:26:07 GMT Message-Id: <200902010026.n110Q7I7067361@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to gabor@freebsd.org using -f From: Gabor Kovesdan To: Perforce Change Reviews Cc: Subject: PERFORCE change 156976 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 01 Feb 2009 00:26:08 -0000 http://perforce.freebsd.org/chv.cgi?CH=156976 Change 156976 by gabor@gabor_server on 2009/02/01 00:25:40 - We just ignore --exclude and --include if -r isn't specified. This is the GNU behaviour and it is more flexible, because it doesn't fail if --exclude / --include precede -r. Affected files ... .. //depot/projects/soc2008/gabor_textproc/grep/grep.c#79 edit Differences ... ==== //depot/projects/soc2008/gabor_textproc/grep/grep.c#79 (text+ko) ==== @@ -513,26 +513,18 @@ nullflag = 1; break; case R_INCLUDE_OPT: - if (dirbehave != DIR_RECURSE) - usage(); exclflag = 1; add_epattern(basename(optarg), strlen(basename(optarg)), FILE_PAT, INCL_PAT); break; case R_EXCLUDE_OPT: - if (dirbehave != DIR_RECURSE) - usage(); exclflag = 1; add_epattern(basename(optarg), strlen(basename(optarg)), FILE_PAT, EXCL_PAT); break; case R_DINCLUDE_OPT: - if (dirbehave != DIR_RECURSE) - usage(); exclflag = 1; add_epattern(basename(optarg), strlen(basename(optarg)), DIR_PAT, INCL_PAT); break; case R_DEXCLUDE_OPT: - if (dirbehave != DIR_RECURSE) - usage(); exclflag = 1; add_epattern(basename(optarg), strlen(basename(optarg)), DIR_PAT, EXCL_PAT); break; From owner-p4-projects@FreeBSD.ORG Sun Feb 1 00:59:42 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id C981E10656E4; Sun, 1 Feb 2009 00:59:41 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 8481C10656CF for ; Sun, 1 Feb 2009 00:59:41 +0000 (UTC) (envelope-from antab@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 70C198FC13 for ; Sun, 1 Feb 2009 00:59:41 +0000 (UTC) (envelope-from antab@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n110xfeO079963 for ; Sun, 1 Feb 2009 00:59:41 GMT (envelope-from antab@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n110xfXx079961 for perforce@freebsd.org; Sun, 1 Feb 2009 00:59:41 GMT (envelope-from antab@FreeBSD.org) Date: Sun, 1 Feb 2009 00:59:41 GMT Message-Id: <200902010059.n110xfXx079961@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to antab@FreeBSD.org using -f From: Arnar Mar Sig To: Perforce Change Reviews Cc: Subject: PERFORCE change 156978 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 01 Feb 2009 00:59:42 -0000 http://perforce.freebsd.org/chv.cgi?CH=156978 Change 156978 by antab@antab_farm on 2009/02/01 00:58:58 AVR32 support. The kernel boots on NGW100 but there is still alot of work to be done. At the moment it crashes somewhere in uma_startup3. Affected files ... .. //depot/projects/avr32/src/Makefile.inc1#2 edit .. //depot/projects/avr32/src/sys/avr32/avr32/at32.c#1 add .. //depot/projects/avr32/src/sys/avr32/avr32/autoconf.c#1 add .. //depot/projects/avr32/src/sys/avr32/avr32/clock.c#1 add .. //depot/projects/avr32/src/sys/avr32/avr32/cpu.c#1 add .. //depot/projects/avr32/src/sys/avr32/avr32/elf_machdep.c#1 add .. //depot/projects/avr32/src/sys/avr32/avr32/exception.S#1 add .. //depot/projects/avr32/src/sys/avr32/avr32/genassym.c#1 add .. //depot/projects/avr32/src/sys/avr32/avr32/in_cksum.c#1 add .. //depot/projects/avr32/src/sys/avr32/avr32/intr.c#1 add .. //depot/projects/avr32/src/sys/avr32/avr32/locore.S#1 add .. //depot/projects/avr32/src/sys/avr32/avr32/machdep.c#1 add .. //depot/projects/avr32/src/sys/avr32/avr32/nexus.c#1 add .. //depot/projects/avr32/src/sys/avr32/avr32/pm_machdep.c#1 add .. //depot/projects/avr32/src/sys/avr32/avr32/pmap.c#1 add .. //depot/projects/avr32/src/sys/avr32/avr32/sf_buf.c#1 add .. //depot/projects/avr32/src/sys/avr32/avr32/support.S#1 add .. //depot/projects/avr32/src/sys/avr32/avr32/tlb.c#1 add .. //depot/projects/avr32/src/sys/avr32/avr32/trap.c#1 add .. //depot/projects/avr32/src/sys/avr32/avr32/uboot.c#1 add .. //depot/projects/avr32/src/sys/avr32/avr32/uio_machdep.c#1 add .. //depot/projects/avr32/src/sys/avr32/avr32/vm_machdep.c#1 add .. //depot/projects/avr32/src/sys/avr32/conf/NGW100#1 add .. //depot/projects/avr32/src/sys/avr32/conf/NGW100.hints#1 add .. //depot/projects/avr32/src/sys/avr32/include/_bus.h#1 add .. //depot/projects/avr32/src/sys/avr32/include/_limits.h#1 add .. //depot/projects/avr32/src/sys/avr32/include/_stdint.h#1 add .. //depot/projects/avr32/src/sys/avr32/include/_types.h#1 add .. //depot/projects/avr32/src/sys/avr32/include/asm.h#1 add .. //depot/projects/avr32/src/sys/avr32/include/at32.h#1 add .. //depot/projects/avr32/src/sys/avr32/include/atomic.h#1 add .. //depot/projects/avr32/src/sys/avr32/include/bus.h#1 add .. //depot/projects/avr32/src/sys/avr32/include/bus_dma.h#1 add .. //depot/projects/avr32/src/sys/avr32/include/clock.h#1 add .. //depot/projects/avr32/src/sys/avr32/include/cpu.h#1 add .. //depot/projects/avr32/src/sys/avr32/include/cpufunc.h#1 add .. //depot/projects/avr32/src/sys/avr32/include/db_machdep.h#1 add .. //depot/projects/avr32/src/sys/avr32/include/debug.h#1 add .. //depot/projects/avr32/src/sys/avr32/include/elf.h#1 add .. //depot/projects/avr32/src/sys/avr32/include/endian.h#1 add .. //depot/projects/avr32/src/sys/avr32/include/exec.h#1 add .. //depot/projects/avr32/src/sys/avr32/include/frame.h#1 add .. //depot/projects/avr32/src/sys/avr32/include/in_cksum.h#1 add .. //depot/projects/avr32/src/sys/avr32/include/intr.h#1 add .. //depot/projects/avr32/src/sys/avr32/include/kdb.h#1 add .. //depot/projects/avr32/src/sys/avr32/include/md_var.h#1 add .. //depot/projects/avr32/src/sys/avr32/include/mutex.h#1 add .. //depot/projects/avr32/src/sys/avr32/include/nexus.h#1 add .. //depot/projects/avr32/src/sys/avr32/include/param.h#1 add .. //depot/projects/avr32/src/sys/avr32/include/pcb.h#1 add .. //depot/projects/avr32/src/sys/avr32/include/pcpu.h#1 add .. //depot/projects/avr32/src/sys/avr32/include/pmap.h#1 add .. //depot/projects/avr32/src/sys/avr32/include/pmc_mdep.h#1 add .. //depot/projects/avr32/src/sys/avr32/include/proc.h#1 add .. //depot/projects/avr32/src/sys/avr32/include/profile.h#1 add .. //depot/projects/avr32/src/sys/avr32/include/psl.h#1 add .. //depot/projects/avr32/src/sys/avr32/include/pte.h#1 add .. //depot/projects/avr32/src/sys/avr32/include/ptrace.h#1 add .. //depot/projects/avr32/src/sys/avr32/include/reg.h#1 add .. //depot/projects/avr32/src/sys/avr32/include/reg_sys.h#1 add .. //depot/projects/avr32/src/sys/avr32/include/reg_usart.h#1 add .. //depot/projects/avr32/src/sys/avr32/include/resource.h#1 add .. //depot/projects/avr32/src/sys/avr32/include/runq.h#1 add .. //depot/projects/avr32/src/sys/avr32/include/setjmp.h#1 add .. //depot/projects/avr32/src/sys/avr32/include/sf_buf.h#1 add .. //depot/projects/avr32/src/sys/avr32/include/signal.h#1 add .. //depot/projects/avr32/src/sys/avr32/include/smp.h#1 add .. //depot/projects/avr32/src/sys/avr32/include/stdarg.h#1 add .. //depot/projects/avr32/src/sys/avr32/include/tlb.h#1 add .. //depot/projects/avr32/src/sys/avr32/include/trap.h#1 add .. //depot/projects/avr32/src/sys/avr32/include/uboot.h#1 add .. //depot/projects/avr32/src/sys/avr32/include/ucontext.h#1 add .. //depot/projects/avr32/src/sys/avr32/include/vmparam.h#1 add .. //depot/projects/avr32/src/sys/conf/Makefile.avr32#1 add .. //depot/projects/avr32/src/sys/conf/files.avr32#1 add .. //depot/projects/avr32/src/sys/conf/kern.mk#2 edit .. //depot/projects/avr32/src/sys/conf/kern.pre.mk#2 edit .. //depot/projects/avr32/src/sys/conf/ldscript.avr32#1 add .. //depot/projects/avr32/src/sys/conf/options.avr32#1 add .. //depot/projects/avr32/src/sys/dev/uart/uart.h#2 edit .. //depot/projects/avr32/src/sys/dev/uart/uart_atmel.h#1 add .. //depot/projects/avr32/src/sys/dev/uart/uart_bus_atmel.c#1 add .. //depot/projects/avr32/src/sys/dev/uart/uart_cpu_at32.c#1 add .. //depot/projects/avr32/src/sys/dev/uart/uart_dev_atmel.c#1 add .. //depot/projects/avr32/src/sys/sys/elf_common.h#2 edit .. //depot/projects/avr32/src/sys/sys/user.h#2 edit Differences ... ==== //depot/projects/avr32/src/Makefile.inc1#2 (text+ko) ==== @@ -126,7 +126,7 @@ TARGET?= ${MACHINE} TARGET_ARCH?= ${MACHINE_ARCH} -KNOWN_ARCHES?= amd64 arm i386 i386/pc98 ia64 mips powerpc sparc64 sparc64/sun4v +KNOWN_ARCHES?= amd64 arm avr32 i386 i386/pc98 ia64 mips powerpc sparc64 sparc64/sun4v .if ${TARGET} == ${TARGET_ARCH} _t= ${TARGET} .else ==== //depot/projects/avr32/src/sys/conf/kern.mk#2 (text+ko) ==== @@ -12,7 +12,9 @@ .else CWARNFLAGS?= -Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes \ -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual \ - ${_wundef} ${_Wno_pointer_sign} -fformat-extensions + ${_wundef} ${_Wno_pointer_sign} +# antab: Disable format-extensions for now while we dont have a complete toolchain +# -fformat-extensions .if !defined(WITH_GCC3) _Wno_pointer_sign=-Wno-pointer-sign .endif @@ -44,6 +46,14 @@ .if ${MACHINE_ARCH} == "arm" INLINE_LIMIT?= 8000 .endif + +# +# For AVR32, we do.. well nothing special for now +# +.if ${MACHINE_ARCH} == "avr32" +INLINE_LIMIT?= 15000 +.endif + # # For IA-64, we use r13 for the kernel globals pointer and we only use # a very small subset of float registers for integer divides. ==== //depot/projects/avr32/src/sys/conf/kern.pre.mk#2 (text+ko) ==== @@ -142,6 +142,8 @@ SYSTEM_OBJS= locore.o ${MDOBJS} ${OBJS} SYSTEM_OBJS+= ${SYSTEM_CFILES:.c=.o} SYSTEM_OBJS+= hack.So +# antab: Hack for avr32, needs libgcc for now. +SYSTEM_OBJS+= /crosstools/lib/gcc/avr32-linux/4.2.2/libgcc.a .if defined(CTFMERGE) SYSTEM_CTFMERGE= ${CTFMERGE} ${CTFFLAGS} -o ${.TARGET} ${SYSTEM_OBJS} vers.o LD+= -g ==== //depot/projects/avr32/src/sys/dev/uart/uart.h#2 (text+ko) ==== @@ -50,6 +50,11 @@ #define uart_setreg(bas, reg, value) \ bus_space_write_1((bas)->bst, (bas)->bsh, uart_regofs(bas, reg), value) +#define uart_getreg_4(bas, reg) \ + bus_space_read_4((bas)->bst, (bas)->bsh, uart_regofs(bas, reg)) +#define uart_setreg_4(bas, reg, value) \ + bus_space_write_4((bas)->bst, (bas)->bsh, uart_regofs(bas, reg), value) + /* * XXX we don't know the length of the bus space address range in use by * the UART. Since barriers don't use the length field currently, we put ==== //depot/projects/avr32/src/sys/sys/elf_common.h#2 (text+ko) ==== @@ -231,6 +231,7 @@ #define EM_MIPS_RS4_BE 10 /* MIPS R4000 Big-Endian */ #define EM_ALPHA_STD 41 /* Digital Alpha (standard value). */ #define EM_ALPHA 0x9026 /* Alpha (written in the absence of an ABI) */ +#define EM_AVR32 0x18ad /* AVR32 magic number from ATMEL */ /* Special section indexes. */ #define SHN_UNDEF 0 /* Undefined, missing, irrelevant. */ @@ -435,6 +436,7 @@ #define DT_LOPROC 0x70000000 /* First processor-specific type. */ #define DT_DEPRECATED_SPARC_REGISTER 0x7000001 +#define DT_AVR32_GOTSZ 0x70000001 /* AVR32 dynamic tags: Total size of GOT in bytes */ #define DT_AUXILIARY 0x7ffffffd /* shared library auxiliary name */ #define DT_USED 0x7ffffffe /* ignored - same as needed */ #define DT_FILTER 0x7fffffff /* shared library filter name */ @@ -623,6 +625,53 @@ #define R_ARM_RPC24 254 #define R_ARM_RBASE 255 +/* Atmel AVR32 relocations. */ +#define R_AVR32_NONE 0 +#define R_AVR32_32 1 +#define R_AVR32_16 2 +#define R_AVR32_8 3 +#define R_AVR32_32_PCREL 4 +#define R_AVR32_16_PCREL 5 +#define R_AVR32_8_PCREL 6 +#define R_AVR32_DIFF32 7 +#define R_AVR32_DIFF16 8 +#define R_AVR32_DIFF8 9 +#define R_AVR32_GOT32 10 +#define R_AVR32_GOT16 11 +#define R_AVR32_GOT8 12 +#define R_AVR32_21S 13 +#define R_AVR32_16U 14 +#define R_AVR32_16S 15 +#define R_AVR32_8S 16 +#define R_AVR32_8S_EXT 17 +#define R_AVR32_22H_PCREL 18 +#define R_AVR32_18W_PCREL 19 +#define R_AVR32_16B_PCREL 20 +#define R_AVR32_16N_PCREL 21 +#define R_AVR32_14UW_PCREL 22 +#define R_AVR32_11H_PCREL 23 +#define R_AVR32_10UW_PCREL 24 +#define R_AVR32_9H_PCREL 25 +#define R_AVR32_9UW_PCREL 26 +#define R_AVR32_HI16 27 +#define R_AVR32_LO16 28 +#define R_AVR32_GOTPC 29 +#define R_AVR32_GOTCALL 30 +#define R_AVR32_LDA_GOT 31 +#define R_AVR32_GOT21SU 32 +#define R_AVR32_GOT18SW 33 +#define R_AVR32_GOT16S 34 +#define R_AVR32_GOT7UW 35 +#define R_AVR32_32_CPENT 36 +#define R_AVR32_CPCALL 37 +#define R_AVR32_16_CP 38 +#define R_AVR32_9W_CP 39 +#define R_AVR32_RELATIVE 40 +#define R_AVR32_GLOB_DAT 41 +#define R_AVR32_JMP_SLOT 42 +#define R_AVR32_ALIGN 43 +#define R_AVR32_NUM 44 + /* Name Value Field Calculation */ #define R_IA_64_NONE 0 /* None */ #define R_IA_64_IMM14 0x21 /* immediate14 S + A */ ==== //depot/projects/avr32/src/sys/sys/user.h#2 (text+ko) ==== @@ -93,6 +93,9 @@ #ifdef __arm__ #define KINFO_PROC_SIZE 792 #endif +#ifdef __avr32__ // antab: look into this later +#define KINFO_PROC_SIZE 792 +#endif #ifdef __ia64__ #define KINFO_PROC_SIZE 1088 #endif From owner-p4-projects@FreeBSD.ORG Sun Feb 1 02:57:31 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 4D6911065740; Sun, 1 Feb 2009 02:57:31 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 087D11065731; Sun, 1 Feb 2009 02:57:31 +0000 (UTC) (envelope-from gonzo@bluezbox.com) Received: from core.tav.kiev.ua (tavex.colocall.com [62.149.10.42]) by mx1.freebsd.org (Postfix) with ESMTP id 9B5C78FC1F; Sun, 1 Feb 2009 02:57:30 +0000 (UTC) (envelope-from gonzo@bluezbox.com) Received: from s01060021299bf294.vc.shawcable.net ([24.87.45.120] helo=figaro.bluezbox.com) by core.tav.kiev.ua with esmtpsa (TLSv1:AES256-SHA:256) (Exim 4.52 (FreeBSD)) id 1LTSXK-000FnS-C7; Sun, 01 Feb 2009 04:58:19 +0200 Message-ID: <49850FB9.9040008@bluezbox.com> Date: Sat, 31 Jan 2009 18:58:01 -0800 From: Oleksandr Tymoshenko User-Agent: Thunderbird 2.0.0.18 (X11/20090102) MIME-Version: 1.0 To: Arnar Mar Sig References: <200902010059.n110xfXx079961@repoman.freebsd.org> In-Reply-To: <200902010059.n110xfXx079961@repoman.freebsd.org> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-Core-Spam-Level: -- X-Core-Spam-Report: Spam detection software, running on the system "core.tav.kiev.ua", has identified this incoming email as possible spam. The original message has been attached to this so you can view it (if it isn't spam) or label similar future email. If you have any questions, see the administrator of that system for details. Content preview: Arnar Mar Sig wrote: > http://perforce.freebsd.org/chv.cgi?CH=156978 > > Change 156978 by antab@antab_farm on 2009/02/01 00:58:58 > > AVR32 support. The kernel boots on NGW100 but there is still alot of work to be done. At the moment it crashes somewhere in uma_startup3. That's just cool! :) Thanks a lot for your hard work. [...] Content analysis details: (-2.1 points, 5.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- -1.4 ALL_TRUSTED Passed through trusted hosts only via SMTP -0.7 AWL AWL: From: address is in the auto white-list Cc: Perforce Change Reviews Subject: Re: PERFORCE change 156978 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 01 Feb 2009 02:57:31 -0000 Arnar Mar Sig wrote: > http://perforce.freebsd.org/chv.cgi?CH=156978 > > Change 156978 by antab@antab_farm on 2009/02/01 00:58:58 > > AVR32 support. The kernel boots on NGW100 but there is still alot of work to be done. At the moment it crashes somewhere in uma_startup3. That's just cool! :) Thanks a lot for your hard work. From owner-p4-projects@FreeBSD.ORG Sun Feb 1 11:16:10 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 1B77E1065672; Sun, 1 Feb 2009 11:16:10 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id D04D4106564A for ; Sun, 1 Feb 2009 11:16:09 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id BC7068FC13 for ; Sun, 1 Feb 2009 11:16:09 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n11BG9eS066982 for ; Sun, 1 Feb 2009 11:16:09 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n11BG9Kh066980 for perforce@freebsd.org; Sun, 1 Feb 2009 11:16:09 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Sun, 1 Feb 2009 11:16:09 GMT Message-Id: <200902011116.n11BG9Kh066980@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to bb+lists.freebsd.perforce@cyrus.watson.org using -f From: Robert Watson To: Perforce Change Reviews Cc: Subject: PERFORCE change 156989 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 01 Feb 2009 11:16:10 -0000 http://perforce.freebsd.org/chv.cgi?CH=156989 Change 156989 by rwatson@rwatson_freebsd_capabilities on 2009/02/01 11:15:48 Call init_rtld() before we evaluate whether or not a valid file descriptor has been passed in capability mode -- this improves our chances of printing an error message on a failure significantly. Affected files ... .. //depot/projects/trustedbsd/capabilities/src/libexec/rtld-elf/rtld.c#6 edit Differences ... ==== //depot/projects/trustedbsd/capabilities/src/libexec/rtld-elf/rtld.c#6 (text+ko) ==== @@ -346,6 +346,10 @@ aux_info[auxp->a_type] = auxp; } + /* Initialize and relocate ourselves. */ + assert(aux_info[AT_BASE] != NULL); + init_rtld((caddr_t) aux_info[AT_BASE]->a_un.a_ptr); + #ifdef IN_RTLD_CAP /* * In capability mode, the kernel has executed ld-elf-cap.so directly, @@ -367,10 +371,6 @@ } #endif - /* Initialize and relocate ourselves. */ - assert(aux_info[AT_BASE] != NULL); - init_rtld((caddr_t) aux_info[AT_BASE]->a_un.a_ptr); - /* XXXRW: Need to do something about program names in capability mode. */ __progname = obj_rtld.path; argv0 = argv[0] != NULL ? argv[0] : "(null)"; From owner-p4-projects@FreeBSD.ORG Sun Feb 1 11:44:47 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 16E541065676; Sun, 1 Feb 2009 11:44:47 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id C76D91065674 for ; Sun, 1 Feb 2009 11:44:46 +0000 (UTC) (envelope-from hselasky@c2i.net) Received: from swip.net (mailfe13.tele2.se [212.247.155.129]) by mx1.freebsd.org (Postfix) with ESMTP id 5CFA18FC20 for ; Sun, 1 Feb 2009 11:44:45 +0000 (UTC) (envelope-from hselasky@c2i.net) X-Cloudmark-Score: 0.000000 [] X-Cloudmark-Analysis: v=1.0 c=1 a=TS_CjUFCDQgA:10 a=6I5d2MoRAAAA:8 a=UVSrci6BQ3LZOR1EVMoA:9 a=GdwQBAE0_PPtpLfSMm8A:7 a=FfD_8aZ8jpTfezOxGclcSyDSuwsA:4 a=LY0hPdMaydYA:10 Received: from [85.19.218.115] (account mc467741@c2i.net HELO [10.37.1.92]) by mailfe13.swip.net (CommuniGate Pro SMTP 5.2.6) with ESMTPA id 799536061; Sun, 01 Feb 2009 12:44:44 +0100 From: Hans Petter Selasky To: Oleksandr Tymoshenko Date: Sun, 1 Feb 2009 12:47:09 +0100 User-Agent: KMail/1.9.7 References: <200902010059.n110xfXx079961@repoman.freebsd.org> <49850FB9.9040008@bluezbox.com> In-Reply-To: <49850FB9.9040008@bluezbox.com> MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit Content-Disposition: inline Message-Id: <200902011247.10404.hselasky@c2i.net> Cc: Arnar Mar Sig , Perforce Change Reviews Subject: Re: PERFORCE change 156978 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 01 Feb 2009 11:44:48 -0000 On Sunday 01 February 2009, Oleksandr Tymoshenko wrote: > Arnar Mar Sig wrote: > > http://perforce.freebsd.org/chv.cgi?CH=156978 > > > > Change 156978 by antab@antab_farm on 2009/02/01 00:58:58 > > > > AVR32 support. The kernel boots on NGW100 but there is still alot of > > work to be done. At the moment it crashes somewhere in uma_startup3. > > That's just cool! :) Thanks a lot for your hard work. Just a small style nit: Use \t or TAB after "#define" instead of space. Looking forward to programming USB support for the AVR32. --HPS From owner-p4-projects@FreeBSD.ORG Sun Feb 1 11:58:54 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 250C71065673; Sun, 1 Feb 2009 11:58:54 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id D6F86106566C for ; Sun, 1 Feb 2009 11:58:53 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id C21F28FC12 for ; Sun, 1 Feb 2009 11:58:53 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n11BwrEq070296 for ; Sun, 1 Feb 2009 11:58:53 GMT (envelope-from hselasky@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n11BwqMx070294 for perforce@freebsd.org; Sun, 1 Feb 2009 11:58:52 GMT (envelope-from hselasky@FreeBSD.org) Date: Sun, 1 Feb 2009 11:58:52 GMT Message-Id: <200902011158.n11BwqMx070294@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky To: Perforce Change Reviews Cc: Subject: PERFORCE change 156990 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 01 Feb 2009 11:58:55 -0000 http://perforce.freebsd.org/chv.cgi?CH=156990 Change 156990 by hselasky@hselasky_laptop001 on 2009/02/01 11:58:35 IFC @ 156988 Affected files ... .. //depot/projects/usb/src/sys/amd64/amd64/cpu_switch.S#10 integrate .. //depot/projects/usb/src/sys/amd64/amd64/fpu.c#3 integrate .. //depot/projects/usb/src/sys/amd64/amd64/io_apic.c#6 integrate .. //depot/projects/usb/src/sys/amd64/amd64/local_apic.c#12 integrate .. //depot/projects/usb/src/sys/amd64/amd64/mp_machdep.c#15 integrate .. //depot/projects/usb/src/sys/amd64/amd64/msi.c#7 integrate .. //depot/projects/usb/src/sys/amd64/ia32/ia32_signal.c#6 integrate .. //depot/projects/usb/src/sys/amd64/ia32/ia32_sigtramp.S#3 integrate .. //depot/projects/usb/src/sys/amd64/include/apicvar.h#6 integrate .. //depot/projects/usb/src/sys/amd64/include/cpufunc.h#4 integrate .. //depot/projects/usb/src/sys/amd64/include/fpu.h#2 integrate .. //depot/projects/usb/src/sys/amd64/include/intr_machdep.h#6 integrate .. //depot/projects/usb/src/sys/amd64/linux32/linux32_locore.s#4 integrate .. //depot/projects/usb/src/sys/amd64/linux32/linux32_sysvec.c#13 integrate .. //depot/projects/usb/src/sys/arm/arm/busdma_machdep.c#13 integrate .. //depot/projects/usb/src/sys/boot/i386/pxeldr/pxeboot.8#3 integrate .. //depot/projects/usb/src/sys/cam/scsi/scsi_pass.c#9 integrate .. //depot/projects/usb/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_znode.c#6 integrate .. //depot/projects/usb/src/sys/compat/linux/linux_stats.c#9 integrate .. //depot/projects/usb/src/sys/compat/ndis/winx32_wrap.S#3 integrate .. //depot/projects/usb/src/sys/compat/svr4/svr4_types.h#2 integrate .. //depot/projects/usb/src/sys/conf/options#19 integrate .. //depot/projects/usb/src/sys/dev/adb/adb_mouse.c#3 integrate .. //depot/projects/usb/src/sys/dev/ath/ath_hal/ah.c#2 integrate .. //depot/projects/usb/src/sys/dev/ath/ath_hal/ah.h#2 integrate .. //depot/projects/usb/src/sys/dev/ath/ath_hal/ah_internal.h#2 integrate .. //depot/projects/usb/src/sys/dev/ath/ath_hal/ah_regdomain.c#3 integrate .. //depot/projects/usb/src/sys/dev/ath/ath_hal/ar5210/ar5210.h#2 integrate .. //depot/projects/usb/src/sys/dev/ath/ath_hal/ar5210/ar5210_attach.c#2 integrate .. //depot/projects/usb/src/sys/dev/ath/ath_hal/ar5210/ar5210_misc.c#2 integrate .. //depot/projects/usb/src/sys/dev/ath/ath_hal/ar5210/ar5210_reset.c#3 integrate .. //depot/projects/usb/src/sys/dev/ath/ath_hal/ar5210/ar5210_xmit.c#2 integrate .. //depot/projects/usb/src/sys/dev/ath/ath_hal/ar5211/ar5211.h#2 integrate .. //depot/projects/usb/src/sys/dev/ath/ath_hal/ar5211/ar5211_attach.c#2 integrate .. //depot/projects/usb/src/sys/dev/ath/ath_hal/ar5211/ar5211_misc.c#3 integrate .. //depot/projects/usb/src/sys/dev/ath/ath_hal/ar5211/ar5211_reset.c#3 integrate .. //depot/projects/usb/src/sys/dev/ath/ath_hal/ar5211/ar5211_xmit.c#2 integrate .. //depot/projects/usb/src/sys/dev/ath/ath_hal/ar5212/ar2316.c#2 integrate .. //depot/projects/usb/src/sys/dev/ath/ath_hal/ar5212/ar2317.c#2 integrate .. //depot/projects/usb/src/sys/dev/ath/ath_hal/ar5212/ar2413.c#2 integrate .. //depot/projects/usb/src/sys/dev/ath/ath_hal/ar5212/ar2425.c#2 integrate .. //depot/projects/usb/src/sys/dev/ath/ath_hal/ar5212/ar5111.c#2 integrate .. //depot/projects/usb/src/sys/dev/ath/ath_hal/ar5212/ar5112.c#2 integrate .. //depot/projects/usb/src/sys/dev/ath/ath_hal/ar5212/ar5212.h#2 integrate .. //depot/projects/usb/src/sys/dev/ath/ath_hal/ar5212/ar5212_ani.c#2 integrate .. //depot/projects/usb/src/sys/dev/ath/ath_hal/ar5212/ar5212_attach.c#2 integrate .. //depot/projects/usb/src/sys/dev/ath/ath_hal/ar5212/ar5212_misc.c#3 integrate .. //depot/projects/usb/src/sys/dev/ath/ath_hal/ar5212/ar5212_reset.c#3 integrate .. //depot/projects/usb/src/sys/dev/ath/ath_hal/ar5212/ar5212_xmit.c#2 integrate .. //depot/projects/usb/src/sys/dev/ath/ath_hal/ar5212/ar5413.c#2 integrate .. //depot/projects/usb/src/sys/dev/ath/ath_hal/ar5312/ar5312.h#2 integrate .. //depot/projects/usb/src/sys/dev/ath/ath_hal/ar5312/ar5312_reset.c#3 integrate .. //depot/projects/usb/src/sys/dev/ath/ath_hal/ar5416/ar2133.c#2 integrate .. //depot/projects/usb/src/sys/dev/ath/ath_hal/ar5416/ar5416.h#2 integrate .. //depot/projects/usb/src/sys/dev/ath/ath_hal/ar5416/ar5416_ani.c#2 integrate .. //depot/projects/usb/src/sys/dev/ath/ath_hal/ar5416/ar5416_cal.c#2 integrate .. //depot/projects/usb/src/sys/dev/ath/ath_hal/ar5416/ar5416_cal.h#2 integrate .. //depot/projects/usb/src/sys/dev/ath/ath_hal/ar5416/ar5416_reset.c#3 integrate .. //depot/projects/usb/src/sys/dev/ath/ath_hal/ar5416/ar5416_xmit.c#2 integrate .. //depot/projects/usb/src/sys/dev/ath/if_ath.c#15 integrate .. //depot/projects/usb/src/sys/dev/ath/if_athvar.h#12 integrate .. //depot/projects/usb/src/sys/dev/hwpmc/hwpmc_core.c#2 integrate .. //depot/projects/usb/src/sys/dev/hwpmc/hwpmc_intel.c#4 integrate .. //depot/projects/usb/src/sys/dev/hwpmc/pmc_events.h#5 integrate .. //depot/projects/usb/src/sys/dev/mmc/mmc.c#7 integrate .. //depot/projects/usb/src/sys/dev/puc/pucdata.c#9 integrate .. //depot/projects/usb/src/sys/dev/sdhci/sdhci.c#3 integrate .. //depot/projects/usb/src/sys/dev/sound/pci/hda/hdac.c#22 integrate .. //depot/projects/usb/src/sys/dev/usb/u3g.c#4 integrate .. //depot/projects/usb/src/sys/dev/usb2/bluetooth/ng_ubt2.c#21 integrate .. //depot/projects/usb/src/sys/dev/usb2/bluetooth/ubtbcmfw2.c#12 integrate .. //depot/projects/usb/src/sys/dev/usb2/controller/at91dci_atmelarm.c#19 integrate .. //depot/projects/usb/src/sys/dev/usb2/controller/ehci2_pci.c#22 integrate .. //depot/projects/usb/src/sys/dev/usb2/controller/musb2_otg_atmelarm.c#16 integrate .. //depot/projects/usb/src/sys/dev/usb2/controller/ohci2_atmelarm.c#17 integrate .. //depot/projects/usb/src/sys/dev/usb2/controller/ohci2_pci.c#18 integrate .. //depot/projects/usb/src/sys/dev/usb2/controller/uhci2_pci.c#20 integrate .. //depot/projects/usb/src/sys/dev/usb2/controller/uss820dci_atmelarm.c#10 integrate .. //depot/projects/usb/src/sys/dev/usb2/core/usb2_compat_linux.c#16 integrate .. //depot/projects/usb/src/sys/dev/usb2/core/usb2_hub.c#36 integrate .. //depot/projects/usb/src/sys/dev/usb2/ethernet/if_aue2.c#18 integrate .. //depot/projects/usb/src/sys/dev/usb2/ethernet/if_axe2.c#18 integrate .. //depot/projects/usb/src/sys/dev/usb2/ethernet/if_cdce2.c#16 integrate .. //depot/projects/usb/src/sys/dev/usb2/ethernet/if_cue2.c#17 integrate .. //depot/projects/usb/src/sys/dev/usb2/ethernet/if_kue2.c#17 integrate .. //depot/projects/usb/src/sys/dev/usb2/ethernet/if_rue2.c#17 integrate .. //depot/projects/usb/src/sys/dev/usb2/ethernet/if_udav2.c#17 integrate .. //depot/projects/usb/src/sys/dev/usb2/input/uhid2.c#15 integrate .. //depot/projects/usb/src/sys/dev/usb2/input/ukbd2.c#15 integrate .. //depot/projects/usb/src/sys/dev/usb2/misc/udbp2.c#12 integrate .. //depot/projects/usb/src/sys/dev/usb2/misc/ufm2.c#10 integrate .. //depot/projects/usb/src/sys/dev/usb2/serial/u3g2.c#9 integrate .. //depot/projects/usb/src/sys/dev/usb2/serial/uark2.c#15 integrate .. //depot/projects/usb/src/sys/dev/usb2/serial/ubsa2.c#21 integrate .. //depot/projects/usb/src/sys/dev/usb2/serial/ubser2.c#15 integrate .. //depot/projects/usb/src/sys/dev/usb2/serial/uchcom2.c#18 integrate .. //depot/projects/usb/src/sys/dev/usb2/serial/ucycom2.c#16 integrate .. //depot/projects/usb/src/sys/dev/usb2/serial/ufoma2.c#21 integrate .. //depot/projects/usb/src/sys/dev/usb2/serial/uftdi2.c#18 integrate .. //depot/projects/usb/src/sys/dev/usb2/serial/ugensa2.c#22 integrate .. //depot/projects/usb/src/sys/dev/usb2/serial/uipaq2.c#17 integrate .. //depot/projects/usb/src/sys/dev/usb2/serial/umct2.c#15 integrate .. //depot/projects/usb/src/sys/dev/usb2/serial/umodem2.c#18 integrate .. //depot/projects/usb/src/sys/dev/usb2/serial/umoscom2.c#16 integrate .. //depot/projects/usb/src/sys/dev/usb2/serial/uplcom2.c#18 integrate .. //depot/projects/usb/src/sys/dev/usb2/serial/uvisor2.c#16 integrate .. //depot/projects/usb/src/sys/dev/usb2/serial/uvscom2.c#18 integrate .. //depot/projects/usb/src/sys/dev/usb2/sound/uaudio2.c#26 integrate .. //depot/projects/usb/src/sys/dev/usb2/storage/ata-usb2.c#15 integrate .. //depot/projects/usb/src/sys/dev/usb2/storage/umass2.c#25 integrate .. //depot/projects/usb/src/sys/dev/usb2/storage/urio2.c#15 integrate .. //depot/projects/usb/src/sys/dev/usb2/storage/ustorage2_fs.c#16 integrate .. //depot/projects/usb/src/sys/dev/usb2/wlan/if_rum2.c#24 integrate .. //depot/projects/usb/src/sys/dev/usb2/wlan/if_ural2.c#25 integrate .. //depot/projects/usb/src/sys/dev/usb2/wlan/if_zyd2.c#28 integrate .. //depot/projects/usb/src/sys/dev/xen/blkback/blkback.c#2 integrate .. //depot/projects/usb/src/sys/fs/cd9660/cd9660_lookup.c#3 integrate .. //depot/projects/usb/src/sys/fs/cd9660/cd9660_node.c#5 integrate .. //depot/projects/usb/src/sys/fs/cd9660/cd9660_node.h#3 integrate .. //depot/projects/usb/src/sys/fs/cd9660/cd9660_rrip.c#6 integrate .. //depot/projects/usb/src/sys/fs/cd9660/cd9660_vfsops.c#6 integrate .. //depot/projects/usb/src/sys/fs/cd9660/cd9660_vnops.c#6 integrate .. //depot/projects/usb/src/sys/fs/coda/coda_vfsops.c#4 integrate .. //depot/projects/usb/src/sys/fs/devfs/devfs_devs.c#11 integrate .. //depot/projects/usb/src/sys/fs/devfs/devfs_vnops.c#15 integrate .. //depot/projects/usb/src/sys/fs/fifofs/fifo_vnops.c#8 integrate .. //depot/projects/usb/src/sys/fs/hpfs/hpfs_vfsops.c#7 integrate .. //depot/projects/usb/src/sys/fs/nullfs/null_vnops.c#11 integrate .. //depot/projects/usb/src/sys/fs/nwfs/nwfs_subr.c#4 integrate .. //depot/projects/usb/src/sys/fs/nwfs/nwfs_vnops.c#6 integrate .. //depot/projects/usb/src/sys/fs/smbfs/smbfs_vnops.c#9 integrate .. //depot/projects/usb/src/sys/fs/tmpfs/tmpfs_subr.c#7 integrate .. //depot/projects/usb/src/sys/fs/udf/udf_vnops.c#9 integrate .. //depot/projects/usb/src/sys/geom/geom.h#6 integrate .. //depot/projects/usb/src/sys/geom/geom_subr.c#8 integrate .. //depot/projects/usb/src/sys/i386/i386/io_apic.c#6 integrate .. //depot/projects/usb/src/sys/i386/i386/local_apic.c#12 integrate .. //depot/projects/usb/src/sys/i386/i386/locore.s#5 integrate .. //depot/projects/usb/src/sys/i386/i386/mp_machdep.c#13 integrate .. //depot/projects/usb/src/sys/i386/i386/msi.c#7 integrate .. //depot/projects/usb/src/sys/i386/i386/swtch.s#6 integrate .. //depot/projects/usb/src/sys/i386/include/apicvar.h#7 integrate .. //depot/projects/usb/src/sys/i386/include/cpufunc.h#7 integrate .. //depot/projects/usb/src/sys/i386/include/intr_machdep.h#6 integrate .. //depot/projects/usb/src/sys/i386/linux/linux_locore.s#3 integrate .. //depot/projects/usb/src/sys/i386/svr4/svr4_locore.s#2 integrate .. //depot/projects/usb/src/sys/i386/xen/mp_machdep.c#6 integrate .. //depot/projects/usb/src/sys/kern/kern_jail.c#15 integrate .. //depot/projects/usb/src/sys/kern/kern_mib.c#10 integrate .. //depot/projects/usb/src/sys/kern/kern_sysctl.c#10 integrate .. //depot/projects/usb/src/sys/kern/tty_info.c#3 integrate .. //depot/projects/usb/src/sys/kern/vfs_cache.c#16 integrate .. //depot/projects/usb/src/sys/modules/usb2/Makefile#10 integrate .. //depot/projects/usb/src/sys/net/if_llatbl.c#2 integrate .. //depot/projects/usb/src/sys/net80211/_ieee80211.h#10 integrate .. //depot/projects/usb/src/sys/net80211/ieee80211.c#13 integrate .. //depot/projects/usb/src/sys/net80211/ieee80211.h#11 integrate .. //depot/projects/usb/src/sys/net80211/ieee80211_crypto.h#7 integrate .. //depot/projects/usb/src/sys/net80211/ieee80211_ddb.c#8 integrate .. //depot/projects/usb/src/sys/net80211/ieee80211_ht.h#8 integrate .. //depot/projects/usb/src/sys/net80211/ieee80211_ioctl.c#16 integrate .. //depot/projects/usb/src/sys/net80211/ieee80211_ioctl.h#9 integrate .. //depot/projects/usb/src/sys/net80211/ieee80211_node.c#15 integrate .. //depot/projects/usb/src/sys/net80211/ieee80211_node.h#11 integrate .. //depot/projects/usb/src/sys/net80211/ieee80211_regdomain.c#7 integrate .. //depot/projects/usb/src/sys/net80211/ieee80211_regdomain.h#3 integrate .. //depot/projects/usb/src/sys/net80211/ieee80211_tdma.c#2 integrate .. //depot/projects/usb/src/sys/net80211/ieee80211_var.h#14 integrate .. //depot/projects/usb/src/sys/netinet/ip_fw2.c#16 integrate .. //depot/projects/usb/src/sys/netinet6/frag6.c#11 integrate .. //depot/projects/usb/src/sys/netinet6/in6.c#15 integrate .. //depot/projects/usb/src/sys/netinet6/in6_gif.c#10 integrate .. //depot/projects/usb/src/sys/netinet6/in6_ifattach.c#13 integrate .. //depot/projects/usb/src/sys/netinet6/ip6_forward.c#11 integrate .. //depot/projects/usb/src/sys/netinet6/ip6_input.c#15 integrate .. //depot/projects/usb/src/sys/netinet6/ip6_var.h#10 integrate .. //depot/projects/usb/src/sys/netinet6/nd6.c#13 integrate .. //depot/projects/usb/src/sys/netinet6/nd6_nbr.c#12 integrate .. //depot/projects/usb/src/sys/netinet6/nd6_rtr.c#11 integrate .. //depot/projects/usb/src/sys/netinet6/vinet6.h#4 integrate .. //depot/projects/usb/src/sys/netipsec/ipsec_mbuf.c#5 integrate .. //depot/projects/usb/src/sys/netipsec/ipsec_output.c#10 integrate .. //depot/projects/usb/src/sys/nfs4client/nfs4_subs.c#3 integrate .. //depot/projects/usb/src/sys/nfsclient/nfs_vfsops.c#14 integrate .. //depot/projects/usb/src/sys/nfsclient/nfs_vnops.c#16 integrate .. //depot/projects/usb/src/sys/nfsserver/nfs_srvsubs.c#13 integrate .. //depot/projects/usb/src/sys/opencrypto/cryptosoft.c#6 integrate .. //depot/projects/usb/src/sys/sys/_null.h#2 integrate .. //depot/projects/usb/src/sys/sys/cdefs.h#5 integrate .. //depot/projects/usb/src/sys/sys/conf.h#13 integrate .. //depot/projects/usb/src/sys/sys/malloc.h#5 integrate .. //depot/projects/usb/src/sys/sys/param.h#19 integrate .. //depot/projects/usb/src/sys/sys/pmc.h#6 integrate .. //depot/projects/usb/src/sys/sys/types.h#7 integrate .. //depot/projects/usb/src/sys/sys/unistd.h#3 integrate .. //depot/projects/usb/src/sys/sys/vnode.h#15 integrate .. //depot/projects/usb/src/sys/ufs/ffs/ffs_alloc.c#8 integrate .. //depot/projects/usb/src/sys/ufs/ffs/ffs_balloc.c#5 integrate .. //depot/projects/usb/src/sys/ufs/ffs/ffs_extern.h#6 integrate .. //depot/projects/usb/src/sys/ufs/ffs/ffs_inode.c#9 integrate .. //depot/projects/usb/src/sys/ufs/ffs/ffs_vfsops.c#14 integrate .. //depot/projects/usb/src/sys/ufs/ffs/ffs_vnops.c#11 integrate Differences ... ==== //depot/projects/usb/src/sys/amd64/amd64/cpu_switch.S#10 (text+ko) ==== @@ -30,7 +30,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/sys/amd64/amd64/cpu_switch.S,v 1.165 2009/01/20 12:07:49 kib Exp $ + * $FreeBSD: src/sys/amd64/amd64/cpu_switch.S,v 1.166 2009/01/31 11:37:21 obrien Exp $ */ #include @@ -260,12 +260,12 @@ jmp do_tss store_seg: - movl %gs,PCB_GS(%r8) + mov %gs,PCB_GS(%r8) testl $PCB_GS32BIT,PCB_FLAGS(%r8) jnz 2f -1: movl %ds,PCB_DS(%r8) - movl %es,PCB_ES(%r8) - movl %fs,PCB_FS(%r8) +1: mov %ds,PCB_DS(%r8) + mov %es,PCB_ES(%r8) + mov %fs,PCB_FS(%r8) jmp done_store_seg 2: movq PCPU(GS32P),%rax movq (%rax),%rax @@ -277,11 +277,11 @@ jnz 2f 1: movl $MSR_GSBASE,%ecx rdmsr - movl PCB_GS(%r8),%gs + mov PCB_GS(%r8),%gs wrmsr - movl PCB_DS(%r8),%ds - movl PCB_ES(%r8),%es - movl PCB_FS(%r8),%fs + mov PCB_DS(%r8),%ds + mov PCB_ES(%r8),%es + mov PCB_FS(%r8),%fs jmp restore_fsbase /* Restore userland %gs while preserving kernel gsbase */ 2: movq PCPU(GS32P),%rax ==== //depot/projects/usb/src/sys/amd64/amd64/fpu.c#3 (text+ko) ==== @@ -31,7 +31,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/amd64/fpu.c,v 1.159 2006/06/19 22:36:01 davidxu Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/fpu.c,v 1.160 2009/01/28 20:35:16 jhb Exp $"); #include #include @@ -391,6 +391,7 @@ { struct pcb *pcb; register_t s; + u_short control; if (PCPU_GET(fpcurthread) == curthread) { printf("fpudna: fpcurthread == curthread %d times\n", @@ -421,6 +422,10 @@ * explicitly load sanitized registers. */ fxrstor(&fpu_cleanstate); + if (pcb->pcb_flags & PCB_32BIT) { + control = __INITIAL_FPUCW_I386__; + fldcw(&control); + } pcb->pcb_flags |= PCB_FPUINITDONE; } else fxrstor(&pcb->pcb_save); ==== //depot/projects/usb/src/sys/amd64/amd64/io_apic.c#6 (text+ko) ==== @@ -28,7 +28,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/amd64/io_apic.c,v 1.31 2007/06/05 18:57:48 jhb Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/io_apic.c,v 1.32 2009/01/29 09:22:56 jeff Exp $"); #include "opt_isa.h" @@ -327,39 +327,56 @@ { struct ioapic_intsrc *intpin = (struct ioapic_intsrc *)isrc; struct ioapic *io = (struct ioapic *)isrc->is_pic; + u_int old_vector; + u_int old_id; + + /* + * keep 1st core as the destination for NMI + */ + if (intpin->io_irq == IRQ_NMI) + apic_id = 0; + + /* + * Set us up to free the old irq. + */ + old_vector = intpin->io_vector; + old_id = intpin->io_cpu; + if (old_vector && apic_id == old_id) + return; + /* + * Allocate an APIC vector for this interrupt pin. Once + * we have a vector we program the interrupt pin. + */ intpin->io_cpu = apic_id; + intpin->io_vector = apic_alloc_vector(apic_id, intpin->io_irq); if (bootverbose) { - printf("ioapic%u: Assigning ", io->io_id); + printf("ioapic%u: routing intpin %u (", io->io_id, + intpin->io_intpin); ioapic_print_irq(intpin); - printf(" to local APIC %u\n", intpin->io_cpu); + printf(") to lapic %u vector %u\n", intpin->io_cpu, + intpin->io_vector); } ioapic_program_intpin(intpin); + /* + * Free the old vector after the new one is established. This is done + * to prevent races where we could miss an interrupt. + */ + if (old_vector) + apic_free_vector(old_id, old_vector, intpin->io_irq); } static void ioapic_enable_intr(struct intsrc *isrc) { struct ioapic_intsrc *intpin = (struct ioapic_intsrc *)isrc; - struct ioapic *io = (struct ioapic *)isrc->is_pic; - if (intpin->io_vector == 0) { - /* - * Allocate an APIC vector for this interrupt pin. Once - * we have a vector we program the interrupt pin. - */ - intpin->io_vector = apic_alloc_vector(intpin->io_irq); - if (bootverbose) { - printf("ioapic%u: routing intpin %u (", io->io_id, - intpin->io_intpin); - ioapic_print_irq(intpin); - printf(") to vector %u\n", intpin->io_vector); - } - ioapic_program_intpin(intpin); - apic_enable_vector(intpin->io_vector); - } + if (intpin->io_vector == 0) + ioapic_assign_cpu(isrc, pcpu_find(0)->pc_apic_id); + apic_enable_vector(intpin->io_cpu, intpin->io_vector); } + static void ioapic_disable_intr(struct intsrc *isrc) { @@ -369,11 +386,11 @@ if (intpin->io_vector != 0) { /* Mask this interrupt pin and free its APIC vector. */ vector = intpin->io_vector; - apic_disable_vector(vector); + apic_disable_vector(intpin->io_cpu, vector); intpin->io_masked = 1; intpin->io_vector = 0; ioapic_program_intpin(intpin); - apic_free_vector(vector, intpin->io_irq); + apic_free_vector(intpin->io_cpu, vector, intpin->io_irq); } } ==== //depot/projects/usb/src/sys/amd64/amd64/local_apic.c#12 (text+ko) ==== @@ -32,7 +32,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/amd64/local_apic.c,v 1.50 2008/12/11 15:56:30 jhb Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/local_apic.c,v 1.51 2009/01/29 09:22:56 jeff Exp $"); #include "opt_hwpmc_hooks.h" #include "opt_kdtrace.h" @@ -46,6 +46,8 @@ #include #include #include +#include +#include #include #include @@ -109,6 +111,8 @@ u_long la_hard_ticks; u_long la_stat_ticks; u_long la_prof_ticks; + /* Include IDT_SYSCALL to make indexing easier. */ + u_int la_ioint_irqs[APIC_NUM_IOINTS + 1]; } static lapics[MAX_APIC_ID + 1]; /* XXX: should thermal be an NMI? */ @@ -134,8 +138,6 @@ IDTVEC(apic_isr7), /* 224 - 255 */ }; -/* Include IDT_SYSCALL to make indexing easier. */ -static u_int ioint_irqs[APIC_NUM_IOINTS + 1]; static u_int32_t lapic_timer_divisors[] = { APIC_TDCR_1, APIC_TDCR_2, APIC_TDCR_4, APIC_TDCR_8, APIC_TDCR_16, @@ -215,14 +217,12 @@ /* Perform basic initialization of the BSP's local APIC. */ lapic_enable(); - ioint_irqs[IDT_SYSCALL - APIC_IO_INTS] = IRQ_SYSCALL; /* Set BSP's per-CPU local APIC ID. */ PCPU_SET(apic_id, lapic_id()); /* Local APIC timer interrupt. */ setidt(APIC_TIMER_INT, IDTVEC(timerint), SDT_SYSIGT, SEL_KPL, 0); - ioint_irqs[APIC_TIMER_INT - APIC_IO_INTS] = IRQ_TIMER; /* XXX: error/thermal interrupts */ } @@ -254,6 +254,9 @@ lapics[apic_id].la_lvts[i] = lvts[i]; lapics[apic_id].la_lvts[i].lvt_active = 0; } + lapics[apic_id].la_ioint_irqs[IDT_SYSCALL - APIC_IO_INTS] = IRQ_SYSCALL; + lapics[apic_id].la_ioint_irqs[APIC_TIMER_INT - APIC_IO_INTS] = + IRQ_TIMER; #ifdef SMP cpu_add(apic_id, boot_cpu); @@ -664,7 +667,8 @@ if (vector == -1) panic("Couldn't get vector from ISR!"); - isrc = intr_lookup_source(apic_idt_to_irq(vector)); + isrc = intr_lookup_source(apic_idt_to_irq(PCPU_GET(apic_id), + vector)); intr_execute_handlers(isrc, frame); } @@ -779,9 +783,19 @@ lapic->lvt_timer = value; } +u_int +apic_cpuid(u_int apic_id) +{ +#ifdef SMP + return apic_cpuids[apic_id]; +#else + return 0; +#endif +} + /* Request a free IDT vector to be used by the specified IRQ. */ u_int -apic_alloc_vector(u_int irq) +apic_alloc_vector(u_int apic_id, u_int irq) { u_int vector; @@ -793,9 +807,9 @@ */ mtx_lock_spin(&icu_lock); for (vector = 0; vector < APIC_NUM_IOINTS; vector++) { - if (ioint_irqs[vector] != 0) + if (lapics[apic_id].la_ioint_irqs[vector] != 0) continue; - ioint_irqs[vector] = irq; + lapics[apic_id].la_ioint_irqs[vector] = irq; mtx_unlock_spin(&icu_lock); return (vector + APIC_IO_INTS); } @@ -810,7 +824,7 @@ * satisfied, 0 is returned. */ u_int -apic_alloc_vectors(u_int *irqs, u_int count, u_int align) +apic_alloc_vectors(u_int apic_id, u_int *irqs, u_int count, u_int align) { u_int first, run, vector; @@ -833,7 +847,7 @@ for (vector = 0; vector < APIC_NUM_IOINTS; vector++) { /* Vector is in use, end run. */ - if (ioint_irqs[vector] != 0) { + if (lapics[apic_id].la_ioint_irqs[vector] != 0) { run = 0; first = 0; continue; @@ -853,7 +867,8 @@ /* Found a run, assign IRQs and return the first vector. */ for (vector = 0; vector < count; vector++) - ioint_irqs[first + vector] = irqs[vector]; + lapics[apic_id].la_ioint_irqs[first + vector] = + irqs[vector]; mtx_unlock_spin(&icu_lock); return (first + APIC_IO_INTS); } @@ -862,8 +877,14 @@ return (0); } +/* + * Enable a vector for a particular apic_id. Since all lapics share idt + * entries and ioint_handlers this enables the vector on all lapics. lapics + * which do not have the vector configured would report spurious interrupts + * should it fire. + */ void -apic_enable_vector(u_int vector) +apic_enable_vector(u_int apic_id, u_int vector) { KASSERT(vector != IDT_SYSCALL, ("Attempt to overwrite syscall entry")); @@ -873,7 +894,7 @@ } void -apic_disable_vector(u_int vector) +apic_disable_vector(u_int apic_id, u_int vector) { KASSERT(vector != IDT_SYSCALL, ("Attempt to overwrite syscall entry")); @@ -884,27 +905,42 @@ /* Release an APIC vector when it's no longer in use. */ void -apic_free_vector(u_int vector, u_int irq) +apic_free_vector(u_int apic_id, u_int vector, u_int irq) { + struct thread *td; KASSERT(vector >= APIC_IO_INTS && vector != IDT_SYSCALL && vector <= APIC_IO_INTS + APIC_NUM_IOINTS, ("Vector %u does not map to an IRQ line", vector)); KASSERT(irq < NUM_IO_INTS, ("Invalid IRQ %u", irq)); - KASSERT(ioint_irqs[vector - APIC_IO_INTS] == irq, ("IRQ mismatch")); + KASSERT(lapics[apic_id].la_ioint_irqs[vector - APIC_IO_INTS] == + irq, ("IRQ mismatch")); + + /* + * Bind us to the cpu that owned the vector before freeing it so + * we don't lose an interrupt delivery race. + */ + td = curthread; + thread_lock(td); + if (sched_is_bound(td)) + panic("apic_free_vector: Thread already bound.\n"); + sched_bind(td, apic_cpuid(apic_id)); mtx_lock_spin(&icu_lock); - ioint_irqs[vector - APIC_IO_INTS] = 0; + lapics[apic_id].la_ioint_irqs[vector - APIC_IO_INTS] = 0; mtx_unlock_spin(&icu_lock); + sched_unbind(td); + thread_unlock(td); + } /* Map an IDT vector (APIC) to an IRQ (interrupt source). */ u_int -apic_idt_to_irq(u_int vector) +apic_idt_to_irq(u_int apic_id, u_int vector) { KASSERT(vector >= APIC_IO_INTS && vector != IDT_SYSCALL && vector <= APIC_IO_INTS + APIC_NUM_IOINTS, ("Vector %u does not map to an IRQ line", vector)); - return (ioint_irqs[vector - APIC_IO_INTS]); + return (lapics[apic_id].la_ioint_irqs[vector - APIC_IO_INTS]); } #ifdef DDB @@ -915,6 +951,7 @@ { struct intsrc *isrc; int i, verbose; + u_int apic_id; u_int irq; if (strcmp(modif, "vv") == 0) @@ -923,9 +960,14 @@ verbose = 1; else verbose = 0; - for (i = 0; i < APIC_NUM_IOINTS + 1 && !db_pager_quit; i++) { - irq = ioint_irqs[i]; - if (irq != 0 && irq != IRQ_SYSCALL) { + for (apic_id = 0; apic_id <= MAX_APIC_ID; apic_id++) { + if (lapics[apic_id].la_present == 0) + continue; + db_printf("Interrupts bound to lapic %u\n", apic_id); + for (i = 0; i < APIC_NUM_IOINTS + 1 && !db_pager_quit; i++) { + irq = lapics[apic_id].la_ioint_irqs[i]; + if (irq == 0 || irq == IRQ_SYSCALL) + continue; db_printf("vec 0x%2x -> ", i + APIC_IO_INTS); if (irq == IRQ_TIMER) db_printf("lapic timer\n"); ==== //depot/projects/usb/src/sys/amd64/amd64/mp_machdep.c#15 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/amd64/mp_machdep.c,v 1.295 2008/11/26 19:25:13 jkim Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/mp_machdep.c,v 1.296 2009/01/29 09:22:56 jeff Exp $"); #include "opt_cpu.h" #include "opt_kstack_pages.h" @@ -152,6 +152,7 @@ int cpu_disabled:1; } static cpu_info[MAX_APIC_ID + 1]; int cpu_apic_ids[MAXCPU]; +int apic_cpuids[MAX_APIC_ID + 1]; /* Holds pending bitmap based IPIs per CPU */ static volatile u_int cpu_ipi_pending[MAXCPU]; @@ -349,6 +350,7 @@ KASSERT(boot_cpu_id == PCPU_GET(apic_id), ("BSP's APIC ID doesn't match boot_cpu_id")); cpu_apic_ids[0] = boot_cpu_id; + apic_cpuids[boot_cpu_id] = 0; assign_cpu_ids(); @@ -656,6 +658,7 @@ if (mp_ncpus < MAXCPU) { cpu_apic_ids[mp_ncpus] = i; + apic_cpuids[i] = mp_ncpus; mp_ncpus++; } else cpu_info[i].cpu_disabled = 1; ==== //depot/projects/usb/src/sys/amd64/amd64/msi.c#7 (text+ko) ==== @@ -35,7 +35,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/amd64/msi.c,v 1.9 2009/01/12 19:17:35 jkim Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/msi.c,v 1.10 2009/01/29 09:22:56 jeff Exp $"); #include #include @@ -161,7 +161,9 @@ { struct msi_intsrc *msi = (struct msi_intsrc *)isrc; - apic_enable_vector(msi->msi_vector); + if (msi->msi_vector == 0) + msi_assign_cpu(isrc, 0); + apic_enable_vector(msi->msi_cpu, msi->msi_vector); } static void @@ -169,7 +171,7 @@ { struct msi_intsrc *msi = (struct msi_intsrc *)isrc; - apic_disable_vector(msi->msi_vector); + apic_disable_vector(msi->msi_cpu, msi->msi_vector); } static int @@ -199,15 +201,35 @@ msi_assign_cpu(struct intsrc *isrc, u_int apic_id) { struct msi_intsrc *msi = (struct msi_intsrc *)isrc; + int old_vector; + u_int old_id; + int vector; + /* Store information to free existing irq. */ + old_vector = msi->msi_vector; + old_id = msi->msi_cpu; + if (old_vector && old_id == apic_id) + return; + /* Allocate IDT vector on this cpu. */ + vector = apic_alloc_vector(apic_id, msi->msi_irq); + if (vector == 0) + return; /* XXX alloc_vector panics on failure. */ msi->msi_cpu = apic_id; + msi->msi_vector = vector; if (bootverbose) - printf("msi: Assigning %s IRQ %d to local APIC %u\n", + printf("msi: Assigning %s IRQ %d to local APIC %u vector %u\n", msi->msi_msix ? "MSI-X" : "MSI", msi->msi_irq, - msi->msi_cpu); + msi->msi_cpu, msi->msi_vector); pci_remap_msi_irq(msi->msi_dev, msi->msi_irq); + /* + * Free the old vector after the new one is established. This is done + * to prevent races where we could miss an interrupt. + */ + if (old_vector) + apic_free_vector(old_id, old_vector, msi->msi_irq); } + void msi_init(void) { @@ -263,7 +285,7 @@ msi_alloc(device_t dev, int count, int maxcount, int *irqs) { struct msi_intsrc *msi, *fsrc; - int cnt, i, vector; + int cnt, i; if (!msi_enabled) return (ENXIO); @@ -309,22 +331,12 @@ /* Ok, we now have the IRQs allocated. */ KASSERT(cnt == count, ("count mismatch")); - /* Allocate 'count' IDT vectors. */ - vector = apic_alloc_vectors(irqs, count, maxcount); - if (vector == 0) { - mtx_unlock(&msi_lock); - return (ENOSPC); - } - /* Assign IDT vectors and make these messages owned by 'dev'. */ fsrc = (struct msi_intsrc *)intr_lookup_source(irqs[0]); for (i = 0; i < count; i++) { msi = (struct msi_intsrc *)intr_lookup_source(irqs[i]); msi->msi_dev = dev; - msi->msi_vector = vector + i; - if (bootverbose) - printf("msi: routing MSI IRQ %d to vector %u\n", - msi->msi_irq, msi->msi_vector); + msi->msi_vector = 0; msi->msi_first = fsrc; KASSERT(msi->msi_intsrc.is_handlers == 0, ("dead MSI has handlers")); @@ -377,14 +389,18 @@ KASSERT(msi->msi_dev == first->msi_dev, ("owner mismatch")); msi->msi_first = NULL; msi->msi_dev = NULL; - apic_free_vector(msi->msi_vector, msi->msi_irq); + if (msi->msi_vector) + apic_free_vector(msi->msi_cpu, msi->msi_vector, + msi->msi_irq); msi->msi_vector = 0; } /* Clear out the first message. */ first->msi_first = NULL; first->msi_dev = NULL; - apic_free_vector(first->msi_vector, first->msi_irq); + if (first->msi_vector) + apic_free_vector(first->msi_cpu, first->msi_vector, + first->msi_irq); first->msi_vector = 0; first->msi_count = 0; @@ -433,7 +449,7 @@ msix_alloc(device_t dev, int *irq) { struct msi_intsrc *msi; - int i, vector; + int i; if (!msi_enabled) return (ENXIO); @@ -468,15 +484,9 @@ goto again; } - /* Allocate an IDT vector. */ - vector = apic_alloc_vector(i); - if (bootverbose) - printf("msi: routing MSI-X IRQ %d to vector %u\n", msi->msi_irq, - vector); - /* Setup source. */ msi->msi_dev = dev; - msi->msi_vector = vector; + msi->msi_vector = 0; msi->msi_msix = 1; KASSERT(msi->msi_intsrc.is_handlers == 0, ("dead MSI-X has handlers")); @@ -508,7 +518,8 @@ /* Clear out the message. */ msi->msi_dev = NULL; - apic_free_vector(msi->msi_vector, msi->msi_irq); + if (msi->msi_vector) + apic_free_vector(msi->msi_cpu, msi->msi_vector, msi->msi_irq); msi->msi_vector = 0; msi->msi_msix = 0; ==== //depot/projects/usb/src/sys/amd64/ia32/ia32_signal.c#6 (text+ko) ==== @@ -32,7 +32,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/ia32/ia32_signal.c,v 1.19 2008/09/02 17:52:11 kib Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/ia32/ia32_signal.c,v 1.20 2009/01/31 11:37:21 obrien Exp $"); #include "opt_compat.h" @@ -328,8 +328,8 @@ sf.sf_uc.uc_mcontext.mc_onstack = (oonstack) ? 1 : 0; sf.sf_uc.uc_mcontext.mc_gs = rgs(); sf.sf_uc.uc_mcontext.mc_fs = rfs(); - __asm __volatile("movl %%es,%0" : "=rm" (sf.sf_uc.uc_mcontext.mc_es)); - __asm __volatile("movl %%ds,%0" : "=rm" (sf.sf_uc.uc_mcontext.mc_ds)); + __asm __volatile("mov %%es,%0" : "=rm" (sf.sf_uc.uc_mcontext.mc_es)); + __asm __volatile("mov %%ds,%0" : "=rm" (sf.sf_uc.uc_mcontext.mc_ds)); sf.sf_uc.uc_mcontext.mc_edi = regs->tf_rdi; sf.sf_uc.uc_mcontext.mc_esi = regs->tf_rsi; sf.sf_uc.uc_mcontext.mc_ebp = regs->tf_rbp; @@ -443,8 +443,8 @@ sf.sf_uc.uc_mcontext.mc_onstack = (oonstack) ? 1 : 0; sf.sf_uc.uc_mcontext.mc_gs = rgs(); sf.sf_uc.uc_mcontext.mc_fs = rfs(); - __asm __volatile("movl %%es,%0" : "=rm" (sf.sf_uc.uc_mcontext.mc_es)); - __asm __volatile("movl %%ds,%0" : "=rm" (sf.sf_uc.uc_mcontext.mc_ds)); + __asm __volatile("mov %%es,%0" : "=rm" (sf.sf_uc.uc_mcontext.mc_es)); + __asm __volatile("mov %%ds,%0" : "=rm" (sf.sf_uc.uc_mcontext.mc_ds)); sf.sf_uc.uc_mcontext.mc_edi = regs->tf_rdi; sf.sf_uc.uc_mcontext.mc_esi = regs->tf_rsi; sf.sf_uc.uc_mcontext.mc_ebp = regs->tf_rbp; ==== //depot/projects/usb/src/sys/amd64/ia32/ia32_sigtramp.S#3 (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/amd64/ia32/ia32_sigtramp.S,v 1.3 2006/09/23 13:42:09 davidxu Exp $ + * $FreeBSD: src/sys/amd64/ia32/ia32_sigtramp.S,v 1.4 2009/01/31 11:37:21 obrien Exp $ */ #include "opt_compat.h" @@ -45,8 +45,8 @@ calll *IA32_SIGF_HANDLER(%esp) leal IA32_SIGF_UC(%esp),%eax /* get ucontext */ pushl %eax - movl IA32_UC_ES(%eax),%es /* restore %es */ - movl IA32_UC_DS(%eax),%ds /* restore %ds */ + mov IA32_UC_ES(%eax),%es /* restore %es */ + mov IA32_UC_DS(%eax),%ds /* restore %ds */ movl $SYS_sigreturn,%eax pushl %eax /* junk to fake return addr. */ int $0x80 /* enter kernel with args */ @@ -60,8 +60,8 @@ calll *IA32_SIGF_HANDLER(%esp) leal IA32_SIGF_UC4(%esp),%eax/* get ucontext */ pushl %eax - movl IA32_UC4_ES(%eax),%es /* restore %es */ - movl IA32_UC4_DS(%eax),%ds /* restore %ds */ + mov IA32_UC4_ES(%eax),%es /* restore %es */ + mov IA32_UC4_DS(%eax),%ds /* restore %ds */ movl $344,%eax /* 4.x SYS_sigreturn */ pushl %eax /* junk to fake return addr. */ int $0x80 /* enter kernel with args */ ==== //depot/projects/usb/src/sys/amd64/include/apicvar.h#6 (text+ko) ==== @@ -26,7 +26,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/sys/amd64/include/apicvar.h,v 1.26 2008/12/11 15:56:30 jhb Exp $ + * $FreeBSD: src/sys/amd64/include/apicvar.h,v 1.27 2009/01/29 09:22:56 jeff Exp $ */ #ifndef _MACHINE_APICVAR_H_ @@ -176,14 +176,17 @@ IDTVEC(apic_isr7), IDTVEC(spuriousint), IDTVEC(timerint); extern vm_paddr_t lapic_paddr; +extern int apic_cpuids[]; -u_int apic_alloc_vector(u_int irq); -u_int apic_alloc_vectors(u_int *irqs, u_int count, u_int align); -void apic_disable_vector(u_int vector); -void apic_enable_vector(u_int vector); -void apic_free_vector(u_int vector, u_int irq); -u_int apic_idt_to_irq(u_int vector); +u_int apic_alloc_vector(u_int apic_id, u_int irq); +u_int apic_alloc_vectors(u_int apic_id, u_int *irqs, u_int count, + u_int align); +void apic_disable_vector(u_int apic_id, u_int vector); +void apic_enable_vector(u_int apic_id, u_int vector); +void apic_free_vector(u_int apic_id, u_int vector, u_int irq); +u_int apic_idt_to_irq(u_int apic_id, u_int vector); void apic_register_enumerator(struct apic_enumerator *enumerator); +u_int apic_cpuid(u_int apic_id); void *ioapic_create(vm_paddr_t addr, int32_t apic_id, int intbase); int ioapic_disable_pin(void *cookie, u_int pin); int ioapic_get_vector(void *cookie, u_int pin); ==== //depot/projects/usb/src/sys/amd64/include/cpufunc.h#4 (text+ko) ==== @@ -27,7 +27,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/sys/amd64/include/cpufunc.h,v 1.150 2008/08/08 16:26:53 stas Exp $ + * $FreeBSD: src/sys/amd64/include/cpufunc.h,v 1.151 2009/01/31 11:37:21 obrien Exp $ */ /* @@ -482,7 +482,7 @@ rfs(void) { u_int sel; - __asm __volatile("movl %%fs,%0" : "=rm" (sel)); + __asm __volatile("mov %%fs,%0" : "=rm" (sel)); return (sel); } @@ -490,7 +490,7 @@ rgs(void) { u_int sel; - __asm __volatile("movl %%gs,%0" : "=rm" (sel)); + __asm __volatile("mov %%gs,%0" : "=rm" (sel)); return (sel); } @@ -498,20 +498,20 @@ rss(void) { u_int sel; - __asm __volatile("movl %%ss,%0" : "=rm" (sel)); + __asm __volatile("mov %%ss,%0" : "=rm" (sel)); return (sel); } static __inline void load_ds(u_int sel) { - __asm __volatile("movl %0,%%ds" : : "rm" (sel)); + __asm __volatile("mov %0,%%ds" : : "rm" (sel)); } static __inline void load_es(u_int sel) { - __asm __volatile("movl %0,%%es" : : "rm" (sel)); + __asm __volatile("mov %0,%%es" : : "rm" (sel)); } static inline void @@ -539,7 +539,7 @@ /* Preserve the fsbase value across the selector load */ fsbase = MSR_FSBASE; - __asm __volatile("rdmsr; movl %0,%%fs; wrmsr" + __asm __volatile("rdmsr; mov %0,%%fs; wrmsr" : : "rm" (sel), "c" (fsbase) : "eax", "edx"); } @@ -557,7 +557,7 @@ * being trashed happens to be the kernel gsbase at the time. */ gsbase = MSR_GSBASE; - __asm __volatile("pushfq; cli; rdmsr; movl %0,%%gs; wrmsr; popfq" + __asm __volatile("pushfq; cli; rdmsr; mov %0,%%gs; wrmsr; popfq" : : "rm" (sel), "c" (gsbase) : "eax", "edx"); } #else @@ -565,13 +565,13 @@ static __inline void load_fs(u_int sel) { - __asm __volatile("movl %0,%%fs" : : "rm" (sel)); + __asm __volatile("mov %0,%%fs" : : "rm" (sel)); >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Sun Feb 1 12:01:58 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 97F53106567F; Sun, 1 Feb 2009 12:01:57 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 18D6D1065679 for ; Sun, 1 Feb 2009 12:01:57 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 02B008FC08 for ; Sun, 1 Feb 2009 12:01:57 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n11C1u7d070557 for ; Sun, 1 Feb 2009 12:01:56 GMT (envelope-from hselasky@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n11C1uNY070555 for perforce@freebsd.org; Sun, 1 Feb 2009 12:01:56 GMT (envelope-from hselasky@FreeBSD.org) Date: Sun, 1 Feb 2009 12:01:56 GMT Message-Id: <200902011201.n11C1uNY070555@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky To: Perforce Change Reviews Cc: Subject: PERFORCE change 156991 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 01 Feb 2009 12:02:02 -0000 http://perforce.freebsd.org/chv.cgi?CH=156991 Change 156991 by hselasky@hselasky_laptop001 on 2009/02/01 12:01:52 USB bluetooth firmware load: Clearify a comment. Affected files ... .. //depot/projects/usb/src/sys/dev/usb2/bluetooth/ubtbcmfw2.c#13 edit Differences ... ==== //depot/projects/usb/src/sys/dev/usb2/bluetooth/ubtbcmfw2.c#13 (text+ko) ==== @@ -385,8 +385,8 @@ else if (fflags & FWRITE) xfer = sc->sc_xfer[UBTBCMFW_BULK_DT_WR]; else - return (EINVAL); /* XXX can happen? */ - + return (EINVAL); /* should not happen */ + if (usb2_fifo_alloc_buffer(fifo, xfer->max_data_length, UBTBCMFW_IFQ_MAXLEN) != 0) return (ENOMEM); From owner-p4-projects@FreeBSD.ORG Sun Feb 1 12:39:36 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id BC4CA1065672; Sun, 1 Feb 2009 12:39:35 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 64705106564A for ; Sun, 1 Feb 2009 12:39:35 +0000 (UTC) (envelope-from rene@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 1B90F8FC0A for ; Sun, 1 Feb 2009 12:39:35 +0000 (UTC) (envelope-from rene@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n11CdZrR074679 for ; Sun, 1 Feb 2009 12:39:35 GMT (envelope-from rene@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n11CdZrX074677 for perforce@freebsd.org; Sun, 1 Feb 2009 12:39:35 GMT (envelope-from rene@FreeBSD.org) Date: Sun, 1 Feb 2009 12:39:35 GMT Message-Id: <200902011239.n11CdZrX074677@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to rene@FreeBSD.org using -f From: Rene Ladan To: Perforce Change Reviews Cc: Subject: PERFORCE change 156992 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 01 Feb 2009 12:39:36 -0000 http://perforce.freebsd.org/chv.cgi?CH=156992 Change 156992 by rene@rene_self on 2009/02/01 12:38:45 IFC Affected files ... .. //depot/projects/docproj_nl/en_US.ISO8859-1/books/handbook/cutting-edge/chapter.sgml#12 integrate .. //depot/projects/docproj_nl/en_US.ISO8859-1/books/handbook/network-servers/chapter.sgml#12 integrate .. //depot/projects/docproj_nl/en_US.ISO8859-1/books/handbook/ppp-and-slip/chapter.sgml#8 integrate .. //depot/projects/docproj_nl/nl_NL.ISO8859-1/books/handbook/cutting-edge/chapter.sgml#19 integrate .. //depot/projects/docproj_nl/www/en/where.sgml#3 integrate Differences ... ==== //depot/projects/docproj_nl/en_US.ISO8859-1/books/handbook/cutting-edge/chapter.sgml#12 (text+ko) ==== @@ -1,7 +1,7 @@ @@ -1588,9 +1588,190 @@ The Canonical Way to Update Your System To update your system, you should check - /usr/src/UPDATING for any pre-buildworld steps - necessary for your version of the sources and then use the following - procedure: + /usr/src/UPDATING for any pre-buildworld + steps necessary for your version of the sources and then use the + procedure outlined here. + + These upgrade steps assume that you are currently using an old + &os; version, consisting of an old compiler, old kernel, old world and + old configuration files. By world here we mean the + core system binaries, libraries and programming files. The compiler + is part of world, but has a few special concerns. + + We also assume that you have already obtained the sources to a + newer system. If the sources available on the particular system are + old too, see for detailed help about + synchronizing them to a newer version. + + Updating the system from sources is a bit more subtle than it + might initially seem to be, and the &os; developers have found it + necessary over the years to change the recommended approach fairly + dramatically as new kinds of unavoidable dependencies come to light. + The rest of this section describes the rationale behind the currently + recommended upgrade sequence. + + Any successful update sequence must deal with the following + issues: + + + + The old compiler might not be able to compile the new + kernel. (Old compilers sometimes have bugs.) So, the new + kernel should be built with the new compiler. In particular, + the new compiler must be built before the new kernel is built. + This does not necessarily mean that the new compiler must + be installed before building the new + kernel. + + + + The new world might rely on new kernel features. So, the + new kernel must be installed before the new world is + installed. + + + + These first two issues are the basis for the + core buildworld, + buildkernel, + installkernel, + installworld sequence that we describe in + the following paragraphs. This is not an exhaustive list of all the + reasons why you should prefer the currently recommended upgrade + process. Some of the less obvious ones are listed below: + + + + The old world might not run correctly on the new kernel, so + you must install the new world immediately upon installing the + new kernel. + + + + Some configuration changes must be done before the new world + is installed, but others might break the old world. Hence, two + different configuration upgrade steps are generally + needed. + + + + For the most part, the update process only replaces or adds + files; existing old files are not deleted. In a few cases, this + can cause problems. As a result, the update procedure will + sometimes specify certain files that should be manually deleted + at certain steps. This may or may not be automated in the + future. + + + + These concerns have led to the following recommended sequence. + Note that the detailed sequence for particular updates may require + additional steps, but this core process should remain unchanged for + some time: + + + + make buildworld + + This first compiles the new compiler and a few related + tools, then uses the new compiler to compile the rest of the new + world. The result ends up + in /usr/obj. + + + + make buildkernel + + Unlike the older approach, using &man.config.8; and + &man.make.1;, this uses the new compiler + residing in /usr/obj. + This protects you against compiler-kernel mismatches. + + + + make installkernel + + Place the new kernel and kernel modules onto the disk, + making it possible to boot with the newly updated kernel. + + + + Reboot into single user mode. + + Single user mode minimizes problems from updating software + that's already running. It also minimizes any problems from + running the old world on a new kernel. + + + + mergemaster + + This does some initial configuration file updates in + preparation for the new world. For instance it may add new user + groups to the system, or new user names to the password database. + This is often necessary when new groups or special system-user + accounts have been added since the last update, so that + the installworld step will be able to + use the newly installed system user or system group names + without problems. + + + + make installworld + + Copies the world + from /usr/obj. You now + have a new kernel and new world on disk. + + + + mergemaster + + Now you can update the remaining configuration files, since + you have a new world on disk. + + + + Reboot. + + A full machine reboot is needed now to load the new kernel + and new world with new configuration files. + + + + Note that if you're upgrading from one release of the same &os; + branch to a more recent release of the same branch, i.e. from 7.0 to + 7.1, then this procedure may not be absolutely necessary, since + you're unlikely to run into serious mismatches between compiler, + kernel, userland and configuration files. The older approach + of make world followed + by building and installing a new kernel might work well enough for + minor updates. + + But, when upgrading across major releases, people who don't + follow this procedure should expect some problems. + + It is also worth noting that many upgrades + (i.e. 4.X to 5.0) may require + specific additional steps (renaming or deleting specific files prior + to installworld, for instance). Read + the /usr/src/UPDATING file carefully, + especially at the end, where the currently recommended upgrade + sequence is explicitly spelled out. + + This procedure has evolved over time as the developers have + found it impossible to completely prevent certain kinds of mismatch + problems. Hopefully, the current procedure will remain stable for a + long time. + + + Upgrading from &os; 3.X or earlier + releases is a bit trickier; read UPDATING + carefully if you have to perform this sort of upgrade. + + + To summarize, the currently recommended way of upgrading &os; + from sources is: &prompt.root; cd /usr/src &prompt.root; make buildworld ==== //depot/projects/docproj_nl/en_US.ISO8859-1/books/handbook/network-servers/chapter.sgml#12 (text+ko) ==== @@ -1,7 +1,7 @@ @@ -3227,7 +3227,7 @@ relatively simple. The default named configuration - is that of a basic resolving name server, ran in a + is that of a basic resolving name server, running in a &man.chroot.8; environment. To start the server one time with this configuration, use the following command: ==== //depot/projects/docproj_nl/en_US.ISO8859-1/books/handbook/ppp-and-slip/chapter.sgml#8 (text+ko) ==== @@ -1,7 +1,7 @@ @@ -156,9 +156,9 @@ - You have a modem or - other device connected to your system and configured - correctly which allows you to connect to your ISP. + A modem or + other device connected to your system and properly configured + to allow you to connect to your ISP. @@ -1825,9 +1825,14 @@ Check the Device Nodes - If you reconfigured your kernel then you recall the - sio device. If you did not - configure your kernel, there is no reason to worry. Just + When using a custom kernel, make sure to include the following + line in your kernel configuration file: + + device sio + + The sio device is already included + in the GENERIC kernel, so no additional steps + are necessary in this case. Just check the dmesg output for the modem device with: ==== //depot/projects/docproj_nl/nl_NL.ISO8859-1/books/handbook/cutting-edge/chapter.sgml#19 (text+ko) ==== @@ -1,7 +1,7 @@ @@ -178,9 +178,9 @@ - U heeft een modem of een ander apparaat verbonden - met uw pc en correct geconfigureerd wat het u mogelijk - maakt om verbinding te maken met uw ISP. + Een modem of een ander apparaat verbonden met uw PC en + correct geconfigureerd zodat u verbinding kan maken met uw + ISP. @@ -1966,28 +1966,33 @@ te zetten. - Controleer de apparaat nodes + Controleer de apparaatknooppunten + + Als er een eigen kernel gebruikt wordt, vergeet dan niet om + de volgende regel in uw kernelinstellingenbestand op te + nemen: + + device sio - Als u de kernel opnieuw geconfigureerd heeft herinnert - u zich ongetwijfeld het sio - apparaat. Als u uw kernel niet opnieuw heeft geconfigureerd - is er geen reden tot paniek. U kunt de resultaten van het - van het dmesg commando inzien voor het - modem apparaat door middel van: + Het apparaat sio is al in de kernel + GENERIC opgenomen, dus zijn er in dit geval + geen extra stappen nodig. Controleer de resultaten van het + commando dmesg voor het modemapparaat door + middel van: - &prompt.root; dmesg | grep sio + &prompt.root; dmesg | grep sio - U zou enige informatie moeten ontvangen over de - sio apparaten. Deze bevinden zich - op de COM poorten die we nodig hebben. Als uw modem zich - gedraagt als een standaard seriële poort zou u deze - moeten vinden als zijnde sio1 of - COM2. Als dat klopt hoeft u de - kernel niet opnieuw te bouwen. Wanneer u de sio apparaten - controleert en de modem is op sio1 - te vinden of als COM2 als u zich - onder &ms-dos; bevindt, dan is uw modem apparaat - /dev/cuad1. + U zou enige informatie moeten ontvangen over de + sio apparaten. Deze bevinden zich op + de COM-poorten die we nodig hebben. Als uw modem zich gedraagt + als een standaard seriële poort zou u deze moeten vinden + als zijnde sio1 of + COM2. Als dat klopt hoeft u de kernel + niet opnieuw te bouwen. Wanneer u de sio-apparaten controleert + en de modem is op sio1 te vinden of als + COM2 als u zich onder &ms-dos; bevindt, + dan is uw modemapparaat + /dev/cuad1. From owner-p4-projects@FreeBSD.ORG Sun Feb 1 15:04:02 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 16DA31065670; Sun, 1 Feb 2009 15:04:02 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id BA7671065673 for ; Sun, 1 Feb 2009 15:04:01 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id A7AAF8FC14 for ; Sun, 1 Feb 2009 15:04:01 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n11F41PI098646 for ; Sun, 1 Feb 2009 15:04:01 GMT (envelope-from hselasky@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n11F41fV098644 for perforce@freebsd.org; Sun, 1 Feb 2009 15:04:01 GMT (envelope-from hselasky@FreeBSD.org) Date: Sun, 1 Feb 2009 15:04:01 GMT Message-Id: <200902011504.n11F41fV098644@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky To: Perforce Change Reviews Cc: Subject: PERFORCE change 156995 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 01 Feb 2009 15:04:03 -0000 http://perforce.freebsd.org/chv.cgi?CH=156995 Change 156995 by hselasky@hselasky_laptop001 on 2009/02/01 15:03:41 Turn around dependencies in config file so that defining any USB device will automatically get the USB device group module built aswell. Suggested by Sam Leffler. Before example: device usb2_ethernet device usb2_ethernet_axe After example: device usb2_ethernet_axe Affected files ... .. //depot/projects/usb/src/sys/conf/files#48 edit Differences ... ==== //depot/projects/usb/src/sys/conf/files#48 (text+ko) ==== @@ -1535,28 +1535,33 @@ # # USB2 controller drivers # -dev/usb2/controller/at91dci.c optional usb2_core usb2_controller usb2_controller_at91dci -dev/usb2/controller/at91dci_atmelarm.c optional usb2_core usb2_controller usb2_controller_at91dci at91rm9200 -dev/usb2/controller/musb2_otg.c optional usb2_core usb2_controller usb2_controller_musb -dev/usb2/controller/musb2_otg_atmelarm.c optional usb2_core usb2_controller usb2_controller_musb at91rm9200 -dev/usb2/controller/ehci2.c optional usb2_core usb2_controller usb2_controller_ehci -dev/usb2/controller/ehci2_pci.c optional usb2_core usb2_controller usb2_controller_ehci pci -dev/usb2/controller/ohci2.c optional usb2_core usb2_controller usb2_controller_ohci -dev/usb2/controller/ohci2_atmelarm.c optional usb2_core usb2_controller usb2_controller_ohci at91rm9200 -dev/usb2/controller/ohci2_pci.c optional usb2_core usb2_controller usb2_controller_ohci pci -dev/usb2/controller/uhci2.c optional usb2_core usb2_controller usb2_controller_uhci -dev/usb2/controller/uhci2_pci.c optional usb2_core usb2_controller usb2_controller_uhci pci -dev/usb2/controller/uss820dci.c optional usb2_core usb2_controller usb2_controller_uss820dci -dev/usb2/controller/uss820dci_atmelarm.c optional usb2_core usb2_controller usb2_controller_uss820dci at91rm9200 -dev/usb2/controller/usb2_controller.c optional usb2_core usb2_controller +dev/usb2/controller/at91dci.c optional usb2_core usb2_controller_at91dci +dev/usb2/controller/at91dci_atmelarm.c optional usb2_core usb2_controller_at91dci at91rm9200 +dev/usb2/controller/musb2_otg.c optional usb2_core usb2_controller_musb +dev/usb2/controller/musb2_otg_atmelarm.c optional usb2_core usb2_controller_musb at91rm9200 +dev/usb2/controller/ehci2.c optional usb2_core usb2_controller_ehci +dev/usb2/controller/ehci2_pci.c optional usb2_core usb2_controller_ehci pci +dev/usb2/controller/ohci2.c optional usb2_core usb2_controller_ohci +dev/usb2/controller/ohci2_atmelarm.c optional usb2_core usb2_controller_ohci at91rm9200 +dev/usb2/controller/ohci2_pci.c optional usb2_core usb2_controller_ohci pci +dev/usb2/controller/uhci2.c optional usb2_core usb2_controller_uhci +dev/usb2/controller/uhci2_pci.c optional usb2_core usb2_controller_uhci pci +dev/usb2/controller/uss820dci.c optional usb2_core usb2_controller_uss820dci +dev/usb2/controller/uss820dci_atmelarm.c optional usb2_core usb2_controller_uss820dci at91rm9200 +dev/usb2/controller/usb2_controller.c optional usb2_core \ +(usb2_controller | usb2_controller_at91dci | usb2_controller_musb | \ + usb2_controller_ehci | usb2_controller_ohci | usb2_controller_uhci | \ + usb2_controller_uss820dci) # # USB2 storage drivers # -dev/usb2/storage/ata-usb2.c optional usb2_core usb2_storage usb2_storage_ata -dev/usb2/storage/umass2.c optional usb2_core usb2_storage usb2_storage_mass -dev/usb2/storage/urio2.c optional usb2_core usb2_storage usb2_storage_rio -dev/usb2/storage/usb2_storage.c optional usb2_core usb2_storage -dev/usb2/storage/ustorage2_fs.c optional usb2_core usb2_storage usb2_storage_fs +dev/usb2/storage/ata-usb2.c optional usb2_core usb2_storage_ata +dev/usb2/storage/umass2.c optional usb2_core usb2_storage_mass +dev/usb2/storage/urio2.c optional usb2_core usb2_storage_rio +dev/usb2/storage/ustorage2_fs.c optional usb2_core usb2_storage_fs +dev/usb2/storage/usb2_storage.c optional usb2_core \ +(usb2_storage | usb2_storage_ata | usb2_storage_mass | \ + usb2_storage_rio | usb2_storage_fs) # # USB2 NDIS driver # @@ -1591,63 +1596,74 @@ # # USB2 ethernet drivers # -dev/usb2/ethernet/if_aue2.c optional usb2_core usb2_ethernet usb2_ethernet_aue -dev/usb2/ethernet/if_axe2.c optional usb2_core usb2_ethernet usb2_ethernet_axe -dev/usb2/ethernet/if_cdce2.c optional usb2_core usb2_ethernet usb2_ethernet_cdce -dev/usb2/ethernet/if_cue2.c optional usb2_core usb2_ethernet usb2_ethernet_cue -dev/usb2/ethernet/if_kue2.c optional usb2_core usb2_ethernet usb2_ethernet_kue -dev/usb2/ethernet/if_rue2.c optional usb2_core usb2_ethernet usb2_ethernet_rue -dev/usb2/ethernet/if_udav2.c optional usb2_core usb2_ethernet usb2_ethernet_dav -dev/usb2/ethernet/usb2_ethernet.c optional usb2_core usb2_ethernet +dev/usb2/ethernet/if_aue2.c optional usb2_core usb2_ethernet_aue +dev/usb2/ethernet/if_axe2.c optional usb2_core usb2_ethernet_axe +dev/usb2/ethernet/if_cdce2.c optional usb2_core usb2_ethernet_cdce +dev/usb2/ethernet/if_cue2.c optional usb2_core usb2_ethernet_cue +dev/usb2/ethernet/if_kue2.c optional usb2_core usb2_ethernet_kue +dev/usb2/ethernet/if_rue2.c optional usb2_core usb2_ethernet_rue +dev/usb2/ethernet/if_udav2.c optional usb2_core usb2_ethernet_dav +dev/usb2/ethernet/usb2_ethernet.c optional usb2_core \ +(usb2_ethernet | usb2_ethernet_aue | usb2_ethernet_axe | \ + usb2_ethernet_cdce | usb2_ethernet_cue | usb2_ethernet_kue | \ + usb2_ethernet_rue | usb2_ethernet_dav) # # USB2 WLAN drivers # -dev/usb2/wlan/if_rum2.c optional usb2_core usb2_wlan usb2_wlan_rum -dev/usb2/wlan/if_ural2.c optional usb2_core usb2_wlan usb2_wlan_ral -dev/usb2/wlan/if_zyd2.c optional usb2_core usb2_wlan usb2_wlan_zyd -dev/usb2/wlan/usb2_wlan.c optional usb2_core usb2_wlan +dev/usb2/wlan/if_rum2.c optional usb2_core usb2_wlan_rum +dev/usb2/wlan/if_ural2.c optional usb2_core usb2_wlan_ral +dev/usb2/wlan/if_zyd2.c optional usb2_core usb2_wlan_zyd +dev/usb2/wlan/usb2_wlan.c optional usb2_core \ +(usb2_wlan | usb2_wlan_rum | usb2_wlan_ral | usb2_wlan_zyd) # # USB2 serial and parallel port drivers # -dev/usb2/serial/u3g2.c optional usb2_core usb2_serial usb2_serial_3g -dev/usb2/serial/uark2.c optional usb2_core usb2_serial usb2_serial_ark -dev/usb2/serial/ubsa2.c optional usb2_core usb2_serial usb2_serial_bsa -dev/usb2/serial/ubser2.c optional usb2_core usb2_serial usb2_serial_bser -dev/usb2/serial/uchcom2.c optional usb2_core usb2_serial usb2_serial_chcom -dev/usb2/serial/ucycom2.c optional usb2_core usb2_serial usb2_serial_cycom -dev/usb2/serial/ufoma2.c optional usb2_core usb2_serial usb2_serial_foma -dev/usb2/serial/uftdi2.c optional usb2_core usb2_serial usb2_serial_ftdi -dev/usb2/serial/ugensa2.c optional usb2_core usb2_serial usb2_serial_gensa -dev/usb2/serial/uipaq2.c optional usb2_core usb2_serial usb2_serial_ipaq -dev/usb2/serial/ulpt2.c optional usb2_core usb2_serial usb2_serial_lpt -dev/usb2/serial/umct2.c optional usb2_core usb2_serial usb2_serial_mct -dev/usb2/serial/umodem2.c optional usb2_core usb2_serial usb2_serial_modem -dev/usb2/serial/umoscom2.c optional usb2_core usb2_serial usb2_serial_moscom -dev/usb2/serial/uplcom2.c optional usb2_core usb2_serial usb2_serial_plcom -dev/usb2/serial/usb2_serial.c optional usb2_core usb2_serial -dev/usb2/serial/uvisor2.c optional usb2_core usb2_serial usb2_serial_visor -dev/usb2/serial/uvscom2.c optional usb2_core usb2_serial usb2_serial_vscom -dev/usb2/serial/u3g2.c optional usb2_core usb2_serial usb2_serial_3g +dev/usb2/serial/u3g2.c optional usb2_core usb2_serial_3g +dev/usb2/serial/uark2.c optional usb2_core usb2_serial_ark +dev/usb2/serial/ubsa2.c optional usb2_core usb2_serial_bsa +dev/usb2/serial/ubser2.c optional usb2_core usb2_serial_bser +dev/usb2/serial/uchcom2.c optional usb2_core usb2_serial_chcom +dev/usb2/serial/ucycom2.c optional usb2_core usb2_serial_cycom +dev/usb2/serial/ufoma2.c optional usb2_core usb2_serial_foma +dev/usb2/serial/uftdi2.c optional usb2_core usb2_serial_ftdi +dev/usb2/serial/ugensa2.c optional usb2_core usb2_serial_gensa +dev/usb2/serial/uipaq2.c optional usb2_core usb2_serial_ipaq +dev/usb2/serial/ulpt2.c optional usb2_core usb2_serial_lpt +dev/usb2/serial/umct2.c optional usb2_core usb2_serial_mct +dev/usb2/serial/umodem2.c optional usb2_core usb2_serial_modem +dev/usb2/serial/umoscom2.c optional usb2_core usb2_serial_moscom +dev/usb2/serial/uplcom2.c optional usb2_core usb2_serial_plcom +dev/usb2/serial/uvisor2.c optional usb2_core usb2_serial_visor +dev/usb2/serial/uvscom2.c optional usb2_core usb2_serial_vscom +dev/usb2/serial/usb2_serial.c optional usb2_core \ +(usb2_serial | usb2_serial_3g | usb2_serial_ark | usb2_serial_bsa | \ + usb2_serial_bser | usb2_serial_chcom | usb2_serial_cycom | \ + usb2_serial_foma | usb2_serial_ftdi | usb2_serial_gensa | \ + usb2_serial_ipaq | usb2_serial_lpt | usb2_serial_mct | \ + usb2_serial_modem | usb2_serial_moscom | usb2_serial_plcom | \ + usb2_serial_visor | usb2_serial_vscom) # # USB2 bluetooth drivers # -dev/usb2/bluetooth/usb2_bluetooth.c optional usb2_core usb2_bluetooth -dev/usb2/bluetooth/ng_ubt2.c optional usb2_core usb2_bluetooth usb2_bluetooth_ng -dev/usb2/bluetooth/ubtbcmfw2.c optional usb2_core usb2_bluetooth usb2_bluetooth_fw - +dev/usb2/bluetooth/ng_ubt2.c optional usb2_core usb2_bluetooth_ng +dev/usb2/bluetooth/ubtbcmfw2.c optional usb2_core usb2_bluetooth_fw +dev/usb2/bluetooth/usb2_bluetooth.c optional usb2_core \ +(usb2_bluetooth | usb2_bluetooth_ng | usb2_bluetooth_fw) # # USB2 misc drivers # -dev/usb2/misc/usb2_misc.c optional usb2_core usb2_misc -dev/usb2/misc/ufm2.c optional usb2_core usb2_misc usb2_misc_fm -dev/usb2/misc/udbp2.c optional usb2_core usb2_misc usb2_misc_dbp +dev/usb2/misc/ufm2.c optional usb2_core usb2_misc_fm +dev/usb2/misc/udbp2.c optional usb2_core usb2_misc_dbp +dev/usb2/misc/usb2_misc.c optional usb2_core \ +(usb2_misc | usb2_misc_fm | usb2_misc_dbp) # # USB2 input drivers # -dev/usb2/input/uhid2.c optional usb2_core usb2_input usb2_input_hid -dev/usb2/input/ukbd2.c optional usb2_core usb2_input usb2_input_kbd -dev/usb2/input/ums2.c optional usb2_core usb2_input usb2_input_ms -dev/usb2/input/usb2_input.c optional usb2_core usb2_input +dev/usb2/input/uhid2.c optional usb2_core usb2_input_hid +dev/usb2/input/ukbd2.c optional usb2_core usb2_input_kbd +dev/usb2/input/ums2.c optional usb2_core usb2_input_ms +dev/usb2/input/usb2_input.c optional usb2_core \ +(usb2_input | usb2_input_hid | usb2_input_kbd | usb2_input_ms) # # USB2 quirks # @@ -1662,8 +1678,9 @@ # # USB2 image drivers # -dev/usb2/image/usb2_image.c optional usb2_core usb2_image -dev/usb2/image/uscanner2.c optional usb2_core usb2_image usb2_scanner +dev/usb2/image/uscanner2.c optional usb2_core usb2_scanner +dev/usb2/image/usb2_image.c optional usb2_core \ +(usb2_image | usb2_scanner) # # USB2 sound and MIDI drivers # From owner-p4-projects@FreeBSD.ORG Sun Feb 1 17:02:02 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 7E5F21065673; Sun, 1 Feb 2009 17:02:01 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 3BA78106564A for ; Sun, 1 Feb 2009 17:02:01 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 2A9E38FC14 for ; Sun, 1 Feb 2009 17:02:01 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n11H21b7018953 for ; Sun, 1 Feb 2009 17:02:01 GMT (envelope-from hselasky@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n11H21AF018951 for perforce@freebsd.org; Sun, 1 Feb 2009 17:02:01 GMT (envelope-from hselasky@FreeBSD.org) Date: Sun, 1 Feb 2009 17:02:01 GMT Message-Id: <200902011702.n11H21AF018951@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky To: Perforce Change Reviews Cc: Subject: PERFORCE change 156997 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 01 Feb 2009 17:02:02 -0000 http://perforce.freebsd.org/chv.cgi?CH=156997 Change 156997 by hselasky@hselasky_laptop001 on 2009/02/01 17:01:25 Integrate EHCI Marvell++ support from the old USB stack. Affected files ... .. //depot/projects/usb/src/sys/dev/usb2/controller/ehci2.h#14 edit .. //depot/projects/usb/src/sys/dev/usb2/controller/ehci2_ixp4xx.c#1 add .. //depot/projects/usb/src/sys/dev/usb2/controller/ehci2_mbus.c#1 add .. //depot/projects/usb/src/sys/dev/usb2/controller/ehci2_pci.c#23 edit .. //depot/projects/usb/src/sys/modules/usb2/controller_ehci/Makefile#6 edit Differences ... ==== //depot/projects/usb/src/sys/dev/usb2/controller/ehci2.h#14 (text+ko) ==== @@ -468,7 +468,6 @@ struct ehci_sitd *sc_isoc_fs_p_last[EHCI_VIRTUAL_FRAMELIST_COUNT]; struct ehci_itd *sc_isoc_hs_p_last[EHCI_VIRTUAL_FRAMELIST_COUNT]; void *sc_intr_hdl; - device_t sc_dev; bus_size_t sc_io_size; bus_space_tag_t sc_io_tag; bus_space_handle_t sc_io_hdl; ==== //depot/projects/usb/src/sys/dev/usb2/controller/ehci2_pci.c#23 (text+ko) ==== @@ -237,7 +237,6 @@ USB_GET_DMA_TAG(self), &ehci_iterate_hw_softc)) { return (ENOMEM); } - sc->sc_dev = self; pci_enable_busmaster(self); ==== //depot/projects/usb/src/sys/modules/usb2/controller_ehci/Makefile#6 (text+ko) ==== @@ -36,4 +36,12 @@ SRCS+= ehci2.c SRCS+= ehci2_pci.c +.if defined(HAS_MARVELL_EHCI) +SRCS+= ehci2_mbus.c +.endif + +.if defined(HAS_IXP4XX_EHCI) +SRCS+= ehci2_ixp4xx.c +.endif + .include From owner-p4-projects@FreeBSD.ORG Sun Feb 1 17:42:43 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id CCD20106566B; Sun, 1 Feb 2009 17:42:42 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 772801065676 for ; Sun, 1 Feb 2009 17:42:42 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 644F58FC1B for ; Sun, 1 Feb 2009 17:42:42 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n11HggZb023076 for ; Sun, 1 Feb 2009 17:42:42 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n11HggQp023074 for perforce@freebsd.org; Sun, 1 Feb 2009 17:42:42 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Sun, 1 Feb 2009 17:42:42 GMT Message-Id: <200902011742.n11HggQp023074@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to bb+lists.freebsd.perforce@cyrus.watson.org using -f From: Robert Watson To: Perforce Change Reviews Cc: Subject: PERFORCE change 156998 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 01 Feb 2009 17:42:44 -0000 http://perforce.freebsd.org/chv.cgi?CH=156998 Change 156998 by rwatson@rwatson_freebsd_capabilities on 2009/02/01 17:42:22 Since fexecve(2) will be run directly on rtld-elf-cap, include an ELF ABI brand section (borrowed from csu). Affected files ... .. //depot/projects/trustedbsd/capabilities/src/libexec/rtld-elf-cap/Makefile#8 edit Differences ... ==== //depot/projects/trustedbsd/capabilities/src/libexec/rtld-elf-cap/Makefile#8 (text+ko) ==== @@ -1,5 +1,5 @@ # $FreeBSD$ -# $P4: //depot/projects/trustedbsd/capabilities/src/libexec/rtld-elf-cap/Makefile#7 $ +# $P4: //depot/projects/trustedbsd/capabilities/src/libexec/rtld-elf-cap/Makefile#8 $ WITHOUT_SSP= @@ -8,7 +8,8 @@ PROG?= ld-elf-cap.so.1 SRCS= rtld_start.S \ reloc.c rtld.c rtld_lock.c map_object.c \ - malloc.c xmalloc.c debug.c libmap.c + malloc.c xmalloc.c debug.c libmap.c \ + crtbrand.c MAN= rtld-elf-cap.1 CSTD?= gnu99 CFLAGS+= -Wall -DFREEBSD_ELF -DIN_RTLD -DIN_RTLD_CAP -g @@ -54,6 +55,7 @@ .PATH: ${.CURDIR}/../rtld-elf .PATH: ${.CURDIR}/../rtld-elf/${MACHINE_ARCH} +.PATH: ${.CURDIR}/../../lib/csu/common .include From owner-p4-projects@FreeBSD.ORG Sun Feb 1 17:55:56 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 5D0B71065670; Sun, 1 Feb 2009 17:55:56 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 1D432106564A for ; Sun, 1 Feb 2009 17:55:56 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 0A8728FC08 for ; Sun, 1 Feb 2009 17:55:56 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n11Htt21024056 for ; Sun, 1 Feb 2009 17:55:55 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n11HttTl024054 for perforce@freebsd.org; Sun, 1 Feb 2009 17:55:55 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Sun, 1 Feb 2009 17:55:55 GMT Message-Id: <200902011755.n11HttTl024054@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to bb+lists.freebsd.perforce@cyrus.watson.org using -f From: Robert Watson To: Perforce Change Reviews Cc: Subject: PERFORCE change 156999 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 01 Feb 2009 17:55:57 -0000 http://perforce.freebsd.org/chv.cgi?CH=156999 Change 156999 by rwatson@rwatson_freebsd_capabilities on 2009/02/01 17:55:21 There has never been a ld-elf-cap.so in /usr/libexec so don't set up a symlink. Affected files ... .. //depot/projects/trustedbsd/capabilities/src/libexec/rtld-elf-cap/Makefile#9 edit Differences ... ==== //depot/projects/trustedbsd/capabilities/src/libexec/rtld-elf-cap/Makefile#9 (text+ko) ==== @@ -1,5 +1,5 @@ # $FreeBSD$ -# $P4: //depot/projects/trustedbsd/capabilities/src/libexec/rtld-elf-cap/Makefile#8 $ +# $P4: //depot/projects/trustedbsd/capabilities/src/libexec/rtld-elf-cap/Makefile#9 $ WITHOUT_SSP= @@ -18,7 +18,6 @@ INSTALLFLAGS= -C -b PRECIOUSPROG= BINDIR= /libexec -SYMLINKS= ${BINDIR}/${PROG} /usr/libexec/${PROG} CFLAGS+= -fpic -DPIC LDFLAGS+= -shared -Wl,-Bsymbolic @@ -46,17 +45,9 @@ .include "${.CURDIR}/../rtld-elf/${MACHINE_ARCH}/Makefile.inc" .endif -# Since moving rtld-elf to /libexec, we need to create a symlink. -# Fixup the existing binary that's there so we can symlink over it. -beforeinstall: -.if exists(${DESTDIR}/usr/libexec/${PROG}) - -chflags noschg ${DESTDIR}/usr/libexec/${PROG} -.endif - .PATH: ${.CURDIR}/../rtld-elf .PATH: ${.CURDIR}/../rtld-elf/${MACHINE_ARCH} .PATH: ${.CURDIR}/../../lib/csu/common - .include .include From owner-p4-projects@FreeBSD.ORG Sun Feb 1 18:42:44 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id E771E1065675; Sun, 1 Feb 2009 18:42:43 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id A0F75106566B for ; Sun, 1 Feb 2009 18:42:43 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 8D7AB8FC18 for ; Sun, 1 Feb 2009 18:42:43 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n11Igh7V031423 for ; Sun, 1 Feb 2009 18:42:43 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n11IghGH031421 for perforce@freebsd.org; Sun, 1 Feb 2009 18:42:43 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Sun, 1 Feb 2009 18:42:43 GMT Message-Id: <200902011842.n11IghGH031421@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to bb+lists.freebsd.perforce@cyrus.watson.org using -f From: Robert Watson To: Perforce Change Reviews Cc: Subject: PERFORCE change 157000 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 01 Feb 2009 18:42:44 -0000 http://perforce.freebsd.org/chv.cgi?CH=157000 Change 157000 by rwatson@rwatson_freebsd_capabilities on 2009/02/01 18:42:01 Add comment to rtld-elf-cap's linker script to remind me that I'd like to not have a custom linker script. Affected files ... .. //depot/projects/trustedbsd/capabilities/src/libexec/rtld-elf-cap/rtld-elf-cap.xs#4 edit Differences ... ==== //depot/projects/trustedbsd/capabilities/src/libexec/rtld-elf-cap/rtld-elf-cap.xs#4 (text+ko) ==== @@ -1,4 +1,10 @@ -/* Script for ld --shared: link shared library */ +/* + * Script to generate ld-elf-cap.so -- based on /usr/libdata/ldscripts shared + * object script. + * + * XXXRW: Is there a way to override the executable start using the base + * script without a custom one? + */ OUTPUT_FORMAT("elf32-i386-freebsd", "elf32-i386-freebsd", "elf32-i386-freebsd") OUTPUT_ARCH(i386) From owner-p4-projects@FreeBSD.ORG Sun Feb 1 19:10:12 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id DC1AA106566C; Sun, 1 Feb 2009 19:10:11 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 9A8AE106564A for ; Sun, 1 Feb 2009 19:10:11 +0000 (UTC) (envelope-from rene@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 879A28FC13 for ; Sun, 1 Feb 2009 19:10:11 +0000 (UTC) (envelope-from rene@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n11JAB4S034615 for ; Sun, 1 Feb 2009 19:10:11 GMT (envelope-from rene@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n11JABns034613 for perforce@freebsd.org; Sun, 1 Feb 2009 19:10:11 GMT (envelope-from rene@FreeBSD.org) Date: Sun, 1 Feb 2009 19:10:11 GMT Message-Id: <200902011910.n11JABns034613@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to rene@FreeBSD.org using -f From: Rene Ladan To: Perforce Change Reviews Cc: Subject: PERFORCE change 157001 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 01 Feb 2009 19:10:12 -0000 http://perforce.freebsd.org/chv.cgi?CH=157001 Change 157001 by rene@rene_self on 2009/02/01 19:09:55 MFen handbook/cutting-edge 1.239 -> 1.240 Affected files ... .. //depot/projects/docproj_nl/nl_NL.ISO8859-1/books/handbook/cutting-edge/chapter.sgml#20 edit Differences ... ==== //depot/projects/docproj_nl/nl_NL.ISO8859-1/books/handbook/cutting-edge/chapter.sgml#20 (text+ko) ==== @@ -5,7 +5,7 @@ $FreeBSDnl: doc/nl_NL.ISO8859-1/books/handbook/cutting-edge/chapter.sgml,v 1.47 2006/01/07 11:27:42 siebrand Exp $ %SOURCE% en_US.ISO8859-1/books/handbook/cutting-edge/chapter.sgml - %SRCID% 1.239 + %SRCID% 1.240 --> @@ -1722,10 +1722,217 @@ De universele wijze om een systeem bij te werken - Een systeem bijwerken kan met de volgende procedure, nadat - /usr/src/UPDATING is geraadpleegd om te - controleren of er voor buildworld voor de gebruikte versie van - de broncode nog acties zijn uit te voeren: + Om uw systeem bij te werken, dient u + /usr/src/UPDATING te controleren op + eventuele pre-buildworld stappen die nodig zijn voor uw versie + van de broncode en daarna de procedure te gebruiken die hier + beschreven staat. + + Deze bijwerkstappen nemen aan dat u nu een oude versie van + &os; gebruikt, die uit een oude compiler, een oude kernel, een + oude wereld en oude instellingenbestanden bestaat. Onder + wereld worden de binairen, bibliotheken, en + programmeerbestanden van het kernsysteem verstaan. De compiler + is deel van wereld, maar heeft enkele speciale + aandachtspunten. + + We nemen ook aan dat u reeds de broncode van een nieuwer + systeem heeft verkregen. Bekijk, als de bronnen op een bepaald + systeem ook oud zijn, voor uitgebreide + hulp over het synchroniseren ervan naar een nieuwere + versie. + + Het bijwerken van het systeem vanaf de broncode is wat + subtieler dan het op het eerste gezicht lijkt, en de + ontwikkelaars van &os; vonden het in de loop der jaren nodig om + de aangeraden methode redelijk drastisch te veranderen met het + aan het licht komen van nieuwe soorten onontwijkbare + afhankelijkheden. De rest van deze sectie beschrijft de + rationale achter de huidige aanbevolen bijwerkmethode. + + Elke succesvolle bijwerkmethode krijgt te maken met de + volgende punten: + + + + Het kan voorkomen dat de oude compiler de nieuwe kernel + niet kan compileren. (Oude compilers bevatten soms bugs.) + De nieuwe kernel dient dus met de nieuwe compiler gebouwd te + worden. In het bijzonder moet de nieuwe compiler gebouwd + worden voordat de nieuwe kernel gebouwd wordt. Dit betekent + niet per se dat de nieuwe compiler + geïnstalleerd moet worden voordat + de nieuwe kernel gebouwd wordt. + + + + De nieuwe wereld kan afhankelijk zijn van mogelijkheden + van de nieuwe kernel. Dus moet de nieuwe kernel worden + geïnstalleerd voordat de nieuwe wereld wordt + geïnstalleerd. + + + + De eerste twee gevallen zijn de basis voor de methode + buildworld, + buildkernel, + installkernel, + installworld die we in de volgende + paragrafen beschrijven. Dit is geen uitputtende lijst van alle + redenen waarom het huidige aanbevolen bijwerkproces de voorkeur + verdient. Wat minder voor de hand liggende redenen worden + hieronder genoemd: + + + + Het kan zijn dat de oude wereld niet correct draait op + de nieuwe kernel, dus moet de nieuwe wereld onmiddellijk na + het installeren van de nieuwe kernel geïnstalleerd + worden. + + + + Sommige instellingen moeten veranderd worden voordat de + nieuwe wereld wordt geïnstalleerd, maar anderen kunnen + de oude wereld kapot maken. Vandaar dat over het algemeen + twee verschillende bijwerkstappen voor de instellingen nodig + zijn. + + + + Voor het grootste gedeelte houdt het bijwerkproces zich + alleen bezig met het vervangen of toevoegen van bestanden; + bestaande oude bestanden worden niet verwijderd. Dit kan in + sommige gevallen problemen geven. Als een gevolg zal de + bijwerkprocedure soms aangeven dat bepaalde bestanden + tijdens bepaalde stappen handmatig verwijderd dienen te + worden. Dit kan in de toekomst eventueel geautomatiseerd + worden. + + + + Deze zorgen hebben tot het volgende aanbevolen bijwerkproces + geleid. Merk op dat het gedetailleerde proces voor bepaalde + updates aanvullende stappen nodig kan hebben, maar dit + kernproces zou de komende tijd ongewijzigd moeten + blijven: + + + + make buildworld + + Dit compileert eerst de nieuwe compiler en enkele + aanverwante gereedschappen, daarna wordt de nieuwe compiler + gebruikt om de rest van de nieuwe wereld te compileren. Het + resultaat komt in /usr/obj te staan. + + + + make buildkernel + + In tegenstelling tot de oude aanpak, die &man.config.8; + en &man.make.1; gebruikt, gebruikt dit de + nieuwe compiler die in /usr/obj verblijft. Dit + beschermt u tegen mismatches tussen de compiler en de + kernel. + + + + make installkernel + + Plaatst de nieuwe kernel en kernelmodules op de schijf, + waardoor het mogelijk wordt om met de nieuw bijgewerkte + kernel op te starten. + + + + Start opnieuw op in enkele-gebruikersmodus. + + De enkele-gebruikersmodus minimaliseert problemen met + het bijwerken van software die al draait. Het minimaliseert + ook problemen die opduiken door een oude wereld op een + nieuwe kernel te draaien. + + + + mergemaster + + Dit voert wat initiële updates aan + instellingenbestanden uit ter voorbereiding op de nieuwe + wereld. Het kan bijvoorbeeld nieuwe gebruikersgroepen aan + het systeem, of nieuwe gebruikersnamen aan de + wachtwoorddatabase toevoegen. Dit is vaak nodig wanneer er + nieuwe groepen of speciale accounts voor systeemgebruikers + zijn toegevoegd sinds de laatste keer bijwerken, zodat de + stap installworld zonder problemen + de nieuw geïnstalleerde namen van systeemgebruikers of + systeemgroepen kan gebruiken. + + + + make installworld + + Kopieert de wereld van /usr/obj. U heeft nu een + nieuwe kernel en een nieuwe wereld op schijf staan. + + + + mergemaster + + Nu kunt u de overgebleven instellingenbestanden + bijwerken, aangezien u een nieuwe wereld op schijf heeft + staan. + + + + Start opnieuw op. + + Een volledige nieuwe start van de machine is nodig om de + nieuwe kernel en de nieuwe wereld met nieuwe + instellingenbestanden te laden. + + + + Merk op dat als u van de ene uitgave van dezelfde tak van + &os; bijwerkt naar een recentere uitgave van dezelfde tak, i.e. + van 7.0 naar 7.1, dat deze procedure dan niet absoluut nodig is, + aangezien het onwaarschijnlijk is dat u serieuze problemen + krijgt met de compiler, kernel, gebruikersland en + instellingenbestanden. De oudere aanpak met make + world gevolgd door het + bouwen en installeren van een nieuwe kernel kan voor kleine + updates goed genoeg zijn. + + Maar mensen die deze procedure niet volgen tijdens het + bijwerken tussen grote uitgaven kunnen wat problemen + verwachten. + + Het is ook goed om op te merken dat veel upgrades (i.e. + 4.X naar 5.0) wat specifieke + aanvullende stappen nodig hebben (bijvoorbeeld het hernoemen of + verwijderen van specifieke bestanden voorafgaand aan + installworld). Lees het bestand + /usr/src/UPDATING zorgvuldig, met name het + einde, waar het huidig aangeraden bijwerkproces expliciet wordt + beschreven. + + Deze procedure is in de loop der tijd veranderd aangezien de + ontwikkelaars zagen dat het onmogelijk was om bepaalde + mismatch-problemen volledig te voorkomen. Hopelijk blijft de + huidige procedure voor een lange tijd stabiel. + + + Het bijwerken van &os; 3.X of + eerdere uitgaven is wat lastiger; lees + UPDATING zorgvuldig door als u zo'n soort + upgrade moet uitvoeren. + + + Samengevat is de huidige aanbevolen manier om &os; vanaf + broncode bij te werken: &prompt.root; cd /usr/src &prompt.root; make buildworld From owner-p4-projects@FreeBSD.ORG Sun Feb 1 21:46:51 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 3383E1065672; Sun, 1 Feb 2009 21:46:51 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id E7EB3106566B for ; Sun, 1 Feb 2009 21:46:50 +0000 (UTC) (envelope-from gabor@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id CB19E8FC23 for ; Sun, 1 Feb 2009 21:46:50 +0000 (UTC) (envelope-from gabor@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n11LkodA059002 for ; Sun, 1 Feb 2009 21:46:50 GMT (envelope-from gabor@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n11Lko24059000 for perforce@freebsd.org; Sun, 1 Feb 2009 21:46:50 GMT (envelope-from gabor@freebsd.org) Date: Sun, 1 Feb 2009 21:46:50 GMT Message-Id: <200902012146.n11Lko24059000@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to gabor@freebsd.org using -f From: Gabor Kovesdan To: Perforce Change Reviews Cc: Subject: PERFORCE change 157008 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 01 Feb 2009 21:46:52 -0000 http://perforce.freebsd.org/chv.cgi?CH=157008 Change 157008 by gabor@gabor_server on 2009/02/01 21:46:39 - Add some lines for the upcoming -B flag Affected files ... .. //depot/projects/soc2008/gabor_textproc/diff/diff.c#18 edit .. //depot/projects/soc2008/gabor_textproc/diff/diff.h#7 edit .. //depot/projects/soc2008/gabor_textproc/diff/diffreg.c#9 edit Differences ... ==== //depot/projects/soc2008/gabor_textproc/diff/diff.c#18 (text+ko) ==== @@ -45,7 +45,7 @@ #include "diff.h" -int aflag, bflag, dflag, iflag, lflag, Nflag, Pflag, pflag, rflag; +int aflag, bflag, Bflag, dflag, iflag, lflag, Nflag, Pflag, pflag, rflag; int sflag, tflag, Tflag, wflag, uniflag, strip_cr; int format, status; int fcase_behave = FCASE_SENSITIVE; @@ -67,7 +67,7 @@ NOOP_OPT }; -#define OPTIONS "0123456789abC:cdD:efhI:iL:lnNPpqrS:sTtU:uvwX:x:" +#define OPTIONS "0123456789abBC:cdD:efhI:iL:lnNPpqrS:sTtU:uvwX:x:" static struct option longopts[] = { { "ignore-file-name-case", no_argument, NULL, FCASE_IGNORE_OPT }, { "no-ignore-file-name-case", no_argument, NULL, FCASE_SENSITIVE_OPT }, @@ -80,8 +80,7 @@ { "to-file", required_argument, NULL, TOFILE_OPT }, { "help", no_argument, NULL, HELP_OPT }, { "text", no_argument, NULL, 'a' }, -/* XXX: UNIMPLEMENTED - { "ignore-blank-lines", no_argument, NULL, 'B' }, */ + { "ignore-blank-lines", no_argument, NULL, 'B' }, { "ignore-space-change", no_argument, NULL, 'b' }, { "context", optional_argument, NULL, 'C' }, { "ifdef", required_argument, NULL, 'D' }, @@ -169,6 +168,8 @@ case 'b': bflag = 1; break; + case 'B': + Bflag = 1; case 'C': case 'c': format = D_CONTEXT; ==== //depot/projects/soc2008/gabor_textproc/diff/diff.h#7 (text+ko) ==== @@ -82,7 +82,7 @@ struct excludes *next; }; -extern int aflag, bflag, dflag, iflag, lflag, Nflag, Pflag, pflag, rflag, +extern int aflag, bflag, Bflag, dflag, iflag, lflag, Nflag, Pflag, pflag, rflag, sflag, tflag, Tflag, wflag, uniflag, strip_cr; extern int format, status; extern int fcase_behave; ==== //depot/projects/soc2008/gabor_textproc/diff/diffreg.c#9 (text+ko) ==== @@ -766,7 +766,7 @@ ixnew[j] = ctnew += skipline(f2); j++; } - if (bflag || wflag || iflag || strip_cr) { + if (bflag || Bflag || wflag || iflag || strip_cr) { for (;;) { c = getc(f1); d = getc(f2); @@ -779,6 +779,11 @@ (c == '\n' && d == EOF))) { break; } + // XXX: Bflag + while (Bflag && isspace(c)) + c = skipline(f1); + while (Bflag && isspace(d)) + d = skipline(f2); ctold++; ctnew++; while ((strip_cr) && (c == '\r') && (d == '\n')) @@ -1229,7 +1234,7 @@ sum = 1; space = 0; - if (!bflag && !wflag) { + if (!bflag && !Bflag && !wflag) { if (iflag) for (i = 0; (t = getc(f)) != '\n'; i++) { if (t == '\r' && strip_cr) @@ -1275,6 +1280,8 @@ return (0); /* FALLTHROUGH */ case '\n': + if (Bflag && space == 0 && i == 0) + continue; break; } break; @@ -1284,6 +1291,7 @@ * There is a remote possibility that we end up with a zero sum. * Zero is used as an EOF marker, so return 1 instead. */ + printf("HASH: %d\n", (sum == 0 ? 1 : sum)); return (sum == 0 ? 1 : sum); } From owner-p4-projects@FreeBSD.ORG Sun Feb 1 23:44:51 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 1CD001065670; Sun, 1 Feb 2009 23:44:51 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id B76FD106566C for ; Sun, 1 Feb 2009 23:44:50 +0000 (UTC) (envelope-from antab@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id A455B8FC21 for ; Sun, 1 Feb 2009 23:44:50 +0000 (UTC) (envelope-from antab@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n11Nioql069638 for ; Sun, 1 Feb 2009 23:44:50 GMT (envelope-from antab@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n11NioTZ069636 for perforce@freebsd.org; Sun, 1 Feb 2009 23:44:50 GMT (envelope-from antab@FreeBSD.org) Date: Sun, 1 Feb 2009 23:44:50 GMT Message-Id: <200902012344.n11NioTZ069636@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to antab@FreeBSD.org using -f From: Arnar Mar Sig To: Perforce Change Reviews Cc: Subject: PERFORCE change 157013 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 01 Feb 2009 23:44:52 -0000 http://perforce.freebsd.org/chv.cgi?CH=157013 Change 157013 by antab@antab_farm on 2009/02/01 23:44:50 Misc changes to get AVR32 working. Stops at cpu_fork() now. Affected files ... .. //depot/projects/avr32/src/sys/avr32/avr32/cpu.c#2 edit .. //depot/projects/avr32/src/sys/avr32/avr32/db_disasm.c#1 add .. //depot/projects/avr32/src/sys/avr32/avr32/db_interface.c#1 add .. //depot/projects/avr32/src/sys/avr32/avr32/db_trace.c#1 add .. //depot/projects/avr32/src/sys/avr32/avr32/gdb_machdep.c#1 add .. //depot/projects/avr32/src/sys/avr32/avr32/machdep.c#2 edit .. //depot/projects/avr32/src/sys/avr32/avr32/pm_machdep.c#2 edit .. //depot/projects/avr32/src/sys/avr32/avr32/pmap.c#2 edit .. //depot/projects/avr32/src/sys/avr32/avr32/stack_machdep.c#1 add .. //depot/projects/avr32/src/sys/avr32/avr32/support.S#2 edit .. //depot/projects/avr32/src/sys/avr32/avr32/tlb.c#2 edit .. //depot/projects/avr32/src/sys/avr32/avr32/uboot.c#2 edit .. //depot/projects/avr32/src/sys/avr32/avr32/vm_machdep.c#2 edit .. //depot/projects/avr32/src/sys/avr32/conf/NGW100#2 edit .. //depot/projects/avr32/src/sys/avr32/include/atomic.h#2 edit .. //depot/projects/avr32/src/sys/avr32/include/cpu.h#2 edit .. //depot/projects/avr32/src/sys/avr32/include/cpufunc.h#2 edit .. //depot/projects/avr32/src/sys/avr32/include/db_machdep.h#2 edit .. //depot/projects/avr32/src/sys/avr32/include/gdb_machdep.h#1 add .. //depot/projects/avr32/src/sys/avr32/include/pcpu.h#2 edit .. //depot/projects/avr32/src/sys/avr32/include/pte.h#2 edit .. //depot/projects/avr32/src/sys/avr32/include/tlb.h#2 edit .. //depot/projects/avr32/src/sys/conf/files.avr32#2 edit Differences ... ==== //depot/projects/avr32/src/sys/avr32/avr32/cpu.c#2 (text+ko) ==== @@ -108,22 +108,3 @@ avr32_debug(": needs implementing\n"); while (1) { } } - -void avr32_hexdump(uint8_t *data, size_t size) { - int i; - - printf("*** %4d bytes *******************************************\n", size); - for (i = 0; i < size; i++) { - if (!(i % 32)) { - printf("%08X ", (uint32_t)data + i); - } - printf("%02X", data[i]); - - if (!((i + 1) % 32)) { - printf("\n"); - } else if (!((i + 1) % 4)) { - printf(" "); - } - } - printf("\n"); -} ==== //depot/projects/avr32/src/sys/avr32/avr32/machdep.c#2 (text+ko) ==== @@ -54,6 +54,14 @@ #include #include #include +#include +#include +#include +#include +#include +#include +#include +#include #include #include #include @@ -71,20 +79,25 @@ extern vm_offset_t proc0_stack_end; vm_offset_t phys_avail[10]; -long realmem = 0; +long realmem; +struct kva_md_info kmi; + +static void cpu_startup(void *); +SYSINIT(cpu, SI_SUB_CPU, SI_ORDER_FIRST, cpu_startup, NULL); // Prototypes (Should be in headers!) void mi_startup(void); void avr32_init(void); void avr32_init_proc0(void); - void avr32_init() { cninit(); // Init console cpu_init(); // Init needed cpu things (evb and irq) uboot_parse_tags(); // Parse uboot tags + + realmem = btoc(phys_avail[1] - phys_avail[0]); init_param1(); - init_param2(phys_avail[1] - phys_avail[2]); + init_param2(realmem); pmap_bootstrap(); // Bootstrap pmap so we so virtual memory works avr32_init_proc0(); // Init proc0 mutex_init(); @@ -96,16 +109,37 @@ proc_linkup(&proc0, &thread0); thread0.td_kstack = proc0_stack_end; thread0.td_kstack_pages = KSTACK_PAGES - 1; - thread0.td_pcb = &proc0_pcb; - thread0.td_frame = &thread0.td_pcb->pcb_regs; + thread0.td_pcb = &proc0_pcb; + thread0.td_frame = &thread0.td_pcb->pcb_regs; pcpu_init(pcpup, 0, sizeof(struct pcpu)); PCPU_SET(curthread, &thread0); PCPU_SET(curpcb, thread0.td_pcb); } +static void cpu_startup(void *dummy) { + if (boothowto & RB_VERBOSE) { + bootverbose++; + } + bootverbose++; + printf("real memory = %u (%u MB)\n", ptoa(realmem), + ptoa(realmem) / 1048576); + + + vm_ksubmap_init(&kmi); + + printf("avail memory = %u (%uMB)\n", ptoa(cnt.v_free_count), + ptoa(cnt.v_free_count) / 1048576); + + /* + * Set up buffers, so they can be used to read disk labels. + */ + bufinit(); + vm_pager_bufferinit(); +} + void cpu_pcpu_init(struct pcpu *pcpu, int cpuid, size_t size) { - pcpu->pc_next_asid = 1; + pcpu->pc_asid_next = 1; pcpu->pc_asid_generation = 1; } @@ -167,6 +201,7 @@ int savectx(struct pcb *pcb) { avr32_impl(); + return (0); } void makectx(struct trapframe *tf, struct pcb *pcb) { ==== //depot/projects/avr32/src/sys/avr32/avr32/pm_machdep.c#2 (text+ko) ==== @@ -44,6 +44,7 @@ #include #include #include +#include #include #include #include @@ -53,10 +54,12 @@ int get_mcontext(struct thread *td, mcontext_t *mcp, int flags) { avr32_impl(); + return (0); } int set_mcontext(struct thread *td, const mcontext_t *mcp) { avr32_impl(); + return (0); } void exec_setregs(struct thread *td, u_long entry, u_long stack, u_long ps_strings) { @@ -65,14 +68,17 @@ int ptrace_set_pc(struct thread *td, unsigned long addr) { avr32_impl(); + return (0); } int ptrace_single_step(struct thread *td) { avr32_impl(); + return (0); } int ptrace_clear_single_step(struct thread *td) { avr32_impl(); + return (0); } void cpu_switch(struct thread *td, struct thread *newtd, struct mtx *lock) { @@ -88,5 +94,6 @@ */ int sigreturn(struct thread *td, struct sigreturn_args *uap) { avr32_impl(); + return (0); } ==== //depot/projects/avr32/src/sys/avr32/avr32/pmap.c#2 (text+ko) ==== @@ -53,7 +53,6 @@ vm_offset_t kernel_vm_end = 0; vm_offset_t virtual_avail; /* VA of first avail page (after kernel bss) */ vm_offset_t virtual_end; /* VA of last avail page (end of kernel AS) */ -int asid_current, asid_current_generation; /* * Data for the pv entry allocation mechanism @@ -96,6 +95,7 @@ } // Enable paging + tlb_flush(); sysreg_write(PTBR, (uint32_t)kernel_pmap); sysreg_write(MMUCR, bit_offset(SYS, MMUCR, S) | bit_offset(SYS, MMUCR, E) | @@ -148,15 +148,26 @@ * such as one in a vmspace structure. */ int pmap_pinit(pmap_t pmap) { -/* mtx_init(&(pmap)->pm_mtx, "pmap", NULL, MTX_DEF); + vm_page_t ptdpg; + + PMAP_LOCK_INIT(pmap); + + /* allocate the page directory page */ + ptdpg = vm_page_alloc(NULL, 512, + VM_ALLOC_NOOBJ | VM_ALLOC_NORMAL | + VM_ALLOC_WIRED | VM_ALLOC_ZERO); - pmap->pm_active = 0; - pmap->pm_asid.asid = PMAP_ASID_RESERVED; - pmap->pm_asid.gen = 0; + pmap->pm_pd = (pd_entry_t *)AVR32_PHYS_TO_P2(VM_PAGE_TO_PHYS(ptdpg)); + if ((ptdpg->flags & PG_ZERO) == 0) { + bzero(pmap->pm_pd, PAGE_SIZE); + } + pmap->pm_active = 0; + pmap->pm_asid = 0; + pmap->pm_asid_generation = 0; TAILQ_INIT(&pmap->pm_pvlist); - bzero(&pmap->pm_stats, sizeof(pmap->pm_stats)); */ - avr32_impl(); + bzero(&pmap->pm_stats, sizeof(pmap->pm_stats)); + return(1); } @@ -166,6 +177,7 @@ boolean_t pmap_is_modified(vm_page_t m) { avr32_impl(); + return (0); } void pmap_clear_modify(vm_page_t m) { @@ -174,6 +186,7 @@ int pmap_ts_referenced(vm_page_t m) { avr32_impl(); + return (0); } void pmap_clear_reference(vm_page_t m) { @@ -226,6 +239,7 @@ */ boolean_t pmap_is_prefaultable(pmap_t pmap, vm_offset_t addr) { avr32_impl(); + return (0); } void pmap_copy(pmap_t dst_pmap, pmap_t src_pmap, vm_offset_t dst_addr, vm_size_t len, vm_offset_t src_addr) { @@ -239,7 +253,7 @@ void pmap_zero_page(vm_page_t m) { vm_paddr_t phys = VM_PAGE_TO_PHYS(m); - bzero(AVR32_PHYS_TO_P2(phys), PAGE_SIZE); + bzero((caddr_t)AVR32_PHYS_TO_P2(phys), PAGE_SIZE); } void pmap_zero_page_area(vm_page_t m, int off, int size) { @@ -250,12 +264,20 @@ avr32_impl(); } -void pmap_qenter(vm_offset_t sva, vm_page_t *m, int count) { - avr32_impl(); +void pmap_qenter(vm_offset_t va, vm_page_t *m, int count) { + int i; + + for (i = 0; i < count; i++) { + pmap_kenter(va, VM_PAGE_TO_PHYS(m[i])); + va += PAGE_SIZE; + } } -void pmap_qremove(vm_offset_t sva, int count) { - avr32_impl(); +void pmap_qremove(vm_offset_t va, int count) { + while (count-- > 0) { + pmap_kremove(va); + va += PAGE_SIZE; + } } void pmap_page_init(vm_page_t m) { @@ -270,7 +292,6 @@ void pmap_growkernel(vm_offset_t addr) { // Not really sure what to do here, need to look better into it, but the // kernel should have all the pages tables needed to grow within the P3 segment - avr32_debug("pmap_growkernel: Needs implementing?\n"); } /* @@ -480,10 +501,12 @@ vm_page_t pmap_extract_and_hold(pmap_t pmap, vm_offset_t va, vm_prot_t prot) { avr32_impl(); + return (0); } boolean_t pmap_page_exists_quick(pmap_t pmap, vm_page_t m) { avr32_impl(); + return (0); } /* @@ -507,6 +530,7 @@ */ int pmap_page_wired_mappings(vm_page_t m) { avr32_impl(); + return (0); } /* @@ -516,6 +540,7 @@ */ int pmap_mincore(pmap_t pmap, vm_offset_t addr) { avr32_impl(); + return (0); } /* @@ -675,7 +700,7 @@ static void pmap_update_page(pmap_t pmap, vm_offset_t va, pt_entry_t pte) { uint32_t tlbehi, mmucr; - if (pmap->pm_asid_generation != asid_current_generation) { + if (pmap->pm_asid_generation != PCPU_GET(asid_generation)) { return; } @@ -703,8 +728,6 @@ pmap_t pmap = (pmap_t)sysreg_read(PTBR); pt_entry_t *ent; - - ent = pmap_pte(pmap, tlbear); if (!ent || !*ent) { printf("\nTLB miss: %x\n", ecr); @@ -718,20 +741,20 @@ } // Generate ASID? - if (pmap->pm_asid == 0 || pmap->pm_asid_generation < asid_current_generation) { - asid_current++; - if (asid_current == ASID_MAX) { - asid_current_generation++; - asid_current = 1; + if (pmap->pm_asid_generation < PCPU_GET(asid_generation)) { + if (PCPU_GET(asid_next) == ASID_MAX) { + PCPU_INC(asid_generation); + PCPU_SET(asid_next, 0); } - pmap->pm_asid = asid_current; - pmap->pm_asid_generation = asid_current_generation; + pmap->pm_asid = PCPU_GET(asid_next); + pmap->pm_asid_generation = PCPU_GET(asid_generation); + PCPU_INC(asid_next); } // Insert into TLB sysreg_write(TLBEHI, (tlbehi & bit_mask(SYS, TLBEHI, VPN)) | bit_offset(SYS, TLBEHI, V) | - asid_current); + pmap->pm_asid); sysreg_write(TLBELO, (*ent & ~bit_mask(SYS, TLBELO, SZ)) | PTE_DIRTY | PTE_SIZE_4K); sysreg_write(MMUCR, bit_offset(SYS, MMUCR, S) | bit_offset(SYS, MMUCR, E) | @@ -743,7 +766,7 @@ cpu_sync_pipeline(); tlb_at++; - if (tlb_at == 32) { + if (tlb_at == TLB_SIZE) { tlb_at = 0; } } ==== //depot/projects/avr32/src/sys/avr32/avr32/support.S#2 (text+ko) ==== @@ -189,9 +189,6 @@ -ENTRY(breakpoint) - - ENTRY(setjmp) ENTRY(longjmp) sub r12, pc, (. - 2f) ==== //depot/projects/avr32/src/sys/avr32/avr32/tlb.c#2 (text+ko) ==== @@ -47,7 +47,7 @@ uint32_t i, tlbehi, tlbelo, mmucr, mmucr_save; mmucr_save = sysreg_read(MMUCR); - for (i = 0; i < 32; i++) { + for (i = 0; i < TLB_SIZE; i++) { mmucr = (mmucr_save & ~bit_mask(SYS, MMUCR, DRP)) | (i << bit_shift(SYS, MMUCR, DRP)); sysreg_write(MMUCR, mmucr); @@ -60,3 +60,19 @@ } sysreg_write(MMUCR, mmucr_save); } + +void tlb_flush() { + uint32_t i, mmucr, mmucr_save; + + mmucr_save = sysreg_read(MMUCR); + sysreg_write(TLBEHI, 0); + sysreg_write(TLBELO, 0); + for (i = 0; i < TLB_SIZE; i++) { + mmucr = (mmucr_save & ~bit_mask(SYS, MMUCR, DRP)) | (i << bit_shift(SYS, MMUCR, DRP)); + sysreg_write(MMUCR, mmucr); + + __builtin_tlbw(); + cpu_sync_pipeline(); + } + sysreg_write(MMUCR, mmucr_save); +} ==== //depot/projects/avr32/src/sys/avr32/avr32/uboot.c#2 (text+ko) ==== @@ -25,9 +25,6 @@ if (tag->u.mem_range.size > 0) { phys_avail[0] = AVR32_P1_TO_PHYS(&_end); phys_avail[1] = tag->u.mem_range.addr + tag->u.mem_range.size; - printf("Memory start: %x to %x\n", - phys_avail[0], - phys_avail[1]); } break; ==== //depot/projects/avr32/src/sys/avr32/avr32/vm_machdep.c#2 (text+ko) ==== @@ -50,6 +50,8 @@ #include #include +#include +#include #include /* @@ -95,7 +97,8 @@ } void cpu_thread_alloc(struct thread *td) { - avr32_impl(); + td->td_pcb = (struct pcb *)(td->td_kstack + td->td_kstack_pages * PAGE_SIZE) - 1; + td->td_frame = &td->td_pcb->pcb_regs; } /* ==== //depot/projects/avr32/src/sys/avr32/conf/NGW100#2 (text+ko) ==== @@ -9,12 +9,21 @@ hints "NGW100.hints" makeoptions DEBUG=-g #Build kernel with gdb(1) debug symbols -options VERBOSE_SYSINIT +options VERBOSE_SYSINIT #options DDB #options KDB +#options GDB +options MUTEX_DEBUG +#options WITNESS +#options WITNESS_KDB +#options WITNESS_SKIPSPIN +options INVARIANTS +options INVARIANT_SUPPORT +options DIAGNOSTIC + options SCHED_4BSD #4BSD scheduler -options INET #InterNETworking +#options INET #InterNETworking #ioptions NFSCLIENT #Network Filesystem Client #options NFS_ROOT #NFS usable as /, requires NFSCLIENT #options PSEUDOFS #Pseudo-filesystem framework @@ -35,7 +44,7 @@ #device atmel_ssc # Sync Serial controller #device atmel_mci # Media card interface -device loop -device ether +#device loop +#device ether #device md #device mem ==== //depot/projects/avr32/src/sys/avr32/include/atomic.h#2 (text+ko) ==== @@ -38,7 +38,7 @@ * antab todo: Make this atomic. when needed */ -#ifndef _MACHINE_ATOMIC_H_ +#ifndef _MACHINE_ATOMIC_H_ #define _MACHINE_ATOMIC_H_ #include @@ -47,6 +47,10 @@ #include #endif +#define mb() +#define wmb() +#define rmb() + #ifdef _KERNEL static __inline void atomic_set_32(volatile uint32_t *address, uint32_t setmask) ==== //depot/projects/avr32/src/sys/avr32/include/cpu.h#2 (text+ko) ==== @@ -33,6 +33,8 @@ #include #include #include +#include +#include // Macros for segment addressing #define AVR32_SEG_P0 0x00000000 @@ -45,8 +47,9 @@ #define AVR32_P2_TO_PHYS(x) ((unsigned)(x) & ~AVR32_SEG_MASK) #define AVR32_PHYS_TO_P1(x) ((unsigned)(x) | AVR32_SEG_P1) #define AVR32_PHYS_TO_P2(x) ((unsigned)(x) | AVR32_SEG_P2) +#define AVR32_MODE_USER bit_value(SYS, SR, MODE, 0) -#define TRAPF_USERMODE(frame) ((frame->regs.sr & PSR_MODE) == PSR_USR32_MODE) +#define TRAPF_USERMODE(frame) ((frame->regs.sr & bit_mask(SYS, SR, MODE)) == AVR32_MODE_USER) #define TRAPF_PC(tfp) ((tfp)->regs.pc) #define cpu_getstack(td) ((td)->td_frame->regs.sp) //#define cpu_setstack(td, sp) ((td)->td_frame->sp = (sp)) ==== //depot/projects/avr32/src/sys/avr32/include/cpufunc.h#2 (text+ko) ==== @@ -45,5 +45,11 @@ register_t intr_disable(void); void intr_restore(register_t s); +static __inline void +breakpoint(void) +{ + __asm __volatile ("breakpoint"); +} + #endif /* _KERNEL */ #endif /* _MACHINE_CPUFUNC_H_ */ ==== //depot/projects/avr32/src/sys/avr32/include/db_machdep.h#2 (text+ko) ==== @@ -37,16 +37,18 @@ typedef vm_offset_t db_addr_t; typedef int db_expr_t; -#define PC_REGS() ((db_addr_t)kdb_thrctx->pcb_pc) +#define PC_REGS() ((db_addr_t)kdb_thrctx->pcb_regs.regs.pc) -#define BKPT_INST (KERNEL_BREAKPOINT) -#define BKPT_SIZE (4) +#define BKPT_INST (0xD673) +#define BKPT_SIZE (2) #define BKPT_SET(inst) (BKPT_INST) -#define BKPT_SKIP do { \ - kdb_frame->tf_pc += BKPT_SIZE; \ +#define BKPT_SKIP do { \ + kdb_frame->regs.pc += BKPT_SIZE; \ } while (0) +#define SOFTWARE_SSTEP 1 + #define T_BREAKPOINT 0xffff #define IS_BREAKPOINT_TRAP(type, code) (type == T_BREAKPOINT) ==== //depot/projects/avr32/src/sys/avr32/include/pcpu.h#2 (text+ko) ==== @@ -39,9 +39,9 @@ struct vmspace; -#define PCPU_MD_FIELDS \ - struct pmap *pc_curpmap; /* pmap of curthread */ \ - u_int32_t pc_next_asid; /* next ASID to alloc */ \ +#define PCPU_MD_FIELDS \ + struct pmap *pc_curpmap; /* pmap of curthread */ \ + u_int32_t pc_asid_next; /* next ASID to alloc */ \ u_int32_t pc_asid_generation; /* current ASID generation */ struct pcb; @@ -50,15 +50,14 @@ extern struct pcpu *pcpup; extern struct pcpu __pcpu; -#define PCPU_GET(member) (__pcpu.pc_ ## member) - /* * XXX The implementation of this operation should be made atomic * with respect to preemption. */ +#define PCPU_GET(member) (__pcpu.pc_ ## member) #define PCPU_ADD(member, value) (__pcpu.pc_ ## member += (value)) -#define PCPU_INC(member) PCPU_ADD(member, 1) -#define PCPU_PTR(member) (&__pcpu.pc_ ## member) +#define PCPU_INC(member) PCPU_ADD(member, 1) +#define PCPU_PTR(member) (&__pcpu.pc_ ## member) #define PCPU_SET(member,value) (__pcpu.pc_ ## member = (value)) #endif /* _KERNEL */ ==== //depot/projects/avr32/src/sys/avr32/include/pte.h#2 (text+ko) ==== @@ -61,6 +61,7 @@ #define PTE_DIRTY bit_offset(SYS, TLBELO, D) /* Dirty */ #define pfn_get(x) (x & bit_mask(SYS, TLBELO, PFN)) #define pfn_set(x, pfn) x &= ~bit_mask(SYS, TLBELO, PFN); x |= (pfn & bit_mask(SYS, TLBELO, PFN)); +#define PTE_RW (PTE_PERM_READ | PTE_PERM_WRITE) // Page size, not set in PTE, always 4K #define PTE_SIZE_1K bit_value(SYS, TLBELO, SZ, 0) ==== //depot/projects/avr32/src/sys/avr32/include/tlb.h#2 (text+ko) ==== @@ -1,6 +1,9 @@ #ifndef _MACHINE_TLB_H_ #define _MACHINE_TLB_H_ -void tlb_dump(void); +#define TLB_SIZE 32 /* Number of TLB entries, this should be read from config1 */ + +void tlb_dump(void); /* Dump content of TLB to console */ +void tlb_flush(void); /* Invalid all TLB entries */ #endif // !_MACHINE_TLB_H_ ==== //depot/projects/avr32/src/sys/conf/files.avr32#2 (text+ko) ==== @@ -19,6 +19,11 @@ avr32/avr32/at32.c standard avr32/avr32/trap.c standard avr32/avr32/tlb.c standard +avr32/avr32/db_interface.c optional ddb +avr32/avr32/db_trace.c optional ddb +avr32/avr32/db_disasm.c optional gdb +avr32/avr32/stack_machdep.c optional ddb | stack +avr32/avr32/gdb_machdep.c optional gdb libkern/ashldi3.c standard libkern/ashrdi3.c standard From owner-p4-projects@FreeBSD.ORG Mon Feb 2 02:10:33 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 782A5106566C; Mon, 2 Feb 2009 02:10:32 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 3A183106564A for ; Mon, 2 Feb 2009 02:10:32 +0000 (UTC) (envelope-from weongyo@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 287518FC0C for ; Mon, 2 Feb 2009 02:10:32 +0000 (UTC) (envelope-from weongyo@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n122AWlT001317 for ; Mon, 2 Feb 2009 02:10:32 GMT (envelope-from weongyo@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n122AWLU001315 for perforce@freebsd.org; Mon, 2 Feb 2009 02:10:32 GMT (envelope-from weongyo@FreeBSD.org) Date: Mon, 2 Feb 2009 02:10:32 GMT Message-Id: <200902020210.n122AWLU001315@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to weongyo@FreeBSD.org using -f From: Weongyo Jeong To: Perforce Change Reviews Cc: Subject: PERFORCE change 157016 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 02 Feb 2009 02:10:33 -0000 http://perforce.freebsd.org/chv.cgi?CH=157016 Change 157016 by weongyo@weongyo_ws on 2009/02/02 02:09:32 when the channel is changed it seems it should flush control pipe not just flushing data pipe. Without this the device sometimes got stuck. Affected files ... .. //depot/projects/vap/sys/dev/usb/if_uath.c#8 edit Differences ... ==== //depot/projects/vap/sys/dev/usb/if_uath.c#8 (text+ko) ==== @@ -2372,6 +2372,18 @@ "could not set led state, error %d\n", error); goto failed; } + error = uath_flush(sc); + if (error) { + device_printf(sc->sc_dev, + "could not flush data pipe, error %d\n", error); + goto failed; + } + error = uath_cmd_write(sc, WDCMSG_FLUSH, NULL, 0, 0); + if (error) { + device_printf(sc->sc_dev, + "could not flush control pipe, error %d\n", error); + goto failed; + } failed: return (error); } @@ -2455,18 +2467,11 @@ uath_codename(WDCMSG_TARGET_START), be32toh(val)); UATH_LOCK(sc); - error = uath_wme_init(sc); - if (error) { - device_printf(sc->sc_dev, - "could not setup WME parameters, error %d\n", error); - goto fail; - } - /* set default channel */ - error = uath_set_chan(sc, ic->ic_curchan); + error = uath_switch_channel(sc, ic->ic_curchan); if (error) { device_printf(sc->sc_dev, - "could not set channel, error %d\n", error); + "could not switch channel, error %d\n", error); goto fail; } From owner-p4-projects@FreeBSD.ORG Mon Feb 2 02:12:35 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id E33381065673; Mon, 2 Feb 2009 02:12:34 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id A4C521065670 for ; Mon, 2 Feb 2009 02:12:34 +0000 (UTC) (envelope-from weongyo@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 9330A8FC17 for ; Mon, 2 Feb 2009 02:12:34 +0000 (UTC) (envelope-from weongyo@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n122CYfJ001459 for ; Mon, 2 Feb 2009 02:12:34 GMT (envelope-from weongyo@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n122CY7L001457 for perforce@freebsd.org; Mon, 2 Feb 2009 02:12:34 GMT (envelope-from weongyo@FreeBSD.org) Date: Mon, 2 Feb 2009 02:12:34 GMT Message-Id: <200902020212.n122CY7L001457@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to weongyo@FreeBSD.org using -f From: Weongyo Jeong To: Perforce Change Reviews Cc: Subject: PERFORCE change 157017 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 02 Feb 2009 02:12:35 -0000 http://perforce.freebsd.org/chv.cgi?CH=157017 Change 157017 by weongyo@weongyo_ws on 2009/02/02 02:12:04 don't try to print a variable uninitialized. Affected files ... .. //depot/projects/vap/sys/dev/usb/if_uath.c#9 edit Differences ... ==== //depot/projects/vap/sys/dev/usb/if_uath.c#9 (text+ko) ==== @@ -964,7 +964,7 @@ struct ieee80211_node *ni = vap->iv_bss; struct uath_vap *uvp = UATH_VAP(vap); enum ieee80211_state ostate = vap->iv_state; - int ret; + int error; UATH_LOCK(sc); switch (sc->sc_state) { @@ -982,9 +982,10 @@ /* XXX good place? set RTS threshold */ uath_config(sc, CFG_USER_RTS_THRESHOLD, vap->iv_rtsthreshold); /* XXX bad place */ - if (uath_set_keys(sc, vap) != 0) { + error = uath_set_keys(sc, vap); + if (error != 0) { device_printf(sc->sc_dev, - "could not set crypto keys, error %d\n", ret); + "could not set crypto keys, error %d\n", error); break; } if (uath_switch_channel(sc, ni->ni_chan) != 0) { From owner-p4-projects@FreeBSD.ORG Mon Feb 2 02:23:46 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 26D2810656D1; Mon, 2 Feb 2009 02:23:46 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id D4CBE1065688 for ; Mon, 2 Feb 2009 02:23:45 +0000 (UTC) (envelope-from weongyo@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id C342E8FC18 for ; Mon, 2 Feb 2009 02:23:45 +0000 (UTC) (envelope-from weongyo@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n122Njvs002285 for ; Mon, 2 Feb 2009 02:23:45 GMT (envelope-from weongyo@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n122NjgY002283 for perforce@freebsd.org; Mon, 2 Feb 2009 02:23:45 GMT (envelope-from weongyo@FreeBSD.org) Date: Mon, 2 Feb 2009 02:23:45 GMT Message-Id: <200902020223.n122NjgY002283@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to weongyo@FreeBSD.org using -f From: Weongyo Jeong To: Perforce Change Reviews Cc: Subject: PERFORCE change 157018 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 02 Feb 2009 02:23:47 -0000 http://perforce.freebsd.org/chv.cgi?CH=157018 Change 157018 by weongyo@weongyo_ws on 2009/02/02 02:23:00 code nits for readability. Affected files ... .. //depot/projects/vap/sys/dev/usb/if_uath.c#10 edit Differences ... ==== //depot/projects/vap/sys/dev/usb/if_uath.c#10 (text+ko) ==== @@ -266,6 +266,9 @@ static void uath_update_promisc(struct ifnet *); static int uath_raw_xmit(struct ieee80211_node *, struct mbuf *, const struct ieee80211_bpf_params *); +static int uath_dataflush(struct uath_softc *); +static int uath_cmdflush(struct uath_softc *); +static int uath_flush(struct uath_softc *); static int uath_match(device_t dev) @@ -1723,6 +1726,30 @@ static int uath_flush(struct uath_softc *sc) { + int error; + + error = uath_dataflush(sc); + if (error != 0) + goto failed; + + error = uath_cmdflush(sc); + if (error != 0) + goto failed; + +failed: + return (error); +} + +static int +uath_cmdflush(struct uath_softc *sc) +{ + + return uath_cmd_write(sc, WDCMSG_FLUSH, NULL, 0, 0); +} + +static int +uath_dataflush(struct uath_softc *sc) +{ struct uath_data *data; struct uath_chunk *chunk; struct uath_tx_desc *desc; @@ -2376,15 +2403,9 @@ error = uath_flush(sc); if (error) { device_printf(sc->sc_dev, - "could not flush data pipe, error %d\n", error); + "could not flush pipes, error %d\n", error); goto failed; } - error = uath_cmd_write(sc, WDCMSG_FLUSH, NULL, 0, 0); - if (error) { - device_printf(sc->sc_dev, - "could not flush control pipe, error %d\n", error); - goto failed; - } failed: return (error); } @@ -2543,8 +2564,7 @@ /* abort pending transmits */ uath_abort_pipes(sc); /* flush data & control requests into the target */ - uath_flush(sc); - uath_cmd_write(sc, WDCMSG_FLUSH, NULL, 0, 0); + (void)uath_flush(sc); /* set a LED status to the disconnected. */ uath_set_ledstate(sc, 0); /* stop the target */ From owner-p4-projects@FreeBSD.ORG Mon Feb 2 10:44:15 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 9A0831065674; Mon, 2 Feb 2009 10:44:15 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 57F17106564A for ; Mon, 2 Feb 2009 10:44:15 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 45BD68FC2A for ; Mon, 2 Feb 2009 10:44:15 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n12AiFuC069596 for ; Mon, 2 Feb 2009 10:44:15 GMT (envelope-from hselasky@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n12AiFTe069594 for perforce@freebsd.org; Mon, 2 Feb 2009 10:44:15 GMT (envelope-from hselasky@FreeBSD.org) Date: Mon, 2 Feb 2009 10:44:15 GMT Message-Id: <200902021044.n12AiFTe069594@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky To: Perforce Change Reviews Cc: Subject: PERFORCE change 157030 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 02 Feb 2009 10:44:16 -0000 http://perforce.freebsd.org/chv.cgi?CH=157030 Change 157030 by hselasky@hselasky_laptop001 on 2009/02/02 10:43:38 Hopefully the final version of my BUS-DMA patch. Affected files ... .. //depot/projects/usb/src/sys/amd64/amd64/busdma_machdep.c#11 edit .. //depot/projects/usb/src/sys/arm/arm/busdma_machdep.c#14 edit .. //depot/projects/usb/src/sys/dev/usb2/core/usb2_busdma.c#19 edit .. //depot/projects/usb/src/sys/i386/i386/busdma_machdep.c#14 edit .. //depot/projects/usb/src/sys/ia64/ia64/busdma_machdep.c#10 edit .. //depot/projects/usb/src/sys/sys/bus_dma.h#8 edit Differences ... ==== //depot/projects/usb/src/sys/amd64/amd64/busdma_machdep.c#11 (text+ko) ==== @@ -1128,11 +1128,13 @@ bz->active_bpages++; mtx_unlock(&bounce_lock); - /* page offset needs to be preserved */ - bpage->vaddr &= ~PAGE_MASK; - bpage->busaddr &= ~PAGE_MASK; - bpage->vaddr |= vaddr & PAGE_MASK; - bpage->busaddr |= vaddr & PAGE_MASK; + if (dmat->flags & BUS_DMA_KEEP_PG_OFFSET) { + /* page offset needs to be preserved */ + bpage->vaddr &= ~PAGE_MASK; + bpage->busaddr &= ~PAGE_MASK; + bpage->vaddr |= vaddr & PAGE_MASK; + bpage->busaddr |= vaddr & PAGE_MASK; + } bpage->datavaddr = vaddr; bpage->datacount = size; STAILQ_INSERT_TAIL(&(map->bpages), bpage, links); ==== //depot/projects/usb/src/sys/arm/arm/busdma_machdep.c#14 (text+ko) ==== @@ -1417,11 +1417,13 @@ bz->active_bpages++; mtx_unlock(&bounce_lock); - /* page offset needs to be preserved */ - bpage->vaddr &= ~PAGE_MASK; - bpage->busaddr &= ~PAGE_MASK; - bpage->vaddr |= vaddr & PAGE_MASK; - bpage->busaddr |= vaddr & PAGE_MASK; + if (dmat->flags & BUS_DMA_KEEP_PG_OFFSET) { + /* page offset needs to be preserved */ + bpage->vaddr &= ~PAGE_MASK; + bpage->busaddr &= ~PAGE_MASK; + bpage->vaddr |= vaddr & PAGE_MASK; + bpage->busaddr |= vaddr & PAGE_MASK; + } bpage->datavaddr = vaddr; bpage->datacount = size; STAILQ_INSERT_TAIL(&(map->bpages), bpage, links); ==== //depot/projects/usb/src/sys/dev/usb2/core/usb2_busdma.c#19 (text+ko) ==== @@ -351,7 +351,7 @@ (2 + (size / USB_PAGE_SIZE)) : 1, /* maxsegsz */ (align == 1) ? USB_PAGE_SIZE : size, - /* flags */ 0, + /* flags */ BUS_DMA_KEEP_PG_OFFSET, /* lockfn */ &usb2_dma_lock_cb, /* lockarg */ NULL, &tag)) { ==== //depot/projects/usb/src/sys/i386/i386/busdma_machdep.c#14 (text+ko) ==== @@ -1146,11 +1146,13 @@ bz->active_bpages++; mtx_unlock(&bounce_lock); - /* page offset needs to be preserved */ - bpage->vaddr &= ~PAGE_MASK; - bpage->busaddr &= ~PAGE_MASK; - bpage->vaddr |= vaddr & PAGE_MASK; - bpage->busaddr |= vaddr & PAGE_MASK; + if (dmat->flags & BUS_DMA_KEEP_PG_OFFSET) { + /* page offset needs to be preserved */ + bpage->vaddr &= ~PAGE_MASK; + bpage->busaddr &= ~PAGE_MASK; + bpage->vaddr |= vaddr & PAGE_MASK; + bpage->busaddr |= vaddr & PAGE_MASK; + } bpage->datavaddr = vaddr; bpage->datacount = size; STAILQ_INSERT_TAIL(&(map->bpages), bpage, links); ==== //depot/projects/usb/src/sys/ia64/ia64/busdma_machdep.c#10 (text+ko) ==== @@ -936,12 +936,13 @@ active_bpages++; mtx_unlock(&bounce_lock); - /* page offset needs to be preserved */ - bpage->vaddr &= ~PAGE_MASK; - bpage->busaddr &= ~PAGE_MASK; - bpage->vaddr |= vaddr & PAGE_MASK; - bpage->busaddr |= vaddr & PAGE_MASK; - + if (dmat->flags & BUS_DMA_KEEP_PG_OFFSET) { + /* page offset needs to be preserved */ + bpage->vaddr &= ~PAGE_MASK; + bpage->busaddr &= ~PAGE_MASK; + bpage->vaddr |= vaddr & PAGE_MASK; + bpage->busaddr |= vaddr & PAGE_MASK; + } bpage->datavaddr = vaddr; bpage->datacount = size; STAILQ_INSERT_TAIL(&(map->bpages), bpage, links); ==== //depot/projects/usb/src/sys/sys/bus_dma.h#8 (text+ko) ==== @@ -102,6 +102,13 @@ #define BUS_DMA_NOWRITE 0x100 #define BUS_DMA_NOCACHE 0x200 +/* + * The following flag is a DMA tag hint that the page offset of the + * loaded kernel virtual address must be preserved in the first + * physical segment address, when the KVA is loaded into DMA. + */ +#define BUS_DMA_KEEP_PG_OFFSET 0x400 + /* Forwards needed by prototypes below. */ struct mbuf; struct uio; From owner-p4-projects@FreeBSD.ORG Mon Feb 2 16:53:35 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 6FE7D1065673; Mon, 2 Feb 2009 16:53:35 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 2BC0C106566B for ; Mon, 2 Feb 2009 16:53:35 +0000 (UTC) (envelope-from pgj@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 17B348FC0A for ; Mon, 2 Feb 2009 16:53:35 +0000 (UTC) (envelope-from pgj@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n12GrZQ9037505 for ; Mon, 2 Feb 2009 16:53:35 GMT (envelope-from pgj@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n12GrYf1037503 for perforce@freebsd.org; Mon, 2 Feb 2009 16:53:34 GMT (envelope-from pgj@FreeBSD.org) Date: Mon, 2 Feb 2009 16:53:34 GMT Message-Id: <200902021653.n12GrYf1037503@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to pgj@FreeBSD.org using -f From: Gabor Pali To: Perforce Change Reviews Cc: Subject: PERFORCE change 157040 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 02 Feb 2009 16:53:36 -0000 http://perforce.freebsd.org/chv.cgi?CH=157040 Change 157040 by pgj@beehive on 2009/02/02 16:52:59 IFC Affected files ... .. //depot/projects/docproj_hu/doc/en_US.ISO8859-1/share/sgml/authors.ent#20 integrate .. //depot/projects/docproj_hu/doc/hu_HU.ISO8859-2/books/fdp-primer/book.sgml#12 integrate .. //depot/projects/docproj_hu/doc/hu_HU.ISO8859-2/books/fdp-primer/examples/appendix.sgml#6 integrate .. //depot/projects/docproj_hu/doc/hu_HU.ISO8859-2/books/fdp-primer/psgml-mode/chapter.sgml#6 integrate .. //depot/projects/docproj_hu/doc/hu_HU.ISO8859-2/books/fdp-primer/see-also/chapter.sgml#7 integrate .. //depot/projects/docproj_hu/doc/hu_HU.ISO8859-2/books/fdp-primer/structure/chapter.sgml#8 integrate .. //depot/projects/docproj_hu/doc/hu_HU.ISO8859-2/books/fdp-primer/the-website/chapter.sgml#6 integrate .. //depot/projects/docproj_hu/doc/hu_HU.ISO8859-2/books/fdp-primer/writing-style/chapter.sgml#7 integrate .. //depot/projects/docproj_hu/doc/hu_HU.ISO8859-2/books/handbook/cutting-edge/chapter.sgml#18 integrate .. //depot/projects/docproj_hu/doc/hu_HU.ISO8859-2/books/handbook/eresources/chapter.sgml#23 integrate .. //depot/projects/docproj_hu/doc/hu_HU.ISO8859-2/books/handbook/ports/chapter.sgml#19 integrate .. //depot/projects/docproj_hu/doc/hu_HU.ISO8859-2/share/sgml/mailing-lists.ent#22 integrate .. //depot/projects/docproj_hu/doc/share/pgpkeys/beat.key#1 branch .. //depot/projects/docproj_hu/doc/share/pgpkeys/jamie.key#1 branch .. //depot/projects/docproj_hu/doc/share/pgpkeys/pgpkeys-core.sgml#2 integrate .. //depot/projects/docproj_hu/doc/share/pgpkeys/pgpkeys-developers.sgml#14 integrate .. //depot/projects/docproj_hu/doc/share/pgpkeys/pgpkeys.ent#14 integrate .. //depot/projects/docproj_hu/doc/share/sgml/mirrors.xml#6 integrate .. //depot/projects/docproj_hu/www/en/developers.sgml#16 integrate .. //depot/projects/docproj_hu/www/en/donations/donors.sgml#12 integrate .. //depot/projects/docproj_hu/www/en/news/status/Makefile#4 integrate .. //depot/projects/docproj_hu/www/en/news/status/report-2008-10-2008-12.xml#1 branch .. //depot/projects/docproj_hu/www/en/news/status/status.sgml#6 integrate .. //depot/projects/docproj_hu/www/en/where.sgml#3 integrate .. //depot/projects/docproj_hu/www/hu/community.xsl#10 integrate .. //depot/projects/docproj_hu/www/share/sgml/news.xml#36 integrate Differences ... ==== //depot/projects/docproj_hu/doc/en_US.ISO8859-1/share/sgml/authors.ent#20 (text+ko) ==== @@ -13,7 +13,7 @@ builds for the other languages, and we will poke fun of you in public. - $FreeBSD: doc/en_US.ISO8859-1/share/sgml/authors.ent,v 1.467 2008/11/24 06:38:24 pgj Exp $ + $FreeBSD: doc/en_US.ISO8859-1/share/sgml/authors.ent,v 1.469 2009/01/30 22:09:36 jamie Exp $ --> aaron@FreeBSD.org"> @@ -110,6 +110,8 @@ bean@FreeBSD.org"> +beat@FreeBSD.org"> + beech@FreeBSD.org"> ben@FreeBSD.org"> @@ -446,6 +448,8 @@ jake@FreeBSD.org"> +jamie@FreeBSD.org"> + jasone@FreeBSD.org"> jayanth@FreeBSD.org"> ==== //depot/projects/docproj_hu/doc/hu_HU.ISO8859-2/books/fdp-primer/book.sgml#12 (text+ko) ==== @@ -27,7 +27,7 @@ ANY WAY OUT OF THE USE OF THIS DOCUMENTATION, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - $FreeBSD: doc/hu_HU.ISO8859-2/books/fdp-primer/book.sgml,v 1.3 2008/12/24 12:00:57 pgj Exp $ + $FreeBSD: doc/hu_HU.ISO8859-2/books/fdp-primer/book.sgml,v 1.4 2009/01/26 22:30:37 pgj Exp $ --> - + &a.wilko; &pgpkey.wilko; - + &a.brooks; &pgpkey.brooks; - + &a.keramida; &pgpkey.keramida; - - &a.imp; - &pgpkey.imp; - - - + &a.gnn; &pgpkey.gnn; - - &a.wes; - &pgpkey.wes; - - - + &a.hrs; &pgpkey.hrs; - + &a.murray; &pgpkey.murray; + + + &a.kris; + &pgpkey.kris; + ==== //depot/projects/docproj_hu/doc/share/pgpkeys/pgpkeys-developers.sgml#14 (text+ko) ==== @@ -1,7 +1,7 @@ @@ -376,6 +376,11 @@ &pgpkey.billf; + + &a.beat; + &pgpkey.beat; + + &a.danger; &pgpkey.danger; @@ -406,6 +411,11 @@ &pgpkey.grehan; + + &a.jamie; + &pgpkey.jamie; + + &a.jmg; &pgpkey.jmg; ==== //depot/projects/docproj_hu/doc/share/pgpkeys/pgpkeys.ent#14 (text+ko) ==== @@ -1,5 +1,5 @@ - + @@ -24,6 +24,7 @@ + @@ -112,6 +113,7 @@ + ==== //depot/projects/docproj_hu/doc/share/sgml/mirrors.xml#6 (text+ko) ==== @@ -2,7 +2,7 @@ - $FreeBSD: doc/share/sgml/mirrors.xml,v 1.76 2008/09/22 19:27:39 manolis Exp $ + $FreeBSD: doc/share/sgml/mirrors.xml,v 1.77 2009/01/29 14:20:25 pav Exp $ @@ -506,6 +506,12 @@ + + ftp2.cz.FreeBSD.org + ftp://ftp2.cz.FreeBSD.org/pub/FreeBSD/ + http://ftp2.cz.FreeBSD.org/pub/FreeBSD/ + + cvsup.cz.FreeBSD.org ==== //depot/projects/docproj_hu/www/en/developers.sgml#16 (text+ko) ==== @@ -6,7 +6,7 @@ us to update author names, or the representation of those names (such as adding email addresses), by just editing a single file. -$FreeBSD: www/en/developers.sgml,v 1.209 2008/11/04 22:17:30 blackend Exp $ +$FreeBSD: www/en/developers.sgml,v 1.211 2009/01/30 22:09:36 jamie Exp $ --> @@ -58,6 +58,7 @@ + @@ -224,6 +225,7 @@ + ==== //depot/projects/docproj_hu/www/en/donations/donors.sgml#12 (text+ko) ==== @@ -1,6 +1,6 @@ - + %developers; @@ -1162,7 +1162,7 @@ 256MB PC2100 DDR 266MHz RAM, Savage8 3D Video Accelerator, 80GB 7200rpm ATA100 IDE Harddrive, Integrated 10/100 LAN VT8233 trhodes - shipping + Received ==== //depot/projects/docproj_hu/www/en/news/status/Makefile#4 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: www/en/news/status/Makefile,v 1.44 2008/11/11 03:52:54 brd Exp $ +# $FreeBSD: www/en/news/status/Makefile,v 1.45 2009/01/29 06:50:26 brd Exp $ .if exists(../Makefile.conf) .include "../Makefile.conf" @@ -42,6 +42,7 @@ XMLDOCS+= report-2008-01-2008-03 XMLDOCS+= report-2008-04-2008-06 XMLDOCS+= report-2008-07-2008-09 +XMLDOCS+= report-2008-10-2008-12 XSLT.DEFAULT= report.xsl ==== //depot/projects/docproj_hu/www/en/news/status/status.sgml#6 (text+ko) ==== @@ -1,6 +1,6 @@ - + ]> @@ -8,7 +8,7 @@ &header; -

Next submissions due: January 14, 2009

+

Next submissions due: April 14, 2009

Use the xml generator or download and edit the @@ -42,6 +42,8 @@

2008

    +
  • October, 2008 - + December, 2008
  • July, 2008 - September, 2008
  • April, 2008 - ==== //depot/projects/docproj_hu/www/en/where.sgml#3 (text+ko) ==== @@ -1,5 +1,5 @@ + @@ -169,9 +169,10 @@ listing of mirror sites in the handbook to see if there is a site - closer to you. For more information about past, present and - future releases in general, please visit the release information page.

    + closer to you. Alternatively, you may want to download &os; using + the BitTorrent protocol. The .torrent files can be + downloaded from the &os; BitTorrent Tracker.

    snapshot release of FreeBSD-CURRENT (AKA &rel.head;-CURRENT), aimed at developers and bleeding-edge testers only, then please see the &os; Snapshot Releases page.

    + href="&base;/snapshots/">&os; Snapshot Releases page. For + more information about past, present and future releases in + general, please visit the release information + page.

    FreeBSD-derived Operating System Distributions

    ==== //depot/projects/docproj_hu/www/hu/community.xsl#10 (text+ko) ==== @@ -6,7 +6,7 @@ ]> - + @@ -3252,7 +3252,7 @@ megfelelõen az állományrendszerek a mount /dev/da0s4 /mnt vagy (DOS - esetén) a mount_msdos /dev/da0s4 + esetén) a mount -t msdosfs /dev/da0s4 /mnt parancs kiadásával csatlakoztathatóak. @@ -7290,7 +7290,7 @@ class="directory">/dev könyvtárban, amelyet majd csatlakoztatni tudunk: - &prompt.root; mount -t msdos /dev/da1s5 /dos/e + &prompt.root; mount -t msdosfs /dev/da1s5 /dos/e @@ -7567,13 +7567,13 @@ akkor azt parancssorból így érhetjük el, ha floppy: - &prompt.root; mount -t msdos /dev/fd0c /floppy + &prompt.root; mount -t msdosfs /dev/fd0c /floppy vagy így, ha egy gyári beállításokkal rendelkezõ ZIP-lemez: - &prompt.root; mount -t msdos /dev/da2s4 /zip + &prompt.root; mount -t msdosfs /dev/da2s4 /zip A többi lemez esetén a &man.fdisk.8; vagy a &man.sysinstall.8; segítségével @@ -7878,7 +7878,7 @@ könyvtárába: &prompt.user; mkdir ~/az-én-csatlakozási-pontom -&prompt.user; mount -t msdos /dev/fd0 ~/az-én-csatlakozási-pontom +&prompt.user; mount -t msdosfs /dev/fd0 ~/az-én-csatlakozási-pontom A operator csoport tagjai is képesek most már az ==== //depot/projects/docproj_hu/doc/hu_HU.ISO8859-2/books/handbook/cutting-edge/chapter.sgml#19 (text+ko) ==== @@ -7,7 +7,7 @@ @@ -222,7 +222,7 @@ következõ mûvelet elkezdése elõtt tiltsuk le. - + A konfigurációs állományok Elõfordulhat, hogy változtatni akarunk valamin @@ -352,7 +352,7 @@ állományokat fogja frissíteni. - + Biztonsági javítások A biztonsági javítások mindig egy @@ -792,7 +792,7 @@ véget ért. - + Rendszerek állapotainak összehasonlítása @@ -2245,7 +2245,7 @@ eljárásra. - + A rendszer frissítése dióhéjban @@ -2255,8 +2255,316 @@ ahol a letöltött források használatához elvégzendõ elõzetes intézkedésekrõl kaphatunk hírt. - Ezután adjuk ki az alábbi - utasításokat: + Ezután kövessük az alábbiakban + körvonalazott módszer egyes + lépéseit. + + Ezek a lépések feltételezik, hogy egy + korábbi &os; verziót használunk, tehát + a fordító, a rendszermag, az alaprendszer + és a konfigurációs állományok + valamelyik régebbi változatát. + Alaprendszer alatt, amelyet sokszor csak a world + néven hivatkozunk, a rendszer számára + alapvetõ fontosságú binárisokat, + programkönyvtárakat és + programfejlesztéshez szükséges egyéb + állományokat értjük. Maga a + fordítóprogram is része ennek, azonban + tartalmaz néhány speciális + megszorítást. + + Mindezek mellett továbbá + feltételezzük, hogy elõzetesen már + valamilyen módon letöltöttük a friss + forrásokat. Ha rendszerünkön ezt még + nem tettük volna meg, akkor a + segítségével + tájékozódhatunk részletesen + arról, hogyan tölthetjük le a legfrissebb + verziót. + + A rendszer forráskódon keresztüli + frissítése egy kicsivel + körülményesebb, mint amennyire elsõre + látszik. A &os; fejlesztõk az évek + során fontosnak találták, hogy a + folyamatosan felszínre bukkanó, + elkerülhetetlen függõségek + tükrében meglehetõsen drámai + módon megváltoztassák az erre javasolt + módszert. Ezért a szakasz további + részében a pillanatnyilag javasolt + frissítési megoldás nyomán fogunk + haladni. + + A sikeres frissítések során az + alábbi akadályokkal kell mindenképpen + szembenéznünk: + + + + A fordító régebbi változata + nem feltétlenül lesz képes + lefordítani az új rendszermagot. (Illetve a + régebbi fordítóprogramok + tartalmazhatnak hibákat.) Ezért az új + rendszermagot már a fordító új + változatával kell + elõállítanunk. Ebbõl + következik, hogy az új rendszermag + elkészítéséhez elõször + a fordítóprogram újabb + változatát kell lefordítanunk. Ez + viszont nem feltétlenül jelenti azt, hogy az + új rendszermag fordítása elõtt az + új fordítóprogramot + telepítenünk is + kellene. + + + + Az új alaprendszer esetenként bizonyos + új funkciókat igényelhet a + rendszermagtól. Ezért a frissebb alaprendszer + telepítése elõtt telepítenünk + kell a frissebb rendszermagot. + + + + Ez az elõbb említett két + akadály képzi az okát a + következõ bekezdésekben bemutatott + buildworld, + buildkernel, + installkernel, + installworld sorozatnak. + Természetesen léteznek további + egyéb indokok is, amiért még + érdemes az itt leírtak szerint + frissíteni a rendszerünket. Ezek + közül most vegyünk néhány + kevésbé nyilvánvalóbbat: + + + + A régebbi alaprendszer nem minden esetben fog + problémamentesen együttmûködni az + új rendszermaggal, ezért az alaprendszer + újabb változatát szinte azonnal az + új rendszermagot követõen kell + telepítenünk. + + + + Vannak olyan konfigurációs + változtatások, amelyeket még az + új alaprendszer telepítése + elõtt el kell végeznünk, a többi + viszont veszélyes lehet a korábbi + alaprendszerre. Ezért a + konfigurációs állományokat + általában két külön + lépésben kell frissíteni. + + + + A frissítés során + nagyrészt csak állományok + cserélõdnek el és újabbak + érkeznek, a korábbiak nem + törlõdnek. Ez bizonyos esetekben azonban + gondokat okozhat. Ennek eredményeképpen a + frissítés során + idõnként elõfordulhat, hogy magunknak + kell manuálisan némely megadott + állományokat törölnünk. + Elképzelhetõ, hogy ezt a jövõben + még majd automatizálni + fogják. + + + + Ezek a megfontolások vezettek tehát az + ismertetendõ eljárás + kialakításához. Ettõl + függetlenül adódhatnak olyan helyzetek, + amikor további lépéseket is be kell + iktatnunk, viszont az itt bemutatott folyamat egy ideje + már viszonylag elfogadottnak tekinthetõ: + + + + make buildworld + + Elõször lefordítja az új + fordítóprogramot és + néhány hozzátartozó + eszközt, majd ennek + felhasználásával + elkészíti az alaprendszer többi + részét. Az eredmény a /usr/obj + könyvtárban keletkezik. + + + + make buildkernel + + Eltérõen a &man.config.8; és + &man.make.1; programok korábban javasolt + alkalmazásától, ezzel a paranccsal + már a /usr/obj + könyvtárban létrehozott + új fordítót + használjuk. Ez védelmet nyújt a + fordító és rendszermag + változatai közti + eltérésekbõl fakadó + problémák ellen. + + + + make installkernel + + Telepíti a lemezre az új rendszermagot + és a hozzátartozó modulokat, + ezáltal lehetõvé válik a + frissített rendszermag + betöltése. + + + + Átváltás + egyfelhasználós módba. + + Egyfelhasználós módban a + minimálisra csökkenthetjük a futó + szoftverek frissítésébõl + adódó bonyodalmakat. Ezzel együtt + minimálissá válik a régi + alaprendszer és az új rendszermag + eltéréseibõl eredõ + problémák elõfordulása + is. + + + + mergemaster -p + + Az új alaprendszer + telepítéséhez elvégzi a + konfigurációs állományok + részérõl szükséges + frissítéseket. Például + felvesz még nem létezõ csoportokat + vagy felhasználókat. Ez gyakran + elengedhetetlennek bizonyulhat, mivel ha a rendszer + legutóbbi frissítése óta + újabb csoportok vagy felhasználók + kerültek be az alaprendszerbe, a + installworld csak akkor tud + hibamentesen lefutni, ha ezek már a + futásakor is elérhetõek. + + + + make installworld + + Átmásolja a /usr/obj + könyvtárból a korábban + elkészített új alaprendszert. + Lefutása után már mind az új + rendszermag és az új alaprendszer a + megfelelõ helyén + található. + + + + mergemaster + + Feldolgozzuk a korábbi fázisból + fennmaradó konfigurációs + állományok + frissítését, mivel most már + elérhetõ az új alaprendszer. + + + + A rendszer újraindítása. + + Az új rendszermag és az új + konfigurációs állományokkal + futó alaprendszer használatához + teljesen újra kell indítanunk a + számítógépünket. + + + + Ha a &os; ugyanazon fejlesztési + ágán belül frissítjük a + rendszerünket, például a 7.0 + kiadásról a 7.1 kiadásra, akkor + értelemszerûen nem kell az iménti + eljárás minden lépését + szorosan követni, hiszen nagyon + valószínûtlen, hogy komoly + eltérések lennének a + fordítóprogram, a rendszermag, az alaprendszer + és a konfigurációs + állományok között. Ilyenkor + akár nyugodtan kiadhatjuk a make + world parancsot, majd kérhetjük a + rendszermag fordítását és + telepítését. + + A fejlesztési ágak közti + váltás során azonban könnyen + érhetnek minket meglepetések, ha nem a + megadottak szerint járunk el. + + Egyes váltásokhoz (például + 4.X és 5.0 + között) további lépések + megtétele is szükséges lehet + (például adott állományok + törlése vagy átnevezése még + az installworld elõtt). + Ilyenkor mindig figyelmesen olvassuk át a + /usr/src/UPDATING + állományt, különös tekintettel + a végére, mivel gyakran ott adják meg a + konkrét verzióváltáshoz + szükséges teendõket. + + A szakaszban összefoglalt lépések + egyfajta evolúciós folyamat eredményei, + melynek során a fejlesztõk felismerték, + hogy nem tökéletesen kivédeni az + összes frissítéssel járó + problémát. A javasolt eljárás + remélhetõleg viszont még sokáig + érvényes marad. + + + A &os; 3.X vagy + annál is korábbi változatok + frissítése még ennél is + több ügyességet kíván. Ha + ilyen verziót akarunk frissíteni, akkor + feltétlenül olvassuk el az + UPDATING + állományt! + + + Röviden tehát a &os; + forráskódon keresztüli + frissítését így foglalhatjuk + össze: + + &prompt.root; cd /usr/src &prompt.root; make buildworld @@ -2285,7 +2593,8 @@ parancssorában adjuk ki boot -s parancsot). Itt futtassuk a következõket: - &prompt.root; mount -a -t ufs + &prompt.root; adjkerntz -i +&prompt.root; mount -a -t ufs &prompt.root; mergemaster -p &prompt.root; cd /usr/src &prompt.root; make installworld @@ -2303,10 +2612,9 @@ szakaszokat is, különösen abban az esetben, ha saját rendszermagot akarunk használni. - - + Nézzük meg a <filename>/usr/src/UPDATING</filename> állományt @@ -2333,10 +2641,9 @@ elvárás nem kizárja, hanem kiegészíti egymást. - - + Ellenõrizzük az <filename>/etc/make.conf</filename> állományt @@ -2375,10 +2682,9 @@ és így tovább) használatáról már mindenki maga dönt. - - + Frissítsük az <filename>/etc</filename> tartalmát @@ -2450,7 +2756,6 @@ tartozó összes állományt a rendszerünkben. - @@ -2538,10 +2843,9 @@ beállítani — nélküle késõbb még gondjaink akadhatnak. - - + Töröljük a <filename>/usr/obj</filename> könyvtárat @@ -2570,7 +2874,6 @@ &prompt.root; cd /usr/obj &prompt.root; chflags -R noschg * &prompt.root; rm -rf * - @@ -2603,7 +2906,7 @@ &prompt.root; script /var/tmp/mw.out Script started, output file is /var/tmp/mw.out &prompt.root; make TARGET -… fordít, fordít, fordít … +… fordít, fordít, fordít … &prompt.root; exit Script done, … @@ -2616,7 +2919,6 @@ tettük azt az elõbbi példában is) vagy a root felhasználó könyvtárába mentünk. - @@ -2790,7 +3092,6 @@ rendszermagot indítottunk el, akkor érdemes 6 és 10 közötti értékekkel kísérleteznünk. - @@ -2812,11 +3113,10 @@ taksálható. A &os.current; fához ennél valamivel több idõre lesz szükségünk. - - + Fordítsunk és telepítsünk egy új rendszermagot @@ -2895,10 +3195,9 @@ különbözõ állományjelzõkrõl pedig a &man.chflags.1; oldalán olvashatunk. - - + Indítsuk újra a rendszert egyfelhasználós módban @@ -2909,8 +3208,7 @@ leteszteléséhez indítsuk újra a rendszert egyfelhasználós módban. Ennek pontos részleteit lásd . - + linkend="makeworld-singleuser">. @@ -2957,10 +3255,9 @@ make buildworld futása során nem jöttek létre. - - + Frissítsük a <command>make installworld</command> által kihagyott állományokat @@ -3104,7 +3401,6 @@ végén a megmaradt ideiglenes állományok törlésére (remove) vár választ. - @@ -3339,7 +3635,6 @@ &prompt.root; mkdir /var/tmp/root-`date "+%Y%m%d"` - @@ -3353,7 +3648,6 @@ elegendõ: &prompt.root; shutdown -r now - @@ -3375,10 +3669,9 @@ &prompt.root; cd /usr/src/usr.bin/file &prompt.root; make all install - - + Kérdések @@ -3778,7 +4071,6 @@ - @@ -3888,10 +4180,9 @@ /usr/src/sys/arch/conf könyvtárában meglevõ állományaival. - - + Az alaprendszer Most, miután mindent megfelelõen @@ -3928,10 +4219,9 @@ eljárással telepítsük fel a fordítási csoportban levõ összes többi gépre is az új szoftvereket. - - + Portok Ugyanezt a gondolatmenet alkalmazható a portfa @@ -3960,7 +4250,6 @@ változót a DISTDIR változóhoz hasonlóan beállítani. - ==== //depot/projects/docproj_hu/doc/hu_HU.ISO8859-2/books/handbook/mirrors/chapter.sgml#22 (text+ko) ==== @@ -7,7 +7,7 @@ The FreeBSD Hungarian Documentation Project Translated by: PALI, Gabor %SOURCE% en_US.ISO8859-1/books/handbook/mirrors/chapter.sgml - %SRCID% 1.457 + %SRCID% 1.458 --> @@ -3775,27 +3775,6 @@ - Németország - - - rsync://grappa.unix-ag.uni-kl.de/ - - Elérhetõ gyûjtemények: - - - - freebsd-cvs: a &os; teljes CVS - tárháza. - - - - Ez a gép ezen kívül még - tükrözi a NetBSD és OpenBSD CVS - repositorykat is. - - - - Hollandia ==== //depot/projects/docproj_hu/doc/hu_HU.ISO8859-2/books/handbook/network-servers/chapter.sgml#23 (text+ko) ==== @@ -7,7 +7,7 @@ ==== //depot/projects/docproj_hu/doc/hu_HU.ISO8859-2/books/handbook/ports/chapter.sgml#20 (text+ko) ==== @@ -7,7 +7,7 @@ @@ -522,8 +522,7 @@ rendszeren tudjuk megnézni a telepített csomagokat, tudunk vele csomagokat telepíteni vagy törölni. Ezzel részletesebben a telepítés utáni - teendõket tartalmazó része foglalkozik. + linkend="packages"> foglalkozik. ==== //depot/projects/docproj_hu/doc/hu_HU.ISO8859-2/books/handbook/ppp-and-slip/chapter.sgml#14 (text+ko) ==== @@ -7,7 +7,7 @@ @@ -313,11 +313,13 @@ A ppp és a pppd (a PPP rendszerszintû megvalósítása) egyaránt az - /etc/ppp könyvtárban - található konfigurációs - állományokat használja. A - felhasználói PPP-hez ezenkívül - még a /usr/share/examples/ppp/ + /etc/ppp + könyvtárban található + konfigurációs állományokat + használja. A felhasználói PPP-hez + ezenkívül még a + /usr/share/examples/ppp/ könyvtárban vannak példák. A ppp parancs @@ -432,9 +434,9 @@ Itt adjuk meg az eszközt, amelyre a modem csatlakozik. A COM1 neve - /dev/cuad0, a - COM2 neve pedig - /dev/cuad1. + /dev/cuad0, a + COM2 neve pedig /dev/cuad1. @@ -727,7 +729,8 @@ fogjuk bõvebben kifejteni. Erre példákat a - /usr/share/examples/ppp/ + /usr/share/examples/ppp/ könyvtárban találhatunk. @@ -1016,9 +1019,10 @@ pchilds:*:1011:300:Peter Childs PPP:/home/ppp:/etc/ppp/ppp-dialup - Hozzunk létre egy /home/ppp - nevû könyvtárat a következõ - bárki által olvasható 0 byte-os + Hozzunk létre egy /home/ppp nevû + könyvtárat a következõ bárki + által olvasható 0 byte-os állományokkal: -r--r--r-- 1 root wheel 0 May 27 02:23 .hushlogin @@ -1609,10 +1613,11 @@ Ellenõrizzük, hogy a - tunN + tunN eszközhöz tartozó állomány rendelkezésre áll a - /dev könyvtárban. + /dev + könyvtárban. @@ -1657,9 +1662,10 @@ Gyõzõdjünk meg róla, hogy a - tunN - eszköz megtalálható a - /dev könyvtárban. + tunN + eszköz megtalálható a /dev + könyvtárban. @@ -1695,7 +1701,6 @@ állományunkat. - @@ -1730,10 +1735,10 @@ Mielõtt a gépünkön nekikezdünk a PPP beállításának, ellenõrizzük, hogy a pppd - megtalálható a /usr/sbin - könyvtárban és az - /etc/ppp könyvtár - létezik. + megtalálható a /usr/sbin könyvtárban + és az /etc/ppp + könyvtár létezik. A pppd két módban képes mûködni: @@ -2275,14 +2280,19 @@ Az eszközleírók ellenõrzése - Ha újrakonfiguráltuk a rendszermagunkat, - akkor minden bizonnyal még emlékszünk a - sio eszközre. Ha nem - készítettünk volna új rendszermagot, - ne aggódjunk. Egyszerûen csak a - dmesg parancs kimenetében - keressük meg a modemes eszközhöz tartozó - adatokat: + Ha saját rendszermagot használunk, ne + felejtsük el felvenni a következõ sort a + konfigurációs állományba: + + device sio + + A GENERIC rendszermag a + sio eszközt már + alapértelmezés szerint tartalmazza, ezért + ilyenkor már nincs több teendõnk. + Egyszerûen csak a dmesg parancs + kimenetében keressük meg a modemes + eszközhöz tartozó adatokat: &prompt.root; dmesg | grep sio @@ -2298,8 +2308,8 @@ vonali modemünk a sio1 vagy COM2 porton csatlakozik DOS-ban, akkor itt a neki megfelelõ eszköz a - /dev/cuad1 lesz. - + /dev/cuad1 + lesz. @@ -2327,7 +2337,7 @@ Ezzel elindítottuk a ppp programot. - ppp ON pelda> set device /dev/cuad1 + ppp ON pelda> set device /dev/cuad1 Beállítjuk a modemünket, ami ebben az esetben a cuad1. @@ -2354,7 +2364,7 @@ Váltsunk terminál módba, így mi irányítjuk a modemet. - deflink: Entering terminal mode on /dev/cuad1 + deflink: Entering terminal mode on /dev/cuad1 type '~h' for help at @@ -2888,17 +2898,17 @@ szolgáltatónk igényei szerint. A port a rengeteg leírással megtûzdelt minta konfigurációs állományait a - PREFIX/etc/mpd/ + PREFIX/etc/mpd/ könyvtárba teszi. Itt a PREFIX azt a könyvtárat jelöli, ahova a portok kerülnek. Ez alapból a - /usr/local/. Az + /usr/local/. Az mpd beállításáról szóló teljes dokumentáció a telepítés után elérhetõ HTML formátumban a - PREFIX/share/doc/mpd/ + PREFIX/share/doc/mpd/ könyvtárban. Íme egy példa az mpd beállítására ADSL kapcsolatok @@ -3161,9 +3171,10 @@ Elõször is állapítsuk meg, hogy a modemünk melyik soros portra csatlakozik. Sokan - /dev/modem néven egy szimbolikus - linket hoznak létre a valódi eszközre, - például a /dev/cuadN + /dev/modem néven + egy szimbolikus linket hoznak létre a valódi + eszközre, például a /dev/cuadN leíróra. Ennek köszönhetõen az eszköz tényleges névetõl el tudunk vonatkoztatni és soha nem kell módosítanunk @@ -3171,15 +3182,17 @@ portra kell átraknunk. Ugyanis könnyedén kacifántossá tud válni a helyzet, amikor egyszerre kell megváltoztatnunk egy rakat dolgot az - /etc könyvtárban és - módosítanunk az összes - .kermrc állományt! + /etc + könyvtárban és módosítanunk az + összes .kermrc + állományt! - A /dev/cuad0 a - COM1 port, a - cuad1 a COM2 - és így tovább. + A /dev/cuad0 a + COM1 port, a /dev/cuad1 a + COM2 és így + tovább. A rendszermag beállításait @@ -3196,7 +3209,7 @@ kitöröltük. - Dolgok, amiket csak egyszer kell megtenni + Amiket csak egyszer kell megtenni @@ -3689,9 +3702,9 @@ A sliplogin beállítása Ahogy arra már korábban is utaltunk, az - /etc/sliphome könyvtárban - három állomány felelõs a - /usr/sbin/sliplogin + /etc/sliphome + könyvtárban három állomány + felelõs a /usr/sbin/sliplogin beállításáért (lásd &man.sliplogin.8;): a slip.hosts, amelyekben a SLIP felhasználókat és a ==== //depot/projects/docproj_hu/doc/hu_HU.ISO8859-2/books/handbook/security/chapter.sgml#19 (text+ko) ==== >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Mon Feb 2 20:09:01 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 20AD71065674; Mon, 2 Feb 2009 20:09:00 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id CE209106564A for ; Mon, 2 Feb 2009 20:08:59 +0000 (UTC) (envelope-from pgj@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id A17978FC13 for ; Mon, 2 Feb 2009 20:08:59 +0000 (UTC) (envelope-from pgj@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n12K8xxC056473 for ; Mon, 2 Feb 2009 20:08:59 GMT (envelope-from pgj@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n12K8xeP056471 for perforce@freebsd.org; Mon, 2 Feb 2009 20:08:59 GMT (envelope-from pgj@FreeBSD.org) Date: Mon, 2 Feb 2009 20:08:59 GMT Message-Id: <200902022008.n12K8xeP056471@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to pgj@FreeBSD.org using -f From: Gabor Pali To: Perforce Change Reviews Cc: Subject: PERFORCE change 157058 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 02 Feb 2009 20:09:02 -0000 http://perforce.freebsd.org/chv.cgi?CH=157058 Change 157058 by pgj@beehive on 2009/02/02 20:08:54 MFen (www): 1.99 -> 1.100 hu/where.sgml Affected files ... .. //depot/projects/docproj_hu/www/hu/where.sgml#12 edit Differences ... ==== //depot/projects/docproj_hu/www/hu/where.sgml#12 (text+ko) ==== @@ -8,7 +8,7 @@ @@ -189,12 +189,13 @@ található tükörszerverek listájában keressük meg a hozzánk - legközelebbi kiszolgálót. Ha bõvebb - információt szeretnénk kapni a régi, - jelenlegi és jövõbeli kiadásokról, - látogassuk meg a kiadási információs oldalt. -

    + legközelebbi kiszolgálót. + Lehetõségünk van letölteni a &os; + legújabb változatát a BitTorrent protokollon + keresztül is. Az ehhez szükséges .torrent + állományok a &os; BitTorrent Tracker + honlapjáról érhetõek el.

    pillanatkiadásai, tekintsünk meg a pillanatkiadások tároló szerver - FTP oldalát.

    + href="&base;/snapshots/">pillanatkiadásokat tároló szerver + oldalát. A régebbi, jelenlegi és tervezett + kiadásokkal kapcsolatos további + információkat a kiadások információs oldalán + találhatjuk meg.

    A &os;-bõl származó operációs From owner-p4-projects@FreeBSD.ORG Mon Feb 2 21:54:51 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id B207C1065674; Mon, 2 Feb 2009 21:54:51 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 6C44D106566C for ; Mon, 2 Feb 2009 21:54:51 +0000 (UTC) (envelope-from marius@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 5922D8FC1F for ; Mon, 2 Feb 2009 21:54:51 +0000 (UTC) (envelope-from marius@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n12Lsp1v076592 for ; Mon, 2 Feb 2009 21:54:51 GMT (envelope-from marius@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n12LspKS076590 for perforce@freebsd.org; Mon, 2 Feb 2009 21:54:51 GMT (envelope-from marius@freebsd.org) Date: Mon, 2 Feb 2009 21:54:51 GMT Message-Id: <200902022154.n12LspKS076590@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to marius@freebsd.org using -f From: Marius Strobl To: Perforce Change Reviews Cc: Subject: PERFORCE change 157064 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 02 Feb 2009 21:54:52 -0000 http://perforce.freebsd.org/chv.cgi?CH=157064 Change 157064 by marius@flak on 2009/02/02 21:54:09 Flesh out cas(4); basic support for Cassini+ and Saturn works, Cassini are untested. Affected files ... .. //depot/projects/usiii/dev/cas/if_cas.c#1 add .. //depot/projects/usiii/dev/cas/if_casreg.h#3 edit .. //depot/projects/usiii/dev/cas/if_casvar.h#1 add .. //depot/projects/usiii/dev/mii/nsgphy.c#2 edit Differences ... ==== //depot/projects/usiii/dev/cas/if_casreg.h#3 (text+ko) ==== @@ -13,7 +13,7 @@ * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * - * THIS software IS PROVIDED BY THE AUTHOR ``AS IS'' AND + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE @@ -22,11 +22,11 @@ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS software, EVEN IF ADVISED OF THE POSSIBILITY OF + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * * from: NetBSD: gemreg.h,v 1.8 2005/12/11 12:21:26 christos Exp - * from: FreeBSD: head/sys/dev/gem/if_gemvar.h 174987 2007-12-30 01:32:03Z marius + * from: FreeBSD: if_gemvar.h 174987 2007-12-30 01:32:03Z marius * * $FreeBSD$ */ @@ -34,7 +34,10 @@ #ifndef _IF_CASREG_H #define _IF_CASREG_H -/* register definitions for Sun Cassini Gigabit Ethernet */ +/* + * register definitions for Sun Cassini/Cassini+ and National Semiconductor + * DP83065 Saturn Gigabit Ethernet controllers + */ /* glocal resources */ #define CAS_CAW 0x0004 /* core arbitration weight */ @@ -100,7 +103,8 @@ #define CAS_INTR_MIF 0x00020000 /* MIF interrupt */ #define CAS_INTR_PCI_ERROR_INT 0x00040000 /* PCI error interrupt */ -#define CAS_STATUS_TX_COMP3 0xfff80000 /* TX completion 3 */ +#define CAS_STATUS_TX_COMP3_MASK 0xfff80000 /* TX completion 3 */ +#define CAS_STATUS_TX_COMP3_SHFT 19 /* CAS_ERROR_STATUS and CAS_ERROR_MASK PCI error bits */ #define CAS_ERROR_DTRTO 0x00000002 /* delayed trans. timeout */ @@ -125,7 +129,7 @@ #define CAS_RESET_TX 0x00000001 /* Reset TX DMA engine. */ #define CAS_RESET_RX 0x00000002 /* Reset RX DMA engine. */ #define CAS_RESET_RSTOUT 0x00000004 /* Force PCI RSTOUT#. */ -#define CAS_RESET_PCS_DIS 0x00000004 /* PCS reset disable */ +#define CAS_RESET_PCS_DIS 0x00000008 /* PCS reset disable */ #define CAS_RESET_BREQ_SM 0x00007f00 /* breq state machine */ #define CAS_RESET_PCIARB 0x00070000 /* PCI arbitration state */ #define CAS_RESET_RDPCI 0x00300000 /* read PCI state */ @@ -187,16 +191,16 @@ #define CAS_TX_COMP2 0x204c /* TX completion 2 */ #define CAS_TX_COMP3 0x2050 /* TX completion 3 */ #define CAS_TX_COMP4 0x2054 /* TX completion 4 */ -#define CAS_TX_COMP_BASE_WB_LO 0x2058 /* TX completion writeback base low */ -#define CAS_TX_COMP_BASE_WB_HI 0x205c /* TX completion writeback base high */ -#define CAS_TX_DESC_BASE_LO1 0x2060 /* TX descriptor ring base low 1 */ -#define CAS_TX_DESC_BASE_HI1 0x2064 /* TX descriptor ring base high 1 */ -#define CAS_TX_DESC_BASE_LO2 0x2068 /* TX descriptor ring base low 2 */ -#define CAS_TX_DESC_BASE_HI2 0x206c /* TX descriptor ring base high 2 */ -#define CAS_TX_DESC_BASE_LO3 0x2070 /* TX descriptor ring base low 3 */ -#define CAS_TX_DESC_BASE_HI3 0x2074 /* TX descriptor ring base high 3 */ -#define CAS_TX_DESC_BASE_LO4 0x2078 /* TX descriptor ring base low 4 */ -#define CAS_TX_DESC_BASE_HI4 0x207c /* TX descriptor ring base high 4 */ +#define CAS_TX_COMPWB_BASE_LO 0x2058 /* TX completion writeback base low */ +#define CAS_TX_COMPWB_BASE_HI 0x205c /* TX completion writeback base high */ +#define CAS_TX_DESC1_BASE_LO 0x2060 /* TX descriptor ring 1 base low */ +#define CAS_TX_DESC1_BASE_HI 0x2064 /* TX descriptor ring 1 base high */ +#define CAS_TX_DESC2_BASE_LO 0x2068 /* TX descriptor ring 2 base low */ +#define CAS_TX_DESC2_BASE_HI 0x206c /* TX descriptor ring 2 base high */ +#define CAS_TX_DESC3_BASE_LO 0x2070 /* TX descriptor ring 2 base low */ +#define CAS_TX_DESC3_BASE_HI 0x2074 /* TX descriptor ring 2 base high */ +#define CAS_TX_DESC4_BASE_LO 0x2078 /* TX descriptor ring 2 base low */ +#define CAS_TX_DESC4_BASE_HI 0x207c /* TX descriptor ring 2 base high */ #define CAS_TX_MAXBURST1 0x2080 /* TX MaxBurst 1 */ #define CAS_TX_MAXBURST2 0x2084 /* TX MaxBurst 2 */ #define CAS_TX_MAXBURST3 0x2088 /* TX MaxBurst 3 */ @@ -206,7 +210,7 @@ #define CAS_TX_FIFO_DATA_LO 0x210c /* TX FIFO data low */ #define CAS_TX_FIFO_DATA_HI_T1 0x2110 /* TX FIFO data highT1 */ #define CAS_TX_FIFO_DATA_HI_T0 0x2114 /* TX FIFO data highT0 */ -#define CAS_TX_FIFO_SIZE 0x2118 /* TX FIFO size */ +#define CAS_TX_FIFO_SIZE 0x2118 /* TX FIFO size in 64 byte multiples */ #define CAS_TX_RAM_BIST 0x211c /* TX RAM BIST control/status */ #define CAS_TX_CONF_TXDMA_EN 0x00000001 /* TX DMA enable */ @@ -229,6 +233,10 @@ #define CAS_TX_CONF_CTX_MASK 0xc0000000 /* test port selection */ #define CAS_TX_CONF_CTX_SHFT 30 +#define CAS_TX_COMPWB_ALIGN 2048 /* TX compl. W/B alignment */ + +#define CAS_TX_DESC_ALIGN 2048 /* TX descriptor alignment */ + /* descriptor ring size bits for both CAS_TX_CONF and CAS_RX_CONF */ #define CAS_DESC_32 0x0 /* 32 descriptors */ #define CAS_DESC_64 0x1 /* 64 descriptors */ @@ -244,7 +252,7 @@ #define CAS_TX_SM1_CKSUM 0x00000c00 /* checksum state machine */ #define CAS_TX_SM1_TX_FIFO_LOAD 0x0003f000 /* TX FIFO load state machine */ #define CAS_TX_SM1_TX_FIFO_UNLD 0x003c0000 /* TX FIFO unload state mach. */ -#define CAS_TX_SM1_CACHE_CTRL 0x03c00000 /* cache controll state mach. */ +#define CAS_TX_SM1_CACHE_CTRL 0x03c00000 /* cache control state mach. */ #define CAS_TX_SM1_CBQARB 0x03c00000 /* CBQ arbiter state machine */ #define CAS_TX_SM2_COMPWB 0x00000007 /* compl. WB state machine */ @@ -311,14 +319,14 @@ #define CAS_RX_REAS_DMA_DATA_MD 0x4130 /* RX reassembly DMA table data mid */ #define CAS_RX_REAS_DMA_DATA_HI 0x4134 /* RX reassembly DMA table data high */ /* The rest of the RX DMA registers are Cassini+/Saturn only. */ -#define CAS_RX_DESC_BASE_LO2 0x4200 /* RX descriptor ring base low 2 */ -#define CAS_RX_DESC_BASE_HI2 0x4204 /* RX descriptor ring base high 2 */ -#define CAS_RX_COMP_BASE_LO2 0x4208 /* RX completion ring base low 2 */ -#define CAS_RX_COMP_BASE_HI2 0x420c /* RX completion ring base high 2 */ -#define CAS_RX_COMP_BASE_LO3 0x4210 /* RX completion ring base low 3 */ -#define CAS_RX_COMP_BASE_HI3 0x4214 /* RX completion ring base high 3 */ -#define CAS_RX_COMP_BASE_LO4 0x4218 /* RX completion ring base low 4 */ -#define CAS_RX_COMP_BASE_HI4 0x421c /* RX completion ring base high 4 */ +#define CAS_RX_DESC2_BASE_LO 0x4200 /* RX descriptor ring 2 base low */ +#define CAS_RX_DESC2_BASE_HI 0x4204 /* RX descriptor ring 2 base high */ +#define CAS_RX_COMP2_BASE_LO 0x4208 /* RX completion ring 2 base low */ +#define CAS_RX_COMP2_BASE_HI 0x420c /* RX completion ring 2 base high */ +#define CAS_RX_COMP3_BASE_LO 0x4210 /* RX completion ring 3 base low */ +#define CAS_RX_COMP3_BASE_HI 0x4214 /* RX completion ring 3 base high */ +#define CAS_RX_COMP4_BASE_LO 0x4218 /* RX completion ring 4 base low */ +#define CAS_RX_COMP4_BASE_HI 0x421c /* RX completion ring 4 base high */ #define CAS_RX_KICK2 0x4220 /* RX kick 2 */ #define CAS_RX_COMP2 0x4224 /* RX completion 2 */ #define CAS_RX_COMP_HEAD2 0x4228 /* RX completion head 2 */ @@ -338,8 +346,8 @@ #define CAS_RX_CONF_SOFF_MASK 0x00001c00 /* swivel offset */ #define CAS_RX_CONF_SOFF_SHFT 10 /* The RX descriptor ring 2 is Cassini+/Saturn only. */ -#define CAS_RX_CONF_DESC_MASK 0x000f0000 /* RX descriptor ring 2 size */ -#define CAS_RX_CONF_DESC_SHFT 16 +#define CAS_RX_CONF_DESC2_MASK 0x000f0000 /* RX descriptor ring 2 size */ +#define CAS_RX_CONF_DESC2_SHFT 16 #define CAS_RX_CONF_COMP_128 0x0 /* 128 descriptors */ #define CAS_RX_CONF_COMP_256 0x1 /* 256 descriptors */ @@ -375,6 +383,10 @@ #define CAS_RX_PSZ_MB_OFF_96 0x2 /* MTU buf. offset 96 bytes */ #define CAS_RX_PSZ_MB_OFF_128 0x3 /* MTU buf. offset 128 bytes */ +#define CAS_RX_DESC_ALIGN 8192 /* RX descriptor alignment */ + +#define CAS_RX_COMP_ALIGN 8192 /* RX complition alignment */ + /* The RX PAUSE thresholds are specified in multiples of 64 bytes. */ #define CAS_RX_PTHRS_XOFF_MASK 0x000001ff /* XOFF PAUSE */ #define CAS_RX_PTHRS_XOFF_SHFT 0 @@ -389,7 +401,7 @@ */ #define CAS_RX_BLANK_PKTS_MASK 0x000001ff /* RX blanking packets */ #define CAS_RX_BLANK_PKTS_SHFT 0 -#define CAS_RX_BLANK_TIME_MASK 0x3ffff000 /* RX blanking packets */ +#define CAS_RX_BLANK_TIME_MASK 0x3ffff000 /* RX blanking time */ #define CAS_RX_BLANK_TIME_SHFT 12 /* CAS_RX_AEMPTY_THRS and CAS_RX_AEMPTY_THRS2 bits */ @@ -508,8 +520,8 @@ #define CAS_HP_STATUS3_JMBHS_EN 0x00000400 /* jumbo header split enable */ #define CAS_HP_STATUS3_BWO_REAS 0x00000800 /* batching w/o reassembly */ #define CAS_HP_STATUS3_FRC_DROP 0x00001000 /* force drop */ -#define CAS_HP_STATUS3_AR2_MASK 0x000fe000 /* accu_R1 */ -#define CAS_HP_STATUS3_AR2_SHFT 13 +#define CAS_HP_STATUS3_AR1_MASK 0x000fe000 /* accu_R1 */ +#define CAS_HP_STATUS3_AR1_SHFT 13 #define CAS_HP_STATUS3_CSO_MASK 0x07f00000 /* checksum start offset */ #define CAS_HP_STATUS3_CSO_SHFT 19 #define CAS_HP_STATUS3_AR2_MASK 0xf0000000 /* accu_R2[3:0] */ @@ -602,11 +614,11 @@ #define CAS_MAC_ADDR42 0x6128 /* MAC address 42 */ #define CAS_MAC_ADDR43 0x612c /* MAC address 43 */ #define CAS_MAC_ADDR44 0x6130 /* MAC address 44 */ -#define CAS_MAC_ADDR_FILTER0 0x614c /* address filter 0 */ -#define CAS_MAC_ADDR_FILTER1 0x6150 /* address filter 1 */ -#define CAS_MAC_ADDR_FILTER2 0x6154 /* address filter 2 */ -#define CAS_MAC_ADR_FLT_MASK1_2 0x6158 /* address filter 2 & 1 mask*/ -#define CAS_MAC_ADR_FLT_MASK0 0x615c /* address filter 0 mask */ +#define CAS_MAC_AFILTER0 0x614c /* address filter 0 */ +#define CAS_MAC_AFILTER1 0x6150 /* address filter 1 */ +#define CAS_MAC_AFILTER2 0x6154 /* address filter 2 */ +#define CAS_MAC_AFILTER_MASK1_2 0x6158 /* address filter 2 & 1 mask*/ +#define CAS_MAC_AFILTER_MASK0 0x615c /* address filter 0 mask */ #define CAS_MAC_HASH0 0x6160 /* hash table 0 */ #define CAS_MAC_HASH1 0x6164 /* hash table 1 */ #define CAS_MAC_HASH2 0x6168 /* hash table 2 */ @@ -642,7 +654,7 @@ #define CAS_MAC_SPC_SEND 0x00010000 /* Send PAUSE frame. */ /* CAS_MAC_TX_STATUS and CAS_MAC_TX_MASK register bits */ -#define CAS_MAC_TX_FRAME_XMTTD 0x00000001 /* Frame transmitted. */ +#define CAS_MAC_TX_FRAME_XMTD 0x00000001 /* Frame transmitted. */ #define CAS_MAC_TX_UNDERRUN 0x00000002 /* TX data starvation */ #define CAS_MAC_TX_MAX_PKT_ERR 0x00000004 /* frame > CAS_MAC_MAX_FRAME */ #define CAS_MAC_TX_NCC_EXP 0x00000008 /* normal coll. counter wrap */ @@ -881,6 +893,9 @@ #define CAS_PHYAD_INTERNAL 1 #define CAS_PHYAD_EXTERNAL 0 +/* wired RX FIFO size in bytes */ +#define CAS_RX_FIFO_SIZE 16 * 1024 + /* * descriptor ring structures */ @@ -914,10 +929,10 @@ * receive completion ring structure */ struct cas_rx_comp { - uint64_t word1; - uint64_t word2; - uint64_t word3; - uint64_t word4; + uint64_t crc_word1; + uint64_t crc_word2; + uint64_t crc_word3; + uint64_t crc_word4; }; #define CAS_RC1_DATA_SIZE_MASK 0x0000000007ffe000ULL /* pkt. data length */ @@ -968,7 +983,7 @@ #define CAS_RC3_PLUS_L3HO_MASK 0x0000fc0000000000ULL /* layer 3 hdr. off. */ #define CAS_RC3_PLUS_L3HO_SHFT 42 #define CAS_RC3_SAP_MASK 0xffff000000000000ULL /* ethertype */ -#define CAS_RC3_SAP_SHIFT 48 +#define CAS_RC3_SAP_SHFT 48 #define CAS_RC4_TCP_CSUM_MASK 0x000000000000ffffULL /* TCP checksum */ #define CAS_RC4_TCP_CSUM_SHFT 0 @@ -983,4 +998,6 @@ #define CAS_RC4_BAD 0x4000000000000000ULL /* CRC error */ #define CAS_RC4_LEN_MMATCH 0x8000000000000000ULL /* length field mism. */ +#define CAS_GET(reg, bits) (((reg) & (bits ## _MASK)) >> (bits ## _SHFT)) + #endif ==== //depot/projects/usiii/dev/mii/nsgphy.c#2 (text+ko) ==== @@ -38,20 +38,22 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/mii/nsgphy.c,v 1.24 2006/12/02 15:32:33 marius Exp $"); +__FBSDID("$FreeBSD: head/sys/dev/mii/nsgphy.c 164827 2006-12-02 15:32:34Z marius $"); /* - * Driver for the National Semiconductor DP83891 and DP83861 + * Driver for the National Semiconductor DP83861, DP83865 and DP83891 * 10/100/1000 PHYs. * Datasheet available at: http://www.national.com/ds/DP/DP83861.pdf + * and at: http://www.national.com/ds/DP/DP83865.pdf * - * The DP83891 is the older NatSemi gigE PHY which isn't being sold - * anymore. The DP83861 is its replacement, which is an 'enhanced' - * firmware driven component. The major difference between the - * two is that the 83891 can't generate interrupts, while the - * 83861 can. (I think it wasn't originally designed to do this, but - * it can now thanks to firmware updates.) The 83861 also allows - * access to its internal RAM via indirect register access. + * The DP83891 is the older NS GigE PHY which isn't being sold + * anymore. The DP83861 is its replacement, which is an 'enhanced' + * firmware driven component. The major difference between the + * two is that the DP83891 can't generate interrupts, while the + * 83861 can (probably it wasn't originally designed to do this, but + * it can now thanks to firmware updates). The DP83861 also allows + * access to its internal RAM via indirect register access. The + * DP83865 is an ultra low power version of the DP83861 and DP83891. */ #include @@ -99,6 +101,7 @@ static const struct mii_phydesc nsgphys[] = { MII_PHY_DESC(NATSEMI, DP83861), + MII_PHY_DESC(NATSEMI, DP83865), MII_PHY_DESC(NATSEMI, DP83891), MII_PHY_END }; @@ -133,8 +136,14 @@ mii->mii_instance++; + mii_phy_reset(sc); + + /* + * NB: the PHY has the 10baseT BMSR bits hard-wired to 0, + * even though it supports 10baseT. + */ sc->mii_capabilities = (PHY_READ(sc, MII_BMSR) | - (BMSR_10TFDX|BMSR_10THDX)) & ma->mii_capmask; + (BMSR_10TFDX | BMSR_10THDX)) & ma->mii_capmask; if (sc->mii_capabilities & BMSR_EXTSTAT) sc->mii_extcapabilities = PHY_READ(sc, MII_EXTSR); @@ -238,7 +247,7 @@ return; } - switch (physup & (PHY_SUP_SPEED1|PHY_SUP_SPEED0)) { + switch (physup & (PHY_SUP_SPEED1 | PHY_SUP_SPEED0)) { case PHY_SUP_SPEED1: mii->mii_media_active |= IFM_1000_T; gtsr = PHY_READ(sc, MII_100T2SR); @@ -257,9 +266,13 @@ default: mii->mii_media_active |= IFM_NONE; mii->mii_media_status = 0; + return; } + if (physup & PHY_SUP_DUPLEX) mii->mii_media_active |= IFM_FDX; + else + mii->mii_media_active |= IFM_HDX; } else mii->mii_media_active = ife->ifm_media; } From owner-p4-projects@FreeBSD.ORG Mon Feb 2 23:13:11 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 8A1D81065675; Mon, 2 Feb 2009 23:13:11 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 467BF1065670 for ; Mon, 2 Feb 2009 23:13:11 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 323C78FC1A for ; Mon, 2 Feb 2009 23:13:11 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n12NDBMi085843 for ; Mon, 2 Feb 2009 23:13:11 GMT (envelope-from hselasky@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n12NDBeb085841 for perforce@freebsd.org; Mon, 2 Feb 2009 23:13:11 GMT (envelope-from hselasky@FreeBSD.org) Date: Mon, 2 Feb 2009 23:13:11 GMT Message-Id: <200902022313.n12NDBeb085841@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky To: Perforce Change Reviews Cc: Subject: PERFORCE change 157069 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 02 Feb 2009 23:13:12 -0000 http://perforce.freebsd.org/chv.cgi?CH=157069 Change 157069 by hselasky@hselasky_laptop001 on 2009/02/02 23:12:27 Integrate USB serial patches from Andrew Thompson. The changes are mostly about refactoring the code, renaming fields, and preparing for tasqueue conversion of usb2_proc_xxx() . Change "usb2_pause_mtx" so that it takes the timeout value in ticks instead of milliseconds, hence this is more close to the behaviour of pause() . Propagate this change to the rest of the USB code. Affected files ... .. //depot/projects/usb/src/sys/dev/usb2/controller/at91dci.c#26 edit .. //depot/projects/usb/src/sys/dev/usb2/controller/at91dci_atmelarm.c#20 edit .. //depot/projects/usb/src/sys/dev/usb2/controller/atmegadci.c#4 edit .. //depot/projects/usb/src/sys/dev/usb2/controller/ehci2.c#29 edit .. //depot/projects/usb/src/sys/dev/usb2/controller/ehci2_pci.c#24 edit .. //depot/projects/usb/src/sys/dev/usb2/controller/musb2_otg.c#25 edit .. //depot/projects/usb/src/sys/dev/usb2/controller/ohci2.c#26 edit .. //depot/projects/usb/src/sys/dev/usb2/controller/uhci2.c#27 edit .. //depot/projects/usb/src/sys/dev/usb2/controller/uss820dci.c#22 edit .. //depot/projects/usb/src/sys/dev/usb2/core/usb2_device.c#50 edit .. //depot/projects/usb/src/sys/dev/usb2/core/usb2_hub.c#37 edit .. //depot/projects/usb/src/sys/dev/usb2/core/usb2_msctest.c#17 edit .. //depot/projects/usb/src/sys/dev/usb2/core/usb2_process.c#15 edit .. //depot/projects/usb/src/sys/dev/usb2/core/usb2_process.h#7 edit .. //depot/projects/usb/src/sys/dev/usb2/core/usb2_request.c#31 edit .. //depot/projects/usb/src/sys/dev/usb2/core/usb2_transfer.c#41 edit .. //depot/projects/usb/src/sys/dev/usb2/core/usb2_util.c#11 edit .. //depot/projects/usb/src/sys/dev/usb2/core/usb2_util.h#7 edit .. //depot/projects/usb/src/sys/dev/usb2/misc/ufm2.c#11 edit .. //depot/projects/usb/src/sys/dev/usb2/serial/uipaq2.c#18 edit .. //depot/projects/usb/src/sys/dev/usb2/serial/usb2_serial.c#23 edit .. //depot/projects/usb/src/sys/dev/usb2/serial/usb2_serial.h#12 edit .. //depot/projects/usb/src/sys/dev/usb2/sound/uaudio2.c#27 edit .. //depot/projects/usb/src/sys/dev/usb2/storage/umass2.c#26 edit Differences ... ==== //depot/projects/usb/src/sys/dev/usb2/controller/at91dci.c#26 (text+ko) ==== @@ -275,7 +275,7 @@ DELAY(8000); } else { /* Wait for reset to complete. */ - usb2_pause_mtx(&sc->sc_bus.bus_mtx, 8); + usb2_pause_mtx(&sc->sc_bus.bus_mtx, hz / 125); } AT91_UDP_WRITE_4(sc, AT91_UDP_GSTATE, 0); @@ -1395,7 +1395,7 @@ (sc->sc_clocks_on) (sc->sc_clocks_arg); } /* wait a little for things to stabilise */ - usb2_pause_mtx(&sc->sc_bus.bus_mtx, 1); + usb2_pause_mtx(&sc->sc_bus.bus_mtx, hz / 1000); /* disable and clear all interrupts */ ==== //depot/projects/usb/src/sys/dev/usb2/controller/at91dci_atmelarm.c#20 (text+ko) ==== @@ -168,7 +168,7 @@ at91_udp_pull_down(sc); /* wait 10ms for pulldown to stabilise */ - usb2_pause_mtx(NULL, 10); + usb2_pause_mtx(NULL, hz / 100); sc->sc_iclk = at91_pmc_clock_ref("udc_clk"); sc->sc_fclk = at91_pmc_clock_ref("udpck"); ==== //depot/projects/usb/src/sys/dev/usb2/controller/atmegadci.c#4 (text+ko) ==== @@ -221,7 +221,7 @@ DELAY(8000); } else { /* Wait for reset to complete. */ - usb2_pause_mtx(&sc->sc_bus.bus_mtx, 8); + usb2_pause_mtx(&sc->sc_bus.bus_mtx, hz / 125); } /* hardware should have cleared RMWKUP bit */ @@ -1253,7 +1253,7 @@ (sc->sc_clocks_on) (&sc->sc_bus); /* wait a little for things to stabilise */ - usb2_pause_mtx(&sc->sc_bus.bus_mtx, 1); + usb2_pause_mtx(&sc->sc_bus.bus_mtx, hz / 1000); /* enable interrupts */ ATMEGA_WRITE_1(sc, ATMEGA_UDIEN, ==== //depot/projects/usb/src/sys/dev/usb2/controller/ehci2.c#29 (text+ko) ==== @@ -177,7 +177,7 @@ EOWRITE4(sc, EHCI_USBCMD, 0); /* Halt controller */ for (n = 0; n != 100; n++) { - usb2_pause_mtx(&sc->sc_bus.bus_mtx, 1); + usb2_pause_mtx(&sc->sc_bus.bus_mtx, hz / 1000); hcr = EOREAD4(sc, EHCI_USBSTS); if (hcr & EHCI_STS_HCH) { hcr = 0; @@ -193,7 +193,7 @@ EOWRITE4(sc, EHCI_USBCMD, EHCI_CMD_HCRESET); for (n = 0; n != 100; n++) { - usb2_pause_mtx(&sc->sc_bus.bus_mtx, 1); + usb2_pause_mtx(&sc->sc_bus.bus_mtx, hz / 1000); hcr = EOREAD4(sc, EHCI_USBCMD); if (!(hcr & EHCI_CMD_HCRESET)) { if (sc->sc_flags & EHCI_SCFLG_SETMODE) @@ -479,7 +479,7 @@ EOWRITE4(sc, EHCI_CONFIGFLAG, EHCI_CONF_CF); for (i = 0; i < 100; i++) { - usb2_pause_mtx(&sc->sc_bus.bus_mtx, 1); + usb2_pause_mtx(&sc->sc_bus.bus_mtx, hz / 1000); hcr = EOREAD4(sc, EHCI_USBSTS) & EHCI_STS_HCH; if (!hcr) { break; @@ -516,7 +516,7 @@ DPRINTF("reset failed!\n"); } /* XXX let stray task complete */ - usb2_pause_mtx(&sc->sc_bus.bus_mtx, 50); + usb2_pause_mtx(&sc->sc_bus.bus_mtx, hz / 20); USB_BUS_UNLOCK(&sc->sc_bus); @@ -553,7 +553,7 @@ if (hcr == 0) { break; } - usb2_pause_mtx(&sc->sc_bus.bus_mtx, 1); + usb2_pause_mtx(&sc->sc_bus.bus_mtx, hz / 1000); } if (hcr != 0) { @@ -567,7 +567,7 @@ if (hcr == EHCI_STS_HCH) { break; } - usb2_pause_mtx(&sc->sc_bus.bus_mtx, 1); + usb2_pause_mtx(&sc->sc_bus.bus_mtx, hz / 1000); } if (hcr != EHCI_STS_HCH) { @@ -611,7 +611,7 @@ if (hcr) { usb2_pause_mtx(&sc->sc_bus.bus_mtx, - USB_RESUME_WAIT); + USB_MS_TO_TICKS(USB_RESUME_WAIT)); for (i = 1; i <= sc->sc_noport; i++) { cmd = EOREAD4(sc, EHCI_PORTSC(i)); @@ -629,16 +629,17 @@ if (hcr != EHCI_STS_HCH) { break; } - usb2_pause_mtx(&sc->sc_bus.bus_mtx, 1); + usb2_pause_mtx(&sc->sc_bus.bus_mtx, hz / 1000); } if (hcr == EHCI_STS_HCH) { device_printf(sc->sc_bus.bdev, "config timeout\n"); } - usb2_pause_mtx(&sc->sc_bus.bus_mtx, - USB_RESUME_WAIT); USB_BUS_UNLOCK(&sc->sc_bus); + usb2_pause_mtx(NULL, + USB_MS_TO_TICKS(USB_RESUME_WAIT)); + /* catch any lost interrupts */ ehci_do_poll(&sc->sc_bus); } @@ -3216,9 +3217,9 @@ /* wait 20ms for resume sequence to complete */ if (use_polling) { /* polling */ - DELAY(20 * 1000); + DELAY(20000); } else { - usb2_pause_mtx(&sc->sc_bus.bus_mtx, 20); + usb2_pause_mtx(&sc->sc_bus.bus_mtx, hz / 50); } EOWRITE4(sc, port, v & ~(EHCI_PS_SUSP | @@ -3227,9 +3228,9 @@ /* settle time */ if (use_polling) { /* polling */ - DELAY(4 * 1000); + DELAY(4000); } else { - usb2_pause_mtx(&sc->sc_bus.bus_mtx, 4); + usb2_pause_mtx(&sc->sc_bus.bus_mtx, hz / 250); } break; case UHF_PORT_POWER: @@ -3385,7 +3386,7 @@ } else { /* Wait for reset to complete. */ usb2_pause_mtx(&sc->sc_bus.bus_mtx, - USB_PORT_ROOT_RESET_DELAY); + USB_MS_TO_TICKS(USB_PORT_ROOT_RESET_DELAY)); } /* Terminate reset sequence. */ @@ -3398,7 +3399,7 @@ } else { /* Wait for HC to complete reset. */ usb2_pause_mtx(&sc->sc_bus.bus_mtx, - EHCI_PORT_RESET_COMPLETE); + USB_MS_TO_TICKS(EHCI_PORT_RESET_COMPLETE)); } v = EOREAD4(sc, port); ==== //depot/projects/usb/src/sys/dev/usb2/controller/ehci2_pci.c#24 (text+ko) ==== @@ -455,7 +455,7 @@ "timed out waiting for BIOS\n"); break; } - usb2_pause_mtx(NULL, 10); /* wait 10ms */ + usb2_pause_mtx(NULL, hz / 100); /* wait 10ms */ } } } ==== //depot/projects/usb/src/sys/dev/usb2/controller/musb2_otg.c#25 (text+ko) ==== @@ -223,7 +223,7 @@ DELAY(8000); } else { /* Wait for reset to complete. */ - usb2_pause_mtx(&sc->sc_bus.bus_mtx, 8); + usb2_pause_mtx(&sc->sc_bus.bus_mtx, hz / 125); } temp = MUSB2_READ_1(sc, MUSB2_REG_POWER); @@ -1708,7 +1708,7 @@ (sc->sc_clocks_on) (sc->sc_clocks_arg); } /* wait a little for things to stabilise */ - usb2_pause_mtx(&sc->sc_bus.bus_mtx, 1); + usb2_pause_mtx(&sc->sc_bus.bus_mtx, hz / 1000); /* disable all interrupts */ @@ -1721,7 +1721,7 @@ musbotg_pull_common(sc, 0); /* wait a little bit (10ms) */ - usb2_pause_mtx(&sc->sc_bus.bus_mtx, 10); + usb2_pause_mtx(&sc->sc_bus.bus_mtx, hz / 100); /* disable double packet buffering */ MUSB2_WRITE_2(sc, MUSB2_REG_RXDBDIS, 0xFFFF); ==== //depot/projects/usb/src/sys/dev/usb2/controller/ohci2.c#26 (text+ko) ==== @@ -168,7 +168,7 @@ DPRINTF("SMM active, request owner change\n"); OWRITE4(sc, OHCI_COMMAND_STATUS, OHCI_OCR); for (i = 0; (i < 100) && (ctl & OHCI_IR); i++) { - usb2_pause_mtx(&sc->sc_bus.bus_mtx, 1); + usb2_pause_mtx(&sc->sc_bus.bus_mtx, hz / 1000); ctl = OREAD4(sc, OHCI_CONTROL); } if (ctl & OHCI_IR) { @@ -182,7 +182,7 @@ reset: /* controller was cold started */ usb2_pause_mtx(&sc->sc_bus.bus_mtx, - USB_BUS_RESET_DELAY); + USB_MS_TO_TICKS(USB_BUS_RESET_DELAY)); } /* @@ -193,7 +193,7 @@ OWRITE4(sc, OHCI_CONTROL, OHCI_HCFS_RESET); usb2_pause_mtx(&sc->sc_bus.bus_mtx, - USB_BUS_RESET_DELAY); + USB_MS_TO_TICKS(USB_BUS_RESET_DELAY)); /* we now own the host controller and the bus has been reset */ ival = OHCI_GET_IVAL(OREAD4(sc, OHCI_FM_INTERVAL)); @@ -256,7 +256,7 @@ OWRITE4(sc, OHCI_RH_DESCRIPTOR_A, desca | OHCI_NOCP); OWRITE4(sc, OHCI_RH_STATUS, OHCI_LPSC); /* Enable port power */ usb2_pause_mtx(&sc->sc_bus.bus_mtx, - OHCI_ENABLE_POWER_DELAY); + USB_MS_TO_TICKS(OHCI_ENABLE_POWER_DELAY)); OWRITE4(sc, OHCI_RH_DESCRIPTOR_A, desca); /* @@ -266,7 +266,7 @@ sc->sc_noport = 0; for (i = 0; (i < 10) && (sc->sc_noport == 0); i++) { usb2_pause_mtx(&sc->sc_bus.bus_mtx, - OHCI_READ_DESC_DELAY); + USB_MS_TO_TICKS(OHCI_READ_DESC_DELAY)); sc->sc_noport = OHCI_GET_NDP(OREAD4(sc, OHCI_RH_DESCRIPTOR_A)); } @@ -425,10 +425,10 @@ OWRITE4(sc, OHCI_INTERRUPT_DISABLE, OHCI_ALL_INTRS); OWRITE4(sc, OHCI_CONTROL, OHCI_HCFS_RESET); + USB_BUS_UNLOCK(&sc->sc_bus); + /* XXX let stray task complete */ - usb2_pause_mtx(&sc->sc_bus.bus_mtx, 50); - - USB_BUS_UNLOCK(&sc->sc_bus); + usb2_pause_mtx(NULL, hz / 20); usb2_callout_drain(&sc->sc_tmo_rhsc); } @@ -463,7 +463,7 @@ OWRITE4(sc, OHCI_CONTROL, ctl); usb2_pause_mtx(&sc->sc_bus.bus_mtx, - USB_RESUME_WAIT); + USB_MS_TO_TICKS(USB_RESUME_WAIT)); USB_BUS_UNLOCK(&sc->sc_bus); } @@ -494,10 +494,12 @@ ctl = OREAD4(sc, OHCI_CONTROL); ctl |= OHCI_HCFS_RESUME; OWRITE4(sc, OHCI_CONTROL, ctl); - usb2_pause_mtx(&sc->sc_bus.bus_mtx, USB_RESUME_DELAY); + usb2_pause_mtx(&sc->sc_bus.bus_mtx, + USB_MS_TO_TICKS(USB_RESUME_DELAY)); ctl = (ctl & ~OHCI_HCFS_MASK) | OHCI_HCFS_OPERATIONAL; OWRITE4(sc, OHCI_CONTROL, ctl); - usb2_pause_mtx(&sc->sc_bus.bus_mtx, USB_RESUME_RECOVERY); + usb2_pause_mtx(&sc->sc_bus.bus_mtx, + USB_MS_TO_TICKS(USB_RESUME_RECOVERY)); sc->sc_control = sc->sc_intre = 0; USB_BUS_UNLOCK(&sc->sc_bus); @@ -2410,7 +2412,7 @@ DELAY(USB_PORT_ROOT_RESET_DELAY * 1000); } else { usb2_pause_mtx(&sc->sc_bus.bus_mtx, - USB_PORT_ROOT_RESET_DELAY); + USB_MS_TO_TICKS(USB_PORT_ROOT_RESET_DELAY)); } if ((OREAD4(sc, port) & UPS_RESET) == 0) { ==== //depot/projects/usb/src/sys/dev/usb2/controller/uhci2.c#27 (text+ko) ==== @@ -271,7 +271,7 @@ /* wait */ usb2_pause_mtx(&sc->sc_bus.bus_mtx, - USB_BUS_RESET_DELAY); + USB_MS_TO_TICKS(USB_BUS_RESET_DELAY)); /* terminate all transfers */ @@ -283,7 +283,7 @@ while (n--) { /* wait one millisecond */ - usb2_pause_mtx(&sc->sc_bus.bus_mtx, 1); + usb2_pause_mtx(&sc->sc_bus.bus_mtx, hz / 1000); if (!(UREAD2(sc, UHCI_CMD) & UHCI_CMD_HCRESET)) { goto done_1; @@ -299,7 +299,7 @@ while (n--) { /* wait one millisecond */ - usb2_pause_mtx(&sc->sc_bus.bus_mtx, 1); + usb2_pause_mtx(&sc->sc_bus.bus_mtx, hz / 1000); /* check if HC is stopped */ if (UREAD2(sc, UHCI_STS) & UHCI_STS_HCH) { @@ -345,7 +345,7 @@ while (n--) { /* wait one millisecond */ - usb2_pause_mtx(&sc->sc_bus.bus_mtx, 1); + usb2_pause_mtx(&sc->sc_bus.bus_mtx, hz / 1000); /* check that controller has started */ @@ -638,7 +638,8 @@ UHCICMD(sc, UHCI_CMD_EGSM); - usb2_pause_mtx(&sc->sc_bus.bus_mtx, USB_RESUME_WAIT); + usb2_pause_mtx(&sc->sc_bus.bus_mtx, + USB_MS_TO_TICKS(USB_RESUME_WAIT)); USB_BUS_UNLOCK(&sc->sc_bus); } @@ -657,7 +658,7 @@ UHCICMD(sc, UHCI_CMD_FGR); usb2_pause_mtx(&sc->sc_bus.bus_mtx, - USB_RESUME_DELAY); + USB_MS_TO_TICKS(USB_RESUME_DELAY)); /* and start traffic again */ @@ -2410,7 +2411,7 @@ if (use_polling) { DELAY(10000); } else { - usb2_pause_mtx(&sc->sc_bus.bus_mtx, 10); + usb2_pause_mtx(&sc->sc_bus.bus_mtx, hz / 100); } } @@ -2422,7 +2423,7 @@ DELAY(USB_PORT_ROOT_RESET_DELAY * 1000); } else { usb2_pause_mtx(&sc->sc_bus.bus_mtx, - USB_PORT_ROOT_RESET_DELAY); + USB_MS_TO_TICKS(USB_PORT_ROOT_RESET_DELAY)); } DPRINTFN(4, "uhci port %d reset, status0 = 0x%04x\n", @@ -2455,7 +2456,7 @@ DELAY(USB_PORT_RESET_DELAY * 1000); } else { usb2_pause_mtx(&sc->sc_bus.bus_mtx, - USB_PORT_RESET_DELAY); + USB_MS_TO_TICKS(USB_PORT_RESET_DELAY)); } x = UREAD2(sc, port); @@ -2782,9 +2783,9 @@ /* wait 20ms for resume sequence to complete */ if (use_polling) { /* polling */ - DELAY(20 * 1000); + DELAY(20000); } else { - usb2_pause_mtx(&sc->sc_bus.bus_mtx, 20); + usb2_pause_mtx(&sc->sc_bus.bus_mtx, hz / 50); } /* clear suspend and resume detect */ @@ -2792,7 +2793,7 @@ UHCI_PORTSC_SUSP)); /* wait a little bit */ - usb2_pause_mtx(&sc->sc_bus.bus_mtx, 2); + usb2_pause_mtx(&sc->sc_bus.bus_mtx, hz / 500); sc->sc_isresumed |= (1 << index); ==== //depot/projects/usb/src/sys/dev/usb2/controller/uss820dci.c#22 (text+ko) ==== @@ -1335,7 +1335,7 @@ uss820dci_pull_down(sc); /* wait 10ms for pulldown to stabilise */ - usb2_pause_mtx(&sc->sc_bus.bus_mtx, 10); + usb2_pause_mtx(&sc->sc_bus.bus_mtx, hz / 100); /* check hardware revision */ temp = USS820_READ_1(sc, USS820_REV); ==== //depot/projects/usb/src/sys/dev/usb2/core/usb2_device.c#50 (text+ko) ==== @@ -1401,7 +1401,8 @@ "(ignored)\n", udev->address); } /* allow device time to set new address */ - usb2_pause_mtx(&Giant, USB_SET_ADDRESS_SETTLE); + usb2_pause_mtx(&Giant, + USB_MS_TO_TICKS(USB_SET_ADDRESS_SETTLE)); } else { /* We are not self powered */ udev->flags.self_powered = 0; ==== //depot/projects/usb/src/sys/dev/usb2/core/usb2_hub.c#37 (text+ko) ==== @@ -335,7 +335,8 @@ /* wait for maximum device power up time */ - usb2_pause_mtx(&Giant, USB_PORT_POWERUP_DELAY); + usb2_pause_mtx(&Giant, + USB_MS_TO_TICKS(USB_PORT_POWERUP_DELAY)); /* reset port, which implies enabling it */ @@ -736,7 +737,7 @@ goto error; } /* wait with power off for a while */ - usb2_pause_mtx(&Giant, USB_POWER_DOWN_TIME); + usb2_pause_mtx(&Giant, USB_MS_TO_TICKS(USB_POWER_DOWN_TIME)); /* * To have the best chance of success we do things in the exact same @@ -794,7 +795,7 @@ portno); /* wait for stable power */ - usb2_pause_mtx(&Giant, pwrdly); + usb2_pause_mtx(&Giant, USB_MS_TO_TICKS(pwrdly)); } device_printf(dev, "%d port%s with %d " @@ -1666,7 +1667,7 @@ return; } /* resume settle time */ - usb2_pause_mtx(&Giant, USB_PORT_RESUME_DELAY); + usb2_pause_mtx(&Giant, USB_MS_TO_TICKS(USB_PORT_RESUME_DELAY)); if (bus->methods->device_resume != NULL) { /* resume USB device on the USB controller */ @@ -1802,7 +1803,7 @@ /* do DMA delay */ temp = usb2_get_dma_delay(udev->bus); - usb2_pause_mtx(&Giant, temp); + usb2_pause_mtx(&Giant, USB_MS_TO_TICKS(temp)); } /* suspend current port */ ==== //depot/projects/usb/src/sys/dev/usb2/core/usb2_msctest.c#17 (text+ko) ==== @@ -562,7 +562,7 @@ goto done; } } else if ((err != 2) && --timeout) { - usb2_pause_mtx(&sc->mtx, USB_MS_HZ); + usb2_pause_mtx(&sc->mtx, hz); goto repeat_inquiry; } err = USB_ERR_INVAL; ==== //depot/projects/usb/src/sys/dev/usb2/core/usb2_process.c#15 (text+ko) ==== @@ -176,8 +176,9 @@ * 0: success * Else: failure *------------------------------------------------------------------------*/ -uint8_t -usb2_proc_setup(struct usb2_process *up, struct mtx *p_mtx, uint8_t prio) +int +usb2_proc_create(struct usb2_process *up, struct mtx *p_mtx, + const char *pmesg, uint8_t prio) { up->up_mtx = p_mtx; up->up_prio = prio; @@ -188,7 +189,7 @@ usb2_cv_init(&up->up_drain, "dmsg"); if (USB_THREAD_CREATE(&usb2_process, up, - &up->up_ptr, "usbproc")) { + &up->up_ptr, pmesg)) { DPRINTFN(0, "Unable to create USB process."); up->up_ptr = NULL; goto error; @@ -197,7 +198,13 @@ error: usb2_proc_unsetup(up); - return (1); + return (ENOMEM); +} + +uint8_t +usb2_proc_setup(struct usb2_process *up, struct mtx *p_mtx, uint8_t prio) +{ + return (usb2_proc_create(up, p_mtx, "usbproc", prio) ? 1 : 0); } /*------------------------------------------------------------------------* @@ -225,6 +232,12 @@ up->up_mtx = NULL; } +void +usb2_proc_free(struct usb2_process *up) +{ + usb2_proc_unsetup(up); +} + /*------------------------------------------------------------------------* * usb2_proc_msignal * ==== //depot/projects/usb/src/sys/dev/usb2/core/usb2_process.h#7 (text+ko) ==== @@ -81,10 +81,13 @@ uint8_t usb2_proc_is_gone(struct usb2_process *up); uint8_t usb2_proc_setup(struct usb2_process *up, struct mtx *p_mtx, uint8_t prio); +int usb2_proc_create(struct usb2_process *up, struct mtx *p_mtx, + const char *pmesg, uint8_t prio); void usb2_proc_csignal(struct usb2_process *up); void usb2_proc_drain(struct usb2_process *up); void usb2_proc_mwait(struct usb2_process *up, void *pm0, void *pm1); void usb2_proc_unsetup(struct usb2_process *up); +void usb2_proc_free(struct usb2_process *up); void *usb2_proc_msignal(struct usb2_process *up, void *pm0, void *pm1); #endif /* _USB2_PROCESS_H_ */ ==== //depot/projects/usb/src/sys/dev/usb2/core/usb2_request.c#31 (text+ko) ==== @@ -371,7 +371,7 @@ if (temp > 0) { usb2_pause_mtx( xfer->xroot->xfer_mtx, - temp); + USB_MS_TO_TICKS(temp)); } #endif xfer->flags.manual_status = 0; @@ -520,11 +520,11 @@ while (1) { #if USB_DEBUG /* wait for the device to recover from reset */ - usb2_pause_mtx(mtx, pr_poll_delay); + usb2_pause_mtx(mtx, USB_MS_TO_TICKS(pr_poll_delay)); n += pr_poll_delay; #else /* wait for the device to recover from reset */ - usb2_pause_mtx(mtx, USB_PORT_RESET_DELAY); + usb2_pause_mtx(mtx, USB_MS_TO_TICKS(USB_PORT_RESET_DELAY)); n += USB_PORT_RESET_DELAY; #endif err = usb2_req_get_port_status(udev, mtx, &ps, port); @@ -559,10 +559,10 @@ } #if USB_DEBUG /* wait for the device to recover from reset */ - usb2_pause_mtx(mtx, pr_recovery_delay); + usb2_pause_mtx(mtx, USB_MS_TO_TICKS(pr_recovery_delay)); #else /* wait for the device to recover from reset */ - usb2_pause_mtx(mtx, USB_PORT_RESET_RECOVERY); + usb2_pause_mtx(mtx, USB_MS_TO_TICKS(USB_PORT_RESET_RECOVERY)); #endif done: @@ -624,7 +624,7 @@ } retries--; - usb2_pause_mtx(mtx, 200); + usb2_pause_mtx(mtx, hz / 5); continue; } @@ -1369,7 +1369,7 @@ udev->address = old_addr; /* allow device time to set new address */ - usb2_pause_mtx(mtx, USB_SET_ADDRESS_SETTLE); + usb2_pause_mtx(mtx, USB_MS_TO_TICKS(USB_SET_ADDRESS_SETTLE)); /* get the device descriptor */ err = usb2_req_get_desc(udev, mtx, &udev->ddesc, @@ -1389,7 +1389,7 @@ done: if (err && do_retry) { /* give the USB firmware some time to load */ - usb2_pause_mtx(mtx, 500); + usb2_pause_mtx(mtx, hz / 2); /* no more retries after this retry */ do_retry = 0; /* try again */ ==== //depot/projects/usb/src/sys/dev/usb2/core/usb2_transfer.c#41 (text+ko) ==== @@ -1066,7 +1066,8 @@ if (needs_delay) { temp = usb2_get_dma_delay(info->bus); - usb2_pause_mtx(&info->bus->bus_mtx, temp); + usb2_pause_mtx(&info->bus->bus_mtx, + USB_MS_TO_TICKS(temp)); } /* make sure that our done messages are not queued anywhere */ ==== //depot/projects/usb/src/sys/dev/usb2/core/usb2_util.c#11 (text+ko) ==== @@ -124,36 +124,37 @@ /*------------------------------------------------------------------------* * usb2_pause_mtx - factored out code * - * This function will delay the code by the passed number of - * milliseconds. The passed mutex "mtx" will be dropped while waiting, - * if "mtx" is not NULL. The number of milliseconds per second is 1024 - * for sake of optimisation. + * This function will delay the code by the passed number of system + * ticks. The passed mutex "mtx" will be dropped while waiting, if + * "mtx" is not NULL. *------------------------------------------------------------------------*/ void -usb2_pause_mtx(struct mtx *mtx, uint32_t ms) +usb2_pause_mtx(struct mtx *mtx, int _ticks) { + if (mtx != NULL) + mtx_unlock(mtx); + if (cold) { - ms = (ms + 1) * 1024; - DELAY(ms); + /* convert to milliseconds */ + _ticks = (_ticks * 1000) / hz; + /* convert to microseconds, rounded up */ + _ticks = (_ticks + 1) * 1000; + DELAY(_ticks); } else { - ms = USB_MS_TO_TICKS(ms); /* * Add one to the number of ticks so that we don't return * too early! */ - ms++; + _ticks++; - if (mtx != NULL) - mtx_unlock(mtx); - - if (pause("USBWAIT", ms)) { + if (pause("USBWAIT", _ticks)) { /* ignore */ } - if (mtx != NULL) - mtx_lock(mtx); } + if (mtx != NULL) + mtx_lock(mtx); } /*------------------------------------------------------------------------* ==== //depot/projects/usb/src/sys/dev/usb2/core/usb2_util.h#7 (text+ko) ==== @@ -31,7 +31,7 @@ uint32_t usb2_get_devid(device_t dev); uint8_t usb2_make_str_desc(void *ptr, uint16_t max_len, const char *s); void device_set_usb2_desc(device_t dev); -void usb2_pause_mtx(struct mtx *mtx, uint32_t ms); +void usb2_pause_mtx(struct mtx *mtx, int _ticks); void usb2_printBCD(char *p, uint16_t p_len, uint16_t bcd); void usb2_trim_spaces(char *p); ==== //depot/projects/usb/src/sys/dev/usb2/misc/ufm2.c#11 (text+ko) ==== @@ -288,10 +288,7 @@ * Note, there's a 240ms settle time before the status * will be valid, so sleep that amount. */ - - mtx_lock(&sc->sc_mtx); - usb2_pause_mtx(&sc->sc_mtx, USB_MS_HZ / 4); - mtx_unlock(&sc->sc_mtx); + usb2_pause_mtx(NULL, hz / 4); if (ufm_do_req(sc, UFM_CMD0, 0x00, 0x24, &ret)) { ==== //depot/projects/usb/src/sys/dev/usb2/serial/uipaq2.c#18 (text+ko) ==== @@ -1149,7 +1149,7 @@ NULL, 0, NULL, 100); if (error == 0) break; - usb2_pause_mtx(NULL, 100); + usb2_pause_mtx(NULL, hz / 10); } iface_index = UIPAQ_IFACE_INDEX; ==== //depot/projects/usb/src/sys/dev/usb2/serial/usb2_serial.c#23 (text+ko) ==== @@ -67,11 +67,6 @@ * POSSIBILITY OF SUCH DAMAGE. */ -/* - * NOTE: all function names beginning like "usb2_com_cfg_" can only - * be called from within the config thread function ! - */ - #include #include #include @@ -110,14 +105,12 @@ static uint8_t usb2_com_units_alloc(uint32_t, uint32_t *); static void usb2_com_units_free(uint32_t, uint32_t); -static int usb2_com_attach_sub(struct usb2_com_softc *); -static void usb2_com_detach_sub(struct usb2_com_softc *); -static void usb2_com_queue_command(struct usb2_com_softc *sc, - uint8_t cmd); -static void usb2_com_wait_command(struct usb2_com_softc *sc, - uint8_t cmd); +static int usb2_com_attach_tty(struct usb2_com_softc *); +static void usb2_com_detach_tty(struct usb2_com_softc *); +static void usb2_com_queue_command(struct usb2_com_softc *, + usb2_proc_callback_t *, struct termios *pt, + struct usb2_proc_msg *t0, struct usb2_proc_msg *t1); static void usb2_com_shutdown(struct usb2_com_softc *); -static void usb2_com_start_transfers(struct usb2_com_softc *); static void usb2_com_break(struct usb2_com_softc *, uint8_t); static void usb2_com_dtr(struct usb2_com_softc *, uint8_t); static void usb2_com_rts(struct usb2_com_softc *, uint8_t); @@ -127,14 +120,14 @@ static tsw_ioctl_t usb2_com_ioctl; static tsw_modem_t usb2_com_modem; static tsw_param_t usb2_com_param; -static tsw_outwakeup_t usb2_com_start_write; +static tsw_outwakeup_t usb2_com_outwakeup; static tsw_free_t usb2_com_free; static struct ttydevsw usb2_com_class = { .tsw_flags = TF_INITLOCK | TF_CALLOUT, .tsw_open = usb2_com_open, .tsw_close = usb2_com_close, - .tsw_outwakeup = usb2_com_start_write, + .tsw_outwakeup = usb2_com_outwakeup, .tsw_ioctl = usb2_com_ioctl, .tsw_param = usb2_com_param, .tsw_modem = usb2_com_modem, @@ -221,15 +214,14 @@ * sub-units can be used to differentiate among * different types of devices. * - * The mutex pointed to by "p_mtx" is applied before all - * callbacks are called back. Also "p_mtx" must be applied - * before calling into the ucom-layer! Currently only Giant - * is supported. + * The mutex pointed to by "mtx" is applied before all + * callbacks are called back. Also "mtx" must be applied + * before calling into the ucom-layer! */ int usb2_com_attach(struct usb2_com_super_softc *ssc, struct usb2_com_softc *sc, uint32_t sub_units, void *parent, - const struct usb2_com_callback *callback, struct mtx *p_mtx) + const struct usb2_com_callback *callback, struct mtx *mtx) { uint32_t n; uint32_t root_unit; @@ -241,33 +233,39 @@ (callback == NULL)) { return (EINVAL); } + + /* XXX unit management does not really belong here */ if (usb2_com_units_alloc(sub_units, &root_unit)) { return (ENOMEM); } - if (usb2_proc_setup(&ssc->sc_config_td, p_mtx, USB_PRI_MED)) { + + error = usb2_proc_create(&ssc->sc_tq, mtx, "ucom", USB_PRI_MED); + if (error) { usb2_com_units_free(root_unit, sub_units); - return (ENOMEM); + return (error); } - for (n = 0; n < sub_units; n++, sc++) { + + for (n = 0; n != sub_units; n++, sc++) { sc->sc_unit = root_unit + n; sc->sc_local_unit = n; sc->sc_super = ssc; - sc->sc_parent_mtx = p_mtx; + sc->sc_mtx = mtx; sc->sc_parent = parent; sc->sc_callback = callback; - error = usb2_com_attach_sub(sc); + error = usb2_com_attach_tty(sc); if (error) { usb2_com_detach(ssc, sc - n, n); usb2_com_units_free(root_unit + n, sub_units - n); - break; + return (error); } sc->sc_flag |= UCOM_FLAG_ATTACHED; } - return (error); + return (0); } -/* NOTE: the following function will do nothing if +/* + * NOTE: the following function will do nothing if * the structure pointed to by "ssc" and "sc" is zero. */ void @@ -276,12 +274,12 @@ { uint32_t n; - usb2_proc_drain(&ssc->sc_config_td); + usb2_proc_drain(&ssc->sc_tq); - for (n = 0; n < sub_units; n++, sc++) { + for (n = 0; n != sub_units; n++, sc++) { if (sc->sc_flag & UCOM_FLAG_ATTACHED) { - usb2_com_detach_sub(sc); + usb2_com_detach_tty(sc); usb2_com_units_free(sc->sc_unit, 1); @@ -289,18 +287,17 @@ sc->sc_flag &= ~UCOM_FLAG_ATTACHED; } } - usb2_proc_unsetup(&ssc->sc_config_td); + usb2_proc_free(&ssc->sc_tq); } static int -usb2_com_attach_sub(struct usb2_com_softc *sc) +usb2_com_attach_tty(struct usb2_com_softc *sc) { struct tty *tp; int error = 0; - uint8_t n; char buf[32]; /* temporary TTY device name buffer */ - tp = tty_alloc(&usb2_com_class, sc, sc->sc_parent_mtx); + tp = tty_alloc(&usb2_com_class, sc, sc->sc_mtx); if (tp == NULL) { error = ENOMEM; goto done; @@ -327,45 +324,12 @@ DPRINTF("ttycreate: %s\n", buf); usb2_cv_init(&sc->sc_cv, "usb2_com"); - /* - * Set all function callback pointers for deferred COM - * operations: - */ - for (n = 0; n != 2; n++) { - sc->sc_cmds[(2*USB_COM_CFG_START_TRANSFERS) + n].hdr.pm_callback = - &usb2_com_cfg_start_transfers; - sc->sc_cmds[(2*USB_COM_CFG_OPEN) + n].hdr.pm_callback = - &usb2_com_cfg_open; - sc->sc_cmds[(2*USB_COM_CFG_CLOSE) + n].hdr.pm_callback = - &usb2_com_cfg_close; - sc->sc_cmds[(2*USB_COM_CFG_BREAK_ON) + n].hdr.pm_callback = - &usb2_com_cfg_break_on; - sc->sc_cmds[(2*USB_COM_CFG_BREAK_OFF) + n].hdr.pm_callback = - &usb2_com_cfg_break_off; - sc->sc_cmds[(2*USB_COM_CFG_DTR_ON) + n].hdr.pm_callback = - &usb2_com_cfg_dtr_on; - sc->sc_cmds[(2*USB_COM_CFG_DTR_OFF) + n].hdr.pm_callback = - &usb2_com_cfg_dtr_off; - sc->sc_cmds[(2*USB_COM_CFG_RTS_ON) + n].hdr.pm_callback = - &usb2_com_cfg_rts_on; - sc->sc_cmds[(2*USB_COM_CFG_RTS_OFF) + n].hdr.pm_callback = - &usb2_com_cfg_rts_off; - sc->sc_cmds[(2*USB_COM_CFG_STATUS_CHANGE) + n].hdr.pm_callback = - &usb2_com_cfg_status_change; - sc->sc_cmds[(2*USB_COM_CFG_PARAM) + n].hdr.pm_callback = - &usb2_com_cfg_param; - } - - /* initialise all callback pointer arguments */ - for (n = 0; n != (2*USB_COM_CFG_MAX); n++) { - sc->sc_cmds[n].cc_softc = sc; - } done: return (error); } static void -usb2_com_detach_sub(struct usb2_com_softc *sc) +usb2_com_detach_tty(struct usb2_com_softc *sc) { struct tty *tp = sc->sc_tty; >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Tue Feb 3 02:27:34 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id AD4591065674; Tue, 3 Feb 2009 02:27:34 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 6D5F51065670 for ; Tue, 3 Feb 2009 02:27:34 +0000 (UTC) (envelope-from weongyo@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 5B4188FC19 for ; Tue, 3 Feb 2009 02:27:34 +0000 (UTC) (envelope-from weongyo@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n132RWUn025949 for ; Tue, 3 Feb 2009 02:27:32 GMT (envelope-from weongyo@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n132RWkU025947 for perforce@freebsd.org; Tue, 3 Feb 2009 02:27:32 GMT (envelope-from weongyo@FreeBSD.org) Date: Tue, 3 Feb 2009 02:27:32 GMT Message-Id: <200902030227.n132RWkU025947@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to weongyo@FreeBSD.org using -f From: Weongyo Jeong To: Perforce Change Reviews Cc: Subject: PERFORCE change 157073 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 03 Feb 2009 02:27:35 -0000 http://perforce.freebsd.org/chv.cgi?CH=157073 Change 157073 by weongyo@weongyo_ws on 2009/02/03 02:27:17 enable the background scan and looks it works without problems. Affected files ... .. //depot/projects/vap/sys/dev/usb/if_uath.c#11 edit Differences ... ==== //depot/projects/vap/sys/dev/usb/if_uath.c#11 (text+ko) ==== @@ -425,7 +425,8 @@ IEEE80211_C_TXPMGT | /* tx power management */ IEEE80211_C_SHPREAMBLE | /* short preamble supported */ IEEE80211_C_SHSLOT | /* short slot time supported */ - IEEE80211_C_WPA; /* 802.11i */ + IEEE80211_C_WPA | /* 802.11i */ + IEEE80211_C_BGSCAN; /* capable of bg scanning */ /* put a regulatory domain to reveal informations. */ uath_regdomain = sc->sc_devcap.regDomain; From owner-p4-projects@FreeBSD.ORG Tue Feb 3 19:20:43 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 68CAB1065675; Tue, 3 Feb 2009 19:20:43 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 2790D106566B for ; Tue, 3 Feb 2009 19:20:43 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 12FFE8FC17 for ; Tue, 3 Feb 2009 19:20:43 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n13JKhnX066028 for ; Tue, 3 Feb 2009 19:20:43 GMT (envelope-from hselasky@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n13JKgk5066026 for perforce@freebsd.org; Tue, 3 Feb 2009 19:20:42 GMT (envelope-from hselasky@FreeBSD.org) Date: Tue, 3 Feb 2009 19:20:42 GMT Message-Id: <200902031920.n13JKgk5066026@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky To: Perforce Change Reviews Cc: Subject: PERFORCE change 157100 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 03 Feb 2009 19:20:44 -0000 http://perforce.freebsd.org/chv.cgi?CH=157100 Change 157100 by hselasky@hselasky_laptop001 on 2009/02/03 19:19:59 Integrate Andrew Thompsons USB Ethernet patches which basically are about factoring out common code into the USB ethernet module ++ There should be no functional changes to the USB ethernet drivers. Cleanup CDC-Ethernet driver. Affected files ... .. //depot/projects/usb/src/sys/dev/usb2/ethernet/if_aue2.c#19 edit .. //depot/projects/usb/src/sys/dev/usb2/ethernet/if_auereg.h#3 edit .. //depot/projects/usb/src/sys/dev/usb2/ethernet/if_axe2.c#19 edit .. //depot/projects/usb/src/sys/dev/usb2/ethernet/if_axereg.h#3 edit .. //depot/projects/usb/src/sys/dev/usb2/ethernet/if_cdce2.c#17 edit .. //depot/projects/usb/src/sys/dev/usb2/ethernet/if_cdcereg.h#3 edit .. //depot/projects/usb/src/sys/dev/usb2/ethernet/if_cue2.c#18 edit .. //depot/projects/usb/src/sys/dev/usb2/ethernet/if_cuereg.h#3 edit .. //depot/projects/usb/src/sys/dev/usb2/ethernet/if_kue2.c#18 edit .. //depot/projects/usb/src/sys/dev/usb2/ethernet/if_kuefw.h#2 edit .. //depot/projects/usb/src/sys/dev/usb2/ethernet/if_kuereg.h#3 edit .. //depot/projects/usb/src/sys/dev/usb2/ethernet/if_rue2.c#18 edit .. //depot/projects/usb/src/sys/dev/usb2/ethernet/if_ruereg.h#3 edit .. //depot/projects/usb/src/sys/dev/usb2/ethernet/if_udav2.c#18 edit .. //depot/projects/usb/src/sys/dev/usb2/ethernet/if_udavreg.h#3 edit .. //depot/projects/usb/src/sys/dev/usb2/ethernet/usb2_ethernet.c#7 edit .. //depot/projects/usb/src/sys/dev/usb2/ethernet/usb2_ethernet.h#7 edit .. //depot/projects/usb/src/sys/dev/usb2/include/usb2_cdc.h#7 edit .. //depot/projects/usb/src/sys/dev/usb2/template/usb2_template_cdce.c#10 edit Differences ... ==== //depot/projects/usb/src/sys/dev/usb2/ethernet/if_aue2.c#19 (text+ko) ==== @@ -2,6 +2,9 @@ * Copyright (c) 1997, 1998, 1999, 2000 * Bill Paul . All rights reserved. * + * Copyright (c) 2006 + * Alfred Perlstein . All rights reserved. + * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: @@ -40,6 +43,9 @@ * Written by Bill Paul * Electrical Engineering Department * Columbia University, New York City + * + * SMP locking by Alfred Perlstein . + * RED Inc. */ /* @@ -58,29 +64,20 @@ * the controller uses an external PHY chip, it's possible that board * designers might simply choose a 10Mbps PHY. * - * Registers are accessed using usb2_do_request(). Packet transfers are - * done using usb2_transfer() and friends. + * Registers are accessed using usb2_ether_do_request(). Packet + * transfers are done using usb2_transfer() and friends. */ -/* - * NOTE: all function names beginning like "aue_cfg_" can only - * be called from within the config thread function ! - */ - #include #include #include #include -#define usb2_config_td_cc usb2_ether_cc -#define usb2_config_td_softc aue_softc - #define USB_DEBUG_VAR aue_debug #include #include #include -#include #include #include #include @@ -89,11 +86,6 @@ #include #include -MODULE_DEPEND(aue, usb2_ethernet, 1, 1, 1); -MODULE_DEPEND(aue, usb2_core, 1, 1, 1); -MODULE_DEPEND(aue, ether, 1, 1, 1); -MODULE_DEPEND(aue, miibus, 1, 1, 1); - #if USB_DEBUG static int aue_debug = 0; @@ -106,74 +98,74 @@ * Various supported device vendors/products. */ static const struct usb2_device_id aue_devs[] = { - {USB_VPI(USB_VENDOR_3COM, USB_PRODUCT_3COM_3C460B, AUE_FLAG_PII)}, - {USB_VPI(USB_VENDOR_ABOCOM, USB_PRODUCT_ABOCOM_DSB650TX_PNA, 0)}, - {USB_VPI(USB_VENDOR_ABOCOM, USB_PRODUCT_ABOCOM_UFE1000, AUE_FLAG_LSYS)}, - {USB_VPI(USB_VENDOR_ABOCOM, USB_PRODUCT_ABOCOM_XX10, 0)}, - {USB_VPI(USB_VENDOR_ABOCOM, USB_PRODUCT_ABOCOM_XX1, AUE_FLAG_PNA | AUE_FLAG_PII)}, - {USB_VPI(USB_VENDOR_ABOCOM, USB_PRODUCT_ABOCOM_XX2, AUE_FLAG_PII)}, - {USB_VPI(USB_VENDOR_ABOCOM, USB_PRODUCT_ABOCOM_XX4, AUE_FLAG_PNA)}, - {USB_VPI(USB_VENDOR_ABOCOM, USB_PRODUCT_ABOCOM_XX5, AUE_FLAG_PNA)}, - {USB_VPI(USB_VENDOR_ABOCOM, USB_PRODUCT_ABOCOM_XX6, AUE_FLAG_PII)}, - {USB_VPI(USB_VENDOR_ABOCOM, USB_PRODUCT_ABOCOM_XX7, AUE_FLAG_PII)}, - {USB_VPI(USB_VENDOR_ABOCOM, USB_PRODUCT_ABOCOM_XX8, AUE_FLAG_PII)}, - {USB_VPI(USB_VENDOR_ABOCOM, USB_PRODUCT_ABOCOM_XX9, AUE_FLAG_PNA)}, - {USB_VPI(USB_VENDOR_ACCTON, USB_PRODUCT_ACCTON_SS1001, AUE_FLAG_PII)}, - {USB_VPI(USB_VENDOR_ACCTON, USB_PRODUCT_ACCTON_USB320_EC, 0)}, - {USB_VPI(USB_VENDOR_ADMTEK, USB_PRODUCT_ADMTEK_PEGASUSII_2, AUE_FLAG_PII)}, - {USB_VPI(USB_VENDOR_ADMTEK, USB_PRODUCT_ADMTEK_PEGASUSII_3, AUE_FLAG_PII)}, - {USB_VPI(USB_VENDOR_ADMTEK, USB_PRODUCT_ADMTEK_PEGASUSII_4, AUE_FLAG_PII)}, - {USB_VPI(USB_VENDOR_ADMTEK, USB_PRODUCT_ADMTEK_PEGASUSII, AUE_FLAG_PII)}, - {USB_VPI(USB_VENDOR_ADMTEK, USB_PRODUCT_ADMTEK_PEGASUS, AUE_FLAG_PNA | AUE_FLAG_DUAL_PHY)}, - {USB_VPI(USB_VENDOR_AEI, USB_PRODUCT_AEI_FASTETHERNET, AUE_FLAG_PII)}, - {USB_VPI(USB_VENDOR_ALLIEDTELESYN, USB_PRODUCT_ALLIEDTELESYN_ATUSB100, AUE_FLAG_PII)}, - {USB_VPI(USB_VENDOR_ATEN, USB_PRODUCT_ATEN_UC110T, AUE_FLAG_PII)}, - {USB_VPI(USB_VENDOR_BELKIN, USB_PRODUCT_BELKIN_USB2LAN, AUE_FLAG_PII)}, - {USB_VPI(USB_VENDOR_BILLIONTON, USB_PRODUCT_BILLIONTON_USB100, 0)}, - {USB_VPI(USB_VENDOR_BILLIONTON, USB_PRODUCT_BILLIONTON_USBE100, AUE_FLAG_PII)}, - {USB_VPI(USB_VENDOR_BILLIONTON, USB_PRODUCT_BILLIONTON_USBEL100, 0)}, - {USB_VPI(USB_VENDOR_BILLIONTON, USB_PRODUCT_BILLIONTON_USBLP100, AUE_FLAG_PNA)}, - {USB_VPI(USB_VENDOR_COREGA, USB_PRODUCT_COREGA_FETHER_USB_TXS, AUE_FLAG_PII)}, - {USB_VPI(USB_VENDOR_COREGA, USB_PRODUCT_COREGA_FETHER_USB_TX, 0)}, - {USB_VPI(USB_VENDOR_DLINK, USB_PRODUCT_DLINK_DSB650TX1, AUE_FLAG_LSYS)}, - {USB_VPI(USB_VENDOR_DLINK, USB_PRODUCT_DLINK_DSB650TX2, AUE_FLAG_LSYS | AUE_FLAG_PII)}, - {USB_VPI(USB_VENDOR_DLINK, USB_PRODUCT_DLINK_DSB650TX3, AUE_FLAG_LSYS | AUE_FLAG_PII)}, - {USB_VPI(USB_VENDOR_DLINK, USB_PRODUCT_DLINK_DSB650TX4, AUE_FLAG_LSYS | AUE_FLAG_PII)}, - {USB_VPI(USB_VENDOR_DLINK, USB_PRODUCT_DLINK_DSB650TX_PNA, AUE_FLAG_PNA)}, - {USB_VPI(USB_VENDOR_DLINK, USB_PRODUCT_DLINK_DSB650TX, AUE_FLAG_LSYS)}, - {USB_VPI(USB_VENDOR_DLINK, USB_PRODUCT_DLINK_DSB650, AUE_FLAG_LSYS)}, - {USB_VPI(USB_VENDOR_ELCON, USB_PRODUCT_ELCON_PLAN, AUE_FLAG_PNA | AUE_FLAG_PII)}, - {USB_VPI(USB_VENDOR_ELECOM, USB_PRODUCT_ELECOM_LDUSB20, AUE_FLAG_PII)}, - {USB_VPI(USB_VENDOR_ELECOM, USB_PRODUCT_ELECOM_LDUSBLTX, AUE_FLAG_PII)}, - {USB_VPI(USB_VENDOR_ELECOM, USB_PRODUCT_ELECOM_LDUSBTX0, 0)}, - {USB_VPI(USB_VENDOR_ELECOM, USB_PRODUCT_ELECOM_LDUSBTX1, AUE_FLAG_LSYS)}, - {USB_VPI(USB_VENDOR_ELECOM, USB_PRODUCT_ELECOM_LDUSBTX2, 0)}, - {USB_VPI(USB_VENDOR_ELECOM, USB_PRODUCT_ELECOM_LDUSBTX3, AUE_FLAG_LSYS)}, - {USB_VPI(USB_VENDOR_ELSA, USB_PRODUCT_ELSA_USB2ETHERNET, 0)}, - {USB_VPI(USB_VENDOR_GIGABYTE, USB_PRODUCT_GIGABYTE_GNBR402W, 0)}, - {USB_VPI(USB_VENDOR_HAWKING, USB_PRODUCT_HAWKING_UF100, AUE_FLAG_PII)}, - {USB_VPI(USB_VENDOR_HP, USB_PRODUCT_HP_HN210E, AUE_FLAG_PII)}, - {USB_VPI(USB_VENDOR_IODATA, USB_PRODUCT_IODATA_USBETTXS, AUE_FLAG_PII)}, - {USB_VPI(USB_VENDOR_IODATA, USB_PRODUCT_IODATA_USBETTX, 0)}, - {USB_VPI(USB_VENDOR_KINGSTON, USB_PRODUCT_KINGSTON_KNU101TX, 0)}, - {USB_VPI(USB_VENDOR_LINKSYS, USB_PRODUCT_LINKSYS_USB100H1, AUE_FLAG_LSYS | AUE_FLAG_PNA)}, - {USB_VPI(USB_VENDOR_LINKSYS, USB_PRODUCT_LINKSYS_USB100TX, AUE_FLAG_LSYS)}, - {USB_VPI(USB_VENDOR_LINKSYS, USB_PRODUCT_LINKSYS_USB10TA, AUE_FLAG_LSYS)}, - {USB_VPI(USB_VENDOR_LINKSYS, USB_PRODUCT_LINKSYS_USB10TX1, AUE_FLAG_LSYS | AUE_FLAG_PII)}, - {USB_VPI(USB_VENDOR_LINKSYS, USB_PRODUCT_LINKSYS_USB10TX2, AUE_FLAG_LSYS | AUE_FLAG_PII)}, - {USB_VPI(USB_VENDOR_LINKSYS, USB_PRODUCT_LINKSYS_USB10T, AUE_FLAG_LSYS)}, - {USB_VPI(USB_VENDOR_MELCO, USB_PRODUCT_MELCO_LUA2TX5, AUE_FLAG_PII)}, - {USB_VPI(USB_VENDOR_MELCO, USB_PRODUCT_MELCO_LUATX1, 0)}, - {USB_VPI(USB_VENDOR_MELCO, USB_PRODUCT_MELCO_LUATX5, 0)}, - {USB_VPI(USB_VENDOR_MICROSOFT, USB_PRODUCT_MICROSOFT_MN110, AUE_FLAG_PII)}, - {USB_VPI(USB_VENDOR_NETGEAR, USB_PRODUCT_NETGEAR_FA101, AUE_FLAG_PII)}, - {USB_VPI(USB_VENDOR_SIEMENS, USB_PRODUCT_SIEMENS_SPEEDSTREAM, AUE_FLAG_PII)}, - {USB_VPI(USB_VENDOR_SIIG2, USB_PRODUCT_SIIG2_USBTOETHER, AUE_FLAG_PII)}, - {USB_VPI(USB_VENDOR_SMARTBRIDGES, USB_PRODUCT_SMARTBRIDGES_SMARTNIC, AUE_FLAG_PII)}, - {USB_VPI(USB_VENDOR_SMC, USB_PRODUCT_SMC_2202USB, 0)}, - {USB_VPI(USB_VENDOR_SMC, USB_PRODUCT_SMC_2206USB, AUE_FLAG_PII)}, - {USB_VPI(USB_VENDOR_SOHOWARE, USB_PRODUCT_SOHOWARE_NUB100, 0)}, - {USB_VPI(USB_VENDOR_SOHOWARE, USB_PRODUCT_SOHOWARE_NUB110, AUE_FLAG_PII)}, + {USB_VPI(USB_VENDOR_3COM, USB_PRODUCT_3COM_3C460B, AUE_FLAG_PII)}, + {USB_VPI(USB_VENDOR_ABOCOM, USB_PRODUCT_ABOCOM_DSB650TX_PNA, 0)}, + {USB_VPI(USB_VENDOR_ABOCOM, USB_PRODUCT_ABOCOM_UFE1000, AUE_FLAG_LSYS)}, + {USB_VPI(USB_VENDOR_ABOCOM, USB_PRODUCT_ABOCOM_XX10, 0)}, + {USB_VPI(USB_VENDOR_ABOCOM, USB_PRODUCT_ABOCOM_XX1, AUE_FLAG_PNA | AUE_FLAG_PII)}, + {USB_VPI(USB_VENDOR_ABOCOM, USB_PRODUCT_ABOCOM_XX2, AUE_FLAG_PII)}, + {USB_VPI(USB_VENDOR_ABOCOM, USB_PRODUCT_ABOCOM_XX4, AUE_FLAG_PNA)}, + {USB_VPI(USB_VENDOR_ABOCOM, USB_PRODUCT_ABOCOM_XX5, AUE_FLAG_PNA)}, + {USB_VPI(USB_VENDOR_ABOCOM, USB_PRODUCT_ABOCOM_XX6, AUE_FLAG_PII)}, + {USB_VPI(USB_VENDOR_ABOCOM, USB_PRODUCT_ABOCOM_XX7, AUE_FLAG_PII)}, + {USB_VPI(USB_VENDOR_ABOCOM, USB_PRODUCT_ABOCOM_XX8, AUE_FLAG_PII)}, + {USB_VPI(USB_VENDOR_ABOCOM, USB_PRODUCT_ABOCOM_XX9, AUE_FLAG_PNA)}, + {USB_VPI(USB_VENDOR_ACCTON, USB_PRODUCT_ACCTON_SS1001, AUE_FLAG_PII)}, + {USB_VPI(USB_VENDOR_ACCTON, USB_PRODUCT_ACCTON_USB320_EC, 0)}, + {USB_VPI(USB_VENDOR_ADMTEK, USB_PRODUCT_ADMTEK_PEGASUSII_2, AUE_FLAG_PII)}, + {USB_VPI(USB_VENDOR_ADMTEK, USB_PRODUCT_ADMTEK_PEGASUSII_3, AUE_FLAG_PII)}, + {USB_VPI(USB_VENDOR_ADMTEK, USB_PRODUCT_ADMTEK_PEGASUSII_4, AUE_FLAG_PII)}, + {USB_VPI(USB_VENDOR_ADMTEK, USB_PRODUCT_ADMTEK_PEGASUSII, AUE_FLAG_PII)}, + {USB_VPI(USB_VENDOR_ADMTEK, USB_PRODUCT_ADMTEK_PEGASUS, AUE_FLAG_PNA | AUE_FLAG_DUAL_PHY)}, + {USB_VPI(USB_VENDOR_AEI, USB_PRODUCT_AEI_FASTETHERNET, AUE_FLAG_PII)}, + {USB_VPI(USB_VENDOR_ALLIEDTELESYN, USB_PRODUCT_ALLIEDTELESYN_ATUSB100, AUE_FLAG_PII)}, + {USB_VPI(USB_VENDOR_ATEN, USB_PRODUCT_ATEN_UC110T, AUE_FLAG_PII)}, + {USB_VPI(USB_VENDOR_BELKIN, USB_PRODUCT_BELKIN_USB2LAN, AUE_FLAG_PII)}, + {USB_VPI(USB_VENDOR_BILLIONTON, USB_PRODUCT_BILLIONTON_USB100, 0)}, + {USB_VPI(USB_VENDOR_BILLIONTON, USB_PRODUCT_BILLIONTON_USBE100, AUE_FLAG_PII)}, + {USB_VPI(USB_VENDOR_BILLIONTON, USB_PRODUCT_BILLIONTON_USBEL100, 0)}, + {USB_VPI(USB_VENDOR_BILLIONTON, USB_PRODUCT_BILLIONTON_USBLP100, AUE_FLAG_PNA)}, + {USB_VPI(USB_VENDOR_COREGA, USB_PRODUCT_COREGA_FETHER_USB_TXS, AUE_FLAG_PII)}, + {USB_VPI(USB_VENDOR_COREGA, USB_PRODUCT_COREGA_FETHER_USB_TX, 0)}, + {USB_VPI(USB_VENDOR_DLINK, USB_PRODUCT_DLINK_DSB650TX1, AUE_FLAG_LSYS)}, + {USB_VPI(USB_VENDOR_DLINK, USB_PRODUCT_DLINK_DSB650TX2, AUE_FLAG_LSYS | AUE_FLAG_PII)}, + {USB_VPI(USB_VENDOR_DLINK, USB_PRODUCT_DLINK_DSB650TX3, AUE_FLAG_LSYS | AUE_FLAG_PII)}, + {USB_VPI(USB_VENDOR_DLINK, USB_PRODUCT_DLINK_DSB650TX4, AUE_FLAG_LSYS | AUE_FLAG_PII)}, + {USB_VPI(USB_VENDOR_DLINK, USB_PRODUCT_DLINK_DSB650TX_PNA, AUE_FLAG_PNA)}, + {USB_VPI(USB_VENDOR_DLINK, USB_PRODUCT_DLINK_DSB650TX, AUE_FLAG_LSYS)}, + {USB_VPI(USB_VENDOR_DLINK, USB_PRODUCT_DLINK_DSB650, AUE_FLAG_LSYS)}, + {USB_VPI(USB_VENDOR_ELCON, USB_PRODUCT_ELCON_PLAN, AUE_FLAG_PNA | AUE_FLAG_PII)}, + {USB_VPI(USB_VENDOR_ELECOM, USB_PRODUCT_ELECOM_LDUSB20, AUE_FLAG_PII)}, + {USB_VPI(USB_VENDOR_ELECOM, USB_PRODUCT_ELECOM_LDUSBLTX, AUE_FLAG_PII)}, + {USB_VPI(USB_VENDOR_ELECOM, USB_PRODUCT_ELECOM_LDUSBTX0, 0)}, + {USB_VPI(USB_VENDOR_ELECOM, USB_PRODUCT_ELECOM_LDUSBTX1, AUE_FLAG_LSYS)}, + {USB_VPI(USB_VENDOR_ELECOM, USB_PRODUCT_ELECOM_LDUSBTX2, 0)}, + {USB_VPI(USB_VENDOR_ELECOM, USB_PRODUCT_ELECOM_LDUSBTX3, AUE_FLAG_LSYS)}, + {USB_VPI(USB_VENDOR_ELSA, USB_PRODUCT_ELSA_USB2ETHERNET, 0)}, + {USB_VPI(USB_VENDOR_GIGABYTE, USB_PRODUCT_GIGABYTE_GNBR402W, 0)}, + {USB_VPI(USB_VENDOR_HAWKING, USB_PRODUCT_HAWKING_UF100, AUE_FLAG_PII)}, + {USB_VPI(USB_VENDOR_HP, USB_PRODUCT_HP_HN210E, AUE_FLAG_PII)}, + {USB_VPI(USB_VENDOR_IODATA, USB_PRODUCT_IODATA_USBETTXS, AUE_FLAG_PII)}, + {USB_VPI(USB_VENDOR_IODATA, USB_PRODUCT_IODATA_USBETTX, 0)}, + {USB_VPI(USB_VENDOR_KINGSTON, USB_PRODUCT_KINGSTON_KNU101TX, 0)}, + {USB_VPI(USB_VENDOR_LINKSYS, USB_PRODUCT_LINKSYS_USB100H1, AUE_FLAG_LSYS | AUE_FLAG_PNA)}, + {USB_VPI(USB_VENDOR_LINKSYS, USB_PRODUCT_LINKSYS_USB100TX, AUE_FLAG_LSYS)}, + {USB_VPI(USB_VENDOR_LINKSYS, USB_PRODUCT_LINKSYS_USB10TA, AUE_FLAG_LSYS)}, + {USB_VPI(USB_VENDOR_LINKSYS, USB_PRODUCT_LINKSYS_USB10TX1, AUE_FLAG_LSYS | AUE_FLAG_PII)}, + {USB_VPI(USB_VENDOR_LINKSYS, USB_PRODUCT_LINKSYS_USB10TX2, AUE_FLAG_LSYS | AUE_FLAG_PII)}, + {USB_VPI(USB_VENDOR_LINKSYS, USB_PRODUCT_LINKSYS_USB10T, AUE_FLAG_LSYS)}, + {USB_VPI(USB_VENDOR_MELCO, USB_PRODUCT_MELCO_LUA2TX5, AUE_FLAG_PII)}, + {USB_VPI(USB_VENDOR_MELCO, USB_PRODUCT_MELCO_LUATX1, 0)}, + {USB_VPI(USB_VENDOR_MELCO, USB_PRODUCT_MELCO_LUATX5, 0)}, + {USB_VPI(USB_VENDOR_MICROSOFT, USB_PRODUCT_MICROSOFT_MN110, AUE_FLAG_PII)}, + {USB_VPI(USB_VENDOR_NETGEAR, USB_PRODUCT_NETGEAR_FA101, AUE_FLAG_PII)}, + {USB_VPI(USB_VENDOR_SIEMENS, USB_PRODUCT_SIEMENS_SPEEDSTREAM, AUE_FLAG_PII)}, + {USB_VPI(USB_VENDOR_SIIG2, USB_PRODUCT_SIIG2_USBTOETHER, AUE_FLAG_PII)}, + {USB_VPI(USB_VENDOR_SMARTBRIDGES, USB_PRODUCT_SMARTBRIDGES_SMARTNIC, AUE_FLAG_PII)}, + {USB_VPI(USB_VENDOR_SMC, USB_PRODUCT_SMC_2202USB, 0)}, + {USB_VPI(USB_VENDOR_SMC, USB_PRODUCT_SMC_2206USB, AUE_FLAG_PII)}, + {USB_VPI(USB_VENDOR_SOHOWARE, USB_PRODUCT_SOHOWARE_NUB100, 0)}, + {USB_VPI(USB_VENDOR_SOHOWARE, USB_PRODUCT_SOHOWARE_NUB110, AUE_FLAG_PII)}, }; /* prototypes */ @@ -182,6 +174,9 @@ static device_attach_t aue_attach; static device_detach_t aue_detach; static device_shutdown_t aue_shutdown; +static miibus_readreg_t aue_miibus_readreg; +static miibus_writereg_t aue_miibus_writereg; +static miibus_statchg_t aue_miibus_statchg; static usb2_callback_t aue_intr_clear_stall_callback; static usb2_callback_t aue_intr_callback; @@ -190,41 +185,27 @@ static usb2_callback_t aue_bulk_write_clear_stall_callback; static usb2_callback_t aue_bulk_write_callback; -static void aue_cfg_do_request(struct aue_softc *, - struct usb2_device_request *, void *); -static uint8_t aue_cfg_csr_read_1(struct aue_softc *, uint16_t); -static uint16_t aue_cfg_csr_read_2(struct aue_softc *, uint16_t); -static void aue_cfg_csr_write_1(struct aue_softc *, uint16_t, uint8_t); -static void aue_cfg_csr_write_2(struct aue_softc *, uint16_t, uint16_t); -static void aue_cfg_eeprom_getword(struct aue_softc *, uint8_t, uint8_t *); -static void aue_cfg_read_eeprom(struct aue_softc *, uint8_t *, uint16_t, +static usb2_ether_fn_t aue_attach_post; +static usb2_ether_fn_t aue_init; +static usb2_ether_fn_t aue_stop; +static usb2_ether_fn_t aue_start; +static usb2_ether_fn_t aue_tick; +static usb2_ether_fn_t aue_setmulti; +static usb2_ether_fn_t aue_setpromisc; + +static uint8_t aue_csr_read_1(struct aue_softc *, uint16_t); +static uint16_t aue_csr_read_2(struct aue_softc *, uint16_t); +static void aue_csr_write_1(struct aue_softc *, uint16_t, uint8_t); +static void aue_csr_write_2(struct aue_softc *, uint16_t, uint16_t); +static void aue_eeprom_getword(struct aue_softc *, int, uint16_t *); +static void aue_read_eeprom(struct aue_softc *, uint8_t *, uint16_t, uint16_t); +static void aue_reset(struct aue_softc *); +static void aue_reset_pegasus_II(struct aue_softc *); -static miibus_readreg_t aue_cfg_miibus_readreg; -static miibus_writereg_t aue_cfg_miibus_writereg; -static miibus_statchg_t aue_cfg_miibus_statchg; +static int aue_ifmedia_upd(struct ifnet *); +static void aue_ifmedia_sts(struct ifnet *, struct ifmediareq *); -static usb2_config_td_command_t aue_cfg_setmulti; -static usb2_config_td_command_t aue_cfg_first_time_setup; -static usb2_config_td_command_t aue_config_copy; -static usb2_config_td_command_t aue_cfg_tick; -static usb2_config_td_command_t aue_cfg_pre_init; -static usb2_config_td_command_t aue_cfg_init; -static usb2_config_td_command_t aue_cfg_promisc_upd; -static usb2_config_td_command_t aue_cfg_ifmedia_upd; -static usb2_config_td_command_t aue_cfg_pre_stop; -static usb2_config_td_command_t aue_cfg_stop; - -static void aue_cfg_reset_pegasus_II(struct aue_softc *); -static void aue_cfg_reset(struct aue_softc *); -static void aue_start_cb(struct ifnet *); -static void aue_init_cb(void *); -static void aue_start_transfers(struct aue_softc *); -static int aue_ifmedia_upd_cb(struct ifnet *); -static void aue_ifmedia_sts_cb(struct ifnet *, struct ifmediareq *); -static int aue_ioctl_cb(struct ifnet *, u_long, caddr_t); -static void aue_watchdog(void *); - static const struct usb2_config aue_config[AUE_N_TRANSFER] = { [AUE_BULK_DT_WR] = { @@ -233,7 +214,7 @@ .direction = UE_DIR_OUT, .mh.bufsize = (MCLBYTES + 2), .mh.flags = {.pipe_bof = 1,.force_short_xfer = 1,}, - .mh.callback = &aue_bulk_write_callback, + .mh.callback = aue_bulk_write_callback, .mh.timeout = 10000, /* 10 seconds */ }, @@ -243,7 +224,7 @@ .direction = UE_DIR_IN, .mh.bufsize = (MCLBYTES + 4 + ETHER_CRC_LEN), .mh.flags = {.pipe_bof = 1,.short_xfer_ok = 1,}, - .mh.callback = &aue_bulk_read_callback, + .mh.callback = aue_bulk_read_callback, }, [AUE_BULK_CS_WR] = { @@ -252,7 +233,7 @@ .direction = UE_DIR_ANY, .mh.bufsize = sizeof(struct usb2_device_request), .mh.flags = {}, - .mh.callback = &aue_bulk_write_clear_stall_callback, + .mh.callback = aue_bulk_write_clear_stall_callback, .mh.timeout = 1000, /* 1 second */ .mh.interval = 50, /* 50ms */ }, @@ -263,7 +244,7 @@ .direction = UE_DIR_ANY, .mh.bufsize = sizeof(struct usb2_device_request), .mh.flags = {}, - .mh.callback = &aue_bulk_read_clear_stall_callback, + .mh.callback = aue_bulk_read_clear_stall_callback, .mh.timeout = 1000, /* 1 second */ .mh.interval = 50, /* 50ms */ }, @@ -274,7 +255,7 @@ .direction = UE_DIR_IN, .mh.flags = {.pipe_bof = 1,.short_xfer_ok = 1,}, .mh.bufsize = 0, /* use wMaxPacketSize */ - .mh.callback = &aue_intr_callback, + .mh.callback = aue_intr_callback, }, [AUE_INTR_CS_RD] = { @@ -283,7 +264,7 @@ .direction = UE_DIR_ANY, .mh.bufsize = sizeof(struct usb2_device_request), .mh.flags = {}, - .mh.callback = &aue_intr_clear_stall_callback, + .mh.callback = aue_intr_clear_stall_callback, .mh.timeout = 1000, /* 1 second */ .mh.interval = 50, /* 50ms */ }, @@ -301,9 +282,9 @@ DEVMETHOD(bus_driver_added, bus_generic_driver_added), /* MII interface */ - DEVMETHOD(miibus_readreg, aue_cfg_miibus_readreg), - DEVMETHOD(miibus_writereg, aue_cfg_miibus_writereg), - DEVMETHOD(miibus_statchg, aue_cfg_miibus_statchg), + DEVMETHOD(miibus_readreg, aue_miibus_readreg), + DEVMETHOD(miibus_writereg, aue_miibus_writereg), + DEVMETHOD(miibus_statchg, aue_miibus_statchg), {0, 0} }; @@ -318,44 +299,34 @@ DRIVER_MODULE(aue, ushub, aue_driver, aue_devclass, NULL, 0); DRIVER_MODULE(miibus, aue, miibus_driver, miibus_devclass, 0, 0); +MODULE_DEPEND(aue, usb2_ethernet, 1, 1, 1); +MODULE_DEPEND(aue, usb2_core, 1, 1, 1); +MODULE_DEPEND(aue, ether, 1, 1, 1); +MODULE_DEPEND(aue, miibus, 1, 1, 1); -static void -aue_cfg_do_request(struct aue_softc *sc, struct usb2_device_request *req, - void *data) -{ - uint16_t length; - usb2_error_t err; +static const struct usb2_ether_methods aue_ue_methods = { + .ue_attach_post = aue_attach_post, + .ue_start = aue_start, + .ue_init = aue_init, + .ue_stop = aue_stop, + .ue_tick = aue_tick, + .ue_setmulti = aue_setmulti, + .ue_setpromisc = aue_setpromisc, + .ue_mii_upd = aue_ifmedia_upd, + .ue_mii_sts = aue_ifmedia_sts, +}; - if (usb2_config_td_is_gone(&sc->sc_config_td)) { - goto error; - } - err = usb2_do_request_flags - (sc->sc_udev, &sc->sc_mtx, req, data, 0, NULL, 1000); +#define AUE_SETBIT(sc, reg, x) \ + aue_csr_write_1(sc, reg, aue_csr_read_1(sc, reg) | (x)) - if (err) { - - DPRINTF("device request failed, err=%s " - "(ignored)\n", usb2_errstr(err)); - -error: - length = UGETW(req->wLength); - - if ((req->bmRequestType & UT_READ) && length) { - bzero(data, length); - } - } -} - -#define AUE_CFG_SETBIT(sc, reg, x) \ - aue_cfg_csr_write_1(sc, reg, aue_cfg_csr_read_1(sc, reg) | (x)) - -#define AUE_CFG_CLRBIT(sc, reg, x) \ - aue_cfg_csr_write_1(sc, reg, aue_cfg_csr_read_1(sc, reg) & ~(x)) +#define AUE_CLRBIT(sc, reg, x) \ + aue_csr_write_1(sc, reg, aue_csr_read_1(sc, reg) & ~(x)) static uint8_t -aue_cfg_csr_read_1(struct aue_softc *sc, uint16_t reg) +aue_csr_read_1(struct aue_softc *sc, uint16_t reg) { struct usb2_device_request req; + usb2_error_t err; uint8_t val; req.bmRequestType = UT_READ_VENDOR_DEVICE; @@ -364,14 +335,17 @@ USETW(req.wIndex, reg); USETW(req.wLength, 1); - aue_cfg_do_request(sc, &req, &val); + err = usb2_ether_do_request(&sc->sc_ue, &req, &val, 1000); + if (err) + return (0); return (val); } static uint16_t -aue_cfg_csr_read_2(struct aue_softc *sc, uint16_t reg) +aue_csr_read_2(struct aue_softc *sc, uint16_t reg) { struct usb2_device_request req; + usb2_error_t err; uint16_t val; req.bmRequestType = UT_READ_VENDOR_DEVICE; @@ -380,12 +354,14 @@ USETW(req.wIndex, reg); USETW(req.wLength, 2); - aue_cfg_do_request(sc, &req, &val); + err = usb2_ether_do_request(&sc->sc_ue, &req, &val, 1000); + if (err) + return (0); return (le16toh(val)); } static void -aue_cfg_csr_write_1(struct aue_softc *sc, uint16_t reg, uint8_t val) +aue_csr_write_1(struct aue_softc *sc, uint16_t reg, uint8_t val) { struct usb2_device_request req; @@ -396,11 +372,13 @@ USETW(req.wIndex, reg); USETW(req.wLength, 1); - aue_cfg_do_request(sc, &req, &val); + if (usb2_ether_do_request(&sc->sc_ue, &req, &val, 1000)) { + /* error ignored */ + } } static void -aue_cfg_csr_write_2(struct aue_softc *sc, uint16_t reg, uint16_t val) +aue_csr_write_2(struct aue_softc *sc, uint16_t reg, uint16_t val) { struct usb2_device_request req; @@ -412,197 +390,149 @@ val = htole16(val); - aue_cfg_do_request(sc, &req, &val); + if (usb2_ether_do_request(&sc->sc_ue, &req, &val, 1000)) { + /* error ignored */ + } } /* * Read a word of data stored in the EEPROM at address 'addr.' */ static void -aue_cfg_eeprom_getword(struct aue_softc *sc, uint8_t addr, - uint8_t *dest) +aue_eeprom_getword(struct aue_softc *sc, int addr, uint16_t *dest) { - uint16_t i; + int i; + uint16_t word = 0; - aue_cfg_csr_write_1(sc, AUE_EE_REG, addr); - aue_cfg_csr_write_1(sc, AUE_EE_CTL, AUE_EECTL_READ); + aue_csr_write_1(sc, AUE_EE_REG, addr); + aue_csr_write_1(sc, AUE_EE_CTL, AUE_EECTL_READ); - for (i = 0;; i++) { - - if (i < AUE_TIMEOUT) { - - if (aue_cfg_csr_read_1(sc, AUE_EE_CTL) & AUE_EECTL_DONE) { - break; - } - if (usb2_config_td_sleep(&sc->sc_config_td, hz / 100)) { - break; - } - } else { - DPRINTF("EEPROM read timed out!\n"); + for (i = 0; i != AUE_TIMEOUT; i++) { + if (aue_csr_read_1(sc, AUE_EE_CTL) & AUE_EECTL_DONE) break; - } } - i = aue_cfg_csr_read_2(sc, AUE_EE_DATA); + if (i == AUE_TIMEOUT) + device_printf(sc->sc_ue.ue_dev, "EEPROM read timed out\n"); - dest[0] = (i & 0xFF); - dest[1] = (i >> 8); + word = aue_csr_read_2(sc, AUE_EE_DATA); + *dest = word; } /* * Read a sequence of words from the EEPROM. */ static void -aue_cfg_read_eeprom(struct aue_softc *sc, uint8_t *dest, +aue_read_eeprom(struct aue_softc *sc, uint8_t *dest, uint16_t off, uint16_t len) { - uint16_t i; + uint16_t *ptr = (uint16_t *)dest; + int i; - for (i = 0; i < len; i++) { - aue_cfg_eeprom_getword(sc, off + i, dest + (i * 2)); - } + for (i = 0; i != len; i++, ptr++) + aue_eeprom_getword(sc, off + i, ptr); } static int -aue_cfg_miibus_readreg(device_t dev, int phy, int reg) +aue_miibus_readreg(device_t dev, int phy, int reg) { struct aue_softc *sc = device_get_softc(dev); - uint16_t i; - uint8_t do_unlock; + int i, locked; + uint16_t val = 0; - /* avoid recursive locking */ - if (mtx_owned(&sc->sc_mtx)) { - do_unlock = 0; - } else { - mtx_lock(&sc->sc_mtx); - do_unlock = 1; - } + locked = mtx_owned(&sc->sc_mtx); + if (!locked) + AUE_LOCK(sc); /* - * The Am79C901 HomePNA PHY actually contains - * two transceivers: a 1Mbps HomePNA PHY and a - * 10Mbps full/half duplex ethernet PHY with - * NWAY autoneg. However in the ADMtek adapter, - * only the 1Mbps PHY is actually connected to - * anything, so we ignore the 10Mbps one. It - * happens to be configured for MII address 3, - * so we filter that out. + * The Am79C901 HomePNA PHY actually contains two transceivers: a 1Mbps + * HomePNA PHY and a 10Mbps full/half duplex ethernet PHY with NWAY + * autoneg. However in the ADMtek adapter, only the 1Mbps PHY is + * actually connected to anything, so we ignore the 10Mbps one. It + * happens to be configured for MII address 3, so we filter that out. */ if (sc->sc_flags & AUE_FLAG_DUAL_PHY) { - - if (phy == 3) { - i = 0; + if (phy == 3) goto done; - } #if 0 - if (phy != 1) { - i = 0; + if (phy != 1) goto done; - } #endif } - aue_cfg_csr_write_1(sc, AUE_PHY_ADDR, phy); - aue_cfg_csr_write_1(sc, AUE_PHY_CTL, reg | AUE_PHYCTL_READ); + aue_csr_write_1(sc, AUE_PHY_ADDR, phy); + aue_csr_write_1(sc, AUE_PHY_CTL, reg | AUE_PHYCTL_READ); - for (i = 0;; i++) { - - if (i < AUE_TIMEOUT) { - - if (aue_cfg_csr_read_1(sc, AUE_PHY_CTL) & AUE_PHYCTL_DONE) { - break; - } - if (usb2_config_td_sleep(&sc->sc_config_td, hz / 100)) { - break; - } - } else { - DPRINTF("MII read timed out\n"); + for (i = 0; i != AUE_TIMEOUT; i++) { + if (aue_csr_read_1(sc, AUE_PHY_CTL) & AUE_PHYCTL_DONE) break; - } } - i = aue_cfg_csr_read_2(sc, AUE_PHY_DATA); + if (i == AUE_TIMEOUT) + device_printf(sc->sc_ue.ue_dev, "MII read timed out\n"); + + val = aue_csr_read_2(sc, AUE_PHY_DATA); done: - if (do_unlock) { - mtx_unlock(&sc->sc_mtx); - } - return (i); + if (!locked) + AUE_UNLOCK(sc); + return (val); } static int -aue_cfg_miibus_writereg(device_t dev, int phy, int reg, int data) +aue_miibus_writereg(device_t dev, int phy, int reg, int data) { struct aue_softc *sc = device_get_softc(dev); - uint16_t i; - uint8_t do_unlock; + int i; + int locked; - if (phy == 3) { + if (phy == 3) return (0); - } - /* avoid recursive locking */ - if (mtx_owned(&sc->sc_mtx)) { - do_unlock = 0; - } else { - mtx_lock(&sc->sc_mtx); - do_unlock = 1; - } - aue_cfg_csr_write_2(sc, AUE_PHY_DATA, data); - aue_cfg_csr_write_1(sc, AUE_PHY_ADDR, phy); - aue_cfg_csr_write_1(sc, AUE_PHY_CTL, reg | AUE_PHYCTL_WRITE); + locked = mtx_owned(&sc->sc_mtx); + if (!locked) + AUE_LOCK(sc); - for (i = 0;; i++) { + aue_csr_write_2(sc, AUE_PHY_DATA, data); + aue_csr_write_1(sc, AUE_PHY_ADDR, phy); + aue_csr_write_1(sc, AUE_PHY_CTL, reg | AUE_PHYCTL_WRITE); - if (i < AUE_TIMEOUT) { - if (aue_cfg_csr_read_1(sc, AUE_PHY_CTL) & AUE_PHYCTL_DONE) { - break; - } - if (usb2_config_td_sleep(&sc->sc_config_td, hz / 100)) { - break; - } - } else { - DPRINTF("MII write timed out\n"); + for (i = 0; i != AUE_TIMEOUT; i++) { + if (aue_csr_read_1(sc, AUE_PHY_CTL) & AUE_PHYCTL_DONE) break; - } } - if (do_unlock) { - mtx_unlock(&sc->sc_mtx); - } + if (i == AUE_TIMEOUT) + device_printf(sc->sc_ue.ue_dev, "MII read timed out\n"); + + if (!locked) + AUE_UNLOCK(sc); return (0); } static void -aue_cfg_miibus_statchg(device_t dev) +aue_miibus_statchg(device_t dev) { struct aue_softc *sc = device_get_softc(dev); struct mii_data *mii = GET_MII(sc); - uint8_t do_unlock; + int locked; - /* avoid recursive locking */ - if (mtx_owned(&sc->sc_mtx)) { - do_unlock = 0; - } else { - mtx_lock(&sc->sc_mtx); - do_unlock = 1; - } + locked = mtx_owned(&sc->sc_mtx); + if (!locked) + AUE_LOCK(sc); - AUE_CFG_CLRBIT(sc, AUE_CTL0, AUE_CTL0_RX_ENB | AUE_CTL0_TX_ENB); + AUE_CLRBIT(sc, AUE_CTL0, AUE_CTL0_RX_ENB | AUE_CTL0_TX_ENB); + if (IFM_SUBTYPE(mii->mii_media_active) == IFM_100_TX) + AUE_SETBIT(sc, AUE_CTL1, AUE_CTL1_SPEEDSEL); + else + AUE_CLRBIT(sc, AUE_CTL1, AUE_CTL1_SPEEDSEL); - if (IFM_SUBTYPE(mii->mii_media_active) == IFM_100_TX) { - AUE_CFG_SETBIT(sc, AUE_CTL1, AUE_CTL1_SPEEDSEL); - } else { - AUE_CFG_CLRBIT(sc, AUE_CTL1, AUE_CTL1_SPEEDSEL); - } + if ((mii->mii_media_active & IFM_GMASK) == IFM_FDX) + AUE_SETBIT(sc, AUE_CTL1, AUE_CTL1_DUPLEX); + else + AUE_CLRBIT(sc, AUE_CTL1, AUE_CTL1_DUPLEX); - if ((mii->mii_media_active & IFM_GMASK) == IFM_FDX) { - AUE_CFG_SETBIT(sc, AUE_CTL1, AUE_CTL1_DUPLEX); - } else { - AUE_CFG_CLRBIT(sc, AUE_CTL1, AUE_CTL1_DUPLEX); - } + AUE_SETBIT(sc, AUE_CTL0, AUE_CTL0_RX_ENB | AUE_CTL0_TX_ENB); - AUE_CFG_SETBIT(sc, AUE_CTL0, AUE_CTL0_RX_ENB | AUE_CTL0_TX_ENB); - /* * Set the LED modes on the LinkSys adapter. * This turns on the 'dual link LED' bin in the auxmode @@ -611,75 +541,78 @@ if (sc->sc_flags & AUE_FLAG_LSYS) { uint16_t auxmode; - auxmode = aue_cfg_miibus_readreg(dev, 0, 0x1b); - aue_cfg_miibus_writereg(dev, 0, 0x1b, auxmode | 0x04); + auxmode = aue_miibus_readreg(dev, 0, 0x1b); + aue_miibus_writereg(dev, 0, 0x1b, auxmode | 0x04); } - if (do_unlock) { - mtx_unlock(&sc->sc_mtx); - } + if (!locked) + AUE_UNLOCK(sc); } +#define AUE_BITS 6 static void -aue_cfg_setmulti(struct aue_softc *sc, - struct usb2_config_td_cc *cc, uint16_t refcount) +aue_setmulti(struct usb2_ether *ue) { - uint16_t i; + struct aue_softc *sc = usb2_ether_getsc(ue); + struct ifnet *ifp = usb2_ether_getifp(ue); + struct ifmultiaddr *ifma; + uint32_t h = 0; + uint32_t i; + uint8_t hashtbl[8] = { 0, 0, 0, 0, 0, 0, 0, 0 }; + + AUE_LOCK_ASSERT(sc, MA_OWNED); - if ((cc->if_flags & IFF_ALLMULTI) || - (cc->if_flags & IFF_PROMISC)) { - AUE_CFG_SETBIT(sc, AUE_CTL0, AUE_CTL0_ALLMULTI); + if (ifp->if_flags & IFF_ALLMULTI || ifp->if_flags & IFF_PROMISC) { + AUE_SETBIT(sc, AUE_CTL0, AUE_CTL0_ALLMULTI); return; } - AUE_CFG_CLRBIT(sc, AUE_CTL0, AUE_CTL0_ALLMULTI); - /* clear existing ones */ - for (i = 0; i < 8; i++) { - aue_cfg_csr_write_1(sc, AUE_MAR0 + i, 0); - } + AUE_CLRBIT(sc, AUE_CTL0, AUE_CTL0_ALLMULTI); /* now program new ones */ - for (i = 0; i < 8; i++) { - aue_cfg_csr_write_1(sc, AUE_MAR0 + i, cc->if_hash[i]); + IF_ADDR_LOCK(ifp); + TAILQ_FOREACH(ifma, &ifp->if_multiaddrs, ifma_link) { + if (ifma->ifma_addr->sa_family != AF_LINK) + continue; + h = ether_crc32_le(LLADDR((struct sockaddr_dl *) + ifma->ifma_addr), ETHER_ADDR_LEN) & ((1 << AUE_BITS) - 1); + hashtbl[(h >> 3)] |= 1 << (h & 0x7); } + IF_ADDR_UNLOCK(ifp); + + /* write the hashtable */ + for (i = 0; i != 8; i++) + aue_csr_write_1(sc, AUE_MAR0 + i, hashtbl[i]); } static void -aue_cfg_reset_pegasus_II(struct aue_softc *sc) +aue_reset_pegasus_II(struct aue_softc *sc) { /* Magic constants taken from Linux driver. */ - aue_cfg_csr_write_1(sc, AUE_REG_1D, 0); - aue_cfg_csr_write_1(sc, AUE_REG_7B, 2); + aue_csr_write_1(sc, AUE_REG_1D, 0); + aue_csr_write_1(sc, AUE_REG_7B, 2); #if 0 if ((sc->sc_flags & HAS_HOME_PNA) && mii_mode) - aue_cfg_csr_write_1(sc, AUE_REG_81, 6); + aue_csr_write_1(sc, AUE_REG_81, 6); else #endif - aue_cfg_csr_write_1(sc, AUE_REG_81, 2); + aue_csr_write_1(sc, AUE_REG_81, 2); } static void -aue_cfg_reset(struct aue_softc *sc) +aue_reset(struct aue_softc *sc) { - uint16_t i; + int i; - AUE_CFG_SETBIT(sc, AUE_CTL1, AUE_CTL1_RESETMAC); + AUE_SETBIT(sc, AUE_CTL1, AUE_CTL1_RESETMAC); - for (i = 0;; i++) { - - if (i < AUE_TIMEOUT) { - - if (!(aue_cfg_csr_read_1(sc, AUE_CTL1) & AUE_CTL1_RESETMAC)) { - break; - } - if (usb2_config_td_sleep(&sc->sc_config_td, hz / 100)) { - break; - } - } else { - DPRINTF("reset timed out\n"); + for (i = 0; i != AUE_TIMEOUT; i++) { + if (!(aue_csr_read_1(sc, AUE_CTL1) & AUE_CTL1_RESETMAC)) break; - } } + if (i == AUE_TIMEOUT) + device_printf(sc->sc_ue.ue_dev, "reset failed\n"); + /* * The PHY(s) attached to the Pegasus chip may be held * in reset until we flip on the GPIO outputs. Make sure @@ -689,24 +622,32 @@ * Note: We force all of the GPIO pins low first, *then* * enable the ones we want. */ - aue_cfg_csr_write_1(sc, AUE_GPIO0, (AUE_GPIO_OUT0 | AUE_GPIO_SEL0)); - aue_cfg_csr_write_1(sc, AUE_GPIO0, (AUE_GPIO_OUT0 | AUE_GPIO_SEL0 | - AUE_GPIO_SEL1)); + aue_csr_write_1(sc, AUE_GPIO0, AUE_GPIO_OUT0|AUE_GPIO_SEL0); + aue_csr_write_1(sc, AUE_GPIO0, AUE_GPIO_OUT0|AUE_GPIO_SEL0|AUE_GPIO_SEL1); if (sc->sc_flags & AUE_FLAG_LSYS) { /* Grrr. LinkSys has to be different from everyone else. */ - aue_cfg_csr_write_1(sc, AUE_GPIO0, - (AUE_GPIO_SEL0 | AUE_GPIO_SEL1)); - aue_cfg_csr_write_1(sc, AUE_GPIO0, - (AUE_GPIO_SEL0 | - AUE_GPIO_SEL1 | - AUE_GPIO_OUT0)); + aue_csr_write_1(sc, AUE_GPIO0, AUE_GPIO_SEL0|AUE_GPIO_SEL1); + aue_csr_write_1(sc, AUE_GPIO0, + AUE_GPIO_SEL0|AUE_GPIO_SEL1|AUE_GPIO_OUT0); } - if (sc->sc_flags & AUE_FLAG_PII) { - aue_cfg_reset_pegasus_II(sc); - } - /* wait a little while for the chip to get its brains in order: */ - usb2_config_td_sleep(&sc->sc_config_td, hz / 100); + if (sc->sc_flags & AUE_FLAG_PII) + aue_reset_pegasus_II(sc); + + /* Wait a little while for the chip to get its brains in order: */ + usb2_pause_mtx(&sc->sc_mtx, hz / 100); +} + +static void +aue_attach_post(struct usb2_ether *ue) +{ + struct aue_softc *sc = usb2_ether_getsc(ue); + + /* reset the adapter */ + aue_reset(sc); + + /* get station address from the EEPROM */ + aue_read_eeprom(sc, ue->ue_eaddr, 0, 3); } /* @@ -717,26 +658,22 @@ { struct usb2_attach_arg *uaa = device_get_ivars(dev); - if (uaa->usb2_mode != USB_MODE_HOST) { + if (uaa->usb2_mode != USB_MODE_HOST) return (ENXIO); - } - if (uaa->info.bConfigIndex != AUE_CONFIG_INDEX) { + if (uaa->info.bConfigIndex != AUE_CONFIG_INDEX) return (ENXIO); - } - if (uaa->info.bIfaceIndex != AUE_IFACE_IDX) { + if (uaa->info.bIfaceIndex != AUE_IFACE_IDX) return (ENXIO); - } /* - * Belkin USB Bluetooth dongles of the F8T012xx1 model series - * conflict with older Belkin USB2LAN adapters. Skip if_aue if - * we detect one of the devices that look like Bluetooth - * adapters. + * Belkin USB Bluetooth dongles of the F8T012xx1 model series conflict + * with older Belkin USB2LAN adapters. Skip if_aue if we detect one of + * the devices that look like Bluetooth adapters. */ - if ((uaa->info.idVendor == USB_VENDOR_BELKIN) && - (uaa->info.idProduct == USB_PRODUCT_BELKIN_F8T012) && - (uaa->info.bcdDevice == 0x0413)) { + if (uaa->info.idVendor == USB_VENDOR_BELKIN && + uaa->info.idProduct == USB_PRODUCT_BELKIN_F8T012 && + uaa->info.bcdDevice == 0x0413) return (ENXIO); - } + return (usb2_lookup_id_by_uaa(aue_devs, sizeof(aue_devs), uaa)); } @@ -749,53 +686,40 @@ { struct usb2_attach_arg *uaa = device_get_ivars(dev); struct aue_softc *sc = device_get_softc(dev); - int32_t error; + struct usb2_ether *ue = &sc->sc_ue; uint8_t iface_index; + int error; - sc->sc_udev = uaa->device; - sc->sc_dev = dev; - sc->sc_unit = device_get_unit(dev); sc->sc_flags = USB_GET_DRIVER_INFO(uaa); if (uaa->info.bcdDevice >= 0x0201) { - sc->sc_flags |= AUE_FLAG_VER_2; /* XXX currently undocumented */ + /* XXX currently undocumented */ + sc->sc_flags |= AUE_FLAG_VER_2; } + device_set_usb2_desc(dev); + mtx_init(&sc->sc_mtx, device_get_nameunit(dev), NULL, MTX_DEF); - snprintf(sc->sc_name, sizeof(sc->sc_name), "%s", - device_get_nameunit(dev)); - >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Tue Feb 3 19:40:03 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 5BBA21065673; Tue, 3 Feb 2009 19:40:03 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 1DB10106566B for ; Tue, 3 Feb 2009 19:40:03 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 0BA9D8FC17 for ; Tue, 3 Feb 2009 19:40:03 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n13Je2Lg067655 for ; Tue, 3 Feb 2009 19:40:02 GMT (envelope-from hselasky@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n13Je2Cn067653 for perforce@freebsd.org; Tue, 3 Feb 2009 19:40:02 GMT (envelope-from hselasky@FreeBSD.org) Date: Tue, 3 Feb 2009 19:40:02 GMT Message-Id: <200902031940.n13Je2Cn067653@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky To: Perforce Change Reviews Cc: Subject: PERFORCE change 157103 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 03 Feb 2009 19:40:04 -0000 http://perforce.freebsd.org/chv.cgi?CH=157103 Change 157103 by hselasky@hselasky_laptop001 on 2009/02/03 19:39:10 Fix a compilation issue when INVARIANTS is enabled. Move some code around so that the softc pointer is always used and we don't get a variable not used compilation warning. Affected files ... .. //depot/projects/usb/src/sys/dev/usb2/ethernet/if_cdce2.c#18 edit Differences ... ==== //depot/projects/usb/src/sys/dev/usb2/ethernet/if_cdce2.c#18 (text+ko) ==== @@ -419,7 +419,6 @@ */ usb2_transfer_start(sc->sc_xfer[CDCE_BULK_B]); usb2_transfer_start(sc->sc_xfer[CDCE_BULK_A]); - usb2_transfer_start(sc->sc_xfer[CDCE_INTR]); } static void @@ -551,12 +550,18 @@ static void cdce_init(struct usb2_ether *ue) { + struct cdce_softc *sc = usb2_ether_getsc(ue); struct ifnet *ifp = usb2_ether_getifp(ue); CDCE_LOCK_ASSERT(sc, MA_OWNED); ifp->if_drv_flags |= IFF_DRV_RUNNING; + + /* + * start all the transfers + */ cdce_start(ue); + usb2_transfer_start(sc->sc_xfer[CDCE_INTR]); } static void From owner-p4-projects@FreeBSD.ORG Tue Feb 3 21:32:59 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id C73C01065673; Tue, 3 Feb 2009 21:32:58 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 81BB4106566C for ; Tue, 3 Feb 2009 21:32:58 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 6DA938FC18 for ; Tue, 3 Feb 2009 21:32:58 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n13LWwuk087841 for ; Tue, 3 Feb 2009 21:32:58 GMT (envelope-from hselasky@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n13LWwvm087839 for perforce@freebsd.org; Tue, 3 Feb 2009 21:32:58 GMT (envelope-from hselasky@FreeBSD.org) Date: Tue, 3 Feb 2009 21:32:58 GMT Message-Id: <200902032132.n13LWwvm087839@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky To: Perforce Change Reviews Cc: Subject: PERFORCE change 157112 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 03 Feb 2009 21:33:00 -0000 http://perforce.freebsd.org/chv.cgi?CH=157112 Change 157112 by hselasky@hselasky_laptop001 on 2009/02/03 21:32:50 Fix regressions after patch from Andrew Thompson in the USB ethernet drivers. Affected files ... .. //depot/projects/usb/src/sys/dev/usb2/ethernet/if_aue2.c#20 edit .. //depot/projects/usb/src/sys/dev/usb2/ethernet/if_axe2.c#20 edit .. //depot/projects/usb/src/sys/dev/usb2/ethernet/if_cue2.c#19 edit .. //depot/projects/usb/src/sys/dev/usb2/ethernet/if_kue2.c#19 edit .. //depot/projects/usb/src/sys/dev/usb2/ethernet/if_rue2.c#19 edit .. //depot/projects/usb/src/sys/dev/usb2/ethernet/if_udav2.c#19 edit .. //depot/projects/usb/src/sys/dev/usb2/ethernet/usb2_ethernet.c#8 edit .. //depot/projects/usb/src/sys/dev/usb2/ethernet/usb2_ethernet.h#8 edit Differences ... ==== //depot/projects/usb/src/sys/dev/usb2/ethernet/if_aue2.c#20 (text+ko) ==== @@ -410,6 +410,8 @@ for (i = 0; i != AUE_TIMEOUT; i++) { if (aue_csr_read_1(sc, AUE_EE_CTL) & AUE_EECTL_DONE) break; + if (usb2_ether_pause(&sc->sc_ue, hz / 100)) + break; } if (i == AUE_TIMEOUT) @@ -465,6 +467,8 @@ for (i = 0; i != AUE_TIMEOUT; i++) { if (aue_csr_read_1(sc, AUE_PHY_CTL) & AUE_PHYCTL_DONE) break; + if (usb2_ether_pause(&sc->sc_ue, hz / 100)) + break; } if (i == AUE_TIMEOUT) @@ -499,6 +503,8 @@ for (i = 0; i != AUE_TIMEOUT; i++) { if (aue_csr_read_1(sc, AUE_PHY_CTL) & AUE_PHYCTL_DONE) break; + if (usb2_ether_pause(&sc->sc_ue, hz / 100)) + break; } if (i == AUE_TIMEOUT) @@ -608,6 +614,8 @@ for (i = 0; i != AUE_TIMEOUT; i++) { if (!(aue_csr_read_1(sc, AUE_CTL1) & AUE_CTL1_RESETMAC)) break; + if (usb2_ether_pause(&sc->sc_ue, hz / 100)) + break; } if (i == AUE_TIMEOUT) @@ -635,7 +643,7 @@ aue_reset_pegasus_II(sc); /* Wait a little while for the chip to get its brains in order: */ - usb2_pause_mtx(&sc->sc_mtx, hz / 100); + usb2_ether_pause(&sc->sc_ue, hz / 100); } static void ==== //depot/projects/usb/src/sys/dev/usb2/ethernet/if_axe2.c#20 (text+ko) ==== @@ -357,7 +357,7 @@ val = htole16(val); if (sc->sc_phyno != phy) - return (val); + return (0); locked = mtx_owned(&sc->sc_mtx); if (!locked) @@ -530,35 +530,35 @@ } axe_cmd(sc, AXE_CMD_WRITE_GPIO, 0, 0x008c, NULL); - usb2_pause_mtx(&sc->sc_mtx, hz / 16); + usb2_ether_pause(&sc->sc_ue, hz / 16); if ((eeprom >> 8) != 0x01) { axe_cmd(sc, AXE_CMD_WRITE_GPIO, 0, 0x003c, NULL); - usb2_pause_mtx(&sc->sc_mtx, hz / 32); + usb2_ether_pause(&sc->sc_ue, hz / 32); axe_cmd(sc, AXE_CMD_WRITE_GPIO, 0, 0x001c, NULL); - usb2_pause_mtx(&sc->sc_mtx, hz / 3); + usb2_ether_pause(&sc->sc_ue, hz / 3); axe_cmd(sc, AXE_CMD_WRITE_GPIO, 0, 0x003c, NULL); - usb2_pause_mtx(&sc->sc_mtx, hz / 32); + usb2_ether_pause(&sc->sc_ue, hz / 32); } else { axe_cmd(sc, AXE_CMD_WRITE_GPIO, 0, 0x0004, NULL); - usb2_pause_mtx(&sc->sc_mtx, hz / 32); + usb2_ether_pause(&sc->sc_ue, hz / 32); axe_cmd(sc, AXE_CMD_WRITE_GPIO, 0, 0x000c, NULL); - usb2_pause_mtx(&sc->sc_mtx, hz / 32); + usb2_ether_pause(&sc->sc_ue, hz / 32); } /* soft reset */ axe_cmd(sc, AXE_CMD_SW_RESET_REG, 0, AXE_SW_RESET_CLEAR, NULL); - usb2_pause_mtx(&sc->sc_mtx, hz / 4); + usb2_ether_pause(&sc->sc_ue, hz / 4); axe_cmd(sc, AXE_CMD_SW_RESET_REG, 0, AXE_SW_RESET_PRL | AXE_178_RESET_MAGIC, NULL); - usb2_pause_mtx(&sc->sc_mtx, hz / 4); + usb2_ether_pause(&sc->sc_ue, hz / 4); /* Enable MII/GMII/RGMII interface to work with external PHY. */ axe_cmd(sc, AXE_CMD_SW_PHY_SELECT, 0, 0, NULL); - usb2_pause_mtx(&sc->sc_mtx, hz / 4); + usb2_ether_pause(&sc->sc_ue, hz / 4); axe_cmd(sc, AXE_CMD_RXCTL_WRITE, 0, 0, NULL); } @@ -567,22 +567,22 @@ axe_ax88772_init(struct axe_softc *sc) { axe_cmd(sc, AXE_CMD_WRITE_GPIO, 0, 0x00b0, NULL); - usb2_pause_mtx(&sc->sc_mtx, hz / 16); + usb2_ether_pause(&sc->sc_ue, hz / 16); if (sc->sc_phyno == AXE_772_PHY_NO_EPHY) { /* ask for the embedded PHY */ axe_cmd(sc, AXE_CMD_SW_PHY_SELECT, 0, 0x01, NULL); - usb2_pause_mtx(&sc->sc_mtx, hz / 64); + usb2_ether_pause(&sc->sc_ue, hz / 64); /* power down and reset state, pin reset state */ axe_cmd(sc, AXE_CMD_SW_RESET_REG, 0, AXE_SW_RESET_CLEAR, NULL); - usb2_pause_mtx(&sc->sc_mtx, hz / 16); + usb2_ether_pause(&sc->sc_ue, hz / 16); /* power down/reset state, pin operating state */ axe_cmd(sc, AXE_CMD_SW_RESET_REG, 0, AXE_SW_RESET_IPPD | AXE_SW_RESET_PRL, NULL); - usb2_pause_mtx(&sc->sc_mtx, hz / 4); + usb2_ether_pause(&sc->sc_ue, hz / 4); /* power up, reset */ axe_cmd(sc, AXE_CMD_SW_RESET_REG, 0, AXE_SW_RESET_PRL, NULL); @@ -593,14 +593,14 @@ } else { /* ask for external PHY */ axe_cmd(sc, AXE_CMD_SW_PHY_SELECT, 0, 0x00, NULL); - usb2_pause_mtx(&sc->sc_mtx, hz / 64); + usb2_ether_pause(&sc->sc_ue, hz / 64); /* power down internal PHY */ axe_cmd(sc, AXE_CMD_SW_RESET_REG, 0, AXE_SW_RESET_IPPD | AXE_SW_RESET_PRL, NULL); } - usb2_pause_mtx(&sc->sc_mtx, hz / 4); + usb2_ether_pause(&sc->sc_ue, hz / 4); axe_cmd(sc, AXE_CMD_RXCTL_WRITE, 0, 0, NULL); } @@ -618,7 +618,7 @@ DPRINTF("reset failed (ignored)\n"); /* Wait a little while for the chip to get its brains in order. */ - usb2_pause_mtx(&sc->sc_mtx, hz / 100); + usb2_ether_pause(&sc->sc_ue, hz / 100); } static void ==== //depot/projects/usb/src/sys/dev/usb2/ethernet/if_cue2.c#19 (text+ko) ==== @@ -370,7 +370,7 @@ /* * wait a little while for the chip to get its brains in order: */ - usb2_pause_mtx(&sc->sc_mtx, hz / 100); + usb2_ether_pause(&sc->sc_ue, hz / 100); } static void ==== //depot/projects/usb/src/sys/dev/usb2/ethernet/if_kue2.c#19 (text+ko) ==== @@ -427,7 +427,7 @@ DPRINTF("reset failed (ignored)\n"); /* wait a little while for the chip to get its brains in order */ - usb2_pause_mtx(&sc->sc_mtx, hz / 100); + usb2_ether_pause(&sc->sc_ue, hz / 100); } static void ==== //depot/projects/usb/src/sys/dev/usb2/ethernet/if_rue2.c#19 (text+ko) ==== @@ -553,14 +553,15 @@ rue_csr_write_1(sc, RUE_CR, RUE_CR_SOFT_RST); for (i = 0; i != RUE_TIMEOUT; i++) { - usb2_pause_mtx(&sc->sc_mtx, hz / 1000); + if (usb2_ether_pause(&sc->sc_ue, hz / 1000)) + break; if (!(rue_csr_read_1(sc, RUE_CR) & RUE_CR_SOFT_RST)) break; } if (i == RUE_TIMEOUT) device_printf(sc->sc_ue.ue_dev, "reset never completed!\n"); - usb2_pause_mtx(&sc->sc_mtx, hz / 100); + usb2_ether_pause(&sc->sc_ue, hz / 100); } static void ==== //depot/projects/usb/src/sys/dev/usb2/ethernet/if_udav2.c#19 (text+ko) ==== @@ -488,10 +488,11 @@ for (i = 0; i < UDAV_TX_TIMEOUT; i++) { if (!(udav_csr_read1(sc, UDAV_NCR) & UDAV_NCR_RST)) break; - usb2_pause_mtx(&sc->sc_mtx, hz / 100); + if (usb2_ether_pause(&sc->sc_ue, hz / 100)) + break; } - usb2_pause_mtx(&sc->sc_mtx, hz / 100); + usb2_ether_pause(&sc->sc_ue, hz / 100); } #define UDAV_BITS 6 ==== //depot/projects/usb/src/sys/dev/usb2/ethernet/usb2_ethernet.c#8 (text+ko) ==== @@ -33,6 +33,7 @@ #include #include #include +#include #include @@ -57,8 +58,24 @@ static int ue_ifmedia_upd(struct ifnet *); static void ue_watchdog(void *); +/* + * Return values: + * 0: success + * Else: device has been detached + */ +uint8_t +usb2_ether_pause(struct usb2_ether *ue, unsigned int _ticks) +{ + if (usb2_proc_is_gone(&ue->ue_tq)) { + /* nothing to do */ + return (1); + } + usb2_pause_mtx(ue->ue_mtx, _ticks); + return (0); +} + static void -usb2_ether_queue_command(struct usb2_ether *ue, +ue_queue_command(struct usb2_ether *ue, usb2_proc_callback_t *fn, struct usb2_proc_msg *t0, struct usb2_proc_msg *t1) { @@ -136,9 +153,11 @@ } /* fork rest of the attach code */ - usb2_ether_queue_command(ue, ue_attach_post_task, + UE_LOCK(ue); + ue_queue_command(ue, ue_attach_post_task, &ue->ue_attach_task[0].hdr, &ue->ue_attach_task[1].hdr); + UE_UNLOCK(ue); error: return (error); @@ -154,6 +173,9 @@ int error; char num[14]; /* sufficient for 32 bits */ + /* first call driver's post attach routine */ + ue->ue_methods->ue_attach_post(ue); + UE_UNLOCK(ue); ue->ue_unit = alloc_unr(ueunit); @@ -183,8 +205,10 @@ if (ue->ue_methods->ue_mii_upd != NULL && ue->ue_methods->ue_mii_sts != NULL) { + mtx_lock(&Giant); /* device_xxx() depends on this */ error = mii_phy_probe(ue->ue_dev, &ue->ue_miibus, ue_ifmedia_upd, ue->ue_methods->ue_mii_sts); + mtx_unlock(&Giant); if (error) { device_printf(ue->ue_dev, "MII without any PHY\n"); goto error; @@ -208,7 +232,6 @@ error: free_unr(ueunit, ue->ue_unit); - usb2_proc_free(&ue->ue_tq); if (ue->ue_ifp != NULL) { if_free(ue->ue_ifp); ue->ue_ifp = NULL; @@ -239,8 +262,11 @@ usb2_callout_drain(&ue->ue_watchdog); /* detach miibus */ - if (ue->ue_miibus != NULL) + if (ue->ue_miibus != NULL) { + mtx_lock(&Giant); /* device_xxx() depends on this */ device_delete_child(ue->ue_dev, ue->ue_miibus); + mtx_unlock(&Giant); + } /* detach ethernet */ ether_ifdetach(ifp); @@ -273,7 +299,7 @@ UE_LOCK(ue); if (ifp->if_drv_flags & IFF_DRV_RUNNING) - usb2_ether_queue_command(ue, ue_stop_task, + ue_queue_command(ue, ue_stop_task, &ue->ue_start_stop_task[0].hdr, &ue->ue_start_stop_task[1].hdr); UE_UNLOCK(ue); @@ -317,7 +343,7 @@ struct usb2_ether *ue = arg; UE_LOCK(ue); - usb2_ether_queue_command(ue, ue_start_task, + ue_queue_command(ue, ue_start_task, &ue->ue_start_stop_task[0].hdr, &ue->ue_start_stop_task[1].hdr); UE_UNLOCK(ue); @@ -395,9 +421,11 @@ struct usb2_ether *ue = ifp->if_softc; /* Defer to process context */ - usb2_ether_queue_command(ue, ue_ifmedia_task, + UE_LOCK(ue); + ue_queue_command(ue, ue_ifmedia_task, &ue->ue_media_task[0].hdr, &ue->ue_media_task[1].hdr); + UE_UNLOCK(ue); return (0); } @@ -422,7 +450,7 @@ if ((ifp->if_drv_flags & IFF_DRV_RUNNING) == 0) return; - usb2_ether_queue_command(ue, ue_tick_task, + ue_queue_command(ue, ue_tick_task, &ue->ue_tick_task[0].hdr, &ue->ue_tick_task[1].hdr); @@ -456,15 +484,15 @@ UE_LOCK(ue); if (ifp->if_flags & IFF_UP) { if (ifp->if_drv_flags & IFF_DRV_RUNNING) - usb2_ether_queue_command(ue, ue_promisc_task, + ue_queue_command(ue, ue_promisc_task, &ue->ue_promisc_task[0].hdr, &ue->ue_promisc_task[1].hdr); else - usb2_ether_queue_command(ue, ue_start_task, + ue_queue_command(ue, ue_start_task, &ue->ue_start_stop_task[0].hdr, &ue->ue_start_stop_task[1].hdr); } else { - usb2_ether_queue_command(ue, ue_stop_task, + ue_queue_command(ue, ue_stop_task, &ue->ue_start_stop_task[0].hdr, &ue->ue_start_stop_task[1].hdr); } @@ -473,7 +501,7 @@ case SIOCADDMULTI: case SIOCDELMULTI: UE_LOCK(ue); - usb2_ether_queue_command(ue, ue_setmulti_task, + ue_queue_command(ue, ue_setmulti_task, &ue->ue_multi_task[0].hdr, &ue->ue_multi_task[1].hdr); UE_UNLOCK(ue); ==== //depot/projects/usb/src/sys/dev/usb2/ethernet/usb2_ethernet.h#8 (text+ko) ==== @@ -102,6 +102,7 @@ uint8_t ue_eaddr[ETHER_ADDR_LEN]; }; +uint8_t usb2_ether_pause(struct usb2_ether *, unsigned int); usb2_error_t usb2_ether_do_request(struct usb2_ether *, struct usb2_device_request *, void *, unsigned int timeout); @@ -111,10 +112,11 @@ int usb2_ether_ifattach(struct usb2_ether *); void usb2_ether_ifdetach(struct usb2_ether *); int usb2_ether_ioctl(struct ifnet *, u_long, caddr_t); -int usb2_ether_rxmbuf(struct usb2_ether *ue, struct mbuf *m, - unsigned int len); -int usb2_ether_rxbuf(struct usb2_ether *ue, struct usb2_page_cache *pc, - unsigned int offset, unsigned int len); +int usb2_ether_rxmbuf(struct usb2_ether *, struct mbuf *, + unsigned int); +int usb2_ether_rxbuf(struct usb2_ether *, + struct usb2_page_cache *, + unsigned int, unsigned int); void usb2_ether_rxflush(struct usb2_ether *); void usb2_ether_ifshutdown(struct usb2_ether *); uint8_t usb2_ether_is_gone(struct usb2_ether *); From owner-p4-projects@FreeBSD.ORG Tue Feb 3 21:41:14 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 6B4571065679; Tue, 3 Feb 2009 21:41:14 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 11AD5106566C for ; Tue, 3 Feb 2009 21:41:14 +0000 (UTC) (envelope-from marius@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id F329C8FC1C for ; Tue, 3 Feb 2009 21:41:13 +0000 (UTC) (envelope-from marius@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n13LfD7l088592 for ; Tue, 3 Feb 2009 21:41:13 GMT (envelope-from marius@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n13LfD1w088590 for perforce@freebsd.org; Tue, 3 Feb 2009 21:41:13 GMT (envelope-from marius@freebsd.org) Date: Tue, 3 Feb 2009 21:41:13 GMT Message-Id: <200902032141.n13LfD1w088590@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to marius@freebsd.org using -f From: Marius Strobl To: Perforce Change Reviews Cc: Subject: PERFORCE change 157114 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 03 Feb 2009 21:41:16 -0000 http://perforce.freebsd.org/chv.cgi?CH=157114 Change 157114 by marius@flak on 2009/02/03 21:40:36 Add glue for FreeBSD < 800016. Affected files ... .. //depot/projects/usiii/dev/cas/if_cas.c#2 edit .. //depot/projects/usiii/dev/cas/if_casvar.h#2 edit Differences ... ==== //depot/projects/usiii/dev/cas/if_cas.c#2 (text+ko) ==== @@ -812,8 +812,8 @@ sc->sc_rxcptr = 0; /* - * Initialize the receive descriptor rings. We leave the - * the second ring zeroed as we don't actually use it. + * Initialize the first receive descriptor ring. We leave + * the second one zeroed as we don't actually use it. */ for (i = 0; i < CAS_NRXDESC; i++) CAS_INIT_RXDESC(sc, i, i); @@ -1620,8 +1620,13 @@ refcount_acquire(&rxds->rxds_refcount); MEXTADD(m, (caddr_t)rxds->rxds_buf + CAS_GET(word2, CAS_RC2_HDR_OFF) * 256 + - ETHER_ALIGN, len, cas_free, sc, - (void *)(uintptr_t)idx, 0, EXT_NET_DRV); + ETHER_ALIGN, len, cas_free, +#if __FreeBSD_version < 800016 + rxds, +#else + sc, (void *)(uintptr_t)idx, +#endif + 0, EXT_NET_DRV); if ((m->m_flags & M_EXT) == 0) { m_freem(m); m = NULL; @@ -1663,8 +1668,13 @@ refcount_acquire(&rxds->rxds_refcount); MEXTADD(m, (caddr_t)rxds->rxds_buf + CAS_GET(word1, CAS_RC1_DATA_OFF) + - ETHER_ALIGN, len, cas_free, sc, - (void *)(uintptr_t)idx, 0, EXT_NET_DRV); + ETHER_ALIGN, len, cas_free, +#if __FreeBSD_version < 800016 + rxds, +#else + sc, (void *)(uintptr_t)idx, +#endif + 0, EXT_NET_DRV); if ((m->m_flags & M_EXT) == 0) { m_freem(m); m = NULL; @@ -1719,10 +1729,18 @@ cas_free(void *arg1, void *arg2) { struct cas_rxdsoft *rxds; - struct cas_softc *sc = arg1; - u_int idx = (uintptr_t)arg2; + struct cas_softc *sc; + u_int idx; +#if __FreeBSD_version < 800016 + rxds = arg2; + sc = rxds->rxds_sc; + idx = rxds->rxds_idx; +#else + sc = arg1; + idx = (uintptr_t)arg2; rxds = &sc->sc_rxdsoft[idx]; +#endif if (refcount_release(&rxds->rxds_refcount) == 0) return; @@ -1735,7 +1753,7 @@ cas_add_rxdesc(struct cas_softc *sc, u_int idx) { - CAS_INIT_RXDESC(sc, sc->sc_rxdptr, idx); + CAS_UPDATE_RXDESC(sc, sc->sc_rxdptr, idx); /* * Update the RX kick register. This register has to point to the ==== //depot/projects/usiii/dev/cas/if_casvar.h#2 (text+ko) ==== @@ -33,10 +33,6 @@ #ifndef _IF_CASVAR_H #define _IF_CASVAR_H -#include -#include -#include - /* * The page size is configurable, but needs to be at least 8k (the * default) in order to also support jumbo buffers. @@ -129,6 +125,10 @@ void *rxds_buf; /* receive buffer */ bus_dmamap_t rxds_dmamap; /* our DMA map */ bus_addr_t rxds_paddr; /* physical address of the segment */ +#if __FreeBSD_version < 800016 + struct cas_softc *rxds_sc; /* softc pointer */ + u_int rxds_idx; /* our index */ +#endif u_int rxds_refcount; /* hardware + mbuf references */ }; @@ -195,8 +195,8 @@ u_int sc_txnext; /* next ready TX descriptor */ u_int sc_txwin; /* TX desc. since last TX intr. */ - struct cas_txsq sc_txfreeq; /* free TX descsofts */ - struct cas_txsq sc_txdirtyq; /* dirty TX descsofts */ + struct cas_txsq sc_txfreeq; /* free software TX descriptors */ + struct cas_txsq sc_txdirtyq; /* dirty software TX descriptors */ u_int sc_rxcptr; /* next ready RX completion */ u_int sc_rxdptr; /* next ready RX descriptor */ @@ -228,18 +228,33 @@ #define CAS_CDSYNC(sc, ops) \ bus_dmamap_sync((sc)->sc_cdmatag, (sc)->sc_cddmamap, (ops)); +#define __CAS_UPDATE_RXDESC(rxd, rxds, s) \ +do { \ + \ + refcount_init(&(rxds)->rxds_refcount, 1); \ + (rxd)->cd_buf_ptr = htole64((rxds)->rxds_paddr); \ + KASSERT((s) < CAS_RD_BUF_INDEX_MASK >> CAS_RD_BUF_INDEX_SHFT, \ + ("%s: RX buffer index too large!", __func__)); \ + (rxd)->cd_flags = \ + htole64((uint64_t)((s) << CAS_RD_BUF_INDEX_SHFT)); \ +} while (0) + +#define CAS_UPDATE_RXDESC(sc, d, s) \ + __CAS_UPDATE_RXDESC(&(sc)->sc_rxdescs[(d)], \ + &(sc)->sc_rxdsoft[(s)], (s)) + +#if __FreeBSD_version < 800016 #define CAS_INIT_RXDESC(sc, d, s) \ do { \ - struct cas_rxdsoft *__rxds = &sc->sc_rxdsoft[(s)]; \ - struct cas_desc *__rxd = &sc->sc_rxdescs[(d)]; \ + struct cas_rxdsoft *__rxds = &(sc)->sc_rxdsoft[(s)]; \ \ - refcount_init(&__rxds->rxds_refcount, 1); \ - __rxd->cd_buf_ptr = htole64(__rxds->rxds_paddr); \ - KASSERT(s < CAS_RD_BUF_INDEX_MASK >> CAS_RD_BUF_INDEX_SHFT, \ - ("%s: RX buffer index too large!", __func__)); \ - __rxd->cd_flags = \ - htole64((uint64_t)(s << CAS_RD_BUF_INDEX_SHFT)); \ + __rxds->rxds_sc = (sc); \ + __rxds->rxds_idx = (s); \ + __CAS_UPDATE_RXDESC(&(sc)->sc_rxdescs[(d)], __rxds, (s)); \ } while (0) +#else +#define CAS_INIT_RXDESC(sc, d, s) CAS_UPDATE_RXDESC(sc, d, s) +#endif #define CAS_LOCK_INIT(_sc, _name) \ mtx_init(&(_sc)->sc_mtx, _name, MTX_NETWORK_LOCK, MTX_DEF) From owner-p4-projects@FreeBSD.ORG Tue Feb 3 22:37:11 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id AFA421065676; Tue, 3 Feb 2009 22:37:11 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 6EE45106566C for ; Tue, 3 Feb 2009 22:37:11 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 40E968FC0A for ; Tue, 3 Feb 2009 22:37:11 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n13MbBqx094401 for ; Tue, 3 Feb 2009 22:37:11 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n13MbB2g094399 for perforce@freebsd.org; Tue, 3 Feb 2009 22:37:11 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Tue, 3 Feb 2009 22:37:11 GMT Message-Id: <200902032237.n13MbB2g094399@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to bb+lists.freebsd.perforce@cyrus.watson.org using -f From: Robert Watson To: Perforce Change Reviews Cc: Subject: PERFORCE change 157118 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 03 Feb 2009 22:37:12 -0000 http://perforce.freebsd.org/chv.cgi?CH=157118 Change 157118 by rwatson@rwatson_freebsd_capabilities on 2009/02/03 22:36:26 When running in capability mode, expose the __progname and environ symbols from rtld to the executing shared object, since we aren't using crt1.o for those objects. Affected files ... .. //depot/projects/trustedbsd/capabilities/src/libexec/rtld-elf-cap/Makefile#10 edit .. //depot/projects/trustedbsd/capabilities/src/libexec/rtld-elf-cap/Symbol.map#1 add .. //depot/projects/trustedbsd/capabilities/src/libexec/rtld-elf/rtld.c#7 edit Differences ... ==== //depot/projects/trustedbsd/capabilities/src/libexec/rtld-elf-cap/Makefile#10 (text+ko) ==== @@ -1,5 +1,5 @@ # $FreeBSD$ -# $P4: //depot/projects/trustedbsd/capabilities/src/libexec/rtld-elf-cap/Makefile#9 $ +# $P4: //depot/projects/trustedbsd/capabilities/src/libexec/rtld-elf-cap/Makefile#10 $ WITHOUT_SSP= @@ -29,7 +29,7 @@ .if ${MK_SYMVER} == "yes" LIBCDIR= ${.CURDIR}/../../lib/libc VERSION_DEF= ${LIBCDIR}/Versions.def -SYMBOL_MAPS= ${.CURDIR}/../rtld-elf/Symbol.map +SYMBOL_MAPS= ${.CURDIR}/../rtld-elf/Symbol.map ${.CURDIR}/Symbol.map VERSION_MAP= Version.map LDFLAGS+= -Wl,--version-script=${VERSION_MAP} ==== //depot/projects/trustedbsd/capabilities/src/libexec/rtld-elf/rtld.c#7 (text+ko) ==== @@ -184,6 +184,13 @@ #endif /* + * Global declarations normally provided by crt1. The dynamic linker is + * not built with crt1, so we have to provide them ourselves. + */ +char *__progname; +char **environ; + +/* * These are the functions the dynamic linker exports to application * programs. They are the only symbols the dynamic linker is willing * to export from itself. @@ -208,17 +215,14 @@ (func_ptr_type) &dl_iterate_phdr, (func_ptr_type) &_rtld_atfork_pre, (func_ptr_type) &_rtld_atfork_post, +#ifdef IN_RTLD_CAP + (func_ptr_type) &environ, + (func_ptr_type) &__progname, +#endif NULL }; /* - * Global declarations normally provided by crt1. The dynamic linker is - * not built with crt1, so we have to provide them ourselves. - */ -char *__progname; -char **environ; - -/* * Globals to control TLS allocation. */ size_t tls_last_offset; /* Static TLS offset of last module */ From owner-p4-projects@FreeBSD.ORG Wed Feb 4 02:42:21 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 034C61065676; Wed, 4 Feb 2009 02:42:21 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id B113D106566C for ; Wed, 4 Feb 2009 02:42:20 +0000 (UTC) (envelope-from weongyo@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 844A08FC0C for ; Wed, 4 Feb 2009 02:42:20 +0000 (UTC) (envelope-from weongyo@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n142gKDA033349 for ; Wed, 4 Feb 2009 02:42:20 GMT (envelope-from weongyo@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n142gKZt033347 for perforce@freebsd.org; Wed, 4 Feb 2009 02:42:20 GMT (envelope-from weongyo@FreeBSD.org) Date: Wed, 4 Feb 2009 02:42:20 GMT Message-Id: <200902040242.n142gKZt033347@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to weongyo@FreeBSD.org using -f From: Weongyo Jeong To: Perforce Change Reviews Cc: Subject: PERFORCE change 157124 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 04 Feb 2009 02:42:22 -0000 http://perforce.freebsd.org/chv.cgi?CH=157124 Change 157124 by weongyo@weongyo_ws on 2009/02/04 02:41:35 don't need if_opackets++ at uath_raw_xmit() because the callback would update the value when the transmission completed. Affected files ... .. //depot/projects/vap/sys/dev/usb/if_uath.c#12 edit Differences ... ==== //depot/projects/vap/sys/dev/usb/if_uath.c#12 (text+ko) ==== @@ -2674,7 +2674,6 @@ } UATH_UNLOCK(sc); - ifp->if_opackets++; sc->sc_tx_timer = 5; return (0); } From owner-p4-projects@FreeBSD.ORG Wed Feb 4 02:57:27 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 057131065676; Wed, 4 Feb 2009 02:57:27 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id B6DFF106564A; Wed, 4 Feb 2009 02:57:26 +0000 (UTC) (envelope-from imp@bsdimp.com) Received: from harmony.bsdimp.com (bsdimp.com [199.45.160.85]) by mx1.freebsd.org (Postfix) with ESMTP id 60D8C8FC14; Wed, 4 Feb 2009 02:57:26 +0000 (UTC) (envelope-from imp@bsdimp.com) Received: from localhost (localhost [127.0.0.1]) by harmony.bsdimp.com (8.14.2/8.14.1) with ESMTP id n142uHWJ052487; Tue, 3 Feb 2009 19:56:17 -0700 (MST) (envelope-from imp@bsdimp.com) Date: Tue, 03 Feb 2009 19:56:43 -0700 (MST) Message-Id: <20090203.195643.-324790899.imp@bsdimp.com> To: andrew@freebsd.org From: "M. Warner Losh" In-Reply-To: <200901310425.n0V4Pbsb099265@repoman.freebsd.org> References: <200901310425.n0V4Pbsb099265@repoman.freebsd.org> X-Mailer: Mew version 5.2 on Emacs 21.3 / Mule 5.0 (SAKAKI) Mime-Version: 1.0 Content-Type: Text/Plain; charset=us-ascii Content-Transfer-Encoding: 7bit Cc: perforce@freebsd.org Subject: Re: PERFORCE change 156942 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 04 Feb 2009 02:57:28 -0000 In message: <200901310425.n0V4Pbsb099265@repoman.freebsd.org> Andrew Turner writes: : Get the S3c24x0 uart driver working on real hardware Cool! Warner From owner-p4-projects@FreeBSD.ORG Wed Feb 4 03:03:19 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 64D6F106567B; Wed, 4 Feb 2009 03:03:19 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 0CF20106566B; Wed, 4 Feb 2009 03:03:19 +0000 (UTC) (envelope-from imp@bsdimp.com) Received: from harmony.bsdimp.com (bsdimp.com [199.45.160.85]) by mx1.freebsd.org (Postfix) with ESMTP id BCB7D8FC18; Wed, 4 Feb 2009 03:03:18 +0000 (UTC) (envelope-from imp@bsdimp.com) Received: from localhost (localhost [127.0.0.1]) by harmony.bsdimp.com (8.14.2/8.14.1) with ESMTP id n1430PkM052537; Tue, 3 Feb 2009 20:00:26 -0700 (MST) (envelope-from imp@bsdimp.com) Date: Tue, 03 Feb 2009 20:00:51 -0700 (MST) Message-Id: <20090203.200051.-216598028.imp@bsdimp.com> To: antab@valka.is From: "M. Warner Losh" In-Reply-To: <2757071E-6E55-43F5-B298-408AFC6793C6@valka.is> References: <49850FB9.9040008@bluezbox.com> <200902011247.10404.hselasky@c2i.net> <2757071E-6E55-43F5-B298-408AFC6793C6@valka.is> X-Mailer: Mew version 5.2 on Emacs 21.3 / Mule 5.0 (SAKAKI) Mime-Version: 1.0 Content-Type: Text/Plain; charset=us-ascii Content-Transfer-Encoding: 7bit Cc: antab@FreeBSD.org, perforce@FreeBSD.org, gonzo@bluezbox.com, hselasky@c2i.net Subject: Re: PERFORCE change 156978 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 04 Feb 2009 03:03:20 -0000 In message: <2757071E-6E55-43F5-B298-408AFC6793C6@valka.is> Arnar Mar Sig writes: : On Feb 1, 2009, at 12:47 PM, Hans Petter Selasky wrote: : > On Sunday 01 February 2009, Oleksandr Tymoshenko wrote: : >> Arnar Mar Sig wrote: : >>> http://perforce.freebsd.org/chv.cgi?CH=156978 : >>> : >>> Change 156978 by antab@antab_farm on 2009/02/01 00:58:58 : >>> : >>> AVR32 support. The kernel boots on NGW100 but there is still alot : >>> of : >>> work to be done. At the moment it crashes somewhere in uma_startup3. : >> : >> That's just cool! :) Thanks a lot for your hard work. : > : > Just a small style nit: : > : > Use \t or TAB after "#define" instead of space. : Usually do, but some code is copied between terms and lost \t, coding : style is also not according style(9) but that will be fixes. : : > Looking forward to programming USB support for the AVR32. : Good, but i would like to get some clock framework in place before : doing any device driver, I really dislike the hardcoded clock speeds : that are used in in some at91 drivers. I'd love to see this to. They are only 'hard coded' in at91 drivers because of time pressures. Also, I'd move at91 devices to dev/atmel... warner From owner-p4-projects@FreeBSD.ORG Wed Feb 4 05:46:27 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 382C51065674; Wed, 4 Feb 2009 05:46:27 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id E12AC1065672 for ; Wed, 4 Feb 2009 05:46:26 +0000 (UTC) (envelope-from sson@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id CEAAF8FC1B for ; Wed, 4 Feb 2009 05:46:26 +0000 (UTC) (envelope-from sson@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n145kQD9060160 for ; Wed, 4 Feb 2009 05:46:26 GMT (envelope-from sson@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n145kQMW060158 for perforce@freebsd.org; Wed, 4 Feb 2009 05:46:26 GMT (envelope-from sson@FreeBSD.org) Date: Wed, 4 Feb 2009 05:46:26 GMT Message-Id: <200902040546.n145kQMW060158@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to sson@FreeBSD.org using -f From: Stacey Son To: Perforce Change Reviews Cc: Subject: PERFORCE change 157125 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 04 Feb 2009 05:46:28 -0000 http://perforce.freebsd.org/chv.cgi?CH=157125 Change 157125 by sson@sson_amd64 on 2009/02/04 05:46:22 Add support for automatic audit trail file expiration. Trails can expire and be removed based on the age of the trail, the total disk used by all the trails, or a combination of both. Expiration is specified by the "expire-after" parameter in audit_control(5). The "filesz" parameter in audit_control(5) value can now use the suffixes 'K' (Kilobytes), 'M' (Megabytes), and 'G' (Gigabytes). For example, "2M" can be used instead of "2097152" for the filesz value. Affected files ... .. //depot/projects/trustedbsd/openbsm/bin/audit/audit.8#14 edit .. //depot/projects/trustedbsd/openbsm/bin/audit/audit.c#14 edit .. //depot/projects/trustedbsd/openbsm/bin/auditd/audit_warn.c#11 edit .. //depot/projects/trustedbsd/openbsm/bin/auditd/auditd.c#43 edit .. //depot/projects/trustedbsd/openbsm/bin/auditd/auditd.h#13 edit .. //depot/projects/trustedbsd/openbsm/bsm/auditd_lib.h#4 edit .. //depot/projects/trustedbsd/openbsm/bsm/libbsm.h#42 edit .. //depot/projects/trustedbsd/openbsm/libauditd/auditd_lib.c#4 edit .. //depot/projects/trustedbsd/openbsm/libbsm/au_control.3#10 edit .. //depot/projects/trustedbsd/openbsm/libbsm/bsm_control.c#27 edit .. //depot/projects/trustedbsd/openbsm/man/audit_control.5#22 edit .. //depot/projects/trustedbsd/openbsm/man/auditon.2#15 edit .. //depot/projects/trustedbsd/openbsm/sys/bsm/audit.h#5 edit Differences ... ==== //depot/projects/trustedbsd/openbsm/bin/audit/audit.8#14 (text+ko) ==== @@ -1,4 +1,4 @@ -.\" Copyright (c) 2004 Apple Inc. +.\" Copyright (c) 2004-2009 Apple Inc. .\" All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without @@ -25,9 +25,9 @@ .\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF .\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. .\" -.\" $P4: //depot/projects/trustedbsd/openbsm/bin/audit/audit.8#13 $ +.\" $P4: //depot/projects/trustedbsd/openbsm/bin/audit/audit.8#14 $ .\" -.Dd December 11, 2008 +.Dd January 29, 2009 .Dt AUDIT 8 .Os .Sh NAME @@ -35,7 +35,7 @@ .Nd audit management utility .Sh SYNOPSIS .Nm -.Fl i | n | s | t +.Fl e | i | n | s | t .Sh DESCRIPTION The .Nm @@ -43,6 +43,10 @@ One of the following flags is required as an argument to .Nm : .Bl -tag -width indent +.It Fl e +Forces the audit system to immmediately removed audit log files that +meet the expiration criteria specified in the audit control file without +doing a log rotation. .It Fl i Initializes and starts auditing. This option is currently for Mac OS X only @@ -53,6 +57,8 @@ .It Fl n Forces the audit system to close the existing audit log file and rotate to a new log file in a location specified in the audit control file. +Also, audit log files that meet the expiration criteria specified in the +audit control file will be removed. .It Fl s Specifies that the audit system should [re]synchronize its configuration from the audit control file. ==== //depot/projects/trustedbsd/openbsm/bin/audit/audit.c#14 (text+ko) ==== @@ -1,5 +1,5 @@ /*- - * Copyright (c) 2005-2008 Apple Inc. + * Copyright (c) 2005-2009 Apple Inc. * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -26,7 +26,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. * - * $P4: //depot/projects/trustedbsd/openbsm/bin/audit/audit.c#13 $ + * $P4: //depot/projects/trustedbsd/openbsm/bin/audit/audit.c#14 $ */ /* * Program to trigger the audit daemon with a message that is either: @@ -68,12 +68,15 @@ #include "auditd_control.h" /* - * XXX the following is temporary until this can be added to the kernel + * XXX The following are temporary until these can be added to the kernel * audit.h header. */ #ifndef AUDIT_TRIGGER_INITIALIZE #define AUDIT_TRIGGER_INITIALIZE 7 #endif +#ifndef AUDIT_TRIGGER_EXPIRE_TRAILS +#define AUDIT_TRIGGER_EXPIRE_TRAILS 8 +#endif static int send_trigger(unsigned int trigger) @@ -125,7 +128,7 @@ usage(void) { - (void)fprintf(stderr, "Usage: audit -i | -n | -s | -t \n"); + (void)fprintf(stderr, "Usage: audit -e | -i | -n | -s | -t \n"); exit(-1); } @@ -141,9 +144,13 @@ if (argc != 2) usage(); - while ((ch = getopt(argc, argv, "inst")) != -1) { + while ((ch = getopt(argc, argv, "einst")) != -1) { switch(ch) { + case 'e': + trigger = AUDIT_TRIGGER_EXPIRE_TRAILS; + break; + case 'i': trigger = AUDIT_TRIGGER_INITIALIZE; break; ==== //depot/projects/trustedbsd/openbsm/bin/auditd/audit_warn.c#11 (text+ko) ==== @@ -1,5 +1,5 @@ /*- - * Copyright (c) 2005 Apple Inc. + * Copyright (c) 2005-2009 Apple Inc. * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -26,7 +26,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. * - * $P4: //depot/projects/trustedbsd/openbsm/bin/auditd/audit_warn.c#10 $ + * $P4: //depot/projects/trustedbsd/openbsm/bin/auditd/audit_warn.c#11 $ */ #include @@ -236,3 +236,18 @@ return (auditwarnlog(args)); } + +/* + * Indicates that this trail file has expired and was removed. + */ +int +audit_warn_expired(char *filename) +{ + char *args[3]; + + args[0] = EXPIRED_WARN; + args[1] = filename; + args[2] = NULL; + + return (auditwarnlog(args)); +} ==== //depot/projects/trustedbsd/openbsm/bin/auditd/auditd.c#43 (text+ko) ==== @@ -1,5 +1,5 @@ /*- - * Copyright (c) 2004-2008 Apple Inc. + * Copyright (c) 2004-2009 Apple Inc. * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -26,7 +26,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. * - * $P4: //depot/projects/trustedbsd/openbsm/bin/auditd/auditd.c#42 $ + * $P4: //depot/projects/trustedbsd/openbsm/bin/auditd/auditd.c#43 $ */ #include @@ -67,12 +67,16 @@ #endif /* - * XXX the following is temporary until this can be added to the kernel + * XXX The following are temporary until these can be added to the kernel * audit.h header. */ #ifndef AUDIT_TRIGGER_INITIALIZE #define AUDIT_TRIGGER_INITIALIZE 7 #endif +#ifndef AUDIT_TRIGGER_EXPIRE_TRAILS +#define AUDIT_TRIGGER_EXPIRE_TRAILS 8 +#endif + /* * LaunchD flag (Mac OS X and, maybe, FreeBSD only.) See launchd(8) and @@ -275,6 +279,14 @@ return (-1); } + /* + * Finally, see if there are any trail files to expire. + */ + err = auditd_expire_trails(audit_warn_expired); + if (err) + auditd_log_err("auditd_expire_trails(): %s", + auditd_strerror(err)); + return (0); } @@ -550,6 +562,14 @@ audit_setup(); break; + case AUDIT_TRIGGER_EXPIRE_TRAILS: + auditd_log_info("Got audit expire trails trigger"); + err = auditd_expire_trails(audit_warn_expired); + if (err) + auditd_log_err("auditd_expire_trails(): %s", + auditd_strerror(err)); + break; + default: auditd_log_err("Got unknown trigger %d", trigger); break; @@ -669,13 +689,18 @@ */ err = auditd_set_host(); if (err) { - auditd_log_err("auditd_set_host() %s: %m", - auditd_strerror(err)); - ret = -1; + if (err == ADE_PARSE) { + auditd_log_notice( + "audit_control(5) may be missing 'host:' field"); + } else { + auditd_log_err("auditd_set_host() %s: %m", + auditd_strerror(err)); + ret = -1; + } } else auditd_log_debug( "Set audit host address information in kernel."); - + return (ret); } ==== //depot/projects/trustedbsd/openbsm/bin/auditd/auditd.h#13 (text+ko) ==== @@ -1,5 +1,5 @@ /*- - * Copyright (c) 2005 Apple Inc. + * Copyright (c) 2005-2009 Apple Inc. * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -26,7 +26,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. * - * $P4: //depot/projects/trustedbsd/openbsm/bin/auditd/auditd.h#12 $ + * $P4: //depot/projects/trustedbsd/openbsm/bin/auditd/auditd.h#13 $ */ #ifndef _AUDITD_H_ @@ -57,6 +57,7 @@ #define POSTSIGTERM_WARN "postsigterm" #define SOFTLIM_WARN "soft" #define TMPFILE_WARN "tmpfile" +#define EXPIRED_WARN "expired" #define AUDITWARN_SCRIPT "/etc/security/audit_warn" #define AUDITD_PIDFILE "/var/run/auditd.pid" @@ -76,6 +77,7 @@ int audit_warn_postsigterm(void); int audit_warn_soft(char *filename); int audit_warn_tmpfile(void); +int audit_warn_expired(char *filename); void auditd_openlog(int debug, gid_t gid); void auditd_log_err(const char *fmt, ...); ==== //depot/projects/trustedbsd/openbsm/bsm/auditd_lib.h#4 (text+ko) ==== @@ -26,7 +26,7 @@ * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. * - * $P4: //depot/projects/trustedbsd/openbsm/bsm/auditd_lib.h#3 $ + * $P4: //depot/projects/trustedbsd/openbsm/bsm/auditd_lib.h#4 $ */ #ifndef _BSM_AUDITD_LIB_H_ @@ -81,12 +81,14 @@ #define ADE_INVAL -16 /* Invalid argument. */ #define ADE_GETADDR -17 /* Error resolving address from hostname. */ #define ADE_ADDRFAM -18 /* Address family not supported. */ +#define ADE_EXPIRE -19 /* Error expiring audit trail files. */ /* * auditd_lib functions. */ const char *auditd_strerror(int errcode); int auditd_set_minfree(void); +int auditd_expire_trails(int (*warn_expired)(char *)); int auditd_read_dirs(int (*warn_soft)(char *), int (*warn_hard)(char *)); void auditd_close_dirs(void); int auditd_set_evcmap(void); ==== //depot/projects/trustedbsd/openbsm/bsm/libbsm.h#42 (text+ko) ==== @@ -1,5 +1,5 @@ /*- - * Copyright (c) 2004-2008 Apple Inc. + * Copyright (c) 2004-2009 Apple Inc. * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -26,7 +26,7 @@ * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. * - * $P4: //depot/projects/trustedbsd/openbsm/bsm/libbsm.h#41 $ + * $P4: //depot/projects/trustedbsd/openbsm/bsm/libbsm.h#42 $ */ #ifndef _LIBBSM_H_ @@ -76,13 +76,14 @@ #define AUDIT_CONTROL_FILE "/etc/security/audit_control" #define AUDIT_USER_FILE "/etc/security/audit_user" -#define DIR_CONTROL_ENTRY "dir" -#define MINFREE_CONTROL_ENTRY "minfree" -#define FILESZ_CONTROL_ENTRY "filesz" -#define FLAGS_CONTROL_ENTRY "flags" -#define NA_CONTROL_ENTRY "naflags" -#define POLICY_CONTROL_ENTRY "policy" +#define DIR_CONTROL_ENTRY "dir" +#define MINFREE_CONTROL_ENTRY "minfree" +#define FILESZ_CONTROL_ENTRY "filesz" +#define FLAGS_CONTROL_ENTRY "flags" +#define NA_CONTROL_ENTRY "naflags" +#define POLICY_CONTROL_ENTRY "policy" #define AUDIT_HOST_CONTROL_ENTRY "host" +#define EXPIRE_AFTER_CONTROL_ENTRY "expire-after" #define AU_CLASS_NAME_MAX 8 #define AU_CLASS_DESC_MAX 72 @@ -766,6 +767,7 @@ int getacna(char *auditstr, int len); int getacpol(char *auditstr, size_t len); int getachost(char *auditstr, size_t len); +int getacexpire(int *andflg, time_t *age, size_t *size); int getauditflagsbin(char *auditstr, au_mask_t *masks); int getauditflagschar(char *auditstr, au_mask_t *masks, int verbose); ==== //depot/projects/trustedbsd/openbsm/libauditd/auditd_lib.c#4 (text+ko) ==== @@ -1,5 +1,5 @@ /*- - * Copyright (c) 2008 Apple Inc. + * Copyright (c) 2008-2009 Apple Inc. * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -26,7 +26,7 @@ * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. * - * $P4: //depot/projects/trustedbsd/openbsm/libauditd/auditd_lib.c#3 $ + * $P4: //depot/projects/trustedbsd/openbsm/libauditd/auditd_lib.c#4 $ */ #include @@ -52,6 +52,7 @@ #include #include +#include #include #include #include @@ -77,6 +78,11 @@ #define AUDIT_HARD_LIMIT_FREE_BLOCKS 4 #endif +/* + * Number of seconds to January 1, 2000 + */ +#define JAN_01_2000 946598400 + struct dir_ent { char *dirname; uint8_t softlim; @@ -85,6 +91,13 @@ }; static TAILQ_HEAD(, dir_ent) dir_q; + +struct audit_trail { + time_t at_mtime; + char *at_path; + off_t at_size; +}; + static int auditd_minval = -1; static char auditd_host[MAXHOSTNAMELEN]; @@ -110,6 +123,7 @@ "invalid argument", /* ADE_INVAL (16) */ "could not resolve hostname to address", /* ADE_GETADDR (17) */ "address family not supported", /* ADE_ADDRFAM (18) */ + "error expiring audit trail files", /* ADE_EXPIRE (19) */ }; #define MAXERRCODE (sizeof(auditd_errmsg) / sizeof(auditd_errmsg[0])) @@ -295,6 +309,187 @@ } /* + * Comparison function for audit trail sorting. Compare modification times + * of trail files. + */ +static int +trails_cmp(const void *t1, const void *t2) +{ + struct audit_trail *a = (struct audit_trail *)t1; + struct audit_trail *b = (struct audit_trail *)t2; + + if (a->at_mtime < b->at_mtime) + return (-1); + if (a->at_mtime > b->at_mtime) + return (1); + return (0); +} + +/* + * Remove audit trails files according to the expiration conditions. Returns: + * ADE_NOERR on success or there is nothing to do. + * ADE_PARSE if error parsing audit_control(5). + * ADE_NOMEM if could not allocate memory. + * ADE_EXPIRE if there was an unespected error. + */ +int +auditd_expire_trails(int (*warn_expired)(char *)) +{ + int andflg, i, n = 0, num_trails = 0, ret = ADE_NOERR; + size_t expire_size, total_size = 0L; + time_t expire_age, oldest_time, current_time = time(NULL); + struct dir_ent *traildir; + struct audit_trail *trail; + char *afnp, *pn; + struct stat stbuf; + char activefn[MAXPATHLEN]; + + /* + * Read the expiration conditions. If no conditions then return no + * error. + */ + if (getacexpire(&andflg, &expire_age, &expire_size) < 0) + return (ADE_PARSE); + if (!expire_age && !expire_size) + return (ADE_NOERR); + + /* + * Read the 'current' trail file name. Trim off directory path. + */ + activefn[0] = '\0'; + readlink(AUDIT_CURRENT_LINK, activefn, MAXPATHLEN - 1); + if ((afnp = strrchr(activefn, '/')) != NULL) + afnp++; + + /* + * Count up the number of audit trail files we have in all the audit + * trail directories. + */ + num_trails = 0; + TAILQ_FOREACH(traildir, &dir_q, dirs) { + if (stat(traildir->dirname, &stbuf) == 0) + num_trails += (stbuf.st_nlink - 2); + } + + trail = (struct audit_trail *)malloc(sizeof(struct audit_trail) * + num_trails); + if (NULL == trail) + return (ADE_NOMEM); + + /* + * Build an array of the trail files. + */ + TAILQ_FOREACH(traildir, &dir_q, dirs) { + DIR *dirp; + struct dirent *dp; + + dirp = opendir(traildir->dirname); + while ((dp = readdir(dirp)) != NULL) { + + /* + * Filter non-trail files. + */ + if (dp->d_type != DT_REG || + dp->d_namlen != (FILENAME_LEN - 1) || + dp->d_name[POSTFIX_LEN] != '.') + continue; + + + if (n > num_trails) { + /* + * This shouldn't happen but, if it does, we + * break out of the loop and expire what trail + * files we have. Also, return there was an + * error. + */ + ret = ADE_EXPIRE; + break; + } + + if (asprintf(&pn, "%s/%s", traildir->dirname, + dp->d_name) < 0) { + ret = ADE_NOMEM; + break; + } + + if (stat(pn, &stbuf) < 0) { + free(pn); + continue; + } + + /* + * If the mtime is older than Jan 1, 2000 then update + * the mtime of the trail file to the current time. + * This is so we don't prematurely remove a trail file + * that was created while the system clock reset to the + * "beginning of time" but later the system clock is set + * to the correct current time. + */ + if (current_time >= JAN_01_2000 && + stbuf.st_mtime < JAN_01_2000) { + struct timeval tv[2]; + + stbuf.st_mtime = current_time; + TIMESPEC_TO_TIMEVAL(&tv[0], + &stbuf.st_atimespec); + TIMESPEC_TO_TIMEVAL(&tv[1], + &stbuf.st_mtimespec); + utimes(pn, tv); + } + + total_size += stbuf.st_size; + if (NULL != afnp && + strncmp(dp->d_name, afnp, FILENAME_LEN) == 0) { + free(pn); + continue; + } + + trail[n].at_mtime = stbuf.st_mtime; + trail[n].at_size = stbuf.st_size; + trail[n].at_path = pn; + n++; + } + } + + /* + * Sort the array of trail files by the modification date. + */ + qsort(trail, n, sizeof(struct audit_trail), trails_cmp); + + oldest_time = current_time - expire_age; + + /* + * Expire trail files, oldest (mtime) first, if the given + * conditions are met. + */ + for (i = 0; i < n; i++) { + if (andflg) { + if ((expire_size && total_size > expire_size) && + (expire_age && trail[i].at_mtime < oldest_time)) { + if (warn_expired) + (*warn_expired)(trail[i].at_path); + if (unlink(trail[i].at_path) < 0) + ret = ADE_EXPIRE; + total_size -= trail[i].at_size; + } + } else { + if ((expire_size && total_size > expire_size) || + (expire_age && trail[i].at_mtime < oldest_time)) { + if (warn_expired) + (*warn_expired)(trail[i].at_path); + if (unlink(trail[i].at_path) < 0) + ret = ADE_EXPIRE; + total_size -= trail[i].at_size; + } + } + free(trail[i].at_path); + } + free(trail); + + return (ret); +} + +/* * Parses the "dir" entry in audit_control(5) into an ordered list. Also, will * set the minfree and host values if not already set. Arguments include * function pointers to audit_warn functions for soft and hard limits. Returns: @@ -562,7 +757,7 @@ } /* Try until we succeed. */ - while ((dirent = TAILQ_FIRST(&dir_q))) { + TAILQ_FOREACH(dirent, &dir_q, dirs) { if (dirent->hardlim) continue; if ((fn = affixdir(timestr, dirent)) == NULL) ==== //depot/projects/trustedbsd/openbsm/libbsm/au_control.3#10 (text+ko) ==== @@ -23,7 +23,7 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.\" $P4: //depot/projects/trustedbsd/openbsm/libbsm/au_control.3#9 $ +.\" $P4: //depot/projects/trustedbsd/openbsm/libbsm/au_control.3#10 $ .\" .Dd April 19, 2005 .Dt AU_CONTROL 3 @@ -33,6 +33,7 @@ .Nm endac , .Nm getacdir , .Nm getacmin , +.Nm getacexpire , .Nm getacfilesz , .Nm getacflg , .Nm getacna , @@ -53,6 +54,8 @@ .Ft int .Fn getacmin "int *min_val" .Ft int +.Fn getacexpire "int *andflg, time_t *age, size_t *size" +.Ft int .Fn getacfilesz "size_t *size_val" .Ft int .Fn getacflg "char *auditstr" "int len" @@ -101,6 +104,24 @@ variable. .Pp The +.Fn getacexpire +function +returns the audit trail file expiration parameters in the passed +.Vt int +buffer +.Fa andflg , +.Vt time_t +buffer +.Fa age +and +.Vt size_t +buffer +.Fa size . +If the parameter is not specified in the +.Xr audit_control 5 +file it is set to zero. +.Pp +The .Fn getacfilesz function returns the audit trail rotation size in the passed @@ -153,6 +174,7 @@ The .Fn getacdir , .Fn getacmin , +.Fn getacexpire , .Fn getacflg , .Fn getacna , .Fn getacpol , ==== //depot/projects/trustedbsd/openbsm/libbsm/bsm_control.c#27 (text+ko) ==== @@ -1,5 +1,5 @@ /*- - * Copyright (c) 2004 Apple Inc. + * Copyright (c) 2004,2009 Apple Inc. * Copyright (c) 2006 Robert N. M. Watson * All rights reserved. * @@ -27,13 +27,14 @@ * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. * - * $P4: //depot/projects/trustedbsd/openbsm/libbsm/bsm_control.c#26 $ + * $P4: //depot/projects/trustedbsd/openbsm/libbsm/bsm_control.c#27 $ */ #include #include +#include #include #include #ifdef HAVE_PTHREAD_MUTEX_LOCK @@ -138,6 +139,82 @@ } /* + * Convert a given time value with a multiplier (seconds, hours, days, years) to + * seconds. Return 0 on success. + */ +static int +au_timetosec(time_t *seconds, u_long value, char mult) +{ + if (NULL == seconds) + return (-1); + + switch(mult) { + case 's': + /* seconds */ + *seconds = (time_t)value; + break; + + case 'h': + /* hours */ + *seconds = (time_t)value * 60 * 60; + break; + + case 'd': + /* days */ + *seconds = (time_t)value * 60 * 60 * 24; + break; + + case 'y': + /* years. Add a day for each 4th (leap) year. */ + *seconds = (time_t)value * 60 * 60 * 24 * 364 + + ((time_t)value / 4) * 60 * 60 * 24; + break; + + default: + return (-1); + } + return (0); +} + +/* + * Convert a given disk space value with a multiplier (bytes, kilobytes, + * megabytes, gigabytes) to bytes. Return 0 on success. + */ +static int +au_spacetobytes(size_t *bytes, u_long value, char mult) +{ + if (NULL == bytes) + return (-1); + + switch(mult) { + case 'B': + case ' ': + /* Bytes */ + *bytes = (size_t)value; + break; + + case 'K': + /* Kilobytes */ + *bytes = (size_t)value * 1024; + break; + + case 'M': + /* Megabytes */ + *bytes = (size_t)value * 1024 * 1024; + break; + + case 'G': + /* Gigabytes */ + *bytes = (size_t)value * 1024 * 1024 * 1024; + break; + + default: + return (-1); + } + return (0); +} + +/* * Convert a policy to a string. Return -1 on failure, or >= 0 representing * the actual size of the string placed in the buffer (excluding terminating * nul). @@ -333,46 +410,65 @@ int getacfilesz(size_t *filesz_val) { - char *filesz, *dummy; - long long ll; + char *str; + size_t val; + char mult; + int nparsed; #ifdef HAVE_PTHREAD_MUTEX_LOCK pthread_mutex_lock(&mutex); #endif setac_locked(); - if (getstrfromtype_locked(FILESZ_CONTROL_ENTRY, &filesz) < 0) { + if (getstrfromtype_locked(FILESZ_CONTROL_ENTRY, &str) < 0) { #ifdef HAVE_PTHREAD_MUTEX_LOCK pthread_mutex_unlock(&mutex); #endif return (-2); } - if (filesz == NULL) { + if (str == NULL) { #ifdef HAVE_PTHREAD_MUTEX_LOCK pthread_mutex_unlock(&mutex); #endif errno = EINVAL; return (1); } - ll = strtoll(filesz, &dummy, 10); - if (*dummy != '\0') { + + /* Trim off any leading white space. */ + while (*str == ' ' || *str == '\t') + str++; + + nparsed = sscanf(str, "%lu%c", &val, &mult); + + switch (nparsed) { + case 1: + /* If no multiplier then assume 'B' (bytes). */ + mult = 'B'; + /* fall through */ + case 2: + if (au_spacetobytes(filesz_val, val, mult) == 0) + break; + /* fall through */ + default: + errno = EINVAL; #ifdef HAVE_PTHREAD_MUTEX_LOCK pthread_mutex_unlock(&mutex); #endif - errno = EINVAL; return (-1); } + /* * The file size must either be 0 or >= MIN_AUDIT_FILE_SIZE. 0 * indicates no rotation size. */ - if (ll < 0 || (ll > 0 && ll < MIN_AUDIT_FILE_SIZE)) { + if (*filesz_val < 0 || (*filesz_val > 0 && + *filesz_val < MIN_AUDIT_FILE_SIZE)) { #ifdef HAVE_PTHREAD_MUTEX_LOCK pthread_mutex_unlock(&mutex); #endif + filesz_val = 0L; errno = EINVAL; return (-1); } - *filesz_val = ll; #ifdef HAVE_PTHREAD_MUTEX_LOCK pthread_mutex_unlock(&mutex); #endif @@ -523,3 +619,105 @@ #endif return (0); } + +/* + * Set expiration conditions. + */ +static int +setexpirecond(time_t *age, size_t *size, u_long value, char mult) +{ + + if (isupper(mult) || ' ' == mult) + return (au_spacetobytes(size, value, mult)); + else + return (au_timetosec(age, value, mult)); +} + +/* + * Return the expire-after field from the audit control file. + */ +int +getacexpire(int *andflg, time_t *age, size_t *size) +{ + char *str; + int nparsed; + u_long val1, val2; + char mult1, mult2; + char andor[AU_LINE_MAX]; + + *age = 0L; + *size = 0LL; + *andflg = 0; + +#ifdef HAVE_PTHREAD_MUTEX_LOCK + pthread_mutex_lock(&mutex); +#endif + setac_locked(); + if (getstrfromtype_locked(EXPIRE_AFTER_CONTROL_ENTRY, &str) < 0) { +#ifdef HAVE_PTHREAD_MUTEX_LOCK + pthread_mutex_unlock(&mutex); +#endif + return (-2); + } + if (str == NULL) { +#ifdef HAVE_PTHREAD_MUTEX_LOCK + pthread_mutex_unlock(&mutex); +#endif + return (1); + } + + /* First, trim off any leading white space. */ + while (*str == ' ' || *str == '\t') + str++; + + nparsed = sscanf(str, "%lu%c%[ \tadnorADNOR]%lu%c", &val1, &mult1, + andor, &val2, &mult2); + + switch (nparsed) { + case 1: + /* If no multiplier then assume 'B' (Bytes). */ + mult1 = 'B'; + /* fall through */ + case 2: + /* One expiration condition. */ + if (setexpirecond(age, size, val1, mult1) != 0) { +#ifdef HAVE_PTHREAD_MUTEX_LOCK + pthread_mutex_unlock(&mutex); +#endif + return (-1); + } + break; + + case 5: + /* Two expiration conditions. */ + if (setexpirecond(age, size, val1, mult1) != 0 || + setexpirecond(age, size, val2, mult2) != 0) { +#ifdef HAVE_PTHREAD_MUTEX_LOCK + pthread_mutex_unlock(&mutex); +#endif + return (-1); + } + if (strcasestr(andor, "and") != NULL) + *andflg = 1; + else if (strcasestr(andor, "or") != NULL) + *andflg = 0; + else { +#ifdef HAVE_PTHREAD_MUTEX_LOCK + pthread_mutex_unlock(&mutex); +#endif + return (-1); + } + break; + + default: +#ifdef HAVE_PTHREAD_MUTEX_LOCK + pthread_mutex_unlock(&mutex); +#endif + return (-1); + } + +#ifdef HAVE_PTHREAD_MUTEX_LOCK + pthread_mutex_unlock(&mutex); +#endif + return (0); +} ==== //depot/projects/trustedbsd/openbsm/man/audit_control.5#22 (text+ko) ==== @@ -1,4 +1,4 @@ -.\" Copyright (c) 2004 Apple Inc. +.\" Copyright (c) 2004-2009 Apple Inc. .\" Copyright (c) 2006 Robert N. M. Watson .\" All rights reserved. .\" @@ -26,9 +26,9 @@ .\" IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE .\" POSSIBILITY OF SUCH DAMAGE. .\" >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Wed Feb 4 07:41:23 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 814A01065674; Wed, 4 Feb 2009 07:41:23 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 3FC08106564A for ; Wed, 4 Feb 2009 07:41:23 +0000 (UTC) (envelope-from marius@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 2EBD18FC12 for ; Wed, 4 Feb 2009 07:41:23 +0000 (UTC) (envelope-from marius@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n147fNgC071513 for ; Wed, 4 Feb 2009 07:41:23 GMT (envelope-from marius@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n147fNv2071511 for perforce@freebsd.org; Wed, 4 Feb 2009 07:41:23 GMT (envelope-from marius@freebsd.org) Date: Wed, 4 Feb 2009 07:41:23 GMT Message-Id: <200902040741.n147fNv2071511@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to marius@freebsd.org using -f From: Marius Strobl To: Perforce Change Reviews Cc: Subject: PERFORCE change 157126 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 04 Feb 2009 07:41:25 -0000 http://perforce.freebsd.org/chv.cgi?CH=157126 Change 157126 by marius@flak on 2009/02/04 07:41:17 Add DP83865. Affected files ... .. //depot/projects/usiii/dev/mii/miidevs#11 edit Differences ... ==== //depot/projects/usiii/dev/mii/miidevs#11 (text+ko) ==== @@ -200,6 +200,7 @@ model NATSEMI DP83847 0x0003 DP83847 10/100 media interface model NATSEMI DP83891 0x0005 DP83891 10/100/1000 media interface model NATSEMI DP83861 0x0006 DP83861 10/100/1000 media interface +model NATSEMI DP83865 0x0007 DP83865 10/100/1000 media interface /* Quality Semiconductor PHYs */ model QUALSEMI QS6612 0x0000 QS6612 10/100 media interface From owner-p4-projects@FreeBSD.ORG Wed Feb 4 10:24:09 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 58547106566C; Wed, 4 Feb 2009 10:24:08 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 15B541065670 for ; Wed, 4 Feb 2009 10:24:08 +0000 (UTC) (envelope-from gabor@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id DC70F8FC24 for ; Wed, 4 Feb 2009 10:24:07 +0000 (UTC) (envelope-from gabor@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n14AO7hu098556 for ; Wed, 4 Feb 2009 10:24:07 GMT (envelope-from gabor@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n14AO7wk098554 for perforce@freebsd.org; Wed, 4 Feb 2009 10:24:07 GMT (envelope-from gabor@freebsd.org) Date: Wed, 4 Feb 2009 10:24:07 GMT Message-Id: <200902041024.n14AO7wk098554@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to gabor@freebsd.org using -f From: Gabor Kovesdan To: Perforce Change Reviews Cc: Subject: PERFORCE change 157128 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 04 Feb 2009 10:24:11 -0000 http://perforce.freebsd.org/chv.cgi?CH=157128 Change 157128 by gabor@gabor_server on 2009/02/04 10:23:19 - Add --exclude-dir and --include-dir, options similar to --exclude and --include but for directories Requested by: bz Affected files ... .. //depot/projects/soc2008/gabor_textproc/grep/grep.c#80 edit .. //depot/projects/soc2008/gabor_textproc/grep/util.c#79 edit Differences ... ==== //depot/projects/soc2008/gabor_textproc/grep/grep.c#80 (text+ko) ==== @@ -182,8 +182,8 @@ {"colour", optional_argument, NULL, COLOR_OPT}, {"exclude", required_argument, NULL, R_EXCLUDE_OPT}, {"include", required_argument, NULL, R_INCLUDE_OPT}, -/* {"exclude-dir", required_argument, NULL, R_DEXCLUDE_OPT}, - {"include-dir", required_argument, NULL, R_DINCLUDE_OPT}, */ + {"exclude-dir", required_argument, NULL, R_DEXCLUDE_OPT}, + {"include-dir", required_argument, NULL, R_DINCLUDE_OPT}, {"after-context", required_argument, NULL, 'A'}, {"text", no_argument, NULL, 'a'}, {"before-context", required_argument, NULL, 'B'}, ==== //depot/projects/soc2008/gabor_textproc/grep/util.c#79 (text+ko) ==== @@ -66,6 +66,7 @@ FTS *fts; FTSENT *p; int i, c, ok, fts_flags; + char *d, *dirname; c = fts_flags = 0; @@ -99,14 +100,30 @@ /* Check for file exclusion/inclusion */ ok = 1; if (exclflag) { + d = strrchr(p->fts_path, '/'); + dirname = grep_malloc(sizeof(char) * (d - p->fts_path + 2)); + strlcpy(dirname, p->fts_path, (d - p->fts_path + 1)); for (i = 0; i < epatterns; ++i) { - if (fnmatch(epattern[i].pat, basename(p->fts_path), 0) == 0) { - if (epattern[i].mode == EXCL_PAT) - ok = 0; - else - ok = 1; + switch(epattern[i].type) { + case FILE_PAT: + if (fnmatch(epattern[i].pat, basename(p->fts_path), 0) == 0) { + if (epattern[i].mode == EXCL_PAT) + ok = 0; + else + ok = 1; + } + break; + case DIR_PAT: + if (strstr(dirname, epattern[i].pat) != NULL) { + if (epattern[i].mode == EXCL_PAT) + ok = 0; + else + ok = 1; + } + break; } } + free(dirname); } if (ok) From owner-p4-projects@FreeBSD.ORG Wed Feb 4 11:22:07 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 1C1861065672; Wed, 4 Feb 2009 11:22:07 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id CD693106564A for ; Wed, 4 Feb 2009 11:22:06 +0000 (UTC) (envelope-from antab@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id B8C0D8FC1F for ; Wed, 4 Feb 2009 11:22:06 +0000 (UTC) (envelope-from antab@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n14BM6Zf005814 for ; Wed, 4 Feb 2009 11:22:06 GMT (envelope-from antab@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n14BM6KL005812 for perforce@freebsd.org; Wed, 4 Feb 2009 11:22:06 GMT (envelope-from antab@FreeBSD.org) Date: Wed, 4 Feb 2009 11:22:06 GMT Message-Id: <200902041122.n14BM6KL005812@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to antab@FreeBSD.org using -f From: Arnar Mar Sig To: Perforce Change Reviews Cc: Subject: PERFORCE change 157130 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 04 Feb 2009 11:22:08 -0000 http://perforce.freebsd.org/chv.cgi?CH=157130 Change 157130 by antab@antab_farm on 2009/02/04 11:22:04 Update to AVR32, stops at cpu_switch now. Added at32_rtc and at32_pio (pio code could be shared with at91) drivers to test at32bus and resource managment, looks like its working at last uart,at32_pio and at32_rtc gets probed and attached at the right places. Added more placeholder functions to uart_atmel to get it to register, later share code with at91. Misc other changes all over. Affected files ... .. //depot/projects/avr32/src/sys/avr32/avr32/at32.c#2 edit .. //depot/projects/avr32/src/sys/avr32/avr32/at32_pio.c#1 add .. //depot/projects/avr32/src/sys/avr32/avr32/at32_rtc.c#1 add .. //depot/projects/avr32/src/sys/avr32/avr32/at32ap700x.c#1 add .. //depot/projects/avr32/src/sys/avr32/avr32/autoconf.c#2 edit .. //depot/projects/avr32/src/sys/avr32/avr32/clock.c#2 edit .. //depot/projects/avr32/src/sys/avr32/avr32/cpu.c#3 edit .. //depot/projects/avr32/src/sys/avr32/avr32/db_disasm.c#2 edit .. //depot/projects/avr32/src/sys/avr32/avr32/db_interface.c#2 edit .. //depot/projects/avr32/src/sys/avr32/avr32/elf_machdep.c#2 edit .. //depot/projects/avr32/src/sys/avr32/avr32/exception.S#2 edit .. //depot/projects/avr32/src/sys/avr32/avr32/intr.c#2 edit .. //depot/projects/avr32/src/sys/avr32/avr32/machdep.c#3 edit .. //depot/projects/avr32/src/sys/avr32/avr32/nexus.c#2 edit .. //depot/projects/avr32/src/sys/avr32/avr32/pm_machdep.c#3 edit .. //depot/projects/avr32/src/sys/avr32/avr32/pmap.c#3 edit .. //depot/projects/avr32/src/sys/avr32/avr32/support.S#3 edit .. //depot/projects/avr32/src/sys/avr32/avr32/switch.S#1 add .. //depot/projects/avr32/src/sys/avr32/avr32/trap.c#2 edit .. //depot/projects/avr32/src/sys/avr32/avr32/uboot.c#3 edit .. //depot/projects/avr32/src/sys/avr32/avr32/vm_machdep.c#3 edit .. //depot/projects/avr32/src/sys/avr32/conf/NGW100#3 edit .. //depot/projects/avr32/src/sys/avr32/include/at32.h#2 edit .. //depot/projects/avr32/src/sys/avr32/include/at32ap700x.h#1 add .. //depot/projects/avr32/src/sys/avr32/include/cpu.h#3 edit .. //depot/projects/avr32/src/sys/avr32/include/frame.h#2 edit .. //depot/projects/avr32/src/sys/avr32/include/intr.h#2 edit .. //depot/projects/avr32/src/sys/avr32/include/pcb.h#2 edit .. //depot/projects/avr32/src/sys/avr32/include/pcpu.h#3 edit .. //depot/projects/avr32/src/sys/avr32/include/proc.h#2 edit .. //depot/projects/avr32/src/sys/avr32/include/pte.h#3 edit .. //depot/projects/avr32/src/sys/avr32/include/reg.h#2 edit .. //depot/projects/avr32/src/sys/avr32/include/reg_intc.h#1 add .. //depot/projects/avr32/src/sys/avr32/include/reg_pio.h#1 add .. //depot/projects/avr32/src/sys/avr32/include/reg_rtc.h#1 add .. //depot/projects/avr32/src/sys/avr32/include/reg_sys.h#2 edit .. //depot/projects/avr32/src/sys/avr32/include/reg_usart.h#2 edit .. //depot/projects/avr32/src/sys/avr32/include/reg_wdt.h#1 add .. //depot/projects/avr32/src/sys/conf/files.avr32#3 edit .. //depot/projects/avr32/src/sys/conf/ldscript.avr32#2 edit .. //depot/projects/avr32/src/sys/conf/options.avr32#2 edit .. //depot/projects/avr32/src/sys/dev/uart/uart_bus_atmel.c#2 edit .. //depot/projects/avr32/src/sys/dev/uart/uart_dev_atmel.c#2 edit Differences ... ==== //depot/projects/avr32/src/sys/avr32/avr32/at32.c#2 (text+ko) ==== @@ -40,11 +40,53 @@ #include #include +#include #include #include #include +#include #include +/* Prototypes */ +static struct resource_list *at32_get_resource_list(device_t, device_t); +static int at32_print_child(device_t, device_t); +static int at32_activate_resource(device_t, device_t, int, int, struct resource *); +static int at32_teardown_intr(device_t, device_t, struct resource *, void *); +static int at32_setup_intr(device_t, device_t, struct resource *, int, driver_filter_t *, driver_intr_t *, void *, void **); +static int at32_release_resource(device_t, device_t, int, int, struct resource *); +static struct resource *at32_alloc_resource(device_t, device_t, int, int *, u_long, u_long, u_long, u_int); +static int at32_attach(device_t); +static void at32_add_child(device_t, int, const char *, int, bus_addr_t, bus_size_t, int); +static void at32_identify(driver_t *, device_t); +static int at32_probe(device_t); + +/* Driver variables and private data */ +static device_method_t at32_methods[] = { + DEVMETHOD(device_probe, at32_probe), + DEVMETHOD(device_attach, at32_attach), + DEVMETHOD(device_identify, at32_identify), + + DEVMETHOD(bus_alloc_resource, at32_alloc_resource), + DEVMETHOD(bus_setup_intr, at32_setup_intr), + DEVMETHOD(bus_teardown_intr, at32_teardown_intr), + DEVMETHOD(bus_activate_resource, at32_activate_resource), + DEVMETHOD(bus_deactivate_resource, bus_generic_deactivate_resource), + DEVMETHOD(bus_get_resource_list, at32_get_resource_list), + DEVMETHOD(bus_set_resource, bus_generic_rl_set_resource), + DEVMETHOD(bus_get_resource, bus_generic_rl_get_resource), + DEVMETHOD(bus_release_resource, at32_release_resource), + DEVMETHOD(bus_print_child, at32_print_child), + {0, 0}, +}; +static driver_t at32_driver = { + "at32bus", + at32_methods, + sizeof(struct at32_softc), +}; +static devclass_t at32_devclass; +DRIVER_MODULE(at32bus, nexus, at32_driver, at32_devclass, 0, 0); + +/* Code */ static int at32_probe(device_t dev) { @@ -55,18 +97,82 @@ static void at32_identify(driver_t *drv, device_t parent) { - BUS_ADD_CHILD(parent, 0, "at32", 0); + BUS_ADD_CHILD(parent, 0, "at32bus", 0); } -static device_t -at32_add_child(device_t dev, int prio, const char *name, int unit) +static void +at32_add_child(device_t dev, int prio, const char *name, int unit, + bus_addr_t addr, bus_size_t size, int irq) { - return device_add_child_ordered(dev, prio, name, unit); + device_t kid; + struct at32_ivar *ivar; + + kid = device_add_child_ordered(dev, prio, name, unit); + if (kid == NULL) { + printf("Can't add child %s%d ordered\n", name, unit); + return; + } + ivar = malloc(sizeof(*ivar), M_DEVBUF, M_NOWAIT | M_ZERO); + if (ivar == NULL) { + device_delete_child(dev, kid); + printf("Can't add alloc ivar\n"); + return; + } + device_set_ivars(kid, ivar); + resource_list_init(&ivar->resources); + if (addr != 0) { + bus_set_resource(kid, SYS_RES_MEMORY, 0, addr, size); + } + if (irq != -1) { + bus_set_resource(kid, SYS_RES_IRQ, 0, irq, 1); + } } static int at32_attach(device_t dev) { + int i; + struct at32_softc *sc = device_get_softc(dev); + struct at32_cpu_device *walker; + + sc->sc_st = 0; + sc->sc_sh = AT32AP700X_BASE; + sc->dev = dev; + + // Resource list for IRQ + sc->sc_irq_rman.rm_type = RMAN_ARRAY; + sc->sc_irq_rman.rm_descr = "AT32 IRQs"; + if (rman_init(&sc->sc_irq_rman) != 0 || + rman_manage_region(&sc->sc_irq_rman, 1, IRQ_COUNT) != 0) { + panic("at32_attach: failed to set up IRQ rman"); + } + + // Resource list for system memory + sc->sc_mem_rman.rm_type = RMAN_ARRAY; + sc->sc_mem_rman.rm_descr = "AT32 Memory"; + if (rman_init(&sc->sc_mem_rman) != 0 || + rman_manage_region(&sc->sc_mem_rman, AVR32_SEG_P4, + 0xfffffffful) != 0) { + panic("at32_attach: fail to set up memory rman\n"); + } + + /* Reserve memory range for INTC, we will handle access to it */ + sc->sc_intc_res = rman_reserve_resource(&sc->sc_mem_rman, + AT32AP700X_BASE + AT32AP700X_INTC_OFFSET, + AT32AP700X_BASE + AT32AP700X_INTC_OFFSET + AT32AP700X_INTC_SIZE, + AT32AP700X_INTC_SIZE, 0, dev); + if (!sc->sc_intc_res) { + panic("at32_attach: unable to reserve INTC memory\n"); + } + + + // Add buildin devices + for (i = 0, walker = at32_cpu_devices; walker->name; i++, walker++) { + at32_add_child(dev, i, walker->name, walker->unit, + walker->mem_base, walker->mem_len, walker->irq); + }; + + bus_generic_probe(dev); bus_generic_attach(dev); return 0; } @@ -75,85 +181,127 @@ at32_alloc_resource(device_t dev, device_t child, int type, int *rid, u_long start, u_long end, u_long count, u_int flags) { - avr32_impl(); - return (0); + struct at32_softc *sc = device_get_softc(dev); + struct resource_list_entry *rle; + struct at32_ivar *ivar = device_get_ivars(child); + struct resource_list *rl = &ivar->resources; + + if (device_get_parent(child) != dev) { + return (BUS_ALLOC_RESOURCE(device_get_parent(dev), child, + type, rid, start, end, count, flags)); + } + rle = resource_list_find(rl, type, *rid); + if (rle == NULL) { + return (NULL); + } + if (rle->res) { + panic("Resource rid %d type %d already in use", *rid, type); + } + if (start == 0UL && end == ~0UL) { + start = rle->start; + count = ulmax(count, rle->count); + end = ulmax(rle->end, start + count - 1); + } + switch (type) { + case SYS_RES_IRQ: + rle->res = rman_reserve_resource(&sc->sc_irq_rman, + start, end, count, flags, child); + break; + case SYS_RES_MEMORY: + rle->res = rman_reserve_resource(&sc->sc_mem_rman, + start, end, count, flags, child); + if (rle->res != NULL) { + rman_set_bustag(rle->res, 0); + rman_set_bushandle(rle->res, start); + } + break; + } + if (rle->res) { + rle->start = rman_get_start(rle->res); + rle->end = rman_get_end(rle->res); + rle->count = count; + rman_set_rid(rle->res, *rid); + } + return (rle->res); } static int -at32_release_resource(device_t dev, device_t child, int type, int rid, struct resource *r) { - int error; +at32_release_resource(device_t dev, device_t child, int type, int rid, + struct resource *r) +{ + struct resource_list *rl; + struct resource_list_entry *rle; - if (rman_get_flags(r) & RF_ACTIVE) { - error = bus_deactivate_resource(child, type, rid, r); - if (error) - return error; + rl = at32_get_resource_list(dev, child); + if (rl == NULL) { + return (EINVAL); + } + rle = resource_list_find(rl, type, rid); + if (rle == NULL) { + return (EINVAL); } - return (rman_release_resource(r)); - + rman_release_resource(r); + rle->res = NULL; + return (0); } static int -at32_setup_intr(device_t dev, device_t child, struct resource *ires, int flags, driver_filter_t *filt, driver_intr_t *intr, void *arg, void **cookiep) { - avr32_impl(); +at32_setup_intr(device_t dev, device_t child, struct resource *ires, int flags, + driver_filter_t *filt, driver_intr_t *intr, void *arg, void **cookiep) +{ + if ((rman_get_flags(ires) & RF_SHAREABLE) == 0) { + flags |= INTR_EXCL; + } - return 0; + avr32_setup_irqhandler(device_get_nameunit(child), + filt, intr, arg, rman_get_start(ires), flags, cookiep); + return (0); } static int at32_teardown_intr(device_t dev, device_t child, struct resource *res, void *cookie) { - avr32_impl(); - - return 0; + return (avr32_remove_irqhandler(rman_get_start(res), cookie)); } static int at32_activate_resource(device_t bus, device_t child, int type, int rid, struct resource *r) { - avr32_impl(); - return (rman_activate_resource(r)); } static int -at32_deactivate_resource(device_t bus, device_t child, int type, int rid, struct resource *r) { - return (rman_deactivate_resource(r)); -} - -static int at32_print_child(device_t dev, device_t child) { - int retval; + struct at32_ivar *ivars; + struct resource_list *rl; + int retval = 0; + + ivars = device_get_ivars(child); + rl = &ivars->resources; retval += bus_print_child_header(dev, child); - retval += printf(" on at32\n"); + + retval += resource_list_print_type(rl, "port", SYS_RES_IOPORT, "%#lx"); + retval += resource_list_print_type(rl, "mem", SYS_RES_MEMORY, "%#lx"); + retval += resource_list_print_type(rl, "irq", SYS_RES_IRQ, "%ld"); + if (device_get_flags(dev)) { + retval += printf(" flags %#x", device_get_flags(dev)); + } + retval += bus_print_child_footer(dev, child); return (retval); } -static device_method_t at32_methods[] = { - DEVMETHOD(device_probe, at32_probe), - DEVMETHOD(device_attach, at32_attach), - DEVMETHOD(device_identify, at32_identify), +static struct resource_list * +at32_get_resource_list(device_t dev, device_t child) +{ + struct at32_ivar *ivar; - DEVMETHOD(bus_alloc_resource, at32_alloc_resource), - DEVMETHOD(bus_release_resource, at32_release_resource), - DEVMETHOD(bus_setup_intr, at32_setup_intr), - DEVMETHOD(bus_teardown_intr, at32_teardown_intr), - DEVMETHOD(bus_activate_resource, at32_activate_resource), - DEVMETHOD(bus_deactivate_resource, at32_deactivate_resource), - DEVMETHOD(bus_release_resource, at32_release_resource), + ivar = device_get_ivars(child); + return (&(ivar->resources)); +} - {0, 0}, -}; -static driver_t at32_driver = { - "at32", - at32_methods, - sizeof(struct at32_softc), -}; -static devclass_t at32_devclass; - -DRIVER_MODULE(at32, nexus, at32_driver, at32_devclass, 0, 0); ==== //depot/projects/avr32/src/sys/avr32/avr32/autoconf.c#2 (text+ko) ==== @@ -62,9 +62,9 @@ #include #include -static void configure_first (void *); -static void configure (void *); -static void configure_final (void *); +static void configure_first(void *); +static void configure(void *); +static void configure_final(void *); SYSINIT(configure1, SI_SUB_CONFIGURE, SI_ORDER_FIRST, configure_first, NULL); /* SI_ORDER_SECOND is hookable */ @@ -72,8 +72,6 @@ /* SI_ORDER_MIDDLE is hookable */ SYSINIT(configure3, SI_SUB_CONFIGURE, SI_ORDER_ANY, configure_final, NULL); -device_t nexus_dev; - /* * Determine i/o configuration for a machine. @@ -81,21 +79,21 @@ static void configure_first(void *dummy) { - device_add_child(root_bus, "nexus", 0); } static void configure(void *dummy) { - root_bus_configure(); } static void configure_final(void *dummy) { - cninit_finish(); + if (bootverbose) { + printf("Device configuration finished.\n"); + } cold = 0; } ==== //depot/projects/avr32/src/sys/avr32/avr32/clock.c#2 (text+ko) ==== @@ -2,10 +2,6 @@ * Copyright (c) 2008 Arnar Mar Sig * All rights reserved. * - * This code is derived from software contributed to Berkeley by - * the Systems Programming Group of the University of Utah Computer - * Science Department, and William Jolitz. - * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: @@ -44,29 +40,91 @@ #include #include +#include +#include #include -void cpu_initclocks(void) { +/* Prototypes */ +static unsigned count_get_timecount(struct timecounter *); + +/* Variable and private data */ +uint64_t clock_cpu_frequency; /* Finzd batter way for this */ +static uint64_t cycles_per_usec; +static uint64_t cycles_per_hz; +static struct timecounter count_timecounter = { + count_get_timecount, /* get_timecount */ + 0, /* no poll_pps */ + 0xffffffffu, /* counter_mask */ + 0, /* frequency */ + "AVR32", /* name */ + 1000, /* quality (adjusted in code) */ +}; + +/* Code */ +void +cpu_startprofclock(void) +{ avr32_impl(); } -void cpu_startprofclock(void) { +void +cpu_stopprofclock(void) +{ avr32_impl(); } -void cpu_stopprofclock(void) { +int +cpu_est_clockrate(int cpu_id, uint64_t *rate) +{ avr32_impl(); + return (ENXIO); } -int cpu_est_clockrate(int cpu_id, uint64_t *rate) { - avr32_impl(); - return (ENXIO); +void +cpu_initclocks(void) +{ + count_timecounter.tc_frequency = clock_cpu_frequency; + cycles_per_hz = clock_cpu_frequency / hz; + cycles_per_usec = (clock_cpu_frequency / (1000 * 1000)); + tc_init(&count_timecounter); } +static unsigned +count_get_timecount(struct timecounter *tc) +{ + return sysreg_read(COUNT); +} /* * Wait for about n microseconds (at least!). */ -void DELAY(int n) { - avr32_impl(); +void +DELAY(int n) +{ + uint32_t cur, last, delta, usecs; + + /* + * This works by polling the timer and counting the number of + * microseconds that go by. + */ + last = sysreg_read(COUNT); + delta = usecs = 0; + + while (n > usecs) { + cur = sysreg_read(COUNT); + + /* Check to see if the timer has wrapped around. */ + if (cur < last) { + delta += (cur + (cycles_per_hz - last)); + } else { + delta += (cur - last); + } + + last = cur; + + if (delta >= cycles_per_usec) { + usecs += delta / cycles_per_usec; + delta %= cycles_per_usec; + } + } } ==== //depot/projects/avr32/src/sys/avr32/avr32/cpu.c#3 (text+ko) ==== @@ -2,10 +2,6 @@ * Copyright (c) 2008 Arnar Mar Sig * All rights reserved. * - * This code is derived from software contributed to Berkeley by - * the Systems Programming Group of the University of Utah Computer - * Science Department, and William Jolitz. - * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: @@ -60,31 +56,53 @@ #include #include #include +#include #include #include +#include #include +#include extern vm_offset_t _evba; +extern vm_offset_t _evba_irq; -void cpu_init(void) { - // Set exception vector +void +cpu_init(void) +{ + int i; + + /* Set exception vector */ sysreg_write(EVBA, (uint32_t)&_evba); __asm__ __volatile__ ("csrf %0" : : "i"(AT32_SYS_SR_EM)); + + + /* Setup INTC, every interrupt is at priority 0 */ +/* for (i = 0; i < IRQ_COUNT; i++) { + reg_write(AT32AP700X_BASE + AT32AP700X_INTC_OFFSET + + (i * sizeof(register_t)), INTC, IPR, + (_evba_irq - _evba)); + } +*/ } -void cpu_idle(int busy) { +void +cpu_idle(int busy) +{ avr32_impl(); } -void cpu_halt(void) { +void +cpu_halt(void) +{ avr32_impl(); } -void cpu_reset(void) { +void +cpu_reset(void) +{ avr32_impl(); } - /** * Debugging code for avr32, this is here so i can do writes to usart1 without going thru all the * tty code ==== //depot/projects/avr32/src/sys/avr32/avr32/db_disasm.c#2 (text+ko) ==== @@ -1,11 +1,39 @@ +/*- + * Copyright (c) 2009 Arnar Mar Sig + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + #include __FBSDID("$FreeBSD: $"); #include +#include +#include #include #include #include -#include + #include #include ==== //depot/projects/avr32/src/sys/avr32/avr32/db_interface.c#2 (text+ko) ==== @@ -2,10 +2,6 @@ * Copyright (c) 2009 Arnar Mar Sig * All rights reserved. * - * This code is derived from software contributed to Berkeley by - * the Systems Programming Group of the University of Utah Computer - * Science Department, and William Jolitz. - * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: ==== //depot/projects/avr32/src/sys/avr32/avr32/elf_machdep.c#2 (text+ko) ==== @@ -2,10 +2,6 @@ * Copyright (c) 2008 Arnar Mar Sig * All rights reserved. * - * This code is derived from software contributed to Berkeley by - * the Systems Programming Group of the University of Utah Computer - * Science Department, and William Jolitz. - * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: ==== //depot/projects/avr32/src/sys/avr32/avr32/exception.S#2 (text+ko) ==== @@ -159,3 +159,10 @@ rcall trap_handle_breakpoint POP_TRAPFRAME rete + +.section .text.evba.irq +ENTRY(handle_irq) + sub r12, pc, (. - 2f) + bral panic + rete +2: .asciz "Interrupt handler needed" ==== //depot/projects/avr32/src/sys/avr32/avr32/intr.c#2 (text+ko) ==== @@ -2,10 +2,6 @@ * Copyright (c) 2008 Arnar Mar Sig * All rights reserved. * - * This code is derived from software contributed to Berkeley by - * the Systems Programming Group of the University of Utah Computer - * Science Department, and William Jolitz. - * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: @@ -44,26 +40,97 @@ #include #include #include +#include +#include +/* Private data */ +static struct intr_event *intr_events[IRQ_COUNT]; -register_t intr_disable(void) { +/* Code */ +register_t +intr_disable(void) +{ register_t s; s = sysreg_read(SR); - // Mask all interrupts - sysreg_write(SR, s & ~(bit_offset(SYS, SR, GM) | - bit_offset(SYS, SR, I0M) | - bit_offset(SYS, SR, I1M) | - bit_offset(SYS, SR, I2M) | - bit_offset(SYS, SR, I3M))); + __asm__ __volatile__ ("ssrf %0" : : "i"(AT32_SYS_SR_GM)); + return (s); +} + +void +intr_restore(register_t s) +{ + __asm__ __volatile__ ("csrf %0" : : "i"(AT32_SYS_SR_GM)); +} - return (s); +void +intr_handle_mni(void) +{ + avr32_impl(); } -void intr_restore(register_t s) { - sysreg_write(SR, s); +void +avr32_mask_irq(uintptr_t irq) +{ + int pri; + + avr32_impl(); + pri = bit_value(INTC, IPR, INTLEVEL, + reg_read(AT32AP700X_BASE + AT32AP700X_INTC_OFFSET + + (irq * sizeof(register_t)), INTC, IPR)); + sysreg_write(SR, sysreg_read(SR) | (bit_offset(SYS, SR, I0M) << pri)); } -void intr_handle_mni() { +void +avr32_unmask_irq(uintptr_t irq) +{ + int pri; + avr32_impl(); + pri = bit_value(INTC, IPR, INTLEVEL, + reg_read(AT32AP700X_BASE + AT32AP700X_INTC_OFFSET + + (irq * sizeof(register_t)), INTC, IPR)); + sysreg_write(SR, sysreg_read(SR) | ~(bit_offset(SYS, SR, I0M) << pri)); + +} + +void +avr32_setup_irqhandler(const char *name, driver_filter_t *filt, + void (*hand)(void*), void *arg, int irq, int flags, void **cookiep) +{ + struct intr_event *event; + int error; + + if (irq < 0 || irq >= IRQ_COUNT) { + return; + } + + event = intr_events[irq]; + if (event == NULL) { + error = intr_event_create(&event, (void *)irq, 0, irq, + (mask_fn)avr32_mask_irq, (mask_fn)avr32_unmask_irq, + NULL, NULL, "intr%d:", irq); + if (error) { + return; + } + intr_events[irq] = event; + } + intr_event_add_handler(event, name, filt, hand, arg, + intr_priority(flags), flags, cookiep); +} +int +avr32_remove_irqhandler(int irq, void *cookie) +{ + struct intr_event *event; + int error; + + event = intr_events[irq]; + avr32_mask_irq(irq); + + error = intr_event_remove_handler(cookie); + + if (!TAILQ_EMPTY(&event->ie_handlers)) { + avr32_unmask_irq(irq); + } + return (error); } ==== //depot/projects/avr32/src/sys/avr32/avr32/machdep.c#3 (text+ko) ==== @@ -2,10 +2,6 @@ * Copyright (c) 2008 Arnar Mar Sig * All rights reserved. * - * This code is derived from software contributed to Berkeley by - * the Systems Programming Group of the University of Utah Computer - * Science Department, and William Jolitz. - * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: @@ -77,6 +73,7 @@ struct pcpu *pcpup = &__pcpu; struct pcb proc0_pcb; extern vm_offset_t proc0_stack_end; +extern uint64_t clock_cpu_frequency; vm_offset_t phys_avail[10]; long realmem; @@ -118,16 +115,61 @@ } static void cpu_startup(void *dummy) { + uint32_t config; + char arch_type; + if (boothowto & RB_VERBOSE) { bootverbose++; } - bootverbose++; - printf("real memory = %u (%u MB)\n", ptoa(realmem), - ptoa(realmem) / 1048576); + bootverbose++; + + vm_ksubmap_init(&kmi); + + config = sysreg_read(CONFIG0); + switch (bit_value(SYS, CONFIG0, AT, config)) { + case 0: + arch_type = 'A'; + break; + case 1: + arch_type = 'B'; + break; + default: + arch_type = 'x'; + break; + } + printf("CPU: AVR32%c (ID %d, Rev %d) (%ju MHz)\n Features: " + , arch_type + , bit_value(SYS, CONFIG0, PROCESSORID, config) + , bit_value(SYS, CONFIG0, AR, config) + , clock_cpu_frequency / 1000000 + ); - vm_ksubmap_init(&kmi); + if (bit_value(SYS, CONFIG0, F, config)) { + printf("FPU "); + } + if (bit_value(SYS, CONFIG0, J, config)) { + printf("JAVA "); + } + if (bit_value(SYS, CONFIG0, P, config)) { + printf("PC "); + } + if (bit_value(SYS, CONFIG0, O, config)) { + printf("OCD "); + } + if (bit_value(SYS, CONFIG0, S, config)) { + printf("SIMD "); + } + if (bit_value(SYS, CONFIG0, D, config)) { + printf("DSP "); + } + if (bit_value(SYS, CONFIG0, R, config)) { + printf("RMW"); + } + printf("\n"); + printf("real memory = %u (%u MB)\n", ptoa(realmem), + ptoa(realmem) / 1048576); printf("avail memory = %u (%uMB)\n", ptoa(cnt.v_free_count), ptoa(cnt.v_free_count) / 1048576); ==== //depot/projects/avr32/src/sys/avr32/avr32/nexus.c#2 (text+ko) ==== @@ -67,11 +67,16 @@ static int nexus_attach(device_t); static int nexus_print_child(device_t, device_t); static device_t nexus_add_child(device_t, int, const char *, int); -static struct resource *nexus_alloc_resource(device_t, device_t, int, int *, u_long, u_long, u_long, u_int); -static int nexus_release_resource(device_t, device_t, int, int, struct resource *); -static int nexus_activate_resource(device_t, device_t, int, int, struct resource *); -static int nexus_deactivate_resource(device_t, device_t, int, int, struct resource *); -static int nexus_setup_intr(device_t, device_t, struct resource *, int flags, driver_filter_t filter, void (*)(void *), void *, void **); +static struct resource *nexus_alloc_resource(device_t, device_t, int, int *, + u_long, u_long, u_long, u_int); +static int nexus_release_resource(device_t, device_t, int, int, + struct resource *); +static int nexus_activate_resource(device_t, device_t, int, int, + struct resource *); +static int nexus_deactivate_resource(device_t, device_t, int, int, + struct resource *); +static int nexus_setup_intr(device_t, device_t, struct resource *, int flags, + driver_filter_t filter, void (*)(void *), void *, void **); static int nexus_teardown_intr(device_t, device_t, struct resource *, void *); /* Nexus data */ @@ -96,70 +101,42 @@ DEVMETHOD(bus_teardown_intr, nexus_teardown_intr), { 0, 0 } }; - static devclass_t nexus_devclass; DEFINE_CLASS_0(nexus, nexus_driver, nexus_methods, 1); DRIVER_MODULE(nexus, root, nexus_driver, nexus_devclass, 0, 0); -static struct rman rman_irq; /**< IRQs */ -static struct rman rman_mem; /**< Memory addresses */ - -static int nexus_probe(device_t dev) { +/* Code */ +static int +nexus_probe(device_t dev) +{ device_set_desc(dev, "AVR32 root nexus"); - rman_mem.rm_start = 0; - rman_mem.rm_end = ~0u; - rman_mem.rm_type = RMAN_ARRAY; - rman_mem.rm_descr = "Memory addresses"; - if (rman_init(&rman_mem) != 0 || rman_manage_region(&rman_mem, 0, ~0) != 0) { - panic("%s: mem_rman", __func__); - } - -/* rman_irq.rm_start = 0; - rman_irq.rm_end = XXX; - rman_irq.rm_type = RMAN_ARRAY; - rman_irq.rm_descr = "Hardware IRQs"; - if (rman_init(&rman_irq) != 0 || rman_manage_region(&rman_irq, 0, XXX) != 0) { - panic("%s: irq_rman", __func__); - } */ - - return 0; + return (0); } -static int nexus_setup_intr(device_t dev, device_t child, struct resource *res, int flags, driver_filter_t *filt, driver_intr_t *intr, void *arg, void **cookiep) { +static int +nexus_setup_intr(device_t dev, device_t child, struct resource *res, int flags, + driver_filter_t *filt, driver_intr_t *intr, void *arg, void **cookiep) +{ avr32_impl(); -/* int irq; - - if ((rman_get_flags(res) & RF_SHAREABLE) == 0) - flags |= INTR_EXCL; - - for (i = rman_get_start(res); i <= rman_get_end(res); i++) { - avr32_setup_irqhandler(device_get_nameunit(child), filt, intr, arg, i, flags, cookiep); - }*/ - return 0; + return (0); } static int nexus_teardown_intr(device_t dev, device_t child, struct resource *r, void *ih) { avr32_impl(); -/* int error; - int i; - - error = avr32_remove_irqhandler(ih); - return (error);*/ + return (0); } >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Wed Feb 4 11:26:11 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 4779E1065673; Wed, 4 Feb 2009 11:26:11 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 046CD1065670 for ; Wed, 4 Feb 2009 11:26:11 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id E43C98FC0C for ; Wed, 4 Feb 2009 11:26:10 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n14BQAqE006432 for ; Wed, 4 Feb 2009 11:26:10 GMT (envelope-from hselasky@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n14BQAOI006430 for perforce@freebsd.org; Wed, 4 Feb 2009 11:26:10 GMT (envelope-from hselasky@FreeBSD.org) Date: Wed, 4 Feb 2009 11:26:10 GMT Message-Id: <200902041126.n14BQAOI006430@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky To: Perforce Change Reviews Cc: Subject: PERFORCE change 157131 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 04 Feb 2009 11:26:12 -0000 http://perforce.freebsd.org/chv.cgi?CH=157131 Change 157131 by hselasky@hselasky_laptop001 on 2009/02/04 11:26:09 USB Ethernet cleanup patches by me: - use factored out clear stall code instead of having per-driver clear stall transfers. Remove unused clear stall flags. - only clear stall data write transfers at startup. - fix one or two comments - add new global function to USB core: usb2_get_mode() which returns the current USB device mode. - some minor nits Affected files ... .. //depot/projects/usb/src/sys/dev/usb2/core/usb2_core.h#34 edit .. //depot/projects/usb/src/sys/dev/usb2/core/usb2_device.c#51 edit .. //depot/projects/usb/src/sys/dev/usb2/ethernet/if_aue2.c#21 edit .. //depot/projects/usb/src/sys/dev/usb2/ethernet/if_auereg.h#4 edit .. //depot/projects/usb/src/sys/dev/usb2/ethernet/if_axe2.c#21 edit .. //depot/projects/usb/src/sys/dev/usb2/ethernet/if_axereg.h#4 edit .. //depot/projects/usb/src/sys/dev/usb2/ethernet/if_cdce2.c#19 edit .. //depot/projects/usb/src/sys/dev/usb2/ethernet/if_cdcereg.h#4 edit .. //depot/projects/usb/src/sys/dev/usb2/ethernet/if_cue2.c#20 edit .. //depot/projects/usb/src/sys/dev/usb2/ethernet/if_cuereg.h#4 edit .. //depot/projects/usb/src/sys/dev/usb2/ethernet/if_kue2.c#20 edit .. //depot/projects/usb/src/sys/dev/usb2/ethernet/if_kuereg.h#4 edit .. //depot/projects/usb/src/sys/dev/usb2/ethernet/if_rue2.c#20 edit .. //depot/projects/usb/src/sys/dev/usb2/ethernet/if_ruereg.h#4 edit .. //depot/projects/usb/src/sys/dev/usb2/ethernet/if_udav2.c#20 edit .. //depot/projects/usb/src/sys/dev/usb2/ethernet/if_udavreg.h#4 edit Differences ... ==== //depot/projects/usb/src/sys/dev/usb2/core/usb2_core.h#34 (text+ko) ==== @@ -434,6 +434,7 @@ uint8_t usb2_get_interface_altindex(struct usb2_interface *iface); usb2_error_t usb2_set_alt_interface_index(struct usb2_device *udev, uint8_t iface_index, uint8_t alt_index); +uint8_t usb2_get_mode(struct usb2_device *udev); uint8_t usb2_get_speed(struct usb2_device *udev); uint32_t usb2_get_isoc_fps(struct usb2_device *udev); usb2_error_t usb2_transfer_setup(struct usb2_device *udev, ==== //depot/projects/usb/src/sys/dev/usb2/core/usb2_device.c#51 (text+ko) ==== @@ -1952,6 +1952,20 @@ } } +/* + * Returns: + * See: USB_MODE_XXX + */ +uint8_t +usb2_get_mode(struct usb2_device *udev) +{ + return (udev->flags.usb2_mode); +} + +/* + * Returns: + * See: USB_SPEED_XXX + */ uint8_t usb2_get_speed(struct usb2_device *udev) { ==== //depot/projects/usb/src/sys/dev/usb2/ethernet/if_aue2.c#21 (text+ko) ==== @@ -178,11 +178,8 @@ static miibus_writereg_t aue_miibus_writereg; static miibus_statchg_t aue_miibus_statchg; -static usb2_callback_t aue_intr_clear_stall_callback; static usb2_callback_t aue_intr_callback; -static usb2_callback_t aue_bulk_read_clear_stall_callback; static usb2_callback_t aue_bulk_read_callback; -static usb2_callback_t aue_bulk_write_clear_stall_callback; static usb2_callback_t aue_bulk_write_callback; static usb2_ether_fn_t aue_attach_post; @@ -227,28 +224,6 @@ .mh.callback = aue_bulk_read_callback, }, - [AUE_BULK_CS_WR] = { - .type = UE_CONTROL, - .endpoint = 0x00, /* Control pipe */ - .direction = UE_DIR_ANY, - .mh.bufsize = sizeof(struct usb2_device_request), - .mh.flags = {}, - .mh.callback = aue_bulk_write_clear_stall_callback, - .mh.timeout = 1000, /* 1 second */ - .mh.interval = 50, /* 50ms */ - }, - - [AUE_BULK_CS_RD] = { - .type = UE_CONTROL, - .endpoint = 0x00, /* Control pipe */ - .direction = UE_DIR_ANY, - .mh.bufsize = sizeof(struct usb2_device_request), - .mh.flags = {}, - .mh.callback = aue_bulk_read_clear_stall_callback, - .mh.timeout = 1000, /* 1 second */ - .mh.interval = 50, /* 50ms */ - }, - [AUE_INTR_DT_RD] = { .type = UE_INTERRUPT, .endpoint = UE_ADDR_ANY, @@ -257,17 +232,6 @@ .mh.bufsize = 0, /* use wMaxPacketSize */ .mh.callback = aue_intr_callback, }, - - [AUE_INTR_CS_RD] = { - .type = UE_CONTROL, - .endpoint = 0x00, /* Control pipe */ - .direction = UE_DIR_ANY, - .mh.bufsize = sizeof(struct usb2_device_request), - .mh.flags = {}, - .mh.callback = aue_intr_clear_stall_callback, - .mh.timeout = 1000, /* 1 second */ - .mh.interval = 50, /* 50ms */ - }, }; static device_method_t aue_methods[] = { @@ -749,19 +713,6 @@ } static void -aue_intr_clear_stall_callback(struct usb2_xfer *xfer) -{ - struct aue_softc *sc = xfer->priv_sc; - struct usb2_xfer *xfer_other = sc->sc_xfer[AUE_INTR_DT_RD]; - - if (usb2_clear_stall_callback(xfer, xfer_other)) { - DPRINTF("stall cleared\n"); - sc->sc_flags &= ~AUE_FLAG_INTR_STALL; - usb2_transfer_start(xfer_other); - } -} - -static void aue_intr_callback(struct usb2_xfer *xfer) { struct aue_softc *sc = xfer->priv_sc; @@ -784,38 +735,22 @@ } /* FALLTHROUGH */ case USB_ST_SETUP: - if (sc->sc_flags & AUE_FLAG_INTR_STALL) { - usb2_transfer_start(sc->sc_xfer[AUE_INTR_CS_RD]); - } else { - xfer->frlengths[0] = xfer->max_data_length; - usb2_start_hardware(xfer); - } +tr_setup: + xfer->frlengths[0] = xfer->max_data_length; + usb2_start_hardware(xfer); return; default: /* Error */ if (xfer->error != USB_ERR_CANCELLED) { - /* start clear stall */ - sc->sc_flags |= AUE_FLAG_INTR_STALL; - usb2_transfer_start(sc->sc_xfer[AUE_INTR_CS_RD]); + /* try to clear stall first */ + xfer->flags.stall_pipe = 1; + goto tr_setup; } return; } } static void -aue_bulk_read_clear_stall_callback(struct usb2_xfer *xfer) -{ - struct aue_softc *sc = xfer->priv_sc; - struct usb2_xfer *xfer_other = sc->sc_xfer[AUE_BULK_DT_RD]; - - if (usb2_clear_stall_callback(xfer, xfer_other)) { - DPRINTF("stall cleared\n"); - sc->sc_flags &= ~AUE_FLAG_READ_STALL; - usb2_transfer_start(xfer_other); - } -} - -static void aue_bulk_read_callback(struct usb2_xfer *xfer) { struct aue_softc *sc = xfer->priv_sc; @@ -859,43 +794,25 @@ /* FALLTHROUGH */ case USB_ST_SETUP: tr_setup: - - if (sc->sc_flags & AUE_FLAG_READ_STALL) { - usb2_transfer_start(sc->sc_xfer[AUE_BULK_CS_RD]); - } else { - xfer->frlengths[0] = xfer->max_data_length; - usb2_start_hardware(xfer); - } + xfer->frlengths[0] = xfer->max_data_length; + usb2_start_hardware(xfer); usb2_ether_rxflush(ue); return; default: /* Error */ + DPRINTF("bulk read error, %s\n", + usb2_errstr(xfer->error)); + if (xfer->error != USB_ERR_CANCELLED) { /* try to clear stall first */ - sc->sc_flags |= AUE_FLAG_READ_STALL; - usb2_transfer_start(sc->sc_xfer[AUE_BULK_CS_RD]); + xfer->flags.stall_pipe = 1; + goto tr_setup; } - DPRINTF("bulk read error, %s\n", - usb2_errstr(xfer->error)); return; - } } static void -aue_bulk_write_clear_stall_callback(struct usb2_xfer *xfer) -{ - struct aue_softc *sc = xfer->priv_sc; - struct usb2_xfer *xfer_other = sc->sc_xfer[AUE_BULK_DT_WR]; - - if (usb2_clear_stall_callback(xfer, xfer_other)) { - DPRINTF("stall cleared\n"); - sc->sc_flags &= ~AUE_FLAG_WRITE_STALL; - usb2_transfer_start(xfer_other); - } -} - -static void aue_bulk_write_callback(struct usb2_xfer *xfer) { struct aue_softc *sc = xfer->priv_sc; @@ -910,25 +827,19 @@ /* FALLTHROUGH */ case USB_ST_SETUP: - - if (sc->sc_flags & AUE_FLAG_WRITE_STALL) { - usb2_transfer_start(sc->sc_xfer[AUE_BULK_CS_WR]); - goto done; - } +tr_setup: if ((sc->sc_flags & AUE_FLAG_LINK) == 0) { /* * don't send anything if there is no link ! */ - goto done; + return; } IFQ_DRV_DEQUEUE(&ifp->if_snd, m); - if (m == NULL) { - goto done; - } - if (m->m_pkthdr.len > MCLBYTES) { + if (m == NULL) + return; + if (m->m_pkthdr.len > MCLBYTES) m->m_pkthdr.len = MCLBYTES; - } if (sc->sc_flags & AUE_FLAG_VER_2) { xfer->frlengths[0] = m->m_pkthdr.len; @@ -941,10 +852,12 @@ xfer->frlengths[0] = (m->m_pkthdr.len + 2); /* - * The ADMtek documentation says that the packet length is - * supposed to be specified in the first two bytes of the - * transfer, however it actually seems to ignore this info - * and base the frame size on the bulk transfer length. + * The ADMtek documentation says that the + * packet length is supposed to be specified + * in the first two bytes of the transfer, + * however it actually seems to ignore this + * info and base the frame size on the bulk + * transfer length. */ buf[0] = (uint8_t)(m->m_pkthdr.len); buf[1] = (uint8_t)(m->m_pkthdr.len >> 8); @@ -964,22 +877,20 @@ m_freem(m); usb2_start_hardware(xfer); - -done: return; default: /* Error */ DPRINTFN(11, "transfer error, %s\n", usb2_errstr(xfer->error)); + ifp->if_oerrors++; + if (xfer->error != USB_ERR_CANCELLED) { /* try to clear stall first */ - sc->sc_flags |= AUE_FLAG_WRITE_STALL; - usb2_transfer_start(sc->sc_xfer[AUE_BULK_CS_WR]); + xfer->flags.stall_pipe = 1; + goto tr_setup; } - ifp->if_oerrors++; return; - } } @@ -1042,7 +953,7 @@ AUE_SETBIT(sc, AUE_CTL0, AUE_CTL0_TX_ENB); AUE_SETBIT(sc, AUE_CTL2, AUE_CTL2_EP3_CLR); - sc->sc_flags |= AUE_FLAG_READ_STALL | AUE_FLAG_WRITE_STALL; + usb2_transfer_set_stall(sc->sc_xfer[AUE_BULK_DT_WR]); ifp->if_drv_flags |= IFF_DRV_RUNNING; aue_start(ue); @@ -1121,10 +1032,7 @@ */ usb2_transfer_stop(sc->sc_xfer[AUE_BULK_DT_WR]); usb2_transfer_stop(sc->sc_xfer[AUE_BULK_DT_RD]); - usb2_transfer_stop(sc->sc_xfer[AUE_BULK_CS_WR]); - usb2_transfer_stop(sc->sc_xfer[AUE_BULK_CS_RD]); usb2_transfer_stop(sc->sc_xfer[AUE_INTR_DT_RD]); - usb2_transfer_stop(sc->sc_xfer[AUE_INTR_CS_RD]); aue_csr_write_1(sc, AUE_CTL0, 0); aue_csr_write_1(sc, AUE_CTL1, 0); ==== //depot/projects/usb/src/sys/dev/usb2/ethernet/if_auereg.h#4 (text+ko) ==== @@ -63,11 +63,8 @@ enum { AUE_BULK_DT_WR, AUE_BULK_DT_RD, - AUE_BULK_CS_WR, - AUE_BULK_CS_RD, AUE_INTR_DT_RD, - AUE_INTR_CS_RD, - AUE_N_TRANSFER = 6, + AUE_N_TRANSFER, }; #define AUE_INTR_PKTLEN 0x8 @@ -214,9 +211,6 @@ #define AUE_FLAG_PNA 0x0002 /* has Home PNA */ #define AUE_FLAG_PII 0x0004 /* Pegasus II chip */ #define AUE_FLAG_LINK 0x0008 /* wait for link to come up */ -#define AUE_FLAG_READ_STALL 0x0010 /* wait for clearing of stall */ -#define AUE_FLAG_WRITE_STALL 0x0020 /* wait for clearing of stall */ -#define AUE_FLAG_INTR_STALL 0x0040 /* wait for clearing of stall */ #define AUE_FLAG_VER_2 0x0200 /* chip is version 2 */ #define AUE_FLAG_DUAL_PHY 0x0400 /* chip has two transcivers */ }; ==== //depot/projects/usb/src/sys/dev/usb2/ethernet/if_axe2.c#21 (text+ko) ==== @@ -101,7 +101,7 @@ * 1 4096 bytes * 2 8192 bytes * 3 16384 bytes - * use the largest your system can handle without usb stalling. + * use the largest your system can handle without USB stalling. * * NB: 88772 parts appear to generate lots of input errors with * a 2K rx buffer and 8K is only slightly faster than 4K on an @@ -153,11 +153,8 @@ static device_detach_t axe_detach; static device_shutdown_t axe_shutdown; -static usb2_callback_t axe_intr_clear_stall_callback; static usb2_callback_t axe_intr_callback; -static usb2_callback_t axe_bulk_read_clear_stall_callback; static usb2_callback_t axe_bulk_read_callback; -static usb2_callback_t axe_bulk_write_clear_stall_callback; static usb2_callback_t axe_bulk_write_callback; static miibus_readreg_t axe_miibus_readreg; @@ -204,28 +201,6 @@ .mh.timeout = 0, /* no timeout */ }, - [AXE_BULK_CS_WR] = { - .type = UE_CONTROL, - .endpoint = 0x00, /* Control pipe */ - .direction = UE_DIR_ANY, - .mh.bufsize = sizeof(struct usb2_device_request), - .mh.flags = {}, - .mh.callback = axe_bulk_write_clear_stall_callback, - .mh.timeout = 1000, /* 1 second */ - .mh.interval = 50, /* 50ms */ - }, - - [AXE_BULK_CS_RD] = { - .type = UE_CONTROL, - .endpoint = 0x00, /* Control pipe */ - .direction = UE_DIR_ANY, - .mh.bufsize = sizeof(struct usb2_device_request), - .mh.flags = {}, - .mh.callback = axe_bulk_read_clear_stall_callback, - .mh.timeout = 1000, /* 1 second */ - .mh.interval = 50, /* 50ms */ - }, - [AXE_INTR_DT_RD] = { .type = UE_INTERRUPT, .endpoint = UE_ADDR_ANY, @@ -234,17 +209,6 @@ .mh.bufsize = 0, /* use wMaxPacketSize */ .mh.callback = axe_intr_callback, }, - - [AXE_INTR_CS_RD] = { - .type = UE_CONTROL, - .endpoint = 0x00, /* Control pipe */ - .direction = UE_DIR_ANY, - .mh.bufsize = sizeof(struct usb2_device_request), - .mh.flags = {}, - .mh.callback = axe_intr_clear_stall_callback, - .mh.timeout = 1000, /* 1 second */ - .mh.interval = 50, /* 50ms */ - }, }; static device_method_t axe_methods[] = { @@ -739,57 +703,26 @@ } static void -axe_intr_clear_stall_callback(struct usb2_xfer *xfer) -{ - struct axe_softc *sc = xfer->priv_sc; - struct usb2_xfer *xfer_other = sc->sc_xfer[AXE_INTR_DT_RD]; - - if (usb2_clear_stall_callback(xfer, xfer_other)) { - DPRINTF("stall cleared\n"); - sc->sc_flags &= ~AXE_FLAG_INTR_STALL; - usb2_transfer_start(xfer_other); - } -} - -static void axe_intr_callback(struct usb2_xfer *xfer) { - struct axe_softc *sc = xfer->priv_sc; - switch (USB_GET_STATE(xfer)) { case USB_ST_TRANSFERRED: case USB_ST_SETUP: - if (sc->sc_flags & AXE_FLAG_INTR_STALL) { - usb2_transfer_start(sc->sc_xfer[AXE_INTR_CS_RD]); - } else { - xfer->frlengths[0] = xfer->max_data_length; - usb2_start_hardware(xfer); - } +tr_setup: + xfer->frlengths[0] = xfer->max_data_length; + usb2_start_hardware(xfer); return; default: /* Error */ if (xfer->error != USB_ERR_CANCELLED) { - /* start clear stall */ - sc->sc_flags |= AXE_FLAG_INTR_STALL; - usb2_transfer_start(sc->sc_xfer[AXE_INTR_CS_RD]); + /* try to clear stall first */ + xfer->flags.stall_pipe = 1; + goto tr_setup; } return; } } -static void -axe_bulk_read_clear_stall_callback(struct usb2_xfer *xfer) -{ - struct axe_softc *sc = xfer->priv_sc; - struct usb2_xfer *xfer_other = sc->sc_xfer[AXE_BULK_DT_RD]; - - if (usb2_clear_stall_callback(xfer, xfer_other)) { - DPRINTF("stall cleared\n"); - sc->sc_flags &= ~AXE_FLAG_READ_STALL; - usb2_transfer_start(xfer_other); - } -} - #if (AXE_BULK_BUF_SIZE >= 0x10000) #error "Please update axe_bulk_read_callback()!" #endif @@ -853,40 +786,25 @@ /* FALLTHROUGH */ case USB_ST_SETUP: tr_setup: - if (sc->sc_flags & AXE_FLAG_READ_STALL) { - usb2_transfer_start(sc->sc_xfer[AXE_BULK_CS_RD]); - } else { - xfer->frlengths[0] = xfer->max_data_length; - usb2_start_hardware(xfer); - } + xfer->frlengths[0] = xfer->max_data_length; + usb2_start_hardware(xfer); usb2_ether_rxflush(ue); return; default: /* Error */ + DPRINTF("bulk read error, %s\n", + usb2_errstr(xfer->error)); + if (xfer->error != USB_ERR_CANCELLED) { /* try to clear stall first */ - sc->sc_flags |= AXE_FLAG_READ_STALL; - usb2_transfer_start(sc->sc_xfer[AXE_BULK_CS_RD]); + xfer->flags.stall_pipe = 1; + goto tr_setup; } - DPRINTF("bulk read error, %s\n", usb2_errstr(xfer->error)); return; } } -static void -axe_bulk_write_clear_stall_callback(struct usb2_xfer *xfer) -{ - struct axe_softc *sc = xfer->priv_sc; - struct usb2_xfer *xfer_other = sc->sc_xfer[AXE_BULK_DT_WR]; - - if (usb2_clear_stall_callback(xfer, xfer_other)) { - DPRINTF("stall cleared\n"); - sc->sc_flags &= ~AXE_FLAG_WRITE_STALL; - usb2_transfer_start(xfer_other); - } -} - #if ((AXE_BULK_BUF_SIZE >= 0x10000) || (AXE_BULK_BUF_SIZE < (MCLBYTES+4))) #error "Please update axe_bulk_write_callback()!" #endif @@ -906,16 +824,12 @@ ifp->if_opackets++; /* FALLTHROUGH */ case USB_ST_SETUP: - - if (sc->sc_flags & AXE_FLAG_WRITE_STALL) { - usb2_transfer_start(sc->sc_xfer[AXE_BULK_CS_WR]); - goto done; - } +tr_setup: if ((sc->sc_flags & AXE_FLAG_LINK) == 0) { /* * don't send anything if there is no link ! */ - goto done; + return; } pos = 0; @@ -926,8 +840,7 @@ if (m == NULL) { if (pos > 0) break; /* send out data */ - else - goto done; + return; } if (m->m_pkthdr.len > MCLBYTES) { m->m_pkthdr.len = MCLBYTES; @@ -975,20 +888,19 @@ xfer->frlengths[0] = pos; usb2_start_hardware(xfer); - -done: return; default: /* Error */ DPRINTFN(11, "transfer error, %s\n", usb2_errstr(xfer->error)); + ifp->if_oerrors++; + if (xfer->error != USB_ERR_CANCELLED) { /* try to clear stall first */ - sc->sc_flags |= AXE_FLAG_WRITE_STALL; - usb2_transfer_start(sc->sc_xfer[AXE_BULK_CS_WR]); + xfer->flags.stall_pipe = 1; + goto tr_setup; } - ifp->if_oerrors++; return; } @@ -1071,7 +983,7 @@ /* Load the multicast filter. */ axe_setmulti(ue); - sc->sc_flags |= AXE_FLAG_READ_STALL | AXE_FLAG_WRITE_STALL; + usb2_transfer_set_stall(sc->sc_xfer[AXE_BULK_DT_WR]); ifp->if_drv_flags |= IFF_DRV_RUNNING; axe_start(ue); @@ -1115,10 +1027,7 @@ */ usb2_transfer_stop(sc->sc_xfer[AXE_BULK_DT_WR]); usb2_transfer_stop(sc->sc_xfer[AXE_BULK_DT_RD]); - usb2_transfer_stop(sc->sc_xfer[AXE_BULK_CS_WR]); - usb2_transfer_stop(sc->sc_xfer[AXE_BULK_CS_RD]); usb2_transfer_stop(sc->sc_xfer[AXE_INTR_DT_RD]); - usb2_transfer_stop(sc->sc_xfer[AXE_INTR_CS_RD]); axe_reset(sc); } ==== //depot/projects/usb/src/sys/dev/usb2/ethernet/if_axereg.h#4 (text+ko) ==== @@ -172,11 +172,8 @@ enum { AXE_BULK_DT_WR, AXE_BULK_DT_RD, - AXE_BULK_CS_WR, - AXE_BULK_CS_RD, AXE_INTR_DT_RD, - AXE_INTR_CS_RD, - AXE_N_TRANSFER = 6, + AXE_N_TRANSFER, }; struct axe_softc { @@ -187,9 +184,6 @@ int sc_flags; #define AXE_FLAG_LINK 0x0001 -#define AXE_FLAG_INTR_STALL 0x0002 -#define AXE_FLAG_READ_STALL 0x0004 -#define AXE_FLAG_WRITE_STALL 0x0008 #define AXE_FLAG_772 0x1000 /* AX88772 */ #define AXE_FLAG_178 0x2000 /* AX88178 */ ==== //depot/projects/usb/src/sys/dev/usb2/ethernet/if_cdce2.c#19 (text+ko) ==== @@ -557,11 +557,17 @@ ifp->if_drv_flags |= IFF_DRV_RUNNING; - /* - * start all the transfers - */ + /* start interrupt transfer */ + usb2_transfer_start(sc->sc_xfer[CDCE_INTR]); + + /* stall data write direction, which depends on USB mode */ + if (usb2_get_mode(sc->sc_ue.ue_udev) == USB_MODE_HOST) + usb2_transfer_set_stall(sc->sc_xfer[CDCE_BULK_A]); + else + usb2_transfer_set_stall(sc->sc_xfer[CDCE_BULK_B]); + + /* start data transfers */ cdce_start(ue); - usb2_transfer_start(sc->sc_xfer[CDCE_INTR]); } static void ==== //depot/projects/usb/src/sys/dev/usb2/ethernet/if_cdcereg.h#4 (text+ko) ==== @@ -42,7 +42,7 @@ CDCE_BULK_A, CDCE_BULK_B, CDCE_INTR, - CDCE_N_TRANSFER = 3, + CDCE_N_TRANSFER, }; struct cdce_softc { @@ -52,7 +52,7 @@ struct mbuf *sc_rx_buf[CDCE_FRAMES_MAX]; struct mbuf *sc_tx_buf[CDCE_FRAMES_MAX]; - uint16_t sc_flags; + int sc_flags; #define CDCE_FLAG_ZAURUS 0x0001 #define CDCE_FLAG_NO_UNION 0x0002 #define CDCE_FLAG_RX_DATA 0x0010 ==== //depot/projects/usb/src/sys/dev/usb2/ethernet/if_cue2.c#20 (text+ko) ==== @@ -88,9 +88,7 @@ static device_detach_t cue_detach; static device_shutdown_t cue_shutdown; -static usb2_callback_t cue_bulk_read_clear_stall_callback; static usb2_callback_t cue_bulk_read_callback; -static usb2_callback_t cue_bulk_write_clear_stall_callback; static usb2_callback_t cue_bulk_write_callback; static usb2_ether_fn_t cue_attach_post; @@ -137,28 +135,6 @@ .mh.flags = {.pipe_bof = 1,.short_xfer_ok = 1,}, .mh.callback = cue_bulk_read_callback, }, - - [CUE_BULK_CS_WR] = { - .type = UE_CONTROL, - .endpoint = 0x00, /* Control pipe */ - .direction = UE_DIR_ANY, - .mh.bufsize = sizeof(struct usb2_device_request), - .mh.flags = {}, - .mh.callback = cue_bulk_write_clear_stall_callback, - .mh.timeout = 1000, /* 1 second */ - .mh.interval = 50, /* 50ms */ - }, - - [CUE_BULK_CS_RD] = { - .type = UE_CONTROL, - .endpoint = 0x00, /* Control pipe */ - .direction = UE_DIR_ANY, - .mh.bufsize = sizeof(struct usb2_device_request), - .mh.flags = {}, - .mh.callback = cue_bulk_read_clear_stall_callback, - .mh.timeout = 1000, /* 1 second */ - .mh.interval = 50, /* 50ms */ - }, }; static device_method_t cue_methods[] = { @@ -452,19 +428,6 @@ } static void -cue_bulk_read_clear_stall_callback(struct usb2_xfer *xfer) -{ - struct cue_softc *sc = xfer->priv_sc; - struct usb2_xfer *xfer_other = sc->sc_xfer[CUE_BULK_DT_RD]; - - if (usb2_clear_stall_callback(xfer, xfer_other)) { - DPRINTF("stall cleared\n"); - sc->sc_flags &= ~CUE_FLAG_READ_STALL; - usb2_transfer_start(xfer_other); - } -} - -static void cue_bulk_read_callback(struct usb2_xfer *xfer) { struct cue_softc *sc = xfer->priv_sc; @@ -489,43 +452,26 @@ /* FALLTHROUGH */ case USB_ST_SETUP: tr_setup: - - if (sc->sc_flags & CUE_FLAG_READ_STALL) { - usb2_transfer_start(sc->sc_xfer[CUE_BULK_CS_RD]); - } else { - xfer->frlengths[0] = xfer->max_data_length; - usb2_start_hardware(xfer); - } + xfer->frlengths[0] = xfer->max_data_length; + usb2_start_hardware(xfer); usb2_ether_rxflush(ue); return; default: /* Error */ + DPRINTF("bulk read error, %s\n", + usb2_errstr(xfer->error)); + if (xfer->error != USB_ERR_CANCELLED) { /* try to clear stall first */ - sc->sc_flags |= CUE_FLAG_READ_STALL; - usb2_transfer_start(sc->sc_xfer[CUE_BULK_CS_RD]); + xfer->flags.stall_pipe = 1; + goto tr_setup; } - DPRINTF("bulk read error, %s\n", - usb2_errstr(xfer->error)); return; } } static void -cue_bulk_write_clear_stall_callback(struct usb2_xfer *xfer) -{ - struct cue_softc *sc = xfer->priv_sc; - struct usb2_xfer *xfer_other = sc->sc_xfer[CUE_BULK_DT_WR]; - - if (usb2_clear_stall_callback(xfer, xfer_other)) { - DPRINTF("stall cleared\n"); - sc->sc_flags &= ~CUE_FLAG_WRITE_STALL; - usb2_transfer_start(xfer_other); - } -} - -static void cue_bulk_write_callback(struct usb2_xfer *xfer) { struct cue_softc *sc = xfer->priv_sc; @@ -540,19 +486,13 @@ /* FALLTHROUGH */ case USB_ST_SETUP: - - if (sc->sc_flags & CUE_FLAG_WRITE_STALL) { - usb2_transfer_start(sc->sc_xfer[CUE_BULK_CS_WR]); - goto done; - } +tr_setup: IFQ_DRV_DEQUEUE(&ifp->if_snd, m); - if (m == NULL) { - goto done; - } - if (m->m_pkthdr.len > MCLBYTES) { + if (m == NULL) + return; + if (m->m_pkthdr.len > MCLBYTES) m->m_pkthdr.len = MCLBYTES; - } xfer->frlengths[0] = (m->m_pkthdr.len + 2); /* the first two bytes are the frame length */ @@ -575,21 +515,20 @@ usb2_start_hardware(xfer); -done: return; default: /* Error */ DPRINTFN(11, "transfer error, %s\n", usb2_errstr(xfer->error)); + ifp->if_oerrors++; + if (xfer->error != USB_ERR_CANCELLED) { /* try to clear stall first */ - sc->sc_flags |= CUE_FLAG_WRITE_STALL; - usb2_transfer_start(sc->sc_xfer[CUE_BULK_CS_WR]); + xfer->flags.stall_pipe = 1; + goto tr_setup; } - ifp->if_oerrors++; return; - } } @@ -661,7 +600,7 @@ /* Program the LED operation. */ cue_csr_write_1(sc, CUE_LEDCTL, CUE_LEDCTL_FOLLOW_LINK); - sc->sc_flags |= CUE_FLAG_READ_STALL | CUE_FLAG_WRITE_STALL; + usb2_transfer_set_stall(sc->sc_xfer[CUE_BULK_DT_WR]); ifp->if_drv_flags |= IFF_DRV_RUNNING; cue_start(ue); @@ -686,8 +625,6 @@ */ usb2_transfer_stop(sc->sc_xfer[CUE_BULK_DT_WR]); usb2_transfer_stop(sc->sc_xfer[CUE_BULK_DT_RD]); - usb2_transfer_stop(sc->sc_xfer[CUE_BULK_CS_WR]); - usb2_transfer_stop(sc->sc_xfer[CUE_BULK_CS_RD]); cue_csr_write_1(sc, CUE_ETHCTL, 0); cue_reset(sc); ==== //depot/projects/usb/src/sys/dev/usb2/ethernet/if_cuereg.h#4 (text+ko) ==== @@ -115,9 +115,7 @@ enum { CUE_BULK_DT_WR, CUE_BULK_DT_RD, - CUE_BULK_CS_WR, - CUE_BULK_CS_RD, - CUE_N_TRANSFER = 4, + CUE_N_TRANSFER, }; struct cue_softc { @@ -126,11 +124,7 @@ struct usb2_xfer *sc_xfer[CUE_N_TRANSFER]; int sc_flags; -#define CUE_FLAG_READ_STALL 0x0010 /* wait for clearing of stall */ -#define CUE_FLAG_WRITE_STALL 0x0020 /* wait for clearing of stall */ -#define CUE_FLAG_LINK 0x0040 /* got a link */ -#define CUE_FLAG_DETACH 0x0080 /* card gone */ -#define CUE_FLAG_INTR_STALL 0x0100 /* wait for clearing of stall */ +#define CUE_FLAG_LINK 0x0001 /* got a link */ }; #define CUE_LOCK(_sc) mtx_lock(&(_sc)->sc_mtx) ==== //depot/projects/usb/src/sys/dev/usb2/ethernet/if_kue2.c#20 (text+ko) ==== @@ -131,9 +131,7 @@ static device_detach_t kue_detach; static device_shutdown_t kue_shutdown; -static usb2_callback_t kue_bulk_read_clear_stall_callback; static usb2_callback_t kue_bulk_read_callback; -static usb2_callback_t kue_bulk_write_clear_stall_callback; static usb2_callback_t kue_bulk_write_callback; static usb2_ether_fn_t kue_attach_post; @@ -180,28 +178,6 @@ .mh.callback = kue_bulk_read_callback, .mh.timeout = 0, /* no timeout */ }, - - [KUE_BULK_CS_WR] = { - .type = UE_CONTROL, - .endpoint = 0x00, /* Control pipe */ - .direction = UE_DIR_ANY, - .mh.bufsize = sizeof(struct usb2_device_request), - .mh.flags = {}, - .mh.callback = kue_bulk_write_clear_stall_callback, - .mh.timeout = 1000, /* 1 second */ - .mh.interval = 50, /* 50ms */ - }, - - [KUE_BULK_CS_RD] = { - .type = UE_CONTROL, - .endpoint = 0x00, /* Control pipe */ - .direction = UE_DIR_ANY, - .mh.bufsize = sizeof(struct usb2_device_request), - .mh.flags = {}, - .mh.callback = kue_bulk_read_clear_stall_callback, - .mh.timeout = 1000, /* 1 second */ - .mh.interval = 50, /* 50ms */ - }, }; static device_method_t kue_methods[] = { @@ -540,19 +516,6 @@ * the higher level protocols. */ static void -kue_bulk_read_clear_stall_callback(struct usb2_xfer *xfer) -{ - struct kue_softc *sc = xfer->priv_sc; - struct usb2_xfer *xfer_other = sc->sc_xfer[KUE_BULK_DT_RD]; - - if (usb2_clear_stall_callback(xfer, xfer_other)) { - DPRINTF("stall cleared\n"); - sc->sc_flags &= ~KUE_FLAG_READ_STALL; - usb2_transfer_start(xfer_other); - } -} - -static void kue_bulk_read_callback(struct usb2_xfer *xfer) { struct kue_softc *sc = xfer->priv_sc; @@ -577,43 +540,26 @@ /* FALLTHROUGH */ case USB_ST_SETUP: tr_setup: - - if (sc->sc_flags & KUE_FLAG_READ_STALL) { - usb2_transfer_start(sc->sc_xfer[KUE_BULK_CS_RD]); - } else { - xfer->frlengths[0] = xfer->max_data_length; - usb2_start_hardware(xfer); - } + xfer->frlengths[0] = xfer->max_data_length; + usb2_start_hardware(xfer); usb2_ether_rxflush(ue); return; default: /* Error */ + DPRINTF("bulk read error, %s\n", + usb2_errstr(xfer->error)); + if (xfer->error != USB_ERR_CANCELLED) { /* try to clear stall first */ - sc->sc_flags |= KUE_FLAG_READ_STALL; - usb2_transfer_start(sc->sc_xfer[KUE_BULK_CS_RD]); + xfer->flags.stall_pipe = 1; + goto tr_setup; } - DPRINTF("bulk read error, %s\n", - usb2_errstr(xfer->error)); return; >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Wed Feb 4 12:42:35 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 3C7251065672; Wed, 4 Feb 2009 12:42:34 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id EDF8A106564A for ; Wed, 4 Feb 2009 12:42:33 +0000 (UTC) (envelope-from weongyo@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id D0AB98FC19 for ; Wed, 4 Feb 2009 12:42:33 +0000 (UTC) (envelope-from weongyo@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n14CgXXC014960 for ; Wed, 4 Feb 2009 12:42:33 GMT (envelope-from weongyo@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n14CgXj2014958 for perforce@freebsd.org; Wed, 4 Feb 2009 12:42:33 GMT (envelope-from weongyo@FreeBSD.org) Date: Wed, 4 Feb 2009 12:42:33 GMT Message-Id: <200902041242.n14CgXj2014958@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to weongyo@FreeBSD.org using -f From: Weongyo Jeong To: Perforce Change Reviews Cc: Subject: PERFORCE change 157132 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 04 Feb 2009 12:42:35 -0000 http://perforce.freebsd.org/chv.cgi?CH=157132 Change 157132 by weongyo@weongyo_ws on 2009/02/04 12:42:14 o remove UATH_RX_DATA_LIST_COUNT macro unused anymore. o change a strategy to allocate tx buffers based on STAILQ. It's more easy and useful to handle free lists. Affected files ... .. //depot/projects/vap/sys/dev/usb/if_uath.c#13 edit .. //depot/projects/vap/sys/dev/usb/if_uathvar.h#5 edit Differences ... ==== //depot/projects/vap/sys/dev/usb/if_uath.c#13 (text+ko) ==== @@ -670,10 +670,22 @@ static int uath_alloc_tx_data_list(struct uath_softc *sc) { + int error, i; + struct uath_data *tx; - return uath_alloc_data_list(sc, - sc->sc_data_tx, UATH_TX_DATA_LIST_COUNT, - UATH_MAX_TXBUFSZ, 0 /* no mbufs */); + error = uath_alloc_data_list(sc, + sc->sc_data_tx, UATH_TX_DATA_LIST_COUNT, UATH_MAX_TXBUFSZ, + 0 /* no mbufs */); + if (error != 0) + return (error); + + STAILQ_INIT(&sc->sc_data_txhead); + for (i = 0; i < UATH_TX_DATA_LIST_COUNT; i++) { + tx = &sc->sc_data_tx[i]; + STAILQ_INSERT_HEAD(&sc->sc_data_txhead, tx, next); + } + + return (0); } static void @@ -780,6 +792,39 @@ sc->sc_cmd_rx, UATH_RX_CMD_LIST_COUNT); } +static struct uath_data * +_uath_getbuf(struct uath_softc *sc) +{ + struct uath_data *bf; + + UATH_ASSERT_LOCKED(sc); + + bf = STAILQ_FIRST(&sc->sc_data_txhead); + if (bf != NULL) + STAILQ_REMOVE_HEAD(&sc->sc_data_txhead, next); + else + bf = NULL; + if (bf == NULL) + DPRINTF(sc, UATH_DEBUG_XMIT, "%s: %s\n", __func__, + "out of xmit buffers"); + return (bf); +} + +static struct uath_data * +uath_getbuf(struct uath_softc *sc) +{ + struct uath_data *bf; + + bf = _uath_getbuf(sc); + if (bf == NULL) { + struct ifnet *ifp = sc->sc_ifp; + + DPRINTF(sc, UATH_DEBUG_XMIT, "%s: stop queue\n", __func__); + ifp->if_drv_flags |= IFF_DRV_OACTIVE; + } + return (bf); +} + /* * This function is called periodically (every second) when associated to * query device statistics. @@ -1754,15 +1799,14 @@ struct uath_data *data; struct uath_chunk *chunk; struct uath_tx_desc *desc; - int data_idx, xferlen; + int error = 0, xferlen; usbd_status status; UATH_ASSERT_LOCKED(sc); - data_idx = sc->sc_data_idx; - sc->sc_data_idx = (data_idx + 1) % UATH_TX_DATA_LIST_COUNT; - - data = &sc->sc_data_tx[data_idx]; + data = uath_getbuf(sc); + if (data == NULL) + return (ENOBUFS); data->ni = NULL; chunk = (struct uath_chunk *)data->buf; desc = (struct uath_tx_desc *)(chunk + 1); @@ -1775,7 +1819,7 @@ bzero(desc, sizeof(struct uath_tx_desc)); desc->msglen = htobe32(sizeof(struct uath_tx_desc)); - desc->msgid = data_idx + 1; /* don't care about endianness */ + desc->msgid = (sc->sc_msgid++) + 1; /* don't care about endianness */ desc->type = htobe32(WDCMSG_FLUSH); desc->txqid = htobe32(0); desc->connid = htobe32(0); @@ -1783,7 +1827,7 @@ #ifdef UATH_DEBUG if (sc->sc_debug & UATH_DEBUG_CMDS) { - printf("send flush ix %u\n", data_idx); + printf("send flush ix %d\n", desc->msgid); if (sc->sc_debug & UATH_DEBUG_CMDS_DUMP) uath_dump_cmd(data->buf, xferlen, '+'); } @@ -1796,9 +1840,12 @@ if (status != USBD_IN_PROGRESS && status != USBD_NORMAL_COMPLETION) { device_printf(sc->sc_dev, "could not send flush: %s\n", usbd_errstr(status)); - return (EIO); + error = EIO; } - return (0); + /* NB: flushing the data pipe is synchronous so add the buffer again. */ + STAILQ_INSERT_HEAD(&sc->sc_data_txhead, data, next); + + return (error); } static void @@ -1842,7 +1889,7 @@ ifp->if_opackets++; UATH_LOCK(sc); - sc->sc_tx_queued--; + STAILQ_INSERT_HEAD(&sc->sc_data_txhead, data, next); ifp->if_drv_flags &= ~IFF_DRV_OACTIVE; UATH_UNLOCK(sc); @@ -1850,24 +1897,20 @@ } static int -uath_tx_start(struct uath_softc *sc, struct mbuf *m0, struct ieee80211_node *ni) +uath_tx_start(struct uath_softc *sc, struct mbuf *m0, struct ieee80211_node *ni, + struct uath_data *data) { struct ifnet *ifp = sc->sc_ifp; struct ieee80211com *ic = ifp->if_l2com; - struct uath_data *data; struct uath_chunk *chunk; struct uath_tx_desc *desc; const struct ieee80211_frame *wh; struct ieee80211_key *k; - int data_idx, framelen, msglen, xferlen; + int framelen, msglen, xferlen; usbd_status status; UATH_ASSERT_LOCKED(sc); - data_idx = sc->sc_data_idx; - sc->sc_data_idx = (sc->sc_data_idx + 1) % UATH_TX_DATA_LIST_COUNT; - - data = &sc->sc_data_tx[data_idx]; data->ni = ni; data->m = m0; chunk = (struct uath_chunk *)data->buf; @@ -1908,7 +1951,7 @@ /* fill Tx descriptor */ desc->msglen = htobe32(msglen); /* NB: to get UATH_TX_NOTIFY reply, `msgid' must be larger than 0 */ - desc->msgid = data_idx + 1; /* don't care about endianness */ + desc->msgid = (sc->sc_msgid++) + 1; /* don't care about endianness */ desc->type = htobe32(WDCMSG_SEND); switch (wh->i_fc[0] & IEEE80211_FC0_TYPE_MASK) { case IEEE80211_FC0_TYPE_CTL: @@ -1941,7 +1984,7 @@ #ifdef UATH_DEBUG DPRINTF(sc, UATH_DEBUG_XMIT, "send frame ix %u framelen %d msglen %d connid 0x%x txqid 0x%x\n", - data_idx, framelen, msglen, be32toh(desc->connid), + desc->msgid, framelen, msglen, be32toh(desc->connid), be32toh(desc->txqid)); if (sc->sc_debug & UATH_DEBUG_XMIT_DUMP) uath_dump_cmd(data->buf, xferlen, '+'); @@ -1956,14 +1999,13 @@ m_freem(m0); return (EIO); } - - sc->sc_tx_queued++; return (0); } static void uath_start(struct ifnet *ifp) { + struct uath_data *bf; struct uath_softc *sc = ifp->if_softc; struct ieee80211_node *ni; struct mbuf *m; @@ -1973,12 +2015,13 @@ UATH_LOCK(sc); for (;;) { + bf = uath_getbuf(sc); + if (bf == NULL) + break; + IFQ_DRV_DEQUEUE(&ifp->if_snd, m); - if (m == NULL) - break; - if (sc->sc_tx_queued >= UATH_TX_DATA_LIST_COUNT) { - IFQ_DRV_PREPEND(&ifp->if_snd, m); - ifp->if_drv_flags |= IFF_DRV_OACTIVE; + if (m == NULL) { + STAILQ_INSERT_HEAD(&sc->sc_data_txhead, bf, next); break; } @@ -1986,15 +2029,17 @@ m->m_pkthdr.rcvif = NULL; m = ieee80211_encap(ni, m); if (m == NULL) { - ieee80211_free_node(ni); - ifp->if_oerrors++; - continue; + DPRINTF(sc, UATH_DEBUG_XMIT, + "%s: encapsulation failure\n", __func__); + goto bad; } - if (uath_tx_start(sc, m, ni) != 0) { + if (uath_tx_start(sc, m, ni, bf) != 0) { + bad: + ifp->if_oerrors++; + STAILQ_INSERT_HEAD(&sc->sc_data_txhead, bf, next); ieee80211_free_node(ni); - ifp->if_oerrors++; - break; + continue; } sc->sc_tx_timer = 5; @@ -2425,8 +2470,8 @@ if (ifp->if_drv_flags & IFF_DRV_RUNNING) uath_stop_locked(ifp); - /* reset data and command rings */ - sc->sc_tx_queued = sc->sc_data_idx = sc->sc_cmd_idx = 0; + /* reset command rings */ + sc->sc_msgid = sc->sc_cmd_idx = 0; val = htobe32(0); uath_cmd_write(sc, WDCMSG_BIND, &val, sizeof val, 0); @@ -2648,6 +2693,7 @@ { struct ieee80211com *ic = ni->ni_ic; struct ifnet *ifp = ic->ic_ifp; + struct uath_data *bf; struct uath_softc *sc = ifp->if_softc; /* prevent management frames from being sent if we're not ready */ @@ -2658,17 +2704,19 @@ } UATH_LOCK(sc); - if (sc->sc_tx_queued >= UATH_TX_DATA_LIST_COUNT) { - ifp->if_drv_flags |= IFF_DRV_OACTIVE; + /* grab a TX buffer */ + bf = uath_getbuf(sc); + if (bf == NULL) { + ieee80211_free_node(ni); m_freem(m); - ieee80211_free_node(ni); UATH_UNLOCK(sc); - return (ENOBUFS); /* XXX */ + return (ENOBUFS); } - if (uath_tx_start(sc, m, ni) != 0) { + if (uath_tx_start(sc, m, ni, bf) != 0) { ieee80211_free_node(ni); ifp->if_oerrors++; + STAILQ_INSERT_HEAD(&sc->sc_data_txhead, bf, next); UATH_UNLOCK(sc); return (EIO); } ==== //depot/projects/vap/sys/dev/usb/if_uathvar.h#5 (text+ko) ==== @@ -26,8 +26,6 @@ #define UATH_RX_DATA_LIST_COUNT 1 /* 128 */ #define UATH_RX_CMD_LIST_COUNT 1 /* 30 */ -#define UATH_RX_DATA_POOL_COUNT (UATH_RX_DATA_LIST_COUNT + 24) - #define UATH_DATA_TIMEOUT 10000 #define UATH_CMD_TIMEOUT 1000 @@ -66,7 +64,9 @@ uint8_t *buf; struct mbuf *m; struct ieee80211_node *ni; /* NB: tx only */ + STAILQ_ENTRY(uath_data) next; }; +typedef STAILQ_HEAD(, uath_data) uath_bufhead; struct uath_cmd { struct uath_softc *sc; @@ -176,10 +176,10 @@ int sc_cmd_idx; usbd_pipe_handle sc_data_rxpipe; usbd_pipe_handle sc_data_txpipe; - struct uath_data sc_data_rx[UATH_RX_DATA_POOL_COUNT]; + struct uath_data sc_data_rx[UATH_RX_DATA_LIST_COUNT]; struct uath_data sc_data_tx[UATH_TX_DATA_LIST_COUNT]; - int sc_data_idx; - int sc_tx_queued; + uath_bufhead sc_data_txhead; + uint32_t sc_msgid; int sc_tx_timer; struct callout watchdog_ch; struct callout stat_ch; From owner-p4-projects@FreeBSD.ORG Wed Feb 4 13:49:45 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 3F68F106566C; Wed, 4 Feb 2009 13:49:45 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id F14F2106566B for ; Wed, 4 Feb 2009 13:49:44 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id DE3768FC17 for ; Wed, 4 Feb 2009 13:49:44 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n14Dni6u031194 for ; Wed, 4 Feb 2009 13:49:44 GMT (envelope-from hselasky@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n14DniFb031192 for perforce@freebsd.org; Wed, 4 Feb 2009 13:49:44 GMT (envelope-from hselasky@FreeBSD.org) Date: Wed, 4 Feb 2009 13:49:44 GMT Message-Id: <200902041349.n14DniFb031192@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky To: Perforce Change Reviews Cc: Subject: PERFORCE change 157136 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 04 Feb 2009 13:49:46 -0000 http://perforce.freebsd.org/chv.cgi?CH=157136 Change 157136 by hselasky@hselasky_laptop001 on 2009/02/04 13:49:30 USB serial drivers cleanup by me. - factor out all clear stall handling - factor out all usb2_do_request() calls. Affected files ... .. //depot/projects/usb/src/sys/dev/usb2/serial/u3g2.c#10 edit .. //depot/projects/usb/src/sys/dev/usb2/serial/uark2.c#16 edit .. //depot/projects/usb/src/sys/dev/usb2/serial/ubsa2.c#22 edit .. //depot/projects/usb/src/sys/dev/usb2/serial/ubser2.c#16 edit .. //depot/projects/usb/src/sys/dev/usb2/serial/uchcom2.c#19 edit .. //depot/projects/usb/src/sys/dev/usb2/serial/ucycom2.c#17 edit .. //depot/projects/usb/src/sys/dev/usb2/serial/ufoma2.c#22 edit .. //depot/projects/usb/src/sys/dev/usb2/serial/uftdi2.c#19 edit .. //depot/projects/usb/src/sys/dev/usb2/serial/uftdi2_reg.h#5 edit .. //depot/projects/usb/src/sys/dev/usb2/serial/ugensa2.c#23 edit .. //depot/projects/usb/src/sys/dev/usb2/serial/uipaq2.c#19 edit .. //depot/projects/usb/src/sys/dev/usb2/serial/ulpt2.c#15 edit .. //depot/projects/usb/src/sys/dev/usb2/serial/umct2.c#16 edit .. //depot/projects/usb/src/sys/dev/usb2/serial/umodem2.c#19 edit .. //depot/projects/usb/src/sys/dev/usb2/serial/umoscom2.c#17 edit .. //depot/projects/usb/src/sys/dev/usb2/serial/uplcom2.c#19 edit .. //depot/projects/usb/src/sys/dev/usb2/serial/usb2_serial.c#24 edit .. //depot/projects/usb/src/sys/dev/usb2/serial/usb2_serial.h#13 edit .. //depot/projects/usb/src/sys/dev/usb2/serial/uvisor2.c#17 edit .. //depot/projects/usb/src/sys/dev/usb2/serial/uvscom2.c#19 edit Differences ... ==== //depot/projects/usb/src/sys/dev/usb2/serial/u3g2.c#10 (text+ko) ==== @@ -88,7 +88,7 @@ enum { U3G_BULK_WR, U3G_BULK_RD, - U3G_N_TRANSFER = 2, + U3G_N_TRANSFER, }; struct u3g_softc { ==== //depot/projects/usb/src/sys/dev/usb2/serial/uark2.c#16 (text+ko) ==== @@ -64,9 +64,7 @@ enum { UARK_BULK_DT_WR, UARK_BULK_DT_RD, - UARK_BULK_CS_WR, - UARK_BULK_CS_RD, - UARK_N_TRANSFER = 4, + UARK_N_TRANSFER, }; struct uark_softc { @@ -76,9 +74,6 @@ struct usb2_xfer *sc_xfer[UARK_N_TRANSFER]; struct usb2_device *sc_udev; - uint8_t sc_flags; -#define UARK_FLAG_BULK_READ_STALL 0x01 -#define UARK_FLAG_BULK_WRITE_STALL 0x02 uint8_t sc_msr; uint8_t sc_lsr; }; @@ -90,9 +85,7 @@ static device_detach_t uark_detach; static usb2_callback_t uark_bulk_write_callback; -static usb2_callback_t uark_bulk_write_clear_stall_callback; static usb2_callback_t uark_bulk_read_callback; -static usb2_callback_t uark_bulk_read_clear_stall_callback; static void uark_start_read(struct usb2_com_softc *); static void uark_stop_read(struct usb2_com_softc *); @@ -125,28 +118,6 @@ .mh.flags = {.pipe_bof = 1,.short_xfer_ok = 1,}, .mh.callback = &uark_bulk_read_callback, }, - - [UARK_BULK_CS_WR] = { - .type = UE_CONTROL, - .endpoint = 0x00, /* Control pipe */ - .direction = UE_DIR_ANY, - .mh.bufsize = sizeof(struct usb2_device_request), - .mh.flags = {}, - .mh.callback = &uark_bulk_write_clear_stall_callback, - .mh.timeout = 1000, /* 1 second */ - .mh.interval = 50, /* 50ms */ - }, - - [UARK_BULK_CS_RD] = { - .type = UE_CONTROL, - .endpoint = 0x00, /* Control pipe */ - .direction = UE_DIR_ANY, - .mh.bufsize = sizeof(struct usb2_device_request), - .mh.flags = {}, - .mh.callback = &uark_bulk_read_clear_stall_callback, - .mh.timeout = 1000, /* 1 second */ - .mh.interval = 50, /* 50ms */ - }, }; static const struct usb2_com_callback uark_callback = { @@ -224,8 +195,8 @@ goto detach; } /* clear stall at first run */ - sc->sc_flags |= (UARK_FLAG_BULK_WRITE_STALL | - UARK_FLAG_BULK_READ_STALL); + usb2_transfer_set_stall(sc->sc_xfer[UARK_BULK_DT_WR]); + usb2_transfer_set_stall(sc->sc_xfer[UARK_BULK_DT_RD]); error = usb2_com_attach(&sc->sc_super_ucom, &sc->sc_ucom, 1, sc, &uark_callback, &Giant); @@ -261,10 +232,7 @@ switch (USB_GET_STATE(xfer)) { case USB_ST_SETUP: case USB_ST_TRANSFERRED: - if (sc->sc_flags & UARK_FLAG_BULK_WRITE_STALL) { - usb2_transfer_start(sc->sc_xfer[UARK_BULK_CS_WR]); - return; - } +tr_setup: if (usb2_com_get_data(&sc->sc_ucom, xfer->frbuffers, 0, UARK_BUF_SIZE, &actlen)) { xfer->frlengths[0] = actlen; @@ -274,8 +242,9 @@ default: /* Error */ if (xfer->error != USB_ERR_CANCELLED) { - sc->sc_flags |= UARK_FLAG_BULK_WRITE_STALL; - usb2_transfer_start(sc->sc_xfer[UARK_BULK_CS_WR]); + /* try to clear stall first */ + xfer->flags.stall_pipe = 1; + goto tr_setup; } return; @@ -283,19 +252,6 @@ } static void -uark_bulk_write_clear_stall_callback(struct usb2_xfer *xfer) -{ - struct uark_softc *sc = xfer->priv_sc; - struct usb2_xfer *xfer_other = sc->sc_xfer[UARK_BULK_DT_WR]; - - if (usb2_clear_stall_callback(xfer, xfer_other)) { - DPRINTF("stall cleared\n"); - sc->sc_flags &= ~UARK_FLAG_BULK_WRITE_STALL; - usb2_transfer_start(xfer_other); - } -} - -static void uark_bulk_read_callback(struct usb2_xfer *xfer) { struct uark_softc *sc = xfer->priv_sc; @@ -306,34 +262,18 @@ xfer->actlen); case USB_ST_SETUP: - if (sc->sc_flags & UARK_FLAG_BULK_READ_STALL) { - usb2_transfer_start(sc->sc_xfer[UARK_BULK_CS_RD]); - } else { - xfer->frlengths[0] = xfer->max_data_length; - usb2_start_hardware(xfer); - } +tr_setup: + xfer->frlengths[0] = xfer->max_data_length; + usb2_start_hardware(xfer); return; default: /* Error */ if (xfer->error != USB_ERR_CANCELLED) { - sc->sc_flags |= UARK_FLAG_BULK_READ_STALL; - usb2_transfer_start(sc->sc_xfer[UARK_BULK_CS_RD]); + /* try to clear stall first */ + xfer->flags.stall_pipe = 1; + goto tr_setup; } return; - - } -} - -static void -uark_bulk_read_clear_stall_callback(struct usb2_xfer *xfer) -{ - struct uark_softc *sc = xfer->priv_sc; - struct usb2_xfer *xfer_other = sc->sc_xfer[UARK_BULK_DT_RD]; - - if (usb2_clear_stall_callback(xfer, xfer_other)) { - DPRINTF("stall cleared\n"); - sc->sc_flags &= ~UARK_FLAG_BULK_READ_STALL; - usb2_transfer_start(xfer_other); } } @@ -350,7 +290,6 @@ { struct uark_softc *sc = ucom->sc_parent; - usb2_transfer_stop(sc->sc_xfer[UARK_BULK_CS_RD]); usb2_transfer_stop(sc->sc_xfer[UARK_BULK_DT_RD]); } @@ -367,7 +306,6 @@ { struct uark_softc *sc = ucom->sc_parent; - usb2_transfer_stop(sc->sc_xfer[UARK_BULK_CS_WR]); usb2_transfer_stop(sc->sc_xfer[UARK_BULK_DT_WR]); } @@ -454,18 +392,14 @@ struct usb2_device_request req; usb2_error_t err; - if (usb2_com_cfg_is_gone(&sc->sc_ucom)) { - return; - } req.bmRequestType = UARK_WRITE; req.bRequest = UARK_REQUEST; USETW(req.wValue, value); USETW(req.wIndex, index); USETW(req.wLength, 0); - err = usb2_do_request_flags - (sc->sc_udev, &Giant, &req, NULL, 0, NULL, 1000); - + err = usb2_com_cfg_do_request(sc->sc_udev, &sc->sc_ucom, + &req, NULL, 0, 1000); if (err) { DPRINTFN(0, "device request failed, err=%s " "(ignored)\n", usb2_errstr(err)); ==== //depot/projects/usb/src/sys/dev/usb2/serial/ubsa2.c#22 (text+ko) ==== @@ -143,11 +143,8 @@ enum { UBSA_BULK_DT_WR, UBSA_BULK_DT_RD, - UBSA_BULK_CS_WR, - UBSA_BULK_CS_RD, UBSA_INTR_DT_RD, - UBSA_INTR_CS_RD, - UBSA_N_TRANSFER = 6, + UBSA_N_TRANSFER, }; struct ubsa_softc { @@ -157,11 +154,6 @@ struct usb2_xfer *sc_xfer[UBSA_N_TRANSFER]; struct usb2_device *sc_udev; - uint16_t sc_flag; -#define UBSA_FLAG_WRITE_STALL 0x0001 -#define UBSA_FLAG_READ_STALL 0x0002 -#define UBSA_FLAG_INTR_STALL 0x0004 - uint8_t sc_iface_no; /* interface number */ uint8_t sc_iface_index; /* interface index */ uint8_t sc_lsr; /* local status register */ @@ -173,11 +165,8 @@ static device_detach_t ubsa_detach; static usb2_callback_t ubsa_write_callback; -static usb2_callback_t ubsa_write_clear_stall_callback; static usb2_callback_t ubsa_read_callback; -static usb2_callback_t ubsa_read_clear_stall_callback; static usb2_callback_t ubsa_intr_callback; -static usb2_callback_t ubsa_intr_clear_stall_callback; static void ubsa_cfg_request(struct ubsa_softc *, uint8_t, uint16_t); static void ubsa_cfg_set_dtr(struct usb2_com_softc *, uint8_t); @@ -212,26 +201,6 @@ .mh.callback = &ubsa_read_callback, }, - [UBSA_BULK_CS_WR] = { - .type = UE_CONTROL, - .endpoint = 0x00, /* Control pipe */ - .direction = UE_DIR_ANY, - .mh.bufsize = sizeof(struct usb2_device_request), - .mh.callback = &ubsa_write_clear_stall_callback, - .mh.timeout = 1000, /* 1 second */ - .mh.interval = 50, /* 50ms */ - }, - - [UBSA_BULK_CS_RD] = { - .type = UE_CONTROL, - .endpoint = 0x00, /* Control pipe */ - .direction = UE_DIR_ANY, - .mh.bufsize = sizeof(struct usb2_device_request), - .mh.callback = &ubsa_read_clear_stall_callback, - .mh.timeout = 1000, /* 1 second */ - .mh.interval = 50, /* 50ms */ - }, - [UBSA_INTR_DT_RD] = { .type = UE_INTERRUPT, .endpoint = UE_ADDR_ANY, @@ -240,16 +209,6 @@ .mh.bufsize = 0, /* use wMaxPacketSize */ .mh.callback = &ubsa_intr_callback, }, - - [UBSA_INTR_CS_RD] = { - .type = UE_CONTROL, - .endpoint = 0x00, /* Control pipe */ - .direction = UE_DIR_ANY, - .mh.bufsize = sizeof(struct usb2_device_request), - .mh.callback = &ubsa_intr_clear_stall_callback, - .mh.timeout = 1000, /* 1 second */ - .mh.interval = 50, /* 50ms */ - }, }; static const struct usb2_com_callback ubsa_callback = { @@ -343,8 +302,8 @@ goto detach; } /* clear stall at first run */ - sc->sc_flag |= (UBSA_FLAG_WRITE_STALL | - UBSA_FLAG_READ_STALL); + usb2_transfer_set_stall(sc->sc_xfer[UBSA_BULK_DT_WR]); + usb2_transfer_set_stall(sc->sc_xfer[UBSA_BULK_DT_RD]); error = usb2_com_attach(&sc->sc_super_ucom, &sc->sc_ucom, 1, sc, &ubsa_callback, &Giant); @@ -379,9 +338,6 @@ struct usb2_device_request req; usb2_error_t err; - if (usb2_com_cfg_is_gone(&sc->sc_ucom)) { - return; - } req.bmRequestType = UT_WRITE_VENDOR_DEVICE; req.bRequest = index; USETW(req.wValue, value); @@ -389,9 +345,8 @@ req.wIndex[1] = 0; USETW(req.wLength, 0); - err = usb2_do_request_flags - (sc->sc_udev, &Giant, &req, NULL, 0, NULL, 1000); - + err = usb2_com_cfg_do_request(sc->sc_udev, &sc->sc_ucom, + &req, NULL, 0, 1000); if (err) { DPRINTFN(0, "device request failed, err=%s " "(ignored)\n", usb2_errstr(err)); @@ -544,11 +499,9 @@ struct ubsa_softc *sc = ucom->sc_parent; /* stop interrupt endpoint */ - usb2_transfer_stop(sc->sc_xfer[UBSA_INTR_CS_RD]); usb2_transfer_stop(sc->sc_xfer[UBSA_INTR_DT_RD]); /* stop read endpoint */ - usb2_transfer_stop(sc->sc_xfer[UBSA_BULK_CS_RD]); usb2_transfer_stop(sc->sc_xfer[UBSA_BULK_DT_RD]); } @@ -565,7 +518,6 @@ { struct ubsa_softc *sc = ucom->sc_parent; - usb2_transfer_stop(sc->sc_xfer[UBSA_BULK_CS_WR]); usb2_transfer_stop(sc->sc_xfer[UBSA_BULK_DT_WR]); } @@ -589,10 +541,7 @@ switch (USB_GET_STATE(xfer)) { case USB_ST_SETUP: case USB_ST_TRANSFERRED: - if (sc->sc_flag & UBSA_FLAG_WRITE_STALL) { - usb2_transfer_start(sc->sc_xfer[UBSA_BULK_CS_WR]); - return; - } +tr_setup: if (usb2_com_get_data(&sc->sc_ucom, xfer->frbuffers, 0, UBSA_BSIZE, &actlen)) { @@ -603,8 +552,9 @@ default: /* Error */ if (xfer->error != USB_ERR_CANCELLED) { - sc->sc_flag |= UBSA_FLAG_WRITE_STALL; - usb2_transfer_start(sc->sc_xfer[UBSA_BULK_CS_WR]); + /* try to clear stall first */ + xfer->flags.stall_pipe = 1; + goto tr_setup; } return; @@ -612,19 +562,6 @@ } static void -ubsa_write_clear_stall_callback(struct usb2_xfer *xfer) -{ - struct ubsa_softc *sc = xfer->priv_sc; - struct usb2_xfer *xfer_other = sc->sc_xfer[UBSA_BULK_DT_WR]; - - if (usb2_clear_stall_callback(xfer, xfer_other)) { - DPRINTF("stall cleared\n"); - sc->sc_flag &= ~UBSA_FLAG_WRITE_STALL; - usb2_transfer_start(xfer_other); - } -} - -static void ubsa_read_callback(struct usb2_xfer *xfer) { struct ubsa_softc *sc = xfer->priv_sc; @@ -634,18 +571,16 @@ usb2_com_put_data(&sc->sc_ucom, xfer->frbuffers, 0, xfer->actlen); case USB_ST_SETUP: - if (sc->sc_flag & UBSA_FLAG_READ_STALL) { - usb2_transfer_start(sc->sc_xfer[UBSA_BULK_CS_RD]); - } else { - xfer->frlengths[0] = xfer->max_data_length; - usb2_start_hardware(xfer); - } +tr_setup: + xfer->frlengths[0] = xfer->max_data_length; + usb2_start_hardware(xfer); return; default: /* Error */ if (xfer->error != USB_ERR_CANCELLED) { - sc->sc_flag |= UBSA_FLAG_READ_STALL; - usb2_transfer_start(sc->sc_xfer[UBSA_BULK_CS_RD]); + /* try to clear stall first */ + xfer->flags.stall_pipe = 1; + goto tr_setup; } return; @@ -653,19 +588,6 @@ } static void -ubsa_read_clear_stall_callback(struct usb2_xfer *xfer) -{ - struct ubsa_softc *sc = xfer->priv_sc; - struct usb2_xfer *xfer_other = sc->sc_xfer[UBSA_BULK_DT_RD]; - - if (usb2_clear_stall_callback(xfer, xfer_other)) { - DPRINTF("stall cleared\n"); - sc->sc_flag &= ~UBSA_FLAG_READ_STALL; - usb2_transfer_start(xfer_other); - } -} - -static void ubsa_intr_callback(struct usb2_xfer *xfer) { struct ubsa_softc *sc = xfer->priv_sc; @@ -695,33 +617,18 @@ } case USB_ST_SETUP: - if (sc->sc_flag & UBSA_FLAG_INTR_STALL) { - usb2_transfer_start(sc->sc_xfer[UBSA_INTR_CS_RD]); - } else { - xfer->frlengths[0] = xfer->max_data_length; - usb2_start_hardware(xfer); - } +tr_setup: + xfer->frlengths[0] = xfer->max_data_length; + usb2_start_hardware(xfer); return; default: /* Error */ if (xfer->error != USB_ERR_CANCELLED) { - sc->sc_flag |= UBSA_FLAG_INTR_STALL; - usb2_transfer_start(sc->sc_xfer[UBSA_INTR_CS_RD]); + /* try to clear stall first */ + xfer->flags.stall_pipe = 1; + goto tr_setup; } return; } } - -static void -ubsa_intr_clear_stall_callback(struct usb2_xfer *xfer) -{ - struct ubsa_softc *sc = xfer->priv_sc; - struct usb2_xfer *xfer_other = sc->sc_xfer[UBSA_INTR_DT_RD]; - - if (usb2_clear_stall_callback(xfer, xfer_other)) { - DPRINTF("stall cleared\n"); - sc->sc_flag &= ~UBSA_FLAG_INTR_STALL; - usb2_transfer_start(xfer_other); - } -} ==== //depot/projects/usb/src/sys/dev/usb2/serial/ubser2.c#16 (text+ko) ==== @@ -113,9 +113,7 @@ enum { UBSER_BULK_DT_WR, UBSER_BULK_DT_RD, - UBSER_BULK_CS_WR, - UBSER_BULK_CS_RD, - UBSER_N_TRANSFER = 4, + UBSER_N_TRANSFER, }; struct ubser_softc { @@ -128,10 +126,6 @@ uint16_t sc_tx_size; uint8_t sc_numser; - uint8_t sc_flags; -#define UBSER_FLAG_READ_STALL 0x01 -#define UBSER_FLAG_WRITE_STALL 0x02 - uint8_t sc_iface_no; uint8_t sc_iface_index; uint8_t sc_curr_tx_unit; @@ -144,9 +138,7 @@ static device_attach_t ubser_attach; static device_detach_t ubser_detach; -static usb2_callback_t ubser_write_clear_stall_callback; static usb2_callback_t ubser_write_callback; -static usb2_callback_t ubser_read_clear_stall_callback; static usb2_callback_t ubser_read_callback; static int ubser_pre_param(struct usb2_com_softc *, struct termios *); @@ -177,28 +169,6 @@ .mh.flags = {.pipe_bof = 1,.short_xfer_ok = 1,}, .mh.callback = &ubser_read_callback, }, - - [UBSER_BULK_CS_WR] = { - .type = UE_CONTROL, - .endpoint = 0x00, /* Control pipe */ - .direction = UE_DIR_ANY, - .mh.bufsize = sizeof(struct usb2_device_request), - .mh.flags = {}, - .mh.callback = &ubser_write_clear_stall_callback, - .mh.timeout = 1000, /* 1 second */ - .mh.interval = 50, /* 50ms */ - }, - - [UBSER_BULK_CS_RD] = { - .type = UE_CONTROL, - .endpoint = 0x00, /* Control pipe */ - .direction = UE_DIR_ANY, - .mh.bufsize = sizeof(struct usb2_device_request), - .mh.flags = {}, - .mh.callback = &ubser_read_clear_stall_callback, - .mh.timeout = 1000, /* 1 second */ - .mh.interval = 50, /* 50ms */ - }, }; static const struct usb2_com_callback ubser_callback = { @@ -311,8 +281,8 @@ } mtx_lock(&Giant); - sc->sc_flags |= (UBSER_FLAG_READ_STALL | - UBSER_FLAG_WRITE_STALL); + usb2_transfer_set_stall(sc->sc_xfer[UBSER_BULK_DT_WR]); + usb2_transfer_set_stall(sc->sc_xfer[UBSER_BULK_DT_RD]); usb2_transfer_start(sc->sc_xfer[UBSER_BULK_DT_RD]); @@ -329,22 +299,11 @@ ubser_detach(device_t dev) { struct ubser_softc *sc = device_get_softc(dev); - uint8_t n; DPRINTF("\n"); usb2_com_detach(&sc->sc_super_ucom, sc->sc_ucom, sc->sc_numser); - /* - * need to stop all transfers atomically, hence when clear stall - * completes, it might start other transfers ! - */ - mtx_lock(&Giant); - for (n = 0; n < UBSER_N_TRANSFER; n++) { - usb2_transfer_stop(sc->sc_xfer[n]); - } - mtx_unlock(&Giant); - usb2_transfer_unsetup(sc->sc_xfer, UBSER_N_TRANSFER); return (0); @@ -409,19 +368,6 @@ } static void -ubser_write_clear_stall_callback(struct usb2_xfer *xfer) -{ - struct ubser_softc *sc = xfer->priv_sc; - struct usb2_xfer *xfer_other = sc->sc_xfer[UBSER_BULK_DT_WR]; - - if (usb2_clear_stall_callback(xfer, xfer_other)) { - DPRINTF("stall cleared\n"); - sc->sc_flags &= ~UBSER_FLAG_WRITE_STALL; - usb2_transfer_start(xfer_other); - } -} - -static void ubser_write_callback(struct usb2_xfer *xfer) { struct ubser_softc *sc = xfer->priv_sc; @@ -432,10 +378,7 @@ switch (USB_GET_STATE(xfer)) { case USB_ST_SETUP: case USB_ST_TRANSFERRED: - if (sc->sc_flags & UBSER_FLAG_WRITE_STALL) { - usb2_transfer_start(sc->sc_xfer[UBSER_BULK_CS_WR]); - return; - } +tr_setup: do { if (usb2_com_get_data(sc->sc_ucom + sc->sc_curr_tx_unit, xfer->frbuffers, 1, sc->sc_tx_size - 1, @@ -460,8 +403,9 @@ default: /* Error */ if (xfer->error != USB_ERR_CANCELLED) { - sc->sc_flags |= UBSER_FLAG_WRITE_STALL; - usb2_transfer_start(sc->sc_xfer[UBSER_BULK_CS_WR]); + /* try to clear stall first */ + xfer->flags.stall_pipe = 1; + goto tr_setup; } return; @@ -469,19 +413,6 @@ } static void -ubser_read_clear_stall_callback(struct usb2_xfer *xfer) -{ - struct ubser_softc *sc = xfer->priv_sc; - struct usb2_xfer *xfer_other = sc->sc_xfer[UBSER_BULK_DT_RD]; - - if (usb2_clear_stall_callback(xfer, xfer_other)) { - DPRINTF("stall cleared\n"); - sc->sc_flags &= ~UBSER_FLAG_READ_STALL; - usb2_transfer_start(xfer_other); - } -} - -static void ubser_read_callback(struct usb2_xfer *xfer) { struct ubser_softc *sc = xfer->priv_sc; @@ -504,18 +435,15 @@ case USB_ST_SETUP: tr_setup: - if (sc->sc_flags & UBSER_FLAG_READ_STALL) { - usb2_transfer_start(sc->sc_xfer[UBSER_BULK_CS_RD]); - } else { - xfer->frlengths[0] = xfer->max_data_length; - usb2_start_hardware(xfer); - } + xfer->frlengths[0] = xfer->max_data_length; + usb2_start_hardware(xfer); return; default: /* Error */ if (xfer->error != USB_ERR_CANCELLED) { - sc->sc_flags |= UBSER_FLAG_READ_STALL; - usb2_transfer_start(sc->sc_xfer[UBSER_BULK_CS_RD]); + /* try to clear stall first */ + xfer->flags.stall_pipe = 1; + goto tr_setup; } return; @@ -540,9 +468,8 @@ req.wIndex[1] = 0; USETW(req.wLength, 0); - err = usb2_do_request_flags - (sc->sc_udev, &Giant, &req, NULL, 0, NULL, 1000); - + err = usb2_com_cfg_do_request(sc->sc_udev, ucom, + &req, NULL, 0, 1000); if (err) { DPRINTFN(0, "send break failed, error=%s\n", usb2_errstr(err)); @@ -571,7 +498,6 @@ { struct ubser_softc *sc = ucom->sc_parent; - usb2_transfer_stop(sc->sc_xfer[UBSER_BULK_CS_RD]); usb2_transfer_stop(sc->sc_xfer[UBSER_BULK_DT_RD]); } @@ -588,6 +514,5 @@ { struct ubser_softc *sc = ucom->sc_parent; - usb2_transfer_stop(sc->sc_xfer[UBSER_BULK_CS_WR]); usb2_transfer_stop(sc->sc_xfer[UBSER_BULK_DT_WR]); } ==== //depot/projects/usb/src/sys/dev/usb2/serial/uchcom2.c#19 (text+ko) ==== @@ -148,11 +148,8 @@ enum { UCHCOM_BULK_DT_WR, UCHCOM_BULK_DT_RD, - UCHCOM_BULK_CS_WR, - UCHCOM_BULK_CS_RD, UCHCOM_INTR_DT_RD, - UCHCOM_INTR_CS_RD, - UCHCOM_N_TRANSFER = 6, + UCHCOM_N_TRANSFER, }; struct uchcom_softc { @@ -167,10 +164,6 @@ uint8_t sc_version; uint8_t sc_msr; uint8_t sc_lsr; /* local status register */ - uint8_t sc_flag; -#define UCHCOM_FLAG_INTR_STALL 0x01 -#define UCHCOM_FLAG_READ_STALL 0x02 -#define UCHCOM_FLAG_WRITE_STALL 0x04 }; struct uchcom_divider { @@ -230,11 +223,8 @@ static device_detach_t uchcom_detach; static usb2_callback_t uchcom_intr_callback; -static usb2_callback_t uchcom_intr_clear_stall_callback; static usb2_callback_t uchcom_write_callback; -static usb2_callback_t uchcom_write_clear_stall_callback; static usb2_callback_t uchcom_read_callback; -static usb2_callback_t uchcom_read_clear_stall_callback; static const struct usb2_config uchcom_config_data[UCHCOM_N_TRANSFER] = { @@ -256,26 +246,6 @@ .mh.callback = &uchcom_read_callback, }, - [UCHCOM_BULK_CS_WR] = { - .type = UE_CONTROL, - .endpoint = 0x00, /* Control pipe */ - .direction = UE_DIR_ANY, - .mh.bufsize = sizeof(struct usb2_device_request), - .mh.callback = &uchcom_write_clear_stall_callback, - .mh.timeout = 1000, /* 1 second */ - .mh.interval = 50, /* 50ms */ - }, - - [UCHCOM_BULK_CS_RD] = { - .type = UE_CONTROL, - .endpoint = 0x00, /* Control pipe */ - .direction = UE_DIR_ANY, - .mh.bufsize = sizeof(struct usb2_device_request), - .mh.callback = &uchcom_read_clear_stall_callback, - .mh.timeout = 1000, /* 1 second */ - .mh.interval = 50, /* 50ms */ - }, - [UCHCOM_INTR_DT_RD] = { .type = UE_INTERRUPT, .endpoint = UE_ADDR_ANY, @@ -284,16 +254,6 @@ .mh.bufsize = 0, /* use wMaxPacketSize */ .mh.callback = &uchcom_intr_callback, }, - - [UCHCOM_INTR_CS_RD] = { - .type = UE_CONTROL, - .endpoint = 0x00, /* Control pipe */ - .direction = UE_DIR_ANY, - .mh.bufsize = sizeof(struct usb2_device_request), - .mh.callback = &uchcom_intr_clear_stall_callback, - .mh.timeout = 1000, /* 1 second */ - .mh.interval = 50, /* 50ms */ - }, }; struct usb2_com_callback uchcom_callback = { @@ -378,8 +338,8 @@ sc->sc_rts = 1; /* clear stall at first run */ - sc->sc_flag |= (UCHCOM_FLAG_READ_STALL | - UCHCOM_FLAG_WRITE_STALL); + usb2_transfer_set_stall(sc->sc_xfer[UCHCOM_BULK_DT_WR]); + usb2_transfer_set_stall(sc->sc_xfer[UCHCOM_BULK_DT_RD]); error = usb2_com_attach(&sc->sc_super_ucom, &sc->sc_ucom, 1, sc, &uchcom_callback, &Giant); @@ -412,35 +372,6 @@ */ static void -uchcom_do_request(struct uchcom_softc *sc, - struct usb2_device_request *req, void *data) -{ - uint16_t length; - uint16_t actlen; - usb2_error_t err; - - length = UGETW(req->wLength); - actlen = 0; - - if (usb2_com_cfg_is_gone(&sc->sc_ucom)) { - goto done; - } - err = usb2_do_request_flags(sc->sc_udev, &Giant, req, - data, USB_SHORT_XFER_OK, &actlen, 1000); - - if (err) { - DPRINTFN(0, "device request failed, err=%s " - "(ignored)\n", usb2_errstr(err)); - } -done: - if (length != actlen) { - if (req->bmRequestType & UT_READ) { - bzero(USB_ADD_BYTES(data, actlen), length - actlen); - } - } -} - -static void uchcom_ctrl_write(struct uchcom_softc *sc, uint8_t reqno, uint16_t value, uint16_t index) { @@ -452,7 +383,8 @@ USETW(req.wIndex, index); USETW(req.wLength, 0); - uchcom_do_request(sc, &req, NULL); + usb2_com_cfg_do_request(sc->sc_udev, + &sc->sc_ucom, &req, NULL, 0, 1000); } static void @@ -467,7 +399,8 @@ USETW(req.wIndex, index); USETW(req.wLength, buflen); - uchcom_do_request(sc, &req, buf); + usb2_com_cfg_do_request(sc->sc_udev, + &sc->sc_ucom, &req, buf, USB_SHORT_XFER_OK, 1000); } static void @@ -812,7 +745,6 @@ usb2_transfer_stop(sc->sc_xfer[UCHCOM_INTR_DT_RD]); /* stop read endpoint */ - usb2_transfer_stop(sc->sc_xfer[UCHCOM_BULK_CS_RD]); usb2_transfer_stop(sc->sc_xfer[UCHCOM_BULK_DT_RD]); } @@ -829,7 +761,6 @@ { struct uchcom_softc *sc = ucom->sc_parent; - usb2_transfer_stop(sc->sc_xfer[UCHCOM_BULK_CS_WR]); usb2_transfer_stop(sc->sc_xfer[UCHCOM_BULK_DT_WR]); } @@ -859,37 +790,22 @@ usb2_com_status_change(&sc->sc_ucom); } case USB_ST_SETUP: - if (sc->sc_flag & UCHCOM_FLAG_INTR_STALL) { - usb2_transfer_start(sc->sc_xfer[UCHCOM_INTR_CS_RD]); - } else { - xfer->frlengths[0] = xfer->max_data_length; - usb2_start_hardware(xfer); - } +tr_setup: + xfer->frlengths[0] = xfer->max_data_length; + usb2_start_hardware(xfer); break; default: /* Error */ if (xfer->error != USB_ERR_CANCELLED) { - sc->sc_flag |= UCHCOM_FLAG_INTR_STALL; - usb2_transfer_start(sc->sc_xfer[UCHCOM_INTR_CS_RD]); + /* try to clear stall first */ + xfer->flags.stall_pipe = 1; + goto tr_setup; } break; } } static void -uchcom_intr_clear_stall_callback(struct usb2_xfer *xfer) -{ - struct uchcom_softc *sc = xfer->priv_sc; - struct usb2_xfer *xfer_other = sc->sc_xfer[UCHCOM_INTR_DT_RD]; - - if (usb2_clear_stall_callback(xfer, xfer_other)) { - DPRINTF("stall cleared\n"); - sc->sc_flag &= ~UCHCOM_FLAG_INTR_STALL; - usb2_transfer_start(xfer_other); - } -} - -static void uchcom_write_callback(struct usb2_xfer *xfer) { struct uchcom_softc *sc = xfer->priv_sc; @@ -898,10 +814,7 @@ switch (USB_GET_STATE(xfer)) { case USB_ST_SETUP: case USB_ST_TRANSFERRED: - if (sc->sc_flag & UCHCOM_FLAG_WRITE_STALL) { - usb2_transfer_start(sc->sc_xfer[UCHCOM_BULK_CS_WR]); - return; - } +tr_setup: if (usb2_com_get_data(&sc->sc_ucom, xfer->frbuffers, 0, UCHCOM_BULK_BUF_SIZE, &actlen)) { @@ -914,8 +827,9 @@ default: /* Error */ if (xfer->error != USB_ERR_CANCELLED) { - sc->sc_flag |= UCHCOM_FLAG_WRITE_STALL; - usb2_transfer_start(sc->sc_xfer[UCHCOM_BULK_CS_WR]); + /* try to clear stall first */ + xfer->flags.stall_pipe = 1; + goto tr_setup; } return; @@ -923,19 +837,6 @@ } static void -uchcom_write_clear_stall_callback(struct usb2_xfer *xfer) -{ - struct uchcom_softc *sc = xfer->priv_sc; - struct usb2_xfer *xfer_other = sc->sc_xfer[UCHCOM_BULK_DT_WR]; - - if (usb2_clear_stall_callback(xfer, xfer_other)) { - DPRINTF("stall cleared\n"); - sc->sc_flag &= ~UCHCOM_FLAG_WRITE_STALL; - usb2_transfer_start(xfer_other); - } -} - -static void uchcom_read_callback(struct usb2_xfer *xfer) { struct uchcom_softc *sc = xfer->priv_sc; @@ -945,34 +846,18 @@ usb2_com_put_data(&sc->sc_ucom, xfer->frbuffers, 0, xfer->actlen); case USB_ST_SETUP: - if (sc->sc_flag & UCHCOM_FLAG_READ_STALL) { - usb2_transfer_start(sc->sc_xfer[UCHCOM_BULK_CS_RD]); - } else { - xfer->frlengths[0] = xfer->max_data_length; - usb2_start_hardware(xfer); - } +tr_setup: + xfer->frlengths[0] = xfer->max_data_length; + usb2_start_hardware(xfer); return; default: /* Error */ if (xfer->error != USB_ERR_CANCELLED) { - sc->sc_flag |= UCHCOM_FLAG_READ_STALL; - usb2_transfer_start(sc->sc_xfer[UCHCOM_BULK_CS_RD]); + /* try to clear stall first */ + xfer->flags.stall_pipe = 1; + goto tr_setup; } return; - - } -} >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Wed Feb 4 13:51:47 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 9F76A1065673; Wed, 4 Feb 2009 13:51:47 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 5F16F106564A for ; Wed, 4 Feb 2009 13:51:47 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 4D6428FC16 for ; Wed, 4 Feb 2009 13:51:47 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n14Dpkhg031471 for ; Wed, 4 Feb 2009 13:51:46 GMT (envelope-from hselasky@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n14Dpk3m031469 for perforce@freebsd.org; Wed, 4 Feb 2009 13:51:46 GMT (envelope-from hselasky@FreeBSD.org) Date: Wed, 4 Feb 2009 13:51:46 GMT Message-Id: <200902041351.n14Dpk3m031469@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky To: Perforce Change Reviews Cc: Subject: PERFORCE change 157137 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 04 Feb 2009 13:51:48 -0000 http://perforce.freebsd.org/chv.cgi?CH=157137 Change 157137 by hselasky@hselasky_laptop001 on 2009/02/04 13:50:49 USB ethernet patch: - Make function definition match prototype. - Clear control request destination buffer in all error cases. Affected files ... .. //depot/projects/usb/src/sys/dev/usb2/ethernet/usb2_ethernet.c#9 edit Differences ... ==== //depot/projects/usb/src/sys/dev/usb2/ethernet/usb2_ethernet.c#9 (text+ko) ==== @@ -315,21 +315,25 @@ usb2_error_t usb2_ether_do_request(struct usb2_ether *ue, struct usb2_device_request *req, void *data, - uint32_t timeout) + unsigned int timeout) { uint16_t len; usb2_error_t err; + /* get request data length */ + len = UGETW(req->wLength); + /* check if the device is being detached */ - if (usb2_proc_is_gone(&ue->ue_tq)) - return (USB_ERR_IOERROR); + if (usb2_proc_is_gone(&ue->ue_tq)) { + err = USB_ERR_IOERROR; + goto done; + } - len = UGETW(req->wLength); - /* do the USB request */ err = usb2_do_request_flags(ue->ue_udev, ue->ue_mtx, req, data, 0, NULL, timeout); +done: /* on failure we zero the data */ if (err && len && (req->bmRequestType & UE_DIR_IN)) memset(data, 0, len); From owner-p4-projects@FreeBSD.ORG Wed Feb 4 13:57:54 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 43307106568D; Wed, 4 Feb 2009 13:57:54 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id AE06E1065680 for ; Wed, 4 Feb 2009 13:57:53 +0000 (UTC) (envelope-from sson@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 977928FC23 for ; Wed, 4 Feb 2009 13:57:53 +0000 (UTC) (envelope-from sson@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n14Dvr7B032293 for ; Wed, 4 Feb 2009 13:57:53 GMT (envelope-from sson@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n14DvrW1032291 for perforce@freebsd.org; Wed, 4 Feb 2009 13:57:53 GMT (envelope-from sson@FreeBSD.org) Date: Wed, 4 Feb 2009 13:57:53 GMT Message-Id: <200902041357.n14DvrW1032291@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to sson@FreeBSD.org using -f From: Stacey Son To: Perforce Change Reviews Cc: Subject: PERFORCE change 157138 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 04 Feb 2009 13:57:59 -0000 http://perforce.freebsd.org/chv.cgi?CH=157138 Change 157138 by sson@sson_amd64 on 2009/02/04 13:57:30 Correct Typos. Submitted by: Christian Brueffer Affected files ... .. //depot/projects/trustedbsd/openbsm/bin/audit/audit.8#15 edit Differences ... ==== //depot/projects/trustedbsd/openbsm/bin/audit/audit.8#15 (text+ko) ==== @@ -25,7 +25,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. .\" -.\" $P4: //depot/projects/trustedbsd/openbsm/bin/audit/audit.8#14 $ +.\" $P4: //depot/projects/trustedbsd/openbsm/bin/audit/audit.8#15 $ .\" .Dd January 29, 2009 .Dt AUDIT 8 @@ -44,7 +44,7 @@ .Nm : .Bl -tag -width indent .It Fl e -Forces the audit system to immmediately removed audit log files that +Forces the audit system to immediately remove audit log files that meet the expiration criteria specified in the audit control file without doing a log rotation. .It Fl i From owner-p4-projects@FreeBSD.ORG Wed Feb 4 14:12:12 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id B057010656C0; Wed, 4 Feb 2009 14:12:12 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 656F71065698; Wed, 4 Feb 2009 14:12:12 +0000 (UTC) (envelope-from hselasky@c2i.net) Received: from swip.net (mailfe04.swip.net [212.247.154.97]) by mx1.freebsd.org (Postfix) with ESMTP id C0DF48FC14; Wed, 4 Feb 2009 14:12:11 +0000 (UTC) (envelope-from hselasky@c2i.net) X-Cloudmark-Score: 0.000000 [] X-Cloudmark-Analysis: v=1.0 c=1 a=0KBuQ0Py0AsA:10 a=vJfZpIWdE3N5OeBeko8A:9 a=O1i1IH5xeNOpVb9hRBMA:7 a=vgQ8i8LXVMoHKX_azwXA3t-HrBoA:4 a=LY0hPdMaydYA:10 Received: from [85.19.218.115] (account mc467741@c2i.net HELO [10.37.1.92]) by mailfe04.swip.net (CommuniGate Pro SMTP 5.2.6) with ESMTPA id 1190470165; Wed, 04 Feb 2009 14:57:10 +0100 From: Hans Petter Selasky To: Weongyo Jeong Date: Wed, 4 Feb 2009 14:59:35 +0100 User-Agent: KMail/1.9.7 References: <200902041242.n14CgXj2014958@repoman.freebsd.org> In-Reply-To: <200902041242.n14CgXj2014958@repoman.freebsd.org> MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Content-Disposition: inline Message-Id: <200902041459.35445.hselasky@c2i.net> Cc: Perforce Change Reviews Subject: Re: PERFORCE change 157132 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 04 Feb 2009 14:12:14 -0000 On Wednesday 04 February 2009, Weongyo Jeong wrote: > =A0=A0=A0=A0=A0=A0=A0=A0bzero(desc, sizeof(struct uath_tx_desc)); > =A0=A0=A0=A0=A0=A0=A0=A0desc->msglen =3D htobe32(sizeof(struct uath_tx_de= sc)); > -=A0=A0=A0=A0=A0=A0=A0desc->msgid =A0=3D data_idx + 1;=A0=A0=A0=A0/* don'= t care about endianness */ > +=A0=A0=A0=A0=A0=A0=A0desc->msgid =A0=3D (sc->sc_msgid++) + 1;=A0=A0=A0= =A0/* don't care about > endianness */ desc->type =A0 =3D htobe32(WDCMSG_FLUSH); > =A0=A0=A0=A0=A0=A0=A0=A0desc->txqid =A0=3D htobe32(0); > =A0=A0=A0=A0=A0=A0=A0=A0desc->connid =3D htobe32(0); Why not allocate an mbuf to hold the "descriptor" data. Then you use the=20 m_next field of the header mbuf to link with the "data" mbuf ? Then you onl= y=20 need one [mbuf] queue for TX ? You can look at if_ural2.c and if_rum2.c=20 in /sys/dev/usb2/wlan . =2D-HPS From owner-p4-projects@FreeBSD.ORG Wed Feb 4 15:02:06 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 990641065670; Wed, 4 Feb 2009 15:02:05 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 580F4106566B for ; Wed, 4 Feb 2009 15:02:05 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 46CCE8FC08 for ; Wed, 4 Feb 2009 15:02:05 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n14F25xV042620 for ; Wed, 4 Feb 2009 15:02:05 GMT (envelope-from hselasky@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n14F25P6042618 for perforce@freebsd.org; Wed, 4 Feb 2009 15:02:05 GMT (envelope-from hselasky@FreeBSD.org) Date: Wed, 4 Feb 2009 15:02:05 GMT Message-Id: <200902041502.n14F25P6042618@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky To: Perforce Change Reviews Cc: Subject: PERFORCE change 157141 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 04 Feb 2009 15:02:07 -0000 http://perforce.freebsd.org/chv.cgi?CH=157141 Change 157141 by hselasky@hselasky_laptop001 on 2009/02/04 15:01:32 Remove safety delay from detach path, hence this can break USB device side mode support for USB, when the detach takes too long. Affected files ... .. //depot/projects/usb/src/sys/dev/usb2/ethernet/usb2_ethernet.c#10 edit Differences ... ==== //depot/projects/usb/src/sys/dev/usb2/ethernet/usb2_ethernet.c#10 (text+ko) ==== @@ -281,13 +281,6 @@ free_unr(ueunit, ue->ue_unit); } - /* - * The FreeBSD network stack has some detach races with regard - * to IOCTLs so we need to wait a little bit before finally - * detaching! - */ - pause("safe", hz / 100); - /* free taskqueue, if any */ usb2_proc_free(&ue->ue_tq); } From owner-p4-projects@FreeBSD.ORG Wed Feb 4 16:22:27 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 6529C1065676; Wed, 4 Feb 2009 16:22:27 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 1CE511065673 for ; Wed, 4 Feb 2009 16:22:27 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 0B3288FC1C for ; Wed, 4 Feb 2009 16:22:27 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n14GMQoi053494 for ; Wed, 4 Feb 2009 16:22:26 GMT (envelope-from hselasky@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n14GMQcj053492 for perforce@freebsd.org; Wed, 4 Feb 2009 16:22:26 GMT (envelope-from hselasky@FreeBSD.org) Date: Wed, 4 Feb 2009 16:22:26 GMT Message-Id: <200902041622.n14GMQcj053492@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky To: Perforce Change Reviews Cc: Subject: PERFORCE change 157143 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 04 Feb 2009 16:22:29 -0000 http://perforce.freebsd.org/chv.cgi?CH=157143 Change 157143 by hselasky@hselasky_laptop001 on 2009/02/04 16:22:19 USB serial: Simplify line state programming, reduce memory requirement. Affected files ... .. //depot/projects/usb/src/sys/dev/usb2/serial/usb2_serial.c#25 edit .. //depot/projects/usb/src/sys/dev/usb2/serial/usb2_serial.h#14 edit Differences ... ==== //depot/projects/usb/src/sys/dev/usb2/serial/usb2_serial.c#25 (text+ko) ==== @@ -95,12 +95,7 @@ static usb2_proc_callback_t usb2_com_cfg_start_transfers; static usb2_proc_callback_t usb2_com_cfg_open; static usb2_proc_callback_t usb2_com_cfg_close; -static usb2_proc_callback_t usb2_com_cfg_break_on; -static usb2_proc_callback_t usb2_com_cfg_break_off; -static usb2_proc_callback_t usb2_com_cfg_dtr_on; -static usb2_proc_callback_t usb2_com_cfg_dtr_off; -static usb2_proc_callback_t usb2_com_cfg_rts_on; -static usb2_proc_callback_t usb2_com_cfg_rts_off; +static usb2_proc_callback_t usb2_com_cfg_line_state; static usb2_proc_callback_t usb2_com_cfg_status_change; static usb2_proc_callback_t usb2_com_cfg_param; @@ -543,6 +538,11 @@ sc->sc_msr = 0; sc->sc_mcr = 0; + /* reset programmed line state */ + sc->sc_pls_curr = 0; + sc->sc_pls_set = 0; + sc->sc_pls_clr = 0; + usb2_com_queue_command(sc, usb2_com_cfg_open, NULL, &sc->sc_open_task[0].hdr, &sc->sc_open_task[1].hdr); @@ -703,165 +703,119 @@ } static void -usb2_com_cfg_break_on(struct usb2_proc_msg *_task) +usb2_com_cfg_line_state(struct usb2_proc_msg *_task) { struct usb2_com_cfg_task *task = (struct usb2_com_cfg_task *)_task; struct usb2_com_softc *sc = task->sc; + uint8_t notch_bits; + uint8_t any_bits; + uint8_t prev_value; + uint8_t last_value; + uint8_t mask; if (!(sc->sc_flag & UCOM_FLAG_LL_READY)) { return; } - DPRINTF("\n"); + + mask = 0; + /* compute callback mask */ + if (sc->sc_callback->usb2_com_cfg_set_dtr) + mask |= UCOM_LS_DTR; + if (sc->sc_callback->usb2_com_cfg_set_rts) + mask |= UCOM_LS_RTS; + if (sc->sc_callback->usb2_com_cfg_set_break) + mask |= UCOM_LS_BREAK; - if (sc->sc_callback->usb2_com_cfg_set_break) { - (sc->sc_callback->usb2_com_cfg_set_break) (sc, 1); - } -} + /* compute the bits we are to program */ + notch_bits = (sc->sc_pls_set & sc->sc_pls_clr) & mask; + any_bits = (sc->sc_pls_set | sc->sc_pls_clr) & mask; + prev_value = sc->sc_pls_curr ^ notch_bits; + last_value = sc->sc_pls_curr; -static void -usb2_com_cfg_break_off(struct usb2_proc_msg *_task) -{ - struct usb2_com_cfg_task *task = - (struct usb2_com_cfg_task *)_task; - struct usb2_com_softc *sc = task->sc; + /* reset programmed line state */ + sc->sc_pls_curr = 0; + sc->sc_pls_set = 0; + sc->sc_pls_clr = 0; - if (!(sc->sc_flag & UCOM_FLAG_LL_READY)) { - return; - } - DPRINTF("\n"); + /* ensure that we don't loose any levels */ + if (notch_bits & UCOM_LS_DTR) + sc->sc_callback->usb2_com_cfg_set_dtr(sc, + (prev_value & UCOM_LS_DTR) ? 1 : 0); + if (notch_bits & UCOM_LS_RTS) + sc->sc_callback->usb2_com_cfg_set_rts(sc, + (prev_value & UCOM_LS_RTS) ? 1 : 0); + if (notch_bits & UCOM_LS_BREAK) + sc->sc_callback->usb2_com_cfg_set_break(sc, + (prev_value & UCOM_LS_BREAK) ? 1 : 0); - if (sc->sc_callback->usb2_com_cfg_set_break) { - (sc->sc_callback->usb2_com_cfg_set_break) (sc, 0); - } + /* set last value */ + if (any_bits & UCOM_LS_DTR) + sc->sc_callback->usb2_com_cfg_set_dtr(sc, + (last_value & UCOM_LS_DTR) ? 1 : 0); + if (any_bits & UCOM_LS_RTS) + sc->sc_callback->usb2_com_cfg_set_rts(sc, + (last_value & UCOM_LS_RTS) ? 1 : 0); + if (any_bits & UCOM_LS_BREAK) + sc->sc_callback->usb2_com_cfg_set_break(sc, + (last_value & UCOM_LS_BREAK) ? 1 : 0); } static void -usb2_com_break(struct usb2_com_softc *sc, uint8_t onoff) +usb2_com_line_state(struct usb2_com_softc *sc, + uint8_t set_bits, uint8_t clear_bits) { mtx_assert(sc->sc_mtx, MA_OWNED); if (!(sc->sc_flag & UCOM_FLAG_HL_READY)) { return; } - DPRINTF("onoff = %d\n", onoff); - if (onoff) - usb2_com_queue_command(sc, usb2_com_cfg_break_on, NULL, - &sc->sc_break_on_task[0].hdr, - &sc->sc_break_on_task[1].hdr); - else - usb2_com_queue_command(sc, usb2_com_cfg_break_off, NULL, - &sc->sc_break_off_task[0].hdr, - &sc->sc_break_off_task[1].hdr); -} + DPRINTF("on=0x%02x, off=0x%02x\n", set_bits, clear_bits); -static void -usb2_com_cfg_dtr_on(struct usb2_proc_msg *_task) -{ - struct usb2_com_cfg_task *task = - (struct usb2_com_cfg_task *)_task; - struct usb2_com_softc *sc = task->sc; + /* update current programmed line state */ + sc->sc_pls_curr |= set_bits; + sc->sc_pls_curr &= ~clear_bits; + sc->sc_pls_set |= set_bits; + sc->sc_pls_clr |= clear_bits; - if (!(sc->sc_flag & UCOM_FLAG_LL_READY)) { - return; - } - DPRINTF("\n"); - - if (sc->sc_callback->usb2_com_cfg_set_dtr) { - (sc->sc_callback->usb2_com_cfg_set_dtr) (sc, 1); - } + /* defer driver programming */ + usb2_com_queue_command(sc, usb2_com_cfg_line_state, NULL, + &sc->sc_line_state_task[0].hdr, + &sc->sc_line_state_task[1].hdr); } static void -usb2_com_cfg_dtr_off(struct usb2_proc_msg *_task) +usb2_com_break(struct usb2_com_softc *sc, uint8_t onoff) { - struct usb2_com_cfg_task *task = - (struct usb2_com_cfg_task *)_task; - struct usb2_com_softc *sc = task->sc; + DPRINTF("onoff = %d\n", onoff); - if (!(sc->sc_flag & UCOM_FLAG_LL_READY)) { - return; - } - DPRINTF("\n"); - - if (sc->sc_callback->usb2_com_cfg_set_dtr) { - (sc->sc_callback->usb2_com_cfg_set_dtr) (sc, 0); - } + if (onoff) + usb2_com_line_state(sc, UCOM_LS_BREAK, 0); + else + usb2_com_line_state(sc, 0, UCOM_LS_BREAK); } static void usb2_com_dtr(struct usb2_com_softc *sc, uint8_t onoff) { - mtx_assert(sc->sc_mtx, MA_OWNED); - - if (!(sc->sc_flag & UCOM_FLAG_HL_READY)) { - return; - } DPRINTF("onoff = %d\n", onoff); if (onoff) - usb2_com_queue_command(sc, usb2_com_cfg_dtr_on, NULL, - &sc->sc_dtr_on_task[0].hdr, - &sc->sc_dtr_on_task[1].hdr); + usb2_com_line_state(sc, UCOM_LS_DTR, 0); else - usb2_com_queue_command(sc, usb2_com_cfg_dtr_off, NULL, - &sc->sc_dtr_off_task[0].hdr, - &sc->sc_dtr_off_task[1].hdr); + usb2_com_line_state(sc, 0, UCOM_LS_DTR); } static void -usb2_com_cfg_rts_on(struct usb2_proc_msg *_task) -{ - struct usb2_com_cfg_task *task = - (struct usb2_com_cfg_task *)_task; - struct usb2_com_softc *sc = task->sc; - - DPRINTF("\n"); - - if (!(sc->sc_flag & UCOM_FLAG_LL_READY)) { - return; - } - if (sc->sc_callback->usb2_com_cfg_set_rts) { - (sc->sc_callback->usb2_com_cfg_set_rts) (sc, 1); - } -} - -static void -usb2_com_cfg_rts_off(struct usb2_proc_msg *_task) -{ - struct usb2_com_cfg_task *task = - (struct usb2_com_cfg_task *)_task; - struct usb2_com_softc *sc = task->sc; - - DPRINTF("\n"); - - if (!(sc->sc_flag & UCOM_FLAG_LL_READY)) { - return; - } - if (sc->sc_callback->usb2_com_cfg_set_rts) { - (sc->sc_callback->usb2_com_cfg_set_rts) (sc, 0); - } -} - -static void usb2_com_rts(struct usb2_com_softc *sc, uint8_t onoff) { - mtx_assert(sc->sc_mtx, MA_OWNED); - - if (!(sc->sc_flag & UCOM_FLAG_HL_READY)) { - return; - } DPRINTF("onoff = %d\n", onoff); if (onoff) - usb2_com_queue_command(sc, usb2_com_cfg_rts_on, NULL, - &sc->sc_rts_on_task[0].hdr, - &sc->sc_rts_on_task[1].hdr); + usb2_com_line_state(sc, UCOM_LS_RTS, 0); else - usb2_com_queue_command(sc, usb2_com_cfg_rts_off, NULL, - &sc->sc_rts_off_task[0].hdr, - &sc->sc_rts_off_task[1].hdr); + usb2_com_line_state(sc, 0, UCOM_LS_RTS); } static void ==== //depot/projects/usb/src/sys/dev/usb2/serial/usb2_serial.h#14 (text+ko) ==== @@ -148,12 +148,7 @@ struct usb2_com_cfg_task sc_start_task[2]; struct usb2_com_cfg_task sc_open_task[2]; struct usb2_com_cfg_task sc_close_task[2]; - struct usb2_com_cfg_task sc_break_on_task[2]; - struct usb2_com_cfg_task sc_dtr_on_task[2]; - struct usb2_com_cfg_task sc_rts_on_task[2]; - struct usb2_com_cfg_task sc_break_off_task[2]; - struct usb2_com_cfg_task sc_dtr_off_task[2]; - struct usb2_com_cfg_task sc_rts_off_task[2]; + struct usb2_com_cfg_task sc_line_state_task[2]; struct usb2_com_cfg_task sc_status_task[2]; struct usb2_com_param_task sc_param_task[2]; struct cv sc_cv; @@ -177,6 +172,13 @@ uint8_t sc_msr; uint8_t sc_mcr; uint8_t sc_ttyfreed; /* set when TTY has been freed */ + /* programmed line state bits */ + uint8_t sc_pls_set; /* set bits */ + uint8_t sc_pls_clr; /* cleared bits */ + uint8_t sc_pls_curr; /* last state */ +#define UCOM_LS_DTR 0x01 +#define UCOM_LS_RTS 0x02 +#define UCOM_LS_BREAK 0x04 }; int usb2_com_attach(struct usb2_com_super_softc *, From owner-p4-projects@FreeBSD.ORG Wed Feb 4 16:33:09 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id A2CC81065678; Wed, 4 Feb 2009 16:33:09 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 5877A1065674 for ; Wed, 4 Feb 2009 16:33:09 +0000 (UTC) (envelope-from thompsa@FreeBSD.org) Received: from pele.citylink.co.nz (pele.citylink.co.nz [202.8.44.226]) by mx1.freebsd.org (Postfix) with ESMTP id 173498FC1B for ; Wed, 4 Feb 2009 16:33:08 +0000 (UTC) (envelope-from thompsa@FreeBSD.org) Received: from localhost (localhost [127.0.0.1]) by pele.citylink.co.nz (Postfix) with ESMTP id 9B423FFAC; Thu, 5 Feb 2009 05:00:11 +1300 (NZDT) X-Virus-Scanned: Debian amavisd-new at citylink.co.nz Received: from pele.citylink.co.nz ([127.0.0.1]) by localhost (pele.citylink.co.nz [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id P0qUJdX3-x2O; Thu, 5 Feb 2009 05:00:06 +1300 (NZDT) Received: from citylink.fud.org.nz (unknown [202.8.44.45]) by pele.citylink.co.nz (Postfix) with ESMTP; Thu, 5 Feb 2009 05:00:06 +1300 (NZDT) Received: by citylink.fud.org.nz (Postfix, from userid 1001) id ACEC61142B; Thu, 5 Feb 2009 05:00:05 +1300 (NZDT) Date: Wed, 4 Feb 2009 08:00:05 -0800 From: Andrew Thompson To: Hans Petter Selasky Message-ID: <20090204160005.GB77595@citylink.fud.org.nz> References: <200902041242.n14CgXj2014958@repoman.freebsd.org> <200902041459.35445.hselasky@c2i.net> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <200902041459.35445.hselasky@c2i.net> User-Agent: Mutt/1.5.17 (2007-11-01) Cc: Perforce Change Reviews , Weongyo Jeong Subject: Re: PERFORCE change 157132 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 04 Feb 2009 16:33:11 -0000 On Wed, Feb 04, 2009 at 02:59:35PM +0100, Hans Petter Selasky wrote: > On Wednesday 04 February 2009, Weongyo Jeong wrote: > > ????????bzero(desc, sizeof(struct uath_tx_desc)); > > ????????desc->msglen = htobe32(sizeof(struct uath_tx_desc)); > > -???????desc->msgid ?= data_idx + 1;????/* don't care about endianness */ > > +???????desc->msgid ?= (sc->sc_msgid++) + 1;????/* don't care about > > endianness */ desc->type ? = htobe32(WDCMSG_FLUSH); > > ????????desc->txqid ?= htobe32(0); > > ????????desc->connid = htobe32(0); > > Why not allocate an mbuf to hold the "descriptor" data. Then you use the > m_next field of the header mbuf to link with the "data" mbuf ? Then you only > need one [mbuf] queue for TX ? You can look at if_ural2.c and if_rum2.c > in /sys/dev/usb2/wlan . Because uath_data+uath_tx_desc is preallocated so you do not have to malloc in the TX path. Grabbing a mbuf could fail due to low memory. Andrew From owner-p4-projects@FreeBSD.ORG Wed Feb 4 17:29:36 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 8A51C10656FD; Wed, 4 Feb 2009 17:29:35 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id E9D8710656F9 for ; Wed, 4 Feb 2009 17:29:34 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id D3A978FC36 for ; Wed, 4 Feb 2009 17:29:34 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n14HTYw2070747 for ; Wed, 4 Feb 2009 17:29:34 GMT (envelope-from hselasky@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n14HTYSE070745 for perforce@freebsd.org; Wed, 4 Feb 2009 17:29:34 GMT (envelope-from hselasky@FreeBSD.org) Date: Wed, 4 Feb 2009 17:29:34 GMT Message-Id: <200902041729.n14HTYSE070745@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky To: Perforce Change Reviews Cc: Subject: PERFORCE change 157145 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 04 Feb 2009 17:29:40 -0000 http://perforce.freebsd.org/chv.cgi?CH=157145 Change 157145 by hselasky@hselasky_laptop001 on 2009/02/04 17:28:49 USB serial patches. Fix multiport modem naming scheme, so that modems are named /dev/cuaU%u.%u when there is more than one port. Update U3G driver to put all modems into the same interface, and make the other interfaces slave interfaces. This affects the naming scheme. Affected files ... .. //depot/projects/usb/src/sys/dev/usb2/serial/u3g2.c#11 edit .. //depot/projects/usb/src/sys/dev/usb2/serial/usb2_serial.c#26 edit Differences ... ==== //depot/projects/usb/src/sys/dev/usb2/serial/u3g2.c#11 (text+ko) ==== @@ -98,11 +98,8 @@ struct usb2_xfer *sc_xfer[U3G_MAXPORTS][U3G_N_TRANSFER]; struct usb2_device *sc_udev; - uint8_t sc_iface_no; /* interface number */ - uint8_t sc_iface_index; /* interface index */ uint8_t sc_lsr; /* local status register */ uint8_t sc_msr; /* U3G status register */ - struct u3g_speeds_s sc_speed; uint8_t sc_numports; }; @@ -148,6 +145,7 @@ .usb2_com_stop_write = &u3g_stop_write, }; +#if 0 static const struct u3g_speeds_s u3g_speeds[U3GSP_MAX] = { [U3GSP_GPRS] = {64000, 64000}, [U3GSP_EDGE] = {384000, 64000}, @@ -157,6 +155,7 @@ [U3GSP_HSUPA] = {1200000, 384000}, [U3GSP_HSPA] = {7200000, 384000}, }; +#endif static device_method_t u3g_methods[] = { DEVMETHOD(device_probe, u3g_probe), @@ -385,8 +384,12 @@ struct usb2_config u3g_config_tmp[U3G_N_TRANSFER]; struct usb2_attach_arg *uaa = device_get_ivars(dev); struct u3g_softc *sc = device_get_softc(dev); + struct usb2_interface *iface; + struct usb2_interface_descriptor *id; + uint8_t m; uint8_t n; - uint8_t m; + uint8_t i; + uint8_t x; int error; DPRINTF("sc=%p\n", sc); @@ -398,30 +401,56 @@ device_set_usb2_desc(dev); sc->sc_udev = uaa->device; - sc->sc_iface_no = uaa->info.bIfaceNum; - sc->sc_iface_index = uaa->info.bIfaceIndex; - sc->sc_speed = u3g_speeds[U3G_GET_SPEED(uaa)]; + + x = 0; /* interface index */ + i = 0; /* endpoint index */ + m = 0; /* number of ports */ - for (m = 0; m != U3G_MAXPORTS; m++) { + while (m != U3G_MAXPORTS) { /* update BULK endpoint index */ for (n = 0; n != U3G_N_TRANSFER; n++) - u3g_config_tmp[n].ep_index = m; + u3g_config_tmp[n].ep_index = i; + + iface = usb2_get_iface(uaa->device, x); + if (iface == NULL) { + if (m != 0) + break; /* end of interfaces */ + DPRINTF("did not find any modem endpoints\n"); + goto detach; + } + + id = usb2_get_interface_descriptor(iface); + if ((id == NULL) || + (id->bInterfaceClass != UICLASS_VENDOR)) { + /* next interface */ + x++; + i = 0; + continue; + } /* try to allocate a set of BULK endpoints */ - error = usb2_transfer_setup(uaa->device, &sc->sc_iface_index, + error = usb2_transfer_setup(uaa->device, &x, sc->sc_xfer[m], u3g_config_tmp, U3G_N_TRANSFER, &sc->sc_ucom[m], &Giant); - if (error) { - if (m != 0) - break; /* end of endpoints */ - DPRINTF("could not allocate all pipes\n"); - goto detach; + /* next interface */ + x++; + i = 0; + continue; } + + /* grab other interface, if any */ + if (x != uaa->info.bIfaceIndex) + usb2_set_parent_iface(uaa->device, x, + uaa->info.bIfaceIndex); + /* set stall by default */ usb2_transfer_set_stall(sc->sc_xfer[m][U3G_BULK_WR]); usb2_transfer_set_stall(sc->sc_xfer[m][U3G_BULK_RD]); + + m++; /* found one port */ + i++; /* next endpoint index */ } sc->sc_numports = m; ==== //depot/projects/usb/src/sys/dev/usb2/serial/usb2_serial.c#26 (text+ko) ==== @@ -101,7 +101,7 @@ static uint8_t usb2_com_units_alloc(uint32_t, uint32_t *); static void usb2_com_units_free(uint32_t, uint32_t); -static int usb2_com_attach_tty(struct usb2_com_softc *); +static int usb2_com_attach_tty(struct usb2_com_softc *, uint32_t); static void usb2_com_detach_tty(struct usb2_com_softc *); static void usb2_com_queue_command(struct usb2_com_softc *, usb2_proc_callback_t *, struct termios *pt, @@ -249,7 +249,7 @@ sc->sc_parent = parent; sc->sc_callback = callback; - error = usb2_com_attach_tty(sc); + error = usb2_com_attach_tty(sc, sub_units); if (error) { usb2_com_detach(ssc, sc - n, n); usb2_com_units_free(root_unit + n, sub_units - n); @@ -287,7 +287,7 @@ } static int -usb2_com_attach_tty(struct usb2_com_softc *sc) +usb2_com_attach_tty(struct usb2_com_softc *sc, uint32_t sub_units) { struct tty *tp; int error = 0; @@ -309,8 +309,18 @@ } if (buf[0] == 0) { /* Use default TTY name */ - if (snprintf(buf, sizeof(buf), "U%u", sc->sc_unit)) { - /* ignore */ + if (sub_units > 1) { + /* multiple modems in one */ + if (snprintf(buf, sizeof(buf), "U%u.%u", + sc->sc_unit - sc->sc_local_unit, + sc->sc_local_unit)) { + /* ignore */ + } + } else { + /* single modem */ + if (snprintf(buf, sizeof(buf), "U%u", sc->sc_unit)) { + /* ignore */ + } } } tty_makedev(tp, NULL, "%s", buf); From owner-p4-projects@FreeBSD.ORG Wed Feb 4 18:47:45 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 7B3281065922; Wed, 4 Feb 2009 18:47:44 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id CDF6E106592F for ; Wed, 4 Feb 2009 18:47:43 +0000 (UTC) (envelope-from zec@icir.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 04F108FC0C for ; Wed, 4 Feb 2009 18:47:43 +0000 (UTC) (envelope-from zec@icir.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n14Ilh9J079779 for ; Wed, 4 Feb 2009 18:47:43 GMT (envelope-from zec@icir.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n14IlfX6079777 for perforce@freebsd.org; Wed, 4 Feb 2009 18:47:41 GMT (envelope-from zec@icir.org) Date: Wed, 4 Feb 2009 18:47:41 GMT Message-Id: <200902041847.n14IlfX6079777@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to zec@icir.org using -f From: Marko Zec To: Perforce Change Reviews Cc: Subject: PERFORCE change 157151 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 04 Feb 2009 18:47:52 -0000 http://perforce.freebsd.org/chv.cgi?CH=157151 Change 157151 by zec@zec_amdx2 on 2009/02/04 18:47:06 IFC @ 157147 Affected files ... .. //depot/projects/vimage/src/share/man/man4/iic.4#2 integrate .. //depot/projects/vimage/src/share/man/man4/man4.powerpc/Makefile#2 integrate .. //depot/projects/vimage/src/share/man/man4/man4.powerpc/snd_ai2s.4#1 branch .. //depot/projects/vimage/src/share/man/man4/man4.powerpc/snd_davbus.4#1 branch .. //depot/projects/vimage/src/share/man/man4/ng_bpf.4#2 integrate .. //depot/projects/vimage/src/share/man/man4/nge.4#2 integrate .. //depot/projects/vimage/src/share/man/man4/sk.4#2 integrate .. //depot/projects/vimage/src/share/man/man5/Makefile#2 integrate .. //depot/projects/vimage/src/share/man/man5/portindex.5#1 branch .. //depot/projects/vimage/src/share/man/man5/rc.conf.5#3 integrate .. //depot/projects/vimage/src/share/man/man7/Makefile#2 integrate .. //depot/projects/vimage/src/share/man/man7/adding_user.7#1 branch .. //depot/projects/vimage/src/share/man/man7/build.7#3 integrate .. //depot/projects/vimage/src/share/man/man7/tuning.7#2 integrate .. //depot/projects/vimage/src/share/man/man8/Makefile#2 integrate .. //depot/projects/vimage/src/share/man/man8/adding_user.8#2 delete .. //depot/projects/vimage/src/share/man/man9/kthread.9#2 integrate .. //depot/projects/vimage/src/sys/amd64/amd64/cpu_switch.S#12 integrate .. //depot/projects/vimage/src/sys/amd64/amd64/exception.S#9 integrate .. //depot/projects/vimage/src/sys/amd64/amd64/fpu.c#2 integrate .. //depot/projects/vimage/src/sys/amd64/amd64/io_apic.c#5 integrate .. //depot/projects/vimage/src/sys/amd64/amd64/local_apic.c#15 integrate .. //depot/projects/vimage/src/sys/amd64/amd64/machdep.c#13 integrate .. //depot/projects/vimage/src/sys/amd64/amd64/mp_machdep.c#13 integrate .. //depot/projects/vimage/src/sys/amd64/amd64/msi.c#8 integrate .. //depot/projects/vimage/src/sys/amd64/ia32/ia32_signal.c#5 integrate .. //depot/projects/vimage/src/sys/amd64/ia32/ia32_sigtramp.S#2 integrate .. //depot/projects/vimage/src/sys/amd64/include/apicvar.h#6 integrate .. //depot/projects/vimage/src/sys/amd64/include/cpufunc.h#4 integrate .. //depot/projects/vimage/src/sys/amd64/include/fpu.h#2 integrate .. //depot/projects/vimage/src/sys/amd64/include/intr_machdep.h#7 integrate .. //depot/projects/vimage/src/sys/amd64/linux32/linux32_locore.s#4 integrate .. //depot/projects/vimage/src/sys/amd64/linux32/linux32_sysvec.c#12 integrate .. //depot/projects/vimage/src/sys/arm/arm/busdma_machdep.c#12 integrate .. //depot/projects/vimage/src/sys/arm/arm/dump_machdep.c#11 integrate .. //depot/projects/vimage/src/sys/arm/arm/elf_trampoline.c#8 integrate .. //depot/projects/vimage/src/sys/arm/arm/pmap.c#17 integrate .. //depot/projects/vimage/src/sys/arm/arm/vm_machdep.c#9 integrate .. //depot/projects/vimage/src/sys/arm/conf/AVILA#11 integrate .. //depot/projects/vimage/src/sys/arm/conf/AVILA.hints#4 integrate .. //depot/projects/vimage/src/sys/arm/include/atomic.h#6 integrate .. //depot/projects/vimage/src/sys/arm/sa11x0/assabet_machdep.c#6 integrate .. //depot/projects/vimage/src/sys/arm/xscale/ixp425/avila_machdep.c#12 integrate .. //depot/projects/vimage/src/sys/arm/xscale/ixp425/files.ixp425#6 integrate .. //depot/projects/vimage/src/sys/arm/xscale/ixp425/ixp425.c#8 integrate .. //depot/projects/vimage/src/sys/arm/xscale/ixp425/ixp425reg.h#4 integrate .. //depot/projects/vimage/src/sys/boot/i386/pxeldr/pxeboot.8#2 integrate .. //depot/projects/vimage/src/sys/cam/cam_periph.c#7 integrate .. //depot/projects/vimage/src/sys/cam/cam_xpt.c#15 integrate .. //depot/projects/vimage/src/sys/cam/scsi/scsi_low.c#4 integrate .. //depot/projects/vimage/src/sys/cam/scsi/scsi_pass.c#7 integrate .. //depot/projects/vimage/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_znode.c#6 integrate .. //depot/projects/vimage/src/sys/compat/linux/linux_stats.c#10 integrate .. //depot/projects/vimage/src/sys/compat/ndis/winx32_wrap.S#2 integrate .. //depot/projects/vimage/src/sys/compat/svr4/svr4_types.h#2 integrate .. //depot/projects/vimage/src/sys/conf/files.amd64#18 integrate .. //depot/projects/vimage/src/sys/conf/files.i386#25 integrate .. //depot/projects/vimage/src/sys/conf/files.pc98#16 integrate .. //depot/projects/vimage/src/sys/conf/files.powerpc#17 integrate .. //depot/projects/vimage/src/sys/conf/kmod.mk#9 integrate .. //depot/projects/vimage/src/sys/conf/options#42 integrate .. //depot/projects/vimage/src/sys/contrib/pf/net/pf_ioctl.c#21 integrate .. //depot/projects/vimage/src/sys/dev/adb/adb_mouse.c#4 integrate .. //depot/projects/vimage/src/sys/dev/agp/agp_via.c#2 integrate .. //depot/projects/vimage/src/sys/dev/ath/ath_hal/ah.c#3 integrate .. //depot/projects/vimage/src/sys/dev/ath/ath_hal/ah.h#2 integrate .. //depot/projects/vimage/src/sys/dev/ath/ath_hal/ah_internal.h#3 integrate .. //depot/projects/vimage/src/sys/dev/ath/ath_hal/ah_regdomain.c#3 integrate .. //depot/projects/vimage/src/sys/dev/ath/ath_hal/ar5210/ar5210.h#2 integrate .. //depot/projects/vimage/src/sys/dev/ath/ath_hal/ar5210/ar5210_attach.c#2 integrate .. //depot/projects/vimage/src/sys/dev/ath/ath_hal/ar5210/ar5210_misc.c#2 integrate .. //depot/projects/vimage/src/sys/dev/ath/ath_hal/ar5210/ar5210_reset.c#3 integrate .. //depot/projects/vimage/src/sys/dev/ath/ath_hal/ar5210/ar5210_xmit.c#2 integrate .. //depot/projects/vimage/src/sys/dev/ath/ath_hal/ar5211/ar5211.h#2 integrate .. //depot/projects/vimage/src/sys/dev/ath/ath_hal/ar5211/ar5211_attach.c#2 integrate .. //depot/projects/vimage/src/sys/dev/ath/ath_hal/ar5211/ar5211_misc.c#3 integrate .. //depot/projects/vimage/src/sys/dev/ath/ath_hal/ar5211/ar5211_reset.c#3 integrate .. //depot/projects/vimage/src/sys/dev/ath/ath_hal/ar5211/ar5211_xmit.c#2 integrate .. //depot/projects/vimage/src/sys/dev/ath/ath_hal/ar5212/ar2316.c#2 integrate .. //depot/projects/vimage/src/sys/dev/ath/ath_hal/ar5212/ar2317.c#2 integrate .. //depot/projects/vimage/src/sys/dev/ath/ath_hal/ar5212/ar2413.c#2 integrate .. //depot/projects/vimage/src/sys/dev/ath/ath_hal/ar5212/ar2425.c#2 integrate .. //depot/projects/vimage/src/sys/dev/ath/ath_hal/ar5212/ar5111.c#3 integrate .. //depot/projects/vimage/src/sys/dev/ath/ath_hal/ar5212/ar5112.c#2 integrate .. //depot/projects/vimage/src/sys/dev/ath/ath_hal/ar5212/ar5212.h#2 integrate .. //depot/projects/vimage/src/sys/dev/ath/ath_hal/ar5212/ar5212_ani.c#3 integrate .. //depot/projects/vimage/src/sys/dev/ath/ath_hal/ar5212/ar5212_attach.c#2 integrate .. //depot/projects/vimage/src/sys/dev/ath/ath_hal/ar5212/ar5212_misc.c#4 integrate .. //depot/projects/vimage/src/sys/dev/ath/ath_hal/ar5212/ar5212_reset.c#3 integrate .. //depot/projects/vimage/src/sys/dev/ath/ath_hal/ar5212/ar5212_xmit.c#2 integrate .. //depot/projects/vimage/src/sys/dev/ath/ath_hal/ar5212/ar5413.c#2 integrate .. //depot/projects/vimage/src/sys/dev/ath/ath_hal/ar5312/ar5312.h#3 integrate .. //depot/projects/vimage/src/sys/dev/ath/ath_hal/ar5312/ar5312_reset.c#3 integrate .. //depot/projects/vimage/src/sys/dev/ath/ath_hal/ar5416/ar2133.c#2 integrate .. //depot/projects/vimage/src/sys/dev/ath/ath_hal/ar5416/ar5416.h#2 integrate .. //depot/projects/vimage/src/sys/dev/ath/ath_hal/ar5416/ar5416_ani.c#2 integrate .. //depot/projects/vimage/src/sys/dev/ath/ath_hal/ar5416/ar5416_cal.c#2 integrate .. //depot/projects/vimage/src/sys/dev/ath/ath_hal/ar5416/ar5416_cal.h#2 integrate .. //depot/projects/vimage/src/sys/dev/ath/ath_hal/ar5416/ar5416_reset.c#3 integrate .. //depot/projects/vimage/src/sys/dev/ath/ath_hal/ar5416/ar5416_xmit.c#2 integrate .. //depot/projects/vimage/src/sys/dev/ath/if_ath.c#27 integrate .. //depot/projects/vimage/src/sys/dev/ath/if_athvar.h#16 integrate .. //depot/projects/vimage/src/sys/dev/cardbus/cardbus.c#7 integrate .. //depot/projects/vimage/src/sys/dev/cfi/cfi_bus_ixp4xx.c#1 branch .. //depot/projects/vimage/src/sys/dev/cfi/cfi_core.c#2 integrate .. //depot/projects/vimage/src/sys/dev/cfi/cfi_dev.c#2 integrate .. //depot/projects/vimage/src/sys/dev/firewire/firewire.c#18 integrate .. //depot/projects/vimage/src/sys/dev/firewire/fwohci.c#6 integrate .. //depot/projects/vimage/src/sys/dev/firewire/fwohci_pci.c#5 integrate .. //depot/projects/vimage/src/sys/dev/firewire/fwohcivar.h#4 integrate .. //depot/projects/vimage/src/sys/dev/firewire/sbp.c#6 integrate .. //depot/projects/vimage/src/sys/dev/hwpmc/hwpmc_core.c#4 integrate .. //depot/projects/vimage/src/sys/dev/hwpmc/hwpmc_intel.c#5 integrate .. //depot/projects/vimage/src/sys/dev/hwpmc/pmc_events.h#8 integrate .. //depot/projects/vimage/src/sys/dev/ichsmb/ichsmb.c#5 integrate .. //depot/projects/vimage/src/sys/dev/iicbus/iic.c#5 integrate .. //depot/projects/vimage/src/sys/dev/iicbus/iic.h#2 integrate .. //depot/projects/vimage/src/sys/dev/ipmi/ipmi_acpi.c#2 integrate .. //depot/projects/vimage/src/sys/dev/ipmi/ipmi_smbios.c#3 integrate .. //depot/projects/vimage/src/sys/dev/kbdmux/kbdmux.c#6 integrate .. //depot/projects/vimage/src/sys/dev/mmc/mmc.c#12 integrate .. //depot/projects/vimage/src/sys/dev/mmc/mmcreg.h#8 integrate .. //depot/projects/vimage/src/sys/dev/pci/pci_user.c#6 integrate .. //depot/projects/vimage/src/sys/dev/pci/pcireg.h#11 integrate .. //depot/projects/vimage/src/sys/dev/ppbus/lpt.c#8 integrate .. //depot/projects/vimage/src/sys/dev/ppbus/ppbconf.c#9 integrate .. //depot/projects/vimage/src/sys/dev/ppbus/ppbconf.h#7 integrate .. //depot/projects/vimage/src/sys/dev/puc/pucdata.c#9 integrate .. //depot/projects/vimage/src/sys/dev/sdhci/sdhci.c#5 integrate .. //depot/projects/vimage/src/sys/dev/smbus/smb.c#3 integrate .. //depot/projects/vimage/src/sys/dev/snp/snp.c#11 integrate .. //depot/projects/vimage/src/sys/dev/sound/macio/aoa.c#1 branch .. //depot/projects/vimage/src/sys/dev/sound/macio/aoa.h#1 branch .. //depot/projects/vimage/src/sys/dev/sound/macio/davbus.c#1 branch .. //depot/projects/vimage/src/sys/dev/sound/macio/davbusreg.h#1 branch .. //depot/projects/vimage/src/sys/dev/sound/macio/i2s.c#1 branch .. //depot/projects/vimage/src/sys/dev/sound/macio/snapper.c#1 branch .. //depot/projects/vimage/src/sys/dev/sound/macio/tumbler.c#1 branch .. //depot/projects/vimage/src/sys/dev/sound/pci/hda/hdac.c#27 integrate .. //depot/projects/vimage/src/sys/dev/speaker/spkr.c#6 integrate .. //depot/projects/vimage/src/sys/dev/usb/u3g.c#7 integrate .. //depot/projects/vimage/src/sys/dev/usb/usbdevs#39 integrate .. //depot/projects/vimage/src/sys/dev/usb2/bluetooth/ng_ubt2.c#5 integrate .. //depot/projects/vimage/src/sys/dev/usb2/bluetooth/ng_ubt2_var.h#3 integrate .. //depot/projects/vimage/src/sys/dev/usb2/bluetooth/ubtbcmfw2.c#4 integrate .. //depot/projects/vimage/src/sys/dev/usb2/controller/at91dci_atmelarm.c#5 integrate .. //depot/projects/vimage/src/sys/dev/usb2/controller/ehci2_pci.c#5 integrate .. //depot/projects/vimage/src/sys/dev/usb2/controller/musb2_otg_atmelarm.c#5 integrate .. //depot/projects/vimage/src/sys/dev/usb2/controller/ohci2_atmelarm.c#4 integrate .. //depot/projects/vimage/src/sys/dev/usb2/controller/ohci2_pci.c#4 integrate .. //depot/projects/vimage/src/sys/dev/usb2/controller/uhci2.c#5 integrate .. //depot/projects/vimage/src/sys/dev/usb2/controller/uhci2_pci.c#4 integrate .. //depot/projects/vimage/src/sys/dev/usb2/controller/usb2_controller.h#3 integrate .. //depot/projects/vimage/src/sys/dev/usb2/controller/uss820dci_atmelarm.c#4 integrate .. //depot/projects/vimage/src/sys/dev/usb2/core/usb2_compat_linux.c#4 integrate .. //depot/projects/vimage/src/sys/dev/usb2/core/usb2_error.c#3 integrate .. //depot/projects/vimage/src/sys/dev/usb2/core/usb2_hub.c#6 integrate .. //depot/projects/vimage/src/sys/dev/usb2/core/usb2_process.c#3 integrate .. //depot/projects/vimage/src/sys/dev/usb2/ethernet/if_aue2.c#5 integrate .. //depot/projects/vimage/src/sys/dev/usb2/ethernet/if_axe2.c#4 integrate .. //depot/projects/vimage/src/sys/dev/usb2/ethernet/if_cdce2.c#4 integrate .. //depot/projects/vimage/src/sys/dev/usb2/ethernet/if_cue2.c#4 integrate .. //depot/projects/vimage/src/sys/dev/usb2/ethernet/if_kue2.c#4 integrate .. //depot/projects/vimage/src/sys/dev/usb2/ethernet/if_rue2.c#4 integrate .. //depot/projects/vimage/src/sys/dev/usb2/ethernet/if_udav2.c#4 integrate .. //depot/projects/vimage/src/sys/dev/usb2/include/usb2_devid.h#6 integrate .. //depot/projects/vimage/src/sys/dev/usb2/include/usb2_devtable.h#6 integrate .. //depot/projects/vimage/src/sys/dev/usb2/include/usb2_error.h#2 integrate .. //depot/projects/vimage/src/sys/dev/usb2/include/usb2_hid.h#2 integrate .. //depot/projects/vimage/src/sys/dev/usb2/include/usb2_ioctl.h#4 integrate .. //depot/projects/vimage/src/sys/dev/usb2/include/usb2_mfunc.h#2 integrate .. //depot/projects/vimage/src/sys/dev/usb2/include/usb2_revision.h#2 integrate .. //depot/projects/vimage/src/sys/dev/usb2/input/uhid2.c#4 integrate .. //depot/projects/vimage/src/sys/dev/usb2/input/ukbd2.c#4 integrate .. //depot/projects/vimage/src/sys/dev/usb2/misc/udbp2.c#3 integrate .. //depot/projects/vimage/src/sys/dev/usb2/misc/ufm2.c#4 integrate .. //depot/projects/vimage/src/sys/dev/usb2/quirk/usb2_quirk.c#4 integrate .. //depot/projects/vimage/src/sys/dev/usb2/quirk/usb2_quirk.h#2 integrate .. //depot/projects/vimage/src/sys/dev/usb2/serial/u3g2.c#3 integrate .. //depot/projects/vimage/src/sys/dev/usb2/serial/uark2.c#5 integrate .. //depot/projects/vimage/src/sys/dev/usb2/serial/ubsa2.c#6 integrate .. //depot/projects/vimage/src/sys/dev/usb2/serial/ubser2.c#5 integrate .. //depot/projects/vimage/src/sys/dev/usb2/serial/uchcom2.c#5 integrate .. //depot/projects/vimage/src/sys/dev/usb2/serial/ucycom2.c#5 integrate .. //depot/projects/vimage/src/sys/dev/usb2/serial/ufoma2.c#5 integrate .. //depot/projects/vimage/src/sys/dev/usb2/serial/uftdi2.c#5 integrate .. //depot/projects/vimage/src/sys/dev/usb2/serial/ugensa2.c#7 integrate .. //depot/projects/vimage/src/sys/dev/usb2/serial/uipaq2.c#5 integrate .. //depot/projects/vimage/src/sys/dev/usb2/serial/umct2.c#5 integrate .. //depot/projects/vimage/src/sys/dev/usb2/serial/umodem2.c#5 integrate .. //depot/projects/vimage/src/sys/dev/usb2/serial/umoscom2.c#5 integrate .. //depot/projects/vimage/src/sys/dev/usb2/serial/uplcom2.c#5 integrate .. //depot/projects/vimage/src/sys/dev/usb2/serial/uvisor2.c#5 integrate .. //depot/projects/vimage/src/sys/dev/usb2/serial/uvscom2.c#5 integrate .. //depot/projects/vimage/src/sys/dev/usb2/sound/uaudio2.c#5 integrate .. //depot/projects/vimage/src/sys/dev/usb2/storage/ata-usb2.c#5 integrate .. //depot/projects/vimage/src/sys/dev/usb2/storage/umass2.c#5 integrate .. //depot/projects/vimage/src/sys/dev/usb2/storage/urio2.c#5 integrate .. //depot/projects/vimage/src/sys/dev/usb2/storage/ustorage2_fs.c#4 integrate .. //depot/projects/vimage/src/sys/dev/usb2/wlan/if_rum2.c#4 integrate .. //depot/projects/vimage/src/sys/dev/usb2/wlan/if_ural2.c#4 integrate .. //depot/projects/vimage/src/sys/dev/usb2/wlan/if_zyd2.c#4 integrate .. //depot/projects/vimage/src/sys/dev/xen/blkback/blkback.c#3 integrate .. //depot/projects/vimage/src/sys/dev/xen/netback/netback.c#2 integrate .. //depot/projects/vimage/src/sys/dev/xen/netfront/netfront.c#8 integrate .. //depot/projects/vimage/src/sys/fs/cd9660/cd9660_lookup.c#3 integrate .. //depot/projects/vimage/src/sys/fs/cd9660/cd9660_node.c#6 integrate .. //depot/projects/vimage/src/sys/fs/cd9660/cd9660_node.h#3 integrate .. //depot/projects/vimage/src/sys/fs/cd9660/cd9660_rrip.c#11 integrate .. //depot/projects/vimage/src/sys/fs/cd9660/cd9660_vfsops.c#7 integrate .. //depot/projects/vimage/src/sys/fs/cd9660/cd9660_vnops.c#6 integrate .. //depot/projects/vimage/src/sys/fs/coda/coda_vfsops.c#6 integrate .. //depot/projects/vimage/src/sys/fs/devfs/devfs_devs.c#7 integrate .. //depot/projects/vimage/src/sys/fs/devfs/devfs_vnops.c#23 integrate .. //depot/projects/vimage/src/sys/fs/fifofs/fifo_vnops.c#10 integrate .. //depot/projects/vimage/src/sys/fs/hpfs/hpfs_vfsops.c#7 integrate .. //depot/projects/vimage/src/sys/fs/nullfs/null_vnops.c#10 integrate .. //depot/projects/vimage/src/sys/fs/nwfs/nwfs_subr.c#3 integrate .. //depot/projects/vimage/src/sys/fs/nwfs/nwfs_vnops.c#6 integrate .. //depot/projects/vimage/src/sys/fs/smbfs/smbfs_vnops.c#8 integrate .. //depot/projects/vimage/src/sys/fs/tmpfs/tmpfs_subr.c#11 integrate .. //depot/projects/vimage/src/sys/fs/udf/udf_vnops.c#10 integrate .. //depot/projects/vimage/src/sys/geom/geom.h#4 integrate .. //depot/projects/vimage/src/sys/geom/geom_dev.c#8 integrate .. //depot/projects/vimage/src/sys/geom/geom_subr.c#7 integrate .. //depot/projects/vimage/src/sys/i386/i386/io_apic.c#5 integrate .. //depot/projects/vimage/src/sys/i386/i386/local_apic.c#15 integrate .. //depot/projects/vimage/src/sys/i386/i386/locore.s#4 integrate .. //depot/projects/vimage/src/sys/i386/i386/mp_machdep.c#14 integrate .. //depot/projects/vimage/src/sys/i386/i386/msi.c#8 integrate .. //depot/projects/vimage/src/sys/i386/i386/swtch.s#7 integrate .. //depot/projects/vimage/src/sys/i386/include/apicvar.h#8 integrate .. //depot/projects/vimage/src/sys/i386/include/cpufunc.h#8 integrate .. //depot/projects/vimage/src/sys/i386/include/intr_machdep.h#7 integrate .. //depot/projects/vimage/src/sys/i386/linux/linux_locore.s#3 integrate .. //depot/projects/vimage/src/sys/i386/svr4/svr4_locore.s#2 integrate .. //depot/projects/vimage/src/sys/i386/xen/mp_machdep.c#8 integrate .. //depot/projects/vimage/src/sys/i386/xen/xen_machdep.c#13 integrate .. //depot/projects/vimage/src/sys/kern/imgact_elf.c#11 integrate .. //depot/projects/vimage/src/sys/kern/kern_jail.c#22 integrate .. //depot/projects/vimage/src/sys/kern/kern_malloc.c#9 integrate .. //depot/projects/vimage/src/sys/kern/kern_mib.c#17 integrate .. //depot/projects/vimage/src/sys/kern/kern_proc.c#22 integrate .. //depot/projects/vimage/src/sys/kern/kern_sysctl.c#18 integrate .. //depot/projects/vimage/src/sys/kern/kern_timeout.c#18 integrate .. //depot/projects/vimage/src/sys/kern/sched_4bsd.c#26 integrate .. //depot/projects/vimage/src/sys/kern/sched_ule.c#29 integrate .. //depot/projects/vimage/src/sys/kern/subr_autoconf.c#5 integrate .. //depot/projects/vimage/src/sys/kern/subr_bus.c#14 integrate .. //depot/projects/vimage/src/sys/kern/subr_clist.c#4 integrate .. //depot/projects/vimage/src/sys/kern/subr_devstat.c#2 integrate .. //depot/projects/vimage/src/sys/kern/subr_disk.c#2 integrate .. //depot/projects/vimage/src/sys/kern/subr_firmware.c#6 integrate .. //depot/projects/vimage/src/sys/kern/subr_kobj.c#3 integrate .. //depot/projects/vimage/src/sys/kern/subr_prf.c#7 integrate .. //depot/projects/vimage/src/sys/kern/subr_prof.c#5 integrate .. //depot/projects/vimage/src/sys/kern/subr_rman.c#9 integrate .. //depot/projects/vimage/src/sys/kern/subr_rtc.c#3 integrate .. //depot/projects/vimage/src/sys/kern/subr_smp.c#12 integrate .. //depot/projects/vimage/src/sys/kern/subr_taskqueue.c#7 integrate .. //depot/projects/vimage/src/sys/kern/subr_witness.c#22 integrate .. //depot/projects/vimage/src/sys/kern/sys_generic.c#12 integrate .. //depot/projects/vimage/src/sys/kern/tty.c#30 integrate .. //depot/projects/vimage/src/sys/kern/tty_info.c#3 integrate .. //depot/projects/vimage/src/sys/kern/tty_inq.c#3 integrate .. //depot/projects/vimage/src/sys/kern/tty_outq.c#3 integrate .. //depot/projects/vimage/src/sys/kern/tty_pty.c#8 integrate .. //depot/projects/vimage/src/sys/kern/vfs_aio.c#9 integrate .. //depot/projects/vimage/src/sys/kern/vfs_cache.c#18 integrate .. //depot/projects/vimage/src/sys/kern/vfs_subr.c#24 integrate .. //depot/projects/vimage/src/sys/kern/vfs_syscalls.c#21 integrate .. //depot/projects/vimage/src/sys/modules/agp/Makefile#3 integrate .. //depot/projects/vimage/src/sys/modules/sound/driver/Makefile#3 integrate .. //depot/projects/vimage/src/sys/modules/sound/driver/ai2s/Makefile#1 branch .. //depot/projects/vimage/src/sys/modules/sound/driver/davbus/Makefile#1 branch .. //depot/projects/vimage/src/sys/modules/usb2/Makefile#4 integrate .. //depot/projects/vimage/src/sys/net/if.c#63 integrate .. //depot/projects/vimage/src/sys/net/if_ethersubr.c#37 integrate .. //depot/projects/vimage/src/sys/net/if_llatbl.c#3 integrate .. //depot/projects/vimage/src/sys/net/rtsock.c#27 integrate .. //depot/projects/vimage/src/sys/net80211/_ieee80211.h#12 integrate .. //depot/projects/vimage/src/sys/net80211/ieee80211.c#27 integrate .. //depot/projects/vimage/src/sys/net80211/ieee80211.h#12 integrate .. //depot/projects/vimage/src/sys/net80211/ieee80211_crypto.h#8 integrate .. //depot/projects/vimage/src/sys/net80211/ieee80211_ddb.c#17 integrate .. //depot/projects/vimage/src/sys/net80211/ieee80211_ht.h#10 integrate .. //depot/projects/vimage/src/sys/net80211/ieee80211_ioctl.c#18 integrate .. //depot/projects/vimage/src/sys/net80211/ieee80211_ioctl.h#10 integrate .. //depot/projects/vimage/src/sys/net80211/ieee80211_node.c#17 integrate .. //depot/projects/vimage/src/sys/net80211/ieee80211_node.h#12 integrate .. //depot/projects/vimage/src/sys/net80211/ieee80211_regdomain.c#7 integrate .. //depot/projects/vimage/src/sys/net80211/ieee80211_regdomain.h#3 integrate .. //depot/projects/vimage/src/sys/net80211/ieee80211_scan_sta.c#11 integrate .. //depot/projects/vimage/src/sys/net80211/ieee80211_tdma.c#2 integrate .. //depot/projects/vimage/src/sys/net80211/ieee80211_var.h#20 integrate .. //depot/projects/vimage/src/sys/netinet/in_pcb.c#49 integrate .. //depot/projects/vimage/src/sys/netinet/ip_divert.c#25 integrate .. //depot/projects/vimage/src/sys/netinet/ip_fw2.c#65 integrate .. //depot/projects/vimage/src/sys/netinet/ip_ipsec.c#19 integrate .. //depot/projects/vimage/src/sys/netinet/ip_output.c#29 integrate .. //depot/projects/vimage/src/sys/netinet/raw_ip.c#38 integrate .. //depot/projects/vimage/src/sys/netinet/sctp_auth.c#15 integrate .. //depot/projects/vimage/src/sys/netinet/sctp_constants.h#26 integrate .. //depot/projects/vimage/src/sys/netinet/sctp_crc32.c#8 integrate .. //depot/projects/vimage/src/sys/netinet/sctp_crc32.h#5 integrate .. //depot/projects/vimage/src/sys/netinet/sctp_input.c#30 integrate .. //depot/projects/vimage/src/sys/netinet/sctp_os_bsd.h#26 integrate .. //depot/projects/vimage/src/sys/netinet/sctp_output.c#36 integrate .. //depot/projects/vimage/src/sys/netinet/sctp_pcb.c#35 integrate .. //depot/projects/vimage/src/sys/netinet/sctp_pcb.h#23 integrate .. //depot/projects/vimage/src/sys/netinet/sctp_sysctl.c#14 integrate .. //depot/projects/vimage/src/sys/netinet/sctp_uio.h#19 integrate .. //depot/projects/vimage/src/sys/netinet/sctp_usrreq.c#33 integrate .. //depot/projects/vimage/src/sys/netinet/sctputil.c#34 integrate .. //depot/projects/vimage/src/sys/netinet/sctputil.h#19 integrate .. //depot/projects/vimage/src/sys/netinet6/frag6.c#25 integrate .. //depot/projects/vimage/src/sys/netinet6/in6.c#28 integrate .. //depot/projects/vimage/src/sys/netinet6/in6_gif.c#18 integrate .. //depot/projects/vimage/src/sys/netinet6/in6_ifattach.c#34 integrate .. //depot/projects/vimage/src/sys/netinet6/ip6_forward.c#19 integrate .. //depot/projects/vimage/src/sys/netinet6/ip6_input.c#47 integrate .. //depot/projects/vimage/src/sys/netinet6/ip6_var.h#19 integrate .. //depot/projects/vimage/src/sys/netinet6/nd6.c#44 integrate .. //depot/projects/vimage/src/sys/netinet6/nd6_nbr.c#32 integrate .. //depot/projects/vimage/src/sys/netinet6/nd6_rtr.c#30 integrate .. //depot/projects/vimage/src/sys/netinet6/raw_ip6.c#35 integrate .. //depot/projects/vimage/src/sys/netinet6/sctp6_usrreq.c#29 integrate .. //depot/projects/vimage/src/sys/netinet6/vinet6.h#33 integrate .. //depot/projects/vimage/src/sys/netipsec/ipsec_mbuf.c#9 integrate .. //depot/projects/vimage/src/sys/netipsec/ipsec_output.c#21 integrate .. //depot/projects/vimage/src/sys/nfs4client/nfs4_subs.c#2 integrate .. //depot/projects/vimage/src/sys/nfsclient/nfs_vfsops.c#25 integrate .. //depot/projects/vimage/src/sys/nfsclient/nfs_vnops.c#26 integrate .. //depot/projects/vimage/src/sys/nfsserver/nfs_srvsubs.c#14 integrate .. //depot/projects/vimage/src/sys/opencrypto/cryptosoft.c#6 integrate .. //depot/projects/vimage/src/sys/powerpc/conf/GENERIC#17 integrate .. //depot/projects/vimage/src/sys/powerpc/conf/NOTES#11 integrate .. //depot/projects/vimage/src/sys/powerpc/powerpc/intr_machdep.c#11 integrate .. //depot/projects/vimage/src/sys/security/mac/mac_audit.c#4 integrate .. //depot/projects/vimage/src/sys/security/mac/mac_framework.c#4 integrate .. //depot/projects/vimage/src/sys/security/mac/mac_priv.c#3 integrate .. //depot/projects/vimage/src/sys/sys/_null.h#2 integrate .. //depot/projects/vimage/src/sys/sys/cdefs.h#5 integrate .. //depot/projects/vimage/src/sys/sys/clist.h#4 integrate .. //depot/projects/vimage/src/sys/sys/conf.h#15 integrate .. //depot/projects/vimage/src/sys/sys/elf_common.h#6 integrate .. //depot/projects/vimage/src/sys/sys/jail.h#7 integrate .. //depot/projects/vimage/src/sys/sys/kobj.h#3 integrate .. //depot/projects/vimage/src/sys/sys/malloc.h#5 integrate .. //depot/projects/vimage/src/sys/sys/param.h#40 integrate .. //depot/projects/vimage/src/sys/sys/pciio.h#4 integrate .. //depot/projects/vimage/src/sys/sys/pcpu.h#10 integrate .. //depot/projects/vimage/src/sys/sys/pmc.h#9 integrate .. //depot/projects/vimage/src/sys/sys/sysctl.h#31 integrate .. //depot/projects/vimage/src/sys/sys/ttyqueue.h#4 integrate .. //depot/projects/vimage/src/sys/sys/types.h#7 integrate .. //depot/projects/vimage/src/sys/sys/unistd.h#3 integrate .. //depot/projects/vimage/src/sys/sys/vnode.h#17 integrate .. //depot/projects/vimage/src/sys/ufs/ffs/ffs_alloc.c#8 integrate .. //depot/projects/vimage/src/sys/ufs/ffs/ffs_balloc.c#5 integrate .. //depot/projects/vimage/src/sys/ufs/ffs/ffs_extern.h#5 integrate .. //depot/projects/vimage/src/sys/ufs/ffs/ffs_inode.c#9 integrate .. //depot/projects/vimage/src/sys/ufs/ffs/ffs_vfsops.c#17 integrate .. //depot/projects/vimage/src/sys/ufs/ffs/ffs_vnops.c#14 integrate .. //depot/projects/vimage/src/sys/vm/uma.h#6 integrate .. //depot/projects/vimage/src/sys/vm/uma_core.c#10 integrate .. //depot/projects/vimage/src/sys/vm/uma_dbg.c#2 integrate .. //depot/projects/vimage/src/sys/vm/uma_int.h#3 integrate .. //depot/projects/vimage/src/sys/vm/vm_meter.c#11 integrate Differences ... ==== //depot/projects/vimage/src/share/man/man4/iic.4#2 (text+ko) ==== @@ -23,7 +23,7 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.\" $FreeBSD: src/share/man/man4/iic.4,v 1.15 2006/12/14 16:40:57 mpp Exp $ +.\" $FreeBSD: src/share/man/man4/iic.4,v 1.16 2009/01/26 13:53:39 raj Exp $ .\" .Dd September 6, 2006 .Dt IIC 4 @@ -45,13 +45,19 @@ .Pa /dev/iic? with the following ioctls: -.Bl -tag -width ".Dv I2CRSTCARD" +.Bl -tag -width ".Dv I2CRPTSTART" .It Dv I2CSTART .Pq Vt "struct iiccmd" Sends the start condition to the slave specified by the .Va slave element to the bus. All other elements are ignored. +.It Dv I2CRPTSTART +.Pq Vt "struct iiccmd" +Sends the repeated start condition to the slave specified by the +.Va slave +element to the bus. +All other elements are ignored. .It Dv I2CSTOP No argument is passed. Sends the stop condition to the bus. ==== //depot/projects/vimage/src/share/man/man4/man4.powerpc/Makefile#2 (text+ko) ==== @@ -1,8 +1,10 @@ -# $FreeBSD: src/share/man/man4/man4.powerpc/Makefile,v 1.3 2008/12/07 06:18:47 nwhitehorn Exp $ +# $FreeBSD: src/share/man/man4/man4.powerpc/Makefile,v 1.5 2009/01/26 01:08:24 nwhitehorn Exp $ MAN= bm.4 \ pmu.4 \ - powermac_nvram.4 + powermac_nvram.4 \ + snd_ai2s.4 \ + snd_davbus.4 MANSUBDIR=/powerpc ==== //depot/projects/vimage/src/share/man/man4/ng_bpf.4#2 (text+ko) ==== @@ -32,7 +32,7 @@ .\" .\" Author: Archie Cobbs .\" -.\" $FreeBSD: src/share/man/man4/ng_bpf.4,v 1.22 2007/05/30 09:05:49 glebius Exp $ +.\" $FreeBSD: src/share/man/man4/ng_bpf.4,v 1.23 2009/01/30 19:33:04 keramida Exp $ .\" $Whistle: ng_bpf.8,v 1.2 1999/12/03 01:57:12 archie Exp $ .\" .Dd May 30, 2007 @@ -156,21 +156,14 @@ MATCHHOOK="hook2" NOTMATCHHOOK="hook3" -cat > /tmp/bpf.awk << xxENDxx -{ - if (!init) { - printf "bpf_prog_len=%d bpf_prog=[", \\$1; - init=1; - } else { - printf " { code=%d jt=%d jf=%d k=%d }", \\$1, \\$2, \\$3, \\$4; - } -} -END { - print " ]" -} -xxENDxx - -BPFPROG=`tcpdump -s 8192 -ddd ${PATTERN} | awk -f /tmp/bpf.awk` +BPFPROG=$( tcpdump -s 8192 -ddd ${PATTERN} | \\ + ( read len ; \\ + echo -n "bpf_prog_len=$len" ; \\ + echo -n "bpf_prog=[" ; \\ + while read code jt jf k ; do \\ + echo -n " { code=$code jt=$jt jf=$jf k=$k }" ; \\ + done ; \\ + echo " ]" ) ) ngctl msg ${NODEPATH} setprogram { thisHook=\\"${INHOOK}\\" \\ ifMatch=\\"${MATCHHOOK}\\" \\ ==== //depot/projects/vimage/src/share/man/man4/nge.4#2 (text+ko) ==== @@ -29,9 +29,9 @@ .\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF .\" THE POSSIBILITY OF SUCH DAMAGE. .\" -.\" $FreeBSD: src/share/man/man4/nge.4,v 1.20 2006/01/14 15:35:21 bz Exp $ +.\" $FreeBSD: src/share/man/man4/nge.4,v 1.21 2009/01/24 04:08:00 trhodes Exp $ .\" -.Dd January 14, 2006 +.Dd January 23, 2009 .Dt NGE 4 .Os .Sh NAME @@ -170,6 +170,8 @@ .It D-Link DGE-500T .It +Linksys EG1032, revision 1 +.It Netgear GA621 .It Netgear GA622T ==== //depot/projects/vimage/src/share/man/man4/sk.4#2 (text+ko) ==== @@ -28,9 +28,9 @@ .\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF .\" THE POSSIBILITY OF SUCH DAMAGE. .\" -.\" $FreeBSD: src/share/man/man4/sk.4,v 1.31 2008/02/14 10:01:48 brueffer Exp $ +.\" $FreeBSD: src/share/man/man4/sk.4,v 1.32 2009/01/24 04:08:00 trhodes Exp $ .\" -.Dd February 14, 2008 +.Dd January 23, 2009 .Dt SK 4 .Os .Sh NAME @@ -82,7 +82,7 @@ on the primary port fails, the SysKonnect driver will automatically switch traffic onto the second port. .Pp -Also supported is the Marvell Semiconductor 88E1000* gigabit PHY. +Also supported is the Marvell Semiconductor 88E100* gigabit PHY. .Pp The XaQti XMAC II supports full and half duplex operation with autonegotiation. @@ -173,7 +173,7 @@ .It D-Link DGE-530T single port, 1000baseT adapter .It -Linksys EG1032 single port, 1000baseT adapter +Linksys (revision 2) single port, 1000baseT adapter .It SK-9521 SK-NET GE-T single port, 1000baseT adapter .It ==== //depot/projects/vimage/src/share/man/man5/Makefile#2 (text+ko) ==== @@ -1,5 +1,5 @@ # @(#)Makefile 8.1 (Berkeley) 6/5/93 -# $FreeBSD: src/share/man/man5/Makefile,v 1.81 2008/10/05 18:57:27 danger Exp $ +# $FreeBSD: src/share/man/man5/Makefile,v 1.82 2009/01/28 15:22:44 tabthorpe Exp $ .include @@ -51,6 +51,7 @@ pbm.5 \ periodic.conf.5 \ phones.5 \ + portindex.5 \ portsnap.conf.5 \ procfs.5 \ protocols.5 \ ==== //depot/projects/vimage/src/share/man/man5/rc.conf.5#3 (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/man5/rc.conf.5,v 1.350 2009/01/08 23:50:32 keramida Exp $ +.\" $FreeBSD: src/share/man/man5/rc.conf.5,v 1.355 2009/01/29 06:43:29 keramida Exp $ .\" -.Dd January 9, 2009 +.Dd January 27, 2009 .Dt RC.CONF 5 .Os .Sh NAME @@ -1089,9 +1089,9 @@ variable. One or more IP addresses must be provided in Classless Inter-Domain Routing (CIDR) address notation, whose last byte can be a range like -192.168.0.5-23/24. -In this case the address 192.168.0.5 will be configured with the -netmask /24 and the addresses 192.168.0.6 to 192.168.0.23 with +192.0.2.5-23/24. +In this case the address 192.0.2.5 will be configured with the +netmask /24 and the addresses 192.0.2.6 to 192.0.2.23 with the non-conflicting netmask /32 as explained in the .Xr ifconfig 8 alias section. @@ -1099,7 +1099,7 @@ .Li ed0 , an example could look like: .Bd -literal -ipv4_addrs_ed0="192.168.0.1/24 192.168.1.1-5/28" +ipv4_addrs_ed0="192.0.2.129/27 192.0.2.1-5/28" .Ed .Pp It is also possible to add IP alias entries using @@ -1233,7 +1233,7 @@ It is also possible to rename interface by doing: .Bd -literal ifconfig_ed0_name="net0" -ifconfig_net0="inet 10.0.0.1 netmask 0xffff0000" +ifconfig_net0="inet 192.0.2.1 netmask 0xffffff00" .Ed .It Va ipv6_network_interfaces .Pq Vt str @@ -3309,7 +3309,7 @@ you would have the following dependent variables: .Bd -literal jail_vjail_hostname="jail.example.com" -jail_vjail_ip="192.168.1.100" +jail_vjail_ip="192.0.2.100" jail_vjail_rootdir="/var/jails/vjail/root" .Ed .Pp @@ -3426,8 +3426,38 @@ .It Va jail_ Ns Ao Ar jname Ac Ns Va _ip .Pq Vt str Unset by default. -Set to the IP address assigned to jail -.Va jname . +Set to the (primary) IPv4 and/or IPv6 address(es) assigned to the jail. +The argument can be a sole address or a comma separated list of addresses. +Additionally each address can be prefixed by the name of an interface +followed by a pipe to overwrite +.Va jail_ Ns Ao Ar jname Ac Ns Va _interface +or +.Va jail_interface +and/or suffixed by a netmask, prefixlen or prefix. +In case no netmask, prefixlen or prefix is given, +.Sq /32 +will be used for IPv4 and +.Sq /128 +will be used for an IPv6 address. +If no address is given for the jail then the jail will be started with +no networking support. +.It Va jail_ Ns Ao Ar jname Ac Ns Va _ip_multi Ns Aq Ar n +.Pq Vt str +Unset by default. +Set additional IPv4 and/or IPv6 address(es) assigned to the jail. +The sequence starts with +.Dq Li _multi0 +and the numbers have to be strictly ascending. +These entries follow the same syntax as their primary +.Va jail_ Ns Ao Ar jname Ac Ns Va _ip +entry. +The order of the entries can be important as the first address for +each address family found will be the primary address of the jail. +See +.Va ip-addresses +option in +.Xr jail 8 +for more details. .It Va jail_ Ns Ao Ar jname Ac Ns Va _flags .Pq Vt str Set to @@ -3440,12 +3470,6 @@ Unset by default. When set, sets the interface to use when setting IP address alias. Note that the alias is created at jail startup and removed at jail shutdown. -.It Va jail_ Ns Ao Ar jname Ac Ns Va _netmask -.Pq Vt str -Set to -.Li 255.255.255.255 -by default. -This is the IP netmask to use when setting IP address alias. .It Va jail_ Ns Ao Ar jname Ac Ns Va _fib .Pq Vt str Unset by default. ==== //depot/projects/vimage/src/share/man/man7/Makefile#2 (text+ko) ==== @@ -1,8 +1,9 @@ # @(#)Makefile 8.1 (Berkeley) 6/5/93 -# $FreeBSD: src/share/man/man7/Makefile,v 1.33 2007/10/12 10:35:24 ru Exp $ +# $FreeBSD: src/share/man/man7/Makefile,v 1.34 2009/01/30 15:14:58 gabor Exp $ #MISSING: eqnchar.7 ms.7 term.7 -MAN= ascii.7 \ +MAN= adding_user.7 \ + ascii.7 \ bsd.snmpmod.mk.7 \ build.7 \ clocks.7 \ ==== //depot/projects/vimage/src/share/man/man7/build.7#3 (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/man7/build.7,v 1.49 2009/01/05 16:25:36 keramida Exp $ +.\" $FreeBSD: src/share/man/man7/build.7,v 1.51 2009/01/23 18:35:09 imp Exp $ .\" -.Dd January 5, 2009 +.Dd January 23, 2009 .Dt BUILD 7 .Os .Sh NAME @@ -335,6 +335,25 @@ .Xr make 1 variables: .Bl -tag -width ".Va SUBDIR_OVERRIDE" +.It Va KERNCONF +Overrides which kernel to build and install for the various kernel +make targets. +It defaults to +.Cm GENERIC . +.It Va KERNFAST +If set, the build target +.Cm buildkernel +defaults to setting +.Va NO_KERNELCLEAN , +.Va NO_KERNELCONFIG +and +.Va NO_KERNELDEPEND . +When set to a value other than +.Cm 1 +then +.Va KERNCONF +is set to the value of +.Va KERNFAST . .It Va LOCAL_DIRS If set, this variable supplies a list of additional directories to build, relative to the root of the source tree. @@ -370,6 +389,8 @@ .Va TARGET is also set, in which case it defaults to the appropriate value for that platform. +Typically, one only needs to set +.Va TARGET . .El .Pp Builds under directory ==== //depot/projects/vimage/src/share/man/man7/tuning.7#2 (text+ko) ==== @@ -21,9 +21,9 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.\" $FreeBSD: src/share/man/man7/tuning.7,v 1.76 2007/11/09 09:25:36 ru Exp $ +.\" $FreeBSD: src/share/man/man7/tuning.7,v 1.79 2009/01/27 00:23:43 trhodes Exp $ .\" -.Dd November 19, 2007 +.Dd January 23, 2009 .Dt TUNING 7 .Os .Sh NAME @@ -402,6 +402,19 @@ on the system. .Pp The +.Va kern.ipc.maxpipekva +loader tunable is used to set a hard limit on the +amount of kernel address space allocated to mapping of pipe buffers. +Use of the mapping allows the kernel to eliminate a copy of the +data from writer address space into the kernel, directly copying +the content of mapped buffer to the reader. +Increasing this value to a higher setting, such as `25165824' might +improve performance on systems where space for mapping pipe buffers +is quickly exhausted. +This exhaustion is not fatal; however, and it will only cause pipes to +to fall back to using double-copy. +.Pp +The .Va kern.ipc.shm_use_phys sysctl defaults to 0 (off) and may be set to 0 (off) or 1 (on). Setting ==== //depot/projects/vimage/src/share/man/man8/Makefile#2 (text+ko) ==== @@ -1,8 +1,7 @@ # @(#)Makefile 8.1 (Berkeley) 6/5/93 -# $FreeBSD: src/share/man/man8/Makefile,v 1.36 2006/08/29 09:12:48 danger Exp $ +# $FreeBSD: src/share/man/man8/Makefile,v 1.37 2009/01/30 15:14:58 gabor Exp $ -MAN= adding_user.8 \ - crash.8 \ +MAN= crash.8 \ diskless.8 \ intro.8 \ MAKEDEV.8 \ ==== //depot/projects/vimage/src/share/man/man9/kthread.9#2 (text+ko) ==== @@ -23,9 +23,9 @@ .\" (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/kthread.9,v 1.18 2008/04/29 22:43:15 julian Exp $ +.\" $FreeBSD: src/share/man/man9/kthread.9,v 1.19 2009/01/27 00:22:16 trhodes Exp $ .\" -.Dd October 26, 2007 +.Dd January 26, 2009 .Dt KTHREAD 9 .Os .Sh NAME @@ -43,12 +43,6 @@ .Fn kthread_start "const void *udata" .Ft void .Fn kthread_shutdown "void *arg" "int howto" -.Ft int -.Fo kthread_add -.Fa "void (*func)(void *)" "void *arg" "struct proc *procp" -.Fa "struct thread **newtdpp" "int flags" "int pages" -.Fa "const char *fmt" ... -.Fc .Ft void .Fn kthread_exit "void" .Ft int @@ -57,7 +51,14 @@ .Fn kthread_suspend "struct thread *td" "int timo" .Ft void .Fn kthread_suspend_check "struct thread *td" +.In sys/unistd.h .Ft int +.Fo kthread_add +.Fa "void (*func)(void *)" "void *arg" "struct proc *procp" +.Fa "struct thread **newtdpp" "int flags" "int pages" +.Fa "const char *fmt" ... +.Fc +.Ft int .Fo kproc_kthread_add .Fa "void (*func)(void *)" "void *arg" .Fa "struct proc **procptr" "struct thread **tdptr" @@ -142,8 +143,12 @@ then it is ignored. The .Fa flags -argument specifies a set of flags as described in -.Xr rfork 2 . +argument may be set to +.Dv RFSTOPPED +to leave the thread in a stopped state. +The caller must call +.Fn sched_add +to start the thread. The .Fa pages argument specifies the size of the new kernel thread's stack in pages. @@ -274,23 +279,10 @@ .Fn kthread_add function will fail if: .Bl -tag -width Er -.It Bq Er EAGAIN -The system-imposed limit on the total -number of processes under execution would be exceeded. -The limit is given by the -.Xr sysctl 3 -MIB variable -.Dv KERN_MAXPROC . -.It Bq Er EINVAL -The -.Dv RFCFDG -flag was specified in the -.Fa flags -parameter. +.It Bq Er ENOMEM +Memory for a thread's stack could not be allocated. .El .Sh SEE ALSO -.Xr rfork 2 , -.Xr exit1 9 , .Xr kproc 9 , .Xr SYSINIT 9 , .Xr wakeup 9 ==== //depot/projects/vimage/src/sys/amd64/amd64/cpu_switch.S#12 (text+ko) ==== @@ -30,7 +30,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/sys/amd64/amd64/cpu_switch.S,v 1.165 2009/01/20 12:07:49 kib Exp $ + * $FreeBSD: src/sys/amd64/amd64/cpu_switch.S,v 1.166 2009/01/31 11:37:21 obrien Exp $ */ #include @@ -260,12 +260,12 @@ jmp do_tss store_seg: - movl %gs,PCB_GS(%r8) + mov %gs,PCB_GS(%r8) testl $PCB_GS32BIT,PCB_FLAGS(%r8) jnz 2f -1: movl %ds,PCB_DS(%r8) - movl %es,PCB_ES(%r8) - movl %fs,PCB_FS(%r8) +1: mov %ds,PCB_DS(%r8) + mov %es,PCB_ES(%r8) + mov %fs,PCB_FS(%r8) jmp done_store_seg 2: movq PCPU(GS32P),%rax movq (%rax),%rax @@ -277,11 +277,11 @@ jnz 2f 1: movl $MSR_GSBASE,%ecx rdmsr - movl PCB_GS(%r8),%gs + mov PCB_GS(%r8),%gs wrmsr - movl PCB_DS(%r8),%ds - movl PCB_ES(%r8),%es - movl PCB_FS(%r8),%fs + mov PCB_DS(%r8),%ds + mov PCB_ES(%r8),%es + mov PCB_FS(%r8),%fs jmp restore_fsbase /* Restore userland %gs while preserving kernel gsbase */ 2: movq PCPU(GS32P),%rax ==== //depot/projects/vimage/src/sys/amd64/amd64/exception.S#9 (text+ko) ==== @@ -31,7 +31,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/sys/amd64/amd64/exception.S,v 1.136 2009/01/14 14:20:08 kib Exp $ + * $FreeBSD: src/sys/amd64/amd64/exception.S,v 1.137 2009/02/03 09:01:45 jkoshy Exp $ */ #include "opt_atpic.h" @@ -383,22 +383,24 @@ * NMI handling is special. * * First, NMIs do not respect the state of the processor's RFLAGS.IF - * bit and the NMI handler may be invoked at any time, including when - * the processor is in a critical section with RFLAGS.IF == 0. In - * particular, this means that the processor's GS.base values could be - * inconsistent on entry to the handler, and so we need to read - * MSR_GSBASE to determine if a 'swapgs' is needed. We use '%ebx', a - * C-preserved register, to remember whether to swap GS back on the - * exit path. + * bit. The NMI handler may be entered at any time, including when + * the processor is in a critical section with RFLAGS.IF == 0. + * The processor's GS.base value could be invalid on entry to the + * handler. * * Second, the processor treats NMIs specially, blocking further NMIs - * until an 'iretq' instruction is executed. We therefore need to - * execute the NMI handler with interrupts disabled to prevent a - * nested interrupt from executing an 'iretq' instruction and - * inadvertently taking the processor out of NMI mode. + * until an 'iretq' instruction is executed. We thus need to execute + * the NMI handler with interrupts disabled, to prevent a nested interrupt + * from executing an 'iretq' instruction and inadvertently taking the + * processor out of NMI mode. * - * Third, the NMI handler runs on its own stack (tss_ist1), shared - * with the double fault handler. + * Third, the NMI handler runs on its own stack (tss_ist2). The canonical + * GS.base value for the processor is stored just above the bottom of its + * NMI stack. For NMIs taken from kernel mode, the current value in + * the processor's GS.base is saved at entry to C-preserved register %r12, + * the canonical value for GS.base is then loaded into the processor, and + * the saved value is restored at exit time. For NMIs taken from user mode, + * the cheaper 'SWAPGS' instructions are used for swapping GS.base. */ IDTVEC(nmi) @@ -423,12 +425,22 @@ movq %r15,TF_R15(%rsp) xorl %ebx,%ebx testb $SEL_RPL_MASK,TF_CS(%rsp) - jnz nmi_needswapgs /* we came from userland */ + jnz nmi_fromuserspace + /* + * We've interrupted the kernel. Preserve GS.base in %r12. + */ movl $MSR_GSBASE,%ecx rdmsr - cmpl $VM_MAXUSER_ADDRESS >> 32,%edx - jae nmi_calltrap /* GS.base holds a kernel VA */ -nmi_needswapgs: + movq %rax,%r12 + shlq $32,%rdx + orq %rdx,%r12 + /* Retrieve and load the canonical value for GS.base. */ + movq TF_SIZE(%rsp),%rdx + movl %edx,%eax + shrq $32,%rdx + wrmsr + jmp nmi_calltrap +nmi_fromuserspace: incl %ebx swapgs /* Note: this label is also used by ddb and gdb: */ @@ -439,14 +451,19 @@ MEXITCOUNT #ifdef HWPMC_HOOKS /* - * Check if the current trap was from user mode and if so - * whether the current thread needs a user call chain to be - * captured. We are still in NMI mode at this point. + * Capture a userspace callchain if needed. + * + * - Check if the current trap was from user mode. + * - Check if the current thread is valid. + * - Check if the thread requires a user call chain to be + * captured. + * + * We are still in NMI mode at this point. */ - testb $SEL_RPL_MASK,TF_CS(%rsp) - jz nocallchain - movq PCPU(CURTHREAD),%rax /* curthread present? */ - orq %rax,%rax + testl %ebx,%ebx + jz nocallchain /* not from userspace */ + movq PCPU(CURTHREAD),%rax + orq %rax,%rax /* curthread present? */ jz nocallchain testl $TDP_CALLCHAIN,TD_PFLAGS(%rax) /* flagged for capture? */ jz nocallchain @@ -498,8 +515,18 @@ >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Wed Feb 4 18:49:48 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id E2CC61065735; Wed, 4 Feb 2009 18:49:45 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 62A6910656EC for ; Wed, 4 Feb 2009 18:49:45 +0000 (UTC) (envelope-from nwhitehorn@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 4CC648FC16 for ; Wed, 4 Feb 2009 18:49:45 +0000 (UTC) (envelope-from nwhitehorn@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n14Inj2g079902 for ; Wed, 4 Feb 2009 18:49:45 GMT (envelope-from nwhitehorn@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n14Injic079900 for perforce@freebsd.org; Wed, 4 Feb 2009 18:49:45 GMT (envelope-from nwhitehorn@freebsd.org) Date: Wed, 4 Feb 2009 18:49:45 GMT Message-Id: <200902041849.n14Injic079900@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to nwhitehorn@freebsd.org using -f From: Nathan Whitehorn To: Perforce Change Reviews Cc: Subject: PERFORCE change 157152 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 04 Feb 2009 18:49:54 -0000 http://perforce.freebsd.org/chv.cgi?CH=157152 Change 157152 by nwhitehorn@nwhitehorn_nokia on 2009/02/04 18:49:35 Fix locking while entering Open Firmware mappings, and change the memory regions code to exclude memory above the 4 GB boundary. This is sufficient to get an Xserve G5 booting almost the way to single user. Probing the hard drives still seems to be stuck in an infinite loop of failure, however. Affected files ... .. //depot/projects/ppc-g5/sys/powerpc/aim/mmu_oea64.c#14 edit .. //depot/projects/ppc-g5/sys/powerpc/aim/ofw_machdep.c#10 edit Differences ... ==== //depot/projects/ppc-g5/sys/powerpc/aim/mmu_oea64.c#14 (text+ko) ==== @@ -917,10 +917,13 @@ if (translations[i].om_pa_hi) panic("OFW translations above 32-bit boundary!"); - /* Enter the pages */ - PMAP_LOCK(&ofw_pmap); - PMAP_LOCK(kernel_pmap); + /* Now enter the pages for this mapping */ + /* + * Lock the ofw pmap. pmap_kenter(), which we use for the + * pages the kernel also needs, does its own locking. + */ + PMAP_LOCK(&ofw_pmap); DISABLE_TRANS(msr); for (off = 0; off < translations[i].om_len; off += PAGE_SIZE) { struct vm_page m; @@ -940,8 +943,6 @@ ofw_mappings++; } ENABLE_TRANS(msr); - - PMAP_UNLOCK(kernel_pmap); PMAP_UNLOCK(&ofw_pmap); } } ==== //depot/projects/ppc-g5/sys/powerpc/aim/ofw_machdep.c#10 (text+ko) ==== @@ -199,15 +199,25 @@ } } - for (i = 0; i < msz/sizeof(OFmem64[0]); i++) { + for (i = 0, j = 0; i < msz/sizeof(OFmem64[0]); i++) { if (OFmem64[i].mr_start_hi == 0) { OFmem[i].mr_start = OFmem64[i].mr_start_lo; OFmem[i].mr_size = OFmem64[i].mr_size; - } else { - OFmem[i].mr_size = 0; + + /* + * Check for memory regions extending above 32-bit + * memory space, and restrict them to stay there. + */ + if (((uint64_t)OFmem[i].mr_start + + (uint64_t)OFmem[i].mr_size) > + BUS_SPACE_MAXADDR_32BIT) { + OFmem[i].mr_size = BUS_SPACE_MAXADDR_32BIT - + OFmem[i].mr_start; + } + j++; } } - msz = i*sizeof(OFmem[0]); + msz = j*sizeof(OFmem[0]); } else { if ((msz = OF_getprop(phandle, "reg", OFmem, sizeof OFmem[0] * OFMEM_REGIONS)) <= 0) From owner-p4-projects@FreeBSD.ORG Wed Feb 4 19:51:49 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id D48E01065672; Wed, 4 Feb 2009 19:51:48 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 91138106566C for ; Wed, 4 Feb 2009 19:51:48 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 7E13E8FC1F for ; Wed, 4 Feb 2009 19:51:48 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n14JpmaW086177 for ; Wed, 4 Feb 2009 19:51:48 GMT (envelope-from hselasky@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n14Jpms4086175 for perforce@freebsd.org; Wed, 4 Feb 2009 19:51:48 GMT (envelope-from hselasky@FreeBSD.org) Date: Wed, 4 Feb 2009 19:51:48 GMT Message-Id: <200902041951.n14Jpms4086175@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky To: Perforce Change Reviews Cc: Subject: PERFORCE change 157154 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 04 Feb 2009 19:51:49 -0000 http://perforce.freebsd.org/chv.cgi?CH=157154 Change 157154 by hselasky@hselasky_laptop001 on 2009/02/04 19:51:13 Integrate uslcom from old USB stack. Affected files ... .. //depot/projects/usb/src/sys/conf/files#49 edit .. //depot/projects/usb/src/sys/dev/usb2/serial/uslcom2.c#1 add .. //depot/projects/usb/src/sys/modules/usb2/Makefile#11 edit .. //depot/projects/usb/src/sys/modules/usb2/serial_slcom/Makefile#1 add Differences ... ==== //depot/projects/usb/src/sys/conf/files#49 (text+ko) ==== @@ -1633,6 +1633,7 @@ dev/usb2/serial/umodem2.c optional usb2_core usb2_serial_modem dev/usb2/serial/umoscom2.c optional usb2_core usb2_serial_moscom dev/usb2/serial/uplcom2.c optional usb2_core usb2_serial_plcom +dev/usb2/serial/uslcom2.c optional usb2_core usb2_serial_slcom dev/usb2/serial/uvisor2.c optional usb2_core usb2_serial_visor dev/usb2/serial/uvscom2.c optional usb2_core usb2_serial_vscom dev/usb2/serial/usb2_serial.c optional usb2_core \ @@ -1641,6 +1642,7 @@ usb2_serial_foma | usb2_serial_ftdi | usb2_serial_gensa | \ usb2_serial_ipaq | usb2_serial_lpt | usb2_serial_mct | \ usb2_serial_modem | usb2_serial_moscom | usb2_serial_plcom | \ + usb2_serial_slcom | \ usb2_serial_visor | usb2_serial_vscom) # # USB2 bluetooth drivers ==== //depot/projects/usb/src/sys/modules/usb2/Makefile#11 (text+ko) ==== @@ -74,6 +74,7 @@ SUBDIR += serial_modem SUBDIR += serial_moscom SUBDIR += serial_plcom +SUBDIR += serial_slcom SUBDIR += serial_visor SUBDIR += serial_vscom SUBDIR += sound From owner-p4-projects@FreeBSD.ORG Wed Feb 4 21:28:36 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 385251065677; Wed, 4 Feb 2009 21:28:36 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id E15FF106564A for ; Wed, 4 Feb 2009 21:28:35 +0000 (UTC) (envelope-from jhb@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id CCA2D8FC12 for ; Wed, 4 Feb 2009 21:28:35 +0000 (UTC) (envelope-from jhb@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n14LSZ2k005713 for ; Wed, 4 Feb 2009 21:28:35 GMT (envelope-from jhb@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n14LSZAv005710 for perforce@freebsd.org; Wed, 4 Feb 2009 21:28:35 GMT (envelope-from jhb@freebsd.org) Date: Wed, 4 Feb 2009 21:28:35 GMT Message-Id: <200902042128.n14LSZAv005710@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to jhb@freebsd.org using -f From: John Baldwin To: Perforce Change Reviews Cc: Subject: PERFORCE change 157172 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 04 Feb 2009 21:28:37 -0000 http://perforce.freebsd.org/chv.cgi?CH=157172 Change 157172 by jhb@jhb_jhbbsd on 2009/02/04 21:27:39 IFC @157170 Affected files ... .. //depot/projects/smpng/sys/amd64/amd64/cpu_switch.S#23 integrate .. //depot/projects/smpng/sys/amd64/amd64/exception.S#22 integrate .. //depot/projects/smpng/sys/amd64/amd64/io_apic.c#23 integrate .. //depot/projects/smpng/sys/amd64/amd64/local_apic.c#38 integrate .. //depot/projects/smpng/sys/amd64/amd64/machdep.c#73 integrate .. //depot/projects/smpng/sys/amd64/amd64/mp_machdep.c#50 integrate .. //depot/projects/smpng/sys/amd64/amd64/msi.c#10 integrate .. //depot/projects/smpng/sys/amd64/ia32/ia32_signal.c#20 integrate .. //depot/projects/smpng/sys/amd64/ia32/ia32_sigtramp.S#5 integrate .. //depot/projects/smpng/sys/amd64/include/apicvar.h#20 integrate .. //depot/projects/smpng/sys/amd64/include/cpufunc.h#15 integrate .. //depot/projects/smpng/sys/amd64/include/intr_machdep.h#18 integrate .. //depot/projects/smpng/sys/amd64/linux32/linux32_locore.s#4 integrate .. //depot/projects/smpng/sys/amd64/linux32/linux32_sysvec.c#35 integrate .. //depot/projects/smpng/sys/arm/arm/busdma_machdep.c#26 integrate .. //depot/projects/smpng/sys/arm/arm/dump_machdep.c#7 integrate .. //depot/projects/smpng/sys/arm/arm/elf_trampoline.c#20 integrate .. //depot/projects/smpng/sys/arm/arm/pmap.c#47 integrate .. //depot/projects/smpng/sys/arm/arm/vm_machdep.c#29 integrate .. //depot/projects/smpng/sys/arm/conf/AVILA#12 integrate .. //depot/projects/smpng/sys/arm/conf/AVILA.hints#4 integrate .. //depot/projects/smpng/sys/arm/include/atomic.h#31 integrate .. //depot/projects/smpng/sys/arm/sa11x0/assabet_machdep.c#19 integrate .. //depot/projects/smpng/sys/arm/xscale/ixp425/avila_machdep.c#10 integrate .. //depot/projects/smpng/sys/arm/xscale/ixp425/files.ixp425#5 integrate .. //depot/projects/smpng/sys/arm/xscale/ixp425/ixp425.c#9 integrate .. //depot/projects/smpng/sys/arm/xscale/ixp425/ixp425reg.h#4 integrate .. //depot/projects/smpng/sys/boot/i386/pxeldr/pxeboot.8#5 integrate .. //depot/projects/smpng/sys/cam/scsi/scsi_pass.c#21 integrate .. //depot/projects/smpng/sys/compat/ndis/winx32_wrap.S#6 integrate .. //depot/projects/smpng/sys/dev/adb/adb_mouse.c#3 integrate .. //depot/projects/smpng/sys/dev/ae/if_ae.c#3 integrate .. //depot/projects/smpng/sys/dev/an/if_an.c#57 integrate .. //depot/projects/smpng/sys/dev/an/if_anreg.h#16 integrate .. //depot/projects/smpng/sys/dev/ata/ata-disk.c#69 integrate .. //depot/projects/smpng/sys/dev/ata/atapi-cam.c#38 integrate .. //depot/projects/smpng/sys/dev/ata/atapi-cd.c#69 integrate .. //depot/projects/smpng/sys/dev/ata/atapi-fd.c#38 integrate .. //depot/projects/smpng/sys/dev/ata/atapi-tape.c#39 integrate .. //depot/projects/smpng/sys/dev/ath/ath_hal/ah_regdomain.c#4 integrate .. //depot/projects/smpng/sys/dev/ath/ath_hal/ar5212/ar5212.h#3 integrate .. //depot/projects/smpng/sys/dev/ath/ath_hal/ar5212/ar5212_reset.c#4 integrate .. //depot/projects/smpng/sys/dev/ath/ath_hal/ar5416/ar5416_cal.c#3 integrate .. //depot/projects/smpng/sys/dev/cardbus/cardbus.c#36 integrate .. //depot/projects/smpng/sys/dev/cfi/cfi_bus_ixp4xx.c#1 branch .. //depot/projects/smpng/sys/dev/cfi/cfi_core.c#2 integrate .. //depot/projects/smpng/sys/dev/cfi/cfi_dev.c#2 integrate .. //depot/projects/smpng/sys/dev/firewire/firewire.c#46 integrate .. //depot/projects/smpng/sys/dev/firewire/fwohci.c#41 integrate .. //depot/projects/smpng/sys/dev/firewire/fwohci_pci.c#42 integrate .. //depot/projects/smpng/sys/dev/firewire/fwohcivar.h#14 integrate .. //depot/projects/smpng/sys/dev/firewire/sbp.c#45 integrate .. //depot/projects/smpng/sys/dev/ichsmb/ichsmb.c#16 integrate .. //depot/projects/smpng/sys/dev/ipmi/ipmi_acpi.c#2 integrate .. //depot/projects/smpng/sys/dev/ipmi/ipmi_smbios.c#4 integrate .. //depot/projects/smpng/sys/dev/kbdmux/kbdmux.c#11 integrate .. //depot/projects/smpng/sys/dev/mmc/mmc.c#10 integrate .. //depot/projects/smpng/sys/dev/mmc/mmcreg.h#5 integrate .. //depot/projects/smpng/sys/dev/pccbb/pccbb.c#69 integrate .. //depot/projects/smpng/sys/dev/pccbb/pccbb_pci.c#19 integrate .. //depot/projects/smpng/sys/dev/pccbb/pccbbvar.h#22 integrate .. //depot/projects/smpng/sys/dev/pci/pci_user.c#20 integrate .. //depot/projects/smpng/sys/dev/pci/pcireg.h#29 integrate .. //depot/projects/smpng/sys/dev/ppbus/ppbconf.h#8 integrate .. //depot/projects/smpng/sys/dev/sdhci/sdhci.c#5 integrate .. //depot/projects/smpng/sys/dev/smbus/smb.c#12 integrate .. //depot/projects/smpng/sys/dev/snp/snp.c#34 integrate .. //depot/projects/smpng/sys/dev/sound/pci/hda/hdac.c#25 integrate .. //depot/projects/smpng/sys/dev/usb2/bluetooth/ubtbcmfw2.c#4 integrate .. //depot/projects/smpng/sys/dev/usb2/controller/at91dci_atmelarm.c#3 integrate .. //depot/projects/smpng/sys/dev/usb2/controller/ehci2_pci.c#3 integrate .. //depot/projects/smpng/sys/dev/usb2/controller/musb2_otg_atmelarm.c#3 integrate .. //depot/projects/smpng/sys/dev/usb2/controller/ohci2_atmelarm.c#3 integrate .. //depot/projects/smpng/sys/dev/usb2/controller/ohci2_pci.c#3 integrate .. //depot/projects/smpng/sys/dev/usb2/controller/uhci2_pci.c#3 integrate .. //depot/projects/smpng/sys/dev/usb2/controller/uss820dci_atmelarm.c#3 integrate .. //depot/projects/smpng/sys/dev/usb2/core/usb2_compat_linux.c#3 integrate .. //depot/projects/smpng/sys/dev/usb2/core/usb2_error.c#3 integrate .. //depot/projects/smpng/sys/dev/usb2/core/usb2_hub.c#5 integrate .. //depot/projects/smpng/sys/dev/usb2/core/usb2_process.c#3 integrate .. //depot/projects/smpng/sys/dev/usb2/ethernet/if_aue2.c#5 integrate .. //depot/projects/smpng/sys/dev/usb2/ethernet/if_axe2.c#4 integrate .. //depot/projects/smpng/sys/dev/usb2/ethernet/if_cdce2.c#4 integrate .. //depot/projects/smpng/sys/dev/usb2/ethernet/if_cue2.c#4 integrate .. //depot/projects/smpng/sys/dev/usb2/ethernet/if_kue2.c#4 integrate .. //depot/projects/smpng/sys/dev/usb2/ethernet/if_rue2.c#4 integrate .. //depot/projects/smpng/sys/dev/usb2/ethernet/if_udav2.c#4 integrate .. //depot/projects/smpng/sys/dev/usb2/include/usb2_error.h#2 integrate .. //depot/projects/smpng/sys/dev/usb2/include/usb2_hid.h#2 integrate .. //depot/projects/smpng/sys/dev/usb2/include/usb2_mfunc.h#2 integrate .. //depot/projects/smpng/sys/dev/usb2/include/usb2_revision.h#2 integrate .. //depot/projects/smpng/sys/dev/usb2/input/uhid2.c#3 integrate .. //depot/projects/smpng/sys/dev/usb2/input/ukbd2.c#3 integrate .. //depot/projects/smpng/sys/dev/usb2/misc/udbp2.c#3 integrate .. //depot/projects/smpng/sys/dev/usb2/misc/ufm2.c#3 integrate .. //depot/projects/smpng/sys/dev/usb2/quirk/usb2_quirk.c#5 integrate .. //depot/projects/smpng/sys/dev/usb2/quirk/usb2_quirk.h#2 integrate .. //depot/projects/smpng/sys/dev/usb2/serial/u3g2.c#4 integrate .. //depot/projects/smpng/sys/dev/usb2/serial/uark2.c#3 integrate .. //depot/projects/smpng/sys/dev/usb2/serial/ubsa2.c#4 integrate .. //depot/projects/smpng/sys/dev/usb2/serial/ubser2.c#3 integrate .. //depot/projects/smpng/sys/dev/usb2/serial/uchcom2.c#3 integrate .. //depot/projects/smpng/sys/dev/usb2/serial/ucycom2.c#3 integrate .. //depot/projects/smpng/sys/dev/usb2/serial/ufoma2.c#4 integrate .. //depot/projects/smpng/sys/dev/usb2/serial/uftdi2.c#3 integrate .. //depot/projects/smpng/sys/dev/usb2/serial/ugensa2.c#4 integrate .. //depot/projects/smpng/sys/dev/usb2/serial/uipaq2.c#3 integrate .. //depot/projects/smpng/sys/dev/usb2/serial/umct2.c#3 integrate .. //depot/projects/smpng/sys/dev/usb2/serial/umodem2.c#3 integrate .. //depot/projects/smpng/sys/dev/usb2/serial/umoscom2.c#3 integrate .. //depot/projects/smpng/sys/dev/usb2/serial/uplcom2.c#3 integrate .. //depot/projects/smpng/sys/dev/usb2/serial/uvisor2.c#3 integrate .. //depot/projects/smpng/sys/dev/usb2/serial/uvscom2.c#3 integrate .. //depot/projects/smpng/sys/dev/usb2/sound/uaudio2.c#4 integrate .. //depot/projects/smpng/sys/dev/usb2/storage/ata-usb2.c#3 integrate .. //depot/projects/smpng/sys/dev/usb2/storage/umass2.c#5 integrate .. //depot/projects/smpng/sys/dev/usb2/storage/urio2.c#4 integrate .. //depot/projects/smpng/sys/dev/usb2/storage/ustorage2_fs.c#3 integrate .. //depot/projects/smpng/sys/dev/usb2/wlan/if_rum2.c#4 integrate .. //depot/projects/smpng/sys/dev/usb2/wlan/if_ural2.c#4 integrate .. //depot/projects/smpng/sys/dev/usb2/wlan/if_zyd2.c#4 integrate .. //depot/projects/smpng/sys/dev/xen/netback/netback.c#2 integrate .. //depot/projects/smpng/sys/dev/xen/netfront/netfront.c#5 integrate .. //depot/projects/smpng/sys/fs/coda/coda_vfsops.c#5 integrate .. //depot/projects/smpng/sys/fs/devfs/devfs_vnops.c#75 integrate .. //depot/projects/smpng/sys/fs/hpfs/hpfs_vfsops.c#39 integrate .. //depot/projects/smpng/sys/fs/nullfs/null_vnops.c#38 integrate .. //depot/projects/smpng/sys/fs/nwfs/nwfs_subr.c#12 integrate .. //depot/projects/smpng/sys/fs/nwfs/nwfs_vnops.c#21 integrate .. //depot/projects/smpng/sys/fs/smbfs/smbfs_vnops.c#43 integrate .. //depot/projects/smpng/sys/fs/tmpfs/tmpfs_subr.c#7 integrate .. //depot/projects/smpng/sys/fs/udf/udf_vnops.c#44 integrate .. //depot/projects/smpng/sys/geom/geom.h#52 integrate .. //depot/projects/smpng/sys/geom/geom_subr.c#56 integrate .. //depot/projects/smpng/sys/i386/i386/io_apic.c#25 integrate .. //depot/projects/smpng/sys/i386/i386/local_apic.c#60 integrate .. //depot/projects/smpng/sys/i386/i386/locore.s#30 integrate .. //depot/projects/smpng/sys/i386/i386/mp_machdep.c#116 integrate .. //depot/projects/smpng/sys/i386/i386/msi.c#10 integrate .. //depot/projects/smpng/sys/i386/i386/swtch.s#32 integrate .. //depot/projects/smpng/sys/i386/include/apicvar.h#31 integrate .. //depot/projects/smpng/sys/i386/include/cpufunc.h#38 integrate .. //depot/projects/smpng/sys/i386/include/intr_machdep.h#20 integrate .. //depot/projects/smpng/sys/i386/linux/linux_locore.s#3 integrate .. //depot/projects/smpng/sys/i386/svr4/svr4_locore.s#3 integrate .. //depot/projects/smpng/sys/i386/xen/mp_machdep.c#7 integrate .. //depot/projects/smpng/sys/i386/xen/xen_machdep.c#8 integrate .. //depot/projects/smpng/sys/ia64/ia64/mca.c#11 integrate .. //depot/projects/smpng/sys/ia64/include/mca.h#5 integrate .. //depot/projects/smpng/sys/kern/subr_autoconf.c#14 integrate .. //depot/projects/smpng/sys/kern/subr_bus.c#72 integrate .. //depot/projects/smpng/sys/kern/subr_clist.c#4 integrate .. //depot/projects/smpng/sys/kern/subr_devstat.c#17 integrate .. //depot/projects/smpng/sys/kern/subr_disk.c#30 integrate .. //depot/projects/smpng/sys/kern/subr_firmware.c#21 integrate .. //depot/projects/smpng/sys/kern/subr_kobj.c#9 integrate .. //depot/projects/smpng/sys/kern/subr_prf.c#56 integrate .. //depot/projects/smpng/sys/kern/subr_prof.c#32 integrate .. //depot/projects/smpng/sys/kern/subr_rman.c#39 integrate .. //depot/projects/smpng/sys/kern/subr_rtc.c#3 integrate .. //depot/projects/smpng/sys/kern/subr_taskqueue.c#37 integrate .. //depot/projects/smpng/sys/kern/subr_witness.c#177 integrate .. //depot/projects/smpng/sys/kern/sys_generic.c#56 integrate .. //depot/projects/smpng/sys/kern/tty.c#84 integrate .. //depot/projects/smpng/sys/kern/tty_info.c#3 integrate .. //depot/projects/smpng/sys/kern/tty_inq.c#3 integrate .. //depot/projects/smpng/sys/kern/tty_outq.c#3 integrate .. //depot/projects/smpng/sys/kern/uipc_socket.c#119 integrate .. //depot/projects/smpng/sys/net/if_ethersubr.c#95 integrate .. //depot/projects/smpng/sys/net/if_llatbl.c#2 integrate .. //depot/projects/smpng/sys/net80211/ieee80211.c#34 integrate .. //depot/projects/smpng/sys/net80211/ieee80211_node.c#39 integrate .. //depot/projects/smpng/sys/net80211/ieee80211_scan_sta.c#7 integrate .. //depot/projects/smpng/sys/net80211/ieee80211_tdma.c#2 integrate .. //depot/projects/smpng/sys/netatalk/ddp_usrreq.c#32 integrate .. //depot/projects/smpng/sys/netinet/ip_divert.c#62 integrate .. //depot/projects/smpng/sys/netinet/ip_ipsec.c#11 integrate .. //depot/projects/smpng/sys/netinet/ip_output.c#101 integrate .. //depot/projects/smpng/sys/netinet/sctp_auth.c#15 integrate .. //depot/projects/smpng/sys/netinet/sctp_constants.h#18 integrate .. //depot/projects/smpng/sys/netinet/sctp_crc32.c#7 integrate .. //depot/projects/smpng/sys/netinet/sctp_crc32.h#5 integrate .. //depot/projects/smpng/sys/netinet/sctp_input.c#21 integrate .. //depot/projects/smpng/sys/netinet/sctp_os_bsd.h#19 integrate .. //depot/projects/smpng/sys/netinet/sctp_output.c#24 integrate .. //depot/projects/smpng/sys/netinet/sctp_pcb.c#25 integrate .. //depot/projects/smpng/sys/netinet/sctp_pcb.h#17 integrate .. //depot/projects/smpng/sys/netinet/sctp_sysctl.c#10 integrate .. //depot/projects/smpng/sys/netinet/sctp_uio.h#16 integrate .. //depot/projects/smpng/sys/netinet/sctp_usrreq.c#22 integrate .. //depot/projects/smpng/sys/netinet/sctputil.c#25 integrate .. //depot/projects/smpng/sys/netinet/sctputil.h#14 integrate .. //depot/projects/smpng/sys/netinet6/frag6.c#21 integrate .. //depot/projects/smpng/sys/netinet6/in6.c#49 integrate .. //depot/projects/smpng/sys/netinet6/in6_gif.c#21 integrate .. //depot/projects/smpng/sys/netinet6/in6_ifattach.c#29 integrate .. //depot/projects/smpng/sys/netinet6/ip6_forward.c#26 integrate .. //depot/projects/smpng/sys/netinet6/ip6_input.c#57 integrate .. //depot/projects/smpng/sys/netinet6/ip6_var.h#27 integrate .. //depot/projects/smpng/sys/netinet6/nd6.c#49 integrate .. //depot/projects/smpng/sys/netinet6/nd6_nbr.c#33 integrate .. //depot/projects/smpng/sys/netinet6/nd6_rtr.c#27 integrate .. //depot/projects/smpng/sys/netinet6/sctp6_usrreq.c#17 integrate .. //depot/projects/smpng/sys/netinet6/vinet6.h#5 integrate .. //depot/projects/smpng/sys/netipsec/ipsec_output.c#18 integrate .. //depot/projects/smpng/sys/security/audit/audit_pipe.c#14 integrate .. //depot/projects/smpng/sys/sys/_null.h#6 integrate .. //depot/projects/smpng/sys/sys/cdefs.h#38 integrate .. //depot/projects/smpng/sys/sys/clist.h#5 integrate .. //depot/projects/smpng/sys/sys/conf.h#57 integrate .. //depot/projects/smpng/sys/sys/elf_common.h#14 integrate .. //depot/projects/smpng/sys/sys/kobj.h#7 integrate .. //depot/projects/smpng/sys/sys/malloc.h#28 integrate .. //depot/projects/smpng/sys/sys/pciio.h#4 integrate .. //depot/projects/smpng/sys/sys/sysctl.h#54 integrate .. //depot/projects/smpng/sys/sys/ttyqueue.h#4 integrate .. //depot/projects/smpng/sys/sys/unistd.h#17 integrate .. //depot/projects/smpng/sys/ufs/ffs/ffs_vfsops.c#108 integrate Differences ... ==== //depot/projects/smpng/sys/amd64/amd64/cpu_switch.S#23 (text+ko) ==== @@ -30,7 +30,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/sys/amd64/amd64/cpu_switch.S,v 1.165 2009/01/20 12:07:49 kib Exp $ + * $FreeBSD: src/sys/amd64/amd64/cpu_switch.S,v 1.166 2009/01/31 11:37:21 obrien Exp $ */ #include @@ -260,12 +260,12 @@ jmp do_tss store_seg: - movl %gs,PCB_GS(%r8) + mov %gs,PCB_GS(%r8) testl $PCB_GS32BIT,PCB_FLAGS(%r8) jnz 2f -1: movl %ds,PCB_DS(%r8) - movl %es,PCB_ES(%r8) - movl %fs,PCB_FS(%r8) +1: mov %ds,PCB_DS(%r8) + mov %es,PCB_ES(%r8) + mov %fs,PCB_FS(%r8) jmp done_store_seg 2: movq PCPU(GS32P),%rax movq (%rax),%rax @@ -277,11 +277,11 @@ jnz 2f 1: movl $MSR_GSBASE,%ecx rdmsr - movl PCB_GS(%r8),%gs + mov PCB_GS(%r8),%gs wrmsr - movl PCB_DS(%r8),%ds - movl PCB_ES(%r8),%es - movl PCB_FS(%r8),%fs + mov PCB_DS(%r8),%ds + mov PCB_ES(%r8),%es + mov PCB_FS(%r8),%fs jmp restore_fsbase /* Restore userland %gs while preserving kernel gsbase */ 2: movq PCPU(GS32P),%rax ==== //depot/projects/smpng/sys/amd64/amd64/exception.S#22 (text+ko) ==== @@ -31,7 +31,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/sys/amd64/amd64/exception.S,v 1.136 2009/01/14 14:20:08 kib Exp $ + * $FreeBSD: src/sys/amd64/amd64/exception.S,v 1.137 2009/02/03 09:01:45 jkoshy Exp $ */ #include "opt_atpic.h" @@ -383,22 +383,24 @@ * NMI handling is special. * * First, NMIs do not respect the state of the processor's RFLAGS.IF - * bit and the NMI handler may be invoked at any time, including when - * the processor is in a critical section with RFLAGS.IF == 0. In - * particular, this means that the processor's GS.base values could be - * inconsistent on entry to the handler, and so we need to read - * MSR_GSBASE to determine if a 'swapgs' is needed. We use '%ebx', a - * C-preserved register, to remember whether to swap GS back on the - * exit path. + * bit. The NMI handler may be entered at any time, including when + * the processor is in a critical section with RFLAGS.IF == 0. + * The processor's GS.base value could be invalid on entry to the + * handler. * * Second, the processor treats NMIs specially, blocking further NMIs - * until an 'iretq' instruction is executed. We therefore need to - * execute the NMI handler with interrupts disabled to prevent a - * nested interrupt from executing an 'iretq' instruction and - * inadvertently taking the processor out of NMI mode. + * until an 'iretq' instruction is executed. We thus need to execute + * the NMI handler with interrupts disabled, to prevent a nested interrupt + * from executing an 'iretq' instruction and inadvertently taking the + * processor out of NMI mode. * - * Third, the NMI handler runs on its own stack (tss_ist1), shared - * with the double fault handler. + * Third, the NMI handler runs on its own stack (tss_ist2). The canonical + * GS.base value for the processor is stored just above the bottom of its + * NMI stack. For NMIs taken from kernel mode, the current value in + * the processor's GS.base is saved at entry to C-preserved register %r12, + * the canonical value for GS.base is then loaded into the processor, and + * the saved value is restored at exit time. For NMIs taken from user mode, + * the cheaper 'SWAPGS' instructions are used for swapping GS.base. */ IDTVEC(nmi) @@ -423,12 +425,22 @@ movq %r15,TF_R15(%rsp) xorl %ebx,%ebx testb $SEL_RPL_MASK,TF_CS(%rsp) - jnz nmi_needswapgs /* we came from userland */ + jnz nmi_fromuserspace + /* + * We've interrupted the kernel. Preserve GS.base in %r12. + */ movl $MSR_GSBASE,%ecx rdmsr - cmpl $VM_MAXUSER_ADDRESS >> 32,%edx - jae nmi_calltrap /* GS.base holds a kernel VA */ -nmi_needswapgs: + movq %rax,%r12 + shlq $32,%rdx + orq %rdx,%r12 + /* Retrieve and load the canonical value for GS.base. */ + movq TF_SIZE(%rsp),%rdx + movl %edx,%eax + shrq $32,%rdx + wrmsr + jmp nmi_calltrap +nmi_fromuserspace: incl %ebx swapgs /* Note: this label is also used by ddb and gdb: */ @@ -439,14 +451,19 @@ MEXITCOUNT #ifdef HWPMC_HOOKS /* - * Check if the current trap was from user mode and if so - * whether the current thread needs a user call chain to be - * captured. We are still in NMI mode at this point. + * Capture a userspace callchain if needed. + * + * - Check if the current trap was from user mode. + * - Check if the current thread is valid. + * - Check if the thread requires a user call chain to be + * captured. + * + * We are still in NMI mode at this point. */ - testb $SEL_RPL_MASK,TF_CS(%rsp) - jz nocallchain - movq PCPU(CURTHREAD),%rax /* curthread present? */ - orq %rax,%rax + testl %ebx,%ebx + jz nocallchain /* not from userspace */ + movq PCPU(CURTHREAD),%rax + orq %rax,%rax /* curthread present? */ jz nocallchain testl $TDP_CALLCHAIN,TD_PFLAGS(%rax) /* flagged for capture? */ jz nocallchain @@ -498,8 +515,18 @@ nocallchain: #endif testl %ebx,%ebx - jz nmi_restoreregs + jz nmi_kernelexit swapgs + jmp nmi_restoreregs +nmi_kernelexit: + /* + * Put back the preserved MSR_GSBASE value. + */ + movl $MSR_GSBASE,%ecx + movq %r12,%rdx + movl %edx,%eax + shrq $32,%rdx + wrmsr nmi_restoreregs: movq TF_RDI(%rsp),%rdi movq TF_RSI(%rsp),%rsi ==== //depot/projects/smpng/sys/amd64/amd64/io_apic.c#23 (text+ko) ==== @@ -28,7 +28,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/amd64/io_apic.c,v 1.31 2007/06/05 18:57:48 jhb Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/io_apic.c,v 1.32 2009/01/29 09:22:56 jeff Exp $"); #include "opt_isa.h" @@ -327,39 +327,56 @@ { struct ioapic_intsrc *intpin = (struct ioapic_intsrc *)isrc; struct ioapic *io = (struct ioapic *)isrc->is_pic; + u_int old_vector; + u_int old_id; + + /* + * keep 1st core as the destination for NMI + */ + if (intpin->io_irq == IRQ_NMI) + apic_id = 0; + + /* + * Set us up to free the old irq. + */ + old_vector = intpin->io_vector; + old_id = intpin->io_cpu; + if (old_vector && apic_id == old_id) + return; + /* + * Allocate an APIC vector for this interrupt pin. Once + * we have a vector we program the interrupt pin. + */ intpin->io_cpu = apic_id; + intpin->io_vector = apic_alloc_vector(apic_id, intpin->io_irq); if (bootverbose) { - printf("ioapic%u: Assigning ", io->io_id); + printf("ioapic%u: routing intpin %u (", io->io_id, + intpin->io_intpin); ioapic_print_irq(intpin); - printf(" to local APIC %u\n", intpin->io_cpu); + printf(") to lapic %u vector %u\n", intpin->io_cpu, + intpin->io_vector); } ioapic_program_intpin(intpin); + /* + * Free the old vector after the new one is established. This is done + * to prevent races where we could miss an interrupt. + */ + if (old_vector) + apic_free_vector(old_id, old_vector, intpin->io_irq); } static void ioapic_enable_intr(struct intsrc *isrc) { struct ioapic_intsrc *intpin = (struct ioapic_intsrc *)isrc; - struct ioapic *io = (struct ioapic *)isrc->is_pic; - if (intpin->io_vector == 0) { - /* - * Allocate an APIC vector for this interrupt pin. Once - * we have a vector we program the interrupt pin. - */ - intpin->io_vector = apic_alloc_vector(intpin->io_irq); - if (bootverbose) { - printf("ioapic%u: routing intpin %u (", io->io_id, - intpin->io_intpin); - ioapic_print_irq(intpin); - printf(") to vector %u\n", intpin->io_vector); - } - ioapic_program_intpin(intpin); - apic_enable_vector(intpin->io_vector); - } + if (intpin->io_vector == 0) + ioapic_assign_cpu(isrc, pcpu_find(0)->pc_apic_id); + apic_enable_vector(intpin->io_cpu, intpin->io_vector); } + static void ioapic_disable_intr(struct intsrc *isrc) { @@ -369,11 +386,11 @@ if (intpin->io_vector != 0) { /* Mask this interrupt pin and free its APIC vector. */ vector = intpin->io_vector; - apic_disable_vector(vector); + apic_disable_vector(intpin->io_cpu, vector); intpin->io_masked = 1; intpin->io_vector = 0; ioapic_program_intpin(intpin); - apic_free_vector(vector, intpin->io_irq); + apic_free_vector(intpin->io_cpu, vector, intpin->io_irq); } } ==== //depot/projects/smpng/sys/amd64/amd64/local_apic.c#38 (text+ko) ==== @@ -32,7 +32,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/amd64/local_apic.c,v 1.50 2008/12/11 15:56:30 jhb Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/local_apic.c,v 1.51 2009/01/29 09:22:56 jeff Exp $"); #include "opt_hwpmc_hooks.h" #include "opt_kdtrace.h" @@ -46,6 +46,8 @@ #include #include #include +#include +#include #include #include @@ -109,6 +111,8 @@ u_long la_hard_ticks; u_long la_stat_ticks; u_long la_prof_ticks; + /* Include IDT_SYSCALL to make indexing easier. */ + u_int la_ioint_irqs[APIC_NUM_IOINTS + 1]; } static lapics[MAX_APIC_ID + 1]; /* XXX: should thermal be an NMI? */ @@ -134,8 +138,6 @@ IDTVEC(apic_isr7), /* 224 - 255 */ }; -/* Include IDT_SYSCALL to make indexing easier. */ -static u_int ioint_irqs[APIC_NUM_IOINTS + 1]; static u_int32_t lapic_timer_divisors[] = { APIC_TDCR_1, APIC_TDCR_2, APIC_TDCR_4, APIC_TDCR_8, APIC_TDCR_16, @@ -215,14 +217,12 @@ /* Perform basic initialization of the BSP's local APIC. */ lapic_enable(); - ioint_irqs[IDT_SYSCALL - APIC_IO_INTS] = IRQ_SYSCALL; /* Set BSP's per-CPU local APIC ID. */ PCPU_SET(apic_id, lapic_id()); /* Local APIC timer interrupt. */ setidt(APIC_TIMER_INT, IDTVEC(timerint), SDT_SYSIGT, SEL_KPL, 0); - ioint_irqs[APIC_TIMER_INT - APIC_IO_INTS] = IRQ_TIMER; /* XXX: error/thermal interrupts */ } @@ -254,6 +254,9 @@ lapics[apic_id].la_lvts[i] = lvts[i]; lapics[apic_id].la_lvts[i].lvt_active = 0; } + lapics[apic_id].la_ioint_irqs[IDT_SYSCALL - APIC_IO_INTS] = IRQ_SYSCALL; + lapics[apic_id].la_ioint_irqs[APIC_TIMER_INT - APIC_IO_INTS] = + IRQ_TIMER; #ifdef SMP cpu_add(apic_id, boot_cpu); @@ -664,7 +667,8 @@ if (vector == -1) panic("Couldn't get vector from ISR!"); - isrc = intr_lookup_source(apic_idt_to_irq(vector)); + isrc = intr_lookup_source(apic_idt_to_irq(PCPU_GET(apic_id), + vector)); intr_execute_handlers(isrc, frame); } @@ -779,9 +783,19 @@ lapic->lvt_timer = value; } +u_int +apic_cpuid(u_int apic_id) +{ +#ifdef SMP + return apic_cpuids[apic_id]; +#else + return 0; +#endif +} + /* Request a free IDT vector to be used by the specified IRQ. */ u_int -apic_alloc_vector(u_int irq) +apic_alloc_vector(u_int apic_id, u_int irq) { u_int vector; @@ -793,9 +807,9 @@ */ mtx_lock_spin(&icu_lock); for (vector = 0; vector < APIC_NUM_IOINTS; vector++) { - if (ioint_irqs[vector] != 0) + if (lapics[apic_id].la_ioint_irqs[vector] != 0) continue; - ioint_irqs[vector] = irq; + lapics[apic_id].la_ioint_irqs[vector] = irq; mtx_unlock_spin(&icu_lock); return (vector + APIC_IO_INTS); } @@ -810,7 +824,7 @@ * satisfied, 0 is returned. */ u_int -apic_alloc_vectors(u_int *irqs, u_int count, u_int align) +apic_alloc_vectors(u_int apic_id, u_int *irqs, u_int count, u_int align) { u_int first, run, vector; @@ -833,7 +847,7 @@ for (vector = 0; vector < APIC_NUM_IOINTS; vector++) { /* Vector is in use, end run. */ - if (ioint_irqs[vector] != 0) { + if (lapics[apic_id].la_ioint_irqs[vector] != 0) { run = 0; first = 0; continue; @@ -853,7 +867,8 @@ /* Found a run, assign IRQs and return the first vector. */ for (vector = 0; vector < count; vector++) - ioint_irqs[first + vector] = irqs[vector]; + lapics[apic_id].la_ioint_irqs[first + vector] = + irqs[vector]; mtx_unlock_spin(&icu_lock); return (first + APIC_IO_INTS); } @@ -862,8 +877,14 @@ return (0); } +/* + * Enable a vector for a particular apic_id. Since all lapics share idt + * entries and ioint_handlers this enables the vector on all lapics. lapics + * which do not have the vector configured would report spurious interrupts + * should it fire. + */ void -apic_enable_vector(u_int vector) +apic_enable_vector(u_int apic_id, u_int vector) { KASSERT(vector != IDT_SYSCALL, ("Attempt to overwrite syscall entry")); @@ -873,7 +894,7 @@ } void -apic_disable_vector(u_int vector) +apic_disable_vector(u_int apic_id, u_int vector) { KASSERT(vector != IDT_SYSCALL, ("Attempt to overwrite syscall entry")); @@ -884,27 +905,42 @@ /* Release an APIC vector when it's no longer in use. */ void -apic_free_vector(u_int vector, u_int irq) +apic_free_vector(u_int apic_id, u_int vector, u_int irq) { + struct thread *td; KASSERT(vector >= APIC_IO_INTS && vector != IDT_SYSCALL && vector <= APIC_IO_INTS + APIC_NUM_IOINTS, ("Vector %u does not map to an IRQ line", vector)); KASSERT(irq < NUM_IO_INTS, ("Invalid IRQ %u", irq)); - KASSERT(ioint_irqs[vector - APIC_IO_INTS] == irq, ("IRQ mismatch")); + KASSERT(lapics[apic_id].la_ioint_irqs[vector - APIC_IO_INTS] == + irq, ("IRQ mismatch")); + + /* + * Bind us to the cpu that owned the vector before freeing it so + * we don't lose an interrupt delivery race. + */ + td = curthread; + thread_lock(td); + if (sched_is_bound(td)) + panic("apic_free_vector: Thread already bound.\n"); + sched_bind(td, apic_cpuid(apic_id)); mtx_lock_spin(&icu_lock); - ioint_irqs[vector - APIC_IO_INTS] = 0; + lapics[apic_id].la_ioint_irqs[vector - APIC_IO_INTS] = 0; mtx_unlock_spin(&icu_lock); + sched_unbind(td); + thread_unlock(td); + } /* Map an IDT vector (APIC) to an IRQ (interrupt source). */ u_int -apic_idt_to_irq(u_int vector) +apic_idt_to_irq(u_int apic_id, u_int vector) { KASSERT(vector >= APIC_IO_INTS && vector != IDT_SYSCALL && vector <= APIC_IO_INTS + APIC_NUM_IOINTS, ("Vector %u does not map to an IRQ line", vector)); - return (ioint_irqs[vector - APIC_IO_INTS]); + return (lapics[apic_id].la_ioint_irqs[vector - APIC_IO_INTS]); } #ifdef DDB @@ -915,6 +951,7 @@ { struct intsrc *isrc; int i, verbose; + u_int apic_id; u_int irq; if (strcmp(modif, "vv") == 0) @@ -923,9 +960,14 @@ verbose = 1; else verbose = 0; - for (i = 0; i < APIC_NUM_IOINTS + 1 && !db_pager_quit; i++) { - irq = ioint_irqs[i]; - if (irq != 0 && irq != IRQ_SYSCALL) { + for (apic_id = 0; apic_id <= MAX_APIC_ID; apic_id++) { + if (lapics[apic_id].la_present == 0) + continue; + db_printf("Interrupts bound to lapic %u\n", apic_id); + for (i = 0; i < APIC_NUM_IOINTS + 1 && !db_pager_quit; i++) { + irq = lapics[apic_id].la_ioint_irqs[i]; + if (irq == 0 || irq == IRQ_SYSCALL) + continue; db_printf("vec 0x%2x -> ", i + APIC_IO_INTS); if (irq == IRQ_TIMER) db_printf("lapic timer\n"); ==== //depot/projects/smpng/sys/amd64/amd64/machdep.c#73 (text+ko) ==== @@ -39,7 +39,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/amd64/machdep.c,v 1.690 2008/09/08 09:59:05 kib Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/machdep.c,v 1.691 2009/02/03 09:01:45 jkoshy Exp $"); #include "opt_atalk.h" #include "opt_atpic.h" @@ -809,6 +809,9 @@ static char dblfault_stack[PAGE_SIZE] __aligned(16); +static char nmi0_stack[PAGE_SIZE] __aligned(16); +CTASSERT(sizeof(struct nmi_pcpu) == 16); + struct amd64tss common_tss[MAXCPU]; /* software prototypes -- in more palatable form */ @@ -1291,6 +1294,7 @@ caddr_t kmdp; int gsel_tss, x; struct pcpu *pc; + struct nmi_pcpu *np; u_int64_t msr; char *env; @@ -1365,7 +1369,7 @@ setidt(x, &IDTVEC(rsvd), SDT_SYSIGT, SEL_KPL, 0); setidt(IDT_DE, &IDTVEC(div), SDT_SYSIGT, SEL_KPL, 0); setidt(IDT_DB, &IDTVEC(dbg), SDT_SYSIGT, SEL_KPL, 0); - setidt(IDT_NMI, &IDTVEC(nmi), SDT_SYSIGT, SEL_KPL, 1); + setidt(IDT_NMI, &IDTVEC(nmi), SDT_SYSIGT, SEL_KPL, 2); setidt(IDT_BP, &IDTVEC(bpt), SDT_SYSIGT, SEL_UPL, 0); setidt(IDT_OF, &IDTVEC(ofl), SDT_SYSIGT, SEL_KPL, 0); setidt(IDT_BR, &IDTVEC(bnd), SDT_SYSIGT, SEL_KPL, 0); @@ -1438,6 +1442,14 @@ /* doublefault stack space, runs on ist1 */ common_tss[0].tss_ist1 = (long)&dblfault_stack[sizeof(dblfault_stack)]; + /* + * NMI stack, runs on ist2. The pcpu pointer is stored just + * above the start of the ist2 stack. + */ + np = ((struct nmi_pcpu *) &nmi0_stack[sizeof(nmi0_stack)]) - 1; + np->np_pcpu = (register_t) pc; + common_tss[0].tss_ist2 = (long) np; + /* Set the IO permission bitmap (empty due to tss seg limit) */ common_tss[0].tss_iobase = sizeof(struct amd64tss); ==== //depot/projects/smpng/sys/amd64/amd64/mp_machdep.c#50 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/amd64/mp_machdep.c,v 1.295 2008/11/26 19:25:13 jkim Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/mp_machdep.c,v 1.297 2009/02/03 09:01:45 jkoshy Exp $"); #include "opt_cpu.h" #include "opt_kstack_pages.h" @@ -92,6 +92,7 @@ /* Temporary holder for double fault stack */ char *doublefault_stack; +char *nmi_stack; /* Hotwire a 0->4MB V==P mapping */ extern pt_entry_t *KPTphys; @@ -152,6 +153,7 @@ int cpu_disabled:1; } static cpu_info[MAX_APIC_ID + 1]; int cpu_apic_ids[MAXCPU]; +int apic_cpuids[MAX_APIC_ID + 1]; /* Holds pending bitmap based IPIs per CPU */ static volatile u_int cpu_ipi_pending[MAXCPU]; @@ -349,6 +351,7 @@ KASSERT(boot_cpu_id == PCPU_GET(apic_id), ("BSP's APIC ID doesn't match boot_cpu_id")); cpu_apic_ids[0] = boot_cpu_id; + apic_cpuids[boot_cpu_id] = 0; assign_cpu_ids(); @@ -435,6 +438,7 @@ init_secondary(void) { struct pcpu *pc; + struct nmi_pcpu *np; u_int64_t msr, cr0; int cpu, gsel_tss, x; struct region_descriptor ap_gdt; @@ -448,6 +452,10 @@ common_tss[cpu].tss_iobase = sizeof(struct amd64tss); common_tss[cpu].tss_ist1 = (long)&doublefault_stack[PAGE_SIZE]; + /* The NMI stack runs on IST2. */ + np = ((struct nmi_pcpu *) &nmi_stack[PAGE_SIZE]) - 1; + common_tss[cpu].tss_ist2 = (long) np; + /* Prepare private GDT */ gdt_segs[GPROC0_SEL].ssd_base = (long) &common_tss[cpu]; ssdtosyssd(&gdt_segs[GPROC0_SEL], @@ -472,6 +480,9 @@ pc->pc_rsp0 = 0; pc->pc_gs32p = &gdt[NGDT * cpu + GUGS32_SEL]; + /* Save the per-cpu pointer for use by the NMI handler. */ + np->np_pcpu = (register_t) pc; + wrmsr(MSR_FSBASE, 0); /* User value */ wrmsr(MSR_GSBASE, (u_int64_t)pc); wrmsr(MSR_KGSBASE, (u_int64_t)pc); /* XXX User value while we're in the kernel */ @@ -656,6 +667,7 @@ if (mp_ncpus < MAXCPU) { cpu_apic_ids[mp_ncpus] = i; + apic_cpuids[i] = mp_ncpus; mp_ncpus++; } else cpu_info[i].cpu_disabled = 1; @@ -722,6 +734,7 @@ /* allocate and set up an idle stack data page */ bootstacks[cpu] = (void *)kmem_alloc(kernel_map, KSTACK_PAGES * PAGE_SIZE); doublefault_stack = (char *)kmem_alloc(kernel_map, PAGE_SIZE); + nmi_stack = (char *)kmem_alloc(kernel_map, PAGE_SIZE); bootSTK = (char *)bootstacks[cpu] + KSTACK_PAGES * PAGE_SIZE - 8; bootAP = cpu; ==== //depot/projects/smpng/sys/amd64/amd64/msi.c#10 (text+ko) ==== @@ -35,7 +35,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/amd64/msi.c,v 1.9 2009/01/12 19:17:35 jkim Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/msi.c,v 1.10 2009/01/29 09:22:56 jeff Exp $"); #include #include @@ -161,7 +161,9 @@ { struct msi_intsrc *msi = (struct msi_intsrc *)isrc; - apic_enable_vector(msi->msi_vector); + if (msi->msi_vector == 0) + msi_assign_cpu(isrc, 0); + apic_enable_vector(msi->msi_cpu, msi->msi_vector); } static void @@ -169,7 +171,7 @@ { struct msi_intsrc *msi = (struct msi_intsrc *)isrc; - apic_disable_vector(msi->msi_vector); + apic_disable_vector(msi->msi_cpu, msi->msi_vector); } static int @@ -199,15 +201,35 @@ msi_assign_cpu(struct intsrc *isrc, u_int apic_id) { struct msi_intsrc *msi = (struct msi_intsrc *)isrc; + int old_vector; + u_int old_id; + int vector; + /* Store information to free existing irq. */ + old_vector = msi->msi_vector; + old_id = msi->msi_cpu; + if (old_vector && old_id == apic_id) + return; + /* Allocate IDT vector on this cpu. */ + vector = apic_alloc_vector(apic_id, msi->msi_irq); + if (vector == 0) + return; /* XXX alloc_vector panics on failure. */ msi->msi_cpu = apic_id; + msi->msi_vector = vector; if (bootverbose) - printf("msi: Assigning %s IRQ %d to local APIC %u\n", + printf("msi: Assigning %s IRQ %d to local APIC %u vector %u\n", msi->msi_msix ? "MSI-X" : "MSI", msi->msi_irq, - msi->msi_cpu); + msi->msi_cpu, msi->msi_vector); pci_remap_msi_irq(msi->msi_dev, msi->msi_irq); + /* + * Free the old vector after the new one is established. This is done + * to prevent races where we could miss an interrupt. + */ + if (old_vector) + apic_free_vector(old_id, old_vector, msi->msi_irq); } + void msi_init(void) { @@ -263,7 +285,7 @@ msi_alloc(device_t dev, int count, int maxcount, int *irqs) { struct msi_intsrc *msi, *fsrc; - int cnt, i, vector; + int cnt, i; if (!msi_enabled) return (ENXIO); @@ -309,22 +331,12 @@ /* Ok, we now have the IRQs allocated. */ KASSERT(cnt == count, ("count mismatch")); - /* Allocate 'count' IDT vectors. */ - vector = apic_alloc_vectors(irqs, count, maxcount); - if (vector == 0) { - mtx_unlock(&msi_lock); - return (ENOSPC); - } - /* Assign IDT vectors and make these messages owned by 'dev'. */ fsrc = (struct msi_intsrc *)intr_lookup_source(irqs[0]); for (i = 0; i < count; i++) { msi = (struct msi_intsrc *)intr_lookup_source(irqs[i]); msi->msi_dev = dev; - msi->msi_vector = vector + i; - if (bootverbose) - printf("msi: routing MSI IRQ %d to vector %u\n", - msi->msi_irq, msi->msi_vector); + msi->msi_vector = 0; msi->msi_first = fsrc; KASSERT(msi->msi_intsrc.is_handlers == 0, ("dead MSI has handlers")); @@ -377,14 +389,18 @@ KASSERT(msi->msi_dev == first->msi_dev, ("owner mismatch")); msi->msi_first = NULL; msi->msi_dev = NULL; - apic_free_vector(msi->msi_vector, msi->msi_irq); + if (msi->msi_vector) + apic_free_vector(msi->msi_cpu, msi->msi_vector, + msi->msi_irq); msi->msi_vector = 0; } /* Clear out the first message. */ first->msi_first = NULL; first->msi_dev = NULL; - apic_free_vector(first->msi_vector, first->msi_irq); + if (first->msi_vector) + apic_free_vector(first->msi_cpu, first->msi_vector, + first->msi_irq); first->msi_vector = 0; first->msi_count = 0; @@ -433,7 +449,7 @@ msix_alloc(device_t dev, int *irq) { struct msi_intsrc *msi; - int i, vector; + int i; if (!msi_enabled) return (ENXIO); @@ -468,15 +484,9 @@ goto again; >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Wed Feb 4 22:50:04 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 4364110656DF; Wed, 4 Feb 2009 22:50:04 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id F280710656DB for ; Wed, 4 Feb 2009 22:50:03 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id DEB878FC13 for ; Wed, 4 Feb 2009 22:50:03 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n14Mo387018382 for ; Wed, 4 Feb 2009 22:50:03 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n14Mo3qu018379 for perforce@freebsd.org; Wed, 4 Feb 2009 22:50:03 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Wed, 4 Feb 2009 22:50:03 GMT Message-Id: <200902042250.n14Mo3qu018379@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to bb+lists.freebsd.perforce@cyrus.watson.org using -f From: Robert Watson To: Perforce Change Reviews Cc: Subject: PERFORCE change 157179 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 04 Feb 2009 22:50:07 -0000 http://perforce.freebsd.org/chv.cgi?CH=157179 Change 157179 by rwatson@rwatson_freebsd_capabilities on 2009/02/04 22:49:39 Fix spelling of .rtld_start. Affected files ... .. //depot/projects/trustedbsd/capabilities/src/libexec/rtld-elf-cap/Makefile#11 edit Differences ... ==== //depot/projects/trustedbsd/capabilities/src/libexec/rtld-elf-cap/Makefile#11 (text+ko) ==== @@ -1,5 +1,5 @@ # $FreeBSD$ -# $P4: //depot/projects/trustedbsd/capabilities/src/libexec/rtld-elf-cap/Makefile#10 $ +# $P4: //depot/projects/trustedbsd/capabilities/src/libexec/rtld-elf-cap/Makefile#11 $ WITHOUT_SSP= @@ -14,7 +14,7 @@ CSTD?= gnu99 CFLAGS+= -Wall -DFREEBSD_ELF -DIN_RTLD -DIN_RTLD_CAP -g CFLAGS+= -I${.CURDIR}/../rtld-elf/${MACHINE_ARCH} -I${.CURDIR}/../rtld-elf -LDFLAGS+= -nostdlib -Wl,-e,_rtld_start -Wl,-T,${.CURDIR}/rtld-elf-cap.xs +LDFLAGS+= -nostdlib -Wl,-e,.rtld_start -Wl,-T,${.CURDIR}/rtld-elf-cap.xs INSTALLFLAGS= -C -b PRECIOUSPROG= BINDIR= /libexec From owner-p4-projects@FreeBSD.ORG Wed Feb 4 23:28:44 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id C0D271065675; Wed, 4 Feb 2009 23:28:43 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 811E61065672 for ; Wed, 4 Feb 2009 23:28:43 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 5328F8FC1C for ; Wed, 4 Feb 2009 23:28:43 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n14NShnB022340 for ; Wed, 4 Feb 2009 23:28:43 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n14NShgt022338 for perforce@freebsd.org; Wed, 4 Feb 2009 23:28:43 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Wed, 4 Feb 2009 23:28:43 GMT Message-Id: <200902042328.n14NShgt022338@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to bb+lists.freebsd.perforce@cyrus.watson.org using -f From: Robert Watson To: Perforce Change Reviews Cc: Subject: PERFORCE change 157180 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 04 Feb 2009 23:28:44 -0000 http://perforce.freebsd.org/chv.cgi?CH=157180 Change 157180 by rwatson@rwatson_freebsd_capabilities on 2009/02/04 23:28:33 As we will include CSU in each sandbox binary, there's no need to expose rtld's copies of __progname and environ symbols to run-time linked objects. Affected files ... .. //depot/projects/trustedbsd/capabilities/src/libexec/rtld-elf-cap/Makefile#12 edit .. //depot/projects/trustedbsd/capabilities/src/libexec/rtld-elf-cap/Symbol.map#2 delete .. //depot/projects/trustedbsd/capabilities/src/libexec/rtld-elf/rtld.c#8 edit Differences ... ==== //depot/projects/trustedbsd/capabilities/src/libexec/rtld-elf-cap/Makefile#12 (text+ko) ==== @@ -1,5 +1,5 @@ # $FreeBSD$ -# $P4: //depot/projects/trustedbsd/capabilities/src/libexec/rtld-elf-cap/Makefile#11 $ +# $P4: //depot/projects/trustedbsd/capabilities/src/libexec/rtld-elf-cap/Makefile#12 $ WITHOUT_SSP= @@ -21,7 +21,6 @@ CFLAGS+= -fpic -DPIC LDFLAGS+= -shared -Wl,-Bsymbolic - DPADD= ${LIBC_PIC} LDADD= -lc_pic @@ -29,7 +28,7 @@ .if ${MK_SYMVER} == "yes" LIBCDIR= ${.CURDIR}/../../lib/libc VERSION_DEF= ${LIBCDIR}/Versions.def -SYMBOL_MAPS= ${.CURDIR}/../rtld-elf/Symbol.map ${.CURDIR}/Symbol.map +SYMBOL_MAPS= ${.CURDIR}/../rtld-elf/Symbol.map VERSION_MAP= Version.map LDFLAGS+= -Wl,--version-script=${VERSION_MAP} ==== //depot/projects/trustedbsd/capabilities/src/libexec/rtld-elf/rtld.c#8 (text+ko) ==== @@ -184,13 +184,6 @@ #endif /* - * Global declarations normally provided by crt1. The dynamic linker is - * not built with crt1, so we have to provide them ourselves. - */ -char *__progname; -char **environ; - -/* * These are the functions the dynamic linker exports to application * programs. They are the only symbols the dynamic linker is willing * to export from itself. @@ -215,14 +208,17 @@ (func_ptr_type) &dl_iterate_phdr, (func_ptr_type) &_rtld_atfork_pre, (func_ptr_type) &_rtld_atfork_post, -#ifdef IN_RTLD_CAP - (func_ptr_type) &environ, - (func_ptr_type) &__progname, -#endif NULL }; /* + * Global declarations normally provided by crt1. The dynamic linker is + * not built with crt1, so we have to provide them ourselves. + */ +char *__progname; +char **environ; + +/* * Globals to control TLS allocation. */ size_t tls_last_offset; /* Static TLS offset of last module */ From owner-p4-projects@FreeBSD.ORG Wed Feb 4 23:29:45 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id E913F1065677; Wed, 4 Feb 2009 23:29:44 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id A9591106566C for ; Wed, 4 Feb 2009 23:29:44 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 7C25D8FC16 for ; Wed, 4 Feb 2009 23:29:44 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n14NTi8M022403 for ; Wed, 4 Feb 2009 23:29:44 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n14NTiJ5022401 for perforce@freebsd.org; Wed, 4 Feb 2009 23:29:44 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Wed, 4 Feb 2009 23:29:44 GMT Message-Id: <200902042329.n14NTiJ5022401@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to bb+lists.freebsd.perforce@cyrus.watson.org using -f From: Robert Watson To: Perforce Change Reviews Cc: Subject: PERFORCE change 157181 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 04 Feb 2009 23:29:45 -0000 http://perforce.freebsd.org/chv.cgi?CH=157181 Change 157181 by rwatson@rwatson_freebsd_capabilities on 2009/02/04 23:29:05 Now that the ABI for sandbox binaries is settling down, put some initial chicken-scratchings in the man page. Affected files ... .. //depot/projects/trustedbsd/capabilities/src/libexec/rtld-elf-cap/rtld-elf-cap.1#2 edit Differences ... ==== //depot/projects/trustedbsd/capabilities/src/libexec/rtld-elf-cap/rtld-elf-cap.1#2 (text+ko) ==== @@ -36,8 +36,49 @@ .Os .Dt RTLD-ELF-CAP 1 .Sh NAME +.Nm ld-elf-cap.so , .Nm rtld-elf-cap .Nd capability-mode run-time link editor +.Sh DESCRIPTION +The +.Nm +is a version of +.Xr ld-elf.so 1 +specific to the sandbox environment created using +.Xr cap_enter 2 . +.Nm +is intended to be directly executed using the +.Xr fexeve 2 +system call, and expects the binary to be passed as file descriptor +.Dv 3 . +.Pp +Binaries for the sandbox environment are relocatable shared objects with the +addition of C start-up code (CSU) normally linked only into binaries +intended for direct execution. +As with traditional +.Fx +binaries, the C run-time expects to begin execution with a +.Dv main +function which will be passed execution-time arguments explicitly, as well +as having access to inherited environmental variables. +.Pp +A typical +.Xr gcc 1 +command line to build a sandbox-mode binary might be: +.Bd -literal -offset indent +gcc -o main.so main.c -shared /usr/lib/crt1.o +.Ed +.Sh IMPLEMENTATION NOTES +Linking sandbox binaries as relocatable shared objects rather than linking +them with a fixed virtual address allows them to be directly linked into +consumers, if desired, for debugging or performance analysis purposes. +.Pp +The C run-time start-up code (CSU) is included to provide an ELF brand as +well as +.Dv _start +function sufficient to properly align the stack, start C run-time services +such as profiling and thread-local storage, and to provide and pass command +line arguments and environmental variables to the executing binary. .Sh HISTORY Support for capabilities and capabilities mode was developed as part of the .Tn TrustedBSD From owner-p4-projects@FreeBSD.ORG Wed Feb 4 23:30:46 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 06916106566B; Wed, 4 Feb 2009 23:30:46 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id B8AAF1065676 for ; Wed, 4 Feb 2009 23:30:45 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id A53988FC14 for ; Wed, 4 Feb 2009 23:30:45 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n14NUjmL022523 for ; Wed, 4 Feb 2009 23:30:45 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n14NUj0X022521 for perforce@freebsd.org; Wed, 4 Feb 2009 23:30:45 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Wed, 4 Feb 2009 23:30:45 GMT Message-Id: <200902042330.n14NUj0X022521@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to bb+lists.freebsd.perforce@cyrus.watson.org using -f From: Robert Watson To: Perforce Change Reviews Cc: Subject: PERFORCE change 157182 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 04 Feb 2009 23:30:46 -0000 http://perforce.freebsd.org/chv.cgi?CH=157182 Change 157182 by rwatson@rwatson_freebsd_capabilities on 2009/02/04 23:30:43 Symlink for the man page to ld-elf-cap-so.1. Affected files ... .. //depot/projects/trustedbsd/capabilities/src/libexec/rtld-elf-cap/Makefile#13 edit Differences ... ==== //depot/projects/trustedbsd/capabilities/src/libexec/rtld-elf-cap/Makefile#13 (text+ko) ==== @@ -1,5 +1,5 @@ # $FreeBSD$ -# $P4: //depot/projects/trustedbsd/capabilities/src/libexec/rtld-elf-cap/Makefile#12 $ +# $P4: //depot/projects/trustedbsd/capabilities/src/libexec/rtld-elf-cap/Makefile#13 $ WITHOUT_SSP= @@ -18,6 +18,7 @@ INSTALLFLAGS= -C -b PRECIOUSPROG= BINDIR= /libexec +MLINKS= rtld-elf-cap.1 ld-elf-cap.so.1.1 CFLAGS+= -fpic -DPIC LDFLAGS+= -shared -Wl,-Bsymbolic From owner-p4-projects@FreeBSD.ORG Wed Feb 4 23:35:51 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 4A87C1065675; Wed, 4 Feb 2009 23:35:51 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 0811A1065673 for ; Wed, 4 Feb 2009 23:35:51 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id E88278FC0C for ; Wed, 4 Feb 2009 23:35:50 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n14NZo3v022951 for ; Wed, 4 Feb 2009 23:35:50 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n14NZoTB022949 for perforce@freebsd.org; Wed, 4 Feb 2009 23:35:50 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Wed, 4 Feb 2009 23:35:50 GMT Message-Id: <200902042335.n14NZoTB022949@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to bb+lists.freebsd.perforce@cyrus.watson.org using -f From: Robert Watson To: Perforce Change Reviews Cc: Subject: PERFORCE change 157183 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 04 Feb 2009 23:35:53 -0000 http://perforce.freebsd.org/chv.cgi?CH=157183 Change 157183 by rwatson@rwatson_freebsd_capabilities on 2009/02/04 23:35:26 Fix man page .Nm, add cross-references. Affected files ... .. //depot/projects/trustedbsd/capabilities/src/libexec/rtld-elf-cap/rtld-elf-cap.1#3 edit Differences ... ==== //depot/projects/trustedbsd/capabilities/src/libexec/rtld-elf-cap/rtld-elf-cap.1#3 (text+ko) ==== @@ -36,14 +36,14 @@ .Os .Dt RTLD-ELF-CAP 1 .Sh NAME -.Nm ld-elf-cap.so , +.Nm ld-elf-cap.so.1 , .Nm rtld-elf-cap .Nd capability-mode run-time link editor .Sh DESCRIPTION The .Nm is a version of -.Xr ld-elf.so 1 +.Xr ld-elf.so.1 1 specific to the sandbox environment created using .Xr cap_enter 2 . .Nm @@ -79,6 +79,11 @@ function sufficient to properly align the stack, start C run-time services such as profiling and thread-local storage, and to provide and pass command line arguments and environmental variables to the executing binary. +.Sh SEE ALSO +.Xr gcc 1 , +.Xr ld-elf.so.1 1 , +.Xr cap_enter 2 , +.Xr fexecve 2 .Sh HISTORY Support for capabilities and capabilities mode was developed as part of the .Tn TrustedBSD From owner-p4-projects@FreeBSD.ORG Thu Feb 5 00:49:06 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id D40471065675; Thu, 5 Feb 2009 00:49:05 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 92B85106564A for ; Thu, 5 Feb 2009 00:49:05 +0000 (UTC) (envelope-from nwhitehorn@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 808848FC14 for ; Thu, 5 Feb 2009 00:49:05 +0000 (UTC) (envelope-from nwhitehorn@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n150n5kj039084 for ; Thu, 5 Feb 2009 00:49:05 GMT (envelope-from nwhitehorn@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n150n5nY039082 for perforce@freebsd.org; Thu, 5 Feb 2009 00:49:05 GMT (envelope-from nwhitehorn@freebsd.org) Date: Thu, 5 Feb 2009 00:49:05 GMT Message-Id: <200902050049.n150n5nY039082@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to nwhitehorn@freebsd.org using -f From: Nathan Whitehorn To: Perforce Change Reviews Cc: Subject: PERFORCE change 157185 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 05 Feb 2009 00:49:07 -0000 http://perforce.freebsd.org/chv.cgi?CH=157185 Change 157185 by nwhitehorn@nwhitehorn_trantor on 2009/02/05 00:48:49 Use the 4-byte status word read on all Serverworks SATA controllers, instead of just K2. The Linux driver seems to get away with doing this, and it is necessary for a variety of SATA controllers on PowerPC. This should be tested on x86. Affected files ... .. //depot/projects/ppc-g5/sys/dev/ata/chipsets/ata-serverworks.c#4 edit Differences ... ==== //depot/projects/ppc-g5/sys/dev/ata/chipsets/ata-serverworks.c#4 (text+ko) ==== @@ -57,7 +57,7 @@ static void ata_serverworks_tf_read(struct ata_request *request); static void ata_serverworks_tf_write(struct ata_request *request); static void ata_serverworks_setmode(device_t dev, int mode); -static int ata_serverworks_k2status(device_t dev); +static int ata_serverworks_status(device_t dev); /* misc defines */ #define SWKS_33 0 @@ -99,10 +99,15 @@ } static int -ata_serverworks_k2status(device_t dev) +ata_serverworks_status(device_t dev) { struct ata_channel *ch = device_get_softc(dev); + /* + * We need to do a 4-byte read on the status reg before the values + * will report correctly + */ + ATA_IDX_INL(ch,ATA_STATUS); return ata_pci_status(dev); @@ -193,14 +198,11 @@ ata_pci_hw(dev); ch->hw.tf_read = ata_serverworks_tf_read; ch->hw.tf_write = ata_serverworks_tf_write; + ch->hw.status = ata_serverworks_status; /* chip does not reliably do 64K DMA transfers */ ch->dma.max_iosize = 64 * DEV_BSIZE; - /* For K2, we need to do a 4-byte read on the status reg */ - if (ctlr->chip->chipid == ATA_K2) - ch->hw.status = ata_serverworks_k2status; - return 0; } From owner-p4-projects@FreeBSD.ORG Thu Feb 5 08:59:31 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id AD0121065678; Thu, 5 Feb 2009 08:59:30 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 669221065673 for ; Thu, 5 Feb 2009 08:59:30 +0000 (UTC) (envelope-from trasz@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 51B858FC23 for ; Thu, 5 Feb 2009 08:59:30 +0000 (UTC) (envelope-from trasz@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n158xUEb008252 for ; Thu, 5 Feb 2009 08:59:30 GMT (envelope-from trasz@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n158xTgf008250 for perforce@freebsd.org; Thu, 5 Feb 2009 08:59:29 GMT (envelope-from trasz@freebsd.org) Date: Thu, 5 Feb 2009 08:59:29 GMT Message-Id: <200902050859.n158xTgf008250@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to trasz@freebsd.org using -f From: Edward Tomasz Napierala To: Perforce Change Reviews Cc: Subject: PERFORCE change 157200 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 05 Feb 2009 08:59:32 -0000 http://perforce.freebsd.org/chv.cgi?CH=157200 Change 157200 by trasz@trasz_victim7 on 2009/02/05 08:58:45 IFC. Affected files ... .. //depot/projects/soc2008/trasz_nfs4acl/ObsoleteFiles.inc#17 integrate .. //depot/projects/soc2008/trasz_nfs4acl/UPDATING#18 integrate .. //depot/projects/soc2008/trasz_nfs4acl/bin/dd/dd.1#3 integrate .. //depot/projects/soc2008/trasz_nfs4acl/bin/pax/file_subs.c#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/contrib/opie/opiekey.1#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/etc/defaults/rc.conf#11 integrate .. //depot/projects/soc2008/trasz_nfs4acl/etc/network.subr#4 integrate .. //depot/projects/soc2008/trasz_nfs4acl/etc/rc.d/defaultroute#3 integrate .. //depot/projects/soc2008/trasz_nfs4acl/gnu/usr.bin/grep/savedir.c#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/include/paths.h#3 integrate .. //depot/projects/soc2008/trasz_nfs4acl/include/stdlib.h#3 integrate .. //depot/projects/soc2008/trasz_nfs4acl/include/string.h#3 integrate .. //depot/projects/soc2008/trasz_nfs4acl/include/wchar.h#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/lib/libarchive/archive_read_support_format_ar.c#5 integrate .. //depot/projects/soc2008/trasz_nfs4acl/lib/libc/db/man/dbm.3#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/lib/libc/sparc64/sys/__sparc_utrap.c#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/lib/libc/string/memccpy.c#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/lib/libc/string/memchr.c#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/lib/libc/string/memcmp.c#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/lib/libc/string/memmem.c#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/lib/libc/string/strcasecmp.c#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/lib/libc/string/strcasestr.c#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/lib/libc/string/strcmp.c#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/lib/libc/string/strcoll.c#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/lib/libc/string/strdup.c#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/lib/libc/string/strmode.c#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/lib/libc/string/strncmp.c#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/lib/libc/string/strncpy.c#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/lib/libc/string/strnstr.c#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/lib/libc/string/strpbrk.c#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/lib/libc/string/strsep.c#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/lib/libc/string/strstr.c#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/lib/libc/string/wcscat.c#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/lib/libc/string/wcscmp.c#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/lib/libc/string/wcscpy.c#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/lib/libc/string/wcscspn.c#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/lib/libc/string/wcslcat.c#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/lib/libc/string/wcslcpy.c#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/lib/libc/string/wcslen.c#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/lib/libc/string/wcsncat.c#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/lib/libc/string/wcsncmp.c#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/lib/libc/string/wcspbrk.c#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/lib/libc/string/wcsspn.c#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/lib/libc/string/wcsstr.c#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/lib/libc/string/wmemchr.c#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/lib/libc/string/wmemcmp.c#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/lib/libc/string/wmemcpy.c#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/lib/libc/string/wmemmove.c#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/lib/libc/string/wmemset.c#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/lib/libusbhid/Makefile#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/lib/libusbhid/descr.c#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/lib/libusbhid/descr_compat.c#1 branch .. //depot/projects/soc2008/trasz_nfs4acl/lib/libusbhid/usbhid.3#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/lib/libusbhid/usbhid.h#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/lib/libusbhid/usbvar.h#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/libexec/ftpd/ftpd.8#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sbin/fsck/fsck.8#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sbin/fsck/fsck.c#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sbin/fsck/fsutil.h#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sbin/fsck_ffs/fsck.h#3 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sbin/fsck_ffs/fsck_ffs.8#5 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sbin/fsck_ffs/fsutil.c#3 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sbin/fsck_ffs/inode.c#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sbin/fsck_ffs/main.c#6 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sbin/fsck_ffs/pass1.c#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sbin/fsck_ffs/setup.c#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sbin/geom/core/geom.c#3 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sbin/ifconfig/ifieee80211.c#10 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sbin/ipfw/Makefile#3 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sbin/ipfw/altq.c#1 branch .. //depot/projects/soc2008/trasz_nfs4acl/sbin/ipfw/dummynet.c#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sbin/ipfw/ipfw2.c#8 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sbin/ipfw/ipfw2.h#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sbin/ipfw/nat.c#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sbin/reboot/reboot.c#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/share/man/man4/ng_bpf.4#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/share/man/man7/Makefile#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/share/man/man7/adding_user.7#1 branch .. //depot/projects/soc2008/trasz_nfs4acl/share/man/man8/Makefile#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/share/man/man8/adding_user.8#2 delete .. //depot/projects/soc2008/trasz_nfs4acl/share/misc/committers-src.dot#11 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/amd64/amd64/cpu_switch.S#6 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/amd64/amd64/exception.S#6 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/amd64/amd64/machdep.c#5 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/amd64/amd64/mp_machdep.c#8 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/amd64/ia32/ia32_signal.c#4 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/amd64/ia32/ia32_sigtramp.S#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/amd64/include/cpufunc.h#3 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/amd64/include/intr_machdep.h#3 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/amd64/linux32/linux32_locore.s#3 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/amd64/linux32/linux32_sysvec.c#6 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/arm/arm/busdma_machdep.c#4 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/arm/arm/dump_machdep.c#5 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/arm/arm/elf_trampoline.c#5 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/arm/arm/pmap.c#6 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/arm/arm/vm_machdep.c#3 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/arm/conf/AVILA#8 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/arm/conf/AVILA.hints#3 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/arm/include/atomic.h#3 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/arm/sa11x0/assabet_machdep.c#3 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/arm/xscale/ixp425/avila_machdep.c#6 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/arm/xscale/ixp425/files.ixp425#4 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/arm/xscale/ixp425/ixp425.c#5 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/arm/xscale/ixp425/ixp425reg.h#4 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/boot/i386/pxeldr/pxeboot.8#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/cam/scsi/scsi_pass.c#5 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/compat/ndis/winx32_wrap.S#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/dev/adb/adb_mouse.c#5 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/dev/ae/if_ae.c#3 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/dev/an/if_an.c#3 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/dev/an/if_anreg.h#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/dev/ata/ata-disk.c#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/dev/ata/atapi-cam.c#3 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/dev/ata/atapi-cd.c#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/dev/ata/atapi-fd.c#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/dev/ata/atapi-tape.c#3 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/dev/ath/ath_hal/ah_regdomain.c#4 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/dev/ath/ath_hal/ar5212/ar5212.h#3 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/dev/ath/ath_hal/ar5212/ar5212_reset.c#3 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/dev/ath/ath_hal/ar5416/ar5416_cal.c#3 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/dev/bm/if_bm.c#6 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/dev/cardbus/cardbus.c#4 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/dev/cfi/cfi_bus_ixp4xx.c#1 branch .. //depot/projects/soc2008/trasz_nfs4acl/sys/dev/cfi/cfi_core.c#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/dev/cfi/cfi_dev.c#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/dev/firewire/firewire.c#4 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/dev/firewire/fwohci.c#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/dev/firewire/fwohci_pci.c#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/dev/firewire/fwohcivar.h#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/dev/firewire/sbp.c#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/dev/ichsmb/ichsmb.c#3 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/dev/ipmi/ipmi_acpi.c#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/dev/ipmi/ipmi_smbios.c#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/dev/kbdmux/kbdmux.c#4 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/dev/mmc/mmc.c#8 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/dev/mmc/mmcreg.h#5 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/dev/pccbb/pccbb.c#5 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/dev/pccbb/pccbb_pci.c#5 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/dev/pccbb/pccbbvar.h#3 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/dev/pci/pci_user.c#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/dev/pci/pcireg.h#5 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/dev/ppbus/ppbconf.h#6 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/dev/smbus/smb.c#3 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/dev/snp/snp.c#7 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/dev/sound/pci/hda/hdac.c#18 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/dev/usb2/bluetooth/ubtbcmfw2.c#5 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/dev/usb2/controller/at91dci_atmelarm.c#6 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/dev/usb2/controller/ehci2_pci.c#6 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/dev/usb2/controller/musb2_otg_atmelarm.c#6 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/dev/usb2/controller/ohci2_atmelarm.c#5 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/dev/usb2/controller/ohci2_pci.c#6 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/dev/usb2/controller/uhci2_pci.c#5 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/dev/usb2/controller/uss820dci_atmelarm.c#5 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/dev/usb2/core/usb2_compat_linux.c#4 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/dev/usb2/core/usb2_error.c#3 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/dev/usb2/core/usb2_hub.c#8 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/dev/usb2/core/usb2_process.c#3 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/dev/usb2/ethernet/if_aue2.c#6 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/dev/usb2/ethernet/if_axe2.c#6 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/dev/usb2/ethernet/if_cdce2.c#4 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/dev/usb2/ethernet/if_cue2.c#5 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/dev/usb2/ethernet/if_kue2.c#5 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/dev/usb2/ethernet/if_rue2.c#5 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/dev/usb2/ethernet/if_udav2.c#5 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/dev/usb2/include/usb2_error.h#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/dev/usb2/include/usb2_hid.h#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/dev/usb2/include/usb2_mfunc.h#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/dev/usb2/include/usb2_revision.h#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/dev/usb2/input/uhid2.c#4 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/dev/usb2/input/ukbd2.c#5 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/dev/usb2/misc/udbp2.c#3 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/dev/usb2/misc/ufm2.c#4 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/dev/usb2/quirk/usb2_quirk.c#5 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/dev/usb2/quirk/usb2_quirk.h#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/dev/usb2/serial/u3g2.c#5 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/dev/usb2/serial/uark2.c#5 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/dev/usb2/serial/ubsa2.c#6 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/dev/usb2/serial/ubser2.c#5 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/dev/usb2/serial/uchcom2.c#6 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/dev/usb2/serial/ucycom2.c#5 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/dev/usb2/serial/ufoma2.c#7 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/dev/usb2/serial/uftdi2.c#6 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/dev/usb2/serial/ugensa2.c#6 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/dev/usb2/serial/uipaq2.c#5 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/dev/usb2/serial/umct2.c#5 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/dev/usb2/serial/umodem2.c#5 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/dev/usb2/serial/umoscom2.c#5 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/dev/usb2/serial/uplcom2.c#6 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/dev/usb2/serial/uvisor2.c#5 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/dev/usb2/serial/uvscom2.c#7 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/dev/usb2/sound/uaudio2.c#6 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/dev/usb2/storage/ata-usb2.c#5 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/dev/usb2/storage/umass2.c#7 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/dev/usb2/storage/urio2.c#5 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/dev/usb2/storage/ustorage2_fs.c#4 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/dev/usb2/wlan/if_rum2.c#5 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/dev/usb2/wlan/if_ural2.c#6 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/dev/usb2/wlan/if_zyd2.c#6 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/dev/xen/netback/netback.c#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/dev/xen/netfront/netfront.c#5 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/fs/coda/coda_vfsops.c#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/fs/devfs/devfs_vnops.c#10 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/fs/hpfs/hpfs_vfsops.c#4 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/fs/nullfs/null_vnops.c#7 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/fs/nwfs/nwfs_subr.c#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/fs/nwfs/nwfs_vnops.c#6 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/fs/smbfs/smbfs_vnops.c#6 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/fs/tmpfs/tmpfs_subr.c#5 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/fs/udf/udf_vnops.c#7 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/geom/geom.h#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/geom/geom_subr.c#5 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/i386/i386/locore.s#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/i386/i386/swtch.s#3 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/i386/include/cpufunc.h#4 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/i386/linux/linux_locore.s#3 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/i386/svr4/svr4_locore.s#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/i386/xen/clock.c#5 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/i386/xen/mp_machdep.c#7 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/i386/xen/xen_machdep.c#9 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/ia64/ia64/mca.c#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/ia64/include/mca.h#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/kern/subr_autoconf.c#4 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/kern/subr_bus.c#7 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/kern/subr_clist.c#4 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/kern/subr_devstat.c#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/kern/subr_disk.c#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/kern/subr_firmware.c#4 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/kern/subr_kobj.c#3 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/kern/subr_prf.c#6 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/kern/subr_prof.c#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/kern/subr_rman.c#5 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/kern/subr_rtc.c#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/kern/subr_taskqueue.c#3 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/kern/subr_witness.c#12 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/kern/sys_generic.c#4 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/kern/tty.c#15 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/kern/tty_inq.c#3 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/kern/tty_outq.c#3 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/kern/uipc_socket.c#11 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/net/if_ethersubr.c#9 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/net/if_llatbl.c#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/net80211/ieee80211.c#9 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/net80211/ieee80211_node.c#12 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/net80211/ieee80211_scan_sta.c#8 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/net80211/ieee80211_tdma.c#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/netatalk/ddp_usrreq.c#3 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/netgraph/bluetooth/socket/ng_btsocket_l2cap_raw.c#4 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/netinet/ip_divert.c#9 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/netinet/ip_ipsec.c#5 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/netinet/ip_output.c#7 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/netinet/sctp_auth.c#4 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/netinet/sctp_constants.h#7 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/netinet/sctp_crc32.c#3 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/netinet/sctp_crc32.h#3 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/netinet/sctp_input.c#8 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/netinet/sctp_os_bsd.h#10 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/netinet/sctp_output.c#11 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/netinet/sctp_pcb.c#11 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/netinet/sctp_pcb.h#8 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/netinet/sctp_sysctl.c#6 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/netinet/sctp_uio.h#7 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/netinet/sctp_usrreq.c#9 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/netinet/sctputil.c#11 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/netinet/sctputil.h#5 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/netinet6/frag6.c#8 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/netinet6/in6.c#13 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/netinet6/in6_gif.c#6 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/netinet6/in6_ifattach.c#9 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/netinet6/ip6_forward.c#7 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/netinet6/ip6_input.c#11 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/netinet6/ip6_var.h#7 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/netinet6/nd6.c#7 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/netinet6/nd6_nbr.c#8 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/netinet6/nd6_rtr.c#7 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/netinet6/sctp6_usrreq.c#6 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/netinet6/vinet6.h#5 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/netipsec/ipsec_output.c#6 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/security/audit/audit_pipe.c#8 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/sys/_null.h#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/sys/cdefs.h#3 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/sys/clist.h#4 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/sys/conf.h#9 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/sys/elf_common.h#6 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/sys/kobj.h#3 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/sys/malloc.h#4 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/sys/pciio.h#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/sys/sysctl.h#8 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/sys/ttyqueue.h#4 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/sys/unistd.h#4 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/ufs/ffs/ffs_vfsops.c#17 integrate .. //depot/projects/soc2008/trasz_nfs4acl/tools/regression/lib/libc/stdio/test-printfloat.c#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/tools/regression/lib/msun/Makefile#4 integrate .. //depot/projects/soc2008/trasz_nfs4acl/tools/regression/lib/msun/test-conj.c#1 branch .. //depot/projects/soc2008/trasz_nfs4acl/tools/regression/lib/msun/test-conj.t#1 branch .. //depot/projects/soc2008/trasz_nfs4acl/tools/tools/ath/athrd/athrd.1#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/tools/tools/ath/athrd/athrd.c#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/tools/tools/ath/athstats/Makefile#5 integrate .. //depot/projects/soc2008/trasz_nfs4acl/tools/tools/sysbuild/sysbuild.sh#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/usr.bin/basename/basename.1#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/usr.bin/bluetooth/rfcomm_sppd/rfcomm_sppd.c#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/usr.bin/dirname/dirname.c#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/usr.bin/make/job.c#8 integrate .. //depot/projects/soc2008/trasz_nfs4acl/usr.bin/make/main.c#7 integrate .. //depot/projects/soc2008/trasz_nfs4acl/usr.bin/netstat/inet6.c#4 integrate .. //depot/projects/soc2008/trasz_nfs4acl/usr.bin/sockstat/sockstat.c#3 integrate .. //depot/projects/soc2008/trasz_nfs4acl/usr.bin/usbhidaction/usbhidaction.c#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/usr.bin/usbhidctl/usbhid.c#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/usr.sbin/bluetooth/Makefile#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/usr.sbin/bluetooth/btpand/Makefile#1 branch .. //depot/projects/soc2008/trasz_nfs4acl/usr.sbin/bluetooth/btpand/bnep.c#1 branch .. //depot/projects/soc2008/trasz_nfs4acl/usr.sbin/bluetooth/btpand/bnep.h#1 branch .. //depot/projects/soc2008/trasz_nfs4acl/usr.sbin/bluetooth/btpand/btpand.8#1 branch .. //depot/projects/soc2008/trasz_nfs4acl/usr.sbin/bluetooth/btpand/btpand.c#1 branch .. //depot/projects/soc2008/trasz_nfs4acl/usr.sbin/bluetooth/btpand/btpand.h#1 branch .. //depot/projects/soc2008/trasz_nfs4acl/usr.sbin/bluetooth/btpand/channel.c#1 branch .. //depot/projects/soc2008/trasz_nfs4acl/usr.sbin/bluetooth/btpand/client.c#1 branch .. //depot/projects/soc2008/trasz_nfs4acl/usr.sbin/bluetooth/btpand/event.c#1 branch .. //depot/projects/soc2008/trasz_nfs4acl/usr.sbin/bluetooth/btpand/event.h#1 branch .. //depot/projects/soc2008/trasz_nfs4acl/usr.sbin/bluetooth/btpand/packet.c#1 branch .. //depot/projects/soc2008/trasz_nfs4acl/usr.sbin/bluetooth/btpand/sdp.c#1 branch .. //depot/projects/soc2008/trasz_nfs4acl/usr.sbin/bluetooth/btpand/sdp.h#1 branch .. //depot/projects/soc2008/trasz_nfs4acl/usr.sbin/bluetooth/btpand/server.c#1 branch .. //depot/projects/soc2008/trasz_nfs4acl/usr.sbin/bluetooth/btpand/tap.c#1 branch .. //depot/projects/soc2008/trasz_nfs4acl/usr.sbin/bluetooth/hcsecd/hcsecd.c#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/usr.sbin/bluetooth/hcseriald/hcseriald.c#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/usr.sbin/bluetooth/rfcomm_pppd/rfcomm_pppd.c#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/usr.sbin/crunch/crunchgen/crunchgen.c#3 integrate .. //depot/projects/soc2008/trasz_nfs4acl/usr.sbin/fifolog/lib/fifolog_reader.c#3 integrate .. //depot/projects/soc2008/trasz_nfs4acl/usr.sbin/fifolog/lib/fifolog_write_poll.c#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/usr.sbin/fwcontrol/fwdv.c#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/usr.sbin/fwcontrol/fwmpegts.c#3 integrate .. //depot/projects/soc2008/trasz_nfs4acl/usr.sbin/gssd/gssd.8#3 integrate .. //depot/projects/soc2008/trasz_nfs4acl/usr.sbin/mtree/create.c#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/usr.sbin/mtree/mtree.5#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/usr.sbin/mtree/mtree.8#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/usr.sbin/mtree/spec.c#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/usr.sbin/pciconf/pciconf.8#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/usr.sbin/pciconf/pciconf.c#5 integrate Differences ... ==== //depot/projects/soc2008/trasz_nfs4acl/ObsoleteFiles.inc#17 (text+ko) ==== @@ -1,5 +1,5 @@ # -# $FreeBSD: src/ObsoleteFiles.inc,v 1.167 2009/01/25 19:03:30 antoine Exp $ +# $FreeBSD: src/ObsoleteFiles.inc,v 1.168 2009/02/03 20:46:05 gabor 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,8 @@ # The file is partitioned: OLD_FILES first, then OLD_LIBS and OLD_DIRS last. # +# 20090203: adding_user.8 moved to adding_user.7 +OLD_FILES+=usr/share/man/man8/adding_user.8.gz # 20090122: tzdata2009a import OLD_FILES+=usr/share/zoneinfo/Asia/Katmandu # 20090102: file 4.26 import ==== //depot/projects/soc2008/trasz_nfs4acl/UPDATING#18 (text+ko) ==== @@ -22,6 +22,10 @@ to maximize performance. (To disable malloc debugging, run ln -s aj /etc/malloc.conf.) +20090201: + INET6 statistics (struct ip6stat) was updated. + netstat(1) needs to be recompiled. + 20090119: NTFS has been removed from GENERIC kernel on amd64 to match GENERIC on i386. Should not cause any issues since mount_ntfs(8) @@ -1215,4 +1219,4 @@ Contact Warner Losh if you have any questions about your use of this document. -$FreeBSD: src/UPDATING,v 1.559 2009/01/19 17:00:42 sobomax Exp $ +$FreeBSD: src/UPDATING,v 1.560 2009/02/01 21:11:08 bz Exp $ ==== //depot/projects/soc2008/trasz_nfs4acl/bin/dd/dd.1#3 (text+ko) ==== @@ -30,9 +30,9 @@ .\" SUCH DAMAGE. .\" .\" @(#)dd.1 8.2 (Berkeley) 1/13/94 -.\" $FreeBSD: src/bin/dd/dd.1,v 1.32 2009/01/23 03:46:44 keramida Exp $ +.\" $FreeBSD: src/bin/dd/dd.1,v 1.33 2009/01/30 16:23:57 keramida Exp $ .\" -.Dd August 15, 2004 +.Dd January 23, 2009 .Dt DD 1 .Os .Sh NAME ==== //depot/projects/soc2008/trasz_nfs4acl/bin/pax/file_subs.c#2 (text+ko) ==== @@ -37,7 +37,7 @@ #endif #endif /* not lint */ #include -__FBSDID("$FreeBSD: src/bin/pax/file_subs.c,v 1.22 2007/05/24 06:44:37 rse Exp $"); +__FBSDID("$FreeBSD: src/bin/pax/file_subs.c,v 1.23 2009/02/01 06:15:46 kientzle Exp $"); #include #include @@ -425,19 +425,11 @@ * we were able to create the node. set uid/gid, modes and times */ if (pids) - res = ((arcn->type == PAX_SLK) ? - set_lids(arcn->name, arcn->sb.st_uid, arcn->sb.st_gid) : - set_ids(arcn->name, arcn->sb.st_uid, arcn->sb.st_gid)); + res = set_ids(arcn->name, arcn->sb.st_uid, arcn->sb.st_gid); else res = 0; /* - * symlinks are done now. - */ - if (arcn->type == PAX_SLK) - return(0); - - /* * IMPORTANT SECURITY NOTE: * if not preserving mode or we cannot set uid/gid, then PROHIBIT any * set uid/gid bits @@ -632,7 +624,7 @@ * used by -t to reset access times). * When ign is zero, only those times the user has asked for are set, the * other ones are left alone. We do not assume the un-documented feature - * of many utimes() implementations that consider a 0 time value as a do + * of many lutimes() implementations that consider a 0 time value as a do * not set request. */ @@ -661,7 +653,7 @@ /* * set the times */ - if (utimes(fnm, tv) < 0) + if (lutimes(fnm, tv) < 0) syswarn(1, errno, "Access/modification time set failed on: %s", fnm); return; @@ -677,30 +669,6 @@ int set_ids(char *fnm, uid_t uid, gid_t gid) { - if (chown(fnm, uid, gid) < 0) { - /* - * ignore EPERM unless in verbose mode or being run by root. - * if running as pax, POSIX requires a warning. - */ - if (strcmp(NM_PAX, argv0) == 0 || errno != EPERM || vflag || - geteuid() == 0) - syswarn(1, errno, "Unable to set file uid/gid of %s", - fnm); - return(-1); - } - return(0); -} - -/* - * set_lids() - * set the uid and gid of a file system node - * Return: - * 0 when set, -1 on failure - */ - -int -set_lids(char *fnm, uid_t uid, gid_t gid) -{ if (lchown(fnm, uid, gid) < 0) { /* * ignore EPERM unless in verbose mode or being run by root. @@ -724,7 +692,7 @@ set_pmode(char *fnm, mode_t mode) { mode &= ABITS; - if (chmod(fnm, mode) < 0) + if (lchmod(fnm, mode) < 0) syswarn(1, errno, "Could not set permissions on %s", fnm); return; } ==== //depot/projects/soc2008/trasz_nfs4acl/contrib/opie/opiekey.1#2 (text+ko) ==== @@ -25,7 +25,7 @@ .\" Written at Bellcore for the S/Key Version 1 software distribution .\" (key.1). .\" -.\" $FreeBSD: src/contrib/opie/opiekey.1,v 1.6 2002/03/21 23:42:52 markm Exp $ +.\" $FreeBSD: src/contrib/opie/opiekey.1,v 1.7 2009/01/30 15:43:55 gabor Exp $ .ll 6i .pl 10.5i .lt 6.0i @@ -157,8 +157,7 @@ .BR opieinfo (1), .BR opiekeys (5), .BR opieaccess (5), -.BR opiegen (1) -.BR su (1), +.BR su (1) .SH AUTHOR Bellcore's S/Key was written by Phil Karn, Neil M. Haller, and John S. Walden ==== //depot/projects/soc2008/trasz_nfs4acl/etc/defaults/rc.conf#11 (text+ko) ==== @@ -15,7 +15,7 @@ # For a more detailed explanation of all the rc.conf variables, please # refer to the rc.conf(5) manual page. # -# $FreeBSD: src/etc/defaults/rc.conf,v 1.349 2009/01/26 12:59:11 bz Exp $ +# $FreeBSD: src/etc/defaults/rc.conf,v 1.350 2009/02/02 15:38:24 mtm Exp $ ############################################################## ### Important initial Boot-time options #################### @@ -101,7 +101,7 @@ dhclient_program="/sbin/dhclient" # Path to dhcp client program. dhclient_flags="" # Extra flags to pass to dhcp client. #dhclient_flags_fxp0="" # Extra dhclient flags for fxp0 only -background_dhclient="NO" # Start dhcp client in the background. +background_dhclient="YES" # Start dhcp client in the background. #background_dhclient_fxp0="YES" # Start dhcp client on fxp0 in the background. synchronous_dhclient="NO" # Start dhclient directly on configured # interfaces during startup. ==== //depot/projects/soc2008/trasz_nfs4acl/etc/network.subr#4 (text+ko) ==== @@ -22,7 +22,7 @@ # OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF # SUCH DAMAGE. # -# $FreeBSD: src/etc/network.subr,v 1.191 2008/10/01 18:46:46 brooks Exp $ +# $FreeBSD: src/etc/network.subr,v 1.192 2009/02/04 18:20:27 thompsa Exp $ # # @@ -515,7 +515,9 @@ i=`ifconfig wlan create ${create_args}` ifconfig $i name $child && cfg=0 fi - ifn_start $child + if autoif $child; then + ifn_start $child + fi done return ${cfg} ==== //depot/projects/soc2008/trasz_nfs4acl/etc/rc.d/defaultroute#3 (text+ko) ==== @@ -2,7 +2,7 @@ # # Wait for the default route to be up # -# $FreeBSD: src/etc/rc.d/defaultroute,v 1.2 2008/12/17 17:35:26 svn Exp $ +# $FreeBSD: src/etc/rc.d/defaultroute,v 1.4 2009/02/02 15:33:22 mtm Exp $ # # PROVIDE: defaultroute @@ -18,11 +18,21 @@ defaultroute_start() { - # Return without waiting if we don't have dhcp interfaces. - # Once we can test that the link is actually up, we should - # remove this test and always wait. + local output carrier nocarrier + + # Return without waiting if we don't have dhcp interfaces or + # if none of the dhcp interfaces is plugged in. dhcp_interfaces=`list_net_interfaces dhcp` - [ -z "`list_net_interfaces dhcp`" ] && return + [ -z "${dhcp_interfaces}" ] && return + carrier=false + for _if in ${dhcp_interfaces}; do + output=`/sbin/ifconfig ${_if}` + nocarrier=`expr "${output}" : '.*[[:blank:]]status: \(no carrier\)'` + [ -z "${nocarrier}" ] && carrier=true + done + if ! ${carrier}; then + return + fi # Wait for a default route delay=${if_up_delay} ==== //depot/projects/soc2008/trasz_nfs4acl/gnu/usr.bin/grep/savedir.c#2 (text+ko) ==== @@ -17,6 +17,9 @@ /* Written by David MacKenzie . */ +#include +__FBSDID("$FreeBSD: src/gnu/usr.bin/grep/savedir.c,v 1.2 2009/01/30 00:22:08 obrien Exp $"); + #if HAVE_CONFIG_H # include #endif @@ -137,10 +140,10 @@ && !isdir1 (dir, dp->d_name)) { if (included_patterns - && !excluded_filename (included_patterns, dp->d_name, 0)) + && !excluded_filename (included_patterns, path, 0)) continue; if (excluded_patterns - && excluded_filename (excluded_patterns, dp->d_name, 0)) + && excluded_filename (excluded_patterns, path, 0)) continue; } ==== //depot/projects/soc2008/trasz_nfs4acl/include/paths.h#3 (text+ko) ==== @@ -31,7 +31,7 @@ * SUCH DAMAGE. * * @(#)paths.h 8.1 (Berkeley) 6/2/93 - * $FreeBSD: src/include/paths.h,v 1.27 2009/01/26 17:09:26 obrien Exp $ + * $FreeBSD: src/include/paths.h,v 1.28 2009/02/01 00:50:46 obrien Exp $ */ #ifndef _PATHS_H_ @@ -42,10 +42,9 @@ /* Default search path. */ #define _PATH_DEFPATH "/usr/bin:/bin" /* All standard utilities path. */ -#define _PATH_STDPATH \ - "/usr/bin:/bin:/usr/sbin:/sbin:" -/* Locate system binaries */ -#define _PATH_SYSPATH "/sbin:/usr/sbin" +#define _PATH_STDPATH "/usr/bin:/bin:/usr/sbin:/sbin:" +/* Locate system binaries. */ +#define _PATH_SYSPATH "/sbin:/usr/sbin" #define _PATH_AUTHCONF "/etc/auth.conf" #define _PATH_BSHELL "/bin/sh" ==== //depot/projects/soc2008/trasz_nfs4acl/include/stdlib.h#3 (text+ko) ==== @@ -31,7 +31,7 @@ * SUCH DAMAGE. * * @(#)stdlib.h 8.5 (Berkeley) 5/19/95 - * $FreeBSD: src/include/stdlib.h,v 1.67 2008/07/22 11:40:42 ache Exp $ + * $FreeBSD: src/include/stdlib.h,v 1.68 2009/01/31 18:27:02 das Exp $ */ #ifndef _STDLIB_H_ @@ -88,14 +88,14 @@ long atol(const char *); void *bsearch(const void *, const void *, size_t, size_t, int (*)(const void *, const void *)); -void *calloc(size_t, size_t); +void *calloc(size_t, size_t) __malloc_like; div_t div(int, int) __pure2; void exit(int) __dead2; void free(void *); char *getenv(const char *); long labs(long) __pure2; ldiv_t ldiv(long, long) __pure2; -void *malloc(size_t); +void *malloc(size_t) __malloc_like; int mblen(const char *, size_t); size_t mbstowcs(wchar_t * __restrict , const char * __restrict, size_t); int mbtowc(wchar_t * __restrict, const char * __restrict, size_t); ==== //depot/projects/soc2008/trasz_nfs4acl/include/string.h#3 (text+ko) ==== @@ -31,7 +31,7 @@ * SUCH DAMAGE. * * @(#)string.h 8.1 (Berkeley) 6/2/93 - * $FreeBSD: src/include/string.h,v 1.27 2008/12/08 21:04:24 kib Exp $ + * $FreeBSD: src/include/string.h,v 1.28 2009/01/31 18:27:02 das Exp $ */ #ifndef _STRING_H_ @@ -78,7 +78,7 @@ char *strcpy(char * __restrict, const char * __restrict); size_t strcspn(const char *, const char *) __pure; #if __POSIX_VISIBLE >= 200112 || __XSI_VISIBLE -char *strdup(const char *); +char *strdup(const char *) __malloc_like; #endif char *strerror(int); #if __POSIX_VISIBLE >= 200112 @@ -96,7 +96,7 @@ int strncmp(const char *, const char *, size_t) __pure; char *strncpy(char * __restrict, const char * __restrict, size_t); #if __BSD_VISIBLE -char *strndup(const char *, size_t); +char *strndup(const char *, size_t) __malloc_like; char *strnstr(const char *, const char *, size_t) __pure; #endif char *strpbrk(const char *, const char *) __pure; ==== //depot/projects/soc2008/trasz_nfs4acl/include/wchar.h#2 (text+ko) ==== @@ -23,7 +23,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/include/wchar.h,v 1.46 2005/08/13 05:54:33 tjr Exp $ + * $FreeBSD: src/include/wchar.h,v 1.47 2009/01/31 18:27:02 das Exp $ */ /*- @@ -214,7 +214,7 @@ wchar_t *fgetwln(struct __sFILE * __restrict, size_t * __restrict); size_t mbsnrtowcs(wchar_t * __restrict, const char ** __restrict, size_t, size_t, mbstate_t * __restrict); -wchar_t *wcsdup(const wchar_t *); +wchar_t *wcsdup(const wchar_t *) __malloc_like; size_t wcsnrtombs(char * __restrict, const wchar_t ** __restrict, size_t, size_t, mbstate_t * __restrict); size_t wcslcat(wchar_t *, const wchar_t *, size_t); ==== //depot/projects/soc2008/trasz_nfs4acl/lib/libarchive/archive_read_support_format_ar.c#5 (text+ko) ==== @@ -26,7 +26,7 @@ */ #include "archive_platform.h" -__FBSDID("$FreeBSD: src/lib/libarchive/archive_read_support_format_ar.c,v 1.12 2008/12/17 19:02:42 kientzle Exp $"); +__FBSDID("$FreeBSD: src/lib/libarchive/archive_read_support_format_ar.c,v 1.13 2009/02/01 02:33:02 kientzle Exp $"); #ifdef HAVE_SYS_STAT_H #include @@ -511,11 +511,10 @@ } } /* - * Sanity check, last two chars must be `/\n' or '\n\n', - * depending on whether the string table is padded by a '\n' - * (string table produced by GNU ar always has a even size). + * GNU ar always pads the table to an even size. + * The pad character is either '\n' or '`'. */ - if (p != ar->strtab + size && *p != '\n') + if (p != ar->strtab + size && *p != '\n' && *p != '`') goto bad_string_table; /* Enforce zero termination. */ ==== //depot/projects/soc2008/trasz_nfs4acl/lib/libc/db/man/dbm.3#2 (text+ko) ==== @@ -13,10 +13,8 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.\" $FreeBSD: src/lib/libc/db/man/dbm.3,v 1.9 2006/04/16 16:33:26 maxim Exp $ +.\" $FreeBSD: src/lib/libc/db/man/dbm.3,v 1.10 2009/01/30 15:28:35 gabor Exp $ .\" -.\" Note: The date here should be updated whenever a non-trivial -.\" change is made to the manual page. .Dd April 16, 2006 .Dt DBM 3 .Os ==== //depot/projects/soc2008/trasz_nfs4acl/lib/libc/sparc64/sys/__sparc_utrap.c#2 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include -__FBSDID("$FreeBSD: src/lib/libc/sparc64/sys/__sparc_utrap.c,v 1.6 2004/01/19 16:14:58 nectar Exp $"); +__FBSDID("$FreeBSD: src/lib/libc/sparc64/sys/__sparc_utrap.c,v 1.7 2009/02/02 21:51:52 rdivacky Exp $"); #include @@ -122,7 +122,7 @@ } void -__utrap_kill_self(sig) +__utrap_kill_self(int sig) { int berrno; ==== //depot/projects/soc2008/trasz_nfs4acl/lib/libc/string/memccpy.c#2 (text+ko) ==== @@ -31,16 +31,12 @@ static char sccsid[] = "@(#)memccpy.c 8.1 (Berkeley) 6/4/93"; #endif /* LIBC_SCCS and not lint */ #include -__FBSDID("$FreeBSD: src/lib/libc/string/memccpy.c,v 1.6 2007/01/09 00:28:12 imp Exp $"); +__FBSDID("$FreeBSD: src/lib/libc/string/memccpy.c,v 1.7 2009/02/03 17:58:20 danger Exp $"); #include void * -memccpy(t, f, c, n) - void *t; - const void *f; - int c; - size_t n; +memccpy(void *t, const void *f, int c, size_t n) { if (n) { ==== //depot/projects/soc2008/trasz_nfs4acl/lib/libc/string/memchr.c#2 (text+ko) ==== @@ -34,15 +34,12 @@ static char sccsid[] = "@(#)memchr.c 8.1 (Berkeley) 6/4/93"; #endif /* LIBC_SCCS and not lint */ #include -__FBSDID("$FreeBSD: src/lib/libc/string/memchr.c,v 1.5 2007/01/09 00:28:12 imp Exp $"); +__FBSDID("$FreeBSD: src/lib/libc/string/memchr.c,v 1.7 2009/02/03 20:25:36 imp Exp $"); #include void * -memchr(s, c, n) - const void *s; - unsigned char c; - size_t n; +memchr(const void *s, int c, size_t n) { if (n != 0) { const unsigned char *p = s; ==== //depot/projects/soc2008/trasz_nfs4acl/lib/libc/string/memcmp.c#2 (text+ko) ==== @@ -34,7 +34,7 @@ static char sccsid[] = "@(#)memcmp.c 8.1 (Berkeley) 6/4/93"; #endif /* LIBC_SCCS and not lint */ #include -__FBSDID("$FreeBSD: src/lib/libc/string/memcmp.c,v 1.5 2007/01/09 00:28:12 imp Exp $"); +__FBSDID("$FreeBSD: src/lib/libc/string/memcmp.c,v 1.6 2009/02/03 17:58:20 danger Exp $"); #include @@ -42,9 +42,7 @@ * Compare memory regions. */ int -memcmp(s1, s2, n) - const void *s1, *s2; - size_t n; +memcmp(const void *s1, const void *s2, size_t n) { if (n != 0) { const unsigned char *p1 = s1, *p2 = s2; ==== //depot/projects/soc2008/trasz_nfs4acl/lib/libc/string/memmem.c#2 (text+ko) ==== @@ -27,7 +27,7 @@ */ #include -__FBSDID("$FreeBSD: src/lib/libc/string/memmem.c,v 1.1 2005/08/25 18:26:58 andre Exp $"); +__FBSDID("$FreeBSD: src/lib/libc/string/memmem.c,v 1.2 2009/02/03 17:58:20 danger Exp $"); #include @@ -36,9 +36,7 @@ */ void * -memmem(l, l_len, s, s_len) - const void *l; size_t l_len; - const void *s; size_t s_len; +memmem(const void *l, size_t l_len, const void *s, size_t s_len) { register char *cur, *last; const char *cl = (const char *)l; ==== //depot/projects/soc2008/trasz_nfs4acl/lib/libc/string/strcasecmp.c#2 (text+ko) ==== @@ -31,7 +31,7 @@ static char sccsid[] = "@(#)strcasecmp.c 8.1 (Berkeley) 6/4/93"; #endif /* LIBC_SCCS and not lint */ #include -__FBSDID("$FreeBSD: src/lib/libc/string/strcasecmp.c,v 1.7 2007/01/09 00:28:12 imp Exp $"); +__FBSDID("$FreeBSD: src/lib/libc/string/strcasecmp.c,v 1.8 2009/02/03 17:58:20 danger Exp $"); #include #include @@ -39,8 +39,7 @@ typedef unsigned char u_char; int -strcasecmp(s1, s2) - const char *s1, *s2; +strcasecmp(const char *s1, const char *s2) { const u_char *us1 = (const u_char *)s1, @@ -53,9 +52,7 @@ } int -strncasecmp(s1, s2, n) - const char *s1, *s2; - size_t n; +strncasecmp(const char *s1, const char *s2, size_t n) { if (n != 0) { const u_char ==== //depot/projects/soc2008/trasz_nfs4acl/lib/libc/string/strcasestr.c#2 (text+ko) ==== @@ -31,7 +31,7 @@ */ #include -__FBSDID("$FreeBSD: src/lib/libc/string/strcasestr.c,v 1.4 2007/01/09 00:28:12 imp Exp $"); +__FBSDID("$FreeBSD: src/lib/libc/string/strcasestr.c,v 1.5 2009/02/03 17:58:20 danger Exp $"); #include #include @@ -40,8 +40,7 @@ * Find the first occurrence of find in s, ignore case. */ char * -strcasestr(s, find) - const char *s, *find; +strcasestr(const char *s, const char *find) { char c, sc; size_t len; ==== //depot/projects/soc2008/trasz_nfs4acl/lib/libc/string/strcmp.c#2 (text+ko) ==== @@ -34,7 +34,7 @@ static char sccsid[] = "@(#)strcmp.c 8.1 (Berkeley) 6/4/93"; #endif /* LIBC_SCCS and not lint */ #include -__FBSDID("$FreeBSD: src/lib/libc/string/strcmp.c,v 1.6 2007/01/09 00:28:12 imp Exp $"); +__FBSDID("$FreeBSD: src/lib/libc/string/strcmp.c,v 1.7 2009/02/03 17:58:20 danger Exp $"); #include @@ -42,11 +42,10 @@ * Compare strings. */ int -strcmp(s1, s2) - const char *s1, *s2; +strcmp(const char *s1, const char *s2) { while (*s1 == *s2++) - if (*s1++ == 0) + if (*s1++ == '\0') return (0); return (*(const unsigned char *)s1 - *(const unsigned char *)(s2 - 1)); } ==== //depot/projects/soc2008/trasz_nfs4acl/lib/libc/string/strcoll.c#2 (text+ko) ==== @@ -26,15 +26,14 @@ */ #include -__FBSDID("$FreeBSD: src/lib/libc/string/strcoll.c,v 1.13 2001/11/07 19:55:16 obrien Exp $"); +__FBSDID("$FreeBSD: src/lib/libc/string/strcoll.c,v 1.14 2009/02/03 17:58:20 danger Exp $"); #include #include #include "collate.h" int -strcoll(s, s2) - const char *s, *s2; +strcoll(const char *s, const char *s2) { int len, len2, prim, prim2, sec, sec2, ret, ret2; const char *t, *t2; ==== //depot/projects/soc2008/trasz_nfs4acl/lib/libc/string/strdup.c#2 (text+ko) ==== @@ -31,15 +31,14 @@ static char sccsid[] = "@(#)strdup.c 8.1 (Berkeley) 6/4/93"; #endif /* LIBC_SCCS and not lint */ #include -__FBSDID("$FreeBSD: src/lib/libc/string/strdup.c,v 1.5 2007/01/09 00:28:12 imp Exp $"); +__FBSDID("$FreeBSD: src/lib/libc/string/strdup.c,v 1.6 2009/02/03 17:58:20 danger Exp $"); #include #include #include char * -strdup(str) - const char *str; +strdup(const char *str) { >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Thu Feb 5 09:02:34 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id DA7181065670; Thu, 5 Feb 2009 09:02:33 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 9B239106566B for ; Thu, 5 Feb 2009 09:02:33 +0000 (UTC) (envelope-from trasz@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 894B48FC0A for ; Thu, 5 Feb 2009 09:02:33 +0000 (UTC) (envelope-from trasz@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n1592XXi008501 for ; Thu, 5 Feb 2009 09:02:33 GMT (envelope-from trasz@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n1592XMX008499 for perforce@freebsd.org; Thu, 5 Feb 2009 09:02:33 GMT (envelope-from trasz@freebsd.org) Date: Thu, 5 Feb 2009 09:02:33 GMT Message-Id: <200902050902.n1592XMX008499@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to trasz@freebsd.org using -f From: Edward Tomasz Napierala To: Perforce Change Reviews Cc: Subject: PERFORCE change 157201 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 05 Feb 2009 09:02:34 -0000 http://perforce.freebsd.org/chv.cgi?CH=157201 Change 157201 by trasz@trasz_victim7 on 2009/02/05 09:01:44 IFC. Affected files ... .. //depot/projects/soc2008/trasz_nfs4acl/sys/kern/vfs_syscalls.c#16 integrate Differences ... ==== //depot/projects/soc2008/trasz_nfs4acl/sys/kern/vfs_syscalls.c#16 (text+ko) ==== @@ -35,7 +35,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/kern/vfs_syscalls.c,v 1.469 2009/01/23 22:13:30 jhb Exp $"); +__FBSDID("$FreeBSD: src/sys/kern/vfs_syscalls.c,v 1.470 2009/02/05 08:46:18 trasz Exp $"); #include "opt_compat.h" #include "opt_kdtrace.h" @@ -395,14 +395,16 @@ vfs_ref(mp); VOP_UNLOCK(vp, 0); fdrop(fp, td); - if (vp->v_iflag & VI_DOOMED) { + if (mp == NULL) { error = EBADF; goto out; } error = vfs_busy(mp, 0); vfs_rel(mp); - if (error) - goto out; + if (error) { + VFS_UNLOCK_GIANT(vfslocked); + return (error); + } #ifdef MAC error = mac_mount_check_stat(td->td_ucred, mp); if (error) From owner-p4-projects@FreeBSD.ORG Thu Feb 5 09:26:59 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 82B361065696; Thu, 5 Feb 2009 09:26:59 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 3CF5C106568D for ; Thu, 5 Feb 2009 09:26:59 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 29C5D8FC22 for ; Thu, 5 Feb 2009 09:26:59 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n159QxHq012664 for ; Thu, 5 Feb 2009 09:26:59 GMT (envelope-from hselasky@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n159QxeX012662 for perforce@freebsd.org; Thu, 5 Feb 2009 09:26:59 GMT (envelope-from hselasky@FreeBSD.org) Date: Thu, 5 Feb 2009 09:26:59 GMT Message-Id: <200902050926.n159QxeX012662@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky To: Perforce Change Reviews Cc: Subject: PERFORCE change 157203 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 05 Feb 2009 09:27:01 -0000 http://perforce.freebsd.org/chv.cgi?CH=157203 Change 157203 by hselasky@hselasky_laptop001 on 2009/02/05 09:26:14 USB2 mass storage: Remove CAM layer quirks. According to Edward Tomasz, trasz, the issues being worked around have been resolved. Affected files ... .. //depot/projects/usb/src/sys/dev/usb2/storage/umass2.c#27 edit Differences ... ==== //depot/projects/usb/src/sys/dev/usb2/storage/umass2.c#27 (text+ko) ==== @@ -168,7 +168,6 @@ #endif #define UMASS_GONE ((struct umass_softc *)1) -#define UMASS_MAXUNIT 64 /* XXX temporary */ #define UMASS_BULK_SIZE (1 << 17) #define UMASS_CBI_DIAGNOSTIC_CMDLEN 12 /* bytes */ @@ -1044,7 +1043,6 @@ static uint8_t umass_no_transform(struct umass_softc *, uint8_t *, uint8_t); static uint8_t umass_std_transform(struct umass_softc *, union ccb *, uint8_t *, uint8_t); -static int umass_driver_loaded(struct module *, int what, void *); #if USB_DEBUG static void umass_bbb_dump_cbw(struct umass_softc *, umass_bbb_cbw_t *); @@ -1267,9 +1265,6 @@ #define UFI_COMMAND_LENGTH 12 /* UFI commands are always 12 bytes */ #define ATAPI_COMMAND_LENGTH 12 /* ATAPI commands are always 12 bytes */ -static struct cam_sim *umass_sim[UMASS_MAXUNIT]; -static struct mtx umass_mtx; - static devclass_t umass_devclass; static device_method_t umass_methods[] = { @@ -1286,7 +1281,7 @@ .size = sizeof(struct umass_softc), }; -DRIVER_MODULE(umass, ushub, umass_driver, umass_devclass, umass_driver_loaded, 0); +DRIVER_MODULE(umass, ushub, umass_driver, umass_devclass, NULL, 0); MODULE_DEPEND(umass, usb2_storage, 1, 1, 1); MODULE_DEPEND(umass, usb2_core, 1, 1, 1); MODULE_DEPEND(umass, cam, 1, 1, 1); @@ -1444,11 +1439,6 @@ struct usb2_interface_descriptor *id; int32_t err; - if (device_get_unit(dev) >= UMASS_MAXUNIT) { - device_printf(dev, "Maxunit(%u) limit reached!\n", - UMASS_MAXUNIT); - return (ENOMEM); - } /* * NOTE: the softc struct is bzero-ed in device_set_driver. * We can safely call umass_detach without specifically @@ -1466,6 +1456,9 @@ device_set_usb2_desc(dev); + mtx_init(&sc->sc_mtx, device_get_nameunit(dev), + NULL, MTX_DEF | MTX_RECURSE); + /* get interface index */ id = usb2_get_interface_descriptor(uaa->iface); @@ -1534,7 +1527,7 @@ err = usb2_transfer_setup(uaa->device, &uaa->info.bIfaceIndex, sc->sc_xfer, umass_bbb_config, - UMASS_T_BBB_MAX, sc, &umass_mtx); + UMASS_T_BBB_MAX, sc, &sc->sc_mtx); /* skip reset first time */ sc->sc_last_xfer_index = UMASS_T_BBB_COMMAND; @@ -1545,7 +1538,7 @@ &uaa->info.bIfaceIndex, sc->sc_xfer, umass_cbi_config, (sc->sc_proto & UMASS_PROTO_CBI_I) ? UMASS_T_CBI_MAX : (UMASS_T_CBI_MAX - 2), sc, - &umass_mtx); + &sc->sc_mtx); /* skip reset first time */ sc->sc_last_xfer_index = UMASS_T_CBI_COMMAND; @@ -1618,12 +1611,12 @@ usb2_transfer_unsetup(sc->sc_xfer, UMASS_T_MAX); #if (__FreeBSD_version >= 700037) - mtx_lock(&umass_mtx); + mtx_lock(&sc->sc_mtx); #endif umass_cam_detach_sim(sc); #if (__FreeBSD_version >= 700037) - mtx_unlock(&umass_mtx); + mtx_unlock(&sc->sc_mtx); #endif return (0); /* success */ @@ -1687,7 +1680,7 @@ { union ccb *ccb; - mtx_assert(&umass_mtx, MA_OWNED); + mtx_assert(&sc->sc_mtx, MA_OWNED); ccb = sc->sc_transfer.ccb; sc->sc_transfer.ccb = NULL; @@ -2599,10 +2592,6 @@ { struct cam_devq *devq; /* Per device Queue */ - if (umass_sim[sc->sc_unit] != NULL) { - sc->sc_sim = umass_sim[sc->sc_unit]; - goto register_only; - } /* * A HBA is attached to the CAM layer. * @@ -2620,7 +2609,7 @@ sc /* priv */ , sc->sc_unit /* unit number */ , #if (__FreeBSD_version >= 700037) - &umass_mtx /* mutex */ , + &sc->sc_mtx /* mutex */ , #endif 1 /* maximum device openings */ , 0 /* maximum tagged device openings */ , @@ -2630,33 +2619,27 @@ cam_simq_free(devq); return (ENOMEM); } - umass_sim[sc->sc_unit] = sc->sc_sim; - -register_only: - - /* update the softc pointer */ - sc->sc_sim->softc = sc; #if (__FreeBSD_version >= 700037) - mtx_lock(&umass_mtx); + mtx_lock(&sc->sc_mtx); #endif #if (__FreeBSD_version >= 700048) if (xpt_bus_register(sc->sc_sim, sc->sc_dev, sc->sc_unit) != CAM_SUCCESS) { - mtx_unlock(&umass_mtx); + mtx_unlock(&sc->sc_mtx); return (ENOMEM); } #else if (xpt_bus_register(sc->sc_sim, sc->sc_unit) != CAM_SUCCESS) { #if (__FreeBSD_version >= 700037) - mtx_unlock(&umass_mtx); + mtx_unlock(&sc->sc_mtx); #endif return (ENOMEM); } #endif #if (__FreeBSD_version >= 700037) - mtx_unlock(&umass_mtx); + mtx_unlock(&sc->sc_mtx); #endif return (0); } @@ -2698,14 +2681,14 @@ return; } #if (__FreeBSD_version >= 700037) - mtx_lock(&umass_mtx); + mtx_lock(&sc->sc_mtx); #endif if (xpt_create_path(&path, xpt_periph, cam_sim_path(sc->sc_sim), CAM_TARGET_WILDCARD, CAM_LUN_WILDCARD) != CAM_REQ_CMP) { #if (__FreeBSD_version >= 700037) - mtx_unlock(&umass_mtx); + mtx_unlock(&sc->sc_mtx); #endif free(ccb, M_USBDEV); return; @@ -2717,7 +2700,7 @@ xpt_action(ccb); #if (__FreeBSD_version >= 700037) - mtx_unlock(&umass_mtx); + mtx_unlock(&sc->sc_mtx); #endif /* The scan is in progress now. */ @@ -2755,14 +2738,11 @@ static void umass_cam_detach_sim(struct umass_softc *sc) { - if (sc->sc_sim) { + if (sc->sc_sim != NULL) { if (xpt_bus_deregister(cam_sim_path(sc->sc_sim))) { -#if 0 /* NOTYET */ - cam_sim_free(sc->sc_sim, /* free_devq */ TRUE); -#else /* accessing the softc is not possible after this */ sc->sc_sim->softc = UMASS_GONE; -#endif + cam_sim_free(sc->sc_sim, /* free_devq */ TRUE); } else { panic("%s: CAM layer is busy!\n", sc->sc_name); @@ -2787,7 +2767,7 @@ } if (sc) { #if (__FreeBSD_version < 700037) - mtx_lock(&umass_mtx); + mtx_lock(&sc->sc_mtx); #endif } /* @@ -3071,7 +3051,7 @@ done: #if (__FreeBSD_version < 700037) if (sc) { - mtx_unlock(&umass_mtx); + mtx_unlock(&sc->sc_mtx); } #endif return; @@ -3638,28 +3618,3 @@ } #endif - -static int -umass_driver_loaded(struct module *mod, int what, void *arg) -{ - uint16_t x; - - switch (what) { - case MOD_LOAD: - mtx_init(&umass_mtx, "UMASS lock", NULL, (MTX_DEF | MTX_RECURSE)); - break; - - case MOD_UNLOAD: - for (x = 0; x != UMASS_MAXUNIT; x++) { - /* cleanup */ - if (umass_sim[x]) - cam_sim_free(umass_sim[x], /* free_devq */ TRUE); - } - mtx_destroy(&umass_mtx); - break; - default: - return (EOPNOTSUPP); - } - - return (0); -} From owner-p4-projects@FreeBSD.ORG Thu Feb 5 20:13:08 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 39D8B1065675; Thu, 5 Feb 2009 20:13:08 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id E3433106566C for ; Thu, 5 Feb 2009 20:13:07 +0000 (UTC) (envelope-from bz@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id CFC978FC16 for ; Thu, 5 Feb 2009 20:13:07 +0000 (UTC) (envelope-from bz@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n15KD7ut096733 for ; Thu, 5 Feb 2009 20:13:07 GMT (envelope-from bz@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n15KD2ku096727 for perforce@freebsd.org; Thu, 5 Feb 2009 20:13:02 GMT (envelope-from bz@freebsd.org) Date: Thu, 5 Feb 2009 20:13:02 GMT Message-Id: <200902052013.n15KD2ku096727@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to bz@freebsd.org using -f From: "Bjoern A. Zeeb" To: Perforce Change Reviews Cc: Subject: PERFORCE change 157227 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 05 Feb 2009 20:13:09 -0000 http://perforce.freebsd.org/chv.cgi?CH=157227 Change 157227 by bz@bz_dumpster on 2009/02/05 20:12:50 IFC @157226 Affected files ... .. //depot/projects/s390/COPYRIGHT#6 integrate .. //depot/projects/s390/Makefile#17 integrate .. //depot/projects/s390/Makefile.inc1#27 integrate .. //depot/projects/s390/ObsoleteFiles.inc#7 integrate .. //depot/projects/s390/UPDATING#20 integrate .. //depot/projects/s390/bin/chmod/chmod.1#6 integrate .. //depot/projects/s390/bin/dd/dd.1#4 integrate .. //depot/projects/s390/bin/kenv/kenv.1#5 integrate .. //depot/projects/s390/bin/ln/ln.1#6 integrate .. //depot/projects/s390/bin/pax/file_subs.c#5 integrate .. //depot/projects/s390/bin/test/test.1#4 integrate .. //depot/projects/s390/cddl/contrib/opensolaris/cmd/zinject/zinject.c#2 integrate .. //depot/projects/s390/cddl/contrib/opensolaris/lib/libdtrace/common/dt_link.c#4 integrate .. //depot/projects/s390/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_sendrecv.c#2 integrate .. //depot/projects/s390/contrib/bind9/CHANGES#4 integrate .. //depot/projects/s390/contrib/bind9/COPYRIGHT#3 integrate .. //depot/projects/s390/contrib/bind9/FAQ#4 integrate .. //depot/projects/s390/contrib/bind9/FAQ.xml#3 integrate .. //depot/projects/s390/contrib/bind9/README#4 integrate .. //depot/projects/s390/contrib/bind9/aclocal.m4#1 branch .. //depot/projects/s390/contrib/bind9/bin/check/check-tool.c#3 integrate .. //depot/projects/s390/contrib/bind9/bin/check/named-checkconf.c#3 integrate .. //depot/projects/s390/contrib/bind9/bin/check/named-checkzone.c#3 integrate .. //depot/projects/s390/contrib/bind9/bin/dig/dig.1#4 integrate .. //depot/projects/s390/contrib/bind9/bin/dig/dig.c#4 integrate .. //depot/projects/s390/contrib/bind9/bin/dig/dig.docbook#4 integrate .. //depot/projects/s390/contrib/bind9/bin/dig/dig.html#4 integrate .. //depot/projects/s390/contrib/bind9/bin/dig/dighost.c#4 integrate .. //depot/projects/s390/contrib/bind9/bin/dig/host.1#4 integrate .. //depot/projects/s390/contrib/bind9/bin/dig/host.docbook#4 integrate .. //depot/projects/s390/contrib/bind9/bin/dig/host.html#4 integrate .. //depot/projects/s390/contrib/bind9/bin/dnssec/dnssec-keygen.8#4 integrate .. //depot/projects/s390/contrib/bind9/bin/dnssec/dnssec-keygen.docbook#4 integrate .. //depot/projects/s390/contrib/bind9/bin/dnssec/dnssec-keygen.html#4 integrate .. //depot/projects/s390/contrib/bind9/bin/dnssec/dnssec-signzone.8#4 integrate .. //depot/projects/s390/contrib/bind9/bin/dnssec/dnssec-signzone.c#4 integrate .. //depot/projects/s390/contrib/bind9/bin/dnssec/dnssec-signzone.docbook#4 integrate .. //depot/projects/s390/contrib/bind9/bin/dnssec/dnssec-signzone.html#4 integrate .. //depot/projects/s390/contrib/bind9/bin/named/client.c#4 integrate .. //depot/projects/s390/contrib/bind9/bin/named/config.c#3 integrate .. //depot/projects/s390/contrib/bind9/bin/named/controlconf.c#3 integrate .. //depot/projects/s390/contrib/bind9/bin/named/include/named/globals.h#3 integrate .. //depot/projects/s390/contrib/bind9/bin/named/interfacemgr.c#3 integrate .. //depot/projects/s390/contrib/bind9/bin/named/lwaddr.c#3 integrate .. //depot/projects/s390/contrib/bind9/bin/named/lwdgnba.c#3 integrate .. //depot/projects/s390/contrib/bind9/bin/named/lwdnoop.c#3 integrate .. //depot/projects/s390/contrib/bind9/bin/named/lwresd.8#4 integrate .. //depot/projects/s390/contrib/bind9/bin/named/lwresd.c#3 integrate .. //depot/projects/s390/contrib/bind9/bin/named/lwresd.docbook#4 integrate .. //depot/projects/s390/contrib/bind9/bin/named/lwresd.html#4 integrate .. //depot/projects/s390/contrib/bind9/bin/named/main.c#4 integrate .. //depot/projects/s390/contrib/bind9/bin/named/named.8#4 integrate .. //depot/projects/s390/contrib/bind9/bin/named/named.conf.5#4 integrate .. //depot/projects/s390/contrib/bind9/bin/named/named.conf.docbook#4 integrate .. //depot/projects/s390/contrib/bind9/bin/named/named.conf.html#4 integrate .. //depot/projects/s390/contrib/bind9/bin/named/named.docbook#4 integrate .. //depot/projects/s390/contrib/bind9/bin/named/named.html#4 integrate .. //depot/projects/s390/contrib/bind9/bin/named/query.c#4 integrate .. //depot/projects/s390/contrib/bind9/bin/named/server.c#4 integrate .. //depot/projects/s390/contrib/bind9/bin/named/unix/include/named/os.h#3 integrate .. //depot/projects/s390/contrib/bind9/bin/named/unix/os.c#4 integrate .. //depot/projects/s390/contrib/bind9/bin/named/update.c#4 integrate .. //depot/projects/s390/contrib/bind9/bin/nsupdate/Makefile.in#3 integrate .. //depot/projects/s390/contrib/bind9/bin/nsupdate/nsupdate.1#1 branch .. //depot/projects/s390/contrib/bind9/bin/nsupdate/nsupdate.8#4 delete .. //depot/projects/s390/contrib/bind9/bin/nsupdate/nsupdate.c#4 integrate .. //depot/projects/s390/contrib/bind9/bin/nsupdate/nsupdate.docbook#4 integrate .. //depot/projects/s390/contrib/bind9/bin/nsupdate/nsupdate.html#4 integrate .. //depot/projects/s390/contrib/bind9/bin/rndc/rndc-confgen.c#3 integrate .. //depot/projects/s390/contrib/bind9/bin/rndc/rndc.8#4 integrate .. //depot/projects/s390/contrib/bind9/bin/rndc/rndc.c#4 integrate .. //depot/projects/s390/contrib/bind9/bin/rndc/rndc.docbook#4 integrate .. //depot/projects/s390/contrib/bind9/bin/rndc/rndc.html#4 integrate .. //depot/projects/s390/contrib/bind9/config.h.in#1 branch .. //depot/projects/s390/contrib/bind9/configure.in#4 integrate .. //depot/projects/s390/contrib/bind9/doc/arm/Bv9ARM-book.xml#4 integrate .. //depot/projects/s390/contrib/bind9/doc/arm/Bv9ARM.ch01.html#4 integrate .. //depot/projects/s390/contrib/bind9/doc/arm/Bv9ARM.ch02.html#4 integrate .. //depot/projects/s390/contrib/bind9/doc/arm/Bv9ARM.ch03.html#4 integrate .. //depot/projects/s390/contrib/bind9/doc/arm/Bv9ARM.ch04.html#4 integrate .. //depot/projects/s390/contrib/bind9/doc/arm/Bv9ARM.ch05.html#4 integrate .. //depot/projects/s390/contrib/bind9/doc/arm/Bv9ARM.ch06.html#4 integrate .. //depot/projects/s390/contrib/bind9/doc/arm/Bv9ARM.ch07.html#4 integrate .. //depot/projects/s390/contrib/bind9/doc/arm/Bv9ARM.ch08.html#4 integrate .. //depot/projects/s390/contrib/bind9/doc/arm/Bv9ARM.ch09.html#4 integrate .. //depot/projects/s390/contrib/bind9/doc/arm/Bv9ARM.ch10.html#2 integrate .. //depot/projects/s390/contrib/bind9/doc/arm/Bv9ARM.html#4 integrate .. //depot/projects/s390/contrib/bind9/doc/arm/Bv9ARM.pdf#3 integrate .. //depot/projects/s390/contrib/bind9/doc/arm/man.dig.html#2 integrate .. //depot/projects/s390/contrib/bind9/doc/arm/man.dnssec-keygen.html#2 integrate .. //depot/projects/s390/contrib/bind9/doc/arm/man.dnssec-signzone.html#2 integrate .. //depot/projects/s390/contrib/bind9/doc/arm/man.host.html#2 integrate .. //depot/projects/s390/contrib/bind9/doc/arm/man.named-checkconf.html#2 integrate .. //depot/projects/s390/contrib/bind9/doc/arm/man.named-checkzone.html#2 integrate .. //depot/projects/s390/contrib/bind9/doc/arm/man.named.html#2 integrate .. //depot/projects/s390/contrib/bind9/doc/arm/man.rndc-confgen.html#2 integrate .. //depot/projects/s390/contrib/bind9/doc/arm/man.rndc.conf.html#2 integrate .. //depot/projects/s390/contrib/bind9/doc/arm/man.rndc.html#2 integrate .. //depot/projects/s390/contrib/bind9/doc/misc/Makefile.in#3 integrate .. //depot/projects/s390/contrib/bind9/doc/misc/format-options.pl#3 integrate .. //depot/projects/s390/contrib/bind9/doc/misc/migration#3 integrate .. //depot/projects/s390/contrib/bind9/doc/misc/options#4 integrate .. //depot/projects/s390/contrib/bind9/doc/misc/sort-options.pl#1 branch .. //depot/projects/s390/contrib/bind9/doc/rfc/index#4 integrate .. //depot/projects/s390/contrib/bind9/doc/rfc/rfc4648.txt#1 branch .. //depot/projects/s390/contrib/bind9/doc/rfc/rfc4701.txt#1 branch .. //depot/projects/s390/contrib/bind9/doc/rfc/rfc5155.txt#1 branch .. //depot/projects/s390/contrib/bind9/lib/bind/api#4 integrate .. //depot/projects/s390/contrib/bind9/lib/bind/bsd/Makefile.in#3 integrate .. //depot/projects/s390/contrib/bind9/lib/bind/bsd/strerror.c#3 integrate .. //depot/projects/s390/contrib/bind9/lib/bind/bsd/strtoul.c#3 integrate .. //depot/projects/s390/contrib/bind9/lib/bind/configure.in#4 integrate .. //depot/projects/s390/contrib/bind9/lib/bind/dst/Makefile.in#3 integrate .. //depot/projects/s390/contrib/bind9/lib/bind/dst/dst_api.c#4 integrate .. //depot/projects/s390/contrib/bind9/lib/bind/dst/hmac_link.c#4 integrate .. //depot/projects/s390/contrib/bind9/lib/bind/dst/support.c#4 integrate .. //depot/projects/s390/contrib/bind9/lib/bind/include/Makefile.in#3 integrate .. //depot/projects/s390/contrib/bind9/lib/bind/include/arpa/nameser.h#3 integrate .. //depot/projects/s390/contrib/bind9/lib/bind/include/isc/assertions.h#3 integrate .. //depot/projects/s390/contrib/bind9/lib/bind/include/isc/eventlib.h#4 integrate .. //depot/projects/s390/contrib/bind9/lib/bind/include/isc/misc.h#3 integrate .. //depot/projects/s390/contrib/bind9/lib/bind/include/isc/platform.h.in#1 branch .. //depot/projects/s390/contrib/bind9/lib/bind/include/netdb.h#3 integrate .. //depot/projects/s390/contrib/bind9/lib/bind/include/resolv.h#4 integrate .. //depot/projects/s390/contrib/bind9/lib/bind/inet/Makefile.in#3 integrate .. //depot/projects/s390/contrib/bind9/lib/bind/inet/inet_net_pton.c#3 integrate .. //depot/projects/s390/contrib/bind9/lib/bind/inet/inet_network.c#3 integrate .. //depot/projects/s390/contrib/bind9/lib/bind/irs/Makefile.in#3 integrate .. //depot/projects/s390/contrib/bind9/lib/bind/irs/dns_ho.c#4 integrate .. //depot/projects/s390/contrib/bind9/lib/bind/irs/getnetgrent.c#3 integrate .. //depot/projects/s390/contrib/bind9/lib/bind/irs/getnetgrent_r.c#4 integrate .. //depot/projects/s390/contrib/bind9/lib/bind/irs/irp.c#3 integrate .. //depot/projects/s390/contrib/bind9/lib/bind/isc/Makefile.in#3 integrate .. //depot/projects/s390/contrib/bind9/lib/bind/isc/assertions.c#3 integrate .. //depot/projects/s390/contrib/bind9/lib/bind/isc/bitncmp.c#3 integrate .. //depot/projects/s390/contrib/bind9/lib/bind/isc/ctl_clnt.c#3 integrate .. //depot/projects/s390/contrib/bind9/lib/bind/isc/ctl_srvr.c#3 integrate .. //depot/projects/s390/contrib/bind9/lib/bind/isc/logging.c#3 integrate .. //depot/projects/s390/contrib/bind9/lib/bind/nameser/Makefile.in#3 integrate .. //depot/projects/s390/contrib/bind9/lib/bind/port_after.h.in#4 integrate .. //depot/projects/s390/contrib/bind9/lib/bind/port_before.h.in#4 integrate .. //depot/projects/s390/contrib/bind9/lib/bind/resolv/Makefile.in#4 integrate .. //depot/projects/s390/contrib/bind9/lib/bind/resolv/res_debug.c#4 integrate .. //depot/projects/s390/contrib/bind9/lib/bind/resolv/res_mkquery.c#3 integrate .. //depot/projects/s390/contrib/bind9/lib/bind/resolv/res_query.c#3 integrate .. //depot/projects/s390/contrib/bind9/lib/bind/resolv/res_send.c#4 integrate .. //depot/projects/s390/contrib/bind9/lib/bind9/api#4 integrate .. //depot/projects/s390/contrib/bind9/lib/bind9/check.c#4 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/acache.c#2 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/adb.c#4 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/api#4 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/cache.c#4 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/dispatch.c#3 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/dst_parse.c#3 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/dst_parse.h#3 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/include/dns/dispatch.h#3 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/journal.c#4 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/master.c#3 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/masterdump.c#3 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/message.c#4 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/openssldsa_link.c#3 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/opensslrsa_link.c#3 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/rbt.c#4 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/rbtdb.c#4 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/rdata/generic/nsec_47.c#3 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/rdata/generic/nsec_47.h#3 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/rdata/generic/txt_16.c#3 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/rdata/in_1/apl_42.c#3 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/rdata/in_1/naptr_35.c#3 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/request.c#3 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/resolver.c#4 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/rootns.c#3 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/sdb.c#3 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/tkey.c#4 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/tsig.c#4 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/validator.c#4 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/view.c#3 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/xfrin.c#4 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/zone.c#4 integrate .. //depot/projects/s390/contrib/bind9/lib/isc/Makefile.in#3 integrate .. //depot/projects/s390/contrib/bind9/lib/isc/api#4 integrate .. //depot/projects/s390/contrib/bind9/lib/isc/assertions.c#3 integrate .. //depot/projects/s390/contrib/bind9/lib/isc/include/isc/assertions.h#3 integrate .. //depot/projects/s390/contrib/bind9/lib/isc/include/isc/lex.h#3 integrate .. //depot/projects/s390/contrib/bind9/lib/isc/include/isc/mem.h#3 integrate .. //depot/projects/s390/contrib/bind9/lib/isc/include/isc/msgs.h#3 integrate .. //depot/projects/s390/contrib/bind9/lib/isc/include/isc/platform.h.in#3 integrate .. //depot/projects/s390/contrib/bind9/lib/isc/include/isc/portset.h#1 branch .. //depot/projects/s390/contrib/bind9/lib/isc/include/isc/resource.h#3 integrate .. //depot/projects/s390/contrib/bind9/lib/isc/include/isc/socket.h#3 integrate .. //depot/projects/s390/contrib/bind9/lib/isc/include/isc/timer.h#4 integrate .. //depot/projects/s390/contrib/bind9/lib/isc/include/isc/types.h#3 integrate .. //depot/projects/s390/contrib/bind9/lib/isc/mem.c#4 integrate .. //depot/projects/s390/contrib/bind9/lib/isc/portset.c#1 branch .. //depot/projects/s390/contrib/bind9/lib/isc/print.c#3 integrate .. //depot/projects/s390/contrib/bind9/lib/isc/pthreads/mutex.c#4 integrate .. //depot/projects/s390/contrib/bind9/lib/isc/timer.c#4 integrate .. //depot/projects/s390/contrib/bind9/lib/isc/unix/app.c#3 integrate .. //depot/projects/s390/contrib/bind9/lib/isc/unix/include/isc/net.h#3 integrate .. //depot/projects/s390/contrib/bind9/lib/isc/unix/net.c#4 integrate .. //depot/projects/s390/contrib/bind9/lib/isc/unix/resource.c#3 integrate .. //depot/projects/s390/contrib/bind9/lib/isc/unix/socket.c#4 integrate .. //depot/projects/s390/contrib/bind9/lib/isc/unix/socket_p.h#3 integrate .. //depot/projects/s390/contrib/bind9/lib/isc/unix/time.c#3 integrate .. //depot/projects/s390/contrib/bind9/lib/isccfg/api#4 integrate .. //depot/projects/s390/contrib/bind9/lib/isccfg/namedconf.c#4 integrate .. //depot/projects/s390/contrib/bind9/lib/lwres/api#4 integrate .. //depot/projects/s390/contrib/bind9/make/rules.in#4 integrate .. //depot/projects/s390/contrib/bind9/version#4 integrate .. //depot/projects/s390/contrib/csup/GNUmakefile#2 integrate .. //depot/projects/s390/contrib/csup/Makefile#2 integrate .. //depot/projects/s390/contrib/csup/TODO#2 integrate .. //depot/projects/s390/contrib/csup/config.c#2 integrate .. //depot/projects/s390/contrib/csup/csup.1#2 integrate .. //depot/projects/s390/contrib/csup/detailer.c#2 integrate .. //depot/projects/s390/contrib/csup/diff.c#2 integrate .. //depot/projects/s390/contrib/csup/diff.h#2 integrate .. //depot/projects/s390/contrib/csup/fattr.c#2 integrate .. //depot/projects/s390/contrib/csup/fattr.h#2 integrate .. //depot/projects/s390/contrib/csup/keyword.c#2 integrate .. //depot/projects/s390/contrib/csup/keyword.h#2 integrate .. //depot/projects/s390/contrib/csup/lex.rcs.c#1 branch .. //depot/projects/s390/contrib/csup/lister.c#2 integrate .. //depot/projects/s390/contrib/csup/misc.c#2 integrate .. //depot/projects/s390/contrib/csup/misc.h#2 integrate .. //depot/projects/s390/contrib/csup/mux.c#3 integrate .. //depot/projects/s390/contrib/csup/proto.c#2 integrate .. //depot/projects/s390/contrib/csup/proto.h#2 integrate .. //depot/projects/s390/contrib/csup/rcsfile.c#1 branch .. //depot/projects/s390/contrib/csup/rcsfile.h#1 branch .. //depot/projects/s390/contrib/csup/rcsparse.c#1 branch .. //depot/projects/s390/contrib/csup/rcsparse.h#1 branch .. //depot/projects/s390/contrib/csup/rcstokenizer.h#1 branch .. //depot/projects/s390/contrib/csup/rcstokenizer.l#1 branch .. //depot/projects/s390/contrib/csup/rsyncfile.c#1 branch .. //depot/projects/s390/contrib/csup/rsyncfile.h#1 branch .. //depot/projects/s390/contrib/csup/status.c#2 integrate .. //depot/projects/s390/contrib/csup/stream.c#2 integrate .. //depot/projects/s390/contrib/csup/stream.h#2 integrate .. //depot/projects/s390/contrib/csup/updater.c#2 integrate .. //depot/projects/s390/contrib/file/AUTHORS#1 branch .. //depot/projects/s390/contrib/file/COPYING#1 branch .. //depot/projects/s390/contrib/file/ChangeLog#3 integrate .. //depot/projects/s390/contrib/file/FREEBSD-upgrade#4 delete .. //depot/projects/s390/contrib/file/INSTALL#1 branch .. //depot/projects/s390/contrib/file/LEGAL.NOTICE#4 delete .. //depot/projects/s390/contrib/file/MAINT#4 integrate .. //depot/projects/s390/contrib/file/Magdir/adventure#5 integrate .. //depot/projects/s390/contrib/file/Magdir/animation#5 integrate .. //depot/projects/s390/contrib/file/Magdir/apple#4 integrate .. //depot/projects/s390/contrib/file/Magdir/archive#6 integrate .. //depot/projects/s390/contrib/file/Magdir/audio#6 integrate .. //depot/projects/s390/contrib/file/Magdir/c-lang#4 integrate .. //depot/projects/s390/contrib/file/Magdir/c64#3 integrate .. //depot/projects/s390/contrib/file/Magdir/cafebabe#2 integrate .. //depot/projects/s390/contrib/file/Magdir/cddb#2 integrate .. //depot/projects/s390/contrib/file/Magdir/clarion#1 branch .. //depot/projects/s390/contrib/file/Magdir/commands#5 integrate .. //depot/projects/s390/contrib/file/Magdir/compress#6 integrate .. //depot/projects/s390/contrib/file/Magdir/console#4 integrate .. //depot/projects/s390/contrib/file/Magdir/cracklib#2 integrate .. //depot/projects/s390/contrib/file/Magdir/ctags#4 integrate .. //depot/projects/s390/contrib/file/Magdir/database#5 integrate .. //depot/projects/s390/contrib/file/Magdir/diff#4 integrate .. //depot/projects/s390/contrib/file/Magdir/dump#3 integrate .. //depot/projects/s390/contrib/file/Magdir/elf#6 integrate .. //depot/projects/s390/contrib/file/Magdir/erlang#1 branch .. //depot/projects/s390/contrib/file/Magdir/filesystems#7 integrate .. //depot/projects/s390/contrib/file/Magdir/flash#5 integrate .. //depot/projects/s390/contrib/file/Magdir/fonts#4 integrate .. //depot/projects/s390/contrib/file/Magdir/fortran#2 integrate .. //depot/projects/s390/contrib/file/Magdir/frame#2 integrate .. //depot/projects/s390/contrib/file/Magdir/freebsd#2 integrate .. //depot/projects/s390/contrib/file/Magdir/fsav#3 integrate .. //depot/projects/s390/contrib/file/Magdir/games#2 integrate .. //depot/projects/s390/contrib/file/Magdir/gimp#2 integrate .. //depot/projects/s390/contrib/file/Magdir/gnome-keyring#1 branch .. //depot/projects/s390/contrib/file/Magdir/gnu#4 integrate .. //depot/projects/s390/contrib/file/Magdir/gnumeric#1 branch .. //depot/projects/s390/contrib/file/Magdir/graphviz#1 branch .. //depot/projects/s390/contrib/file/Magdir/hp#3 integrate .. //depot/projects/s390/contrib/file/Magdir/iff#4 integrate .. //depot/projects/s390/contrib/file/Magdir/images#6 integrate .. //depot/projects/s390/contrib/file/Magdir/inform#1 branch .. //depot/projects/s390/contrib/file/Magdir/java#3 integrate .. //depot/projects/s390/contrib/file/Magdir/jpeg#4 integrate .. //depot/projects/s390/contrib/file/Magdir/kde#1 branch .. //depot/projects/s390/contrib/file/Magdir/lex#2 integrate .. //depot/projects/s390/contrib/file/Magdir/linux#5 integrate .. //depot/projects/s390/contrib/file/Magdir/lisp#5 integrate .. //depot/projects/s390/contrib/file/Magdir/llvm#1 branch .. //depot/projects/s390/contrib/file/Magdir/lua#1 branch .. //depot/projects/s390/contrib/file/Magdir/luks#1 branch .. //depot/projects/s390/contrib/file/Magdir/macintosh#5 integrate .. //depot/projects/s390/contrib/file/Magdir/mail.news#4 integrate .. //depot/projects/s390/contrib/file/Magdir/mathcad#1 branch .. //depot/projects/s390/contrib/file/Magdir/mathematica#4 integrate .. //depot/projects/s390/contrib/file/Magdir/mercurial#1 branch .. //depot/projects/s390/contrib/file/Magdir/misctools#3 integrate .. //depot/projects/s390/contrib/file/Magdir/mozilla#1 branch .. //depot/projects/s390/contrib/file/Magdir/msdos#5 integrate .. //depot/projects/s390/contrib/file/Magdir/mup#2 integrate .. //depot/projects/s390/contrib/file/Magdir/netware#1 branch .. //depot/projects/s390/contrib/file/Magdir/ole2compounddocs#1 branch .. //depot/projects/s390/contrib/file/Magdir/os2#4 integrate .. //depot/projects/s390/contrib/file/Magdir/palm#3 integrate .. //depot/projects/s390/contrib/file/Magdir/pdf#3 integrate .. //depot/projects/s390/contrib/file/Magdir/perl#4 integrate .. //depot/projects/s390/contrib/file/Magdir/pgp#2 integrate .. //depot/projects/s390/contrib/file/Magdir/pkgadd#2 integrate .. //depot/projects/s390/contrib/file/Magdir/printer#5 integrate .. //depot/projects/s390/contrib/file/Magdir/psion#3 integrate .. //depot/projects/s390/contrib/file/Magdir/revision#3 integrate .. //depot/projects/s390/contrib/file/Magdir/riff#4 integrate .. //depot/projects/s390/contrib/file/Magdir/rpm#3 integrate .. //depot/projects/s390/contrib/file/Magdir/rtf#2 integrate .. //depot/projects/s390/contrib/file/Magdir/ruby#1 branch .. //depot/projects/s390/contrib/file/Magdir/sc#2 integrate .. //depot/projects/s390/contrib/file/Magdir/scientific#2 integrate .. //depot/projects/s390/contrib/file/Magdir/securitycerts#1 branch .. //depot/projects/s390/contrib/file/Magdir/sgi#4 integrate .. //depot/projects/s390/contrib/file/Magdir/sgml#5 integrate .. //depot/projects/s390/contrib/file/Magdir/sharc#3 integrate .. //depot/projects/s390/contrib/file/Magdir/sketch#2 integrate .. //depot/projects/s390/contrib/file/Magdir/softquad#2 integrate .. //depot/projects/s390/contrib/file/Magdir/spectrum#3 integrate .. //depot/projects/s390/contrib/file/Magdir/tex#5 integrate .. //depot/projects/s390/contrib/file/Magdir/troff#2 integrate .. //depot/projects/s390/contrib/file/Magdir/unicode#2 integrate .. //depot/projects/s390/contrib/file/Magdir/uuencode#2 integrate .. //depot/projects/s390/contrib/file/Magdir/varied.script#3 integrate .. //depot/projects/s390/contrib/file/Magdir/vorbis#5 integrate .. //depot/projects/s390/contrib/file/Magdir/warc#1 branch .. //depot/projects/s390/contrib/file/Magdir/weak#1 branch .. //depot/projects/s390/contrib/file/Magdir/windows#1 branch .. //depot/projects/s390/contrib/file/Magdir/wordprocessors#3 integrate .. //depot/projects/s390/contrib/file/Magdir/xilinx#1 branch .. //depot/projects/s390/contrib/file/Makefile.am#7 integrate .. //depot/projects/s390/contrib/file/Makefile.in#7 integrate .. //depot/projects/s390/contrib/file/Makefile.std#5 delete .. //depot/projects/s390/contrib/file/NEWS#1 branch .. //depot/projects/s390/contrib/file/PORTING#2 delete .. //depot/projects/s390/contrib/file/README#7 integrate .. //depot/projects/s390/contrib/file/TODO#1 branch .. //depot/projects/s390/contrib/file/acinclude.m4#5 integrate .. //depot/projects/s390/contrib/file/aclocal.m4#6 integrate .. //depot/projects/s390/contrib/file/apprentice.c#6 integrate .. //depot/projects/s390/contrib/file/ascmagic.c#6 integrate .. //depot/projects/s390/contrib/file/asprintf.c#1 branch .. //depot/projects/s390/contrib/file/compile#1 branch .. //depot/projects/s390/contrib/file/compress.c#5 integrate .. //depot/projects/s390/contrib/file/config.guess#1 branch .. //depot/projects/s390/contrib/file/config.h.in#7 integrate .. //depot/projects/s390/contrib/file/config.sub#1 branch .. //depot/projects/s390/contrib/file/configure#7 integrate .. //depot/projects/s390/contrib/file/configure.ac#1 branch .. //depot/projects/s390/contrib/file/configure.in#7 delete .. //depot/projects/s390/contrib/file/elfclass.h#1 branch .. //depot/projects/s390/contrib/file/file.c#7 integrate .. //depot/projects/s390/contrib/file/file.h#6 integrate .. //depot/projects/s390/contrib/file/file.man#7 integrate .. //depot/projects/s390/contrib/file/fsmagic.c#5 integrate .. //depot/projects/s390/contrib/file/funcs.c#3 integrate .. //depot/projects/s390/contrib/file/getopt_long.c#1 branch .. //depot/projects/s390/contrib/file/is_tar.c#5 integrate .. //depot/projects/s390/contrib/file/libmagic.man#3 integrate .. //depot/projects/s390/contrib/file/magic.c#3 integrate .. //depot/projects/s390/contrib/file/magic.h#3 integrate .. //depot/projects/s390/contrib/file/magic.man#7 integrate .. //depot/projects/s390/contrib/file/magic.mime#6 delete .. //depot/projects/s390/contrib/file/magic2mime#4 delete .. //depot/projects/s390/contrib/file/mkinstalldirs#4 delete .. //depot/projects/s390/contrib/file/mygetopt.h#1 branch .. //depot/projects/s390/contrib/file/names.h#5 integrate .. //depot/projects/s390/contrib/file/patchlevel.h#7 integrate .. //depot/projects/s390/contrib/file/print.c#6 integrate .. //depot/projects/s390/contrib/file/readelf.c#7 integrate .. //depot/projects/s390/contrib/file/readelf.h#5 integrate .. //depot/projects/s390/contrib/file/softmagic.c#7 integrate .. //depot/projects/s390/contrib/file/tar.h#4 integrate .. //depot/projects/s390/contrib/file/test.c#3 delete .. //depot/projects/s390/contrib/file/tests/Makefile.am#1 branch .. //depot/projects/s390/contrib/file/tests/Makefile.in#1 branch .. //depot/projects/s390/contrib/file/tests/README#1 branch .. //depot/projects/s390/contrib/file/tests/gedcom.magic#1 branch .. //depot/projects/s390/contrib/file/tests/gedcom.result#1 branch .. //depot/projects/s390/contrib/file/tests/gedcom.testfile#1 branch .. //depot/projects/s390/contrib/file/tests/test.c#1 branch .. //depot/projects/s390/contrib/file/vasprintf.c#1 branch .. //depot/projects/s390/contrib/gdtoa/README#4 integrate .. //depot/projects/s390/contrib/gdtoa/g_Qfmt.c#3 integrate .. //depot/projects/s390/contrib/gdtoa/g__fmt.c#4 integrate .. //depot/projects/s390/contrib/gdtoa/g_ddfmt.c#3 integrate .. //depot/projects/s390/contrib/gdtoa/g_dfmt.c#3 integrate .. //depot/projects/s390/contrib/gdtoa/g_ffmt.c#3 integrate .. //depot/projects/s390/contrib/gdtoa/g_xLfmt.c#3 integrate .. //depot/projects/s390/contrib/gdtoa/g_xfmt.c#3 integrate .. //depot/projects/s390/contrib/gdtoa/gdtoa.c#3 integrate .. //depot/projects/s390/contrib/gdtoa/gdtoa.h#3 integrate .. //depot/projects/s390/contrib/gdtoa/gdtoa_fltrnds.h#1 branch .. //depot/projects/s390/contrib/gdtoa/gdtoaimp.h#6 integrate .. //depot/projects/s390/contrib/gdtoa/gethex.c#5 integrate .. //depot/projects/s390/contrib/gdtoa/makefile#3 integrate .. //depot/projects/s390/contrib/gdtoa/smisc.c#3 integrate .. //depot/projects/s390/contrib/gdtoa/strtod.c#5 integrate .. //depot/projects/s390/contrib/gdtoa/strtodg.c#4 integrate .. //depot/projects/s390/contrib/gdtoa/strtof.c#3 integrate .. //depot/projects/s390/contrib/gdtoa/strtopQ.c#3 integrate .. //depot/projects/s390/contrib/gdtoa/strtopd.c#3 integrate .. //depot/projects/s390/contrib/gdtoa/strtopdd.c#3 integrate .. //depot/projects/s390/contrib/gdtoa/strtopf.c#3 integrate .. //depot/projects/s390/contrib/gdtoa/strtopx.c#3 integrate .. //depot/projects/s390/contrib/gdtoa/strtopxL.c#3 integrate .. //depot/projects/s390/contrib/gdtoa/test/README#3 integrate .. //depot/projects/s390/contrib/gdtoa/test/getround.c#3 integrate .. //depot/projects/s390/contrib/gdtoa/test/makefile#3 integrate .. //depot/projects/s390/contrib/gdtoa/test/obad/strtodt.out#1 branch .. //depot/projects/s390/contrib/gdtoa/test/obad/xL.out#1 branch .. //depot/projects/s390/contrib/gdtoa/test/xsum0.out#3 integrate .. //depot/projects/s390/contrib/gdtoa/xsum0.out#5 integrate .. //depot/projects/s390/contrib/lukemftpd/src/extern.h#5 integrate .. //depot/projects/s390/contrib/lukemftpd/src/ftpcmd.y#6 integrate .. //depot/projects/s390/contrib/lukemftpd/src/ftpd.c#6 integrate .. //depot/projects/s390/contrib/ntp/ntpd/ntp_crypto.c#5 integrate .. //depot/projects/s390/contrib/openbsm/INSTALL#2 integrate .. //depot/projects/s390/contrib/openbsm/Makefile.am#4 integrate .. //depot/projects/s390/contrib/openbsm/Makefile.in#4 integrate .. //depot/projects/s390/contrib/openbsm/NEWS#2 integrate .. //depot/projects/s390/contrib/openbsm/README#4 integrate .. //depot/projects/s390/contrib/openbsm/TODO#4 integrate .. //depot/projects/s390/contrib/openbsm/VERSION#4 integrate .. //depot/projects/s390/contrib/openbsm/bin/Makefile.in#4 integrate .. //depot/projects/s390/contrib/openbsm/bin/audit/Makefile.am#3 integrate .. //depot/projects/s390/contrib/openbsm/bin/audit/Makefile.in#4 integrate .. //depot/projects/s390/contrib/openbsm/bin/audit/audit.8#4 integrate .. //depot/projects/s390/contrib/openbsm/bin/audit/audit.c#4 integrate .. //depot/projects/s390/contrib/openbsm/bin/auditd/Makefile.am#3 integrate .. //depot/projects/s390/contrib/openbsm/bin/auditd/Makefile.in#4 integrate .. //depot/projects/s390/contrib/openbsm/bin/auditd/audit_warn.c#4 integrate .. //depot/projects/s390/contrib/openbsm/bin/auditd/auditd.8#4 integrate .. //depot/projects/s390/contrib/openbsm/bin/auditd/auditd.c#4 integrate .. //depot/projects/s390/contrib/openbsm/bin/auditd/auditd.h#4 integrate .. //depot/projects/s390/contrib/openbsm/bin/auditd/auditd_darwin.c#1 branch .. //depot/projects/s390/contrib/openbsm/bin/auditd/auditd_fbsd.c#1 branch .. //depot/projects/s390/contrib/openbsm/bin/auditfilterd/Makefile.in#3 integrate .. //depot/projects/s390/contrib/openbsm/bin/auditreduce/Makefile.in#4 integrate .. //depot/projects/s390/contrib/openbsm/bin/auditreduce/auditreduce.c#4 integrate .. //depot/projects/s390/contrib/openbsm/bin/praudit/Makefile.in#4 integrate .. //depot/projects/s390/contrib/openbsm/bsm/Makefile.am#4 integrate .. //depot/projects/s390/contrib/openbsm/bsm/Makefile.in#4 integrate .. //depot/projects/s390/contrib/openbsm/bsm/audit_uevents.h#3 integrate .. //depot/projects/s390/contrib/openbsm/bsm/auditd_lib.h#1 branch .. //depot/projects/s390/contrib/openbsm/bsm/libbsm.h#4 integrate .. //depot/projects/s390/contrib/openbsm/compat/endian.h#2 integrate .. //depot/projects/s390/contrib/openbsm/config/config.h#4 integrate .. //depot/projects/s390/contrib/openbsm/config/config.h.in#4 integrate .. //depot/projects/s390/contrib/openbsm/configure#4 integrate .. //depot/projects/s390/contrib/openbsm/configure.ac#4 integrate .. //depot/projects/s390/contrib/openbsm/etc/audit_event#4 integrate .. //depot/projects/s390/contrib/openbsm/libauditd/Makefile.am#1 branch .. //depot/projects/s390/contrib/openbsm/libauditd/Makefile.in#1 branch .. //depot/projects/s390/contrib/openbsm/libauditd/auditd_lib.c#1 branch .. //depot/projects/s390/contrib/openbsm/libauditd/libauditd.3#1 branch .. //depot/projects/s390/contrib/openbsm/libbsm/Makefile.am#4 integrate .. //depot/projects/s390/contrib/openbsm/libbsm/Makefile.in#4 integrate .. //depot/projects/s390/contrib/openbsm/libbsm/au_domain.3#1 branch .. //depot/projects/s390/contrib/openbsm/libbsm/au_errno.3#1 branch .. //depot/projects/s390/contrib/openbsm/libbsm/au_socket_type.3#1 branch .. //depot/projects/s390/contrib/openbsm/libbsm/au_token.3#4 integrate .. //depot/projects/s390/contrib/openbsm/libbsm/audit_submit.3#3 integrate .. //depot/projects/s390/contrib/openbsm/libbsm/bsm_audit.c#4 integrate .. //depot/projects/s390/contrib/openbsm/libbsm/bsm_class.c#3 integrate .. //depot/projects/s390/contrib/openbsm/libbsm/bsm_control.c#4 integrate .. //depot/projects/s390/contrib/openbsm/libbsm/bsm_domain.c#1 branch .. //depot/projects/s390/contrib/openbsm/libbsm/bsm_errno.c#1 branch .. //depot/projects/s390/contrib/openbsm/libbsm/bsm_event.c#4 integrate .. //depot/projects/s390/contrib/openbsm/libbsm/bsm_io.c#4 integrate .. //depot/projects/s390/contrib/openbsm/libbsm/bsm_mask.c#3 integrate .. //depot/projects/s390/contrib/openbsm/libbsm/bsm_socket_type.c#1 branch .. //depot/projects/s390/contrib/openbsm/libbsm/bsm_token.c#4 integrate .. //depot/projects/s390/contrib/openbsm/libbsm/bsm_user.c#3 integrate .. //depot/projects/s390/contrib/openbsm/libbsm/bsm_wrappers.c#4 integrate .. //depot/projects/s390/contrib/openbsm/libbsm/libbsm.3#3 integrate .. //depot/projects/s390/contrib/openbsm/man/Makefile.in#4 integrate .. //depot/projects/s390/contrib/openbsm/man/audit.log.5#4 integrate .. //depot/projects/s390/contrib/openbsm/man/audit_user.5#4 integrate .. //depot/projects/s390/contrib/openbsm/modules/Makefile.in#3 integrate .. //depot/projects/s390/contrib/openbsm/modules/auditfilter_noop/Makefile.in#3 integrate .. //depot/projects/s390/contrib/openbsm/sys/Makefile.in#2 integrate .. //depot/projects/s390/contrib/openbsm/sys/bsm/Makefile.am#2 integrate .. //depot/projects/s390/contrib/openbsm/sys/bsm/Makefile.in#2 integrate .. //depot/projects/s390/contrib/openbsm/sys/bsm/audit.h#2 integrate .. //depot/projects/s390/contrib/openbsm/sys/bsm/audit_domain.h#1 branch .. //depot/projects/s390/contrib/openbsm/sys/bsm/audit_errno.h#1 branch .. //depot/projects/s390/contrib/openbsm/sys/bsm/audit_internal.h#2 integrate .. //depot/projects/s390/contrib/openbsm/sys/bsm/audit_kevents.h#2 integrate .. //depot/projects/s390/contrib/openbsm/sys/bsm/audit_record.h#2 integrate .. //depot/projects/s390/contrib/openbsm/sys/bsm/audit_socket_type.h#1 branch .. //depot/projects/s390/contrib/openbsm/test/Makefile.in#3 integrate .. //depot/projects/s390/contrib/openbsm/test/bsm/Makefile.in#3 integrate .. //depot/projects/s390/contrib/openbsm/test/bsm/generate.c#2 integrate .. //depot/projects/s390/contrib/openbsm/test/reference/E2BIG_record#1 branch .. //depot/projects/s390/contrib/openbsm/test/reference/EACCES_record#1 branch .. //depot/projects/s390/contrib/openbsm/test/reference/EBADF_record#1 branch .. //depot/projects/s390/contrib/openbsm/test/reference/EBUSY_record#1 branch .. //depot/projects/s390/contrib/openbsm/test/reference/ECHILD_record#1 branch .. //depot/projects/s390/contrib/openbsm/test/reference/EDEADLK_record#1 branch .. //depot/projects/s390/contrib/openbsm/test/reference/EEXIST_record#1 branch .. //depot/projects/s390/contrib/openbsm/test/reference/EFAULT_record#1 branch .. //depot/projects/s390/contrib/openbsm/test/reference/EFBIG_record#1 branch .. //depot/projects/s390/contrib/openbsm/test/reference/EINTR_record#1 branch .. //depot/projects/s390/contrib/openbsm/test/reference/EINVAL_record#1 branch .. //depot/projects/s390/contrib/openbsm/test/reference/EIO_record#1 branch .. //depot/projects/s390/contrib/openbsm/test/reference/EISDIR_record#1 branch .. //depot/projects/s390/contrib/openbsm/test/reference/EMFILE_record#1 branch .. //depot/projects/s390/contrib/openbsm/test/reference/EMLINK_record#1 branch .. //depot/projects/s390/contrib/openbsm/test/reference/ENFILE_record#1 branch .. //depot/projects/s390/contrib/openbsm/test/reference/ENODEV_record#1 branch .. //depot/projects/s390/contrib/openbsm/test/reference/ENOENT_record#1 branch .. //depot/projects/s390/contrib/openbsm/test/reference/ENOEXEC_record#1 branch .. //depot/projects/s390/contrib/openbsm/test/reference/ENOMEM_record#1 branch .. //depot/projects/s390/contrib/openbsm/test/reference/ENOSPC_record#1 branch .. //depot/projects/s390/contrib/openbsm/test/reference/ENOTBLK_record#1 branch .. //depot/projects/s390/contrib/openbsm/test/reference/ENOTDIR_record#1 branch .. //depot/projects/s390/contrib/openbsm/test/reference/ENOTTY_record#1 branch .. //depot/projects/s390/contrib/openbsm/test/reference/ENXIO_record#1 branch .. //depot/projects/s390/contrib/openbsm/test/reference/EPERM_record#1 branch .. //depot/projects/s390/contrib/openbsm/test/reference/EPIPE_record#1 branch .. //depot/projects/s390/contrib/openbsm/test/reference/EROFS_record#1 branch .. //depot/projects/s390/contrib/openbsm/test/reference/ESPIPE_record#1 branch .. //depot/projects/s390/contrib/openbsm/test/reference/ESRCH_record#1 branch .. //depot/projects/s390/contrib/openbsm/test/reference/ETXTBSY_record#1 branch .. //depot/projects/s390/contrib/openbsm/test/reference/EXDEV_record#1 branch .. //depot/projects/s390/contrib/openbsm/test/reference/arg32_record#2 integrate .. //depot/projects/s390/contrib/openbsm/test/reference/data_record#2 integrate .. //depot/projects/s390/contrib/openbsm/test/reference/data_token#2 integrate .. //depot/projects/s390/contrib/openbsm/test/reference/file_record#2 integrate .. //depot/projects/s390/contrib/openbsm/test/reference/header32_token#2 integrate .. //depot/projects/s390/contrib/openbsm/test/reference/in_addr_record#2 integrate .. //depot/projects/s390/contrib/openbsm/test/reference/ip_record#2 integrate .. //depot/projects/s390/contrib/openbsm/test/reference/ipc_record#2 integrate .. //depot/projects/s390/contrib/openbsm/test/reference/iport_record#2 integrate .. //depot/projects/s390/contrib/openbsm/test/reference/opaque_record#2 integrate .. //depot/projects/s390/contrib/openbsm/test/reference/path_record#2 integrate .. //depot/projects/s390/contrib/openbsm/test/reference/process32_record#2 integrate .. //depot/projects/s390/contrib/openbsm/test/reference/process32ex_record-IPv4#2 integrate .. //depot/projects/s390/contrib/openbsm/test/reference/process32ex_record-IPv6#2 integrate .. //depot/projects/s390/contrib/openbsm/test/reference/process64_record#2 integrate .. //depot/projects/s390/contrib/openbsm/test/reference/process64ex_record-IPv4#2 integrate .. //depot/projects/s390/contrib/openbsm/test/reference/process64ex_record-IPv6#2 integrate .. //depot/projects/s390/contrib/openbsm/test/reference/return32_record#2 integrate .. //depot/projects/s390/contrib/openbsm/test/reference/return32_token#2 integrate .. //depot/projects/s390/contrib/openbsm/test/reference/seq_record#2 integrate .. //depot/projects/s390/contrib/openbsm/test/reference/socketex_record#1 branch .. //depot/projects/s390/contrib/openbsm/test/reference/socketex_token#1 branch .. //depot/projects/s390/contrib/openbsm/test/reference/subject32_record#2 integrate .. //depot/projects/s390/contrib/openbsm/test/reference/subject32ex_record#2 integrate .. //depot/projects/s390/contrib/openbsm/test/reference/text_record#2 integrate .. //depot/projects/s390/contrib/openbsm/test/reference/zonename_record#2 integrate .. //depot/projects/s390/contrib/openbsm/tools/Makefile.in#4 integrate .. //depot/projects/s390/contrib/opie/opiekey.1#2 integrate .. //depot/projects/s390/contrib/smbfs/mount_smbfs/mount_smbfs.8#5 integrate .. //depot/projects/s390/contrib/smbfs/mount_smbfs/mount_smbfs.c#5 integrate .. //depot/projects/s390/contrib/wpa_supplicant/ChangeLog#4 integrate .. //depot/projects/s390/contrib/wpa_supplicant/Makefile#4 integrate .. //depot/projects/s390/contrib/wpa_supplicant/base64.c#3 integrate .. //depot/projects/s390/contrib/wpa_supplicant/ctrl_iface.c#4 integrate .. //depot/projects/s390/contrib/wpa_supplicant/ctrl_iface_dbus.c#2 integrate .. //depot/projects/s390/contrib/wpa_supplicant/ctrl_iface_unix.c#2 integrate .. //depot/projects/s390/contrib/wpa_supplicant/dbus_dict_helpers.c#2 integrate .. //depot/projects/s390/contrib/wpa_supplicant/doc/docbook/wpa_background.8#3 integrate .. //depot/projects/s390/contrib/wpa_supplicant/doc/docbook/wpa_cli.8#3 integrate .. //depot/projects/s390/contrib/wpa_supplicant/doc/docbook/wpa_cli.sgml#3 integrate .. //depot/projects/s390/contrib/wpa_supplicant/doc/docbook/wpa_passphrase.8#3 integrate .. //depot/projects/s390/contrib/wpa_supplicant/doc/docbook/wpa_supplicant.8#3 integrate .. //depot/projects/s390/contrib/wpa_supplicant/doc/docbook/wpa_supplicant.conf.5#3 integrate .. //depot/projects/s390/contrib/wpa_supplicant/doc/docbook/wpa_supplicant.conf.sgml#3 integrate .. //depot/projects/s390/contrib/wpa_supplicant/doc/docbook/wpa_supplicant.sgml#3 integrate .. //depot/projects/s390/contrib/wpa_supplicant/driver_ndis.c#4 integrate .. //depot/projects/s390/contrib/wpa_supplicant/eap.c#4 integrate .. //depot/projects/s390/contrib/wpa_supplicant/eap_aka.c#4 integrate .. //depot/projects/s390/contrib/wpa_supplicant/eap_gpsk.c#2 integrate .. //depot/projects/s390/contrib/wpa_supplicant/eap_gpsk_common.c#2 integrate .. //depot/projects/s390/contrib/wpa_supplicant/eap_ttls.c#4 integrate .. //depot/projects/s390/contrib/wpa_supplicant/eloop.c#4 integrate .. //depot/projects/s390/contrib/wpa_supplicant/eloop.h#4 integrate .. //depot/projects/s390/contrib/wpa_supplicant/eloop_none.c#2 integrate .. //depot/projects/s390/contrib/wpa_supplicant/mlme.c#2 integrate .. //depot/projects/s390/contrib/wpa_supplicant/os_unix.c#2 integrate .. //depot/projects/s390/contrib/wpa_supplicant/preauth_test.c#4 integrate .. //depot/projects/s390/contrib/wpa_supplicant/radius.c#4 integrate .. //depot/projects/s390/contrib/wpa_supplicant/sha1.c#4 integrate .. //depot/projects/s390/contrib/wpa_supplicant/tls_openssl.c#4 integrate .. //depot/projects/s390/contrib/wpa_supplicant/version.h#4 integrate .. //depot/projects/s390/contrib/wpa_supplicant/wpa.c#4 integrate .. //depot/projects/s390/contrib/wpa_supplicant/wpa.h#4 integrate .. //depot/projects/s390/contrib/wpa_supplicant/wpa_cli.c#4 integrate .. //depot/projects/s390/contrib/wpa_supplicant/wpa_gui-qt4/networkconfig.cpp#2 integrate .. //depot/projects/s390/contrib/wpa_supplicant/wpa_gui-qt4/scanresults.cpp#2 integrate .. //depot/projects/s390/contrib/wpa_supplicant/wpa_gui-qt4/wpagui.cpp#2 integrate .. //depot/projects/s390/contrib/wpa_supplicant/wpa_gui/networkconfig.ui.h#3 integrate .. //depot/projects/s390/contrib/wpa_supplicant/wpa_gui/userdatarequest.ui.h#2 integrate .. //depot/projects/s390/contrib/wpa_supplicant/wpa_gui/wpagui.ui.h#3 integrate .. //depot/projects/s390/contrib/wpa_supplicant/wpa_i.h#3 integrate .. //depot/projects/s390/contrib/wpa_supplicant/wpa_supplicant.c#4 integrate .. //depot/projects/s390/crypto/openssl/apps/speed.c#7 integrate .. //depot/projects/s390/crypto/openssl/apps/spkac.c#5 integrate .. //depot/projects/s390/crypto/openssl/apps/verify.c#5 integrate .. //depot/projects/s390/crypto/openssl/apps/x509.c#7 integrate .. //depot/projects/s390/crypto/openssl/ssl/s2_clnt.c#7 integrate .. //depot/projects/s390/crypto/openssl/ssl/s2_srvr.c#6 integrate .. //depot/projects/s390/crypto/openssl/ssl/s3_clnt.c#6 integrate .. //depot/projects/s390/crypto/openssl/ssl/s3_srvr.c#7 integrate .. //depot/projects/s390/crypto/openssl/ssl/ssltest.c#7 integrate .. //depot/projects/s390/etc/defaults/rc.conf#18 integrate .. //depot/projects/s390/etc/devd.conf#12 integrate .. //depot/projects/s390/etc/devd/Makefile#2 integrate .. //depot/projects/s390/etc/devd/asus.conf#2 integrate .. //depot/projects/s390/etc/network.subr#8 integrate .. //depot/projects/s390/etc/periodic/weekly/Makefile#4 integrate .. //depot/projects/s390/etc/rc.d/defaultroute#3 integrate .. //depot/projects/s390/etc/rc.d/jail#7 integrate .. //depot/projects/s390/etc/rc.d/ntpd#8 integrate .. //depot/projects/s390/etc/rc.shutdown#6 integrate .. //depot/projects/s390/etc/regdomain.xml#3 integrate .. //depot/projects/s390/games/fortune/datfiles/freebsd-tips#8 integrate .. //depot/projects/s390/gnu/lib/libstdc++/Makefile#9 integrate .. //depot/projects/s390/gnu/usr.bin/grep/savedir.c#3 integrate .. //depot/projects/s390/gnu/usr.bin/man/manpath/manpath.config#6 integrate .. //depot/projects/s390/include/paths.h#8 integrate .. //depot/projects/s390/include/stdlib.h#12 integrate .. //depot/projects/s390/include/string.h#8 integrate .. //depot/projects/s390/include/wchar.h#7 integrate .. //depot/projects/s390/lib/Makefile#16 integrate .. //depot/projects/s390/lib/bind/bind/config.h#4 integrate .. //depot/projects/s390/lib/bind/bind/port_after.h#5 integrate .. //depot/projects/s390/lib/bind/bind/port_before.h#4 integrate .. //depot/projects/s390/lib/bind/config.h#4 integrate .. //depot/projects/s390/lib/bind/dns/code.h#3 integrate .. //depot/projects/s390/lib/bind/dns/dns/enumclass.h#3 integrate .. //depot/projects/s390/lib/bind/dns/dns/enumtype.h#3 integrate .. //depot/projects/s390/lib/bind/dns/dns/rdatastruct.h#3 integrate .. //depot/projects/s390/lib/bind/isc/Makefile#5 integrate .. //depot/projects/s390/lib/bind/isc/isc/platform.h#4 integrate .. //depot/projects/s390/lib/libarchive/archive_entry.c#5 integrate .. //depot/projects/s390/lib/libarchive/archive_read_support_compression_gzip.c#4 integrate .. //depot/projects/s390/lib/libarchive/archive_read_support_format_ar.c#3 integrate .. //depot/projects/s390/lib/libarchive/archive_read_support_format_iso9660.c#6 integrate .. //depot/projects/s390/lib/libarchive/archive_write_disk.c#4 integrate .. //depot/projects/s390/lib/libarchive/test/Makefile#4 integrate .. //depot/projects/s390/lib/libarchive/test/main.c#3 integrate .. //depot/projects/s390/lib/libarchive/test/test_write_disk_failures.c#1 branch .. //depot/projects/s390/lib/libarchive/test/test_write_disk_secure.c#2 integrate .. //depot/projects/s390/lib/libarchive/test/test_write_disk_sparse.c#1 branch .. //depot/projects/s390/lib/libauditd/Makefile#1 branch .. //depot/projects/s390/lib/libbsm/Makefile#3 integrate .. //depot/projects/s390/lib/libc/arm/_fpmath.h#2 integrate .. //depot/projects/s390/lib/libc/arm/arith.h#3 integrate .. //depot/projects/s390/lib/libc/db/man/dbm.3#5 integrate .. //depot/projects/s390/lib/libc/gen/sysctl.3#7 integrate .. //depot/projects/s390/lib/libc/include/fpmath.h#3 integrate .. //depot/projects/s390/lib/libc/locale/mbstowcs.c#5 integrate .. //depot/projects/s390/lib/libc/locale/wcsftime.c#3 integrate .. //depot/projects/s390/lib/libc/locale/wcstombs.c#5 integrate .. //depot/projects/s390/lib/libc/net/getaddrinfo.3#7 integrate .. //depot/projects/s390/lib/libc/sparc64/sys/__sparc_utrap.c#3 integrate .. //depot/projects/s390/lib/libc/stdio/ferror.3#5 integrate .. //depot/projects/s390/lib/libc/stdio/fputws.c#4 integrate .. //depot/projects/s390/lib/libc/stdio/printf.3#9 integrate .. //depot/projects/s390/lib/libc/stdio/printfcommon.h#1 branch .. //depot/projects/s390/lib/libc/stdio/vfprintf.c#11 integrate .. //depot/projects/s390/lib/libc/stdio/vfscanf.c#10 integrate .. //depot/projects/s390/lib/libc/stdio/vfwprintf.c#9 integrate .. //depot/projects/s390/lib/libc/stdio/vfwscanf.c#8 integrate .. //depot/projects/s390/lib/libc/stdio/vswscanf.c#4 integrate .. //depot/projects/s390/lib/libc/stdio/wsetup.c#4 integrate .. //depot/projects/s390/lib/libc/string/Makefile.inc#10 integrate .. //depot/projects/s390/lib/libc/string/ffs.3#7 integrate .. //depot/projects/s390/lib/libc/string/memccpy.c#3 integrate .. //depot/projects/s390/lib/libc/string/memchr.c#3 integrate .. //depot/projects/s390/lib/libc/string/memcmp.c#3 integrate .. //depot/projects/s390/lib/libc/string/memmem.c#2 integrate .. //depot/projects/s390/lib/libc/string/strcasecmp.c#4 integrate .. //depot/projects/s390/lib/libc/string/strcasestr.c#3 integrate .. //depot/projects/s390/lib/libc/string/strcmp.c#3 integrate .. //depot/projects/s390/lib/libc/string/strcoll.c#2 integrate .. //depot/projects/s390/lib/libc/string/strdup.c#3 integrate .. //depot/projects/s390/lib/libc/string/strlcat.c#4 integrate .. //depot/projects/s390/lib/libc/string/strlcpy.3#4 integrate .. //depot/projects/s390/lib/libc/string/strlen.c#3 integrate .. //depot/projects/s390/lib/libc/string/strmode.c#3 integrate .. //depot/projects/s390/lib/libc/string/strncmp.c#3 integrate .. //depot/projects/s390/lib/libc/string/strncpy.c#4 integrate .. //depot/projects/s390/lib/libc/string/strnstr.c#4 integrate .. //depot/projects/s390/lib/libc/string/strpbrk.c#3 integrate .. //depot/projects/s390/lib/libc/string/strsep.c#3 integrate .. //depot/projects/s390/lib/libc/string/strstr.c#3 integrate .. //depot/projects/s390/lib/libc/string/wcscat.c#3 integrate .. //depot/projects/s390/lib/libc/string/wcscmp.c#5 integrate .. //depot/projects/s390/lib/libc/string/wcscpy.c#3 integrate .. //depot/projects/s390/lib/libc/string/wcscspn.c#3 integrate .. //depot/projects/s390/lib/libc/string/wcslcat.c#3 integrate .. //depot/projects/s390/lib/libc/string/wcslcpy.c#3 integrate .. //depot/projects/s390/lib/libc/string/wcslen.c#3 integrate .. //depot/projects/s390/lib/libc/string/wcsncat.c#3 integrate .. //depot/projects/s390/lib/libc/string/wcsncmp.c#5 integrate .. //depot/projects/s390/lib/libc/string/wcspbrk.c#3 integrate .. //depot/projects/s390/lib/libc/string/wcsspn.c#3 integrate .. //depot/projects/s390/lib/libc/string/wcsstr.c#5 integrate .. //depot/projects/s390/lib/libc/string/wmemchr.c#3 integrate .. //depot/projects/s390/lib/libc/string/wmemcmp.c#3 integrate .. //depot/projects/s390/lib/libc/string/wmemcpy.c#3 integrate .. //depot/projects/s390/lib/libc/string/wmemmove.c#3 integrate .. //depot/projects/s390/lib/libc/string/wmemset.c#3 integrate .. //depot/projects/s390/lib/libc/sys/jail.2#8 integrate .. //depot/projects/s390/lib/libc/sys/kldunload.2#6 integrate .. //depot/projects/s390/lib/libc/sys/send.2#6 integrate .. //depot/projects/s390/lib/libc/sys/socket.2#9 integrate .. //depot/projects/s390/lib/libc/sys/timer_create.2#3 integrate .. //depot/projects/s390/lib/libelf/README#1 branch .. //depot/projects/s390/lib/libmagic/Makefile#4 integrate .. //depot/projects/s390/lib/libmd/mdX.3#5 integrate .. //depot/projects/s390/lib/libpmc/libpmc.c#5 integrate .. //depot/projects/s390/lib/libstand/bootp.c#4 integrate .. //depot/projects/s390/lib/libusb20/libusb20.c#3 integrate .. //depot/projects/s390/lib/libusb20/libusb20_desc.c#3 integrate .. //depot/projects/s390/lib/libusbhid/Makefile#6 integrate .. //depot/projects/s390/lib/libusbhid/descr.c#3 integrate .. //depot/projects/s390/lib/libusbhid/descr_compat.c#1 branch .. //depot/projects/s390/lib/libusbhid/usbhid.3#7 integrate .. //depot/projects/s390/lib/libusbhid/usbhid.h#3 integrate .. //depot/projects/s390/lib/libusbhid/usbvar.h#2 integrate .. //depot/projects/s390/lib/libutil/kinfo_getfile.c#2 integrate .. //depot/projects/s390/lib/libutil/kinfo_getvmmap.c#2 integrate .. //depot/projects/s390/lib/msun/src/e_rem_pio2.c#4 integrate .. //depot/projects/s390/lib/msun/src/e_rem_pio2f.c#4 integrate .. //depot/projects/s390/lib/msun/src/k_cosf.c#4 integrate .. //depot/projects/s390/lib/msun/src/k_sinf.c#4 integrate .. //depot/projects/s390/lib/msun/src/k_tanf.c#5 integrate .. //depot/projects/s390/lib/msun/src/math.h#10 integrate .. //depot/projects/s390/lib/msun/src/math_private.h#8 integrate .. //depot/projects/s390/libexec/comsat/comsat.c#3 integrate .. //depot/projects/s390/libexec/ftpd/extern.h#2 integrate .. //depot/projects/s390/libexec/ftpd/ftpcmd.y#8 integrate .. //depot/projects/s390/libexec/ftpd/ftpd.8#14 integrate .. //depot/projects/s390/libexec/ftpd/ftpd.c#13 integrate .. //depot/projects/s390/release/doc/en_US.ISO8859-1/relnotes/article.sgml#4 integrate .. //depot/projects/s390/sbin/ddb/ddb.8#2 integrate .. //depot/projects/s390/sbin/dumpfs/dumpfs.8#7 integrate .. //depot/projects/s390/sbin/dumpfs/dumpfs.c#9 integrate .. //depot/projects/s390/sbin/fdisk/fdisk.c#10 integrate .. //depot/projects/s390/sbin/fsck/fsck.8#7 integrate .. //depot/projects/s390/sbin/fsck/fsck.c#8 integrate .. //depot/projects/s390/sbin/fsck/fsutil.h#3 integrate .. //depot/projects/s390/sbin/fsck_ffs/fsck.h#6 integrate .. //depot/projects/s390/sbin/fsck_ffs/fsck_ffs.8#7 integrate .. //depot/projects/s390/sbin/fsck_ffs/fsutil.c#9 integrate .. //depot/projects/s390/sbin/fsck_ffs/inode.c#6 integrate .. //depot/projects/s390/sbin/fsck_ffs/main.c#7 integrate .. //depot/projects/s390/sbin/fsck_ffs/pass1.c#6 integrate .. //depot/projects/s390/sbin/fsck_ffs/setup.c#8 integrate .. //depot/projects/s390/sbin/geom/class/virstor/gvirstor.8#2 integrate .. //depot/projects/s390/sbin/geom/core/geom.c#5 integrate .. //depot/projects/s390/sbin/geom/misc/subr.c#6 integrate .. //depot/projects/s390/sbin/ifconfig/ifconfig.8#12 integrate .. //depot/projects/s390/sbin/ifconfig/ifconfig.c#12 integrate .. //depot/projects/s390/sbin/ifconfig/ifieee80211.c#10 integrate .. //depot/projects/s390/sbin/ifconfig/regdomain.c#3 integrate .. //depot/projects/s390/sbin/ifconfig/regdomain.h#3 integrate .. //depot/projects/s390/sbin/ipfw/Makefile#4 integrate .. //depot/projects/s390/sbin/ipfw/altq.c#1 branch .. //depot/projects/s390/sbin/ipfw/dummynet.c#1 branch .. //depot/projects/s390/sbin/ipfw/ipfw2.c#15 integrate .. //depot/projects/s390/sbin/ipfw/ipfw2.h#1 branch .. //depot/projects/s390/sbin/ipfw/ipv6.c#1 branch .. //depot/projects/s390/sbin/ipfw/main.c#1 branch .. //depot/projects/s390/sbin/ipfw/nat.c#1 branch .. //depot/projects/s390/sbin/kldstat/kldstat.c#7 integrate .. //depot/projects/s390/sbin/md5/md5.1#4 integrate .. //depot/projects/s390/sbin/mdconfig/mdconfig.8#9 integrate .. //depot/projects/s390/sbin/mdconfig/mdconfig.c#11 integrate .. //depot/projects/s390/sbin/mount/getmntopts.c#5 integrate .. //depot/projects/s390/sbin/mount/mount.c#12 integrate .. //depot/projects/s390/sbin/mount_msdosfs/mount_msdosfs.8#6 integrate .. //depot/projects/s390/sbin/mount_nfs/mount_nfs.c#9 integrate .. //depot/projects/s390/sbin/mount_ntfs/mount_ntfs.8#5 integrate .. //depot/projects/s390/sbin/ping/ping.8#13 integrate .. //depot/projects/s390/sbin/reboot/reboot.c#7 integrate .. //depot/projects/s390/sbin/recoverdisk/recoverdisk.c#2 integrate .. //depot/projects/s390/sbin/restore/interactive.c#6 integrate .. //depot/projects/s390/sbin/route/route.c#9 integrate .. //depot/projects/s390/sbin/savecore/savecore.8#6 integrate .. //depot/projects/s390/sbin/shutdown/shutdown.8#5 integrate .. //depot/projects/s390/share/doc/bind9/Makefile#3 integrate .. //depot/projects/s390/share/examples/cvsup/refuse.README#8 integrate .. //depot/projects/s390/share/man/man4/Makefile#21 integrate .. //depot/projects/s390/share/man/man4/ae.4#2 integrate .. //depot/projects/s390/share/man/man4/ath.4#7 integrate .. //depot/projects/s390/share/man/man4/bce.4#4 integrate .. //depot/projects/s390/share/man/man4/bge.4#12 integrate .. //depot/projects/s390/share/man/man4/cd.4#5 integrate .. //depot/projects/s390/share/man/man4/cpuctl.4#2 integrate .. //depot/projects/s390/share/man/man4/gem.4#4 integrate .. //depot/projects/s390/share/man/man4/hme.4#5 integrate .. //depot/projects/s390/share/man/man4/iic.4#4 integrate .. //depot/projects/s390/share/man/man4/man4.powerpc/Makefile#3 integrate .. //depot/projects/s390/share/man/man4/man4.powerpc/snd_ai2s.4#1 branch .. //depot/projects/s390/share/man/man4/man4.powerpc/snd_davbus.4#1 branch .. //depot/projects/s390/share/man/man4/ndis.4#2 integrate .. //depot/projects/s390/share/man/man4/ng_bpf.4#4 integrate .. //depot/projects/s390/share/man/man4/ng_ether_echo.4#1 branch .. //depot/projects/s390/share/man/man4/ng_tty.4#4 integrate .. //depot/projects/s390/share/man/man4/nge.4#6 integrate .. //depot/projects/s390/share/man/man4/sdhci.4#2 integrate .. //depot/projects/s390/share/man/man4/sk.4#6 integrate .. //depot/projects/s390/share/man/man4/snd_hda.4#5 integrate .. //depot/projects/s390/share/man/man4/snd_ich.4#4 integrate .. //depot/projects/s390/share/man/man4/sysmouse.4#6 integrate .. //depot/projects/s390/share/man/man4/textdump.4#2 integrate .. //depot/projects/s390/share/man/man4/urtw.4#1 branch .. //depot/projects/s390/share/man/man4/uscanner.4#10 integrate .. //depot/projects/s390/share/man/man5/Makefile#11 integrate .. //depot/projects/s390/share/man/man5/nsswitch.conf.5#6 integrate .. //depot/projects/s390/share/man/man5/portindex.5#1 branch .. //depot/projects/s390/share/man/man5/rc.conf.5#20 integrate .. //depot/projects/s390/share/man/man7/Makefile#8 integrate .. //depot/projects/s390/share/man/man7/adding_user.7#1 branch .. //depot/projects/s390/share/man/man7/build.7#7 integrate .. //depot/projects/s390/share/man/man7/ports.7#11 integrate .. //depot/projects/s390/share/man/man7/tuning.7#11 integrate .. //depot/projects/s390/share/man/man8/Makefile#8 integrate .. //depot/projects/s390/share/man/man8/adding_user.8#5 delete .. //depot/projects/s390/share/man/man9/dev_clone.9#2 integrate .. //depot/projects/s390/share/man/man9/domain.9#4 integrate .. //depot/projects/s390/share/man/man9/insmntque.9#2 integrate .. //depot/projects/s390/share/man/man9/kthread.9#6 integrate .. //depot/projects/s390/share/man/man9/lock.9#5 integrate .. //depot/projects/s390/share/man/man9/redzone.9#2 integrate .. //depot/projects/s390/share/misc/bsd-family-tree#15 integrate .. //depot/projects/s390/share/misc/committers-src.dot#3 integrate .. //depot/projects/s390/share/misc/pci_vendors#9 integrate .. //depot/projects/s390/share/mk/bsd.libnames.mk#13 integrate .. //depot/projects/s390/share/mk/bsd.own.mk#8 integrate .. //depot/projects/s390/share/zoneinfo/asia#9 integrate .. //depot/projects/s390/share/zoneinfo/backward#6 integrate .. //depot/projects/s390/share/zoneinfo/europe#7 integrate .. //depot/projects/s390/share/zoneinfo/leapseconds#5 integrate .. //depot/projects/s390/share/zoneinfo/northamerica#7 integrate .. //depot/projects/s390/share/zoneinfo/zone.tab#10 integrate .. //depot/projects/s390/sys/amd64/amd64/amd64_mem.c#5 integrate .. //depot/projects/s390/sys/amd64/amd64/cpu_switch.S#5 integrate .. //depot/projects/s390/sys/amd64/amd64/exception.S#6 integrate .. //depot/projects/s390/sys/amd64/amd64/fpu.c#4 integrate .. //depot/projects/s390/sys/amd64/amd64/identcpu.c#9 integrate .. //depot/projects/s390/sys/amd64/amd64/initcpu.c#8 integrate .. //depot/projects/s390/sys/amd64/amd64/io_apic.c#5 integrate .. //depot/projects/s390/sys/amd64/amd64/local_apic.c#8 integrate .. //depot/projects/s390/sys/amd64/amd64/machdep.c#8 integrate .. //depot/projects/s390/sys/amd64/amd64/mp_machdep.c#6 integrate .. //depot/projects/s390/sys/amd64/amd64/msi.c#3 integrate .. //depot/projects/s390/sys/amd64/conf/GENERIC#11 integrate .. //depot/projects/s390/sys/amd64/conf/USB2#1 branch .. //depot/projects/s390/sys/amd64/ia32/ia32_signal.c#6 integrate .. //depot/projects/s390/sys/amd64/ia32/ia32_sigtramp.S#4 integrate .. //depot/projects/s390/sys/amd64/include/apicvar.h#6 integrate .. //depot/projects/s390/sys/amd64/include/cpufunc.h#4 integrate .. //depot/projects/s390/sys/amd64/include/cputypes.h#4 integrate .. //depot/projects/s390/sys/amd64/include/fpu.h#2 integrate .. //depot/projects/s390/sys/amd64/include/intr_machdep.h#5 integrate .. //depot/projects/s390/sys/amd64/include/md_var.h#9 integrate .. //depot/projects/s390/sys/amd64/include/specialreg.h#8 integrate .. //depot/projects/s390/sys/amd64/linux32/linux32_locore.s#3 integrate .. //depot/projects/s390/sys/amd64/linux32/linux32_sysvec.c#7 integrate .. //depot/projects/s390/sys/arm/arm/busdma_machdep.c#7 integrate .. //depot/projects/s390/sys/arm/arm/cpufunc.c#6 integrate .. //depot/projects/s390/sys/arm/arm/cpufunc_asm_feroceon.S#2 delete .. //depot/projects/s390/sys/arm/arm/cpufunc_asm_sheeva.S#1 branch .. //depot/projects/s390/sys/arm/arm/dump_machdep.c#5 integrate .. //depot/projects/s390/sys/arm/arm/elf_trampoline.c#5 integrate .. //depot/projects/s390/sys/arm/arm/pmap.c#7 integrate .. //depot/projects/s390/sys/arm/arm/vm_machdep.c#6 integrate .. //depot/projects/s390/sys/arm/at91/at91.c#5 integrate .. //depot/projects/s390/sys/arm/at91/at91_mci.c#4 integrate .. //depot/projects/s390/sys/arm/at91/at91_twi.c#4 integrate .. //depot/projects/s390/sys/arm/at91/at91_twireg.h#4 integrate .. //depot/projects/s390/sys/arm/at91/at91var.h#3 integrate .. //depot/projects/s390/sys/arm/at91/uart_bus_at91usart.c#3 integrate .. //depot/projects/s390/sys/arm/at91/uart_cpu_at91rm9200usart.c#4 integrate .. //depot/projects/s390/sys/arm/at91/uart_dev_at91usart.c#4 integrate .. //depot/projects/s390/sys/arm/conf/AVILA#4 integrate .. //depot/projects/s390/sys/arm/conf/AVILA.hints#3 integrate .. //depot/projects/s390/sys/arm/conf/CAMBRIA#2 integrate .. //depot/projects/s390/sys/arm/conf/EP80219#4 integrate .. //depot/projects/s390/sys/arm/conf/HL200#4 integrate .. //depot/projects/s390/sys/arm/conf/IQ31244#5 integrate .. //depot/projects/s390/sys/arm/conf/NSLU#4 integrate .. //depot/projects/s390/sys/arm/include/armreg.h#6 integrate .. //depot/projects/s390/sys/arm/include/atomic.h#6 integrate .. //depot/projects/s390/sys/arm/include/cpufunc.h#4 integrate .. //depot/projects/s390/sys/arm/include/ieee.h#2 integrate .. //depot/projects/s390/sys/arm/include/vmparam.h#3 integrate .. //depot/projects/s390/sys/arm/mv/common.c#3 integrate .. //depot/projects/s390/sys/arm/mv/discovery/db78xxx.c#3 integrate .. //depot/projects/s390/sys/arm/mv/discovery/discovery.c#3 integrate .. //depot/projects/s390/sys/arm/mv/files.mv#3 integrate .. //depot/projects/s390/sys/arm/mv/gpio.c#2 integrate .. //depot/projects/s390/sys/arm/mv/kirkwood/db88f6xxx.c#3 integrate .. //depot/projects/s390/sys/arm/mv/kirkwood/kirkwood.c#3 integrate .. //depot/projects/s390/sys/arm/mv/mv_machdep.c#4 integrate .. //depot/projects/s390/sys/arm/mv/mv_pci.c#2 integrate .. //depot/projects/s390/sys/arm/mv/mvreg.h#3 integrate .. //depot/projects/s390/sys/arm/mv/mvvar.h#3 integrate .. //depot/projects/s390/sys/arm/mv/obio.c#3 integrate .. //depot/projects/s390/sys/arm/mv/orion/db88f5xxx.c#3 integrate .. //depot/projects/s390/sys/arm/mv/orion/orion.c#3 integrate .. //depot/projects/s390/sys/arm/sa11x0/assabet_machdep.c#6 integrate .. //depot/projects/s390/sys/arm/xscale/i8134x/i81342_mcu.c#2 integrate .. //depot/projects/s390/sys/arm/xscale/ixp425/avila_machdep.c#3 integrate .. //depot/projects/s390/sys/arm/xscale/ixp425/files.ixp425#3 integrate .. //depot/projects/s390/sys/arm/xscale/ixp425/if_npe.c#4 integrate .. //depot/projects/s390/sys/arm/xscale/ixp425/if_npereg.h#3 integrate .. //depot/projects/s390/sys/arm/xscale/ixp425/ixp425.c#3 integrate .. //depot/projects/s390/sys/arm/xscale/ixp425/ixp425_npe.c#3 integrate .. //depot/projects/s390/sys/arm/xscale/ixp425/ixp425_npevar.h#3 integrate .. //depot/projects/s390/sys/arm/xscale/ixp425/ixp425reg.h#3 integrate .. //depot/projects/s390/sys/arm/xscale/ixp425/ixp425var.h#3 integrate .. //depot/projects/s390/sys/arm/xscale/ixp425/ixp435_ehci.c#2 delete .. //depot/projects/s390/sys/boot/common/load.c#4 delete .. //depot/projects/s390/sys/boot/forth/loader.4th#3 integrate .. //depot/projects/s390/sys/boot/forth/loader.conf#12 integrate .. //depot/projects/s390/sys/boot/forth/pnp.4th#2 integrate .. //depot/projects/s390/sys/boot/forth/support.4th#4 integrate .. //depot/projects/s390/sys/boot/i386/boot0/Makefile#5 integrate .. //depot/projects/s390/sys/boot/i386/boot0/boot0.S#5 integrate .. //depot/projects/s390/sys/boot/i386/libi386/bootinfo64.c#4 integrate .. //depot/projects/s390/sys/boot/i386/pxeldr/pxeboot.8#5 integrate .. //depot/projects/s390/sys/bsm/audit.h#5 integrate .. //depot/projects/s390/sys/bsm/audit_domain.h#1 branch .. //depot/projects/s390/sys/bsm/audit_errno.h#1 branch .. //depot/projects/s390/sys/bsm/audit_internal.h#4 integrate .. //depot/projects/s390/sys/bsm/audit_kevents.h#5 integrate .. //depot/projects/s390/sys/bsm/audit_record.h#4 integrate .. //depot/projects/s390/sys/bsm/audit_socket_type.h#1 branch .. //depot/projects/s390/sys/cam/cam_periph.c#15 integrate .. //depot/projects/s390/sys/cam/cam_sim.h#5 integrate .. //depot/projects/s390/sys/cam/cam_xpt.c#12 integrate .. //depot/projects/s390/sys/cam/cam_xpt_sim.h#4 integrate .. //depot/projects/s390/sys/cam/scsi/scsi_all.c#9 integrate .. //depot/projects/s390/sys/cam/scsi/scsi_cd.c#18 integrate .. //depot/projects/s390/sys/cam/scsi/scsi_ch.c#9 integrate .. //depot/projects/s390/sys/cam/scsi/scsi_da.c#23 integrate .. //depot/projects/s390/sys/cam/scsi/scsi_low.c#10 integrate .. //depot/projects/s390/sys/cam/scsi/scsi_pass.c#8 integrate .. //depot/projects/s390/sys/cam/scsi/scsi_pt.c#8 integrate .. //depot/projects/s390/sys/cam/scsi/scsi_sa.c#16 integrate .. //depot/projects/s390/sys/cam/scsi/scsi_ses.c#8 integrate .. //depot/projects/s390/sys/cam/scsi/scsi_sg.c#2 integrate .. //depot/projects/s390/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_znode.c#4 integrate .. //depot/projects/s390/sys/compat/freebsd32/freebsd32_misc.c#9 integrate .. //depot/projects/s390/sys/compat/linprocfs/linprocfs.c#17 integrate .. //depot/projects/s390/sys/compat/linux/linux_misc.c#16 integrate .. //depot/projects/s390/sys/compat/linux/linux_stats.c#12 integrate .. //depot/projects/s390/sys/compat/ndis/kern_ndis.c#4 integrate .. //depot/projects/s390/sys/compat/ndis/kern_windrv.c#4 integrate .. //depot/projects/s390/sys/compat/ndis/ndis_var.h#4 integrate .. //depot/projects/s390/sys/compat/ndis/ntoskrnl_var.h#4 integrate .. //depot/projects/s390/sys/compat/ndis/subr_ndis.c#4 integrate .. //depot/projects/s390/sys/compat/ndis/subr_ntoskrnl.c#5 integrate .. //depot/projects/s390/sys/compat/ndis/subr_usbd.c#2 integrate .. //depot/projects/s390/sys/compat/ndis/usbd_var.h#2 integrate .. //depot/projects/s390/sys/compat/ndis/winx32_wrap.S#4 integrate .. //depot/projects/s390/sys/compat/svr4/svr4_types.h#3 integrate .. //depot/projects/s390/sys/conf/Makefile.arm#8 integrate .. //depot/projects/s390/sys/conf/NOTES#25 integrate .. //depot/projects/s390/sys/conf/files#27 integrate .. //depot/projects/s390/sys/conf/files.amd64#10 integrate .. //depot/projects/s390/sys/conf/files.i386#16 integrate .. //depot/projects/s390/sys/conf/files.ia64#16 integrate .. //depot/projects/s390/sys/conf/files.pc98#17 integrate .. //depot/projects/s390/sys/conf/files.powerpc#14 integrate .. //depot/projects/s390/sys/conf/files.sparc64#16 integrate .. //depot/projects/s390/sys/conf/kern.post.mk#16 integrate .. //depot/projects/s390/sys/conf/kern.pre.mk#11 integrate .. //depot/projects/s390/sys/conf/kmod.mk#17 integrate .. //depot/projects/s390/sys/conf/newvers.sh#8 integrate .. //depot/projects/s390/sys/conf/options#22 integrate .. //depot/projects/s390/sys/contrib/altq/altq/altq_subr.c#6 integrate .. //depot/projects/s390/sys/contrib/ipfilter/netinet/ip_fil_freebsd.c#5 integrate .. //depot/projects/s390/sys/contrib/pf/net/pf_ioctl.c#6 integrate .. //depot/projects/s390/sys/crypto/via/padlock.c#5 integrate .. //depot/projects/s390/sys/crypto/via/padlock_hash.c#2 integrate .. //depot/projects/s390/sys/dev/acpi_support/acpi_asus.c#6 integrate .. //depot/projects/s390/sys/dev/acpi_support/acpi_panasonic.c#4 integrate .. //depot/projects/s390/sys/dev/acpica/acpi_battery.c#8 integrate >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Thu Feb 5 21:05:02 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 15E341065670; Thu, 5 Feb 2009 21:05:02 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id C5633106566C for ; Thu, 5 Feb 2009 21:05:01 +0000 (UTC) (envelope-from sson@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 985418FC1E for ; Thu, 5 Feb 2009 21:05:01 +0000 (UTC) (envelope-from sson@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n15L519h011760 for ; Thu, 5 Feb 2009 21:05:01 GMT (envelope-from sson@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n15L5151011758 for perforce@freebsd.org; Thu, 5 Feb 2009 21:05:01 GMT (envelope-from sson@FreeBSD.org) Date: Thu, 5 Feb 2009 21:05:01 GMT Message-Id: <200902052105.n15L5151011758@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to sson@FreeBSD.org using -f From: Stacey Son To: Perforce Change Reviews Cc: Subject: PERFORCE change 157234 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 05 Feb 2009 21:05:03 -0000 http://perforce.freebsd.org/chv.cgi?CH=157234 Change 157234 by sson@sson_amd64 on 2009/02/05 21:04:50 NEWS and tools/audump.c updated. - Added news about audit trail expiration and filesz parameter using size suffixes. - Added checks for getacfilez(), getachost(), and getacexpire() to tools/audump.c. Affected files ... .. //depot/projects/trustedbsd/openbsm/NEWS#30 edit .. //depot/projects/trustedbsd/openbsm/tools/audump.c#8 edit Differences ... ==== //depot/projects/trustedbsd/openbsm/NEWS#30 (text+ko) ==== @@ -2,6 +2,14 @@ OpenBSM 1.1 beta 1 +- The filesz parameter in audit_control(5) now accepts suffixes: 'B' for + Bytes, 'K' for Kilobytes, 'M' for Megabytes, and 'G' for Gigabytes. + For legacy support no suffix defaults to bytes. +- Audit trail log expiration support added. It is configured in + audit_control(5) with the expire-after parameter. If there is no + expire-after parameter in audit_control(5), the default, then the audit + trail files are not expired and removed. See audit_control(5) for + more information. - Change defaults in audit_control: warn at 5% rather than 20% free for audit partitions, rotate automatically at 2mb, and set the default policy to cnt,argv rather than cnt so that execve(2) arguments are captured if @@ -420,4 +428,4 @@ to support reloading of kernel event table. - Allow comments in /etc/security configuration files. -$P4: //depot/projects/trustedbsd/openbsm/NEWS#29 $ +$P4: //depot/projects/trustedbsd/openbsm/NEWS#30 $ ==== //depot/projects/trustedbsd/openbsm/tools/audump.c#8 (text+ko) ==== @@ -23,7 +23,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $P4: //depot/projects/trustedbsd/openbsm/tools/audump.c#7 $ + * $P4: //depot/projects/trustedbsd/openbsm/tools/audump.c#8 $ */ #include @@ -80,6 +80,8 @@ char string[PATH_MAX], string2[PATH_MAX]; int ret, val; long policy; + time_t age; + size_t size; ret = getacflg(string, PATH_MAX); if (ret == -2) @@ -126,6 +128,32 @@ if (au_poltostr(policy, PATH_MAX, string2) < 0) err(-1, "au_poltostr"); printf("policy:%s\n", string2); + + ret = getacfilesz(&size); + if (ret == -2) + err(-1, "getacfilesz"); + if (ret != 0) + err(-1, "getacfilesz: %d", ret); + + printf("filesz:%ldB\n", size); + + + ret = getachost(string, PATH_MAX); + if (ret == -2) + err(-1, "getachost"); + if (ret == -3) + err(-1, "getachost: %d", ret); + if (ret == 0 && ret != 1) + printf("host:%s\n", string); + + ret = getacexpire(&val, &age, &size); + if (ret == -2) + err(-1, "getacexpire"); + if (ret == -1) + err(-1, "getacexpire: %d", ret); + if (ret == 0 && ret != 1) + printf("expire-after:%ldB %s %lds\n", size, + val ? "AND" : "OR", age); } static void From owner-p4-projects@FreeBSD.ORG Thu Feb 5 23:33:33 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 54B831065673; Thu, 5 Feb 2009 23:33:33 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 09840106566C for ; Thu, 5 Feb 2009 23:33:33 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id EA32F8FC1A for ; Thu, 5 Feb 2009 23:33:32 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n15NXWaE026464 for ; Thu, 5 Feb 2009 23:33:32 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n15NXWY9026462 for perforce@freebsd.org; Thu, 5 Feb 2009 23:33:32 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Thu, 5 Feb 2009 23:33:32 GMT Message-Id: <200902052333.n15NXWY9026462@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to bb+lists.freebsd.perforce@cyrus.watson.org using -f From: Robert Watson To: Perforce Change Reviews Cc: Subject: PERFORCE change 157244 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 05 Feb 2009 23:33:34 -0000 http://perforce.freebsd.org/chv.cgi?CH=157244 Change 157244 by rwatson@rwatson_freebsd_capabilities on 2009/02/05 23:32:56 When running in a sandbox, don't allow the use of shared objects named with absolute paths, as the proxed library service won't allow that. Affected files ... .. //depot/projects/trustedbsd/capabilities/src/libexec/rtld-elf/rtld.c#9 edit Differences ... ==== //depot/projects/trustedbsd/capabilities/src/libexec/rtld-elf/rtld.c#9 (text+ko) ==== @@ -1024,12 +1024,16 @@ char *name; if (strchr(xname, '/') != NULL) { /* Hard coded pathname */ +#ifndef IN_RTLD_CAP if (xname[0] != '/' && !trust) { +#endif _rtld_error("Absolute pathname required for shared object \"%s\"", xname); return NULL; +#ifndef IN_RTLD_CAP } return xstrdup(xname); +#endif } if (libmap_disable || (refobj == NULL) || From owner-p4-projects@FreeBSD.ORG Thu Feb 5 23:36:37 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 9E9EF1065673; Thu, 5 Feb 2009 23:36:36 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 5A2F7106566C for ; Thu, 5 Feb 2009 23:36:36 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 469268FC19 for ; Thu, 5 Feb 2009 23:36:36 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n15NaaTh026712 for ; Thu, 5 Feb 2009 23:36:36 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n15Naaw4026710 for perforce@freebsd.org; Thu, 5 Feb 2009 23:36:36 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Thu, 5 Feb 2009 23:36:36 GMT Message-Id: <200902052336.n15Naaw4026710@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to bb+lists.freebsd.perforce@cyrus.watson.org using -f From: Robert Watson To: Perforce Change Reviews Cc: Subject: PERFORCE change 157245 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 05 Feb 2009 23:36:37 -0000 http://perforce.freebsd.org/chv.cgi?CH=157245 Change 157245 by rwatson@rwatson_freebsd_capabilities on 2009/02/05 23:36:22 In a sandbox, access to the hints file is neither possible nor useful, that will be done by the proxy service. Affected files ... .. //depot/projects/trustedbsd/capabilities/src/libexec/rtld-elf/rtld.c#10 edit Differences ... ==== //depot/projects/trustedbsd/capabilities/src/libexec/rtld-elf/rtld.c#10 (text+ko) ==== @@ -93,7 +93,9 @@ static char *errmsg_save(void); static void *fill_search_info(const char *, size_t, void *); static char *find_library(const char *, const Obj_Entry *); +#ifndef IN_RTLD_CAP static const char *gethints(void); +#endif static void init_dag(Obj_Entry *); static void init_dag1(Obj_Entry *, Obj_Entry *, DoneList *); static void init_rtld(caddr_t); @@ -1045,7 +1047,9 @@ if ((pathname = search_library_path(name, ld_library_path)) != NULL || (refobj != NULL && (pathname = search_library_path(name, refobj->rpath)) != NULL) || +#ifndef IN_RTLD_CAP (pathname = search_library_path(name, gethints())) != NULL || +#endif (pathname = search_library_path(name, STANDARD_LIBRARY_PATH)) != NULL) return pathname; @@ -1134,6 +1138,7 @@ return def; } +#ifndef IN_RTLD_CAP /* * Return the search path from the ldconfig hints file, reading it if * necessary. Returns NULL if there are problems with the hints file, @@ -1172,6 +1177,7 @@ } return hints[0] != '\0' ? hints : NULL; } +#endif static void init_dag(Obj_Entry *root) @@ -2258,7 +2264,9 @@ path_enumerate(ld_library_path, fill_search_info, &args); path_enumerate(obj->rpath, fill_search_info, &args); +#ifndef IN_RTLD_CAP path_enumerate(gethints(), fill_search_info, &args); +#endif path_enumerate(STANDARD_LIBRARY_PATH, fill_search_info, &args); @@ -2286,9 +2294,11 @@ if (path_enumerate(obj->rpath, fill_search_info, &args) != NULL) return (-1); +#ifndef IN_RTLD_CAP args.flags = LA_SER_CONFIG; if (path_enumerate(gethints(), fill_search_info, &args) != NULL) return (-1); +#endif args.flags = LA_SER_DEFAULT; if (path_enumerate(STANDARD_LIBRARY_PATH, fill_search_info, &args) != NULL) From owner-p4-projects@FreeBSD.ORG Fri Feb 6 11:00:13 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id E64691065677; Fri, 6 Feb 2009 11:00:12 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id A62AB106566C for ; Fri, 6 Feb 2009 11:00:12 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 810F18FC16 for ; Fri, 6 Feb 2009 11:00:12 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n16B0C2r032267 for ; Fri, 6 Feb 2009 11:00:12 GMT (envelope-from hselasky@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n16B0Ctl032265 for perforce@freebsd.org; Fri, 6 Feb 2009 11:00:12 GMT (envelope-from hselasky@FreeBSD.org) Date: Fri, 6 Feb 2009 11:00:12 GMT Message-Id: <200902061100.n16B0Ctl032265@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky To: Perforce Change Reviews Cc: Subject: PERFORCE change 157255 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 06 Feb 2009 11:00:13 -0000 http://perforce.freebsd.org/chv.cgi?CH=157255 Change 157255 by hselasky@hselasky_laptop001 on 2009/02/06 11:00:00 USB Audio: Make sure that attach waits for the generic probe to leave room for firware loader drivers and device specific USB Audio drivers like USB phone adapters. Affected files ... .. //depot/projects/usb/src/sys/dev/usb2/sound/uaudio2.c#28 edit Differences ... ==== //depot/projects/usb/src/sys/dev/usb2/sound/uaudio2.c#28 (text+ko) ==== @@ -539,9 +539,12 @@ { struct usb2_attach_arg *uaa = device_get_ivars(dev); - if (uaa->usb2_mode != USB_MODE_HOST) { + if (uaa->usb2_mode != USB_MODE_HOST) + return (ENXIO); + + if (uaa->use_generic == 0) return (ENXIO); - } + /* trigger on the control interface */ if ((uaa->info.bInterfaceClass == UICLASS_AUDIO) && From owner-p4-projects@FreeBSD.ORG Fri Feb 6 19:45:14 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 31FE71065675; Fri, 6 Feb 2009 19:45:14 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id E046A1065673 for ; Fri, 6 Feb 2009 19:45:13 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id B3BB78FC14 for ; Fri, 6 Feb 2009 19:45:13 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n16JjBw5012013 for ; Fri, 6 Feb 2009 19:45:11 GMT (envelope-from hselasky@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n16JjABv012002 for perforce@freebsd.org; Fri, 6 Feb 2009 19:45:10 GMT (envelope-from hselasky@FreeBSD.org) Date: Fri, 6 Feb 2009 19:45:10 GMT Message-Id: <200902061945.n16JjABv012002@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky To: Perforce Change Reviews Cc: Subject: PERFORCE change 157296 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 06 Feb 2009 19:45:16 -0000 http://perforce.freebsd.org/chv.cgi?CH=157296 Change 157296 by hselasky@hselasky_laptop001 on 2009/02/06 19:44:23 Fix OHCI and EHCI counting bug when multiple TD's are involved in a short USB transfer and a short packet happens on the non-last TD in the USB transfer frame. Fix by: HPS Reported by: Andrew Thompson Affected files ... .. //depot/projects/usb/src/sys/dev/usb2/controller/ehci2.c#30 edit .. //depot/projects/usb/src/sys/dev/usb2/controller/ohci2.c#27 edit Differences ... ==== //depot/projects/usb/src/sys/dev/usb2/controller/ehci2.c#30 (text+ko) ==== @@ -1145,6 +1145,9 @@ td = xfer->td_transfer_cache; td_alt_next = td->alt_next; + if (xfer->aframes != xfer->nframes) { + xfer->frlengths[xfer->aframes] = 0; + } while (1) { usb2_pc_cpu_invalidate(td->page_cache); @@ -1153,8 +1156,8 @@ len = EHCI_QTD_GET_BYTES(status); /* - * Verify the status length and subtract - * the remainder from "frlengths[]": + * Verify the status length and + * add the length to "frlengths[]": */ if (len > td->len) { /* should not happen */ @@ -1162,7 +1165,7 @@ "0x%04x/0x%04x bytes\n", len, td->len); status |= EHCI_QTD_HALTED; } else if (xfer->aframes != xfer->nframes) { - xfer->frlengths[xfer->aframes] -= len; + xfer->frlengths[xfer->aframes] += td->len - len; } /* Check for last transfer */ if (((void *)td) == xfer->td_transfer_last) { ==== //depot/projects/usb/src/sys/dev/usb2/controller/ohci2.c#27 (text+ko) ==== @@ -838,6 +838,9 @@ td_alt_next = td->alt_next; td_flags = 0; + if (xfer->aframes != xfer->nframes) { + xfer->frlengths[xfer->aframes] = 0; + } while (1) { usb2_pc_cpu_invalidate(td->page_cache); @@ -861,10 +864,15 @@ cc = OHCI_CC_STALL; } else if (xfer->aframes != xfer->nframes) { /* - * subtract remaining length from - * "frlengths[]" + * Sum up total transfer length + * in "frlengths[]": */ - xfer->frlengths[xfer->aframes] -= temp; + xfer->frlengths[xfer->aframes] += td->len - temp; + } + } else{ + if (xfer->aframes != xfer->nframes) { + /* transfer was complete */ + xfer->frlengths[xfer->aframes] += td->len; } } /* Check for last transfer */ From owner-p4-projects@FreeBSD.ORG Fri Feb 6 21:49:21 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 544C81065675; Fri, 6 Feb 2009 21:49:21 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 143261065670 for ; Fri, 6 Feb 2009 21:49:21 +0000 (UTC) (envelope-from andrew@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 026638FC1C for ; Fri, 6 Feb 2009 21:49:21 +0000 (UTC) (envelope-from andrew@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n16LnKwU032829 for ; Fri, 6 Feb 2009 21:49:20 GMT (envelope-from andrew@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n16LnKjj032827 for perforce@freebsd.org; Fri, 6 Feb 2009 21:49:20 GMT (envelope-from andrew@freebsd.org) Date: Fri, 6 Feb 2009 21:49:20 GMT Message-Id: <200902062149.n16LnKjj032827@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to andrew@freebsd.org using -f From: Andrew Turner To: Perforce Change Reviews Cc: Subject: PERFORCE change 157306 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 06 Feb 2009 21:49:22 -0000 http://perforce.freebsd.org/chv.cgi?CH=157306 Change 157306 by andrew@andrew_bender on 2009/02/06 21:49:07 Detect which s3c24x0 CPU we are running on. This is useful as most registers are the same so we can share drivers between the s3c2410 and s3c2440 however there are slight differences that we need to account for. Only the S3C2410A and S3C2442B are currently detected as that is all I have hardware/emulators for. Affected files ... .. //depot/projects/arm/src/sys/arm/s3c2xx0/s3c2410.c#19 edit .. //depot/projects/arm/src/sys/arm/s3c2xx0/s3c24x0_mci.c#3 edit .. //depot/projects/arm/src/sys/arm/s3c2xx0/s3c2xx0var.h#9 edit Differences ... ==== //depot/projects/arm/src/sys/arm/s3c2xx0/s3c2410.c#19 (text+ko) ==== @@ -54,6 +54,17 @@ #define IPL_LEVELS 13 u_int irqmasks[IPL_LEVELS]; +static struct { + uint32_t idcode; + const char *name; + s3c2xx0_cpu cpu; +} s3c2x0_cpu_id[] = { + { 0x32410002, "S3C2410A", CPU_S3C2410 }, + { 0x32440AAB, "S3C2442B", CPU_S3C2440 }, + + { 0, NULL } +}; + /* prototypes */ static device_t s3c2410_add_child(device_t, int, const char *, int); @@ -72,6 +83,8 @@ struct resource *); static struct resource_list *s3c2410_get_resource_list(device_t, device_t); +static void s3c24x0_identify_cpu(device_t); + static device_method_t s3c2410_methods[] = { DEVMETHOD(device_probe, s3c2410_probe), DEVMETHOD(device_attach, s3c2410_attach), @@ -331,14 +344,17 @@ S3C24X0_TIMER_SIZE, 0, &sc->sc_timer_ioh)) panic("cannot map TIMER"); -#if 0 /* calculate current clock frequency */ s3c24x0_clock_freq(&sc->sc_sx); printf(": fclk %d MHz hclk %d MHz pclk %d MHz", sc->sc_sx.sc_fclk / 1000000, sc->sc_sx.sc_hclk / 1000000, sc->sc_sx.sc_pclk / 1000000); printf("\n"); -#endif + + /* + * Identify the CPU + */ + s3c24x0_identify_cpu(dev); /* * Attach children devices @@ -378,6 +394,29 @@ return (0); } +static void +s3c24x0_identify_cpu(device_t dev) +{ + struct s3c24x0_softc *sc = device_get_softc(dev); + uint32_t idcode; + int i; + + idcode = bus_space_read_4(sc->sc_sx.sc_iot, sc->sc_sx.sc_gpio_ioh, + GPIO_GSTATUS1); + + for (i = 0; s3c2x0_cpu_id[i].name != NULL; i++) { + if (s3c2x0_cpu_id[i].idcode == idcode) + break; + } + device_printf(dev, "Found %s CPU (Chip ID: 0x%X)\n", + (s3c2x0_cpu_id[i].name != NULL) ? s3c2x0_cpu_id[i].name : "unknown", + idcode); + if (s3c2x0_cpu_id[i].name == NULL) { + panic("Unknown CPU detected"); + } + sc->sc_sx.sc_cpu = s3c2x0_cpu_id[i].cpu; +} + /* * fill sc_pclk, sc_hclk, sc_fclk from values of clock controller register. * @@ -528,6 +567,7 @@ case S3C2410_INT_ERR0: irq = S3C2410_INT_UART0; break; + case S3C2410_INT_RXD1: case S3C2410_INT_TXD1: case S3C2410_INT_ERR1: ==== //depot/projects/arm/src/sys/arm/s3c2xx0/s3c24x0_mci.c#3 (text+ko) ==== @@ -483,6 +483,9 @@ case MMCBR_IVAR_VDD: *(int *)result = sc->host.ios.vdd; break; + case MMCBR_IVAR_MAX_DATA: + *(int *)result = 1; + break; } return (0); } @@ -522,6 +525,7 @@ case MMCBR_IVAR_HOST_OCR: case MMCBR_IVAR_F_MIN: case MMCBR_IVAR_F_MAX: + case MMCBR_IVAR_MAX_DATA: return (EINVAL); } return (0); ==== //depot/projects/arm/src/sys/arm/s3c2xx0/s3c2xx0var.h#9 (text+ko) ==== @@ -38,9 +38,16 @@ #include #include +typedef enum { + CPU_S3C2410, + CPU_S3C2440, +} s3c2xx0_cpu; + struct s3c2xx0_softc { device_t sc_dev; + s3c2xx0_cpu sc_cpu; + bus_space_tag_t sc_iot; bus_space_handle_t sc_intctl_ioh; From owner-p4-projects@FreeBSD.ORG Fri Feb 6 21:57:29 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id ACE2510656C4; Fri, 6 Feb 2009 21:57:29 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 69CF610656C1 for ; Fri, 6 Feb 2009 21:57:29 +0000 (UTC) (envelope-from andrew@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 586868FC12 for ; Fri, 6 Feb 2009 21:57:29 +0000 (UTC) (envelope-from andrew@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n16LvTRt033449 for ; Fri, 6 Feb 2009 21:57:29 GMT (envelope-from andrew@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n16LvTpr033447 for perforce@freebsd.org; Fri, 6 Feb 2009 21:57:29 GMT (envelope-from andrew@freebsd.org) Date: Fri, 6 Feb 2009 21:57:29 GMT Message-Id: <200902062157.n16LvTpr033447@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to andrew@freebsd.org using -f From: Andrew Turner To: Perforce Change Reviews Cc: Subject: PERFORCE change 157307 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 06 Feb 2009 21:57:30 -0000 http://perforce.freebsd.org/chv.cgi?CH=157307 Change 157307 by andrew@andrew_bender on 2009/02/06 21:57:12 Rename s3c2410.c to s3c24x0.c as the s3c2410 and s3c2440 are close enough for this to be used on both Affected files ... .. //depot/projects/arm/src/sys/arm/s3c2xx0/files.s3c2xx0#5 edit .. //depot/projects/arm/src/sys/arm/s3c2xx0/s3c2410.c#20 delete .. //depot/projects/arm/src/sys/arm/s3c2xx0/s3c24x0.c#1 branch Differences ... ==== //depot/projects/arm/src/sys/arm/s3c2xx0/files.s3c2xx0#5 (text+ko) ==== @@ -1,7 +1,7 @@ # $FreeBSD$ arm/arm/cpufunc_asm_arm9.S standard arm/arm/irq_dispatch.S standard -arm/s3c2xx0/s3c2410.c standard +arm/s3c2xx0/s3c24x0.c standard arm/s3c2xx0/s3c2xx0_space.c standard arm/s3c2xx0/s3c24x0_clk.c standard arm/s3c2xx0/s3c24x0_mci.c standard From owner-p4-projects@FreeBSD.ORG Fri Feb 6 22:43:16 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 745FC1065672; Fri, 6 Feb 2009 22:43:16 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 3288C106564A for ; Fri, 6 Feb 2009 22:43:16 +0000 (UTC) (envelope-from andrew@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 1F79D8FC12 for ; Fri, 6 Feb 2009 22:43:16 +0000 (UTC) (envelope-from andrew@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n16MhGZP037759 for ; Fri, 6 Feb 2009 22:43:16 GMT (envelope-from andrew@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n16MhFrZ037757 for perforce@freebsd.org; Fri, 6 Feb 2009 22:43:15 GMT (envelope-from andrew@freebsd.org) Date: Fri, 6 Feb 2009 22:43:15 GMT Message-Id: <200902062243.n16MhFrZ037757@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to andrew@freebsd.org using -f From: Andrew Turner To: Perforce Change Reviews Cc: Subject: PERFORCE change 157311 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 06 Feb 2009 22:43:18 -0000 http://perforce.freebsd.org/chv.cgi?CH=157311 Change 157311 by andrew@andrew_bender on 2009/02/06 22:42:36 Rename the s3c2410 driver to s3c24x0 to reflect the new file name Affected files ... .. //depot/projects/arm/src/sys/arm/s3c2xx0/s3c24x0.c#2 edit .. //depot/projects/arm/src/sys/arm/s3c2xx0/s3c24x0_clk.c#4 edit .. //depot/projects/arm/src/sys/arm/s3c2xx0/s3c24x0_mci.c#4 edit .. //depot/projects/arm/src/sys/arm/s3c2xx0/s3c24x0_nand.c#3 edit .. //depot/projects/arm/src/sys/arm/s3c2xx0/uart_bus_s3c2410.c#4 edit Differences ... ==== //depot/projects/arm/src/sys/arm/s3c2xx0/s3c24x0.c#2 (text+ko) ==== @@ -66,53 +66,53 @@ }; /* prototypes */ -static device_t s3c2410_add_child(device_t, int, const char *, int); +static device_t s3c24x0_add_child(device_t, int, const char *, int); -static int s3c2410_probe(device_t); -static int s3c2410_attach(device_t); -static void s3c2410_identify(driver_t *, device_t); -static int s3c2410_setup_intr(device_t, device_t, struct resource *, int, +static int s3c24x0_probe(device_t); +static int s3c24x0_attach(device_t); +static void s3c24x0_identify(driver_t *, device_t); +static int s3c24x0_setup_intr(device_t, device_t, struct resource *, int, driver_filter_t *, driver_intr_t *, void *, void **); -static int s3c2410_teardown_intr(device_t, device_t, struct resource *, +static int s3c24x0_teardown_intr(device_t, device_t, struct resource *, void *); -static struct resource *s3c2410_alloc_resource(device_t, device_t, int, int *, +static struct resource *s3c24x0_alloc_resource(device_t, device_t, int, int *, u_long, u_long, u_long, u_int); -static int s3c2410_activate_resource(device_t, device_t, int, int, +static int s3c24x0_activate_resource(device_t, device_t, int, int, struct resource *); -static int s3c2410_release_resource(device_t, device_t, int, int, +static int s3c24x0_release_resource(device_t, device_t, int, int, struct resource *); -static struct resource_list *s3c2410_get_resource_list(device_t, device_t); +static struct resource_list *s3c24x0_get_resource_list(device_t, device_t); static void s3c24x0_identify_cpu(device_t); -static device_method_t s3c2410_methods[] = { - DEVMETHOD(device_probe, s3c2410_probe), - DEVMETHOD(device_attach, s3c2410_attach), - DEVMETHOD(device_identify, s3c2410_identify), - DEVMETHOD(bus_setup_intr, s3c2410_setup_intr), - DEVMETHOD(bus_teardown_intr, s3c2410_teardown_intr), - DEVMETHOD(bus_alloc_resource, s3c2410_alloc_resource), - DEVMETHOD(bus_activate_resource, s3c2410_activate_resource), - DEVMETHOD(bus_release_resource, s3c2410_release_resource), - DEVMETHOD(bus_get_resource_list,s3c2410_get_resource_list), +static device_method_t s3c24x0_methods[] = { + DEVMETHOD(device_probe, s3c24x0_probe), + DEVMETHOD(device_attach, s3c24x0_attach), + DEVMETHOD(device_identify, s3c24x0_identify), + DEVMETHOD(bus_setup_intr, s3c24x0_setup_intr), + DEVMETHOD(bus_teardown_intr, s3c24x0_teardown_intr), + DEVMETHOD(bus_alloc_resource, s3c24x0_alloc_resource), + DEVMETHOD(bus_activate_resource, s3c24x0_activate_resource), + DEVMETHOD(bus_release_resource, s3c24x0_release_resource), + DEVMETHOD(bus_get_resource_list,s3c24x0_get_resource_list), DEVMETHOD(bus_set_resource, bus_generic_rl_set_resource), DEVMETHOD(bus_get_resource, bus_generic_rl_get_resource), {0, 0}, }; -static driver_t s3c2410_driver = { - "s3c2410", - s3c2410_methods, +static driver_t s3c24x0_driver = { + "s3c24x0", + s3c24x0_methods, sizeof(struct s3c24x0_softc), }; -static devclass_t s3c2410_devclass; +static devclass_t s3c24x0_devclass; -DRIVER_MODULE(s3c2410, nexus, s3c2410_driver, s3c2410_devclass, 0, 0); +DRIVER_MODULE(s3c24x0, nexus, s3c24x0_driver, s3c24x0_devclass, 0, 0); struct s3c2xx0_softc *s3c2xx0_softc = NULL; static device_t -s3c2410_add_child(device_t bus, int prio, const char *name, int unit) +s3c24x0_add_child(device_t bus, int prio, const char *name, int unit) { device_t child; struct s3c2xx0_ivar *ivar; @@ -134,7 +134,7 @@ } static int -s3c2410_setup_intr(device_t dev, device_t child, +s3c24x0_setup_intr(device_t dev, device_t child, struct resource *ires, int flags, driver_filter_t *filt, driver_intr_t *intr, void *arg, void **cookiep) { @@ -152,14 +152,14 @@ } static int -s3c2410_teardown_intr(device_t dev, device_t child, struct resource *res, +s3c24x0_teardown_intr(device_t dev, device_t child, struct resource *res, void *cookie) { return (BUS_TEARDOWN_INTR(device_get_parent(dev), child, res, cookie)); } static struct resource * -s3c2410_alloc_resource(device_t bus, device_t child, int type, int *rid, +s3c24x0_alloc_resource(device_t bus, device_t child, int type, int *rid, u_long start, u_long end, u_long count, u_int flags) { struct resource_list_entry *rle; @@ -244,14 +244,14 @@ } static int -s3c2410_activate_resource(device_t bus, device_t child, int type, int rid, +s3c24x0_activate_resource(device_t bus, device_t child, int type, int rid, struct resource *r) { return (0); } static int -s3c2410_release_resource(device_t bus, device_t child, int type, int rid, +s3c24x0_release_resource(device_t bus, device_t child, int type, int rid, struct resource *r) { struct s3c2xx0_ivar *ivar = device_get_ivars(child); @@ -272,7 +272,7 @@ } static struct resource_list * -s3c2410_get_resource_list(device_t dev, device_t child) +s3c24x0_get_resource_list(device_t dev, device_t child) { struct s3c2xx0_ivar *ivar; @@ -281,20 +281,20 @@ } void -s3c2410_identify(driver_t *driver, device_t parent) +s3c24x0_identify(driver_t *driver, device_t parent) { - BUS_ADD_CHILD(parent, 0, "s3c2410", 0); + BUS_ADD_CHILD(parent, 0, "s3c24x0", 0); } int -s3c2410_probe(device_t dev) +s3c24x0_probe(device_t dev) { return 0; } int -s3c2410_attach(device_t dev) +s3c24x0_attach(device_t dev) { struct s3c24x0_softc *sc = device_get_softc(dev); bus_space_tag_t iot; @@ -373,17 +373,17 @@ S3C2410_REG_BASE + S3C2410_REG_SIZE) != 0) panic("s3c2410_attach: failed to set up register rman"); - s3c2410_add_child(dev, 0, "nand", 0); - s3c2410_add_child(dev, 0, "timer", 0); + s3c24x0_add_child(dev, 0, "nand", 0); + s3c24x0_add_child(dev, 0, "timer", 0); /* Add the MMC/SD and set it's irq/registers */ - child = s3c2410_add_child(dev, 0, "s3c24x0_mci", 0); + child = s3c24x0_add_child(dev, 0, "s3c24x0_mci", 0); bus_set_resource(child, SYS_RES_IRQ, 0, S3C2410_INT_SDI, 1); bus_set_resource(child, SYS_RES_IOPORT, 0, S3C2410_SDI_BASE, S3C2410_SDI_SIZE); /* Add the uart and set it's irq and registers */ - child = s3c2410_add_child(dev, 0, "uart", 0); + child = s3c24x0_add_child(dev, 0, "uart", 0); bus_set_resource(child, SYS_RES_IRQ, 0, S3C2410_INT_UART0, 1); bus_set_resource(child, SYS_RES_IOPORT, 0, S3C2410_UART0_BASE, S3C2410_UART_BASE(1) - S3C2410_UART0_BASE); ==== //depot/projects/arm/src/sys/arm/s3c2xx0/s3c24x0_clk.c#4 (text+ko) ==== @@ -94,7 +94,7 @@ }; static devclass_t s3c24x0_timer_devclass; -DRIVER_MODULE(s3c24x0timer, s3c2410, s3c24x0_timer_driver, s3c24x0_timer_devclass, 0, 0); +DRIVER_MODULE(s3c24x0timer, s3c24x0, s3c24x0_timer_driver, s3c24x0_timer_devclass, 0, 0); #ifndef STATHZ #define STATHZ 64 ==== //depot/projects/arm/src/sys/arm/s3c2xx0/s3c24x0_mci.c#4 (text+ko) ==== @@ -559,5 +559,5 @@ static devclass_t s3c24x0_mci_devclass; -DRIVER_MODULE(s3c24x0_mci, s3c2410, s3c24x0_mci_driver, s3c24x0_mci_devclass, 0, 0); +DRIVER_MODULE(s3c24x0_mci, s3c24x0, s3c24x0_mci_driver, s3c24x0_mci_devclass, 0, 0); ==== //depot/projects/arm/src/sys/arm/s3c2xx0/s3c24x0_nand.c#3 (text+ko) ==== @@ -497,4 +497,4 @@ return(0); } -DRIVER_MODULE(nand, s3c2410, nand_s3c2410_driver, nand_devclass, 0, 0); +DRIVER_MODULE(nand, s3c24x0, nand_s3c2410_driver, nand_devclass, 0, 0); ==== //depot/projects/arm/src/sys/arm/s3c2xx0/uart_bus_s3c2410.c#4 (text+ko) ==== @@ -48,4 +48,4 @@ return (0); } -DRIVER_MODULE(uart, s3c2410, uart_s3c2410_driver, uart_devclass, 0, 0); +DRIVER_MODULE(uart, s3c24x0, uart_s3c2410_driver, uart_devclass, 0, 0); From owner-p4-projects@FreeBSD.ORG Sat Feb 7 14:16:13 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 52CBF106566C; Sat, 7 Feb 2009 14:16:13 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 12DE6106564A for ; Sat, 7 Feb 2009 14:16:13 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id DB4D98FC0A for ; Sat, 7 Feb 2009 14:16:12 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n17EGC1B068554 for ; Sat, 7 Feb 2009 14:16:12 GMT (envelope-from hselasky@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n17EGCBL068552 for perforce@freebsd.org; Sat, 7 Feb 2009 14:16:12 GMT (envelope-from hselasky@FreeBSD.org) Date: Sat, 7 Feb 2009 14:16:12 GMT Message-Id: <200902071416.n17EGCBL068552@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky To: Perforce Change Reviews Cc: Subject: PERFORCE change 157335 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 07 Feb 2009 14:16:14 -0000 http://perforce.freebsd.org/chv.cgi?CH=157335 Change 157335 by hselasky@hselasky_laptop001 on 2009/02/07 14:16:01 libusb20 compat layer: Fix regression issue. Affected files ... .. //depot/projects/usb/src/lib/libusb20/libusb20_compat01.c#10 edit Differences ... ==== //depot/projects/usb/src/lib/libusb20/libusb20_compat01.c#10 (text+ko) ==== @@ -808,7 +808,11 @@ if (err) return (-1); - return (0); + /* + * Be compatible with LibUSB from sourceforge and close the + * handle after reset! + */ + return (usb_close(dev)); } const char * From owner-p4-projects@FreeBSD.ORG Sat Feb 7 14:17:02 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 26614106567A; Sat, 7 Feb 2009 14:17:02 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id ADBCB1065678 for ; Sat, 7 Feb 2009 14:17:01 +0000 (UTC) (envelope-from hselasky@c2i.net) Received: from swip.net (mailfe05.swip.net [212.247.154.129]) by mx1.freebsd.org (Postfix) with ESMTP id 43BBD8FC18 for ; Sat, 7 Feb 2009 14:17:01 +0000 (UTC) (envelope-from hselasky@c2i.net) X-Cloudmark-Score: 0.000000 [] X-Cloudmark-Analysis: v=1.0 c=1 a=lmboSLux950A:10 a=6I5d2MoRAAAA:8 a=WrUjr82DnDp0dJ4RUi4A:9 a=SC8p42SPURaL_p88wSMA:7 a=D_bx8oHWEklSCZCjRlMptzwxbyMA:4 a=LY0hPdMaydYA:10 Received: from [193.217.167.198] (account mc467741@c2i.net HELO [10.0.0.186]) by mailfe05.swip.net (CommuniGate Pro SMTP 5.2.6) with ESMTPA id 1089964158 for perforce@freebsd.org; Sat, 07 Feb 2009 15:16:59 +0100 From: Hans Petter Selasky To: Perforce Change Reviews Date: Sat, 7 Feb 2009 15:19:23 +0100 User-Agent: KMail/1.9.7 References: <200902071416.n17EGCBL068552@repoman.freebsd.org> In-Reply-To: <200902071416.n17EGCBL068552@repoman.freebsd.org> MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit Content-Disposition: inline Message-Id: <200902071519.25152.hselasky@c2i.net> Cc: Subject: Re: PERFORCE change 157335 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 07 Feb 2009 14:17:07 -0000 On Saturday 07 February 2009, Hans Petter Selasky wrote: > http://perforce.freebsd.org/chv.cgi?CH=157335 > > Change 157335 by hselasky@hselasky_laptop001 on 2009/02/07 14:16:01 > > > libusb20 compat layer: Fix regression issue. Reported by "Bruce Cran". --HPS From owner-p4-projects@FreeBSD.ORG Sat Feb 7 23:54:02 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 873781065673; Sat, 7 Feb 2009 23:54:02 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 473C3106564A for ; Sat, 7 Feb 2009 23:54:02 +0000 (UTC) (envelope-from gonzo@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 35B048FC0C for ; Sat, 7 Feb 2009 23:54:02 +0000 (UTC) (envelope-from gonzo@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n17Ns2FR044216 for ; Sat, 7 Feb 2009 23:54:02 GMT (envelope-from gonzo@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n17Ns2B2044214 for perforce@freebsd.org; Sat, 7 Feb 2009 23:54:02 GMT (envelope-from gonzo@FreeBSD.org) Date: Sat, 7 Feb 2009 23:54:02 GMT Message-Id: <200902072354.n17Ns2B2044214@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to gonzo@FreeBSD.org using -f From: Oleksandr Tymoshenko To: Perforce Change Reviews Cc: Subject: PERFORCE change 157347 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 07 Feb 2009 23:54:03 -0000 http://perforce.freebsd.org/chv.cgi?CH=157347 Change 157347 by gonzo@gonzo_figaro on 2009/02/07 23:53:30 - Add avr32 entries Affected files ... .. //depot/projects/avr32/src/share/mk/bsd.cpu.mk#2 edit .. //depot/projects/avr32/src/share/mk/bsd.endian.mk#2 edit Differences ... ==== //depot/projects/avr32/src/share/mk/bsd.cpu.mk#2 (text+ko) ==== @@ -19,6 +19,8 @@ MACHINE_CPU = arm . elif ${MACHINE_ARCH} == "mips" MACHINE_CPU = mips +. elif ${MACHINE_ARCH} == "avr32" +MACHINE_CPU = avr32 . endif .else ==== //depot/projects/avr32/src/share/mk/bsd.endian.mk#2 (text+ko) ==== @@ -4,6 +4,7 @@ ${MACHINE_ARCH} == "i386" || \ ${MACHINE_ARCH} == "ia64" || \ (${MACHINE_ARCH} == "arm" && !defined(TARGET_BIG_ENDIAN)) || \ + ${MACHINE_ARCH} == "avr32" || \ (${MACHINE_ARCH} == "mips" && !defined(TARGET_BIG_ENDIAN)) TARGET_ENDIANNESS= 1234 .elif ${MACHINE_ARCH} == "powerpc" || \ From owner-p4-projects@FreeBSD.ORG Sat Feb 7 23:56:11 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 4EC5A106567E; Sat, 7 Feb 2009 23:56:06 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id A83601065674 for ; Sat, 7 Feb 2009 23:56:04 +0000 (UTC) (envelope-from gonzo@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 6738A8FC13 for ; Sat, 7 Feb 2009 23:56:04 +0000 (UTC) (envelope-from gonzo@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n17Nu411044405 for ; Sat, 7 Feb 2009 23:56:04 GMT (envelope-from gonzo@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n17Nu4kp044403 for perforce@freebsd.org; Sat, 7 Feb 2009 23:56:04 GMT (envelope-from gonzo@FreeBSD.org) Date: Sat, 7 Feb 2009 23:56:04 GMT Message-Id: <200902072356.n17Nu4kp044403@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to gonzo@FreeBSD.org using -f From: Oleksandr Tymoshenko To: Perforce Change Reviews Cc: Subject: PERFORCE change 157348 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 07 Feb 2009 23:56:16 -0000 http://perforce.freebsd.org/chv.cgi?CH=157348 Change 157348 by gonzo@gonzo_figaro on 2009/02/07 23:55:20 - No GDB for avr32 yet Affected files ... .. //depot/projects/avr32/src/gnu/usr.bin/Makefile#2 edit Differences ... ==== //depot/projects/avr32/src/gnu/usr.bin/Makefile#2 (text+ko) ==== @@ -23,7 +23,7 @@ sort \ ${_texinfo} -.if ${MACHINE_ARCH} == "mips" +.if ${MACHINE_ARCH} == "mips" || ${MACHINE_ARCH} == "avr32" MK_GDB=no # not yet .endif