Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Data Structures | Macros | Enumerations | Functions | Variables
ipmi_smic_sm.c File Reference
#include <linux/kernel.h>
#include <linux/string.h>
#include <linux/module.h>
#include <linux/moduleparam.h>
#include <linux/ipmi_msgdefs.h>
#include "ipmi_si_sm.h"

Go to the source code of this file.

Data Structures

struct  si_sm_data
 

Macros

#define SMIC_DEBUG_STATES   4
 
#define SMIC_DEBUG_MSG   2
 
#define SMIC_DEBUG_ENABLE   1
 
#define MAX_SMIC_READ_SIZE   80
 
#define MAX_SMIC_WRITE_SIZE   80
 
#define SMIC_MAX_ERROR_RETRIES   3
 
#define SMIC_RETRY_TIMEOUT   2000000
 
#define SMIC_RX_DATA_READY   0x80
 
#define SMIC_TX_DATA_READY   0x40
 
#define SMIC_SMI   0x10
 
#define SMIC_EVM_DATA_AVAIL   0x08
 
#define SMIC_SMS_DATA_AVAIL   0x04
 
#define SMIC_FLAG_BSY   0x01
 
#define EC_NO_ERROR   0x00
 
#define EC_ABORTED   0x01
 
#define EC_ILLEGAL_CONTROL   0x02
 
#define EC_NO_RESPONSE   0x03
 
#define EC_ILLEGAL_COMMAND   0x04
 
#define EC_BUFFER_FULL   0x05
 
#define SMIC_GET_STATUS   0x00 /* Control form's name */
 
#define SMIC_READY   0x00 /* Status form's name */
 
#define SMIC_WR_START   0x01 /* Unified Control/Status names... */
 
#define SMIC_WR_NEXT   0x02
 
#define SMIC_WR_END   0x03
 
#define SMIC_RD_START   0x04
 
#define SMIC_RD_NEXT   0x05
 
#define SMIC_RD_END   0x06
 
#define SMIC_CODE_MASK   0x0f
 
#define SMIC_CONTROL   0x00
 
#define SMIC_STATUS   0x80
 
#define SMIC_CS_MASK   0x80
 
#define SMIC_SMS   0x40
 
#define SMIC_SMM   0x60
 
#define SMIC_STREAM_MASK   0x60
 
#define SMIC_CC_SMS_GET_STATUS   (SMIC_CONTROL|SMIC_SMS|SMIC_GET_STATUS)
 
#define SMIC_CC_SMS_WR_START   (SMIC_CONTROL|SMIC_SMS|SMIC_WR_START)
 
#define SMIC_CC_SMS_WR_NEXT   (SMIC_CONTROL|SMIC_SMS|SMIC_WR_NEXT)
 
#define SMIC_CC_SMS_WR_END   (SMIC_CONTROL|SMIC_SMS|SMIC_WR_END)
 
#define SMIC_CC_SMS_RD_START   (SMIC_CONTROL|SMIC_SMS|SMIC_RD_START)
 
#define SMIC_CC_SMS_RD_NEXT   (SMIC_CONTROL|SMIC_SMS|SMIC_RD_NEXT)
 
#define SMIC_CC_SMS_RD_END   (SMIC_CONTROL|SMIC_SMS|SMIC_RD_END)
 
#define SMIC_CC_SMM_GET_STATUS   (SMIC_CONTROL|SMIC_SMM|SMIC_GET_STATUS)
 
#define SMIC_CC_SMM_WR_START   (SMIC_CONTROL|SMIC_SMM|SMIC_WR_START)
 
#define SMIC_CC_SMM_WR_NEXT   (SMIC_CONTROL|SMIC_SMM|SMIC_WR_NEXT)
 
#define SMIC_CC_SMM_WR_END   (SMIC_CONTROL|SMIC_SMM|SMIC_WR_END)
 
#define SMIC_CC_SMM_RD_START   (SMIC_CONTROL|SMIC_SMM|SMIC_RD_START)
 
#define SMIC_CC_SMM_RD_NEXT   (SMIC_CONTROL|SMIC_SMM|SMIC_RD_NEXT)
 
#define SMIC_CC_SMM_RD_END   (SMIC_CONTROL|SMIC_SMM|SMIC_RD_END)
 
