#include <asm/proto.h>
#include <asm/ia32_unistd.h>
#include <asm/mce.h>
+ ++#include <asm/syscall.h>
+++ #include <asm/syscalls.h>
#include "sigframe.h"
#define _BLOCKABLE (~(sigmask(SIGKILL) | sigmask(SIGSTOP)))
return do_sigaltstack(uss, uoss, regs->sp);
}
-- -/*
-- - * Signal frame handlers.
-- - */
-- -
-- -static inline int save_i387(struct _fpstate __user *buf)
-- -{
-- - struct task_struct *tsk = current;
-- - int err = 0;
-- -
-- - BUILD_BUG_ON(sizeof(struct user_i387_struct) !=
-- - sizeof(tsk->thread.xstate->fxsave));
-- -
-- - if ((unsigned long)buf % 16)
-- - printk("save_i387: bad fpstate %p\n", buf);
-- -
-- - if (!used_math())
-- - return 0;
-- - clear_used_math(); /* trigger finit */
-- - if (task_thread_info(tsk)->status & TS_USEDFPU) {
-- - err = save_i387_checking((struct i387_fxsave_struct __user *)
-- - buf);
-- - if (err)
-- - return err;
-- - task_thread_info(tsk)->status &= ~TS_USEDFPU;
-- - stts();
-- - } else {
-- - if (__copy_to_user(buf, &tsk->thread.xstate->fxsave,
-- - sizeof(struct i387_fxsave_struct)))
-- - return -1;
-- - }
-- - return 1;
-- -}
-- -
-- -/*
-- - * This restores directly out of user space. Exceptions are handled.
-- - */
-- -static inline int restore_i387(struct _fpstate __user *buf)
-- -{
-- - struct task_struct *tsk = current;
-- - int err;
-- -
-- - if (!used_math()) {
-- - err = init_fpu(tsk);
-- - if (err)
-- - return err;
-- - }
-- -
-- - if (!(task_thread_info(current)->status & TS_USEDFPU)) {
-- - clts();
-- - task_thread_info(current)->status |= TS_USEDFPU;
-- }
-- err = restore_fpu_checking((__force struct i387_fxsave_struct *)buf);
-- if (unlikely(err)) {
-- /*
-- * Encountered an error while doing the restore from the
-- * user buffer, clear the fpu state.
-- */
-- clear_fpu(tsk);
-- clear_used_math();
-- - }
-- return err;
- return restore_fpu_checking((__force struct i387_fxsave_struct *)buf);
-- -}
-- -
/*
* Do a signal return; undo the signal stack.
*/
#endif
extern int is_vsmp_box(void);
+++ extern void xapic_wait_icr_idle(void);
+++ extern u32 safe_xapic_wait_icr_idle(void);
+++ extern u64 xapic_icr_read(void);
+++ extern void xapic_icr_write(u32, u32);
+++ extern int setup_profiling_timer(unsigned int);
-- -static inline void native_apic_write(unsigned long reg, u32 v)
++ +static inline void native_apic_mem_write(u32 reg, u32 v)
{
volatile u32 *addr = (volatile u32 *)(APIC_BASE + reg);