PERFORCE change 167726 for review
Marko Zec
zec at FreeBSD.org
Mon Aug 24 12:10:26 UTC 2009
http://perforce.freebsd.org/chv.cgi?CH=167726
Change 167726 by zec at zec_tpx32 on 2009/08/24 12:10:09
IFC @ 167724
Affected files ...
.. //depot/projects/vimage/src/share/man/man9/Makefile#13 integrate
.. //depot/projects/vimage/src/share/man/man9/kproc.9#2 integrate
.. //depot/projects/vimage/src/share/man/man9/kthread.9#3 integrate
.. //depot/projects/vimage/src/sys/arm/arm/undefined.c#4 integrate
.. //depot/projects/vimage/src/sys/arm/xscale/ixp425/ixdp425_pci.c#3 integrate
.. //depot/projects/vimage/src/sys/cddl/compat/opensolaris/sys/mutex.h#4 integrate
.. //depot/projects/vimage/src/sys/cddl/compat/opensolaris/sys/proc.h#3 integrate
.. //depot/projects/vimage/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_geom.c#4 integrate
.. //depot/projects/vimage/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ioctl.c#8 integrate
.. //depot/projects/vimage/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zvol.c#3 integrate
.. //depot/projects/vimage/src/sys/cddl/contrib/opensolaris/uts/common/sys/callb.h#3 integrate
.. //depot/projects/vimage/src/sys/compat/linux/linux_ioctl.c#27 integrate
.. //depot/projects/vimage/src/sys/conf/files#77 integrate
.. //depot/projects/vimage/src/sys/conf/newvers.sh#11 integrate
.. //depot/projects/vimage/src/sys/conf/options#57 integrate
.. //depot/projects/vimage/src/sys/contrib/altq/altq/altq_subr.c#24 integrate
.. //depot/projects/vimage/src/sys/dev/asmc/asmc.c#7 integrate
.. //depot/projects/vimage/src/sys/dev/drm/drmP.h#12 integrate
.. //depot/projects/vimage/src/sys/dev/drm/drm_bufs.c#10 integrate
.. //depot/projects/vimage/src/sys/dev/drm/drm_drv.c#18 integrate
.. //depot/projects/vimage/src/sys/dev/drm/drm_fops.c#7 integrate
.. //depot/projects/vimage/src/sys/dev/drm/drm_sysctl.c#7 integrate
.. //depot/projects/vimage/src/sys/dev/drm/r600_blit.c#1 branch
.. //depot/projects/vimage/src/sys/dev/drm/r600_cp.c#6 integrate
.. //depot/projects/vimage/src/sys/dev/drm/radeon_cp.c#12 integrate
.. //depot/projects/vimage/src/sys/dev/drm/radeon_cs.c#1 branch
.. //depot/projects/vimage/src/sys/dev/drm/radeon_drm.h#4 integrate
.. //depot/projects/vimage/src/sys/dev/drm/radeon_drv.h#9 integrate
.. //depot/projects/vimage/src/sys/dev/drm/radeon_state.c#4 integrate
.. //depot/projects/vimage/src/sys/dev/pty/pty.c#1 branch
.. //depot/projects/vimage/src/sys/dev/snp/snp.c#14 integrate
.. //depot/projects/vimage/src/sys/dev/sound/usb/uaudio.c#19 integrate
.. //depot/projects/vimage/src/sys/dev/usb/controller/usb_controller.c#13 integrate
.. //depot/projects/vimage/src/sys/dev/usb/input/ukbd.c#12 integrate
.. //depot/projects/vimage/src/sys/dev/usb/misc/ufm.c#7 integrate
.. //depot/projects/vimage/src/sys/dev/usb/net/if_aue.c#11 integrate
.. //depot/projects/vimage/src/sys/dev/usb/net/if_cdce.c#12 integrate
.. //depot/projects/vimage/src/sys/dev/usb/serial/uipaq.c#8 integrate
.. //depot/projects/vimage/src/sys/dev/usb/serial/uvisor.c#9 integrate
.. //depot/projects/vimage/src/sys/dev/usb/storage/umass.c#11 integrate
.. //depot/projects/vimage/src/sys/dev/usb/storage/urio.c#9 integrate
.. //depot/projects/vimage/src/sys/dev/usb/usb.h#12 integrate
.. //depot/projects/vimage/src/sys/dev/usb/usb_busdma.c#9 integrate
.. //depot/projects/vimage/src/sys/dev/usb/usb_dev.c#15 integrate
.. //depot/projects/vimage/src/sys/dev/usb/usb_device.c#17 integrate
.. //depot/projects/vimage/src/sys/dev/usb/usb_device.h#14 integrate
.. //depot/projects/vimage/src/sys/dev/usb/usb_handle_request.c#13 integrate
.. //depot/projects/vimage/src/sys/dev/usb/usb_hub.c#17 integrate
.. //depot/projects/vimage/src/sys/dev/usb/usb_process.c#8 integrate
.. //depot/projects/vimage/src/sys/dev/usb/usb_process.h#7 integrate
.. //depot/projects/vimage/src/sys/dev/usb/usb_transfer.c#15 integrate
.. //depot/projects/vimage/src/sys/dev/usb/usbdevs#54 integrate
.. //depot/projects/vimage/src/sys/dev/usb/wlan/if_upgt.c#8 integrate
.. //depot/projects/vimage/src/sys/dev/xen/console/console.c#11 integrate
.. //depot/projects/vimage/src/sys/fs/nfsclient/nfs_clvnops.c#9 integrate
.. //depot/projects/vimage/src/sys/kern/kern_cons.c#3 integrate
.. //depot/projects/vimage/src/sys/kern/kern_jail.c#35 integrate
.. //depot/projects/vimage/src/sys/kern/kern_subr.c#8 integrate
.. //depot/projects/vimage/src/sys/kern/kern_uuid.c#20 integrate
.. //depot/projects/vimage/src/sys/kern/sys_generic.c#16 integrate
.. //depot/projects/vimage/src/sys/kern/tty_pts.c#19 integrate
.. //depot/projects/vimage/src/sys/kern/tty_pty.c#11 delete
.. //depot/projects/vimage/src/sys/kern/tty_ttydisc.c#9 integrate
.. //depot/projects/vimage/src/sys/kern/uipc_domain.c#25 integrate
.. //depot/projects/vimage/src/sys/kern/uipc_socket.c#42 integrate
.. //depot/projects/vimage/src/sys/modules/drm/radeon/Makefile#3 integrate
.. //depot/projects/vimage/src/sys/modules/pty/Makefile#1 branch
.. //depot/projects/vimage/src/sys/net/bridgestp.c#25 integrate
.. //depot/projects/vimage/src/sys/net/if.c#92 integrate
.. //depot/projects/vimage/src/sys/net/if_ef.c#18 integrate
.. //depot/projects/vimage/src/sys/net/if_llatbl.c#8 integrate
.. //depot/projects/vimage/src/sys/net/if_var.h#46 integrate
.. //depot/projects/vimage/src/sys/net/if_vlan.c#23 integrate
.. //depot/projects/vimage/src/sys/netgraph/ng_gif.c#17 integrate
.. //depot/projects/vimage/src/sys/netinet/in.c#41 integrate
.. //depot/projects/vimage/src/sys/netinet/ip_divert.c#39 integrate
.. //depot/projects/vimage/src/sys/netinet/ip_divert.h#2 integrate
.. //depot/projects/vimage/src/sys/netinet/ipfw/ip_fw2.c#10 integrate
.. //depot/projects/vimage/src/sys/netinet/sctp_indata.c#37 integrate
.. //depot/projects/vimage/src/sys/netinet6/icmp6.c#50 integrate
.. //depot/projects/vimage/src/sys/netinet6/in6.c#43 integrate
.. //depot/projects/vimage/src/sys/netinet6/in6_ifattach.c#46 integrate
.. //depot/projects/vimage/src/sys/netinet6/nd6.c#58 integrate
.. //depot/projects/vimage/src/sys/netipsec/xform_ipip.c#35 integrate
.. //depot/projects/vimage/src/sys/nfsclient/bootp_subr.c#25 integrate
.. //depot/projects/vimage/src/sys/nfsclient/nfs_vnops.c#41 integrate
.. //depot/projects/vimage/src/sys/rpc/clnt_dg.c#8 integrate
.. //depot/projects/vimage/src/sys/rpc/clnt_rc.c#9 integrate
.. //depot/projects/vimage/src/sys/rpc/clnt_vc.c#8 integrate
.. //depot/projects/vimage/src/sys/rpc/rpc_generic.c#6 integrate
.. //depot/projects/vimage/src/sys/rpc/svc_dg.c#8 integrate
.. //depot/projects/vimage/src/sys/rpc/svc_generic.c#7 integrate
.. //depot/projects/vimage/src/sys/rpc/svc_vc.c#8 integrate
.. //depot/projects/vimage/src/sys/sys/cons.h#4 integrate
.. //depot/projects/vimage/src/sys/sys/param.h#61 integrate
.. //depot/projects/vimage/src/sys/sys/ttydisc.h#5 integrate
Differences ...
==== //depot/projects/vimage/src/share/man/man9/Makefile#13 (text+ko) ====
@@ -1,4 +1,4 @@
-# $FreeBSD: src/share/man/man9/Makefile,v 1.358 2009/08/12 21:03:16 sam Exp $
+# $FreeBSD: src/share/man/man9/Makefile,v 1.359 2009/08/23 07:48:11 julian Exp $
MAN= accept_filter.9 \
accf_data.9 \
@@ -713,6 +713,7 @@
kobj.9 kobj_delete.9 \
kobj.9 kobj_init.9
MLINKS+=kproc.9 kproc_create.9 \
+ kproc.9 kthread_create.9 \
kproc.9 kproc_exit.9 \
kproc.9 kproc_resume.9 \
kproc.9 kproc_shutdown.9 \
==== //depot/projects/vimage/src/share/man/man9/kproc.9#2 (text+ko) ====
@@ -23,7 +23,7 @@
.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
-.\" $FreeBSD: src/share/man/man9/kproc.9,v 1.3 2008/04/29 22:43:15 julian Exp $
+.\" $FreeBSD: src/share/man/man9/kproc.9,v 1.4 2009/08/23 07:48:11 julian Exp $
.\"
.Dd October 19, 2007
.Dt KPROC 9
@@ -64,6 +64,28 @@
.Fa "int flags" "int pages" "char * procname" "const char *fmt" "..."
.Fc
.Sh DESCRIPTION
+In
+.Fx 8.0 ,
+the
+.Fn kthread* 9
+family of functions was renamed to be the
+.Fn kproc* 9
+family of functions, as they were misnamed
+and actually produced kernel processes.
+A new family of
+.Em different
+.Fn kthread_* 9
+functions was added to produce
+.Em real
+kernel
+.Em threads .
+See the
+.Xr kthread 9
+man page for more information on those calls.
+Also note that the
+.Fn kproc_kthread_add 9
+function appears in both pages as its functionality is split.
+.Pp
The function
.Fn kproc_start
is used to start
==== //depot/projects/vimage/src/share/man/man9/kthread.9#3 (text+ko) ====
@@ -23,7 +23,7 @@
.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
-.\" $FreeBSD: src/share/man/man9/kthread.9,v 1.19 2009/01/27 00:22:16 trhodes Exp $
+.\" $FreeBSD: src/share/man/man9/kthread.9,v 1.20 2009/08/23 07:48:11 julian Exp $
.\"
.Dd January 26, 2009
.Dt KTHREAD 9
@@ -65,6 +65,27 @@
.Fa "int flags" "int pages" "char * procname" "const char *fmt" "..."
.Fc
.Sh DESCRIPTION
+In
+.Fx 8.0 ,
+the older family of
+.Fn kthread_* 9
+functions was renamed to be the
+.Fn kproc_* 9
+family of functions,
+as they were previously misnamed
+and actually produced kernel processes.
+This new family of
+.Fn kthread_* 9
+functions was added to produce
+.Em real
+kernel threads.
+See the
+.Xr kproc 9
+man page for more information on the renamed calls.
+Also note that the
+.Fn kproc_kthread_add 9
+function appears in both pages as its functionality is split.
+.Pp
The function
.Fn kthread_start
is used to start
==== //depot/projects/vimage/src/sys/arm/arm/undefined.c#4 (text+ko) ====
@@ -48,7 +48,7 @@
#include "opt_ddb.h"
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/arm/arm/undefined.c,v 1.16 2008/10/23 15:53:51 des Exp $");
+__FBSDID("$FreeBSD: src/sys/arm/arm/undefined.c,v 1.17 2009/08/23 23:37:53 cognet Exp $");
#include <sys/param.h>
#include <sys/malloc.h>
@@ -82,11 +82,10 @@
#ifdef DDB
#include <ddb/db_output.h>
-#include <machine/db_machdep.h>
#endif
-#ifdef acorn26
-#include <machine/machdep.h>
+#ifdef KDB
+#include <machine/db_machdep.h>
#endif
static int gdb_trapper(u_int, u_int, struct trapframe *, int);
==== //depot/projects/vimage/src/sys/arm/xscale/ixp425/ixdp425_pci.c#3 (text+ko) ====
@@ -33,7 +33,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/arm/xscale/ixp425/ixdp425_pci.c,v 1.2 2008/03/20 15:54:19 sam Exp $");
+__FBSDID("$FreeBSD: src/sys/arm/xscale/ixp425/ixdp425_pci.c,v 1.3 2009/08/23 19:54:36 cognet Exp $");
#define _ARM32_BUS_DMA_PRIVATE
#include <sys/param.h>
@@ -62,12 +62,12 @@
/* PCI Reset Assert */
reg = GPIO_CONF_READ_4(sc, IXP425_GPIO_GPOUTR);
reg &= ~(1U << GPIO_PCI_RESET);
- GPIO_CONF_WRITE_4(sc, IXP425_GPIO_GPOUTR, reg & ~(1U << GPIO_PCI_RESET));
+ GPIO_CONF_WRITE_4(sc, IXP425_GPIO_GPOUTR, reg);
/* PCI Clock Disable */
reg = GPIO_CONF_READ_4(sc, IXP425_GPIO_GPCLKR);
reg &= ~GPCLKR_MUX14;
- GPIO_CONF_WRITE_4(sc, IXP425_GPIO_GPCLKR, reg & ~GPCLKR_MUX14);
+ GPIO_CONF_WRITE_4(sc, IXP425_GPIO_GPCLKR, reg);
/*
* set GPIO Direction
==== //depot/projects/vimage/src/sys/cddl/compat/opensolaris/sys/mutex.h#4 (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/cddl/compat/opensolaris/sys/mutex.h,v 1.7 2009/05/29 01:49:27 attilio Exp $
+ * $FreeBSD: src/sys/cddl/compat/opensolaris/sys/mutex.h,v 1.8 2009/08/23 11:22:46 pjd Exp $
*/
#ifndef _OPENSOLARIS_SYS_MUTEX_H_
@@ -32,9 +32,9 @@
#ifdef _KERNEL
#include <sys/param.h>
-#include <sys/proc.h>
#include <sys/lock.h>
#include_next <sys/mutex.h>
+#include <sys/proc.h>
#include <sys/sx.h>
typedef enum {
==== //depot/projects/vimage/src/sys/cddl/compat/opensolaris/sys/proc.h#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/cddl/compat/opensolaris/sys/proc.h,v 1.6 2008/11/17 20:49:29 pjd Exp $
+ * $FreeBSD: src/sys/cddl/compat/opensolaris/sys/proc.h,v 1.8 2009/08/23 11:33:46 pjd Exp $
*/
#ifndef _OPENSOLARIS_SYS_PROC_H_
@@ -34,13 +34,16 @@
#include_next <sys/proc.h>
#include <sys/stdint.h>
#include <sys/smp.h>
+#include <sys/sched.h>
+#include <sys/lock.h>
+#include <sys/mutex.h>
#include <sys/debug.h>
#ifdef _KERNEL
#define CPU curcpu
-#define minclsyspri 0
-#define maxclsyspri 0
+#define minclsyspri PRIBIO
+#define maxclsyspri PVM
#define max_ncpus mp_ncpus
#define boot_max_ncpus mp_ncpus
@@ -54,11 +57,13 @@
typedef struct thread *kthread_id_t;
typedef struct proc proc_t;
+extern struct proc *zfsproc;
+
static __inline kthread_t *
thread_create(caddr_t stk, size_t stksize, void (*proc)(void *), void *arg,
size_t len, proc_t *pp, int state, pri_t pri)
{
- proc_t *p;
+ kthread_t *td = NULL;
int error;
/*
@@ -67,13 +72,19 @@
ASSERT(stk == NULL);
ASSERT(len == 0);
ASSERT(state == TS_RUN);
+ ASSERT(pp == &p0);
- error = kproc_create(proc, arg, &p, 0, stksize / PAGE_SIZE,
- "solthread %p", proc);
- return (error == 0 ? FIRST_THREAD_IN_PROC(p) : NULL);
+ error = kproc_kthread_add(proc, arg, &zfsproc, &td, 0,
+ stksize / PAGE_SIZE, "zfskern", "solthread %p", proc);
+ if (error == 0) {
+ thread_lock(td);
+ sched_prio(td, pri);
+ thread_unlock(td);
+ }
+ return (td);
}
-#define thread_exit() kproc_exit(0)
+#define thread_exit() kthread_exit()
#endif /* _KERNEL */
==== //depot/projects/vimage/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_geom.c#4 (text+ko) ====
@@ -194,6 +194,10 @@
zio_t *zio;
struct bio *bp;
+ thread_lock(curthread);
+ sched_prio(curthread, PRIBIO);
+ thread_unlock(curthread);
+
ctx = arg;
for (;;) {
mtx_lock(&ctx->gc_queue_mtx);
@@ -203,7 +207,7 @@
ctx->gc_state = 2;
wakeup_one(&ctx->gc_state);
mtx_unlock(&ctx->gc_queue_mtx);
- kproc_exit(0);
+ kthread_exit();
}
msleep(&ctx->gc_queue, &ctx->gc_queue_mtx,
PRIBIO | PDROP, "vgeom:io", 0);
@@ -530,8 +534,8 @@
vd->vdev_tsd = ctx;
pp = cp->provider;
- kproc_create(vdev_geom_worker, ctx, NULL, 0, 0, "vdev:worker %s",
- pp->name);
+ kproc_kthread_add(vdev_geom_worker, ctx, &zfsproc, NULL, 0, 0,
+ "zfskern", "vdev %s", pp->name);
/*
* Determine the actual size of the device.
==== //depot/projects/vimage/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ioctl.c#8 (text+ko) ====
@@ -3057,6 +3057,7 @@
}
static struct root_hold_token *zfs_root_token;
+struct proc *zfsproc;
uint_t zfs_fsyncer_key;
extern uint_t rrw_tsd_key;
==== //depot/projects/vimage/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zvol.c#3 (text+ko) ====
@@ -402,6 +402,10 @@
zvol_state_t *zv;
struct bio *bp;
+ thread_lock(curthread);
+ sched_prio(curthread, PRIBIO);
+ thread_unlock(curthread);
+
zv = arg;
for (;;) {
mtx_lock(&zv->zv_queue_mtx);
@@ -411,7 +415,7 @@
zv->zv_state = 2;
wakeup(&zv->zv_state);
mtx_unlock(&zv->zv_queue_mtx);
- kproc_exit(0);
+ kthread_exit();
}
msleep(&zv->zv_queue, &zv->zv_queue_mtx, PRIBIO | PDROP,
"zvol:io", 0);
@@ -824,7 +828,8 @@
bioq_init(&zv->zv_queue);
mtx_init(&zv->zv_queue_mtx, "zvol", NULL, MTX_DEF);
zv->zv_state = 0;
- kproc_create(zvol_worker, zv, NULL, 0, 0, "zvol:worker %s", pp->name);
+ kproc_kthread_add(zvol_worker, zv, &zfsproc, NULL, 0, 0, "zfskern",
+ "zvol %s", pp->name + strlen(ZVOL_DEV_DIR) + 1);
zvol_minors++;
end:
==== //depot/projects/vimage/src/sys/cddl/contrib/opensolaris/uts/common/sys/callb.h#3 (text+ko) ====
@@ -135,8 +135,6 @@
#define CALLB_CPR_INIT(cp, lockp, func, name) { \
strlcpy(curthread->td_name, (name), \
sizeof(curthread->td_name)); \
- strlcpy(curthread->td_proc->p_comm, (name), \
- sizeof(curthread->td_proc->p_comm)); \
bzero((caddr_t)(cp), sizeof (callb_cpr_t)); \
(cp)->cc_lockp = lockp; \
(cp)->cc_id = callb_add(func, (void *)(cp), \
==== //depot/projects/vimage/src/sys/compat/linux/linux_ioctl.c#27 (text+ko) ====
@@ -29,7 +29,7 @@
#include "opt_compat.h"
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/compat/linux/linux_ioctl.c,v 1.155 2009/08/01 19:26:27 rwatson Exp $");
+__FBSDID("$FreeBSD: src/sys/compat/linux/linux_ioctl.c,v 1.156 2009/08/23 20:40:19 rwatson Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -2061,22 +2061,20 @@
struct ifnet *ifscan;
int ethno;
+ IFNET_RLOCK_ASSERT();
+
/* Short-circuit non ethernet interfaces */
if (!IFP_IS_ETH(ifp))
return (strlcpy(buffer, ifp->if_xname, buflen));
/* Determine the (relative) unit number for ethernet interfaces */
ethno = 0;
- IFNET_RLOCK();
TAILQ_FOREACH(ifscan, &V_ifnet, if_link) {
- if (ifscan == ifp) {
- IFNET_RUNLOCK();
+ if (ifscan == ifp)
return (snprintf(buffer, buflen, "eth%d", ethno));
- }
if (IFP_IS_ETH(ifscan))
ethno++;
}
- IFNET_RUNLOCK();
return (0);
}
@@ -2177,7 +2175,7 @@
valid_len = 0;
/* Return all AF_INET addresses of all interfaces */
- IFNET_RLOCK(); /* could sleep XXX */
+ IFNET_RLOCK();
TAILQ_FOREACH(ifp, &V_ifnet, if_link) {
int addrs = 0;
==== //depot/projects/vimage/src/sys/conf/files#77 (text+ko) ====
@@ -1,4 +1,4 @@
-# $FreeBSD: src/sys/conf/files,v 1.1459 2009/08/01 19:26:27 rwatson Exp $
+# $FreeBSD: src/sys/conf/files,v 1.1461 2009/08/23 20:26:09 ed Exp $
#
# The long compile-with and dependency lines are required because of
# limitations in config: backslash-newline doesn't work in strings, and
@@ -845,8 +845,10 @@
dev/drm/r128_state.c optional r128drm \
compile-with "${NORMAL_C} -finline-limit=13500"
dev/drm/r300_cmdbuf.c optional radeondrm
+dev/drm/r600_blit.c optional radeondrm
dev/drm/r600_cp.c optional radeondrm
dev/drm/radeon_cp.c optional radeondrm
+dev/drm/radeon_cs.c optional radeondrm
dev/drm/radeon_drv.c optional radeondrm
dev/drm/radeon_irq.c optional radeondrm
dev/drm/radeon_mem.c optional radeondrm
@@ -1295,6 +1297,7 @@
dev/pst/pst-iop.c optional pst
dev/pst/pst-pci.c optional pst pci
dev/pst/pst-raid.c optional pst
+dev/pty/pty.c optional pty
dev/puc/puc.c optional puc
dev/puc/puc_cfg.c optional puc
dev/puc/puc_pccard.c optional puc pccard
@@ -2057,7 +2060,6 @@
kern/tty_inq.c standard
kern/tty_outq.c standard
kern/tty_pts.c standard
-kern/tty_pty.c optional pty
kern/tty_tty.c standard
kern/tty_ttydisc.c standard
kern/uipc_accf.c optional inet
==== //depot/projects/vimage/src/sys/conf/newvers.sh#11 (text+ko) ====
@@ -28,11 +28,11 @@
# SUCH DAMAGE.
#
# @(#)newvers.sh 8.1 (Berkeley) 4/20/94
-# $FreeBSD: src/sys/conf/newvers.sh,v 1.83 2009/07/15 17:29:05 kensmith Exp $
+# $FreeBSD: src/sys/conf/newvers.sh,v 1.85 2009/08/23 05:45:38 dougb Exp $
TYPE="FreeBSD"
-REVISION="8.0"
-BRANCH="BETA2"
+REVISION="9.0"
+BRANCH="CURRENT"
if [ "X${BRANCH_OVERRIDE}" != "X" ]; then
BRANCH=${BRANCH_OVERRIDE}
fi
@@ -87,29 +87,25 @@
v=`cat version` u=${USER:-root} d=`pwd` h=${HOSTNAME:-`hostname`} t=`date`
i=`${MAKE:-make} -V KERN_IDENT`
-for dir in /bin /usr/bin /usr/local/bin; do
- if [ -x "${dir}/svnversion" ]; then
- svnversion=${dir}/svnversion
- SRCDIR=${d##*obj}
- if [ -n "$MACHINE" ]; then
- SRCDIR=${SRCDIR##/$MACHINE}
+case "$d" in
+*/sys/*)
+ for dir in /bin /usr/bin /usr/local/bin; do
+ if [ -x "${dir}/svnversion" ]; then
+ svnversion=${dir}/svnversion
+ SRCDIR=${d##*obj}
+ if [ -n "$MACHINE" ]; then
+ SRCDIR=${SRCDIR##/$MACHINE}
+ fi
+ SRCDIR=${SRCDIR%%/sys/*}
+ break
fi
- SRCDIR=${SRCDIR%%/sys/*}
- break
- fi
-done
+ done
-if [ -n "$svnversion" -a -d "${SRCDIR}/.svn" ] ; then
- # If we are called from the kernel build, limit
- # the scope of svnversion to sys/ .
- if [ -e "${SRCDIR}/sys/conf/newvers.sh" ] ; then
- svn=" r`cd $SRCDIR/sys && $svnversion`"
- else
- svn=" r`cd $SRCDIR && $svnversion`"
+ if [ -n "$svnversion" -a -d "${SRCDIR}/sys/.svn" ] ; then
+ svn=" r`cd ${SRCDIR}/sys && $svnversion`"
fi
-else
- svn=""
-fi
+ ;;
+esac
cat << EOF > vers.c
$COPYRIGHT
==== //depot/projects/vimage/src/sys/conf/options#57 (text+ko) ====
@@ -1,4 +1,4 @@
-# $FreeBSD: src/sys/conf/options,v 1.688 2009/08/14 22:41:39 zec Exp $
+# $FreeBSD: src/sys/conf/options,v 1.689 2009/08/23 20:26:09 ed Exp $
#
# On the handling of kernel options
#
@@ -672,7 +672,6 @@
DEV_BPF opt_bpf.h
DEV_MCA opt_mca.h
DEV_CARP opt_carp.h
-DEV_PTY opt_tty.h
DEV_SPLASH opt_splash.h
# EISA support
==== //depot/projects/vimage/src/sys/contrib/altq/altq/altq_subr.c#24 (text+ko) ====
@@ -1,4 +1,4 @@
-/* $FreeBSD: src/sys/contrib/altq/altq/altq_subr.c,v 1.25 2009/08/01 19:26:27 rwatson Exp $ */
+/* $FreeBSD: src/sys/contrib/altq/altq/altq_subr.c,v 1.26 2009/08/23 20:40:19 rwatson Exp $ */
/* $KAME: altq_subr.c,v 1.21 2003/11/06 06:32:53 kjc Exp $ */
/*
@@ -462,8 +462,8 @@
s = splimp();
#endif
#if defined(__FreeBSD__) && (__FreeBSD_version >= 500000)
- IFNET_RLOCK();
- VNET_LIST_RLOCK();
+ IFNET_RLOCK_NOSLEEP();
+ VNET_LIST_RLOCK_NOSLEEP();
VNET_FOREACH(vnet_iter) {
CURVNET_SET(vnet_iter);
#endif
@@ -480,8 +480,8 @@
#if defined(__FreeBSD__) && (__FreeBSD_version >= 500000)
CURVNET_RESTORE();
}
- VNET_LIST_RUNLOCK();
- IFNET_RUNLOCK();
+ VNET_LIST_RUNLOCK_NOSLEEP();
+ IFNET_RUNLOCK_NOSLEEP();
#endif
splx(s);
if (active > 0)
==== //depot/projects/vimage/src/sys/dev/asmc/asmc.c#7 (text+ko) ====
@@ -33,7 +33,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/dev/asmc/asmc.c,v 1.13 2009/06/26 10:23:17 rpaulo Exp $");
+__FBSDID("$FreeBSD: src/sys/dev/asmc/asmc.c,v 1.14 2009/08/23 09:58:06 rpaulo Exp $");
#include <sys/param.h>
#include <sys/bus.h>
@@ -419,7 +419,8 @@
SYSCTL_ADD_PROC(sysctlctx,
SYSCTL_CHILDREN(sc->sc_light_tree),
- OID_AUTO, "control", CTLTYPE_INT | CTLFLAG_RW,
+ OID_AUTO, "control",
+ CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_ANYBODY,
dev, 0, model->smc_light_control, "I",
"Keyboard backlight brightness control");
}
==== //depot/projects/vimage/src/sys/dev/drm/drmP.h#12 (text+ko) ====
@@ -32,7 +32,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/dev/drm/drmP.h,v 1.37 2009/06/23 18:09:35 rnoland Exp $");
+__FBSDID("$FreeBSD: src/sys/dev/drm/drmP.h,v 1.39 2009/08/23 14:33:12 rnoland Exp $");
#ifndef _DRM_P_H_
#define _DRM_P_H_
@@ -148,6 +148,8 @@
MALLOC_DECLARE(DRM_MEM_SGLISTS);
MALLOC_DECLARE(DRM_MEM_DRAWABLE);
+SYSCTL_DECL(_hw_drm);
+
#define DRM_MAX_CTXBITMAP (PAGE_SIZE * 8)
/* Internal types and structures */
@@ -416,7 +418,6 @@
struct drm_device *dev;
int authenticated;
int master;
- int minor;
pid_t pid;
uid_t uid;
drm_magic_t magic;
==== //depot/projects/vimage/src/sys/dev/drm/drm_bufs.c#10 (text+ko) ====
@@ -29,7 +29,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/dev/drm/drm_bufs.c,v 1.13 2009/06/20 16:37:24 rnoland Exp $");
+__FBSDID("$FreeBSD: src/sys/dev/drm/drm_bufs.c,v 1.14 2009/08/23 14:27:46 rnoland Exp $");
/** @file drm_bufs.c
* Implementation of the ioctls for setup of DRM mappings and DMA buffers.
@@ -45,25 +45,33 @@
*/
static int drm_alloc_resource(struct drm_device *dev, int resource)
{
+ struct resource *res;
+ int rid;
+
+ DRM_SPINLOCK_ASSERT(&dev->dev_lock);
+
if (resource >= DRM_MAX_PCI_RESOURCE) {
DRM_ERROR("Resource %d too large\n", resource);
return 1;
}
- DRM_UNLOCK();
if (dev->pcir[resource] != NULL) {
- DRM_LOCK();
return 0;
}
- dev->pcirid[resource] = PCIR_BAR(resource);
- dev->pcir[resource] = bus_alloc_resource_any(dev->device,
- SYS_RES_MEMORY, &dev->pcirid[resource], RF_SHAREABLE);
+ DRM_UNLOCK();
+ rid = PCIR_BAR(resource);
+ res = bus_alloc_resource_any(dev->device, SYS_RES_MEMORY, &rid,
+ RF_SHAREABLE);
DRM_LOCK();
+ if (res == NULL) {
+ DRM_ERROR("Couldn't find resource 0x%x\n", resource);
+ return 1;
+ }
if (dev->pcir[resource] == NULL) {
- DRM_ERROR("Couldn't find resource 0x%x\n", resource);
- return 1;
+ dev->pcirid[resource] = rid;
+ dev->pcir[resource] = res;
}
return 0;
==== //depot/projects/vimage/src/sys/dev/drm/drm_drv.c#18 (text+ko) ====
@@ -29,7 +29,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/dev/drm/drm_drv.c,v 1.29 2009/08/20 19:17:53 jhb Exp $");
+__FBSDID("$FreeBSD: src/sys/dev/drm/drm_drv.c,v 1.31 2009/08/23 14:33:12 rnoland Exp $");
/** @file drm_drv.c
* The catch-all file for DRM device support, including module setup/teardown,
@@ -53,9 +53,6 @@
static drm_pci_id_list_t *drm_find_description(int vendor, int device,
drm_pci_id_list_t *idlist);
-#define DRIVER_SOFTC(unit) \
- ((struct drm_device *)devclass_get_softc(drm_devclass, unit))
-
MODULE_VERSION(drm, 1);
MODULE_DEPEND(drm, agp, 1, 1, 1);
MODULE_DEPEND(drm, pci, 1, 1, 1);
@@ -136,6 +133,9 @@
static int drm_msi = 1; /* Enable by default. */
TUNABLE_INT("hw.drm.msi", &drm_msi);
+SYSCTL_NODE(_hw, OID_AUTO, drm, CTLFLAG_RW, NULL, "DRM device");
+SYSCTL_INT(_hw_drm, OID_AUTO, msi, CTLFLAG_RDTUN, &drm_msi, 1,
+ "Enable MSI interrupts for drm devices");
static struct drm_msi_blacklist_entry drm_msi_blacklist[] = {
{0x8086, 0x2772}, /* Intel i945G */ \
@@ -210,11 +210,12 @@
dev->device = kdev;
#endif
dev->devnode = make_dev(&drm_cdevsw,
- unit,
+ 0,
DRM_DEV_UID,
DRM_DEV_GID,
DRM_DEV_MODE,
"dri/card%d", unit);
+ dev->devnode->si_drv1 = dev;
#if __FreeBSD_version >= 700053
dev->pci_domain = pci_get_domain(dev->device);
@@ -606,7 +607,7 @@
struct drm_device *dev = NULL;
int retcode = 0;
- dev = DRIVER_SOFTC(dev2unit(kdev));
+ dev = kdev->si_drv1;
DRM_DEBUG("open_count = %d\n", dev->open_count);
==== //depot/projects/vimage/src/sys/dev/drm/drm_fops.c#7 (text+ko) ====
@@ -30,7 +30,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/dev/drm/drm_fops.c,v 1.7 2008/10/23 20:23:03 rnoland Exp $");
+__FBSDID("$FreeBSD: src/sys/dev/drm/drm_fops.c,v 1.8 2009/08/23 14:31:20 rnoland Exp $");
/** @file drm_fops.c
* Support code for dealing with the file privates associated with each
@@ -44,14 +44,13 @@
struct drm_device *dev)
{
struct drm_file *priv;
- int m = dev2unit(kdev);
int retcode;
if (flags & O_EXCL)
return EBUSY; /* No exclusive opens */
dev->flags = flags;
- DRM_DEBUG("pid = %d, minor = %d\n", DRM_CURRENTPID, m);
+ DRM_DEBUG("pid = %d, device = %s\n", DRM_CURRENTPID, devtoname(kdev));
priv = malloc(sizeof(*priv), DRM_MEM_FILES, M_NOWAIT | M_ZERO);
if (priv == NULL) {
@@ -68,7 +67,6 @@
priv->dev = dev;
priv->uid = p->td_ucred->cr_svuid;
priv->pid = p->td_proc->p_pid;
- priv->minor = m;
priv->ioctl_count = 0;
/* for compatibility root is always authenticated */
==== //depot/projects/vimage/src/sys/dev/drm/drm_sysctl.c#7 (text+ko) ====
@@ -22,7 +22,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/dev/drm/drm_sysctl.c,v 1.7 2009/06/23 20:19:02 rnoland Exp $");
+__FBSDID("$FreeBSD: src/sys/dev/drm/drm_sysctl.c,v 1.8 2009/08/23 14:31:20 rnoland Exp $");
/** @file drm_sysctl.c
* Implementation of various sysctls for controlling DRM behavior and reporting
@@ -298,12 +298,13 @@
DRM_UNLOCK();
- DRM_SYSCTL_PRINT("\na dev pid uid magic ioctls\n");
+ DRM_SYSCTL_PRINT(
+ "\na dev pid uid magic ioctls\n");
for (i = 0; i < privcount; i++) {
priv = &tempprivs[i];
- DRM_SYSCTL_PRINT("%c %3d %5d %5d %10u %10lu\n",
+ DRM_SYSCTL_PRINT("%c %-12s %5d %5d %10u %10lu\n",
priv->authenticated ? 'y' : 'n',
- priv->minor,
+ devtoname(priv->dev->devnode),
priv->pid,
priv->uid,
priv->magic,
==== //depot/projects/vimage/src/sys/dev/drm/r600_cp.c#6 (text+ko) ====
@@ -27,7 +27,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/dev/drm/r600_cp.c,v 1.9 2009/08/12 12:57:02 rnoland Exp $");
+__FBSDID("$FreeBSD: src/sys/dev/drm/r600_cp.c,v 1.10 2009/08/23 14:55:57 rnoland Exp $");
#include "dev/drm/drmP.h"
#include "dev/drm/drm.h"
@@ -1843,6 +1843,7 @@
*/
dev_priv->vblank_crtc = DRM_RADEON_VBLANK_CRTC1;
+ dev_priv->do_boxes = 0;
dev_priv->cp_mode = init->cp_mode;
/* We don't support anything other than bus-mastering ring mode,
@@ -2100,6 +2101,8 @@
r600_do_engine_reset(dev);
r600_test_writeback(dev_priv);
+ r600_cs_init(dev);
+
return 0;
}
@@ -2232,3 +2235,135 @@
return 0;
}
+
+void r600_cp_dispatch_swap(struct drm_device * dev)
+{
+ drm_radeon_private_t *dev_priv = dev->dev_private;
+ drm_radeon_sarea_t *sarea_priv = dev_priv->sarea_priv;
+ int nbox = sarea_priv->nbox;
+ struct drm_clip_rect *pbox = sarea_priv->boxes;
+ int i, cpp, src_pitch, dst_pitch;
+ uint64_t src, dst;
+ RING_LOCALS;
+ DRM_DEBUG("\n");
+
+ if (dev_priv->color_fmt == RADEON_COLOR_FORMAT_ARGB8888)
+ cpp = 4;
+ else
+ cpp = 2;
+
+ if (dev_priv->sarea_priv->pfCurrentPage == 0) {
+ src_pitch = dev_priv->back_pitch;
+ dst_pitch = dev_priv->front_pitch;
+ src = dev_priv->back_offset + dev_priv->fb_location;
+ dst = dev_priv->front_offset + dev_priv->fb_location;
+ } else {
+ src_pitch = dev_priv->front_pitch;
+ dst_pitch = dev_priv->back_pitch;
+ src = dev_priv->front_offset + dev_priv->fb_location;
+ dst = dev_priv->back_offset + dev_priv->fb_location;
+ }
+
+ if (r600_prepare_blit_copy(dev)) {
+ DRM_ERROR("unable to allocate vertex buffer for swap buffer\n");
+ return;
+ }
+ for (i = 0; i < nbox; i++) {
+ int x = pbox[i].x1;
+ int y = pbox[i].y1;
+ int w = pbox[i].x2 - x;
+ int h = pbox[i].y2 - y;
+
+ DRM_DEBUG("%d,%d-%d,%d\n", x, y, w, h);
+
+ r600_blit_swap(dev,
+ src, dst,
+ x, y, x, y, w, h,
+ src_pitch, dst_pitch, cpp);
+ }
+ r600_done_blit_copy(dev);
+
+ /* Increment the frame counter. The client-side 3D driver must
+ * throttle the framerate by waiting for this value before
+ * performing the swapbuffer ioctl.
+ */
+ dev_priv->sarea_priv->last_frame++;
+
+ BEGIN_RING(3);
+ R600_FRAME_AGE(dev_priv->sarea_priv->last_frame);
+ ADVANCE_RING();
+}
+
+int r600_cp_dispatch_texture(struct drm_device * dev,
+ struct drm_file *file_priv,
+ drm_radeon_texture_t * tex,
+ drm_radeon_tex_image_t * image)
+{
+ drm_radeon_private_t *dev_priv = dev->dev_private;
+ struct drm_buf *buf;
+ u32 *buffer;
+ const u8 __user *data;
+ int size, pass_size;
+ u64 src_offset, dst_offset;
+
+ if (!radeon_check_offset(dev_priv, tex->offset)) {
+ DRM_ERROR("Invalid destination offset\n");
+ return -EINVAL;
+ }
+
+ /* this might fail for zero-sized uploads - are those illegal? */
+ if (!radeon_check_offset(dev_priv, tex->offset + tex->height * tex->pitch - 1)) {
+ DRM_ERROR("Invalid final destination offset\n");
+ return -EINVAL;
+ }
+
+ size = tex->height * tex->pitch;
+
+ if (size == 0)
+ return 0;
+
+ dst_offset = tex->offset;
+
+ r600_prepare_blit_copy(dev);
+ do {
+ data = (const u8 __user *)image->data;
+ pass_size = size;
+
+ buf = radeon_freelist_get(dev);
+ if (!buf) {
+ DRM_DEBUG("EAGAIN\n");
+ if (DRM_COPY_TO_USER(tex->image, image, sizeof(*image)))
+ return -EFAULT;
+ return -EAGAIN;
+ }
+
+ if (pass_size > buf->total)
+ pass_size = buf->total;
+
+ /* Dispatch the indirect buffer.
+ */
+ buffer =
+ (u32 *) ((char *)dev->agp_buffer_map->handle + buf->offset);
+
>>> TRUNCATED FOR MAIL (1000 lines) <<<
More information about the p4-projects
mailing list