#define SMIC_SC_SMS_READY   (SMIC_STATUS|SMIC_SMS|SMIC_READY)
 
#define SMIC_SC_SMS_WR_START   (SMIC_STATUS|SMIC_SMS|SMIC_WR_START)
 
#define SMIC_SC_SMS_WR_NEXT   (SMIC_STATUS|SMIC_SMS|SMIC_WR_NEXT)
 
#define SMIC_SC_SMS_WR_END   (SMIC_STATUS|SMIC_SMS|SMIC_WR_END)
 
#define SMIC_SC_SMS_RD_START   (SMIC_STATUS|SMIC_SMS|SMIC_RD_START)
 
#define SMIC_SC_SMS_RD_NEXT   (SMIC_STATUS|SMIC_SMS|SMIC_RD_NEXT)
 
#define SMIC_SC_SMS_RD_END   (SMIC_STATUS|SMIC_SMS|SMIC_RD_END)
 
#define SMIC_SC_SMM_READY   (SMIC_STATUS|SMIC_SMM|SMIC_READY)
 
#define SMIC_SC_SMM_WR_START   (SMIC_STATUS|SMIC_SMM|SMIC_WR_START)
 
#define SMIC_SC_SMM_WR_NEXT   (SMIC_STATUS|SMIC_SMM|SMIC_WR_NEXT)
 
#define SMIC_SC_SMM_WR_END   (SMIC_STATUS|SMIC_SMM|SMIC_WR_END)
 
#define SMIC_SC_SMM_RD_START   (SMIC_STATUS|SMIC_SMM|SMIC_RD_START)
 
#define SMIC_SC_SMM_RD_NEXT   (SMIC_STATUS|SMIC_SMM|SMIC_RD_NEXT)
 
#define SMIC_SC_SMM_RD_END   (SMIC_STATUS|SMIC_SMM|SMIC_RD_END)
 

Enumerations

enum  smic_states {
  SMIC_IDLE, SMIC_START_OP, SMIC_OP_OK, SMIC_WRITE_START,
  SMIC_WRITE_NEXT, SMIC_WRITE_END, SMIC_WRITE2READ, SMIC_READ_START,
  SMIC_READ_NEXT, SMIC_READ_END, SMIC_HOSED
}
 

Functions

 module_param (smic_debug, int, 0644)
 
 MODULE_PARM_DESC (smic_debug,"debug bitmask, 1=enable, 2=messages, 4=states")
 

Variables

struct si_sm_handlers smic_smi_handlers
 

Macro Definition Documentation

#define EC_ABORTED   0x01

Definition at line 102 of file ipmi_smic_sm.c.

#define EC_BUFFER_FULL   0x05

Definition at line 106 of file ipmi_smic_sm.c.

#define EC_ILLEGAL_COMMAND   0x04

Definition at line 105 of file ipmi_smic_sm.c.

#define EC_ILLEGAL_CONTROL   0x02

Definition at line 103 of file ipmi_smic_sm.c.

#define EC_NO_ERROR   0x00

Definition at line 101 of file ipmi_smic_sm.c.

#define EC_NO_RESPONSE   0x03

Definition at line 104 of file ipmi_smic_sm.c.

#define MAX_SMIC_READ_SIZE   80

Definition at line 78 of file ipmi_smic_sm.c.

#define MAX_SMIC_WRITE_SIZE   80

Definition at line 79 of file ipmi_smic_sm.c.

#define SMIC_CC_SMM_GET_STATUS   (SMIC_CONTROL|SMIC_SMM|SMIC_GET_STATUS)

Definition at line 293 of file ipmi_smic_sm.c.

#define SMIC_CC_SMM_RD_END   (SMIC_CONTROL|SMIC_SMM|SMIC_RD_END)

Definition at line 299 of file ipmi_smic_sm.c.

#define SMIC_CC_SMM_RD_NEXT   (SMIC_CONTROL|SMIC_SMM|SMIC_RD_NEXT)

Definition at line 298 of file ipmi_smic_sm.c.

#define SMIC_CC_SMM_RD_START   (SMIC_CONTROL|SMIC_SMM|SMIC_RD_START)

Definition at line 297 of file ipmi_smic_sm.c.

