Main Page | Alphabetical List | Data Structures | Directories | File List | Data Fields | Globals

sparc/kernel/process.c File Reference

#include <stdarg.h>
#include <linux/errno.h>
#include <linux/sched.h>
#include <linux/kernel.h>
#include <linux/mm.h>
#include <linux/stddef.h>
#include <linux/unistd.h>
#include <linux/ptrace.h>
#include <linux/malloc.h>
#include <linux/user.h>
#include <linux/a.out.h>
#include <linux/config.h>
#include <linux/smp.h>
#include <linux/smp_lock.h>
#include <linux/reboot.h>
#include <linux/delay.h>
#include <asm/auxio.h>
#include <asm/oplib.h>
#include <asm/uaccess.h>
#include <asm/system.h>
#include <asm/page.h>
#include <asm/pgtable.h>
#include <asm/delay.h>
#include <asm/processor.h>
#include <asm/psr.h>
#include <asm/elf.h>

Include dependency graph for sparc/kernel/process.c:

Go to the source code of this file.

Defines

#define __KERNEL_SYSCALLS__
#define SUN4C_FAULT_HIGH   100
#define __SAVE   __asm__ __volatile__("save %sp, -0x40, %sp\n\t")
#define __RESTORE   __asm__ __volatile__("restore %g0, %g0, %g0\n\t")
#define __GET_FP(fp)   __asm__ __volatile__("mov %%i6, %0" : "=r" (fp))

Functions

void fpsave (unsigned long *, unsigned long *, void *, unsigned long *)
asmlinkage int sys_idle (void)
void machine_halt (void)
void machine_restart (char *cmd)
void machine_power_off (void)
void show_regwindow (struct reg_window *rw)
void __show_backtrace (unsigned long fp)
void show_backtrace (void)
void show_stackframe (struct sparc_stackf *sf)
void show_regs (struct pt_regs *regs)
void exit_thread (void)
void flush_thread (void)
static __inline__ void copy_regs (struct pt_regs *dst, struct pt_regs *src)
static __inline__ void copy_regwin (struct reg_window *dst, struct reg_window *src)
static __inline__ struct sparc_stackfclone_stackframe (struct sparc_stackf *dst, struct sparc_stackf *src)
void ret_from_syscall (void)
int copy_thread (int nr, unsigned long clone_flags, unsigned long sp, struct task_struct *p, struct pt_regs *regs)
void dump_thread (struct pt_regs *regs, struct user *dump)
int dump_fpu (struct pt_regs *regs, elf_fpregset_t *fpregs)
asmlinkage int sparc_execve (struct pt_regs *regs)
pid_t kernel_thread (int(*fn)(void *), void *arg, unsigned long flags)

Variables

task_struct * last_task_used_math = NULL
task_struct * current_set [NR_CPUS] = {&init_task, }
char reboot_command []


Define Documentation

#define __GET_FP fp   )     __asm__ __volatile__("mov %%i6, %0" : "=r" (fp))
 

Definition at line 226 of file sparc/kernel/process.c.

Referenced by show_backtrace().

#define __KERNEL_SYSCALLS__
 

Definition at line 12 of file sparc/kernel/process.c.

#define __RESTORE   __asm__ __volatile__("restore %g0, %g0, %g0\n\t")
 

Definition at line 225 of file sparc/kernel/process.c.

Referenced by die_if_kernel(), and show_backtrace().

#define __SAVE   __asm__ __volatile__("save %sp, -0x40, %sp\n\t")
 

Definition at line 224 of file sparc/kernel/process.c.

Referenced by die_if_kernel(), and show_backtrace().

#define SUN4C_FAULT_HIGH   100
 

Definition at line 49 of file sparc/kernel/process.c.

Referenced by sys_idle().


Function Documentation

void __show_backtrace unsigned long  fp  ) 
 

Definition at line 202 of file sparc/kernel/process.c.

References cpu, reg_window::ins, long, PAGE_OFFSET, printk, rw, smp_processor_id, spin_lock_irqsave, and spin_unlock_irqrestore.

Referenced by show_backtrace().

static __inline__ struct sparc_stackf* clone_stackframe struct sparc_stackf dst,
struct sparc_stackf src
[static]
 

Definition at line 446 of file sparc/kernel/process.c.

References copy_to_user, current, down(), sparc_stackf::fp, long, put_user, size, sp, and up.

Referenced by copy_thread().

Here is the call graph for this function:

static __inline__ void copy_regs struct pt_regs dst,
struct pt_regs src
[static]
 

Definition at line 397 of file sparc/kernel/process.c.

References __asm__().

Referenced by copy_thread().

Here is the call graph for this function:

static __inline__ void copy_regwin struct reg_window dst,
struct reg_window src
[static]
 

Definition at line 423 of file sparc/kernel/process.c.

References __asm__().

Referenced by copy_thread().

Here is the call graph for this function:

int copy_thread int  nr,
unsigned long  clone_flags,
unsigned long  sp,
struct task_struct *  p,
struct pt_regs regs
 

Definition at line 487 of file sparc/kernel/process.c.

References clone_stackframe(), copy_regs(), copy_regwin(), current, EFAULT, fpsave(), KERNEL_DS, last_task_used_math, long, memcpy, printk, pt_regs::psr, PSR_EF, PSR_PIL, PSR_PS, REGWIN_SZ, ret_from_syscall(), show_stackframe(), SPARC_FLAG_KTHREAD, TRACEREG_SZ, pt_regs::u_regs, UREG_FP, UREG_G6, UREG_I0, UREG_I1, and USER_DS.

