You can subscribe to this list here.
| 2000 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
(6) |
Sep
(2) |
Oct
(43) |
Nov
(4) |
Dec
(12) |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2001 |
Jan
(78) |
Feb
(97) |
Mar
(29) |
Apr
(2) |
May
(22) |
Jun
(38) |
Jul
(11) |
Aug
(27) |
Sep
(40) |
Oct
(2) |
Nov
(17) |
Dec
(8) |
| 2002 |
Jan
|
Feb
(2) |
Mar
(1) |
Apr
(480) |
May
(456) |
Jun
(12) |
Jul
|
Aug
(1) |
Sep
|
Oct
(18) |
Nov
(3) |
Dec
(6) |
| 2003 |
Jan
|
Feb
(18) |
Mar
(1) |
Apr
|
May
(6) |
Jun
(147) |
Jul
(7) |
Aug
(3) |
Sep
(235) |
Oct
(10) |
Nov
(2) |
Dec
(1) |
| 2004 |
Jan
|
Feb
|
Mar
|
Apr
|
May
(1) |
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
|
From: <ai...@us...> - 2003-09-21 13:12:35
|
Update of /cvsroot/linux-vax/kernel-2.4/arch/ia64/sn In directory sc8-pr-cvs1:/tmp/cvs-serv24917/arch/ia64/sn Removed Files: Makefile Log Message: Merge 2.4.19 --- Makefile DELETED --- |
Update of /cvsroot/linux-vax/kernel-2.4/arch/ia64/sn/io In directory sc8-pr-cvs1:/tmp/cvs-serv24917/arch/ia64/sn/io Removed Files: devsupport.c huberror.c ip37.c mem_refcnt.c ml_SN_intr.c pcibr.c Log Message: Merge 2.4.19 --- devsupport.c DELETED --- --- huberror.c DELETED --- --- ip37.c DELETED --- --- mem_refcnt.c DELETED --- --- ml_SN_intr.c DELETED --- --- pcibr.c DELETED --- |
Update of /cvsroot/linux-vax/kernel-2.4/arch/mips/ddb5476 In directory sc8-pr-cvs1:/tmp/cvs-serv24917/arch/mips/ddb5476 Removed Files: Makefile dbg_io.c int-handler.S irq.c nile4.c pci.c prom.c setup.c time.c Log Message: Merge 2.4.19 --- Makefile DELETED --- --- dbg_io.c DELETED --- --- int-handler.S DELETED --- --- irq.c DELETED --- --- nile4.c DELETED --- --- pci.c DELETED --- --- prom.c DELETED --- --- setup.c DELETED --- --- time.c DELETED --- |
Update of /cvsroot/linux-vax/kernel-2.4/arch/ia64/sn/fprom In directory sc8-pr-cvs1:/tmp/cvs-serv24917/arch/ia64/sn/fprom Removed Files: Makefile README fpmem.c fpmem.h fprom.lds fpromasm.S fw-emu.c main.c runsim Log Message: Merge 2.4.19 --- Makefile DELETED --- --- README DELETED --- --- fpmem.c DELETED --- --- fpmem.h DELETED --- --- fprom.lds DELETED --- --- fpromasm.S DELETED --- --- fw-emu.c DELETED --- --- main.c DELETED --- --- runsim DELETED --- |
Update of /cvsroot/linux-vax/kernel-2.4/arch/ia64/sn/sn1 In directory sc8-pr-cvs1:/tmp/cvs-serv24917/arch/ia64/sn/sn1 Removed Files: Makefile discontig.c error.c iomv.c irq.c llsc4.c llsc4.h machvec.c mm.c probe.c setup.c smp.c sn1_asm.S sn1_ksyms.c sv.c synergy.c Log Message: Merge 2.4.19 --- Makefile DELETED --- --- discontig.c DELETED --- --- error.c DELETED --- --- iomv.c DELETED --- --- irq.c DELETED --- --- llsc4.c DELETED --- --- llsc4.h DELETED --- --- machvec.c DELETED --- --- mm.c DELETED --- --- probe.c DELETED --- --- setup.c DELETED --- --- smp.c DELETED --- --- sn1_asm.S DELETED --- --- sn1_ksyms.c DELETED --- --- sv.c DELETED --- --- synergy.c DELETED --- |
|
From: <ke...@us...> - 2003-09-20 19:37:36
|
Update of /cvsroot/linux-vax/kernel-2.4/drivers/net/pcmcia In directory sc8-pr-cvs1:/tmp/cvs-serv2507/drivers/net/pcmcia Removed Files: ax8390.h Log Message: Deleting files that are no longer in Linus' 2.4.18 tree --- ax8390.h DELETED --- |
|
From: <ke...@us...> - 2003-09-20 19:37:36
|
Update of /cvsroot/linux-vax/kernel-2.4/include/asm-s390 In directory sc8-pr-cvs1:/tmp/cvs-serv2507/include/asm-s390 Removed Files: s390-gdbregs.h Log Message: Deleting files that are no longer in Linus' 2.4.18 tree --- s390-gdbregs.h DELETED --- |
|
From: <ke...@us...> - 2003-09-20 19:37:36
|
Update of /cvsroot/linux-vax/kernel-2.4/include/asm-s390x In directory sc8-pr-cvs1:/tmp/cvs-serv2507/include/asm-s390x Removed Files: s390-gdbregs.h Log Message: Deleting files that are no longer in Linus' 2.4.18 tree --- s390-gdbregs.h DELETED --- |
|
From: <ke...@us...> - 2003-09-20 19:37:36
|
Update of /cvsroot/linux-vax/kernel-2.4/drivers/ieee1394 In directory sc8-pr-cvs1:/tmp/cvs-serv2507/drivers/ieee1394 Removed Files: ieee1394_syms.c Log Message: Deleting files that are no longer in Linus' 2.4.18 tree --- ieee1394_syms.c DELETED --- |
|
From: <ke...@us...> - 2003-09-20 19:37:35
|
Update of /cvsroot/linux-vax/kernel-2.4/arch/ppc/kernel In directory sc8-pr-cvs1:/tmp/cvs-serv2507/arch/ppc/kernel Removed Files: feature.c Log Message: Deleting files that are no longer in Linus' 2.4.18 tree --- feature.c DELETED --- |
|
From: <ke...@us...> - 2003-09-20 19:37:35
|
Update of /cvsroot/linux-vax/kernel-2.4/fs/ext3 In directory sc8-pr-cvs1:/tmp/cvs-serv2507/fs/ext3 Removed Files: acl.c Log Message: Deleting files that are no longer in Linus' 2.4.18 tree --- acl.c DELETED --- |
|
From: <ke...@us...> - 2003-09-20 19:37:35
|
Update of /cvsroot/linux-vax/kernel-2.4/drivers/sound/cs4281 In directory sc8-pr-cvs1:/tmp/cvs-serv2507/drivers/sound/cs4281 Removed Files: cs4281_wrapper-24.c Log Message: Deleting files that are no longer in Linus' 2.4.18 tree --- cs4281_wrapper-24.c DELETED --- |
|
From: <ke...@us...> - 2003-09-20 19:37:35
|
Update of /cvsroot/linux-vax/kernel-2.4/drivers/char In directory sc8-pr-cvs1:/tmp/cvs-serv2507/drivers/char Removed Files: sc26c94.c sc26c94.h vxt2694.c Log Message: Deleting files that are no longer in Linus' 2.4.18 tree --- sc26c94.c DELETED --- --- sc26c94.h DELETED --- --- vxt2694.c DELETED --- |
|
From: <ke...@us...> - 2003-09-20 19:37:35
|
Update of /cvsroot/linux-vax/kernel-2.4/drivers/isdn/hysdn In directory sc8-pr-cvs1:/tmp/cvs-serv2507/drivers/isdn/hysdn Removed Files: hysdn_procfs.c Log Message: Deleting files that are no longer in Linus' 2.4.18 tree --- hysdn_procfs.c DELETED --- |
|
From: <ke...@us...> - 2003-09-20 19:37:34
|
Update of /cvsroot/linux-vax/kernel-2.4/include/asm-ppc In directory sc8-pr-cvs1:/tmp/cvs-serv2507/include/asm-ppc Removed Files: feature.h Log Message: Deleting files that are no longer in Linus' 2.4.18 tree --- feature.h DELETED --- |
|
From: <ke...@us...> - 2003-09-20 19:37:34
|
Update of /cvsroot/linux-vax/kernel-2.4/Documentation/filesystems/devfs In directory sc8-pr-cvs1:/tmp/cvs-serv2507/Documentation/filesystems/devfs Removed Files: rc.devfs Log Message: Deleting files that are no longer in Linus' 2.4.18 tree --- rc.devfs DELETED --- |
|
From: <ke...@us...> - 2003-09-20 19:37:33
|
Update of /cvsroot/linux-vax/kernel-2.4/Documentation/networking In directory sc8-pr-cvs1:/tmp/cvs-serv2507/Documentation/networking Removed Files: tulip.txt Log Message: Deleting files that are no longer in Linus' 2.4.18 tree --- tulip.txt DELETED --- |
|
From: <ai...@us...> - 2003-09-20 08:17:17
|
Update of /cvsroot/linux-vax/kernel-2.4/arch/vax/kernel In directory sc8-pr-cvs1:/tmp/cvs-serv27100/arch/vax/kernel Modified Files: vax_ksyms.c Log Message: DA: don't export strtol anymore Index: vax_ksyms.c =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/arch/vax/kernel/vax_ksyms.c,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- vax_ksyms.c 17 May 2003 11:07:08 -0000 1.1 +++ vax_ksyms.c 20 Sep 2003 08:17:08 -0000 1.2 @@ -28,7 +28,6 @@ EXPORT_SYMBOL(strtok); EXPORT_SYMBOL(strpbrk); -EXPORT_SYMBOL(simple_strtol); EXPORT_SYMBOL(strstr); EXPORT_SYMBOL(__strncpy_from_user); |
|
From: <ai...@us...> - 2003-09-19 20:25:56
|
Update of /cvsroot/linux-vax/kernel-2.4/arch/vax/kernel In directory sc8-pr-cvs1:/tmp/cvs-serv17715 Modified Files: signal.c Log Message: DA: add my name to top of file Index: signal.c =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/arch/vax/kernel/signal.c,v retrieving revision 1.14 retrieving revision 1.15 diff -u -d -r1.14 -r1.15 --- signal.c 19 Sep 2003 13:37:39 -0000 1.14 +++ signal.c 19 Sep 2003 13:42:22 -0000 1.15 @@ -12,7 +12,8 @@ * Copyright (C) 2000 Axis Communications AB * * Authors: Bjorn Wesen (bj...@ax...) - * VAX port at...@pe.... + * VAX port at...@pe..., + * + David Airlie Copyright (C) 2003 * See syscall.c for details of the call stack layout etc... */ |
|
From: <ai...@us...> - 2003-09-19 19:58:51
|
Update of /cvsroot/linux-vax/kernel-2.4/arch/vax/kernel
In directory sc8-pr-cvs1:/tmp/cvs-serv16653
Modified Files:
signal.c
Log Message:
DA: okay kernel rt stuff looks good to me ..
Index: signal.c
===================================================================
RCS file: /cvsroot/linux-vax/kernel-2.4/arch/vax/kernel/signal.c,v
retrieving revision 1.13
retrieving revision 1.14
diff -u -d -r1.13 -r1.14
--- signal.c 18 Sep 2003 13:16:01 -0000 1.13
+++ signal.c 19 Sep 2003 13:37:39 -0000 1.14
@@ -110,8 +110,6 @@
{
sigset_t saveset, newset;
- printk("sys_rt_sigsuspend called but may not work\n");
-
/* XXX: Don't preclude handling different sized sigset_t's. */
if (sigsetsize != sizeof(sigset_t))
return -EINVAL;
@@ -216,7 +214,7 @@
* (we cannot just pop the sigcontext since we aligned the sp and
* stuff after pushing it)
*/
-
+
/* FIXME: check process stack */
/* TODO: the other ports use regs->orig_XX to disable syscall checks
@@ -270,14 +268,13 @@
}
-/* FIXME: _rt_ stuff is completely unchecked + probably does not work */
+/* works better now */
asmlinkage int sys_rt_sigreturn(struct pt_regs *regs)
{
- struct rt_sigframe *frame = (struct rt_sigframe *)(regs->sp);
+ struct rt_sigframe *frame = (struct rt_sigframe *)(regs->sp-8);
sigset_t set;
stack_t st;
- printk("sys_rt_sigreturn called but may not work\n");
/*
* Since we stacked the signal on a dword boundary,
* then frame should be dword aligned here. If it's
@@ -371,7 +368,7 @@
#ifdef DEBUG_SIG
- printk("setup_frame: pid %d, sig %d, regs %p, frame %p, sigaction %p\n",current->pid,sig,regs,frame,ka);
+ printk("setup_frame: pid %d, sig %d, regs %p, regs->sp %p, frame %p, sigaction %p\n",current->pid,sig,regs,regs->sp,frame,ka);
show_regs(regs);
#endif
if (!access_ok(VERIFY_WRITE, frame, sizeof(*frame)))
@@ -531,6 +528,10 @@
// machine_halt();
frame = get_sigframe(ka, regs, sizeof(*frame));
+#ifdef DEBUG_SIG
+ printk("setup_rt_frame: pid %d, sig %d, regs %p, regs->sp %p, frame %p, sigaction %p\n",current->pid,sig,regs,regs->sp,frame,ka);
+ show_regs(regs);
+#endif
if (!access_ok(VERIFY_WRITE, frame, sizeof(*frame)))
goto give_sigsegv;
@@ -594,7 +595,7 @@
/* chmk __NR_sigreturn; */
err |= __put_user(0xbc, (char *)(frame->retcode+12));
err |= __put_user(0x8f, (char *)(frame->retcode+13));
- err |= __put_user(__NR_sigreturn, (short *)(frame->retcode+14));
+ err |= __put_user(__NR_rt_sigreturn, (short *)(frame->retcode+14));
/* plus a halt */
err |= __put_user(0x00, (char *)(frame->retcode+16));
}
@@ -603,12 +604,14 @@
goto give_sigsegv;
/* TODO what is the current->exec_domain stuff and invmap ? */
-
+#ifdef DEBUG_SIG
+ printk("setup_rt_frame: pid %d, frame->retcode %p, sa_handler %p usp %8lX\n",current->pid,frame->retcode,ka->sa.sa_handler,__mfpr(PR_USP));
+#endif
/* Set up registers for signal handler */
regs->pc = (unsigned long) frame->retcode; /* what we enter NOW */
regs->fp = regs->sp;
- regs->sp = (unsigned int)frame; /* what we enter LATER */
+ regs->sp = (unsigned int)frame; /* what we enter LATER */
__mtpr(frame, PR_USP);
return;
|
|
From: <ai...@us...> - 2003-09-19 19:35:54
|
Update of /cvsroot/linux-vax/kernel-2.4/arch/vax/kernel
In directory sc8-pr-cvs1:/tmp/cvs-serv17898
Modified Files:
signal.c
Log Message:
DA: remove some FIXMEs...
Index: signal.c
===================================================================
RCS file: /cvsroot/linux-vax/kernel-2.4/arch/vax/kernel/signal.c,v
retrieving revision 1.15
retrieving revision 1.16
diff -u -d -r1.15 -r1.16
--- signal.c 19 Sep 2003 13:42:22 -0000 1.15
+++ signal.c 19 Sep 2003 13:43:30 -0000 1.16
@@ -185,7 +185,7 @@
unsigned char retcode[20]; /* trampoline code */
};
-/* FIXME: this dont work ... */
+/* This should work now */
struct rt_sigframe {
int sig;
struct siginfo *pinfo;
@@ -519,7 +519,6 @@
force_sig(SIGSEGV, current);
}
-/* FIXME: this is bogus */
static void setup_rt_frame(int sig, struct k_sigaction *ka, siginfo_t *info,
sigset_t *set, struct pt_regs * regs)
{
|
|
From: <ai...@us...> - 2003-09-18 13:26:09
|
Update of /cvsroot/linux-vax/kernel-2.4/arch/vax/kernel
In directory sc8-pr-cvs1:/tmp/cvs-serv22133
Modified Files:
process.c
Log Message:
DA: backout last commit
Index: process.c
===================================================================
RCS file: /cvsroot/linux-vax/kernel-2.4/arch/vax/kernel/process.c,v
retrieving revision 1.20
retrieving revision 1.21
diff -u -d -r1.20 -r1.21
--- process.c 18 Sep 2003 13:16:01 -0000 1.20
+++ process.c 18 Sep 2003 13:25:59 -0000 1.21
@@ -203,13 +203,13 @@
if (!newsp) {
newsp = regs->sp;
}
-#if 1 /*def VAX_PROCESS_DEBUG*/
+#ifdef VAX_PROCESS_DEBUG
printk("sys_clone: calling do_fork(0x%08lx, 0x%08lx, 0x%p)\n",
clone_flags, newsp, regs);
#endif
retval = do_fork(clone_flags, newsp, regs, 0);
-#if 1 /*def VAX_PROCESS_DEBUG*/
+#ifdef VAX_PROCESS_DEBUG
printk("sys_clone: do_fork() returned %d\n", retval);
#endif
return retval;
|
|
From: <ai...@us...> - 2003-09-18 13:16:07
|
Update of /cvsroot/linux-vax/kernel-2.4/arch/vax/kernel
In directory sc8-pr-cvs1:/tmp/cvs-serv20312
Modified Files:
interrupt.c process.c signal.c
Log Message:
DA: step two still not working but at least the signal handler gets called
Index: interrupt.c
===================================================================
RCS file: /cvsroot/linux-vax/kernel-2.4/arch/vax/kernel/interrupt.c,v
retrieving revision 1.26
retrieving revision 1.27
diff -u -d -r1.26 -r1.27
--- interrupt.c 23 Feb 2003 23:54:55 -0000 1.26
+++ interrupt.c 18 Sep 2003 13:16:01 -0000 1.27
@@ -224,7 +224,7 @@
printk("\nStack dump\n");
- hex_dump((void *)(regs->sp), 256);
+ hex_dump((void *)(regs->sp)-256, 512);
show_regs(regs);
show_cpu_regs();
@@ -259,7 +259,7 @@
if (user_mode(regs)) {
unsigned int usp = __mfpr(PR_USP);
- hex_dump((void *)usp, 256);
+ hex_dump((void *)usp-128, 256);
force_sig(SIGILL,current);
return;
}
Index: process.c
===================================================================
RCS file: /cvsroot/linux-vax/kernel-2.4/arch/vax/kernel/process.c,v
retrieving revision 1.19
retrieving revision 1.20
diff -u -d -r1.19 -r1.20
--- process.c 9 Mar 2003 23:07:29 -0000 1.19
+++ process.c 18 Sep 2003 13:16:01 -0000 1.20
@@ -203,13 +203,13 @@
if (!newsp) {
newsp = regs->sp;
}
-#ifdef VAX_PROCESS_DEBUG
+#if 1 /*def VAX_PROCESS_DEBUG*/
printk("sys_clone: calling do_fork(0x%08lx, 0x%08lx, 0x%p)\n",
clone_flags, newsp, regs);
#endif
retval = do_fork(clone_flags, newsp, regs, 0);
-#ifdef VAX_PROCESS_DEBUG
+#if 1 /*def VAX_PROCESS_DEBUG*/
printk("sys_clone: do_fork() returned %d\n", retval);
#endif
return retval;
Index: signal.c
===================================================================
RCS file: /cvsroot/linux-vax/kernel-2.4/arch/vax/kernel/signal.c,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -d -r1.12 -r1.13
--- signal.c 16 Sep 2003 12:34:15 -0000 1.12
+++ signal.c 18 Sep 2003 13:16:01 -0000 1.13
@@ -188,7 +188,9 @@
/* FIXME: this dont work ... */
struct rt_sigframe {
- int sig;
+ int sig;
+ struct siginfo *pinfo;
+ void *puc;
struct siginfo info;
struct ucontext uc;
unsigned char retcode[20]; /* trampoline code */
@@ -532,6 +534,10 @@
if (!access_ok(VERIFY_WRITE, frame, sizeof(*frame)))
goto give_sigsegv;
+ err |= __put_user(sig, (unsigned int *)&frame->sig);
+ err |= __put_user(&frame->info, &frame->pinfo);
+ err |= __put_user(&frame->uc, &frame->puc);
+
err |= copy_siginfo_to_user(&frame->info, info);
if (err)
goto give_sigsegv;
@@ -549,9 +555,6 @@
/* Set up to return from userspace. If provided, use a stub
already in userspace. */
- /* Set up to return from userspace. If provided, use a stub
- already in userspace. */
-
/* We do this differently to other ports. Each function has a two byte RSM.
* (due to the calling convention). Each sighandler will expect to be
* CALLS'd and will RET from that. So we cant just muck about with PC's on the
@@ -559,9 +562,9 @@
* The easiest way to skip around all this is to calls the signal
* handler, and then either calls the restorer, or chmk to sys_sigreturn */
- /* CALLS $1, */
+ /* CALLS $3, */
err |= __put_user(0xfb, (char *)(frame->retcode+0));
- err |= __put_user(0x01, (char *)(frame->retcode+1));
+ err |= __put_user(0x03, (char *)(frame->retcode+1));
/* (absolute address)*/
err |= __put_user(0x9f, (char *)(frame->retcode+2));
/* sighandler */
@@ -603,7 +606,7 @@
/* Set up registers for signal handler */
- regs->pc = (unsigned long) ka->sa.sa_handler; /* what we enter NOW */
+ regs->pc = (unsigned long) frame->retcode; /* what we enter NOW */
regs->fp = regs->sp;
regs->sp = (unsigned int)frame; /* what we enter LATER */
__mtpr(frame, PR_USP);
@@ -652,7 +655,7 @@
/* Set up the stack frame */
#ifdef DEBUG_SIG
- printk("handle_signal: setup_frame(sig=%d,ka=%p,oldset=%d,regs=%p)\n",sig,ka,oldset,regs);
+ printk("handle_signal: setup_frame(sig=%d,flags=%d,ka=%p,oldset=%d,regs=%p)\n",sig,ka->sa.sa_flags,ka,oldset,regs);
#endif
if (ka->sa.sa_flags & SA_SIGINFO)
setup_rt_frame(sig, ka, info, oldset, regs);
|
|
From: <ai...@us...> - 2003-09-16 12:34:22
|
Update of /cvsroot/linux-vax/kernel-2.4/arch/vax/kernel
In directory sc8-pr-cvs1:/tmp/cvs-serv16019
Modified Files:
signal.c
Log Message:
DA: this is better than what was there already - still not tested,
I'd say there is still some work left to do
Index: signal.c
===================================================================
RCS file: /cvsroot/linux-vax/kernel-2.4/arch/vax/kernel/signal.c,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -d -r1.11 -r1.12
--- signal.c 16 Feb 2003 23:28:02 -0000 1.11
+++ signal.c 16 Sep 2003 12:34:15 -0000 1.12
@@ -32,7 +32,7 @@
#include <asm/ucontext.h>
#include <asm/uaccess.h>
-#undef DEBUG_SIG
+#undef DEBUG_SIG
/* FIXME: Check this & fixup other regs, like r0 */
#define RESTART_VAX_SYSCALL(regs) { (regs)->pc -= 4; }
@@ -188,12 +188,10 @@
/* FIXME: this dont work ... */
struct rt_sigframe {
- char *pretcode;
- struct siginfo *pinfo;
- void *puc;
+ int sig;
struct siginfo info;
struct ucontext uc;
- unsigned char retcode[8]; /* trampoline code */
+ unsigned char retcode[20]; /* trampoline code */
};
@@ -526,17 +524,14 @@
sigset_t *set, struct pt_regs * regs)
{
struct rt_sigframe *frame;
- unsigned long return_ip;
int err = 0;
- machine_halt();
+ // machine_halt();
frame = get_sigframe(ka, regs, sizeof(*frame));
if (!access_ok(VERIFY_WRITE, frame, sizeof(*frame)))
goto give_sigsegv;
- err |= __put_user(&frame->info, &frame->pinfo);
- err |= __put_user(&frame->uc, &frame->puc);
err |= copy_siginfo_to_user(&frame->info, info);
if (err)
goto give_sigsegv;
@@ -553,17 +548,54 @@
/* Set up to return from userspace. If provided, use a stub
already in userspace. */
+
+ /* Set up to return from userspace. If provided, use a stub
+ already in userspace. */
+
+ /* We do this differently to other ports. Each function has a two byte RSM.
+ * (due to the calling convention). Each sighandler will expect to be
+ * CALLS'd and will RET from that. So we cant just muck about with PC's on the
+ * stack like the i386. So we use the trampoline code on the stack a bit more.
+ * The easiest way to skip around all this is to calls the signal
+ * handler, and then either calls the restorer, or chmk to sys_sigreturn */
+
+ /* CALLS $1, */
+ err |= __put_user(0xfb, (char *)(frame->retcode+0));
+ err |= __put_user(0x01, (char *)(frame->retcode+1));
+ /* (absolute address)*/
+ err |= __put_user(0x9f, (char *)(frame->retcode+2));
+ /* sighandler */
+ err |= __put_user(((unsigned long) ka->sa.sa_handler), (unsigned long *)(frame->retcode + 3));
+
if (ka->sa.sa_flags & SA_RESTORER) {
- return_ip = (unsigned long)ka->sa.sa_restorer;
+ /* CALLS $0,*/
+ err |= __put_user(0xfb, (char *)(frame->retcode+7));
+ err |= __put_user(0x00, (char *)(frame->retcode+8));
+ /* (absolute address)*/
+ err |= __put_user(0x9f, (char *)(frame->retcode+9));
+ /* restorer */
+ err |= __put_user(((unsigned long) ka->sa.sa_restorer), (unsigned long *)(frame->retcode + 10));
+ /* plus a halt */
+ err |= __put_user(0x00, (char *)(frame->retcode+14));
} else {
- /* trampoline - the desired return ip is the retcode itself */
- return_ip = (unsigned long)&frame->retcode;
- /* TODO: check byteorder */
- err |= __put_user(0xbc8f, (short *)(frame->retcode+0));
- err |= __put_user(__NR_sigreturn, (short *)(frame->retcode+2));
+ /* perform a syscall to sys_sigreturn. First set up the
+ * argument list to avoid confusing it */
+
+ /* pushl $0x0 */
+ err |= __put_user(0xdd, (char *)(frame->retcode+7));
+ err |= __put_user(0x00, (char *)(frame->retcode+8));
+ /* movl sp, ap */
+ err |= __put_user(0xd0, (char *)(frame->retcode+9));
+ err |= __put_user(0x5e, (char *)(frame->retcode+10));
+ err |= __put_user(0x5c, (char *)(frame->retcode+11));
+ /* chmk __NR_sigreturn; */
+ err |= __put_user(0xbc, (char *)(frame->retcode+12));
+ err |= __put_user(0x8f, (char *)(frame->retcode+13));
+ err |= __put_user(__NR_sigreturn, (short *)(frame->retcode+14));
+ /* plus a halt */
+ err |= __put_user(0x00, (char *)(frame->retcode+16));
}
- err |= __put_user(return_ip, &frame->pretcode);
if (err)
goto give_sigsegv;
@@ -572,7 +604,9 @@
/* Set up registers for signal handler */
regs->pc = (unsigned long) ka->sa.sa_handler; /* what we enter NOW */
- regs->sp = (unsigned int)frame; /* what we enter LATER */
+ regs->fp = regs->sp;
+ regs->sp = (unsigned int)frame; /* what we enter LATER */
+ __mtpr(frame, PR_USP);
return;
@@ -657,7 +691,7 @@
return 1;
/* FIXME: */
- canrestart=0;
+ canrestart=regs->r0;
#ifdef DEBUG_SIG
printk("do_signal: pid %d,canrestart %d, current->sigpending %d,current->blocked %d ", current->pid,canrestart,current->sigpending,current->blocked);
#endif
|
|
From: Uns L. <uns...@us...> - 2003-08-03 05:17:46
|
Update of /cvsroot/linux-vax/kernel-2.4/drivers/video
In directory sc8-pr-cvs1:/tmp/cvs-serv12950
Modified Files:
vmonofb.c
Log Message:
vmonofb changes:
- change line_length from 1280/8 to 1024/8
- add (red,green,blue).length which i guess are used when userspace modifies the palette
- when loading the ramdac, get the intensity value from a weighted r/g/b sum
- when loading cmap data, don't load a 0 into the data reg first (or you'll end up with a mostly empty-colormap)
- fbgen_get_var(&the_fb_info.gen.info.var) instead of &disp.var. this is "wrong" but it seems to work better
- init the_fb_info.gen.fbhw _before_ trying to use it
i'm not sure how correct these changes are.
Index: vmonofb.c
===================================================================
RCS file: /cvsroot/linux-vax/kernel-2.4/drivers/video/vmonofb.c,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- vmonofb.c 9 Jun 2002 20:47:23 -0000 1.1
+++ vmonofb.c 3 Aug 2003 05:17:30 -0000 1.2
@@ -67,7 +67,7 @@
fix->type = FB_TYPE_PACKED_PIXELS;
fix->type_aux = 0;
fix->visual = FB_VISUAL_PSEUDOCOLOR;
- fix->line_length = 1280 / 8;
+ fix->line_length = 1024 / 8;
if(par->bpp == 2)
fix->line_length *= 2;
fix->smem_start = 0x21000000;
@@ -118,9 +118,12 @@
var->green.offset = 0;
var->blue.offset = 0;
+ var->red.length = 0;
+ var->green.length = 4;
+ var->blue.length = 0;
+
var->bits_per_pixel = par->bpp;
var->grayscale = 1;
- /* uh. do we need to set red.length, green.length, blue.length? */
var->xoffset = 0;
var->yoffset = 0;
@@ -162,8 +165,10 @@
if(regno < 0 || regno > 3)
return 1;
+ if (fbinfo->var.grayscale)
+ red = green = blue = (19595 * red + 38470 * green + 7471 * blue) >> 16;
+
info->regs->bt455_cmap_addr = regno;
- info->regs->bt455_cmap_data = 0;
info->regs->bt455_cmap_data = green >> 12;
return 0;
@@ -289,7 +294,11 @@
info->updatevar = fbgen_update_var;
info->blank = fbgen_blank;
+#if 0
fbgen_get_var(&disp.var, -1, &the_fb_info.gen.info);
+#else
+ fbgen_get_var(&the_fb_info.gen.info.var, -1, &the_fb_info.gen.info);
+#endif
disp.var.activate = FB_ACTIVATE_NOW;
fbgen_do_set_var(&disp.var, 1, &the_fb_info.gen);
fbgen_set_disp(-1, &the_fb_info.gen);
@@ -323,8 +332,8 @@
vmonofb_reset();
- init_fb_info(&the_fb_info.gen.info);
the_fb_info.gen.fbhw = &vmono_hwswitch;
+ init_fb_info(&the_fb_info.gen.info);
if(register_framebuffer(&the_fb_info.gen.info) < 0) {
printk("vmonofb: unable to register framebuffer!\n");
|