Update of /cvsroot/linuxsh/linux/include/asm-sh
In directory sc8-pr-cvs6.sourceforge.net:/tmp/cvs-serv6106/include/asm-sh
Modified Files:
irq.h thread_info.h
Log Message:
Add support for 4K stacks.
Index: irq.h
===================================================================
RCS file: /cvsroot/linuxsh/linux/include/asm-sh/irq.h,v
retrieving revision 1.35
retrieving revision 1.36
diff -u -d -r1.35 -r1.36
--- irq.h 7 Aug 2006 11:17:45 -0000 1.35
+++ irq.h 9 Aug 2006 02:33:40 -0000 1.36
@@ -720,6 +720,15 @@
#define irq_canonicalize(irq) (irq)
#define irq_demux(irq) __irq_demux(sh_mv.mv_irq_demux(irq))
+#ifdef CONFIG_4KSTACKS
+extern void irq_ctx_init(int cpu);
+extern void irq_ctx_exit(int cpu);
+# define __ARCH_HAS_DO_SOFTIRQ
+#else
+# define irq_ctx_init(cpu) do { } while (0)
+# define irq_ctx_exit(cpu) do { } while (0)
+#endif
+
#if defined(CONFIG_CPU_SUBTYPE_SH73180)
#include <asm/irq-sh73180.h>
#endif
Index: thread_info.h
===================================================================
RCS file: /cvsroot/linuxsh/linux/include/asm-sh/thread_info.h,v
retrieving revision 1.20
retrieving revision 1.21
diff -u -d -r1.20 -r1.21
--- thread_info.h 8 Aug 2006 03:07:13 -0000 1.20
+++ thread_info.h 9 Aug 2006 02:33:40 -0000 1.21
@@ -9,8 +9,8 @@
* Copyright (C) 2002 David Howells (dho...@re...)
* - Incorporating suggestions made by Linus Torvalds and Dave Miller
*/
-
#ifdef __KERNEL__
+#include <asm/page.h>
#ifndef __ASSEMBLY__
#include <asm/processor.h>
@@ -23,13 +23,20 @@
int preempt_count; /* 0 => preemptable, <0 => BUG */
mm_segment_t addr_limit; /* thread address space */
struct restart_block restart_block;
+ unsigned long previous_sp; /* sp of previous stack in case
+ of nested IRQ stacks */
__u8 supervisor_stack[0];
};
#endif
#define PREEMPT_ACTIVE 0x10000000
+
+#ifdef CONFIG_4KSTACKS
+#define THREAD_SIZE (PAGE_SIZE)
+#else
#define THREAD_SIZE (PAGE_SIZE * 2)
+#endif
#define STACK_WARN (THREAD_SIZE / 8)
/*
@@ -52,6 +59,9 @@
#define init_thread_info (init_thread_union.thread_info)
#define init_stack (init_thread_union.stack)
+/* how to get the current stack pointer from C */
+register unsigned long current_stack_pointer asm("r15") __attribute_used__;
+
/* how to get the thread information struct from C */
static inline struct thread_info *current_thread_info(void)
{
|