#define SMIC_CC_SMM_WR_END   (SMIC_CONTROL|SMIC_SMM|SMIC_WR_END)

Definition at line 296 of file ipmi_smic_sm.c.

#define SMIC_CC_SMM_WR_NEXT   (SMIC_CONTROL|SMIC_SMM|SMIC_WR_NEXT)

Definition at line 295 of file ipmi_smic_sm.c.

#define SMIC_CC_SMM_WR_START   (SMIC_CONTROL|SMIC_SMM|SMIC_WR_START)

Definition at line 294 of file ipmi_smic_sm.c.

#define SMIC_CC_SMS_GET_STATUS   (SMIC_CONTROL|SMIC_SMS|SMIC_GET_STATUS)

Definition at line 285 of file ipmi_smic_sm.c.

#define SMIC_CC_SMS_RD_END   (SMIC_CONTROL|SMIC_SMS|SMIC_RD_END)

Definition at line 291 of file ipmi_smic_sm.c.

#define SMIC_CC_SMS_RD_NEXT   (SMIC_CONTROL|SMIC_SMS|SMIC_RD_NEXT)

Definition at line 290 of file ipmi_smic_sm.c.

#define SMIC_CC_SMS_RD_START   (SMIC_CONTROL|SMIC_SMS|SMIC_RD_START)

Definition at line 289 of file ipmi_smic_sm.c.

#define SMIC_CC_SMS_WR_END   (SMIC_CONTROL|SMIC_SMS|SMIC_WR_END)

Definition at line 288 of file ipmi_smic_sm.c.

#define SMIC_CC_SMS_WR_NEXT   (SMIC_CONTROL|SMIC_SMS|SMIC_WR_NEXT)

Definition at line 287 of file ipmi_smic_sm.c.

#define SMIC_CC_SMS_WR_START   (SMIC_CONTROL|SMIC_SMS|SMIC_WR_START)

Definition at line 286 of file ipmi_smic_sm.c.

#define SMIC_CODE_MASK   0x0f

Definition at line 274 of file ipmi_smic_sm.c.

#define SMIC_CONTROL   0x00

Definition at line 276 of file ipmi_smic_sm.c.

#define SMIC_CS_MASK   0x80

Definition at line 278 of file ipmi_smic_sm.c.

#define SMIC_DEBUG_ENABLE   1

Definition at line 58 of file ipmi_smic_sm.c.

#define SMIC_DEBUG_MSG   2

Definition at line 57 of file ipmi_smic_sm.c.

#define SMIC_DEBUG_STATES   4

Definition at line 56 of file ipmi_smic_sm.c.

#define SMIC_EVM_DATA_AVAIL   0x08

Definition at line 96 of file ipmi_smic_sm.c.

#define SMIC_FLAG_BSY   0x01

Definition at line 98 of file ipmi_smic_sm.c.

#define SMIC_GET_STATUS   0x00 /* Control form's name */

Definition at line 266 of file ipmi_smic_sm.c.

#define SMIC_MAX_ERROR_RETRIES   3

Definition at line 80 of file ipmi_smic_sm.c.

#define SMIC_RD_END   0x06

Definition at line 273 of file ipmi_smic_sm.c.

#define SMIC_RD_NEXT   0x05

Definition at line 272 of file ipmi_smic_sm.c.

#define SMIC_RD_START   0x04

Definition at line 271 of file ipmi_smic_sm.c.

#define SMIC_READY   0x00 /* Status form's name */

Definition at line 267 of file ipmi_smic_sm.c.

#define SMIC_RETRY_TIMEOUT   2000000

Definition at line 83 of file ipmi_smic_sm.c.

#define SMIC_RX_DATA_READY   0x80

Definition at line 86 of file ipmi_smic_sm.c.

#define SMIC_SC_SMM_RD_END   (SMIC_STATUS|SMIC_SMM|SMIC_RD_END)

Definition at line 316 of file ipmi_smic_sm.c.

#define SMIC_SC_SMM_RD_NEXT   (SMIC_STATUS|SMIC_SMM|SMIC_RD_NEXT)

Definition at line 315 of file ipmi_smic_sm.c.

#define SMIC_SC_SMM_RD_START   (SMIC_STATUS|SMIC_SMM|SMIC_RD_START)

