PERFORCE change 181472 for review
Benjamin Fiedler
bfiedler at FreeBSD.org
Wed Jul 28 08:21:47 UTC 2010
http://p4web.freebsd.org/@@181472?ac=10
Change 181472 by bfiedler at freebsd-home on 2010/07/27 01:54:13
IFC
Affected files ...
.. //depot/projects/soc2010/bsdtextproc/src/bin/ps/keyword.c#2 integrate
.. //depot/projects/soc2010/bsdtextproc/src/bin/ps/ps.1#2 integrate
.. //depot/projects/soc2010/bsdtextproc/src/cddl/contrib/opensolaris/tools/ctf/cvt/output.c#2 integrate
.. //depot/projects/soc2010/bsdtextproc/src/sys/amd64/linux32/linux32_machdep.c#3 integrate
.. //depot/projects/soc2010/bsdtextproc/src/sys/amd64/linux32/linux32_proto.h#2 integrate
.. //depot/projects/soc2010/bsdtextproc/src/sys/amd64/linux32/linux32_syscall.h#2 integrate
.. //depot/projects/soc2010/bsdtextproc/src/sys/amd64/linux32/linux32_sysent.c#2 integrate
.. //depot/projects/soc2010/bsdtextproc/src/sys/amd64/linux32/syscalls.master#2 integrate
.. //depot/projects/soc2010/bsdtextproc/src/sys/arm/s3c2xx0/s3c24x0.c#3 integrate
.. //depot/projects/soc2010/bsdtextproc/src/sys/arm/s3c2xx0/s3c24x0reg.h#3 integrate
.. //depot/projects/soc2010/bsdtextproc/src/sys/boot/pc98/loader/Makefile#2 integrate
.. //depot/projects/soc2010/bsdtextproc/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_deleg.c#2 integrate
.. //depot/projects/soc2010/bsdtextproc/src/sys/compat/freebsd32/freebsd32_misc.c#3 integrate
.. //depot/projects/soc2010/bsdtextproc/src/sys/compat/freebsd32/freebsd32_util.h#2 integrate
.. //depot/projects/soc2010/bsdtextproc/src/sys/conf/files#2 integrate
.. //depot/projects/soc2010/bsdtextproc/src/sys/dev/e1000/if_igb.c#3 integrate
.. //depot/projects/soc2010/bsdtextproc/src/sys/dev/ichwd/ichwd.c#2 integrate
.. //depot/projects/soc2010/bsdtextproc/src/sys/fs/nfsclient/nfs_cllock.c#2 delete
.. //depot/projects/soc2010/bsdtextproc/src/sys/fs/nfsclient/nfs_clnfsiod.c#2 integrate
.. //depot/projects/soc2010/bsdtextproc/src/sys/fs/nfsclient/nfs_clport.c#2 integrate
.. //depot/projects/soc2010/bsdtextproc/src/sys/fs/nfsclient/nfs_clsubs.c#2 integrate
.. //depot/projects/soc2010/bsdtextproc/src/sys/fs/nfsclient/nfs_clvnops.c#2 integrate
.. //depot/projects/soc2010/bsdtextproc/src/sys/fs/nfsclient/nfs_lock.h#2 delete
.. //depot/projects/soc2010/bsdtextproc/src/sys/mips/include/vmparam.h#3 integrate
.. //depot/projects/soc2010/bsdtextproc/src/sys/modules/Makefile#3 integrate
.. //depot/projects/soc2010/bsdtextproc/src/sys/modules/nfscl/Makefile#2 integrate
.. //depot/projects/soc2010/bsdtextproc/src/sys/modules/nfsclient/Makefile#2 integrate
.. //depot/projects/soc2010/bsdtextproc/src/sys/modules/nfslock/Makefile#1 branch
.. //depot/projects/soc2010/bsdtextproc/src/sys/nfs/nfs_lock.c#1 branch
.. //depot/projects/soc2010/bsdtextproc/src/sys/nfs/nfs_lock.h#1 branch
.. //depot/projects/soc2010/bsdtextproc/src/sys/nfsclient/nfs_lock.c#2 delete
.. //depot/projects/soc2010/bsdtextproc/src/sys/nfsclient/nfs_lock.h#2 delete
.. //depot/projects/soc2010/bsdtextproc/src/sys/nfsclient/nfs_nfsiod.c#2 integrate
.. //depot/projects/soc2010/bsdtextproc/src/sys/nfsclient/nfs_vfsops.c#2 integrate
.. //depot/projects/soc2010/bsdtextproc/src/sys/nfsclient/nfs_vnops.c#2 integrate
.. //depot/projects/soc2010/bsdtextproc/src/sys/sys/imgact.h#3 integrate
.. //depot/projects/soc2010/bsdtextproc/src/sys/sys/imgact_elf.h#2 integrate
.. //depot/projects/soc2010/bsdtextproc/src/sys/sys/ktr.h#3 integrate
.. //depot/projects/soc2010/bsdtextproc/src/sys/x86/x86/local_apic.c#2 integrate
.. //depot/projects/soc2010/bsdtextproc/src/usr.sbin/bsnmpd/modules/snmp_hostres/hostres_diskstorage_tbl.c#2 integrate
.. //depot/projects/soc2010/bsdtextproc/src/usr.sbin/rpc.lockd/kern.c#2 integrate
Differences ...
==== //depot/projects/soc2010/bsdtextproc/src/bin/ps/keyword.c#2 (text+ko) ====
@@ -33,7 +33,7 @@
#endif /* not lint */
#endif
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/bin/ps/keyword.c,v 1.82 2010/03/17 22:57:58 jmallett Exp $");
+__FBSDID("$FreeBSD: src/bin/ps/keyword.c,v 1.83 2010/07/24 15:37:36 trasz Exp $");
#include <sys/param.h>
#include <sys/time.h>
@@ -90,7 +90,7 @@
NULL, 0},
{"etime", "ELAPSED", NULL, USER, elapsed, NULL, 12, 0, CHAR, NULL, 0},
{"etimes", "ELAPSED", NULL, USER, elapseds, NULL, 12, 0, CHAR, NULL, 0},
- {"f", "F", NULL, 0, kvar, NULL, 7, KOFF(ki_flag), INT, "x", 0},
+ {"f", "F", NULL, 0, kvar, NULL, 8, KOFF(ki_flag), INT, "x", 0},
{"flags", "", "f", 0, NULL, NULL, 0, 0, CHAR, NULL, 0},
{"ignored", "", "sigignore", 0, NULL, NULL, 0, 0, CHAR, NULL, 0},
{"inblk", "INBLK", NULL, USER, rvar, NULL, 4, ROFF(ru_inblock), LONG,
@@ -187,7 +187,7 @@
UINT, UIDFMT, 0},
{"svuid", "SVUID", NULL, 0, kvar, NULL, UIDLEN, KOFF(ki_svuid),
UINT, UIDFMT, 0},
- {"tdev", "TDEV", NULL, 0, tdev, NULL, 4, 0, CHAR, NULL, 0},
+ {"tdev", "TDEV", NULL, 0, tdev, NULL, 5, 0, CHAR, NULL, 0},
{"tdnam", "TDNAM", NULL, LJUST, tdnam, NULL, COMMLEN, 0, CHAR, NULL, 0},
{"time", "TIME", NULL, USER, cputime, NULL, 9, 0, CHAR, NULL, 0},
{"tpgid", "TPGID", NULL, 0, kvar, NULL, 4, KOFF(ki_tpgid), UINT,
==== //depot/projects/soc2010/bsdtextproc/src/bin/ps/ps.1#2 (text+ko) ====
@@ -27,9 +27,9 @@
.\" SUCH DAMAGE.
.\"
.\" @(#)ps.1 8.3 (Berkeley) 4/18/94
-.\" $FreeBSD: src/bin/ps/ps.1,v 1.95 2010/04/13 08:54:53 kib Exp $
+.\" $FreeBSD: src/bin/ps/ps.1,v 1.96 2010/07/24 15:24:12 trasz Exp $
.\"
-.Dd April 13, 2010
+.Dd July 24, 2010
.Dt PS 1
.Os
.Sh NAME
@@ -291,6 +291,7 @@
.It Dv "P_PPWAIT" Ta No "0x00010 Parent is waiting for child to exec/exit"
.It Dv "P_PROFIL" Ta No "0x00020 Has started profiling"
.It Dv "P_STOPPROF" Ta No "0x00040 Has thread in requesting to stop prof"
+.It Dv "P_HASTHREADS" Ta No "0x00080 Has had threads (no cleanup shortcuts)"
.It Dv "P_SUGID" Ta No "0x00100 Had set id privileges since last exec"
.It Dv "P_SYSTEM" Ta No "0x00200 System proc: no sigs, stats or swapping"
.It Dv "P_SINGLE_EXIT" Ta No "0x00400 Threads suspending should exit, not wait"
==== //depot/projects/soc2010/bsdtextproc/src/cddl/contrib/opensolaris/tools/ctf/cvt/output.c#2 (text+ko) ====
@@ -644,7 +644,7 @@
}
#if !defined(sun)
- if (ddata->d_buf == NULL) {
+ if (ddata->d_buf == NULL && sdata->d_buf != NULL) {
ddata->d_buf = xmalloc(shdr.sh_size);
bcopy(sdata->d_buf, ddata->d_buf, shdr.sh_size);
}
==== //depot/projects/soc2010/bsdtextproc/src/sys/amd64/linux32/linux32_machdep.c#3 (text+ko) ====
@@ -29,7 +29,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/amd64/linux32/linux32_machdep.c,v 1.56 2010/07/23 18:58:27 alc Exp $");
+__FBSDID("$FreeBSD: src/sys/amd64/linux32/linux32_machdep.c,v 1.57 2010/07/23 21:30:33 kib Exp $");
#include <sys/param.h>
#include <sys/kernel.h>
@@ -64,6 +64,7 @@
#include <vm/vm_kern.h>
#include <vm/vm_map.h>
+#include <compat/freebsd32/freebsd32_util.h>
#include <amd64/linux32/linux.h>
#include <amd64/linux32/linux32_proto.h>
#include <compat/linux/linux_ipc.h>
@@ -107,103 +108,6 @@
return (lsa);
}
-/*
- * Custom version of exec_copyin_args() so that we can translate
- * the pointers.
- */
-static int
-linux_exec_copyin_args(struct image_args *args, char *fname,
- enum uio_seg segflg, char **argv, char **envv)
-{
- char *argp, *envp;
- u_int32_t *p32, arg;
- size_t length;
- int error;
-
- bzero(args, sizeof(*args));
- if (argv == NULL)
- return (EFAULT);
-
- /*
- * Allocate temporary demand zeroed space for argument and
- * environment strings
- */
- args->buf = (char *)kmem_alloc_wait(exec_map,
- PATH_MAX + ARG_MAX + MAXSHELLCMDLEN);
- if (args->buf == NULL)
- return (ENOMEM);
- args->begin_argv = args->buf;
- args->endp = args->begin_argv;
- args->stringspace = ARG_MAX;
-
- args->fname = args->buf + ARG_MAX;
-
- /*
- * Copy the file name.
- */
- error = (segflg == UIO_SYSSPACE) ?
- copystr(fname, args->fname, PATH_MAX, &length) :
- copyinstr(fname, args->fname, PATH_MAX, &length);
- if (error != 0)
- goto err_exit;
-
- /*
- * extract arguments first
- */
- p32 = (u_int32_t *)argv;
- for (;;) {
- error = copyin(p32++, &arg, sizeof(arg));
- if (error)
- goto err_exit;
- if (arg == 0)
- break;
- argp = PTRIN(arg);
- error = copyinstr(argp, args->endp, args->stringspace, &length);
- if (error) {
- if (error == ENAMETOOLONG)
- error = E2BIG;
-
- goto err_exit;
- }
- args->stringspace -= length;
- args->endp += length;
- args->argc++;
- }
-
- args->begin_envv = args->endp;
-
- /*
- * extract environment strings
- */
- if (envv) {
- p32 = (u_int32_t *)envv;
- for (;;) {
- error = copyin(p32++, &arg, sizeof(arg));
- if (error)
- goto err_exit;
- if (arg == 0)
- break;
- envp = PTRIN(arg);
- error = copyinstr(envp, args->endp, args->stringspace,
- &length);
- if (error) {
- if (error == ENAMETOOLONG)
- error = E2BIG;
- goto err_exit;
- }
- args->stringspace -= length;
- args->endp += length;
- args->envc++;
- }
- }
-
- return (0);
-
-err_exit:
- exec_free_args(args);
- return (error);
-}
-
int
linux_execve(struct thread *td, struct linux_execve_args *args)
{
@@ -218,8 +122,8 @@
printf(ARGS(execve, "%s"), path);
#endif
- error = linux_exec_copyin_args(&eargs, path, UIO_SYSSPACE, args->argp,
- args->envp);
+ error = freebsd32_exec_copyin_args(&eargs, path, UIO_SYSSPACE,
+ args->argp, args->envp);
free(path, M_TEMP);
if (error == 0)
error = kern_execve(td, &eargs, NULL);
==== //depot/projects/soc2010/bsdtextproc/src/sys/amd64/linux32/linux32_proto.h#2 (text+ko) ====
@@ -2,8 +2,8 @@
* System call prototypes.
*
* DO NOT EDIT-- this file is automatically generated.
- * $FreeBSD: src/sys/amd64/linux32/linux32_proto.h,v 1.40 2009/09/10 13:20:27 des Exp $
- * created from FreeBSD: head/sys/amd64/linux32/syscalls.master 185438 2008-11-29 14:55:24Z kib
+ * $FreeBSD: src/sys/amd64/linux32/linux32_proto.h,v 1.41 2010/07/23 21:31:03 kib Exp $
+ * created from FreeBSD: head/sys/amd64/linux32/syscalls.master 210431 2010-07-23 21:30:33Z kib
*/
#ifndef _LINUX_SYSPROTO_H_
@@ -59,8 +59,8 @@
};
struct linux_execve_args {
char path_l_[PADL_(char *)]; char * path; char path_r_[PADR_(char *)];
- char argp_l_[PADL_(char **)]; char ** argp; char argp_r_[PADR_(char **)];
- char envp_l_[PADL_(char **)]; char ** envp; char envp_r_[PADR_(char **)];
+ char argp_l_[PADL_(u_int32_t *)]; u_int32_t * argp; char argp_r_[PADR_(u_int32_t *)];
+ char envp_l_[PADL_(u_int32_t *)]; u_int32_t * envp; char envp_r_[PADR_(u_int32_t *)];
};
struct linux_chdir_args {
char path_l_[PADL_(char *)]; char * path; char path_r_[PADR_(char *)];
==== //depot/projects/soc2010/bsdtextproc/src/sys/amd64/linux32/linux32_syscall.h#2 (text+ko) ====
@@ -2,8 +2,8 @@
* System call numbers.
*
* DO NOT EDIT-- this file is automatically generated.
- * $FreeBSD: src/sys/amd64/linux32/linux32_syscall.h,v 1.39 2008/11/29 14:57:58 kib Exp $
- * created from FreeBSD: head/sys/amd64/linux32/syscalls.master 185438 2008-11-29 14:55:24Z kib
+ * $FreeBSD: src/sys/amd64/linux32/linux32_syscall.h,v 1.40 2010/07/23 21:31:03 kib Exp $
+ * created from FreeBSD: head/sys/amd64/linux32/syscalls.master 210431 2010-07-23 21:30:33Z kib
*/
#define LINUX_SYS_exit 1
==== //depot/projects/soc2010/bsdtextproc/src/sys/amd64/linux32/linux32_sysent.c#2 (text+ko) ====
@@ -2,8 +2,8 @@
* System call switch table.
*
* DO NOT EDIT-- this file is automatically generated.
- * $FreeBSD: src/sys/amd64/linux32/linux32_sysent.c,v 1.41 2010/06/28 18:17:21 kib Exp $
- * created from FreeBSD: head/sys/amd64/linux32/syscalls.master 185438 2008-11-29 14:55:24Z kib
+ * $FreeBSD: src/sys/amd64/linux32/linux32_sysent.c,v 1.42 2010/07/23 21:31:03 kib Exp $
+ * created from FreeBSD: head/sys/amd64/linux32/syscalls.master 210431 2010-07-23 21:30:33Z kib
*/
#include "opt_compat.h"
==== //depot/projects/soc2010/bsdtextproc/src/sys/amd64/linux32/syscalls.master#2 (text+ko) ====
@@ -1,4 +1,4 @@
- $FreeBSD: src/sys/amd64/linux32/syscalls.master,v 1.36 2008/11/29 14:55:24 kib Exp $
+ $FreeBSD: src/sys/amd64/linux32/syscalls.master,v 1.37 2010/07/23 21:30:33 kib Exp $
; @(#)syscalls.master 8.1 (Berkeley) 7/19/93
; System call name/number master file (or rather, slave, from LINUX).
@@ -54,8 +54,8 @@
l_int mode); }
9 AUE_LINK STD { int linux_link(char *path, char *to); }
10 AUE_UNLINK STD { int linux_unlink(char *path); }
-11 AUE_EXECVE STD { int linux_execve(char *path, char **argp, \
- char **envp); }
+11 AUE_EXECVE STD { int linux_execve(char *path, u_int32_t *argp, \
+ u_int32_t *envp); }
12 AUE_CHDIR STD { int linux_chdir(char *path); }
13 AUE_NULL STD { int linux_time(l_time_t *tm); }
14 AUE_MKNOD STD { int linux_mknod(char *path, l_int mode, \
==== //depot/projects/soc2010/bsdtextproc/src/sys/arm/s3c2xx0/s3c24x0.c#3 (text+ko) ====
@@ -30,7 +30,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/arm/s3c2xx0/s3c24x0.c,v 1.3 2010/07/22 23:23:39 andrew Exp $");
+__FBSDID("$FreeBSD: src/sys/arm/s3c2xx0/s3c24x0.c,v 1.4 2010/07/24 23:41:09 andrew Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -118,6 +118,8 @@
driver_filter_t *, driver_intr_t *, void *, void **);
static int s3c24x0_teardown_intr(device_t, device_t, struct resource *,
void *);
+static int s3c24x0_config_intr(device_t, int, enum intr_trigger,
+ enum intr_polarity);
static struct resource *s3c24x0_alloc_resource(device_t, device_t, int, int *,
u_long, u_long, u_long, u_int);
static int s3c24x0_activate_resource(device_t, device_t, int, int,
@@ -134,6 +136,7 @@
DEVMETHOD(device_identify, s3c24x0_identify),
DEVMETHOD(bus_setup_intr, s3c24x0_setup_intr),
DEVMETHOD(bus_teardown_intr, s3c24x0_teardown_intr),
+ DEVMETHOD(bus_config_intr, s3c24x0_config_intr),
DEVMETHOD(bus_alloc_resource, s3c24x0_alloc_resource),
DEVMETHOD(bus_activate_resource, s3c24x0_activate_resource),
DEVMETHOD(bus_release_resource, s3c24x0_release_resource),
@@ -176,6 +179,30 @@
return (child);
}
+static void
+s3c24x0_enable_ext_intr(unsigned int irq)
+{
+ uint32_t reg, value;
+ int offset;
+
+ if (irq <= 7) {
+ reg = GPIO_PFCON;
+ offset = irq * 2;
+ } else if (irq <= 23) {
+ reg = GPIO_PGCON;
+ offset = (irq - 8) * 2;
+ } else
+ return;
+
+ /* Make the pin an interrupt source */
+ value = bus_space_read_4(s3c2xx0_softc->sc_iot,
+ s3c2xx0_softc->sc_gpio_ioh, reg);
+ value &= ~(3 << offset);
+ value |= 2 << offset;
+ bus_space_write_4(s3c2xx0_softc->sc_iot, s3c2xx0_softc->sc_gpio_ioh,
+ reg, value);
+}
+
static int
s3c24x0_setup_intr(device_t dev, device_t child,
struct resource *ires, int flags, driver_filter_t *filt,
@@ -189,6 +216,10 @@
return (error);
for (irq = rman_get_start(ires); irq <= rman_get_end(ires); irq++) {
+ if (irq >= S3C24X0_EXTIRQ_MIN && irq <= S3C24X0_EXTIRQ_MAX) {
+ /* Enable the external interrupt pin */
+ s3c24x0_enable_ext_intr(irq - S3C24X0_EXTIRQ_MIN);
+ }
arm_unmask_irq(irq);
}
return (0);
@@ -201,6 +232,59 @@
return (BUS_TEARDOWN_INTR(device_get_parent(dev), child, res, cookie));
}
+static int
+s3c24x0_config_intr(device_t dev, int irq, enum intr_trigger trig,
+ enum intr_polarity pol)
+{
+ uint32_t mask, reg, value;
+ int offset;
+
+ /* Only external interrupts can be configured */
+ if (irq < S3C24X0_EXTIRQ_MIN || irq > S3C24X0_EXTIRQ_MAX)
+ return (EINVAL);
+
+ /* There is no standard trigger or polarity for the bus */
+ if (trig == INTR_TRIGGER_CONFORM || pol == INTR_POLARITY_CONFORM)
+ return (EINVAL);
+
+ irq -= S3C24X0_EXTIRQ_MIN;
+
+ /* Get the bits to set */
+ mask = 0;
+ if (pol == INTR_POLARITY_LOW) {
+ mask = 2;
+ } else if (pol == INTR_POLARITY_HIGH) {
+ mask = 4;
+ }
+ if (trig == INTR_TRIGGER_LEVEL) {
+ mask >>= 2;
+ }
+
+ /* Get the register to set */
+ if (irq <= 7) {
+ reg = GPIO_EXTINT(0);
+ offset = irq * 4;
+ } else if (irq <= 15) {
+ reg = GPIO_EXTINT(1);
+ offset = (irq - 8) * 4;
+ } else if (irq <= 23) {
+ reg = GPIO_EXTINT(2);
+ offset = (irq - 16) * 4;
+ } else {
+ return (EINVAL);
+ }
+
+ /* Set the new signaling method */
+ value = bus_space_read_4(s3c2xx0_softc->sc_iot,
+ s3c2xx0_softc->sc_gpio_ioh, reg);
+ value &= ~(7 << offset);
+ value |= mask << offset;
+ bus_space_write_4(s3c2xx0_softc->sc_iot,
+ s3c2xx0_softc->sc_gpio_ioh, reg, value);
+
+ return (0);
+}
+
static struct resource *
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)
@@ -356,6 +440,7 @@
bus_space_tag_t iot;
device_t child;
unsigned int i, j;
+ u_long irqmax;
s3c2xx0_softc = &(sc->sc_sx);
sc->sc_sx.sc_iot = iot = &s3c2xx0_bs_tag;
@@ -363,10 +448,6 @@
s3c2xx0_softc->s3c2xx0_irq_rman.rm_descr = "S3C24X0 IRQs";
s3c2xx0_softc->s3c2xx0_mem_rman.rm_type = RMAN_ARRAY;
s3c2xx0_softc->s3c2xx0_mem_rman.rm_descr = "S3C24X0 Device Registers";
- if (rman_init(&s3c2xx0_softc->s3c2xx0_irq_rman) != 0 ||
- rman_manage_region(&s3c2xx0_softc->s3c2xx0_irq_rman, 0,
- S3C2410_SUBIRQ_MAX) != 0) /* XXX Change S3C2440_SUBIRQ_MAX depending on micro */
- panic("s3c24x0_attach: failed to set up IRQ rman");
/* Manage the registor memory space */
if ((rman_init(&s3c2xx0_softc->s3c2xx0_mem_rman) != 0) ||
(rman_manage_region(&s3c2xx0_softc->s3c2xx0_mem_rman,
@@ -388,6 +469,22 @@
*/
s3c24x0_identify_cpu(dev);
+ /*
+ * Manage the interrupt space.
+ * We need to put this after s3c24x0_identify_cpu as the avaliable
+ * interrupts change depending on which CPU we have.
+ */
+ if (sc->sc_sx.sc_cpu == CPU_S3C2410)
+ irqmax = S3C2410_SUBIRQ_MAX;
+ else
+ irqmax = S3C2440_SUBIRQ_MAX;
+ if (rman_init(&s3c2xx0_softc->s3c2xx0_irq_rman) != 0 ||
+ rman_manage_region(&s3c2xx0_softc->s3c2xx0_irq_rman, 0,
+ irqmax) != 0 ||
+ rman_manage_region(&s3c2xx0_softc->s3c2xx0_irq_rman,
+ S3C24X0_EXTIRQ_MIN, S3C24X0_EXTIRQ_MAX))
+ panic("s3c24x0_attach: failed to set up IRQ rman");
+
/* calculate current clock frequency */
s3c24x0_clock_freq(&sc->sc_sx);
device_printf(dev, "fclk %d MHz hclk %d MHz pclk %d MHz\n",
@@ -607,6 +704,33 @@
return (irq);
return (S3C24X0_SUBIRQ_MIN + subirq);
+
+ case S3C24X0_INT_0:
+ case S3C24X0_INT_1:
+ case S3C24X0_INT_2:
+ case S3C24X0_INT_3:
+ /* There is a 1:1 mapping to the IRQ we are handling */
+ return S3C24X0_INT_EXT(irq);
+
+ case S3C24X0_INT_4_7:
+ case S3C24X0_INT_8_23:
+ /* Find the external interrupt being called */
+ subirq = 0x7fffff;
+ subirq &= bus_space_read_4(&s3c2xx0_bs_tag,
+ s3c2xx0_softc->sc_gpio_ioh, GPIO_EINTPEND);
+ subirq &= ~bus_space_read_4(&s3c2xx0_bs_tag,
+ s3c2xx0_softc->sc_gpio_ioh, GPIO_EINTMASK);
+ if (subirq == 0)
+ return (irq);
+
+ subirq = ffs(subirq) - 1;
+
+ /* Clear the external irq pending bit */
+ bus_space_write_4(&s3c2xx0_bs_tag,
+ s3c2xx0_softc->sc_gpio_ioh, GPIO_EINTPEND,
+ (1 << subirq));
+
+ return S3C24X0_INT_EXT(subirq);
}
return (irq);
@@ -619,18 +743,28 @@
{
u_int32_t mask;
+ if (irq >= S3C24X0_INT_EXT(0) && irq <= S3C24X0_INT_EXT(3)) {
+ /* External interrupt 0..3 are directly mapped to irq 0..3 */
+ irq -= S3C24X0_EXTIRQ_MIN;
+ }
if (irq < S3C24X0_SUBIRQ_MIN) {
mask = bus_space_read_4(&s3c2xx0_bs_tag,
s3c2xx0_softc->sc_intctl_ioh, INTCTL_INTMSK);
mask |= (1 << irq);
bus_space_write_4(&s3c2xx0_bs_tag,
s3c2xx0_softc->sc_intctl_ioh, INTCTL_INTMSK, mask);
- } else {
+ } else if (irq < S3C24X0_EXTIRQ_MIN) {
mask = bus_space_read_4(&s3c2xx0_bs_tag,
s3c2xx0_softc->sc_intctl_ioh, INTCTL_INTSUBMSK);
mask |= (1 << (irq - S3C24X0_SUBIRQ_MIN));
bus_space_write_4(&s3c2xx0_bs_tag,
s3c2xx0_softc->sc_intctl_ioh, INTCTL_INTSUBMSK, mask);
+ } else {
+ mask = bus_space_read_4(&s3c2xx0_bs_tag,
+ s3c2xx0_softc->sc_gpio_ioh, GPIO_EINTMASK);
+ mask |= (1 << (irq - S3C24X0_EXTIRQ_MIN));
+ bus_space_write_4(&s3c2xx0_bs_tag,
+ s3c2xx0_softc->sc_intctl_ioh, GPIO_EINTMASK, mask);
}
}
@@ -639,17 +773,27 @@
{
u_int32_t mask;
+ if (irq >= S3C24X0_INT_EXT(0) && irq <= S3C24X0_INT_EXT(3)) {
+ /* External interrupt 0..3 are directly mapped to irq 0..3 */
+ irq -= S3C24X0_EXTIRQ_MIN;
+ }
if (irq < S3C24X0_SUBIRQ_MIN) {
mask = bus_space_read_4(&s3c2xx0_bs_tag,
s3c2xx0_softc->sc_intctl_ioh, INTCTL_INTMSK);
mask &= ~(1 << irq);
bus_space_write_4(&s3c2xx0_bs_tag,
s3c2xx0_softc->sc_intctl_ioh, INTCTL_INTMSK, mask);
- } else {
+ } else if (irq < S3C24X0_EXTIRQ_MIN) {
mask = bus_space_read_4(&s3c2xx0_bs_tag,
s3c2xx0_softc->sc_intctl_ioh, INTCTL_INTSUBMSK);
mask &= ~(1 << (irq - S3C24X0_SUBIRQ_MIN));
bus_space_write_4(&s3c2xx0_bs_tag,
s3c2xx0_softc->sc_intctl_ioh, INTCTL_INTSUBMSK, mask);
+ } else {
+ mask = bus_space_read_4(&s3c2xx0_bs_tag,
+ s3c2xx0_softc->sc_gpio_ioh, GPIO_EINTMASK);
+ mask &= ~(1 << (irq - S3C24X0_EXTIRQ_MIN));
+ bus_space_write_4(&s3c2xx0_bs_tag,
+ s3c2xx0_softc->sc_intctl_ioh, GPIO_EINTMASK, mask);
}
}
==== //depot/projects/soc2010/bsdtextproc/src/sys/arm/s3c2xx0/s3c24x0reg.h#3 (text+ko) ====
@@ -28,7 +28,7 @@
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*
- * $FreeBSD: src/sys/arm/s3c2xx0/s3c24x0reg.h,v 1.3 2010/07/22 23:23:39 andrew Exp $
+ * $FreeBSD: src/sys/arm/s3c2xx0/s3c24x0reg.h,v 1.4 2010/07/24 23:41:09 andrew Exp $
*/
@@ -207,7 +207,10 @@
#define S3C24X0_INT_BFLT 7 /* Battery fault */
#define S3C24X0_INT_8_23 5 /* Ext int 8..23 */
#define S3C24X0_INT_4_7 4 /* Ext int 4..7 */
-#define S3C24X0_INT_EXT(n) (n) /* External interrupt [3:0] for 24{1,4}0 */
+#define S3C24X0_INT_3 3
+#define S3C24X0_INT_2 2
+#define S3C24X0_INT_1 1
+#define S3C24X0_INT_0 0
/* 24{1,4}0 has more than 32 interrupt sources. These are sub-sources
* that are OR-ed into main interrupt sources, and controlled via
@@ -230,6 +233,15 @@
#define S3C24X0_INT_TXD0 (S3C24X0_SUBIRQ_MIN+1) /* UART0 Tx */
#define S3C24X0_INT_RXD0 (S3C24X0_SUBIRQ_MIN+0) /* UART0 Rx */
+/*
+ * Support for external interrupts. We use values from 48
+ * to allow new CPU's to allocate new subirq's.
+ */
+#define S3C24X0_EXTIRQ_MIN 48
+#define S3C24X0_EXTIRQ_COUNT 24
+#define S3C24X0_EXTIRQ_MAX (S3C24X0_EXTIRQ_MIN + S3C24X0_EXTIRQ_COUNT - 1)
+#define S3C24X0_INT_EXT(n) (S3C24X0_EXTIRQ_MIN + (n))
+
/* DMA controller */
/* XXX */
==== //depot/projects/soc2010/bsdtextproc/src/sys/boot/pc98/loader/Makefile#2 (text+ko) ====
@@ -1,4 +1,4 @@
-# $FreeBSD: src/sys/boot/pc98/loader/Makefile,v 1.44 2009/03/19 13:53:42 nyan Exp $
+# $FreeBSD: src/sys/boot/pc98/loader/Makefile,v 1.45 2010/07/25 02:22:32 nyan Exp $
.include <bsd.own.mk>
MK_SSP= no
@@ -94,6 +94,6 @@
OBJS= ${BTXCRT}
DPADD= ${LIBFICL} ${LIBPC98} ${LIBSTAND}
-LDADD= ${LIBFICL} ${LIBPC98} -lstand
+LDADD= ${LIBFICL} ${LIBPC98} ${LIBSTAND}
.include <bsd.prog.mk>
==== //depot/projects/soc2010/bsdtextproc/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_deleg.c#2 (text+ko) ====
@@ -19,7 +19,7 @@
* CDDL HEADER END
*/
/*
- * Copyright 2008 Sun Microsystems, Inc. All rights reserved.
+ * Copyright 2009 Sun Microsystems, Inc. All rights reserved.
* Use is subject to license terms.
*/
@@ -66,8 +66,6 @@
* The ZAP OBJ is referred to as the jump object.
*/
-#pragma ident "%Z%%M% %I% %E% SMI"
-
#include <sys/dmu.h>
#include <sys/dmu_objset.h>
#include <sys/dmu_tx.h>
@@ -540,7 +538,7 @@
dsl_pool_t *dp;
void *cookie;
int error;
- char checkflag = ZFS_DELEG_LOCAL;
+ char checkflag;
objset_t *mos;
avl_tree_t permsets;
perm_set_t *setnode;
@@ -563,6 +561,16 @@
return (EPERM);
}
+ if (dsl_dataset_is_snapshot(ds)) {
+ /*
+ * Snapshots are treated as descendents only,
+ * local permissions do not apply.
+ */
+ checkflag = ZFS_DELEG_DESCENDENT;
+ } else {
+ checkflag = ZFS_DELEG_LOCAL;
+ }
+
avl_create(&permsets, perm_set_compare, sizeof (perm_set_t),
offsetof(perm_set_t, p_node));
==== //depot/projects/soc2010/bsdtextproc/src/sys/compat/freebsd32/freebsd32_misc.c#3 (text+ko) ====
@@ -25,7 +25,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/compat/freebsd32/freebsd32_misc.c,v 1.107 2010/07/23 18:58:27 alc Exp $");
+__FBSDID("$FreeBSD: src/sys/compat/freebsd32/freebsd32_misc.c,v 1.108 2010/07/23 21:30:33 kib Exp $");
#include "opt_compat.h"
#include "opt_inet.h"
@@ -265,7 +265,7 @@
* Custom version of exec_copyin_args() so that we can translate
* the pointers.
*/
-static int
+int
freebsd32_exec_copyin_args(struct image_args *args, char *fname,
enum uio_seg segflg, u_int32_t *argv, u_int32_t *envv)
{
==== //depot/projects/soc2010/bsdtextproc/src/sys/compat/freebsd32/freebsd32_util.h#2 (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.
*
- * $FreeBSD: src/sys/compat/freebsd32/freebsd32_util.h,v 1.17 2010/04/21 19:28:01 kib Exp $
+ * $FreeBSD: src/sys/compat/freebsd32/freebsd32_util.h,v 1.18 2010/07/23 21:30:33 kib Exp $
*/
#ifndef _COMPAT_FREEBSD32_FREEBSD32_UTIL_H_
@@ -101,5 +101,9 @@
struct iovec **iov, int error);
void freebsd32_rusage_out(const struct rusage *s, struct rusage32 *s32);
+enum uio_seg;
+struct image_args;
+int freebsd32_exec_copyin_args(struct image_args *args, char *fname,
+ enum uio_seg segflg, u_int32_t *argv, u_int32_t *envv);
#endif /* !_COMPAT_FREEBSD32_FREEBSD32_UTIL_H_ */
==== //depot/projects/soc2010/bsdtextproc/src/sys/conf/files#2 (text+ko) ====
@@ -1,4 +1,4 @@
-# $FreeBSD: src/sys/conf/files,v 1.1524 2010/07/15 11:26:07 bschmidt Exp $
+# $FreeBSD: src/sys/conf/files,v 1.1525 2010/07/24 22:11:11 rmacklem Exp $
#
# The long compile-with and dependency lines are required because of
# limitations in config: backslash-newline doesn't work in strings, and
@@ -1914,7 +1914,6 @@
fs/nfsclient/nfs_clvnops.c optional nfscl
fs/nfsclient/nfs_clnode.c optional nfscl
fs/nfsclient/nfs_clvfsops.c optional nfscl
-fs/nfsclient/nfs_cllock.c optional nfscl
fs/nfsclient/nfs_clport.c optional nfscl
fs/nfsclient/nfs_clbio.c optional nfscl
fs/nfsclient/nfs_clnfsiod.c optional nfscl
@@ -2680,6 +2679,7 @@
netsmb/smb_trantcp.c optional netsmb
netsmb/smb_usr.c optional netsmb
nfs/nfs_common.c optional nfsclient | nfsserver
+nfs/nfs_lock.c optional nfsclient | nfscl
nfsclient/bootp_subr.c optional bootp nfsclient
nfsclient/krpc_subr.c optional bootp nfsclient
nfsclient/nfs_bio.c optional nfsclient
@@ -2690,7 +2690,6 @@
nfsclient/nfs_nfsiod.c optional nfsclient
nfsclient/nfs_vfsops.c optional nfsclient
nfsclient/nfs_vnops.c optional nfsclient
-nfsclient/nfs_lock.c optional nfsclient
nfsserver/nfs_fha.c optional nfsserver
nfsserver/nfs_serv.c optional nfsserver
nfsserver/nfs_srvkrpc.c optional nfsserver
==== //depot/projects/soc2010/bsdtextproc/src/sys/dev/e1000/if_igb.c#3 (text+ko) ====
@@ -30,7 +30,7 @@
POSSIBILITY OF SUCH DAMAGE.
******************************************************************************/
-/*$FreeBSD: src/sys/dev/e1000/if_igb.c,v 1.52 2010/07/23 17:53:39 gnn Exp $*/
+/*$FreeBSD: src/sys/dev/e1000/if_igb.c,v 1.53 2010/07/24 18:53:46 gnn Exp $*/
#ifdef HAVE_KERNEL_OPTION_HEADERS
@@ -4930,7 +4930,8 @@
/** igb_sysctl_tdh_handler - Handler function
* Retrieves the TDH value from the hardware
*/
-static int igb_sysctl_tdh_handler(SYSCTL_HANDLER_ARGS)
+static int
+igb_sysctl_tdh_handler(SYSCTL_HANDLER_ARGS)
{
int error;
@@ -4947,7 +4948,8 @@
/** igb_sysctl_tdt_handler - Handler function
* Retrieves the TDT value from the hardware
*/
-static int igb_sysctl_tdt_handler(SYSCTL_HANDLER_ARGS)
+static int
+igb_sysctl_tdt_handler(SYSCTL_HANDLER_ARGS)
{
int error;
@@ -4964,7 +4966,8 @@
/** igb_sysctl_rdh_handler - Handler function
* Retrieves the RDH value from the hardware
*/
-static int igb_sysctl_rdh_handler(SYSCTL_HANDLER_ARGS)
+static int
+igb_sysctl_rdh_handler(SYSCTL_HANDLER_ARGS)
{
int error;
@@ -4981,7 +4984,8 @@
/** igb_sysctl_rdt_handler - Handler function
* Retrieves the RDT value from the hardware
*/
-static int igb_sysctl_rdt_handler(SYSCTL_HANDLER_ARGS)
+static int
+igb_sysctl_rdt_handler(SYSCTL_HANDLER_ARGS)
{
int error;
==== //depot/projects/soc2010/bsdtextproc/src/sys/dev/ichwd/ichwd.c#2 (text+ko) ====
@@ -56,7 +56,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/dev/ichwd/ichwd.c,v 1.21 2010/01/24 10:50:20 remko Exp $");
+__FBSDID("$FreeBSD: src/sys/dev/ichwd/ichwd.c,v 1.22 2010/07/24 19:40:16 avg Exp $");
#include <sys/param.h>
#include <sys/kernel.h>
@@ -256,8 +256,8 @@
uint8_t tmr_val8 = ichwd_read_tco_1(sc, TCO_TMR1);
tmr_val8 &= 0xc0;
- if (timeout > 0xbf)
- timeout = 0xbf;
+ if (timeout > 0x3f)
+ timeout = 0x3f;
tmr_val8 |= timeout;
ichwd_write_tco_1(sc, TCO_TMR1, tmr_val8);
} else {
==== //depot/projects/soc2010/bsdtextproc/src/sys/fs/nfsclient/nfs_clnfsiod.c#2 (text+ko) ====
@@ -33,7 +33,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/fs/nfsclient/nfs_clnfsiod.c,v 1.3 2010/04/22 23:51:01 rmacklem Exp $");
+__FBSDID("$FreeBSD: src/sys/fs/nfsclient/nfs_clnfsiod.c,v 1.4 2010/07/24 22:11:11 rmacklem Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -67,7 +67,6 @@
#include <fs/nfsclient/nfsmount.h>
#include <fs/nfsclient/nfs.h>
#include <fs/nfsclient/nfsnode.h>
-#include <fs/nfsclient/nfs_lock.h>
extern struct mtx ncl_iod_mutex;
==== //depot/projects/soc2010/bsdtextproc/src/sys/fs/nfsclient/nfs_clport.c#2 (text+ko) ====
@@ -32,7 +32,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/fs/nfsclient/nfs_clport.c,v 1.11 2010/07/15 19:40:48 jhb Exp $");
+__FBSDID("$FreeBSD: src/sys/fs/nfsclient/nfs_clport.c,v 1.12 2010/07/24 22:11:11 rmacklem Exp $");
/*
* generally, I don't like #includes inside .h files, but it seems to
@@ -1268,4 +1268,5 @@
MODULE_DEPEND(nfscl, nfscommon, 1, 1, 1);
MODULE_DEPEND(nfscl, krpc, 1, 1, 1);
MODULE_DEPEND(nfscl, nfssvc, 1, 1, 1);
+MODULE_DEPEND(nfscl, nfslock, 1, 1, 1);
==== //depot/projects/soc2010/bsdtextproc/src/sys/fs/nfsclient/nfs_clsubs.c#2 (text+ko) ====
@@ -33,7 +33,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/fs/nfsclient/nfs_clsubs.c,v 1.8 2010/07/18 00:24:01 rmacklem Exp $");
+__FBSDID("$FreeBSD: src/sys/fs/nfsclient/nfs_clsubs.c,v 1.9 2010/07/24 22:11:11 rmacklem Exp $");
/*
* These functions support the macros and help fiddle mbuf chains for
@@ -67,7 +67,6 @@
#include <fs/nfsclient/nfsnode.h>
#include <fs/nfsclient/nfsmount.h>
#include <fs/nfsclient/nfs.h>
-#include <fs/nfsclient/nfs_lock.h>
#include <netinet/in.h>
==== //depot/projects/soc2010/bsdtextproc/src/sys/fs/nfsclient/nfs_clvnops.c#2 (text+ko) ====
@@ -33,7 +33,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/fs/nfsclient/nfs_clvnops.c,v 1.23 2010/07/18 22:35:46 rmacklem Exp $");
+__FBSDID("$FreeBSD: src/sys/fs/nfsclient/nfs_clvnops.c,v 1.24 2010/07/24 22:11:11 rmacklem Exp $");
/*
* vnode op calls for Sun NFS version 2, 3 and 4
@@ -67,24 +67,24 @@
#include <vm/vm_extern.h>
#include <vm/vm_object.h>
-
#include <fs/nfs/nfsport.h>
#include <fs/nfsclient/nfsnode.h>
#include <fs/nfsclient/nfsmount.h>
#include <fs/nfsclient/nfs.h>
-#include <fs/nfsclient/nfs_lock.h>
#include <net/if.h>
#include <netinet/in.h>
#include <netinet/in_var.h>
+#include <nfs/nfs_lock.h>
+
/* Defs */
#define TRUE 1
#define FALSE 0
extern struct nfsstats newnfsstats;
MALLOC_DECLARE(M_NEWNFSREQ);
-vop_advlock_t *ncl_advlock_p = ncl_dolock;
+vop_advlock_t *ncl_advlock_p = nfs_dolock;
/*
* Ifdef for FreeBSD-current merged buffer cache. It is unfortunate that these
==== //depot/projects/soc2010/bsdtextproc/src/sys/mips/include/vmparam.h#3 (text+ko) ====
@@ -37,7 +37,7 @@
* from: Utah Hdr: vmparam.h 1.16 91/01/18
* @(#)vmparam.h 8.2 (Berkeley) 4/22/94
* JNPR: vmparam.h,v 1.3.2.1 2007/09/10 06:01:28 girish
- * $FreeBSD: src/sys/mips/include/vmparam.h,v 1.6 2010/07/21 09:27:00 jchandra Exp $
+ * $FreeBSD: src/sys/mips/include/vmparam.h,v 1.7 2010/07/25 04:19:05 imp Exp $
*/
#ifndef _MACHINE_VMPARAM_H_
@@ -184,6 +184,7 @@
#ifdef __mips_n64
#define VM_NFREELIST 1
#define VM_FREELIST_DEFAULT 0
+#define VM_FREELIST_DIRECT VM_FREELIST_DEFAULT
#else
#define VM_NFREELIST 2
#define VM_FREELIST_DEFAULT 1
==== //depot/projects/soc2010/bsdtextproc/src/sys/modules/Makefile#3 (text+ko) ====
@@ -1,4 +1,4 @@
-# $FreeBSD: src/sys/modules/Makefile,v 1.657 2010/07/23 11:00:46 kib Exp $
+# $FreeBSD: src/sys/modules/Makefile,v 1.658 2010/07/24 22:11:11 rmacklem Exp $
.include <bsd.own.mk>
@@ -205,6 +205,7 @@
nfsclient \
nfscommon \
nfsd \
+ nfslock \
nfslockd \
nfsserver \
nfssvc \
==== //depot/projects/soc2010/bsdtextproc/src/sys/modules/nfscl/Makefile#2 (text+ko) ====
@@ -1,4 +1,4 @@
-# $FreeBSD: src/sys/modules/nfscl/Makefile,v 1.1 2009/05/28 19:45:11 rmacklem Exp $
+# $FreeBSD: src/sys/modules/nfscl/Makefile,v 1.2 2010/07/24 22:11:11 rmacklem Exp $
.PATH: ${.CURDIR}/../../fs/nfsclient
KMOD= nfscl
@@ -9,7 +9,6 @@
nfs_clcomsubs.c \
nfs_clport.c \
nfs_clbio.c \
- nfs_cllock.c \
nfs_clnfsiod.c \
nfs_clnode.c \
nfs_clsubs.c \
==== //depot/projects/soc2010/bsdtextproc/src/sys/modules/nfsclient/Makefile#2 (text+ko) ====
@@ -1,10 +1,10 @@
-# $FreeBSD: src/sys/modules/nfsclient/Makefile,v 1.42 2010/02/16 20:00:21 marius Exp $
>>> TRUNCATED FOR MAIL (1000 lines) <<<
More information about the p4-projects
mailing list