/**************************************************************** **************************************************************** ** ** ** (C)Copyright 2006-2007, American Megatrends Inc. ** ** ** ** All Rights Reserved. ** ** ** ** 6145-F, Northbelt Parkway, Norcross, ** ** ** ** Georgia - 30071, USA. Phone-(770)-246-8600. ** ** ** **************************************************************** ***************************************************************** * * PendTask.h * Any IPMI command operation which requires more * response time can be posted to this task. * * Author: Vinothkumar S * *****************************************************************/ #ifndef PEND_TASK_H #define PEND_TASK_H #include "Types.h" //#include "OSPort.h" #include "Message.h" #include "IPMIDefs.h" #define PEND_STATUS_COMPLETED 0x00 #define PEND_STATUS_PENDING 0x0F #define IPMI 0x01 #define WEBSERVER 0x02 #define REBOOT 0x03 #define ADVISER_CONF 0x04 /*---------------------------------------------------- * Pending Task Operation *----------------------------------------------------*/ typedef enum { PEND_OP_SET_IP = 0, /* Set IP Address */ PEND_OP_SET_SUBNET, /* Set SubNet Mask */ PEND_OP_SET_GATEWAY, /* Set Gateway */ PEND_OP_SET_SOURCE, /*SET Address source*/ PEND_OP_SET_DNS, /*SET DNS Information */ PEND_OP_DELAYED_COLD_RESET, /* Delayed Cold Reset */ PEND_OP_DELAYED_CR_CONFIG, PEND_OP_SEND_EMAIL_ALERT, PEND_OP_PEND_VM_CONFIG, PEND_OP_PEND_OOB_CONFIG, PEND_OP_IFUPDOWN, PEND_OP_NIC_ENABLE_DISABLE, PEND_OP_SET_VLAN_ID, PEND_OP_DECONFIG_VLAN_IFC, PEND_OP_SET_IPV4_HEADERS, PEND_RMCP_PORT_CHANGE, PEND_OP_SET_ALL_DNS_CFG, PEND_OP_SET_IPV6_CFG, PEND_OP_SET_DNSV6_CFG, PEND_OP_SET_ETH_IFACE_STATE, PEND_OP_SET_MAC_ADDRESS, PEND_OP_SET_IPV6_ENABLE=102, PEND_OP_SET_IPV6_IP_ADDR_SOURCE, PEND_OP_SET_IPV6_IP_ADDR, PEND_OP_SET_IPV6_PREFIX_LENGTH, PEND_OP_SET_IPV6_GATEWAY, PEND_OP_SET_BOND_IFACE_STATE, PEND_OP_SET_ACTIVE_SLAVE, PEND_OP_RESTART_SERVICES, PEND_OP_START_FW_UPDATE_TFTP, PEND_OP_SET_NCSI_CHANNEL_ID, PEND_OP_SET_NCSI_MODE_CHANGE, PEND_OP_SET_NCSI_VETOBIT, PEND_OP_SET_SPEED, PEND_OP_SET_MTU_SIZE, PEND_OP_SET_NW_PHY_REGISTER, PEND_OP_RUN_INIT_AGENT, PEND_OP_SET_BLOCK_ALL } PendTaskOperation_E; /* Function pointer for Pending command handler */ typedef int (*pPendCmdHndlr_T) (INT8U* pData, INT32U ReqLen,INT8U Channel,int BMCInst); /* Pending command handler type definition */ typedef struct { PendTaskOperation_E Operation; /* Pending Operation */ pPendCmdHndlr_T PendHndlr; /* Pending handler */ } PendCmdHndlrTbl_T; /* Pending command status type definition */ typedef struct { PendTaskOperation_E Action; /* Pending Operation */ int PendStatus; /* Pending Status */ } PendCmdStatus_T; /*---------------------------------------------------- * Pend Task Handler Queue *----------------------------------------------------*/ extern void* PendCmdTask (void *pArg); extern int PostPendTask (PendTaskOperation_E Operation, INT8U *pData, INT32U DataLen,INT8U Channel,int BMCInst); extern int SetPendStatus (PendTaskOperation_E Action, int Status); extern int GetPendStatus (PendTaskOperation_E Action); #endif /* PEND_TASK_H */