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/fs/smbfs/request.h

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 #include <linux/list.h>
    2 #include <linux/types.h>
    3 #include <linux/uio.h>
    4 #include <linux/wait.h>
    5 
    6 struct smb_request {
    7         struct list_head rq_queue;      /* recvq or xmitq for the server */
    8 
    9         atomic_t rq_count;
   10 
   11         wait_queue_head_t rq_wait;
   12         int rq_flags;
   13         int rq_mid;     /* multiplex ID, set by request.c */
   14 
   15         struct smb_sb_info *rq_server;
   16 
   17         /* header + word count + parameter words + byte count */
   18         unsigned char rq_header[SMB_HEADER_LEN + 20*2 + 2];
   19 
   20         int rq_bufsize;
   21         unsigned char *rq_buffer;
   22 
   23         /* FIXME: this is not good enough for merging IO requests. */
   24         unsigned char *rq_page;
   25         int rq_rsize;
   26 
   27         int rq_resp_wct;
   28         int rq_resp_bcc;
   29 
   30         int rq_rlen;
   31         int rq_bytes_recvd;
   32 
   33         int rq_slen;
   34         int rq_bytes_sent;
   35 
   36         int rq_iovlen;
   37         struct kvec rq_iov[4];
   38 
   39         int (*rq_setup_read) (struct smb_request *);
   40         void (*rq_callback) (struct smb_request *);
   41 
   42         /* ------ trans2 stuff ------ */
   43 
   44         u16 rq_trans2_command;  /* 0 if not a trans2 request */
   45         unsigned int rq_ldata;
   46         unsigned char *rq_data;
   47         unsigned int rq_lparm;
   48         unsigned char *rq_parm;
   49 
   50         int rq_fragment;
   51         u32 rq_total_data;
   52         u32 rq_total_parm;
   53         int rq_trans2bufsize;
   54         unsigned char *rq_trans2buffer;
   55 
   56         /* ------ response ------ */
   57 
   58         unsigned short rq_rcls;
   59         unsigned short rq_err;
   60         int rq_errno;
   61 };
   62 
   63 #define SMB_REQ_STATIC          0x0001  /* rq_buffer is static */
   64 #define SMB_REQ_NORETRY         0x0002  /* request is invalid after retry */
   65 
   66 #define SMB_REQ_TRANSMITTED     0x4000  /* all data has been sent */
   67 #define SMB_REQ_RECEIVED        0x8000  /* reply received, smbiod is done */
   68 
   69 #define xSMB_REQ_NOREPLY        0x0004  /* we don't want the reply (if any) */
   70 #define xSMB_REQ_NORECEIVER     0x0008  /* caller doesn't wait for response */

Cache object: aea9dea38f1c298a991467fbf5f3d93c


[ 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.