Commit b50db919 authored by David S. Miller's avatar David S. Miller

Merge branch 'sctp-remove-typedefs-from-structures-part-6'

Xin Long says:

====================
sctp: remove typedefs from structures part 6

As we know, typedef is suggested not to use in kernel, even checkpatch.pl
also gives warnings about it. Now sctp is using it for many structures.

All this kind of typedef's using should be removed. This patchset is the
part 6 to remove all typedefs in include/net/sctp/structs.h, command.h
and sm.h.

Just as the part 1-5, No any code's logic would be changed in these patches,
only cleaning up.

Note that this is the last part for this typedef cleaning up. after this
patchset, no more inappropriate typedefs in sctp. It's also to tidy some
codes when removing them, like fixing many indents, reodering some local
params, especially in the last 2 patches.
====================
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parents 3b2b69ef 327c0dab
...@@ -40,7 +40,7 @@ ...@@ -40,7 +40,7 @@
#include <net/sctp/structs.h> #include <net/sctp/structs.h>
typedef enum { enum sctp_verb {
SCTP_CMD_NOP = 0, /* Do nothing. */ SCTP_CMD_NOP = 0, /* Do nothing. */
SCTP_CMD_NEW_ASOC, /* Register a new association. */ SCTP_CMD_NEW_ASOC, /* Register a new association. */
SCTP_CMD_DELETE_TCB, /* Delete the current association. */ SCTP_CMD_DELETE_TCB, /* Delete the current association. */
...@@ -108,16 +108,16 @@ typedef enum { ...@@ -108,16 +108,16 @@ typedef enum {
SCTP_CMD_PURGE_ASCONF_QUEUE, /* Purge all asconf queues.*/ SCTP_CMD_PURGE_ASCONF_QUEUE, /* Purge all asconf queues.*/
SCTP_CMD_SET_ASOC, /* Restore association context */ SCTP_CMD_SET_ASOC, /* Restore association context */
SCTP_CMD_LAST SCTP_CMD_LAST
} sctp_verb_t; };
/* How many commands can you put in an sctp_cmd_seq_t? /* How many commands can you put in an struct sctp_cmd_seq?
* This is a rather arbitrary number, ideally derived from a careful * This is a rather arbitrary number, ideally derived from a careful
* analysis of the state functions, but in reality just taken from * analysis of the state functions, but in reality just taken from
* thin air in the hopes othat we don't trigger a kernel panic. * thin air in the hopes othat we don't trigger a kernel panic.
*/ */
#define SCTP_MAX_NUM_COMMANDS 20 #define SCTP_MAX_NUM_COMMANDS 20
typedef union { union sctp_arg {
void *zero_all; /* Set to NULL to clear the entire union */ void *zero_all; /* Set to NULL to clear the entire union */
__s32 i32; __s32 i32;
__u32 u32; __u32 u32;
...@@ -137,24 +137,24 @@ typedef union { ...@@ -137,24 +137,24 @@ typedef union {
struct sctp_packet *packet; struct sctp_packet *packet;
struct sctp_sackhdr *sackh; struct sctp_sackhdr *sackh;
struct sctp_datamsg *msg; struct sctp_datamsg *msg;
} sctp_arg_t; };
/* We are simulating ML type constructors here. /* We are simulating ML type constructors here.
* *
* SCTP_ARG_CONSTRUCTOR(NAME, TYPE, ELT) builds a function called * SCTP_ARG_CONSTRUCTOR(NAME, TYPE, ELT) builds a function called
* SCTP_NAME() which takes an argument of type TYPE and returns an * SCTP_NAME() which takes an argument of type TYPE and returns an
* sctp_arg_t. It does this by inserting the sole argument into the * union sctp_arg. It does this by inserting the sole argument into
* ELT union element of a local sctp_arg_t. * the ELT union element of a local union sctp_arg.
* *
* E.g., SCTP_ARG_CONSTRUCTOR(I32, __s32, i32) builds SCTP_I32(arg), * E.g., SCTP_ARG_CONSTRUCTOR(I32, __s32, i32) builds SCTP_I32(arg),
* which takes an __s32 and returns a sctp_arg_t containing the * which takes an __s32 and returns a union sctp_arg containing the
* __s32. So, after foo = SCTP_I32(arg), foo.i32 == arg. * __s32. So, after foo = SCTP_I32(arg), foo.i32 == arg.
*/ */
#define SCTP_ARG_CONSTRUCTOR(name, type, elt) \ #define SCTP_ARG_CONSTRUCTOR(name, type, elt) \
static inline sctp_arg_t \ static inline union sctp_arg \
SCTP_## name (type arg) \ SCTP_## name (type arg) \
{ sctp_arg_t retval;\ { union sctp_arg retval;\
retval.zero_all = NULL;\ retval.zero_all = NULL;\
retval.elt = arg;\ retval.elt = arg;\
return retval;\ return retval;\
...@@ -179,39 +179,39 @@ SCTP_ARG_CONSTRUCTOR(PACKET, struct sctp_packet *, packet) ...@@ -179,39 +179,39 @@ SCTP_ARG_CONSTRUCTOR(PACKET, struct sctp_packet *, packet)
SCTP_ARG_CONSTRUCTOR(SACKH, struct sctp_sackhdr *, sackh) SCTP_ARG_CONSTRUCTOR(SACKH, struct sctp_sackhdr *, sackh)
SCTP_ARG_CONSTRUCTOR(DATAMSG, struct sctp_datamsg *, msg) SCTP_ARG_CONSTRUCTOR(DATAMSG, struct sctp_datamsg *, msg)
static inline sctp_arg_t SCTP_FORCE(void) static inline union sctp_arg SCTP_FORCE(void)
{ {
return SCTP_I32(1); return SCTP_I32(1);
} }
static inline sctp_arg_t SCTP_NOFORCE(void) static inline union sctp_arg SCTP_NOFORCE(void)
{ {
return SCTP_I32(0); return SCTP_I32(0);
} }
static inline sctp_arg_t SCTP_NULL(void) static inline union sctp_arg SCTP_NULL(void)
{ {
sctp_arg_t retval; union sctp_arg retval;
retval.zero_all = NULL; retval.zero_all = NULL;
return retval; return retval;
} }
typedef struct { struct sctp_cmd {
sctp_arg_t obj; union sctp_arg obj;
sctp_verb_t verb; enum sctp_verb verb;
} sctp_cmd_t; };
typedef struct { struct sctp_cmd_seq {
sctp_cmd_t cmds[SCTP_MAX_NUM_COMMANDS]; struct sctp_cmd cmds[SCTP_MAX_NUM_COMMANDS];
sctp_cmd_t *last_used_slot; struct sctp_cmd *last_used_slot;
sctp_cmd_t *next_cmd; struct sctp_cmd *next_cmd;
} sctp_cmd_seq_t; };
/* Initialize a block of memory as a command sequence. /* Initialize a block of memory as a command sequence.
* Return 0 if the initialization fails. * Return 0 if the initialization fails.
*/ */
static inline int sctp_init_cmd_seq(sctp_cmd_seq_t *seq) static inline int sctp_init_cmd_seq(struct sctp_cmd_seq *seq)
{ {
/* cmds[] is filled backwards to simplify the overflow BUG() check */ /* cmds[] is filled backwards to simplify the overflow BUG() check */
seq->last_used_slot = seq->cmds + SCTP_MAX_NUM_COMMANDS; seq->last_used_slot = seq->cmds + SCTP_MAX_NUM_COMMANDS;
...@@ -220,15 +220,15 @@ static inline int sctp_init_cmd_seq(sctp_cmd_seq_t *seq) ...@@ -220,15 +220,15 @@ static inline int sctp_init_cmd_seq(sctp_cmd_seq_t *seq)
} }
/* Add a command to an sctp_cmd_seq_t. /* Add a command to an struct sctp_cmd_seq.
* *
* Use the SCTP_* constructors defined by SCTP_ARG_CONSTRUCTOR() above * Use the SCTP_* constructors defined by SCTP_ARG_CONSTRUCTOR() above
* to wrap data which goes in the obj argument. * to wrap data which goes in the obj argument.
*/ */
static inline void sctp_add_cmd_sf(sctp_cmd_seq_t *seq, sctp_verb_t verb, static inline void sctp_add_cmd_sf(struct sctp_cmd_seq *seq,
sctp_arg_t obj) enum sctp_verb verb, union sctp_arg obj)
{ {
sctp_cmd_t *cmd = seq->last_used_slot - 1; struct sctp_cmd *cmd = seq->last_used_slot - 1;
BUG_ON(cmd < seq->cmds); BUG_ON(cmd < seq->cmds);
...@@ -240,7 +240,7 @@ static inline void sctp_add_cmd_sf(sctp_cmd_seq_t *seq, sctp_verb_t verb, ...@@ -240,7 +240,7 @@ static inline void sctp_add_cmd_sf(sctp_cmd_seq_t *seq, sctp_verb_t verb,
/* Return the next command structure in an sctp_cmd_seq. /* Return the next command structure in an sctp_cmd_seq.
* Return NULL at the end of the sequence. * Return NULL at the end of the sequence.
*/ */
static inline sctp_cmd_t *sctp_next_cmd(sctp_cmd_seq_t *seq) static inline struct sctp_cmd *sctp_next_cmd(struct sctp_cmd_seq *seq)
{ {
if (seq->next_cmd <= seq->last_used_slot) if (seq->next_cmd <= seq->last_used_slot)
return NULL; return NULL;
......
...@@ -550,7 +550,8 @@ static inline int sctp_ep_hashfn(struct net *net, __u16 lport) ...@@ -550,7 +550,8 @@ static inline int sctp_ep_hashfn(struct net *net, __u16 lport)
/* Is a socket of this style? */ /* Is a socket of this style? */
#define sctp_style(sk, style) __sctp_style((sk), (SCTP_SOCKET_##style)) #define sctp_style(sk, style) __sctp_style((sk), (SCTP_SOCKET_##style))
static inline int __sctp_style(const struct sock *sk, sctp_socket_type_t style) static inline int __sctp_style(const struct sock *sk,
enum sctp_socket_type style)
{ {
return sctp_sk(sk)->type == style; return sctp_sk(sk)->type == style;
} }
......
This diff is collapsed.
...@@ -150,18 +150,18 @@ extern struct sctp_globals { ...@@ -150,18 +150,18 @@ extern struct sctp_globals {
#define sctp_checksum_disable (sctp_globals.checksum_disable) #define sctp_checksum_disable (sctp_globals.checksum_disable)
/* SCTP Socket type: UDP or TCP style. */ /* SCTP Socket type: UDP or TCP style. */
typedef enum { enum sctp_socket_type {
SCTP_SOCKET_UDP = 0, SCTP_SOCKET_UDP = 0,
SCTP_SOCKET_UDP_HIGH_BANDWIDTH, SCTP_SOCKET_UDP_HIGH_BANDWIDTH,
SCTP_SOCKET_TCP SCTP_SOCKET_TCP
} sctp_socket_type_t; };
/* Per socket SCTP information. */ /* Per socket SCTP information. */
struct sctp_sock { struct sctp_sock {
/* inet_sock has to be the first member of sctp_sock */ /* inet_sock has to be the first member of sctp_sock */
struct inet_sock inet; struct inet_sock inet;
/* What kind of a socket is this? */ /* What kind of a socket is this? */
sctp_socket_type_t type; enum sctp_socket_type type;
/* PF_ family specific functions. */ /* PF_ family specific functions. */
struct sctp_pf *pf; struct sctp_pf *pf;
...@@ -371,12 +371,12 @@ union sctp_params { ...@@ -371,12 +371,12 @@ union sctp_params {
* chunk is sent and the destination transport address to which this * chunk is sent and the destination transport address to which this
* HEARTBEAT is sent (see Section 8.3). * HEARTBEAT is sent (see Section 8.3).
*/ */
typedef struct sctp_sender_hb_info { struct sctp_sender_hb_info {
struct sctp_paramhdr param_hdr; struct sctp_paramhdr param_hdr;
union sctp_addr daddr; union sctp_addr daddr;
unsigned long sent_at; unsigned long sent_at;
__u64 hb_nonce; __u64 hb_nonce;
} sctp_sender_hb_info_t; };
int sctp_stream_init(struct sctp_stream *stream, __u16 outcnt, __u16 incnt, int sctp_stream_init(struct sctp_stream *stream, __u16 outcnt, __u16 incnt,
gfp_t gfp); gfp_t gfp);
...@@ -657,8 +657,6 @@ struct sctp_sockaddr_entry { ...@@ -657,8 +657,6 @@ struct sctp_sockaddr_entry {
#define SCTP_ADDRESS_TICK_DELAY 500 #define SCTP_ADDRESS_TICK_DELAY 500
typedef struct sctp_chunk *(sctp_packet_phandler_t)(struct sctp_association *);
/* This structure holds lists of chunks as we are assembling for /* This structure holds lists of chunks as we are assembling for
* transmission. * transmission.
*/ */
...@@ -1144,10 +1142,10 @@ int sctp_is_ep_boundall(struct sock *sk); ...@@ -1144,10 +1142,10 @@ int sctp_is_ep_boundall(struct sock *sk);
/* What type of endpoint? */ /* What type of endpoint? */
typedef enum { enum sctp_endpoint_type {
SCTP_EP_TYPE_SOCKET, SCTP_EP_TYPE_SOCKET,
SCTP_EP_TYPE_ASSOCIATION, SCTP_EP_TYPE_ASSOCIATION,
} sctp_endpoint_type_t; };
/* /*
* A common base class to bridge the implmentation view of a * A common base class to bridge the implmentation view of a
...@@ -1171,7 +1169,7 @@ struct sctp_ep_common { ...@@ -1171,7 +1169,7 @@ struct sctp_ep_common {
int hashent; int hashent;
/* Runtime type information. What kind of endpoint is this? */ /* Runtime type information. What kind of endpoint is this? */
sctp_endpoint_type_t type; enum sctp_endpoint_type type;
/* Some fields to help us manage this object. /* Some fields to help us manage this object.
* refcnt - Reference count access to this object. * refcnt - Reference count access to this object.
...@@ -1987,16 +1985,16 @@ int sctp_cmp_addr_exact(const union sctp_addr *ss1, ...@@ -1987,16 +1985,16 @@ int sctp_cmp_addr_exact(const union sctp_addr *ss1,
struct sctp_chunk *sctp_get_ecne_prepend(struct sctp_association *asoc); struct sctp_chunk *sctp_get_ecne_prepend(struct sctp_association *asoc);
/* A convenience structure to parse out SCTP specific CMSGs. */ /* A convenience structure to parse out SCTP specific CMSGs. */
typedef struct sctp_cmsgs { struct sctp_cmsgs {
struct sctp_initmsg *init; struct sctp_initmsg *init;
struct sctp_sndrcvinfo *srinfo; struct sctp_sndrcvinfo *srinfo;
struct sctp_sndinfo *sinfo; struct sctp_sndinfo *sinfo;
} sctp_cmsgs_t; };
/* Structure for tracking memory objects */ /* Structure for tracking memory objects */
typedef struct { struct sctp_dbg_objcnt_entry {
char *label; char *label;
atomic_t *counter; atomic_t *counter;
} sctp_dbg_objcnt_entry_t; };
#endif /* __sctp_structs_h__ */ #endif /* __sctp_structs_h__ */
...@@ -57,7 +57,7 @@ SCTP_DBG_OBJCNT(keys); ...@@ -57,7 +57,7 @@ SCTP_DBG_OBJCNT(keys);
/* An array to make it easy to pretty print the debug information /* An array to make it easy to pretty print the debug information
* to the proc fs. * to the proc fs.
*/ */
static sctp_dbg_objcnt_entry_t sctp_dbg_objcnt[] = { static struct sctp_dbg_objcnt_entry sctp_dbg_objcnt[] = {
SCTP_DBG_OBJCNT_ENTRY(sock), SCTP_DBG_OBJCNT_ENTRY(sock),
SCTP_DBG_OBJCNT_ENTRY(ep), SCTP_DBG_OBJCNT_ENTRY(ep),
SCTP_DBG_OBJCNT_ENTRY(assoc), SCTP_DBG_OBJCNT_ENTRY(assoc),
......
...@@ -127,12 +127,13 @@ static const struct file_operations sctpprobe_fops = { ...@@ -127,12 +127,13 @@ static const struct file_operations sctpprobe_fops = {
.llseek = noop_llseek, .llseek = noop_llseek,
}; };
static sctp_disposition_t jsctp_sf_eat_sack(struct net *net, static enum sctp_disposition jsctp_sf_eat_sack(
const struct sctp_endpoint *ep, struct net *net,
const struct sctp_association *asoc, const struct sctp_endpoint *ep,
const union sctp_subtype type, const struct sctp_association *asoc,
void *arg, const union sctp_subtype type,
sctp_cmd_seq_t *commands) void *arg,
struct sctp_cmd_seq *commands)
{ {
struct sctp_chunk *chunk = arg; struct sctp_chunk *chunk = arg;
struct sk_buff *skb = chunk->skb; struct sk_buff *skb = chunk->skb;
......
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
...@@ -45,27 +45,27 @@ ...@@ -45,27 +45,27 @@
#include <net/sctp/sctp.h> #include <net/sctp/sctp.h>
#include <net/sctp/sm.h> #include <net/sctp/sm.h>
static const sctp_sm_table_entry_t static const struct sctp_sm_table_entry
primitive_event_table[SCTP_NUM_PRIMITIVE_TYPES][SCTP_STATE_NUM_STATES]; primitive_event_table[SCTP_NUM_PRIMITIVE_TYPES][SCTP_STATE_NUM_STATES];
static const sctp_sm_table_entry_t static const struct sctp_sm_table_entry
other_event_table[SCTP_NUM_OTHER_TYPES][SCTP_STATE_NUM_STATES]; other_event_table[SCTP_NUM_OTHER_TYPES][SCTP_STATE_NUM_STATES];
static const sctp_sm_table_entry_t static const struct sctp_sm_table_entry
timeout_event_table[SCTP_NUM_TIMEOUT_TYPES][SCTP_STATE_NUM_STATES]; timeout_event_table[SCTP_NUM_TIMEOUT_TYPES][SCTP_STATE_NUM_STATES];
static const sctp_sm_table_entry_t *sctp_chunk_event_lookup( static const struct sctp_sm_table_entry *sctp_chunk_event_lookup(
struct net *net, struct net *net,
enum sctp_cid cid, enum sctp_cid cid,
enum sctp_state state); enum sctp_state state);
static const sctp_sm_table_entry_t bug = { static const struct sctp_sm_table_entry bug = {
.fn = sctp_sf_bug, .fn = sctp_sf_bug,
.name = "sctp_sf_bug" .name = "sctp_sf_bug"
}; };
#define DO_LOOKUP(_max, _type, _table) \ #define DO_LOOKUP(_max, _type, _table) \
({ \ ({ \
const sctp_sm_table_entry_t *rtn; \ const struct sctp_sm_table_entry *rtn; \
\ \
if ((event_subtype._type > (_max))) { \ if ((event_subtype._type > (_max))) { \
pr_warn("table %p possible attack: event %d exceeds max %d\n", \ pr_warn("table %p possible attack: event %d exceeds max %d\n", \
...@@ -77,7 +77,7 @@ static const sctp_sm_table_entry_t bug = { ...@@ -77,7 +77,7 @@ static const sctp_sm_table_entry_t bug = {
rtn; \ rtn; \
}) })
const sctp_sm_table_entry_t *sctp_sm_lookup_event( const struct sctp_sm_table_entry *sctp_sm_lookup_event(
struct net *net, struct net *net,
enum sctp_event event_type, enum sctp_event event_type,
enum sctp_state state, enum sctp_state state,
...@@ -394,7 +394,8 @@ const sctp_sm_table_entry_t *sctp_sm_lookup_event( ...@@ -394,7 +394,8 @@ const sctp_sm_table_entry_t *sctp_sm_lookup_event(
* *
* For base protocol (RFC 2960). * For base protocol (RFC 2960).
*/ */
static const sctp_sm_table_entry_t chunk_event_table[SCTP_NUM_BASE_CHUNK_TYPES][SCTP_STATE_NUM_STATES] = { static const struct sctp_sm_table_entry
chunk_event_table[SCTP_NUM_BASE_CHUNK_TYPES][SCTP_STATE_NUM_STATES] = {
TYPE_SCTP_DATA, TYPE_SCTP_DATA,
TYPE_SCTP_INIT, TYPE_SCTP_INIT,
TYPE_SCTP_INIT_ACK, TYPE_SCTP_INIT_ACK,
...@@ -453,7 +454,8 @@ static const sctp_sm_table_entry_t chunk_event_table[SCTP_NUM_BASE_CHUNK_TYPES][ ...@@ -453,7 +454,8 @@ static const sctp_sm_table_entry_t chunk_event_table[SCTP_NUM_BASE_CHUNK_TYPES][
/* The primary index for this table is the chunk type. /* The primary index for this table is the chunk type.
* The secondary index for this table is the state. * The secondary index for this table is the state.
*/ */
static const sctp_sm_table_entry_t addip_chunk_event_table[SCTP_NUM_ADDIP_CHUNK_TYPES][SCTP_STATE_NUM_STATES] = { static const struct sctp_sm_table_entry
addip_chunk_event_table[SCTP_NUM_ADDIP_CHUNK_TYPES][SCTP_STATE_NUM_STATES] = {
TYPE_SCTP_ASCONF, TYPE_SCTP_ASCONF,
TYPE_SCTP_ASCONF_ACK, TYPE_SCTP_ASCONF_ACK,
}; /*state_fn_t addip_chunk_event_table[][] */ }; /*state_fn_t addip_chunk_event_table[][] */
...@@ -480,7 +482,8 @@ static const sctp_sm_table_entry_t addip_chunk_event_table[SCTP_NUM_ADDIP_CHUNK_ ...@@ -480,7 +482,8 @@ static const sctp_sm_table_entry_t addip_chunk_event_table[SCTP_NUM_ADDIP_CHUNK_
/* The primary index for this table is the chunk type. /* The primary index for this table is the chunk type.
* The secondary index for this table is the state. * The secondary index for this table is the state.
*/ */
static const sctp_sm_table_entry_t prsctp_chunk_event_table[SCTP_NUM_PRSCTP_CHUNK_TYPES][SCTP_STATE_NUM_STATES] = { static const struct sctp_sm_table_entry
prsctp_chunk_event_table[SCTP_NUM_PRSCTP_CHUNK_TYPES][SCTP_STATE_NUM_STATES] = {
TYPE_SCTP_FWD_TSN, TYPE_SCTP_FWD_TSN,
}; /*state_fn_t prsctp_chunk_event_table[][] */ }; /*state_fn_t prsctp_chunk_event_table[][] */
...@@ -506,7 +509,8 @@ static const sctp_sm_table_entry_t prsctp_chunk_event_table[SCTP_NUM_PRSCTP_CHUN ...@@ -506,7 +509,8 @@ static const sctp_sm_table_entry_t prsctp_chunk_event_table[SCTP_NUM_PRSCTP_CHUN
/* The primary index for this table is the chunk type. /* The primary index for this table is the chunk type.
* The secondary index for this table is the state. * The secondary index for this table is the state.
*/ */
static const sctp_sm_table_entry_t reconf_chunk_event_table[SCTP_NUM_RECONF_CHUNK_TYPES][SCTP_STATE_NUM_STATES] = { static const struct sctp_sm_table_entry
reconf_chunk_event_table[SCTP_NUM_RECONF_CHUNK_TYPES][SCTP_STATE_NUM_STATES] = {
TYPE_SCTP_RECONF, TYPE_SCTP_RECONF,
}; /*state_fn_t reconf_chunk_event_table[][] */ }; /*state_fn_t reconf_chunk_event_table[][] */
...@@ -532,11 +536,12 @@ static const sctp_sm_table_entry_t reconf_chunk_event_table[SCTP_NUM_RECONF_CHUN ...@@ -532,11 +536,12 @@ static const sctp_sm_table_entry_t reconf_chunk_event_table[SCTP_NUM_RECONF_CHUN
/* The primary index for this table is the chunk type. /* The primary index for this table is the chunk type.
* The secondary index for this table is the state. * The secondary index for this table is the state.
*/ */
static const sctp_sm_table_entry_t auth_chunk_event_table[SCTP_NUM_AUTH_CHUNK_TYPES][SCTP_STATE_NUM_STATES] = { static const struct sctp_sm_table_entry
auth_chunk_event_table[SCTP_NUM_AUTH_CHUNK_TYPES][SCTP_STATE_NUM_STATES] = {
TYPE_SCTP_AUTH, TYPE_SCTP_AUTH,
}; /*state_fn_t auth_chunk_event_table[][] */ }; /*state_fn_t auth_chunk_event_table[][] */
static const sctp_sm_table_entry_t static const struct sctp_sm_table_entry
chunk_event_table_unknown[SCTP_STATE_NUM_STATES] = { chunk_event_table_unknown[SCTP_STATE_NUM_STATES] = {
/* SCTP_STATE_CLOSED */ /* SCTP_STATE_CLOSED */
TYPE_SCTP_FUNC(sctp_sf_ootb), TYPE_SCTP_FUNC(sctp_sf_ootb),
...@@ -693,7 +698,8 @@ chunk_event_table_unknown[SCTP_STATE_NUM_STATES] = { ...@@ -693,7 +698,8 @@ chunk_event_table_unknown[SCTP_STATE_NUM_STATES] = {
/* The primary index for this table is the primitive type. /* The primary index for this table is the primitive type.
* The secondary index for this table is the state. * The secondary index for this table is the state.
*/ */
static const sctp_sm_table_entry_t primitive_event_table[SCTP_NUM_PRIMITIVE_TYPES][SCTP_STATE_NUM_STATES] = { static const struct sctp_sm_table_entry
primitive_event_table[SCTP_NUM_PRIMITIVE_TYPES][SCTP_STATE_NUM_STATES] = {
TYPE_SCTP_PRIMITIVE_ASSOCIATE, TYPE_SCTP_PRIMITIVE_ASSOCIATE,
TYPE_SCTP_PRIMITIVE_SHUTDOWN, TYPE_SCTP_PRIMITIVE_SHUTDOWN,
TYPE_SCTP_PRIMITIVE_ABORT, TYPE_SCTP_PRIMITIVE_ABORT,
...@@ -741,7 +747,8 @@ static const sctp_sm_table_entry_t primitive_event_table[SCTP_NUM_PRIMITIVE_TYPE ...@@ -741,7 +747,8 @@ static const sctp_sm_table_entry_t primitive_event_table[SCTP_NUM_PRIMITIVE_TYPE
TYPE_SCTP_FUNC(sctp_sf_ignore_other), \ TYPE_SCTP_FUNC(sctp_sf_ignore_other), \
} }
static const sctp_sm_table_entry_t other_event_table[SCTP_NUM_OTHER_TYPES][SCTP_STATE_NUM_STATES] = { static const struct sctp_sm_table_entry
other_event_table[SCTP_NUM_OTHER_TYPES][SCTP_STATE_NUM_STATES] = {
TYPE_SCTP_OTHER_NO_PENDING_TSN, TYPE_SCTP_OTHER_NO_PENDING_TSN,
TYPE_SCTP_OTHER_ICMP_PROTO_UNREACH, TYPE_SCTP_OTHER_ICMP_PROTO_UNREACH,
}; };
...@@ -955,7 +962,8 @@ static const sctp_sm_table_entry_t other_event_table[SCTP_NUM_OTHER_TYPES][SCTP_ ...@@ -955,7 +962,8 @@ static const sctp_sm_table_entry_t other_event_table[SCTP_NUM_OTHER_TYPES][SCTP_
TYPE_SCTP_FUNC(sctp_sf_timer_ignore), \ TYPE_SCTP_FUNC(sctp_sf_timer_ignore), \
} }
static const sctp_sm_table_entry_t timeout_event_table[SCTP_NUM_TIMEOUT_TYPES][SCTP_STATE_NUM_STATES] = { static const struct sctp_sm_table_entry
timeout_event_table[SCTP_NUM_TIMEOUT_TYPES][SCTP_STATE_NUM_STATES] = {
TYPE_SCTP_EVENT_TIMEOUT_NONE, TYPE_SCTP_EVENT_TIMEOUT_NONE,
TYPE_SCTP_EVENT_TIMEOUT_T1_COOKIE, TYPE_SCTP_EVENT_TIMEOUT_T1_COOKIE,
TYPE_SCTP_EVENT_TIMEOUT_T1_INIT, TYPE_SCTP_EVENT_TIMEOUT_T1_INIT,
...@@ -969,7 +977,7 @@ static const sctp_sm_table_entry_t timeout_event_table[SCTP_NUM_TIMEOUT_TYPES][S ...@@ -969,7 +977,7 @@ static const sctp_sm_table_entry_t timeout_event_table[SCTP_NUM_TIMEOUT_TYPES][S
TYPE_SCTP_EVENT_TIMEOUT_AUTOCLOSE, TYPE_SCTP_EVENT_TIMEOUT_AUTOCLOSE,
}; };
static const sctp_sm_table_entry_t *sctp_chunk_event_lookup( static const struct sctp_sm_table_entry *sctp_chunk_event_lookup(
struct net *net, struct net *net,
enum sctp_cid cid, enum sctp_cid cid,
enum sctp_state state) enum sctp_state state)
......
...@@ -100,8 +100,9 @@ static int sctp_send_asconf(struct sctp_association *asoc, ...@@ -100,8 +100,9 @@ static int sctp_send_asconf(struct sctp_association *asoc,
struct sctp_chunk *chunk); struct sctp_chunk *chunk);
static int sctp_do_bind(struct sock *, union sctp_addr *, int); static int sctp_do_bind(struct sock *, union sctp_addr *, int);
static int sctp_autobind(struct sock *sk); static int sctp_autobind(struct sock *sk);
static void sctp_sock_migrate(struct sock *, struct sock *, static void sctp_sock_migrate(struct sock *oldsk, struct sock *newsk,
struct sctp_association *, sctp_socket_type_t); struct sctp_association *assoc,
enum sctp_socket_type type);
static unsigned long sctp_memory_pressure; static unsigned long sctp_memory_pressure;
static atomic_long_t sctp_memory_allocated; static atomic_long_t sctp_memory_allocated;
...@@ -1593,7 +1594,8 @@ static int sctp_error(struct sock *sk, int flags, int err) ...@@ -1593,7 +1594,8 @@ static int sctp_error(struct sock *sk, int flags, int err)
*/ */
/* BUG: We do not implement the equivalent of sk_stream_wait_memory(). */ /* BUG: We do not implement the equivalent of sk_stream_wait_memory(). */
static int sctp_msghdr_parse(const struct msghdr *, sctp_cmsgs_t *); static int sctp_msghdr_parse(const struct msghdr *msg,
struct sctp_cmsgs *cmsgs);
static int sctp_sendmsg(struct sock *sk, struct msghdr *msg, size_t msg_len) static int sctp_sendmsg(struct sock *sk, struct msghdr *msg, size_t msg_len)
{ {
...@@ -1609,7 +1611,7 @@ static int sctp_sendmsg(struct sock *sk, struct msghdr *msg, size_t msg_len) ...@@ -1609,7 +1611,7 @@ static int sctp_sendmsg(struct sock *sk, struct msghdr *msg, size_t msg_len)
struct sctp_sndrcvinfo *sinfo; struct sctp_sndrcvinfo *sinfo;
struct sctp_initmsg *sinit; struct sctp_initmsg *sinit;
sctp_assoc_t associd = 0; sctp_assoc_t associd = 0;
sctp_cmsgs_t cmsgs = { NULL }; struct sctp_cmsgs cmsgs = { NULL };
enum sctp_scope scope; enum sctp_scope scope;
bool fill_sinfo_ttl = false, wait_connect = false; bool fill_sinfo_ttl = false, wait_connect = false;
struct sctp_datamsg *datamsg; struct sctp_datamsg *datamsg;
...@@ -7445,10 +7447,10 @@ static int sctp_autobind(struct sock *sk) ...@@ -7445,10 +7447,10 @@ static int sctp_autobind(struct sock *sk)
* msg_control * msg_control
* points here * points here
*/ */
static int sctp_msghdr_parse(const struct msghdr *msg, sctp_cmsgs_t *cmsgs) static int sctp_msghdr_parse(const struct msghdr *msg, struct sctp_cmsgs *cmsgs)
{ {
struct cmsghdr *cmsg;
struct msghdr *my_msg = (struct msghdr *)msg; struct msghdr *my_msg = (struct msghdr *)msg;
struct cmsghdr *cmsg;
for_each_cmsghdr(cmsg, my_msg) { for_each_cmsghdr(cmsg, my_msg) {
if (!CMSG_OK(my_msg, cmsg)) if (!CMSG_OK(my_msg, cmsg))
...@@ -8085,7 +8087,7 @@ static inline void sctp_copy_descendant(struct sock *sk_to, ...@@ -8085,7 +8087,7 @@ static inline void sctp_copy_descendant(struct sock *sk_to,
*/ */
static void sctp_sock_migrate(struct sock *oldsk, struct sock *newsk, static void sctp_sock_migrate(struct sock *oldsk, struct sock *newsk,
struct sctp_association *assoc, struct sctp_association *assoc,
sctp_socket_type_t type) enum sctp_socket_type type)
{ {
struct sctp_sock *oldsp = sctp_sk(oldsk); struct sctp_sock *oldsp = sctp_sk(oldsk);
struct sctp_sock *newsp = sctp_sk(newsk); struct sctp_sock *newsp = sctp_sk(newsk);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment