#ifndef _FC_FRAME_H_
#define _FC_FRAME_H_
#include <linux/scatterlist.h>
#include <linux/skbuff.h>
#include <scsi/scsi_cmnd.h>
#include <scsi/fc/fc_fs.h>
#include <scsi/fc/fc_fcp.h>
#include <scsi/fc/fc_encaps.h>
#include <linux/if_ether.h>
#define ntohll(x) …
#define htonll(x) …
static inline u32 ntoh24(const u8 *p)
{ … }
static inline void hton24(u8 *p, u32 v)
{ … }
#define FC_FRAME_HEADROOM …
#define FC_FRAME_TAILROOM …
#define FC_FRAME_SG_LEN …
#define fp_skb(fp) …
#define fr_hdr(fp) …
#define fr_len(fp) …
#define fr_cb(fp) …
#define fr_dev(fp) …
#define fr_seq(fp) …
#define fr_sof(fp) …
#define fr_eof(fp) …
#define fr_flags(fp) …
#define fr_encaps(fp) …
#define fr_max_payload(fp) …
#define fr_fsp(fp) …
#define fr_crc(fp) …
struct fc_frame { … };
struct fcoe_rcv_info { … };
static inline struct fcoe_rcv_info *fcoe_dev_from_skb(const struct sk_buff *skb)
{ … }
#define FCPHF_CRC_UNCHECKED …
static inline void fc_frame_init(struct fc_frame *fp)
{ … }
struct fc_frame *fc_frame_alloc_fill(struct fc_lport *, size_t payload_len);
struct fc_frame *_fc_frame_alloc(size_t payload_len);
static inline struct fc_frame *fc_frame_alloc(struct fc_lport *dev, size_t len)
{ … }
static inline void fc_frame_free(struct fc_frame *fp)
{ … }
static inline int fc_frame_is_linear(struct fc_frame *fp)
{ … }
static inline
struct fc_frame_header *__fc_frame_header_get(const struct fc_frame *fp)
{ … }
static inline
struct fc_frame_header *fc_frame_header_get(const struct fc_frame *fp)
{ … }
static inline u32 fc_frame_sid(const struct fc_frame *fp)
{ … }
static inline u32 fc_frame_did(const struct fc_frame *fp)
{ … }
static inline void *fc_frame_payload_get(const struct fc_frame *fp,
size_t len)
{ … }
static inline u8 fc_frame_payload_op(const struct fc_frame *fp)
{ … }
static inline enum fc_class fc_frame_class(const struct fc_frame *fp)
{ … }
u32 fc_frame_crc_check(struct fc_frame *);
static inline u8 fc_frame_rctl(const struct fc_frame *fp)
{ … }
static inline bool fc_frame_is_cmd(const struct fc_frame *fp)
{ … }
void fc_frame_leak_check(void);
static inline void __fc_fill_fc_hdr(struct fc_frame_header *fh,
enum fc_rctl r_ctl,
u32 did, u32 sid, enum fc_fh_type type,
u32 f_ctl, u32 parm_offset)
{ … }
static inline void fc_fill_fc_hdr(struct fc_frame *fp, enum fc_rctl r_ctl,
u32 did, u32 sid, enum fc_fh_type type,
u32 f_ctl, u32 parm_offset)
{ … }
#endif