Here is the call graph for this function:

int dump_fpu struct pt_regs regs,
elf_fpregset_t fpregs
 

Definition at line 622 of file sparc/kernel/process.c.

References current, fpsave(), last_task_used_math, memcpy, memset, elf_fpregset_t::pr_en, elf_fpregset_t::pr_fr, elf_fpregset_t::pr_fsr, elf_fpregset_t::pr_q, elf_fpregset_t::pr_q_entrysize, elf_fpregset_t::pr_qcnt, pt_regs::psr, and PSR_EF.

Here is the call graph for this function:

void dump_thread struct pt_regs regs,
struct user dump
 

Definition at line 590 of file sparc/kernel/process.c.

References current, sunos_fp::extra, sunos_fp::flags, sunos_fp::fpq, sunos_fp::fpq_count, sunos_fpu::fpstatus, user::fpu, sunos_fp::fregs, sunos_fp::fsr, user::len, user::magic, memcpy, pt_regs::npc, PAGE_SIZE, pt_regs::pc, pt_regs::psr, user::regs, user::sigcode, SUNOS_CORE_MAGIC, TASK_SIZE, user::u_dsize, pt_regs::u_regs, user::u_ssize, user::u_tsize, user::uexec, UREG_FP, and pt_regs::y.

void exit_thread void   ) 
 

Definition at line 335 of file sparc/kernel/process.c.

References current, fpsave(), last_task_used_math, NULL, and PSR_EF.

Here is the call graph for this function:

void flush_thread void   ) 
 

Definition at line 354 of file sparc/kernel/process.c.

References current, fpsave(), last_task_used_math, long, NULL, PSR_EF, SPARC_FLAG_KTHREAD, switch_to_context, TRACEREG_SZ, and USER_DS.

Here is the call graph for this function:

void fpsave unsigned long ,
unsigned long ,
void *  ,
unsigned long
 

Referenced by copy_thread(), do_fpd_trap(), do_fpe_trap(), dump_fpu(), exit_thread(), flush_thread(), and save_fpu_state().

pid_t kernel_thread int(*)(void *)  fn,
void *  arg,
unsigned long  flags
 

Definition at line 698 of file sparc/kernel/process.c.

References __asm__(), __NR_clone, __NR_exit, and CLONE_VM.

Here is the call graph for this function:

void machine_halt void   ) 
 

Definition at line 142 of file sparc/kernel/process.c.

References cli, mdelay, panic(), prom_halt(), prom_palette, serial_console, and sti.

Here is the call graph for this function:

void machine_power_off void   ) 
 

Definition at line 177 of file sparc/kernel/process.c.

References AUXIO_POWER_OFF, auxio_power_register, and machine_halt().

Here is the call graph for this function:

void machine_restart char *  cmd  ) 
 

Definition at line 155 of file sparc/kernel/process.c.

References cli, mdelay, p, panic(), prom_feval(), prom_palette, prom_reboot(), reboot_command, serial_console, sti, and strchr.

Here is the call graph for this function:

void ret_from_syscall void   ) 
 

Referenced by copy_thread().

void show_backtrace void   ) 
 

Definition at line 228 of file sparc/kernel/process.c.

References __GET_FP, __RESTORE, __SAVE, __show_backtrace(), and fp.

Here is the call graph for this function:

void show_regs struct pt_regs regs  ) 
 

Definition at line 277 of file sparc/kernel/process.c.

References mpp_cid(), printk, and show_regwindow().

Here is the call graph for this function:

void show_regwindow struct reg_window rw  ) 
 

Definition at line 186 of file sparc/kernel/process.c.

References reg_window::ins, reg_window::locals, and printk.

Referenced by __show_regs(), and show_regs().

void show_stackframe struct sparc_stackf sf  ) 
 

Definition at line 249 of file sparc/kernel/process.c.

References sparc_stackf::callers_pc, sparc_stackf::fp, i, sparc_stackf::ins, sparc_stackf::locals, printk, size, STACKFRAME_SZ, sparc_stackf::structptr, sparc_stackf::xargs, and sparc_stackf::xxargs.

Referenced by copy_thread().

asmlinkage int sparc_execve struct pt_regs regs  ) 
 

Definition at line 668 of file sparc/kernel/process.c.

References do_execve(), error, filename, getname(), lock_kernel, out, pt_regs::u_regs, unlock_kernel, UREG_G1, UREG_I0, UREG_I1, and UREG_I2.

Here is the call graph for this function:

asmlinkage int sys_idle void   ) 
 

Definition at line 54 of file sparc/kernel/process.c.

References ARCH_SUN4C_SUN4, check_pgt_cache(), count, current, EPERM, faults, HZ, init_idle(), jiffies, last_jiffies, now, out, printk, restore_flags, ret, save_and_cli, schedule(), SUN4C_FAULT_HIGH, sun4c_grow_kernel_ring(), and sun4c_kernel_faults.

Here is the call graph for this function:


Variable Documentation

struct task_struct* current_set[NR_CPUS] = {&init_task, }
 

Definition at line 45 of file sparc/kernel/process.c.

struct task_struct* last_task_used_math = NULL
 

Definition at line 44 of file sparc/kernel/process.c.

char reboot_command[]
 

Definition at line 283 of file sparc/kernel/setup.c.

Referenced by machine_restart().