forked from Qortal/Brooklyn
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
59 lines
1.5 KiB
59 lines
1.5 KiB
/* SPDX-License-Identifier: GPL-2.0-or-later */ |
|
/* |
|
* iSCSI Initiator TCP Transport |
|
* Copyright (C) 2004 Dmitry Yusupov |
|
* Copyright (C) 2004 Alex Aizman |
|
* Copyright (C) 2005 - 2006 Mike Christie |
|
* Copyright (C) 2006 Red Hat, Inc. All rights reserved. |
|
* maintained by [email protected] |
|
* |
|
* See the file COPYING included with this distribution for more details. |
|
*/ |
|
|
|
#ifndef ISCSI_SW_TCP_H |
|
#define ISCSI_SW_TCP_H |
|
|
|
#include <scsi/libiscsi.h> |
|
#include <scsi/libiscsi_tcp.h> |
|
|
|
struct socket; |
|
struct iscsi_tcp_conn; |
|
|
|
/* Socket connection send helper */ |
|
struct iscsi_sw_tcp_send { |
|
struct iscsi_hdr *hdr; |
|
struct iscsi_segment segment; |
|
struct iscsi_segment data_segment; |
|
}; |
|
|
|
struct iscsi_sw_tcp_conn { |
|
struct socket *sock; |
|
|
|
struct iscsi_sw_tcp_send out; |
|
/* old values for socket callbacks */ |
|
void (*old_data_ready)(struct sock *); |
|
void (*old_state_change)(struct sock *); |
|
void (*old_write_space)(struct sock *); |
|
|
|
/* data and header digests */ |
|
struct ahash_request *tx_hash; /* CRC32C (Tx) */ |
|
struct ahash_request *rx_hash; /* CRC32C (Rx) */ |
|
|
|
/* MIB custom statistics */ |
|
uint32_t sendpage_failures_cnt; |
|
uint32_t discontiguous_hdr_cnt; |
|
|
|
ssize_t (*sendpage)(struct socket *, struct page *, int, size_t, int); |
|
}; |
|
|
|
struct iscsi_sw_tcp_host { |
|
struct iscsi_session *session; |
|
}; |
|
|
|
struct iscsi_sw_tcp_hdrbuf { |
|
struct iscsi_hdr hdrbuf; |
|
char hdrextbuf[ISCSI_MAX_AHS_SIZE + |
|
ISCSI_DIGEST_SIZE]; |
|
}; |
|
|
|
#endif /* ISCSI_SW_TCP_H */
|
|
|