aboutsummaryrefslogtreecommitdiff
path: root/sys/dev/iser
diff options
context:
space:
mode:
authorJohn Baldwin <jhb@FreeBSD.org>2022-03-10 23:49:53 +0000
committerJohn Baldwin <jhb@FreeBSD.org>2022-03-10 23:49:53 +0000
commit7aab9c14a462e0871394bbc4e276affb79c8d173 (patch)
treec1788760cd733e6e272aea9bbf554be9a5271c91 /sys/dev/iser
parentc6a43f7f10b183469c3804cfb31b29b6d938621b (diff)
Diffstat (limited to 'sys/dev/iser')
-rw-r--r--sys/dev/iser/icl_iser.c24
1 files changed, 24 insertions, 0 deletions
diff --git a/sys/dev/iser/icl_iser.c b/sys/dev/iser/icl_iser.c
index 2c2514a1422b..140b5622385d 100644
--- a/sys/dev/iser/icl_iser.c
+++ b/sys/dev/iser/icl_iser.c
@@ -43,6 +43,7 @@ static void iser_conn_release(struct icl_conn *ic);
static icl_conn_new_pdu_t iser_conn_new_pdu;
static icl_conn_pdu_free_t iser_conn_pdu_free;
static icl_conn_pdu_data_segment_length_t iser_conn_pdu_data_segment_length;
+static icl_conn_pdu_append_bio_t iser_conn_pdu_append_bio;
static icl_conn_pdu_append_data_t iser_conn_pdu_append_data;
static icl_conn_pdu_queue_t iser_conn_pdu_queue;
static icl_conn_handoff_t iser_conn_handoff;
@@ -51,12 +52,14 @@ static icl_conn_close_t iser_conn_close;
static icl_conn_connect_t iser_conn_connect;
static icl_conn_task_setup_t iser_conn_task_setup;
static icl_conn_task_done_t iser_conn_task_done;
+static icl_conn_pdu_get_bio_t iser_conn_pdu_get_bio;
static icl_conn_pdu_get_data_t iser_conn_pdu_get_data;
static kobj_method_t icl_iser_methods[] = {
KOBJMETHOD(icl_conn_new_pdu, iser_conn_new_pdu),
KOBJMETHOD(icl_conn_pdu_free, iser_conn_pdu_free),
KOBJMETHOD(icl_conn_pdu_data_segment_length, iser_conn_pdu_data_segment_length),
+ KOBJMETHOD(icl_conn_pdu_append_bio, iser_conn_pdu_append_bio),
KOBJMETHOD(icl_conn_pdu_append_data, iser_conn_pdu_append_data),
KOBJMETHOD(icl_conn_pdu_queue, iser_conn_pdu_queue),
KOBJMETHOD(icl_conn_handoff, iser_conn_handoff),
@@ -65,6 +68,7 @@ static kobj_method_t icl_iser_methods[] = {
KOBJMETHOD(icl_conn_connect, iser_conn_connect),
KOBJMETHOD(icl_conn_task_setup, iser_conn_task_setup),
KOBJMETHOD(icl_conn_task_done, iser_conn_task_done),
+ KOBJMETHOD(icl_conn_pdu_get_bio, iser_conn_pdu_get_bio),
KOBJMETHOD(icl_conn_pdu_get_data, iser_conn_pdu_get_data),
{ 0, 0 }
};
@@ -109,6 +113,18 @@ out:
}
int
+iser_conn_pdu_append_bio(struct icl_conn *ic, struct icl_pdu *request,
+ struct bio *bp, size_t offset, size_t len, int flags)
+{
+ MPASS(!((request->ip_bhs->bhs_opcode & ISCSI_OPCODE_MASK) ==
+ ISCSI_BHS_OPCODE_LOGIN_REQUEST ||
+ (request->ip_bhs->bhs_opcode & ISCSI_OPCODE_MASK) ==
+ ISCSI_BHS_OPCODE_TEXT_REQUEST));
+
+ return (0);
+}
+
+int
iser_conn_pdu_append_data(struct icl_conn *ic, struct icl_pdu *request,
const void *addr, size_t len, int flags)
{
@@ -127,6 +143,14 @@ iser_conn_pdu_append_data(struct icl_conn *ic, struct icl_pdu *request,
}
void
+iser_conn_pdu_get_bio(struct icl_conn *ic, struct icl_pdu *ip,
+ size_t pdu_off, struct bio *bp, size_t bio_off,
+ size_t len)
+{
+ MPASS(ip->ip_data_mbuf == NULL);
+}
+
+void
iser_conn_pdu_get_data(struct icl_conn *ic, struct icl_pdu *ip,
size_t off, void *addr, size_t len)
{