⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sm_statetable.c

📁 Linux Kernel 2.6.9 for OMAP1710
💻 C
📖 第 1 页 / 共 3 页
字号:
	/* SCTP_STATE_SHUTDOWN_PENDING */ \	{.fn = sctp_sf_do_prm_requestheartbeat,		      \	 .name = "sctp_sf_do_prm_requestheartbeat"},          \	/* SCTP_STATE_SHUTDOWN_SENT */ \	{.fn = sctp_sf_do_prm_requestheartbeat,		      \	 .name = "sctp_sf_do_prm_requestheartbeat"},          \	/* SCTP_STATE_SHUTDOWN_RECEIVED */ \	{.fn = sctp_sf_do_prm_requestheartbeat,		      \	 .name = "sctp_sf_do_prm_requestheartbeat"},          \	/* SCTP_STATE_SHUTDOWN_ACK_SENT */ \	{.fn = sctp_sf_do_prm_requestheartbeat,		      \	 .name = "sctp_sf_do_prm_requestheartbeat"},          \} /* TYPE_SCTP_PRIMITIVE_REQUESTHEARTBEAT */#define TYPE_SCTP_PRIMITIVE_ASCONF { \	/* SCTP_STATE_EMPTY */ \	{.fn = sctp_sf_bug, .name = "sctp_sf_bug"}, \	/* SCTP_STATE_CLOSED */ \	{.fn = sctp_sf_error_closed, .name = "sctp_sf_error_closed"}, \	/* SCTP_STATE_COOKIE_WAIT */ \	{.fn = sctp_sf_error_closed, .name = "sctp_sf_error_closed"}, \	/* SCTP_STATE_COOKIE_ECHOED */ \	{.fn = sctp_sf_error_closed, .name = "sctp_sf_error_closed"}, \	/* SCTP_STATE_ESTABLISHED */ \	{.fn = sctp_sf_do_prm_asconf, .name = "sctp_sf_do_prm_asconf"}, \	/* SCTP_STATE_SHUTDOWN_PENDING */ \	{.fn = sctp_sf_error_shutdown, .name = "sctp_sf_error_shutdown"}, \	/* SCTP_STATE_SHUTDOWN_SENT */ \	{.fn = sctp_sf_error_shutdown, .name = "sctp_sf_error_shutdown"}, \	/* SCTP_STATE_SHUTDOWN_RECEIVED */ \	{.fn = sctp_sf_error_shutdown, .name = "sctp_sf_error_shutdown"}, \	/* SCTP_STATE_SHUTDOWN_ACK_SENT */ \	{.fn = sctp_sf_error_shutdown, .name = "sctp_sf_error_shutdown"}, \} /* TYPE_SCTP_PRIMITIVE_REQUESTHEARTBEAT *//* The primary index for this table is the primitive type. * The secondary index for this table is the state. */const sctp_sm_table_entry_t primitive_event_table[SCTP_NUM_PRIMITIVE_TYPES][SCTP_STATE_NUM_STATES] = {	TYPE_SCTP_PRIMITIVE_ASSOCIATE,	TYPE_SCTP_PRIMITIVE_SHUTDOWN,	TYPE_SCTP_PRIMITIVE_ABORT,	TYPE_SCTP_PRIMITIVE_SEND,	TYPE_SCTP_PRIMITIVE_REQUESTHEARTBEAT,	TYPE_SCTP_PRIMITIVE_ASCONF,};#define TYPE_SCTP_OTHER_NO_PENDING_TSN  { \	/* SCTP_STATE_EMPTY */ \	{.fn = sctp_sf_bug, .name = "sctp_sf_bug"}, \	/* SCTP_STATE_CLOSED */ \	{.fn = sctp_sf_ignore_other, .name = "sctp_sf_ignore_other"}, \	/* SCTP_STATE_COOKIE_WAIT */ \	{.fn = sctp_sf_ignore_other, .name = "sctp_sf_ignore_other"}, \	/* SCTP_STATE_COOKIE_ECHOED */ \	{.fn = sctp_sf_ignore_other, .name = "sctp_sf_ignore_other"}, \	/* SCTP_STATE_ESTABLISHED */ \	{.fn = sctp_sf_ignore_other, .name = "sctp_sf_ignore_other"}, \	/* SCTP_STATE_SHUTDOWN_PENDING */ \	{.fn = sctp_sf_do_9_2_start_shutdown, \	 .name = "sctp_do_9_2_start_shutdown"}, \	/* SCTP_STATE_SHUTDOWN_SENT */ \	{.fn = sctp_sf_ignore_other, .name = "sctp_sf_ignore_other"}, \	/* SCTP_STATE_SHUTDOWN_RECEIVED */ \	{.fn = sctp_sf_do_9_2_shutdown_ack, \	 .name = "sctp_sf_do_9_2_shutdown_ack"}, \	/* SCTP_STATE_SHUTDOWN_ACK_SENT */ \	{.fn = sctp_sf_ignore_other, .name = "sctp_sf_ignore_other"}, \}const sctp_sm_table_entry_t other_event_table[SCTP_NUM_OTHER_TYPES][SCTP_STATE_NUM_STATES] = {	TYPE_SCTP_OTHER_NO_PENDING_TSN,};#define TYPE_SCTP_EVENT_TIMEOUT_NONE { \	/* SCTP_STATE_EMPTY */ \	{.fn = sctp_sf_bug, .name = "sctp_sf_bug"}, \	/* SCTP_STATE_CLOSED */ \	{.fn = sctp_sf_bug, .name = "sctp_sf_bug"}, \	/* SCTP_STATE_COOKIE_WAIT */ \	{.fn = sctp_sf_bug, .name = "sctp_sf_bug"}, \	/* SCTP_STATE_COOKIE_ECHOED */ \	{.fn = sctp_sf_bug, .name = "sctp_sf_bug"}, \	/* SCTP_STATE_ESTABLISHED */ \	{.fn = sctp_sf_bug, .name = "sctp_sf_bug"}, \	/* SCTP_STATE_SHUTDOWN_PENDING */ \	{.fn = sctp_sf_bug, .name = "sctp_sf_bug"}, \	/* SCTP_STATE_SHUTDOWN_SENT */ \	{.fn = sctp_sf_bug, .name = "sctp_sf_bug"}, \	/* SCTP_STATE_SHUTDOWN_RECEIVED */ \	{.fn = sctp_sf_bug, .name = "sctp_sf_bug"}, \	/* SCTP_STATE_SHUTDOWN_ACK_SENT */ \	{.fn = sctp_sf_bug, .name = "sctp_sf_bug"}, \}#define TYPE_SCTP_EVENT_TIMEOUT_T1_COOKIE { \	/* SCTP_STATE_EMPTY */ \	{.fn = sctp_sf_bug, .name = "sctp_sf_bug"}, \	/* SCTP_STATE_CLOSED */ \	{.fn = sctp_sf_timer_ignore, .name = "sctp_sf_timer_ignore"}, \	/* SCTP_STATE_COOKIE_WAIT */ \	{.fn = sctp_sf_bug, .name = "sctp_sf_bug"}, \	/* SCTP_STATE_COOKIE_ECHOED */ \	{.fn = sctp_sf_t1_timer_expire, .name = "sctp_sf_t1_timer_expire"}, \	/* SCTP_STATE_ESTABLISHED */ \	{.fn = sctp_sf_timer_ignore, .name = "sctp_sf_timer_ignore"}, \	/* SCTP_STATE_SHUTDOWN_PENDING */ \	{.fn = sctp_sf_timer_ignore, .name = "sctp_sf_timer_ignore"}, \	/* SCTP_STATE_SHUTDOWN_SENT */ \	{.fn = sctp_sf_timer_ignore, .name = "sctp_sf_timer_ignore"}, \	/* SCTP_STATE_SHUTDOWN_RECEIVED */ \	{.fn = sctp_sf_timer_ignore, .name = "sctp_sf_timer_ignore"}, \	/* SCTP_STATE_SHUTDOWN_ACK_SENT */ \	{.fn = sctp_sf_timer_ignore, .name = "sctp_sf_timer_ignore"}, \}#define TYPE_SCTP_EVENT_TIMEOUT_T1_INIT { \	/* SCTP_STATE_EMPTY */ \	{.fn = sctp_sf_bug, .name = "sctp_sf_bug"}, \	/* SCTP_STATE_CLOSED */ \	{.fn = sctp_sf_timer_ignore, .name = "sctp_sf_timer_ignore"}, \	/* SCTP_STATE_COOKIE_WAIT */ \	{.fn = sctp_sf_t1_timer_expire, .name = "sctp_sf_t1_timer_expire"}, \	/* SCTP_STATE_COOKIE_ECHOED */ \	{.fn = sctp_sf_timer_ignore, .name = "sctp_sf_timer_ignore"}, \	/* SCTP_STATE_ESTABLISHED */ \	{.fn = sctp_sf_timer_ignore, .name = "sctp_sf_timer_ignore"}, \	/* SCTP_STATE_SHUTDOWN_PENDING */ \	{.fn = sctp_sf_timer_ignore, .name = "sctp_sf_timer_ignore"}, \	/* SCTP_STATE_SHUTDOWN_SENT */ \	{.fn = sctp_sf_timer_ignore, .name = "sctp_sf_timer_ignore"}, \	/* SCTP_STATE_SHUTDOWN_RECEIVED */ \	{.fn = sctp_sf_timer_ignore, .name = "sctp_sf_timer_ignore"}, \	/* SCTP_STATE_SHUTDOWN_ACK_SENT */ \	{.fn = sctp_sf_timer_ignore, .name = "sctp_sf_timer_ignore"}, \}#define TYPE_SCTP_EVENT_TIMEOUT_T2_SHUTDOWN { \	/* SCTP_STATE_EMPTY */ \	{.fn = sctp_sf_bug, .name = "sctp_sf_bug"}, \	/* SCTP_STATE_CLOSED */ \	{.fn = sctp_sf_timer_ignore, .name = "sctp_sf_timer_ignore"}, \	/* SCTP_STATE_COOKIE_WAIT */ \	{.fn = sctp_sf_timer_ignore, .name = "sctp_sf_timer_ignore"}, \	/* SCTP_STATE_COOKIE_ECHOED */ \	{.fn = sctp_sf_timer_ignore, .name = "sctp_sf_timer_ignore"}, \	/* SCTP_STATE_ESTABLISHED */ \	{.fn = sctp_sf_timer_ignore, .name = "sctp_sf_timer_ignore"}, \	/* SCTP_STATE_SHUTDOWN_PENDING */ \	{.fn = sctp_sf_timer_ignore, .name = "sctp_sf_timer_ignore"}, \	/* SCTP_STATE_SHUTDOWN_SENT */ \	{.fn = sctp_sf_t2_timer_expire, .name = "sctp_sf_t2_timer_expire"}, \	/* SCTP_STATE_SHUTDOWN_RECEIVED */ \	{.fn = sctp_sf_timer_ignore, .name = "sctp_sf_timer_ignore"}, \	/* SCTP_STATE_SHUTDOWN_ACK_SENT */ \	{.fn = sctp_sf_t2_timer_expire, .name = "sctp_sf_t2_timer_expire"}, \}#define TYPE_SCTP_EVENT_TIMEOUT_T3_RTX { \	/* SCTP_STATE_EMPTY */ \	{.fn = sctp_sf_bug, .name = "sctp_sf_bug"}, \	/* SCTP_STATE_CLOSED */ \	{.fn = sctp_sf_timer_ignore, .name = "sctp_sf_timer_ignore"}, \	/* SCTP_STATE_COOKIE_WAIT */ \	{.fn = sctp_sf_timer_ignore, .name = "sctp_sf_timer_ignore"}, \	/* SCTP_STATE_COOKIE_ECHOED */ \	{.fn = sctp_sf_do_6_3_3_rtx, .name = "sctp_sf_do_6_3_3_rtx"}, \	/* SCTP_STATE_ESTABLISHED */ \	{.fn = sctp_sf_do_6_3_3_rtx, .name = "sctp_sf_do_6_3_3_rtx"}, \	/* SCTP_STATE_SHUTDOWN_PENDING */ \	{.fn = sctp_sf_do_6_3_3_rtx, .name = "sctp_sf_do_6_3_3_rtx"}, \	/* SCTP_STATE_SHUTDOWN_SENT */ \	{.fn = sctp_sf_timer_ignore, .name = "sctp_sf_timer_ignore"}, \	/* SCTP_STATE_SHUTDOWN_RECEIVED */ \	{.fn = sctp_sf_do_6_3_3_rtx, .name = "sctp_sf_do_6_3_3_rtx"}, \	/* SCTP_STATE_SHUTDOWN_ACK_SENT */ \	{.fn = sctp_sf_timer_ignore, .name = "sctp_sf_timer_ignore"}, \}#define TYPE_SCTP_EVENT_TIMEOUT_T4_RTO { \	/* SCTP_STATE_EMPTY */ \	{.fn = sctp_sf_bug, .name = "sctp_sf_bug"}, \	/* SCTP_STATE_CLOSED */ \	{.fn = sctp_sf_timer_ignore, .name = "sctp_sf_timer_ignore"}, \	/* SCTP_STATE_COOKIE_WAIT */ \	{.fn = sctp_sf_timer_ignore, .name = "sctp_sf_timer_ignore"}, \	/* SCTP_STATE_COOKIE_ECHOED */ \	{.fn = sctp_sf_timer_ignore, .name = "sctp_sf_timer_ignore"}, \	/* SCTP_STATE_ESTABLISHED */ \	{.fn = sctp_sf_t4_timer_expire, .name = "sctp_sf_t4_timer_expire"}, \	/* SCTP_STATE_SHUTDOWN_PENDING */ \	{.fn = sctp_sf_timer_ignore, .name = "sctp_sf_timer_ignore"}, \	/* SCTP_STATE_SHUTDOWN_SENT */ \	{.fn = sctp_sf_timer_ignore, .name = "sctp_sf_timer_ignore"}, \	/* SCTP_STATE_SHUTDOWN_RECEIVED */ \	{.fn = sctp_sf_timer_ignore, .name = "sctp_sf_timer_ignore"}, \	/* SCTP_STATE_SHUTDOWN_ACK_SENT */ \	{.fn = sctp_sf_timer_ignore, .name = "sctp_sf_timer_ignore"}, \}#define TYPE_SCTP_EVENT_TIMEOUT_T5_SHUTDOWN_GUARD { \	/* SCTP_STATE_EMPTY */ \	{.fn = sctp_sf_bug, .name = "sctp_sf_bug"}, \	/* SCTP_STATE_CLOSED */ \	{.fn = sctp_sf_timer_ignore, .name = "sctp_sf_timer_ignore"}, \	/* SCTP_STATE_COOKIE_WAIT */ \	{.fn = sctp_sf_timer_ignore, .name = "sctp_sf_timer_ignore"}, \	/* SCTP_STATE_COOKIE_ECHOED */ \	{.fn = sctp_sf_timer_ignore, .name = "sctp_sf_timer_ignore"}, \	/* SCTP_STATE_ESTABLISHED */ \	{.fn = sctp_sf_timer_ignore, .name = "sctp_sf_timer_ignore"}, \	/* SCTP_STATE_SHUTDOWN_PENDING */ \	{.fn = sctp_sf_t5_timer_expire, .name = "sctp_sf_t5_timer_expire"}, \	/* SCTP_STATE_SHUTDOWN_SENT */ \	{.fn = sctp_sf_t5_timer_expire, .name = "sctp_sf_t5_timer_expire"}, \	/* SCTP_STATE_SHUTDOWN_RECEIVED */ \	{.fn = sctp_sf_timer_ignore, .name = "sctp_sf_timer_ignore"}, \	/* SCTP_STATE_SHUTDOWN_ACK_SENT */ \	{.fn = sctp_sf_timer_ignore, .name = "sctp_sf_timer_ignore"}, \}#define TYPE_SCTP_EVENT_TIMEOUT_HEARTBEAT { \	/* SCTP_STATE_EMPTY */ \	{.fn = sctp_sf_bug, .name = "sctp_sf_bug"}, \	/* SCTP_STATE_CLOSED */ \	{.fn = sctp_sf_timer_ignore, .name = "sctp_sf_timer_ignore"}, \	/* SCTP_STATE_COOKIE_WAIT */ \	{.fn = sctp_sf_timer_ignore, .name = "sctp_sf_timer_ignore"}, \	/* SCTP_STATE_COOKIE_ECHOED */ \	{.fn = sctp_sf_timer_ignore, .name = "sctp_sf_timer_ignore"}, \	/* SCTP_STATE_ESTABLISHED */ \	{.fn = sctp_sf_sendbeat_8_3, .name = "sctp_sf_sendbeat_8_3"}, \	/* SCTP_STATE_SHUTDOWN_PENDING */ \	{.fn = sctp_sf_sendbeat_8_3, .name = "sctp_sf_sendbeat_8_3"}, \	/* SCTP_STATE_SHUTDOWN_SENT */ \	{.fn = sctp_sf_timer_ignore, .name = "sctp_sf_timer_ignore"}, \	/* SCTP_STATE_SHUTDOWN_RECEIVED */ \	{.fn = sctp_sf_sendbeat_8_3, .name = "sctp_sf_sendbeat_8_3"}, \	/* SCTP_STATE_SHUTDOWN_ACK_SENT */ \	{.fn = sctp_sf_timer_ignore, .name = "sctp_sf_timer_ignore"}, \}#define TYPE_SCTP_EVENT_TIMEOUT_SACK { \	/* SCTP_STATE_EMPTY */ \	{.fn = sctp_sf_bug, .name = "sctp_sf_bug"}, \	/* SCTP_STATE_CLOSED */ \	{.fn = sctp_sf_timer_ignore, .name = "sctp_sf_timer_ignore"}, \	/* SCTP_STATE_COOKIE_WAIT */ \	{.fn = sctp_sf_timer_ignore, .name = "sctp_sf_timer_ignore"}, \	/* SCTP_STATE_COOKIE_ECHOED */ \	{.fn = sctp_sf_timer_ignore, .name = "sctp_sf_timer_ignore"}, \	/* SCTP_STATE_ESTABLISHED */ \	{.fn = sctp_sf_do_6_2_sack, .name = "sctp_sf_do_6_2_sack"}, \	/* SCTP_STATE_SHUTDOWN_PENDING */ \	{.fn = sctp_sf_do_6_2_sack, .name = "sctp_sf_do_6_2_sack"}, \	/* SCTP_STATE_SHUTDOWN_SENT */ \	{.fn = sctp_sf_do_6_2_sack, .name = "sctp_sf_do_6_2_sack"}, \	/* SCTP_STATE_SHUTDOWN_RECEIVED */ \	{.fn = sctp_sf_timer_ignore, .name = "sctp_sf_timer_ignore"}, \	/* SCTP_STATE_SHUTDOWN_ACK_SENT */ \	{.fn = sctp_sf_timer_ignore, .name = "sctp_sf_timer_ignore"}, \}#define TYPE_SCTP_EVENT_TIMEOUT_AUTOCLOSE { \	/* SCTP_STATE_EMPTY */ \	{.fn = sctp_sf_timer_ignore, .name = "sctp_sf_timer_ignore"}, \	/* SCTP_STATE_CLOSED */ \	{.fn = sctp_sf_timer_ignore, .name = "sctp_sf_timer_ignore"}, \	/* SCTP_STATE_COOKIE_WAIT */ \	{.fn = sctp_sf_timer_ignore, .name = "sctp_sf_timer_ignore"}, \	/* SCTP_STATE_COOKIE_ECHOED */ \	{.fn = sctp_sf_timer_ignore, .name = "sctp_sf_timer_ignore"}, \	/* SCTP_STATE_ESTABLISHED */ \	{.fn = sctp_sf_autoclose_timer_expire, \	 .name = "sctp_sf_autoclose_timer_expire"}, \	/* SCTP_STATE_SHUTDOWN_PENDING */ \	{.fn = sctp_sf_timer_ignore, .name = "sctp_sf_timer_ignore"}, \	/* SCTP_STATE_SHUTDOWN_SENT */ \	{.fn = sctp_sf_timer_ignore, .name = "sctp_sf_timer_ignore"}, \	/* SCTP_STATE_SHUTDOWN_RECEIVED */ \	{.fn = sctp_sf_timer_ignore, .name = "sctp_sf_timer_ignore"}, \	/* SCTP_STATE_SHUTDOWN_ACK_SENT */ \	{.fn = sctp_sf_timer_ignore, .name = "sctp_sf_timer_ignore"}, \}const sctp_sm_table_entry_t timeout_event_table[SCTP_NUM_TIMEOUT_TYPES][SCTP_STATE_NUM_STATES] = {	TYPE_SCTP_EVENT_TIMEOUT_NONE,	TYPE_SCTP_EVENT_TIMEOUT_T1_COOKIE,	TYPE_SCTP_EVENT_TIMEOUT_T1_INIT,	TYPE_SCTP_EVENT_TIMEOUT_T2_SHUTDOWN,	TYPE_SCTP_EVENT_TIMEOUT_T3_RTX,	TYPE_SCTP_EVENT_TIMEOUT_T4_RTO,	TYPE_SCTP_EVENT_TIMEOUT_T5_SHUTDOWN_GUARD,	TYPE_SCTP_EVENT_TIMEOUT_HEARTBEAT,	TYPE_SCTP_EVENT_TIMEOUT_SACK,	TYPE_SCTP_EVENT_TIMEOUT_AUTOCLOSE,};const sctp_sm_table_entry_t *sctp_chunk_event_lookup(sctp_cid_t cid, 						     sctp_state_t state){	if (state > SCTP_STATE_MAX)		return &bug;	if (cid >= 0 && cid <= SCTP_CID_BASE_MAX)		return &chunk_event_table[cid][state];	if (sctp_prsctp_enable) {		if (cid == SCTP_CID_FWD_TSN)			return &prsctp_chunk_event_table[0][state];	}	if (sctp_addip_enable) {		if (cid == SCTP_CID_ASCONF)			return &addip_chunk_event_table[0][state];		if (cid == SCTP_CID_ASCONF_ACK)			return &addip_chunk_event_table[1][state];	}	return &chunk_event_table_unknown[state];}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -