1 /* ----------------------------------------------------------------------- *
3 * Copyright 2008 H. Peter Anvin - All Rights Reserved
4 * Copyright 2009-2010 Intel Corporation; author: H. Peter Anvin
6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by
8 * the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
9 * Boston MA 02110-1301, USA; either version 2 of the License, or
10 * (at your option) any later version; incorporated herein by reference.
12 * ----------------------------------------------------------------------- */
17 * This function provided protected-mode access to the idle handling.
18 * It needs to be carefully coordinated with idle.inc, which provides
19 * idle services to real-mode code.
25 #define TICKS_TO_IDLE 4 /* Also in idle.inc */
27 static jiffies_t _IdleTimer
;
28 __export
uint16_t NoHalt
= 0;
30 int (*idle_hook_func
)(void);
34 _IdleTimer
= jiffies();
35 sti(); /* Guard against BIOS/PXE brokenness... */
38 __export
void __idle(void)
40 if (jiffies() - _IdleTimer
< TICKS_TO_IDLE
)
43 if (idle_hook_func
&& idle_hook_func())
44 return; /* Nonzero return = do not idle */