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

📄 sm_statetable.c

📁 Linux Kernel 2.6.9 for OMAP1710
💻 C
📖 第 1 页 / 共 3 页
字号:
	/* SCTP_STATE_SHUTDOWN_SENT */ \	{.fn = sctp_sf_do_5_2_4_dupcook, .name = "sctp_sf_do_5_2_4_dupcook"}, \	/* SCTP_STATE_SHUTDOWN_RECEIVED */ \	{.fn = sctp_sf_do_5_2_4_dupcook, .name = "sctp_sf_do_5_2_4_dupcook"}, \	/* SCTP_STATE_SHUTDOWN_ACK_SENT */ \	{.fn = sctp_sf_do_5_2_4_dupcook, .name = "sctp_sf_do_5_2_4_dupcook"}, \} /* TYPE_SCTP_COOKIE_ECHO */#define TYPE_SCTP_COOKIE_ACK { \	/* SCTP_STATE_EMPTY */ \	{.fn = sctp_sf_ootb, .name = "sctp_sf_ootb"}, \	/* SCTP_STATE_CLOSED */ \	{.fn = sctp_sf_discard_chunk, .name = "sctp_sf_discard_chunk"}, \	/* SCTP_STATE_COOKIE_WAIT */ \	{.fn = sctp_sf_discard_chunk, .name = "sctp_sf_discard_chunk"}, \	/* SCTP_STATE_COOKIE_ECHOED */ \	{.fn = sctp_sf_do_5_1E_ca, .name = "sctp_sf_do_5_1E_ca"}, \	/* SCTP_STATE_ESTABLISHED */ \	{.fn = sctp_sf_discard_chunk, .name = "sctp_sf_discard_chunk"}, \	/* SCTP_STATE_SHUTDOWN_PENDING */ \	{.fn = sctp_sf_discard_chunk, .name = "sctp_sf_discard_chunk"}, \	/* SCTP_STATE_SHUTDOWN_SENT */ \	{.fn = sctp_sf_discard_chunk, .name = "sctp_sf_discard_chunk"}, \	/* SCTP_STATE_SHUTDOWN_RECEIVED */ \	{.fn = sctp_sf_discard_chunk, .name = "sctp_sf_discard_chunk"}, \	/* SCTP_STATE_SHUTDOWN_ACK_SENT */ \	{.fn = sctp_sf_discard_chunk, .name = "sctp_sf_discard_chunk"}, \} /* TYPE_SCTP_COOKIE_ACK */#define TYPE_SCTP_ECN_ECNE { \	/* SCTP_STATE_EMPTY */ \	{.fn = sctp_sf_ootb, .name = "sctp_sf_ootb"}, \	/* 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_do_ecne, .name = "sctp_sf_do_ecne"}, \	/* SCTP_STATE_ESTABLISHED */ \	{.fn = sctp_sf_do_ecne, .name = "sctp_sf_do_ecne"}, \	/* SCTP_STATE_SHUTDOWN_PENDING */ \	{.fn = sctp_sf_do_ecne, .name = "sctp_sf_do_ecne"}, \	/* SCTP_STATE_SHUTDOWN_SENT */ \	{.fn = sctp_sf_do_ecne, .name = "sctp_sf_do_ecne"}, \	/* SCTP_STATE_SHUTDOWN_RECEIVED */ \	{.fn = sctp_sf_do_ecne, .name = "sctp_sf_do_ecne"}, \	/* SCTP_STATE_SHUTDOWN_ACK_SENT */ \	{.fn = sctp_sf_bug, .name = "sctp_sf_bug"}, \} /* TYPE_SCTP_ECN_ECNE */#define TYPE_SCTP_ECN_CWR { \	/* SCTP_STATE_EMPTY */ \	{.fn = sctp_sf_ootb, .name = "sctp_sf_ootb"}, \	/* SCTP_STATE_CLOSED */ \	{.fn = sctp_sf_discard_chunk, .name = "sctp_sf_discard_chunk"}, \	/* SCTP_STATE_COOKIE_WAIT */ \	{.fn = sctp_sf_discard_chunk, .name = "sctp_sf_discard_chunk"}, \	/* SCTP_STATE_COOKIE_ECHOED */ \	{.fn = sctp_sf_discard_chunk, .name = "sctp_sf_discard_chunk"}, \	/* SCTP_STATE_ESTABLISHED */ \	{.fn = sctp_sf_do_ecn_cwr, .name = "sctp_sf_do_ecn_cwr"}, \	/* SCTP_STATE_SHUTDOWN_PENDING */ \	{.fn = sctp_sf_do_ecn_cwr, .name = "sctp_sf_do_ecn_cwr"}, \	/* SCTP_STATE_SHUTDOWN_SENT */ \	{.fn = sctp_sf_do_ecn_cwr, .name = "sctp_sf_do_ecn_cwr"}, \	/* SCTP_STATE_SHUTDOWN_RECEIVED */ \	{.fn = sctp_sf_discard_chunk, .name = "sctp_sf_discard_chunk"}, \	/* SCTP_STATE_SHUTDOWN_ACK_SENT */ \	{.fn = sctp_sf_bug, .name = "sctp_sf_bug"}, \} /* TYPE_SCTP_ECN_CWR */#define TYPE_SCTP_SHUTDOWN_COMPLETE { \	/* SCTP_STATE_EMPTY */ \	{.fn = sctp_sf_ootb, .name = "sctp_sf_ootb"}, \	/* SCTP_STATE_CLOSED */ \	{.fn = sctp_sf_discard_chunk, .name = "sctp_sf_discard_chunk"}, \	/* SCTP_STATE_COOKIE_WAIT */ \	{.fn = sctp_sf_discard_chunk, .name = "sctp_sf_discard_chunk"}, \	/* SCTP_STATE_COOKIE_ECHOED */ \	{.fn = sctp_sf_discard_chunk, .name = "sctp_sf_discard_chunk"}, \	/* SCTP_STATE_ESTABLISHED */ \	{.fn = sctp_sf_discard_chunk, .name = "sctp_sf_discard_chunk"}, \	/* SCTP_STATE_SHUTDOWN_PENDING */ \	{.fn = sctp_sf_discard_chunk, .name = "sctp_sf_discard_chunk"}, \	/* SCTP_STATE_SHUTDOWN_SENT */ \	{.fn = sctp_sf_discard_chunk, .name = "sctp_sf_discard_chunk"}, \	/* SCTP_STATE_SHUTDOWN_RECEIVED */ \	{.fn = sctp_sf_discard_chunk, .name = "sctp_sf_discard_chunk"}, \	/* SCTP_STATE_SHUTDOWN_ACK_SENT */ \	{.fn = sctp_sf_do_4_C, .name = "sctp_sf_do_4_C"}, \} /* TYPE_SCTP_SHUTDOWN_COMPLETE *//* The primary index for this table is the chunk type. * The secondary index for this table is the state. * * For base protocol (RFC 2960). */const sctp_sm_table_entry_t chunk_event_table[SCTP_NUM_BASE_CHUNK_TYPES][SCTP_STATE_NUM_STATES] = {	TYPE_SCTP_DATA,	TYPE_SCTP_INIT,	TYPE_SCTP_INIT_ACK,	TYPE_SCTP_SACK,	TYPE_SCTP_HEARTBEAT,	TYPE_SCTP_HEARTBEAT_ACK,	TYPE_SCTP_ABORT,	TYPE_SCTP_SHUTDOWN,	TYPE_SCTP_SHUTDOWN_ACK,	TYPE_SCTP_ERROR,	TYPE_SCTP_COOKIE_ECHO,	TYPE_SCTP_COOKIE_ACK,	TYPE_SCTP_ECN_ECNE,	TYPE_SCTP_ECN_CWR,	TYPE_SCTP_SHUTDOWN_COMPLETE,}; /* state_fn_t chunk_event_table[][] */#define TYPE_SCTP_ASCONF { \	/* SCTP_STATE_EMPTY */ \	{.fn = sctp_sf_ootb, .name = "sctp_sf_ootb"}, \	/* SCTP_STATE_CLOSED */ \	{.fn = sctp_sf_discard_chunk, .name = "sctp_sf_discard_chunk"}, \	/* SCTP_STATE_COOKIE_WAIT */ \	{.fn = sctp_sf_discard_chunk, .name = "sctp_sf_discard_chunk"}, \	/* SCTP_STATE_COOKIE_ECHOED */ \	{.fn = sctp_sf_discard_chunk, .name = "sctp_sf_discard_chunk"}, \	/* SCTP_STATE_ESTABLISHED */ \	{.fn = sctp_sf_do_asconf, .name = "sctp_sf_do_asconf"}, \	/* SCTP_STATE_SHUTDOWN_PENDING */ \	{.fn = sctp_sf_discard_chunk, .name = "sctp_sf_discard_chunk"}, \	/* SCTP_STATE_SHUTDOWN_SENT */ \	{.fn = sctp_sf_discard_chunk, .name = "sctp_sf_discard_chunk"}, \	/* SCTP_STATE_SHUTDOWN_RECEIVED */ \	{.fn = sctp_sf_discard_chunk, .name = "sctp_sf_discard_chunk"}, \	/* SCTP_STATE_SHUTDOWN_ACK_SENT */ \	{.fn = sctp_sf_discard_chunk, .name = "sctp_sf_discard_chunk"}, \} /* TYPE_SCTP_ASCONF */#define TYPE_SCTP_ASCONF_ACK { \	/* SCTP_STATE_EMPTY */ \	{.fn = sctp_sf_ootb, .name = "sctp_sf_ootb"}, \	/* SCTP_STATE_CLOSED */ \	{.fn = sctp_sf_discard_chunk, .name = "sctp_sf_discard_chunk"}, \	/* SCTP_STATE_COOKIE_WAIT */ \	{.fn = sctp_sf_discard_chunk, .name = "sctp_sf_discard_chunk"}, \	/* SCTP_STATE_COOKIE_ECHOED */ \	{.fn = sctp_sf_discard_chunk, .name = "sctp_sf_discard_chunk"}, \	/* SCTP_STATE_ESTABLISHED */ \	{.fn = sctp_sf_do_asconf_ack, .name = "sctp_sf_do_asconf_ack"}, \	/* SCTP_STATE_SHUTDOWN_PENDING */ \	{.fn = sctp_sf_discard_chunk, .name = "sctp_sf_discard_chunk"}, \	/* SCTP_STATE_SHUTDOWN_SENT */ \	{.fn = sctp_sf_discard_chunk, .name = "sctp_sf_discard_chunk"}, \	/* SCTP_STATE_SHUTDOWN_RECEIVED */ \	{.fn = sctp_sf_discard_chunk, .name = "sctp_sf_discard_chunk"}, \	/* SCTP_STATE_SHUTDOWN_ACK_SENT */ \	{.fn = sctp_sf_discard_chunk, .name = "sctp_sf_discard_chunk"}, \} /* TYPE_SCTP_ASCONF_ACK *//* The primary index for this table is the chunk type. * The secondary index for this table is the state. */const sctp_sm_table_entry_t addip_chunk_event_table[SCTP_NUM_ADDIP_CHUNK_TYPES][SCTP_STATE_NUM_STATES] = {	TYPE_SCTP_ASCONF,	TYPE_SCTP_ASCONF_ACK,}; /*state_fn_t addip_chunk_event_table[][] */#define TYPE_SCTP_FWD_TSN { \	/* SCTP_STATE_EMPTY */ \	{.fn = sctp_sf_ootb, .name = "sctp_sf_ootb"}, \	/* SCTP_STATE_CLOSED */ \	{.fn = sctp_sf_tabort_8_4_8, .name = "sctp_sf_tabort_8_4_8"}, \	/* SCTP_STATE_COOKIE_WAIT */ \	{.fn = sctp_sf_discard_chunk, .name = "sctp_sf_discard_chunk"}, \	/* SCTP_STATE_COOKIE_ECHOED */ \	{.fn = sctp_sf_discard_chunk, .name = "sctp_sf_discard_chunk"}, \	/* SCTP_STATE_ESTABLISHED */ \	{.fn = sctp_sf_eat_fwd_tsn, .name = "sctp_sf_eat_fwd_tsn"}, \	/* SCTP_STATE_SHUTDOWN_PENDING */ \	{.fn = sctp_sf_eat_fwd_tsn, .name = "sctp_sf_eat_fwd_tsn"}, \	/* SCTP_STATE_SHUTDOWN_SENT */ \	{.fn = sctp_sf_eat_fwd_tsn_fast, .name = "sctp_sf_eat_fwd_tsn_fast"}, \	/* SCTP_STATE_SHUTDOWN_RECEIVED */ \	{.fn = sctp_sf_discard_chunk, .name = "sctp_sf_discard_chunk"}, \	/* SCTP_STATE_SHUTDOWN_ACK_SENT */ \	{.fn = sctp_sf_discard_chunk, .name = "sctp_sf_discard_chunk"}, \} /* TYPE_SCTP_FWD_TSN *//* The primary index for this table is the chunk type. * The secondary index for this table is the state. */const sctp_sm_table_entry_t prsctp_chunk_event_table[SCTP_NUM_PRSCTP_CHUNK_TYPES][SCTP_STATE_NUM_STATES] = {	TYPE_SCTP_FWD_TSN,}; /*state_fn_t prsctp_chunk_event_table[][] */static const sctp_sm_table_entry_tchunk_event_table_unknown[SCTP_STATE_NUM_STATES] = {	/* SCTP_STATE_EMPTY */	{.fn = sctp_sf_ootb, .name = "sctp_sf_ootb"},	/* SCTP_STATE_CLOSED */	{.fn = sctp_sf_tabort_8_4_8, .name = "sctp_sf_tabort_8_4_8"},	/* SCTP_STATE_COOKIE_WAIT */	{.fn = sctp_sf_unk_chunk, .name = "sctp_sf_unk_chunk"},	/* SCTP_STATE_COOKIE_ECHOED */	{.fn = sctp_sf_unk_chunk, .name = "sctp_sf_unk_chunk"},	/* SCTP_STATE_ESTABLISHED */	{.fn = sctp_sf_unk_chunk, .name = "sctp_sf_unk_chunk"},	/* SCTP_STATE_SHUTDOWN_PENDING */	{.fn = sctp_sf_unk_chunk, .name = "sctp_sf_unk_chunk"},	/* SCTP_STATE_SHUTDOWN_SENT */	{.fn = sctp_sf_unk_chunk, .name = "sctp_sf_unk_chunk"},	/* SCTP_STATE_SHUTDOWN_RECEIVED */	{.fn = sctp_sf_unk_chunk, .name = "sctp_sf_unk_chunk"},	/* SCTP_STATE_SHUTDOWN_ACK_SENT */	{.fn = sctp_sf_unk_chunk, .name = "sctp_sf_unk_chunk"},};	/* chunk unknown */#define TYPE_SCTP_PRIMITIVE_ASSOCIATE  { \	/* SCTP_STATE_EMPTY */ \	{.fn = sctp_sf_bug, .name = "sctp_sf_bug"}, \	/* SCTP_STATE_CLOSED */ \	{.fn = sctp_sf_do_prm_asoc, .name = "sctp_sf_do_prm_asoc"}, \	/* SCTP_STATE_COOKIE_WAIT */ \	{.fn = sctp_sf_not_impl, .name = "sctp_sf_not_impl"}, \	/* SCTP_STATE_COOKIE_ECHOED */ \	{.fn = sctp_sf_not_impl, .name = "sctp_sf_not_impl"}, \	/* SCTP_STATE_ESTABLISHED */ \	{.fn = sctp_sf_not_impl, .name = "sctp_sf_not_impl"}, \	/* SCTP_STATE_SHUTDOWN_PENDING */ \	{.fn = sctp_sf_not_impl, .name = "sctp_sf_not_impl"}, \	/* SCTP_STATE_SHUTDOWN_SENT */ \	{.fn = sctp_sf_not_impl, .name = "sctp_sf_not_impl"}, \	/* SCTP_STATE_SHUTDOWN_RECEIVED */ \	{.fn = sctp_sf_not_impl, .name = "sctp_sf_not_impl"}, \	/* SCTP_STATE_SHUTDOWN_ACK_SENT */ \	{.fn = sctp_sf_not_impl, .name = "sctp_sf_not_impl"}, \} /* TYPE_SCTP_PRIMITIVE_ASSOCIATE */#define TYPE_SCTP_PRIMITIVE_SHUTDOWN  { \	/* 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_cookie_wait_prm_shutdown, \	 .name = "sctp_sf_cookie_wait_prm_shutdown"}, \	/* SCTP_STATE_COOKIE_ECHOED */ \	{.fn = sctp_sf_cookie_echoed_prm_shutdown, \	 .name = "sctp_sf_cookie_echoed_prm_shutdown"},\	/* SCTP_STATE_ESTABLISHED */ \	{.fn = sctp_sf_do_9_2_prm_shutdown, \	 .name = "sctp_sf_do_9_2_prm_shutdown"}, \	/* SCTP_STATE_SHUTDOWN_PENDING */ \	{.fn = sctp_sf_ignore_primitive, .name = "sctp_sf_ignore_primitive"}, \	/* SCTP_STATE_SHUTDOWN_SENT */ \	{.fn = sctp_sf_ignore_primitive, .name = "sctp_sf_ignore_primitive"}, \	/* SCTP_STATE_SHUTDOWN_RECEIVED */ \	{.fn = sctp_sf_ignore_primitive, .name = "sctp_sf_ignore_primitive"}, \	/* SCTP_STATE_SHUTDOWN_ACK_SENT */ \	{.fn = sctp_sf_ignore_primitive, .name = "sctp_sf_ignore_primitive"}, \} /* TYPE_SCTP_PRIMITIVE_SHUTDOWN */#define TYPE_SCTP_PRIMITIVE_ABORT  { \	/* 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_cookie_wait_prm_abort, \	.name = "sctp_sf_cookie_wait_prm_abort"}, \	/* SCTP_STATE_COOKIE_ECHOED */ \	{.fn = sctp_sf_cookie_echoed_prm_abort, \	.name = "sctp_sf_cookie_echoed_prm_abort"}, \	/* SCTP_STATE_ESTABLISHED */ \	{.fn = sctp_sf_do_9_1_prm_abort, \	.name = "sctp_sf_do_9_1_prm_abort"}, \	/* SCTP_STATE_SHUTDOWN_PENDING */ \	{.fn = sctp_sf_shutdown_pending_prm_abort, \	.name = "sctp_sf_shutdown_pending_prm_abort"}, \	/* SCTP_STATE_SHUTDOWN_SENT */ \	{.fn = sctp_sf_shutdown_sent_prm_abort, \	.name = "sctp_sf_shutdown_sent_prm_abort"}, \	/* SCTP_STATE_SHUTDOWN_RECEIVED */ \	{.fn = sctp_sf_do_9_1_prm_abort, \	.name = "sctp_sf_do_9_1_prm_abort"}, \	/* SCTP_STATE_SHUTDOWN_ACK_SENT */ \	{.fn = sctp_sf_shutdown_ack_sent_prm_abort, \	.name = "sctp_sf_shutdown_ack_sent_prm_abort"}, \} /* TYPE_SCTP_PRIMITIVE_ABORT */#define TYPE_SCTP_PRIMITIVE_SEND  { \	/* 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_do_prm_send, .name = "sctp_sf_do_prm_send"}, \	/* SCTP_STATE_COOKIE_ECHOED */ \	{.fn = sctp_sf_do_prm_send, .name = "sctp_sf_do_prm_send"}, \	/* SCTP_STATE_ESTABLISHED */ \	{.fn = sctp_sf_do_prm_send, .name = "sctp_sf_do_prm_send"}, \	/* 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_SEND */#define TYPE_SCTP_PRIMITIVE_REQUESTHEARTBEAT  { \	/* 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_do_prm_requestheartbeat,		      \	 .name = "sctp_sf_do_prm_requestheartbeat"},          \	/* SCTP_STATE_COOKIE_ECHOED */ \	{.fn = sctp_sf_do_prm_requestheartbeat,		      \	 .name = "sctp_sf_do_prm_requestheartbeat"},          \	/* SCTP_STATE_ESTABLISHED */ \	{.fn = sctp_sf_do_prm_requestheartbeat,		      \	 .name = "sctp_sf_do_prm_requestheartbeat"},          \

⌨️ 快捷键说明

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