1 /* SPDX-License-Identifier: GPL-2.0-only */
3 * Copyright 2016 Broadcom
9 #include <linux/kernel.h>
10 #include <linux/delay.h>
14 extern int flow_debug_logging
;
15 extern int packet_debug_logging
;
16 extern int debug_logging_sleep
;
19 #define flow_log(...) \
21 if (flow_debug_logging) { \
22 printk(__VA_ARGS__); \
23 if (debug_logging_sleep) \
24 msleep(debug_logging_sleep); \
27 #define flow_dump(msg, var, var_len) \
29 if (flow_debug_logging) { \
30 print_hex_dump(KERN_ALERT, msg, DUMP_PREFIX_NONE, \
31 16, 1, var, var_len, false); \
32 if (debug_logging_sleep) \
33 msleep(debug_logging_sleep); \
37 #define packet_log(...) \
39 if (packet_debug_logging) { \
40 printk(__VA_ARGS__); \
41 if (debug_logging_sleep) \
42 msleep(debug_logging_sleep); \
45 #define packet_dump(msg, var, var_len) \
47 if (packet_debug_logging) { \
48 print_hex_dump(KERN_ALERT, msg, DUMP_PREFIX_NONE, \
49 16, 1, var, var_len, false); \
50 if (debug_logging_sleep) \
51 msleep(debug_logging_sleep); \
55 void __dump_sg(struct scatterlist
*sg
, unsigned int skip
, unsigned int len
);
57 #define dump_sg(sg, skip, len) __dump_sg(sg, skip, len)
61 static inline void flow_log(const char *format
, ...)
65 static inline void flow_dump(const char *msg
, const void *var
, size_t var_len
)
69 static inline void packet_log(const char *format
, ...)
73 static inline void packet_dump(const char *msg
, const void *var
, size_t var_len
)
77 static inline void dump_sg(struct scatterlist
*sg
, unsigned int skip
,
84 int spu_sg_at_offset(struct scatterlist
*sg
, unsigned int skip
,
85 struct scatterlist
**sge
, unsigned int *sge_offset
);
87 /* Copy sg data, from skip, length len, to dest */
88 void sg_copy_part_to_buf(struct scatterlist
*src
, u8
*dest
,
89 unsigned int len
, unsigned int skip
);
90 /* Copy src into scatterlist from offset, length len */
91 void sg_copy_part_from_buf(struct scatterlist
*dest
, u8
*src
,
92 unsigned int len
, unsigned int skip
);
94 int spu_sg_count(struct scatterlist
*sg_list
, unsigned int skip
, int nbytes
);
95 u32
spu_msg_sg_add(struct scatterlist
**to_sg
,
96 struct scatterlist
**from_sg
, u32
*skip
,
97 u8 from_nents
, u32 tot_len
);
99 void add_to_ctr(u8
*ctr_pos
, unsigned int increment
);
101 /* produce a message digest from data of length n bytes */
102 int do_shash(unsigned char *name
, unsigned char *result
,
103 const u8
*data1
, unsigned int data1_len
,
104 const u8
*data2
, unsigned int data2_len
,
105 const u8
*key
, unsigned int key_len
);
107 char *spu_alg_name(enum spu_cipher_alg alg
, enum spu_cipher_mode mode
);
109 void spu_setup_debugfs(void);
110 void spu_free_debugfs(void);
111 void format_value_ccm(unsigned int val
, u8
*buf
, u8 len
);