Definition at line 314 of file ipmi_smic_sm.c.

#define SMIC_SC_SMM_READY   (SMIC_STATUS|SMIC_SMM|SMIC_READY)

Definition at line 310 of file ipmi_smic_sm.c.

#define SMIC_SC_SMM_WR_END   (SMIC_STATUS|SMIC_SMM|SMIC_WR_END)

Definition at line 313 of file ipmi_smic_sm.c.

#define SMIC_SC_SMM_WR_NEXT   (SMIC_STATUS|SMIC_SMM|SMIC_WR_NEXT)

Definition at line 312 of file ipmi_smic_sm.c.

#define SMIC_SC_SMM_WR_START   (SMIC_STATUS|SMIC_SMM|SMIC_WR_START)

Definition at line 311 of file ipmi_smic_sm.c.

#define SMIC_SC_SMS_RD_END   (SMIC_STATUS|SMIC_SMS|SMIC_RD_END)

Definition at line 308 of file ipmi_smic_sm.c.

#define SMIC_SC_SMS_RD_NEXT   (SMIC_STATUS|SMIC_SMS|SMIC_RD_NEXT)

Definition at line 307 of file ipmi_smic_sm.c.

#define SMIC_SC_SMS_RD_START   (SMIC_STATUS|SMIC_SMS|SMIC_RD_START)

Definition at line 306 of file ipmi_smic_sm.c.

#define SMIC_SC_SMS_READY   (SMIC_STATUS|SMIC_SMS|SMIC_READY)

Definition at line 302 of file ipmi_smic_sm.c.

#define SMIC_SC_SMS_WR_END   (SMIC_STATUS|SMIC_SMS|SMIC_WR_END)

Definition at line 305 of file ipmi_smic_sm.c.

#define SMIC_SC_SMS_WR_NEXT   (SMIC_STATUS|SMIC_SMS|SMIC_WR_NEXT)

Definition at line 304 of file ipmi_smic_sm.c.

#define SMIC_SC_SMS_WR_START   (SMIC_STATUS|SMIC_SMS|SMIC_WR_START)

Definition at line 303 of file ipmi_smic_sm.c.

#define SMIC_SMI   0x10

Definition at line 95 of file ipmi_smic_sm.c.

#define SMIC_SMM   0x60

Definition at line 281 of file ipmi_smic_sm.c.

#define SMIC_SMS   0x40

Definition at line 280 of file ipmi_smic_sm.c.

#define SMIC_SMS_DATA_AVAIL   0x04

Definition at line 97 of file ipmi_smic_sm.c.

#define SMIC_STATUS   0x80

Definition at line 277 of file ipmi_smic_sm.c.

#define SMIC_STREAM_MASK   0x60

Definition at line 282 of file ipmi_smic_sm.c.

#define SMIC_TX_DATA_READY   0x40

Definition at line 87 of file ipmi_smic_sm.c.

#define SMIC_WR_END   0x03

Definition at line 270 of file ipmi_smic_sm.c.

#define SMIC_WR_NEXT   0x02

Definition at line 269 of file ipmi_smic_sm.c.

#define SMIC_WR_START   0x01 /* Unified Control/Status names... */

Definition at line 268 of file ipmi_smic_sm.c.

Enumeration Type Documentation

Enumerator:
SMIC_IDLE 
SMIC_START_OP 
SMIC_OP_OK 
SMIC_WRITE_START 
SMIC_WRITE_NEXT 
SMIC_WRITE_END 
SMIC_WRITE2READ 
SMIC_READ_START 
SMIC_READ_NEXT 
SMIC_READ_END 
SMIC_HOSED 

Definition at line 64 of file ipmi_smic_sm.c.

Function Documentation

module_param ( smic_debug  ,
int  ,
0644   
)
MODULE_PARM_DESC ( smic_debug  ,
"debug  bitmask,
= enable,
= messages 
)

Variable Documentation

struct si_sm_handlers smic_smi_handlers
Initial value:
= {
.init_data = init_smic_data,
.start_transaction = start_smic_transaction,
.get_result = smic_get_result,
.event = smic_event,
.detect = smic_detect,
.cleanup = smic_cleanup,
.size = smic_size,
}

Definition at line 592 of file ipmi_smic_sm.c.