#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);