forked from Minki/linux
bdde6b3c8b
This patch adds CONFIG_HIBERNATION support for sparc64 architecture. The suspend function is the same as on another platforms. The restore function uses Bypass feature of MMU which allows to make the process more comfortable and plesant. Signed-off-by: Kirill Tkhai <tkhai@yandex.ru> CC: David Miller <davem@davemloft.net> CC: Sam Ravnborg <sam@ravnborg.org> Signed-off-by: David S. Miller <davem@davemloft.net>
57 lines
1.3 KiB
C
57 lines
1.3 KiB
C
/*
|
|
* This program is used to generate definitions needed by
|
|
* assembly language modules.
|
|
*
|
|
* We use the technique used in the OSF Mach kernel code:
|
|
* generate asm statements containing #defines,
|
|
* compile this file to assembler, and then extract the
|
|
* #defines from the assembly-language output.
|
|
*
|
|
* On sparc, thread_info data is static and TI_XXX offsets are computed by hand.
|
|
*/
|
|
|
|
#include <linux/sched.h>
|
|
// #include <linux/mm.h>
|
|
#include <linux/kbuild.h>
|
|
|
|
#include <asm/hibernate.h>
|
|
|
|
#ifdef CONFIG_SPARC32
|
|
int sparc32_foo(void)
|
|
{
|
|
DEFINE(AOFF_thread_fork_kpsr,
|
|
offsetof(struct thread_struct, fork_kpsr));
|
|
return 0;
|
|
}
|
|
#else
|
|
int sparc64_foo(void)
|
|
{
|
|
#ifdef CONFIG_HIBERNATION
|
|
BLANK();
|
|
OFFSET(SC_REG_FP, saved_context, fp);
|
|
OFFSET(SC_REG_CWP, saved_context, cwp);
|
|
OFFSET(SC_REG_WSTATE, saved_context, wstate);
|
|
|
|
OFFSET(SC_REG_TICK, saved_context, tick);
|
|
OFFSET(SC_REG_PSTATE, saved_context, pstate);
|
|
|
|
OFFSET(SC_REG_G4, saved_context, g4);
|
|
OFFSET(SC_REG_G5, saved_context, g5);
|
|
OFFSET(SC_REG_G6, saved_context, g6);
|
|
#endif
|
|
return 0;
|
|
}
|
|
#endif
|
|
|
|
int foo(void)
|
|
{
|
|
BLANK();
|
|
DEFINE(AOFF_task_thread, offsetof(struct task_struct, thread));
|
|
BLANK();
|
|
DEFINE(AOFF_mm_context, offsetof(struct mm_struct, context));
|
|
|
|
/* DEFINE(NUM_USER_SEGMENTS, TASK_SIZE>>28); */
|
|
return 0;
|
|
}
|
|
|