9 #include <linux/types.h>
10 #include <linux/kernel.h>
23 #define CPEI_INTERVAL (5*HZ)
32 static u8 **sn_oemdata;
33 static u64 *sn_oemdata_size, sn_oemdata_bufsize;
47 static int print_hook(
const char *
fmt, ...)
56 if (*sn_oemdata_size + len <= sn_oemdata_bufsize)
57 memcpy(*sn_oemdata + *sn_oemdata_size, buf, len);
58 *sn_oemdata_size += len;
72 ia64_sn_plat_cpei_handler();
75 static void sn_cpei_timer_handler(
unsigned long dummy)
90 sn_platform_plat_specific_err_print(
const u8 * sect_header,
u8 ** oemdata,
95 sn_oemdata_size = oemdata_size;
96 sn_oemdata_bufsize = 0;
98 while (*sn_oemdata_size > sn_oemdata_bufsize) {
107 *sn_oemdata = newbuf;
108 sn_oemdata_bufsize = *sn_oemdata_size;
109 *sn_oemdata_size = 0;
110 ia64_sn_plat_specific_err_print(print_hook, (
char *)sect_header);
128 valid = psei->
valid.oem_data;
131 valid = mdei->
valid.oem_data;
134 return sn_platform_plat_specific_err_print(sect_header, oemdata, oemdata_size);
139 static int __init sn_salinfo_init(
void)