41 #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
43 #include <linux/kernel.h>
69 SCTP_DBG_OBJCNT_ENTRY(
sock),
70 SCTP_DBG_OBJCNT_ENTRY(ep),
71 SCTP_DBG_OBJCNT_ENTRY(assoc),
73 SCTP_DBG_OBJCNT_ENTRY(
chunk),
74 SCTP_DBG_OBJCNT_ENTRY(bind_addr),
75 SCTP_DBG_OBJCNT_ENTRY(bind_bucket),
76 SCTP_DBG_OBJCNT_ENTRY(
addr),
77 SCTP_DBG_OBJCNT_ENTRY(ssnmap),
78 SCTP_DBG_OBJCNT_ENTRY(datamsg),
79 SCTP_DBG_OBJCNT_ENTRY(keys),
86 static int sctp_objcnt_seq_show(
struct seq_file *seq,
void *
v)
90 i = (
int)*(loff_t *)
v;
97 static void *sctp_objcnt_seq_start(
struct seq_file *seq, loff_t *
pos)
102 static void sctp_objcnt_seq_stop(
struct seq_file *seq,
void *v)
106 static void * sctp_objcnt_seq_next(
struct seq_file *seq,
void *v, loff_t *pos)
109 return (*pos >=
ARRAY_SIZE(sctp_dbg_objcnt)) ?
NULL : (
void *)pos;
113 .start = sctp_objcnt_seq_start,
114 .next = sctp_objcnt_seq_next,
115 .stop = sctp_objcnt_seq_stop,
116 .show = sctp_objcnt_seq_show,
121 return seq_open(file, &sctp_objcnt_seq_ops);
125 .open = sctp_objcnt_seq_open,
136 ent = proc_create(
"sctp_dbg_objcnt", 0,
137 net->sctp.proc_net_sctp, &sctp_objcnt_ops);
139 pr_warn(
"sctp_dbg_objcnt: Unable to create /proc entry.\n");