X-Git-Url: http://git.joshuawise.com/netwatch.git/blobdiff_plain/c54a4356fd904634dae9b942fb3a587cdcb860b9..47d8a487f11a9780a9d9c4955c55e5b42edbbdfc:/include/smi.h diff --git a/include/smi.h b/include/smi.h index c669fc2..5cc7a44 100644 --- a/include/smi.h +++ b/include/smi.h @@ -1,3 +1,13 @@ +/* smi.h + * Prototypes for generic SMI handling routines + * NetWatch system management mode administration console + * + * Copyright (c) 2008 Jacob Potter and Joshua Wise. All rights reserved. + * This program is free software; you can redistribute and/or modify it under + * the terms found in the file LICENSE in the root of this source tree. + * + */ + #ifndef SMI_H #define SMI_H @@ -7,4 +17,22 @@ extern void smi_enable(); extern void smi_poll(); extern unsigned long smi_status(); /* Architecturally defined; for debugging only. */ +typedef enum { + SMI_EVENT_FAST_TIMER = 0, + SMI_EVENT_DEVTRAP_KBC, + SMI_EVENT_GBL_RLS, + SMI_EVENT_PWRBTN, + SMI_EVENT_MAX +} smi_event_t; + + +typedef void (*smi_handler_t)(smi_event_t); + +#define SMI_HANDLER_NONE ((smi_handler_t)0) +#define SMI_HANDLER_IGNORE ((smi_handler_t)-1) + +extern int smi_register_handler(smi_event_t ev, smi_handler_t hnd); +extern int smi_enable_event(smi_event_t ev); +extern int smi_disable_event(smi_event_t ev); + #endif