sigcontext.c

来自「优龙2410linux2.6.8内核源代码」· C语言 代码 · 共 61 行

C
61
字号
/*  * Copyright (C) 2002 Jeff Dike (jdike@karaya.com) * Licensed under the GPL */#include <stdlib.h>#include <asm/sigcontext.h>#include "kern_util.h"#include "sysdep/frame.h"int copy_sc_from_user_tt(void *to_ptr, void *from_ptr, void *data){	struct arch_frame_data *arch = data;	struct sigcontext *to = to_ptr, *from = from_ptr;	struct _fpstate *to_fp, *from_fp;	unsigned long sigs;	int err;	to_fp = to->fpstate;	from_fp = from->fpstate;	sigs = to->oldmask;	err = copy_from_user_proc(to, from, sizeof(*to));	to->oldmask = sigs;	if(to_fp != NULL){		err |= copy_from_user_proc(&to->fpstate, &to_fp,					   sizeof(to->fpstate));		err |= copy_from_user_proc(to_fp, from_fp, arch->fpstate_size);	}	return(err);}int copy_sc_to_user_tt(void *to_ptr, void *fp, void *from_ptr, void *data){	struct arch_frame_data *arch = data;	struct sigcontext *to = to_ptr, *from = from_ptr;	struct _fpstate *to_fp, *from_fp;	int err;	to_fp = (struct _fpstate *) 		(fp ? (unsigned long) fp : ((unsigned long) to + sizeof(*to)));	from_fp = from->fpstate;	err = copy_to_user_proc(to, from, sizeof(*to));	if(from_fp != NULL){		err |= copy_to_user_proc(&to->fpstate, &to_fp,					 sizeof(to->fpstate));		err |= copy_to_user_proc(to_fp, from_fp, arch->fpstate_size);	}	return(err);}/* * Overrides for Emacs so that we follow Linus's tabbing style. * Emacs will notice this stuff at the end of the file and automatically * adjust the settings for this buffer only.  This must remain at the end * of the file. * --------------------------------------------------------------------------- * Local variables: * c-file-style: "linux" * End: */

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?