]>
Commit | Line | Data |
---|---|---|
3c4e084d JP |
1 | /* smi.h |
2 | * Prototypes for generic SMI handling routines | |
3 | * NetWatch system management mode administration console | |
4 | * | |
5 | * Copyright (c) 2008 Jacob Potter and Joshua Wise. All rights reserved. | |
6 | * This program is free software; you can redistribute and/or modify it under | |
7 | * the terms found in the file LICENSE in the root of this source tree. | |
8 | * | |
9 | */ | |
10 | ||
85bc8ca6 JW |
11 | #ifndef SMI_H |
12 | #define SMI_H | |
13 | ||
14 | extern void smi_disable(); /* akin to cli / sti */ | |
15 | extern void smi_enable(); | |
16 | ||
17 | extern void smi_poll(); | |
18 | extern unsigned long smi_status(); /* Architecturally defined; for debugging only. */ | |
19 | ||
07d1dd26 JW |
20 | typedef enum { |
21 | SMI_EVENT_FAST_TIMER = 0, | |
8a677ebb | 22 | SMI_EVENT_DEVTRAP_KBC, |
73fb9b4c | 23 | SMI_EVENT_GBL_RLS, |
47d8a487 | 24 | SMI_EVENT_PWRBTN, |
07d1dd26 JW |
25 | SMI_EVENT_MAX |
26 | } smi_event_t; | |
27 | ||
28 | ||
29 | typedef void (*smi_handler_t)(smi_event_t); | |
30 | ||
31 | #define SMI_HANDLER_NONE ((smi_handler_t)0) | |
32 | #define SMI_HANDLER_IGNORE ((smi_handler_t)-1) | |
33 | ||
34 | extern int smi_register_handler(smi_event_t ev, smi_handler_t hnd); | |
35 | extern int smi_enable_event(smi_event_t ev); | |
36 | extern int smi_disable_event(smi_event_t ev); | |
37 | ||
85bc8ca6 | 38 | #endif |