Linux Kernel
3.7.1
|
#include <linux/bcd.h>
#include <linux/spinlock.h>
#include <linux/efi.h>
#include <asm/pal.h>
#include <asm/fpu.h>
Go to the source code of this file.
Data Structures | |
struct | ia64_sal_retval |
struct | ia64_sal_systab |
struct | ia64_sal_desc_entry_point |
struct | ia64_sal_desc_memory |
struct | ia64_sal_desc_platform_feature |
struct | ia64_sal_desc_tr |
struct | ia64_sal_desc_ptc |
struct | ia64_sal_ptc_domain_info |
struct | ia64_sal_ptc_domain_proc_entry |
struct | ia64_sal_desc_ap_wakeup |
struct | sal_log_revision |
struct | sal_log_timestamp |
struct | sal_log_record_header |
struct | sal_log_sec_header |
struct | sal_log_mod_error_info |
struct | sal_processor_static_info |
struct | sal_cpuid_info |
struct | sal_log_processor_info |
struct | sal_log_mem_dev_err_info |
struct | sal_log_sel_dev_err_info |
struct | sal_log_pci_bus_err_info |
struct | sal_log_smbios_dev_err_info |
struct | sal_log_pci_comp_err_info |
struct | sal_log_plat_specific_err_info |
struct | sal_log_host_ctlr_err_info |
struct | sal_log_plat_bus_err_info |
union | sal_log_platform_err_info |
struct | err_rec |
struct | sal_ret_values |
struct | palo_table |
Macros | |
#define | IA64_SAL_PLATFORM_FEATURE_BUS_LOCK_BIT 0 |
#define | IA64_SAL_PLATFORM_FEATURE_IRQ_REDIR_HINT_BIT 1 |
#define | IA64_SAL_PLATFORM_FEATURE_IPI_REDIR_HINT_BIT 2 |
#define | IA64_SAL_PLATFORM_FEATURE_ITC_DRIFT_BIT 3 |
#define | IA64_SAL_PLATFORM_FEATURE_BUS_LOCK (1<<IA64_SAL_PLATFORM_FEATURE_BUS_LOCK_BIT) |
#define | IA64_SAL_PLATFORM_FEATURE_IRQ_REDIR_HINT (1<<IA64_SAL_PLATFORM_FEATURE_IRQ_REDIR_HINT_BIT) |
#define | IA64_SAL_PLATFORM_FEATURE_IPI_REDIR_HINT (1<<IA64_SAL_PLATFORM_FEATURE_IPI_REDIR_HINT_BIT) |
#define | IA64_SAL_PLATFORM_FEATURE_ITC_DRIFT (1<<IA64_SAL_PLATFORM_FEATURE_ITC_DRIFT_BIT) |
#define | __IA64_FW_CALL(entry, result, a0, a1, a2, a3, a4, a5, a6, a7) result = (*entry)(a0,a1,a2,a3,a4,a5,a6,a7) |
#define | IA64_FW_CALL(entry, result, args...) |
#define | SAL_CALL(result, args...) IA64_FW_CALL(ia64_sal, result, args); |
#define | SAL_CALL_NOLOCK(result, args...) |
#define | SAL_CALL_REENTRANT(result, args...) |
#define | SAL_SET_VECTORS 0x01000000 |
#define | SAL_GET_STATE_INFO 0x01000001 |
#define | SAL_GET_STATE_INFO_SIZE 0x01000002 |
#define | SAL_CLEAR_STATE_INFO 0x01000003 |
#define | SAL_MC_RENDEZ 0x01000004 |
#define | SAL_MC_SET_PARAMS 0x01000005 |
#define | SAL_REGISTER_PHYSICAL_ADDR 0x01000006 |
#define | SAL_CACHE_FLUSH 0x01000008 |
#define | SAL_CACHE_INIT 0x01000009 |
#define | SAL_PCI_CONFIG_READ 0x01000010 |
#define | SAL_PCI_CONFIG_WRITE 0x01000011 |
#define | SAL_FREQ_BASE 0x01000012 |
#define | SAL_PHYSICAL_ID_INFO 0x01000013 |
#define | SAL_UPDATE_PAL 0x01000020 |
#define | SAL_DESC_SIZE(type) "\060\040\020\040\020\020"[(unsigned) type] |
#define | IA64_SAL_AP_EXTERNAL_INT 0 |
#define | SAL_VERSION_CODE(major, minor) ((bin2bcd(major) << 8) | bin2bcd(minor)) |
#define | SAL_MC_PARAM_RZ_ALWAYS 0x1 |
#define | SAL_MC_PARAM_BINIT_ESCALATE 0x10 |
#define | SAL_PROC_DEV_ERR_SECT_GUID EFI_GUID(0xe429faf1, 0x3cb7, 0x11d4, 0xbc, 0xa7, 0x0, 0x80, 0xc7, 0x3c, 0x88, 0x81) |
#define | SAL_PLAT_MEM_DEV_ERR_SECT_GUID EFI_GUID(0xe429faf2, 0x3cb7, 0x11d4, 0xbc, 0xa7, 0x0, 0x80, 0xc7, 0x3c, 0x88, 0x81) |
#define | SAL_PLAT_SEL_DEV_ERR_SECT_GUID EFI_GUID(0xe429faf3, 0x3cb7, 0x11d4, 0xbc, 0xa7, 0x0, 0x80, 0xc7, 0x3c, 0x88, 0x81) |
#define | SAL_PLAT_PCI_BUS_ERR_SECT_GUID EFI_GUID(0xe429faf4, 0x3cb7, 0x11d4, 0xbc, 0xa7, 0x0, 0x80, 0xc7, 0x3c, 0x88, 0x81) |
#define | SAL_PLAT_SMBIOS_DEV_ERR_SECT_GUID EFI_GUID(0xe429faf5, 0x3cb7, 0x11d4, 0xbc, 0xa7, 0x0, 0x80, 0xc7, 0x3c, 0x88, 0x81) |
#define | SAL_PLAT_PCI_COMP_ERR_SECT_GUID EFI_GUID(0xe429faf6, 0x3cb7, 0x11d4, 0xbc, 0xa7, 0x0, 0x80, 0xc7, 0x3c, 0x88, 0x81) |
#define | SAL_PLAT_SPECIFIC_ERR_SECT_GUID EFI_GUID(0xe429faf7, 0x3cb7, 0x11d4, 0xbc, 0xa7, 0x0, 0x80, 0xc7, 0x3c, 0x88, 0x81) |
#define | SAL_PLAT_HOST_CTLR_ERR_SECT_GUID EFI_GUID(0xe429faf8, 0x3cb7, 0x11d4, 0xbc, 0xa7, 0x0, 0x80, 0xc7, 0x3c, 0x88, 0x81) |
#define | SAL_PLAT_BUS_ERR_SECT_GUID EFI_GUID(0xe429faf9, 0x3cb7, 0x11d4, 0xbc, 0xa7, 0x0, 0x80, 0xc7, 0x3c, 0x88, 0x81) |
#define | PROCESSOR_ABSTRACTION_LAYER_OVERWRITE_GUID |
#define | MAX_CACHE_ERRORS 6 |
#define | MAX_TLB_ERRORS 6 |
#define | MAX_BUS_ERRORS 1 |
#define | sal_log_severity_recoverable 0 |
#define | sal_log_severity_fatal 1 |
#define | sal_log_severity_corrected 2 |
#define | ERI_NOT_VALID 0x0 /* Error Recovery Field is not valid */ |
#define | ERI_NOT_ACCESSIBLE 0x30 /* Resource not accessible */ |
#define | ERI_CONTAINMENT_WARN 0x22 /* Corrupt data propagated */ |
#define | ERI_UNCORRECTED_ERROR 0x20 /* Uncorrected error */ |
#define | ERI_COMPONENT_RESET 0x24 /* Component must be reset */ |
#define | ERI_CORR_ERROR_LOG 0x21 /* Corrected error, needs logging */ |
#define | ERI_CORR_ERROR_THRESH 0x29 /* Corrected error threshold exceeded */ |
#define | SAL_LPI_PSI_INFO(l) |
#define | IA64_SAL_OEMFUNC_MIN 0x02000000 |
#define | IA64_SAL_OEMFUNC_MAX 0x03ffffff |
#define | PALO_MAX_TLB_PURGES 0xFFFF |
#define | PALO_SIG "PALO" |
#define | NPTCG_FROM_PAL 0 |
#define | NPTCG_FROM_PALO 1 |
#define | NPTCG_FROM_KERNEL_PARAMETER 2 |
Enumerations | |
enum | { SAL_FREQ_BASE_PLATFORM = 0, SAL_FREQ_BASE_INTERVAL_TIMER = 1, SAL_FREQ_BASE_REALTIME_CLOCK = 2 } |
enum | sal_systab_entry_type { SAL_DESC_ENTRY_POINT = 0, SAL_DESC_MEMORY = 1, SAL_DESC_PLATFORM_FEATURE = 2, SAL_DESC_TR = 3, SAL_DESC_PTC = 4, SAL_DESC_AP_WAKEUP = 5 } |
enum | { SAL_INFO_TYPE_MCA = 0, SAL_INFO_TYPE_INIT = 1, SAL_INFO_TYPE_CMC = 2, SAL_INFO_TYPE_CPE = 3 } |
enum | { SAL_MC_PARAM_RENDEZ_INT = 1, SAL_MC_PARAM_RENDEZ_WAKEUP = 2, SAL_MC_PARAM_CPE_INT = 3 } |
enum | { SAL_MC_PARAM_MECHANISM_INT = 1, SAL_MC_PARAM_MECHANISM_MEM = 2 } |
enum | { SAL_VECTOR_OS_MCA = 0, SAL_VECTOR_OS_INIT = 1, SAL_VECTOR_OS_BOOT_RENDEZ = 2 } |
Functions | |
const char * | ia64_sal_strerror (long status) |
void | ia64_sal_init (struct ia64_sal_systab *sal_systab) |
s64 | ia64_sal_cache_flush (u64 cache_type) |
void __init | check_sal_cache_flush (void) |
int | ia64_sal_oemcall (struct ia64_sal_retval *, u64, u64, u64, u64, u64, u64, u64, u64) |
int | ia64_sal_oemcall_nolock (struct ia64_sal_retval *, u64, u64, u64, u64, u64, u64, u64, u64) |
int | ia64_sal_oemcall_reentrant (struct ia64_sal_retval *, u64, u64, u64, u64, u64, u64, u64, u64) |
long | ia64_sal_freq_base (unsigned long which, unsigned long *ticks_per_second, unsigned long *drift_info) |
void | ia64_sal_handler_init (void *entry_point, void *gpval) |
Variables | |
spinlock_t | sal_lock |
struct ia64_sal_retval | __attribute__ |
ia64_sal_handler | ia64_sal |
struct ia64_sal_desc_ptc * | ia64_ptc_domain_info |
unsigned short | sal_revision |
unsigned short | sal_version |
unsigned long | sal_platform_features |
int(* | salinfo_platform_oemdata )(const u8 *, u8 **, u64 *) |
#define ERI_COMPONENT_RESET 0x24 /* Component must be reset */ |
#define ERI_CONTAINMENT_WARN 0x22 /* Corrupt data propagated */ |
#define ERI_CORR_ERROR_LOG 0x21 /* Corrected error, needs logging */ |
#define ERI_CORR_ERROR_THRESH 0x29 /* Corrected error threshold exceeded */ |
#define ERI_NOT_VALID 0x0 /* Error Recovery Field is not valid */ |
#define IA64_SAL_PLATFORM_FEATURE_BUS_LOCK (1<<IA64_SAL_PLATFORM_FEATURE_BUS_LOCK_BIT) |
#define IA64_SAL_PLATFORM_FEATURE_IPI_REDIR_HINT (1<<IA64_SAL_PLATFORM_FEATURE_IPI_REDIR_HINT_BIT) |
#define IA64_SAL_PLATFORM_FEATURE_IRQ_REDIR_HINT (1<<IA64_SAL_PLATFORM_FEATURE_IRQ_REDIR_HINT_BIT) |
#define IA64_SAL_PLATFORM_FEATURE_ITC_DRIFT (1<<IA64_SAL_PLATFORM_FEATURE_ITC_DRIFT_BIT) |
#define PROCESSOR_ABSTRACTION_LAYER_OVERWRITE_GUID |
#define SAL_CALL | ( | result, | |
args... | |||
) | IA64_FW_CALL(ia64_sal, result, args); |
#define SAL_CALL_NOLOCK | ( | result, | |
args... | |||
) |
#define SAL_CALL_REENTRANT | ( | result, | |
args... | |||
) |
#define SAL_LPI_PSI_INFO | ( | l | ) |
#define SAL_PLAT_BUS_ERR_SECT_GUID EFI_GUID(0xe429faf9, 0x3cb7, 0x11d4, 0xbc, 0xa7, 0x0, 0x80, 0xc7, 0x3c, 0x88, 0x81) |
#define SAL_PLAT_HOST_CTLR_ERR_SECT_GUID EFI_GUID(0xe429faf8, 0x3cb7, 0x11d4, 0xbc, 0xa7, 0x0, 0x80, 0xc7, 0x3c, 0x88, 0x81) |
#define SAL_PLAT_MEM_DEV_ERR_SECT_GUID EFI_GUID(0xe429faf2, 0x3cb7, 0x11d4, 0xbc, 0xa7, 0x0, 0x80, 0xc7, 0x3c, 0x88, 0x81) |
#define SAL_PLAT_PCI_BUS_ERR_SECT_GUID EFI_GUID(0xe429faf4, 0x3cb7, 0x11d4, 0xbc, 0xa7, 0x0, 0x80, 0xc7, 0x3c, 0x88, 0x81) |
#define SAL_PLAT_PCI_COMP_ERR_SECT_GUID EFI_GUID(0xe429faf6, 0x3cb7, 0x11d4, 0xbc, 0xa7, 0x0, 0x80, 0xc7, 0x3c, 0x88, 0x81) |
#define SAL_PLAT_SEL_DEV_ERR_SECT_GUID EFI_GUID(0xe429faf3, 0x3cb7, 0x11d4, 0xbc, 0xa7, 0x0, 0x80, 0xc7, 0x3c, 0x88, 0x81) |
#define SAL_PLAT_SMBIOS_DEV_ERR_SECT_GUID EFI_GUID(0xe429faf5, 0x3cb7, 0x11d4, 0xbc, 0xa7, 0x0, 0x80, 0xc7, 0x3c, 0x88, 0x81) |
#define SAL_PLAT_SPECIFIC_ERR_SECT_GUID EFI_GUID(0xe429faf7, 0x3cb7, 0x11d4, 0xbc, 0xa7, 0x0, 0x80, 0xc7, 0x3c, 0x88, 0x81) |
#define SAL_PROC_DEV_ERR_SECT_GUID EFI_GUID(0xe429faf1, 0x3cb7, 0x11d4, 0xbc, 0xa7, 0x0, 0x80, 0xc7, 0x3c, 0x88, 0x81) |
typedef struct err_rec ia64_err_rec_t |
typedef struct ia64_sal_desc_tr ia64_sal_desc_tr_t |
|
read |
typedef union sal_log_platform_err_info sal_log_platform_err_info_t |
typedef struct sal_log_revision sal_log_revision_t |
anonymous enum |
anonymous enum |
anonymous enum |
anonymous enum |
anonymous enum |
void ia64_sal_init | ( | struct ia64_sal_systab * | sal_systab | ) |
struct ia64_sal_desc_ptc* ia64_ptc_domain_info |
ia64_sal_handler ia64_sal |
spinlock_t sal_lock |
salinfo_platform_oemdata - optional callback to decode oemdata from an error record. : pointer to the start of the section to decode. : returns vmalloc area containing the decoded output. : returns length of decoded output (strlen).
Description: If user space asks for oem data to be decoded by the kernel and/or prom and the platform has set salinfo_platform_oemdata to the address of a platform specific routine then call that routine. salinfo_platform_oemdata vmalloc's and formats its output area, returning the address of the text and its strlen. Returns 0 for success, -ve for error. The callback is invoked on the cpu that generated the error record.