linux/fs/smbfs/request.h
<<
>>
Prefs
   1#include <linux/list.h>
   2#include <linux/types.h>
   3#include <linux/uio.h>
   4#include <linux/wait.h>
   5
   6struct 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 */
  71