The Design and Implementation of the FreeBSD Operating System, Second Edition
Now available: The Design and Implementation of the FreeBSD Operating System (Second Edition)


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]

FreeBSD/Linux Kernel Cross Reference
sys/dev/iscsi/icl_conn_if.m

Version: -  FREEBSD  -  FREEBSD-13-STABLE  -  FREEBSD-13-0  -  FREEBSD-12-STABLE  -  FREEBSD-12-0  -  FREEBSD-11-STABLE  -  FREEBSD-11-0  -  FREEBSD-10-STABLE  -  FREEBSD-10-0  -  FREEBSD-9-STABLE  -  FREEBSD-9-0  -  FREEBSD-8-STABLE  -  FREEBSD-8-0  -  FREEBSD-7-STABLE  -  FREEBSD-7-0  -  FREEBSD-6-STABLE  -  FREEBSD-6-0  -  FREEBSD-5-STABLE  -  FREEBSD-5-0  -  FREEBSD-4-STABLE  -  FREEBSD-3-STABLE  -  FREEBSD22  -  l41  -  OPENBSD  -  linux-2.6  -  MK84  -  PLAN9  -  xnu-8792 
SearchContext: -  none  -  3  -  10 

    1 #-
    2 # SPDX-License-Identifier: BSD-2-Clause-FreeBSD
    3 #
    4 # Copyright (c) 2014 The FreeBSD Foundation
    5 #
    6 # This software was developed by Edward Tomasz Napierala under sponsorship
    7 # from the FreeBSD Foundation.
    8 #
    9 # Redistribution and use in source and binary forms, with or without
   10 # modification, are permitted provided that the following conditions
   11 # are met:
   12 # 1. Redistributions of source code must retain the above copyright
   13 #    notice, this list of conditions and the following disclaimer.
   14 # 2. Redistributions in binary form must reproduce the above copyright
   15 #    notice, this list of conditions and the following disclaimer in the
   16 #    documentation and/or other materials provided with the distribution.
   17 #
   18 # THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
   19 # ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
   20 # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
   21 # ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
   22 # FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
   23 # DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
   24 # OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
   25 # HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
   26 # LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
   27 # OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
   28 # SUCH DAMAGE.
   29 #
   30 # $FreeBSD$
   31 #
   32 
   33 #include <sys/bio.h>
   34 #include <sys/socket.h>
   35 #include <dev/iscsi/icl.h>
   36 
   37 INTERFACE icl_conn;
   38 
   39 CODE {
   40         static void null_pdu_queue_cb(struct icl_conn *ic,
   41             struct icl_pdu *ip, icl_pdu_cb cb)
   42         {
   43                 ICL_CONN_PDU_QUEUE(ic, ip);
   44                 if (cb)
   45                         cb(ip, 0);
   46         }
   47 };
   48 
   49 METHOD size_t pdu_data_segment_length {
   50         struct icl_conn *_ic;
   51         const struct icl_pdu *_ip;
   52 };
   53 
   54 METHOD int pdu_append_bio {
   55         struct icl_conn *_ic;
   56         struct icl_pdu *_ip;
   57         struct bio *_bp;
   58         size_t _offset;
   59         size_t _len;
   60         int _flags;
   61 };
   62 
   63 METHOD int pdu_append_data {
   64         struct icl_conn *_ic;
   65         struct icl_pdu *_ip;
   66         const void *_addr;
   67         size_t _len;
   68         int _flags;
   69 };
   70 
   71 METHOD void pdu_get_bio {
   72         struct icl_conn *_ic;
   73         struct icl_pdu *_ip;
   74         size_t _pdu_off;
   75         struct bio *_bp;
   76         size_t _bio_off;
   77         size_t _len;
   78 };
   79 
   80 METHOD void pdu_get_data {
   81         struct icl_conn *_ic;
   82         struct icl_pdu *_ip;
   83         size_t _off;
   84         void *_addr;
   85         size_t _len;
   86 };
   87 
   88 METHOD void pdu_queue {
   89         struct icl_conn *_ic;
   90         struct icl_pdu *_ip;
   91 };
   92 
   93 METHOD void pdu_queue_cb {
   94         struct icl_conn *_ic;
   95         struct icl_pdu *_ip;
   96         icl_pdu_cb cb;
   97 } DEFAULT null_pdu_queue_cb;
   98 
   99 METHOD void pdu_free {
  100         struct icl_conn *_ic;
  101         struct icl_pdu *_ip;
  102 };
  103 
  104 METHOD struct icl_pdu * new_pdu {
  105         struct icl_conn *_ic;
  106         int _flags;
  107 };
  108 
  109 METHOD void free {
  110         struct icl_conn *_ic;
  111 };
  112 
  113 METHOD int handoff {
  114         struct icl_conn *_ic;
  115         int _fd;
  116 };
  117 
  118 METHOD void close {
  119         struct icl_conn *_ic;
  120 };
  121 
  122 METHOD int task_setup {
  123         struct icl_conn *_ic;
  124         struct icl_pdu *_ip;
  125         struct ccb_scsiio *_csio;
  126         uint32_t *_task_tag;
  127         void **_prvp;
  128 };
  129 
  130 METHOD void task_done {
  131         struct icl_conn *_ic;
  132         void *_prv;
  133 };
  134 
  135 METHOD int transfer_setup {
  136         struct icl_conn *_ic;
  137         struct icl_pdu *_ip;
  138         union ctl_io *_io;
  139         uint32_t *_transfer_tag;
  140         void **_prvp;
  141 };
  142 
  143 METHOD void transfer_done {
  144         struct icl_conn *_ic;
  145         void *_prv;
  146 };
  147 
  148 #
  149 # The function below is only used with ICL_KERNEL_PROXY.
  150 #
  151 METHOD int connect {
  152         struct icl_conn *_ic;
  153         int _domain;
  154         int _socktype;
  155         int _protocol;
  156         struct sockaddr *_from_sa;
  157         struct sockaddr *_to_sa;
  158 };

Cache object: 94b83c84171c93dcc956e21f531969b9


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]


This page is part of the FreeBSD/Linux Linux Kernel Cross-Reference, and was automatically generated using a modified version of the LXR engine.