Commit 8304bbceee505742925b487fd8ea56e1f8b4b805

Authored by Nicholas Bellinger
1 parent 55bdabdf41

iscsi: Add Serial Number Arithmetic LT and GT into iscsi_proto.h

This patch moves the iscsi_sna_lt() and iscsi_sna_lte(), along with
iscsi_sna_gt() and iscsi_sna_gte() from iscsi_target_mod into
static inlines inside of include/scsi/iscsi_proto.h

This patch also includes the ISCSI_HDR_LEN and ISCSI_CRC_LEN
definitions.

(Added JesperJ simpliciation for iscsi_sna_* usage)

Signed-off-by: Mark Rustad <mark.d.rustad@intel.com>
Signed-off-by: Mike Christie <michaelc@cs.wisc.edu>
Signed-off-by: Nicholas A. Bellinger <nab@linux-iscsi.org>

Showing 2 changed files with 30 additions and 16 deletions Side-by-side Diff

drivers/scsi/libiscsi.c
... ... @@ -84,22 +84,6 @@
84 84 __func__, ##arg); \
85 85 } while (0);
86 86  
87   -/* Serial Number Arithmetic, 32 bits, less than, RFC1982 */
88   -#define SNA32_CHECK 2147483648UL
89   -
90   -static int iscsi_sna_lt(u32 n1, u32 n2)
91   -{
92   - return n1 != n2 && ((n1 < n2 && (n2 - n1 < SNA32_CHECK)) ||
93   - (n1 > n2 && (n2 - n1 < SNA32_CHECK)));
94   -}
95   -
96   -/* Serial Number Arithmetic, 32 bits, less than, RFC1982 */
97   -static int iscsi_sna_lte(u32 n1, u32 n2)
98   -{
99   - return n1 == n2 || ((n1 < n2 && (n2 - n1 < SNA32_CHECK)) ||
100   - (n1 > n2 && (n2 - n1 < SNA32_CHECK)));
101   -}
102   -
103 87 inline void iscsi_conn_queue_work(struct iscsi_conn *conn)
104 88 {
105 89 struct Scsi_Host *shost = conn->session->host;
include/scsi/iscsi_proto.h
... ... @@ -29,8 +29,38 @@
29 29 /* default iSCSI listen port for incoming connections */
30 30 #define ISCSI_LISTEN_PORT 3260
31 31  
  32 +/* iSCSI header length */
  33 +#define ISCSI_HDR_LEN 48
  34 +
  35 +/* iSCSI CRC32C length */
  36 +#define ISCSI_CRC_LEN 4
  37 +
32 38 /* Padding word length */
33 39 #define ISCSI_PAD_LEN 4
  40 +
  41 +/*
  42 + * Serial Number Arithmetic, 32 bits, RFC1982
  43 + */
  44 +
  45 +static inline int iscsi_sna_lt(u32 n1, u32 n2)
  46 +{
  47 + return (s32)(n1 - n2) < 0;
  48 +}
  49 +
  50 +static inline int iscsi_sna_lte(u32 n1, u32 n2)
  51 +{
  52 + return (s32)(n1 - n2) <= 0;
  53 +}
  54 +
  55 +static inline int iscsi_sna_gt(u32 n1, u32 n2)
  56 +{
  57 + return (s32)(n1 - n2) > 0;
  58 +}
  59 +
  60 +static inline int iscsi_sna_gte(u32 n1, u32 n2)
  61 +{
  62 + return (s32)(n1 - n2) >= 0;
  63 +}
34 64  
35 65 /*
36 66 * useful common(control and data pathes) macro