Linux kernel & device driver programming

Cross-Referenced Linux and Device Driver Code

[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ]
Version: [ 2.6.11.8 ] [ 2.6.25 ] [ 2.6.25.8 ] [ 2.6.31.13 ] Architecture: [ i386 ]
  1 /*
  2  *  smb.h
  3  *
  4  *  Copyright (C) 1995, 1996 by Paal-Kr. Engstad and Volker Lendecke
  5  *  Copyright (C) 1997 by Volker Lendecke
  6  *
  7  */
  8 
  9 #ifndef _LINUX_SMB_H
 10 #define _LINUX_SMB_H
 11 
 12 #include <linux/types.h>
 13 #include <linux/magic.h>
 14 
 15 enum smb_protocol { 
 16         SMB_PROTOCOL_NONE, 
 17         SMB_PROTOCOL_CORE, 
 18         SMB_PROTOCOL_COREPLUS, 
 19         SMB_PROTOCOL_LANMAN1, 
 20         SMB_PROTOCOL_LANMAN2, 
 21         SMB_PROTOCOL_NT1 
 22 };
 23 
 24 enum smb_case_hndl {
 25         SMB_CASE_DEFAULT,
 26         SMB_CASE_LOWER,
 27         SMB_CASE_UPPER
 28 };
 29 
 30 struct smb_dskattr {
 31         __u16 total;
 32         __u16 allocblocks;
 33         __u16 blocksize;
 34         __u16 free;
 35 };
 36 
 37 struct smb_conn_opt {
 38 
 39         /* The socket */
 40         unsigned int fd;
 41 
 42         enum smb_protocol protocol;
 43         enum smb_case_hndl case_handling;
 44 
 45         /* Connection-Options */
 46 
 47         __u32              max_xmit;
 48         __u16              server_uid;
 49         __u16              tid;
 50 
 51         /* The following are LANMAN 1.0 options */
 52         __u16              secmode;
 53         __u16              maxmux;
 54         __u16              maxvcs;
 55         __u16              rawmode;
 56         __u32              sesskey;
 57 
 58         /* The following are NT LM 0.12 options */
 59         __u32              maxraw;
 60         __u32              capabilities;
 61         __s16              serverzone;
 62 };
 63 
 64 #ifdef __KERNEL__
 65 
 66 #define SMB_NLS_MAXNAMELEN 20
 67 struct smb_nls_codepage {
 68         char local_name[SMB_NLS_MAXNAMELEN];
 69         char remote_name[SMB_NLS_MAXNAMELEN];
 70 };
 71 
 72 
 73 #define SMB_MAXNAMELEN 255
 74 #define SMB_MAXPATHLEN 1024
 75 
 76 /*
 77  * Contains all relevant data on a SMB networked file.
 78  */
 79 struct smb_fattr {
 80         __u16 attr;
 81 
 82         unsigned long   f_ino;
 83         umode_t         f_mode;
 84         nlink_t         f_nlink;
 85         uid_t           f_uid;
 86         gid_t           f_gid;
 87         dev_t           f_rdev;
 88         loff_t          f_size;
 89         struct timespec f_atime;
 90         struct timespec f_mtime;
 91         struct timespec f_ctime;
 92         unsigned long   f_blocks;
 93         int             f_unix;
 94 };
 95 
 96 enum smb_conn_state {
 97         CONN_VALID,             /* everything's fine */
 98         CONN_INVALID,           /* Something went wrong, but did not
 99                                    try to reconnect yet. */
100         CONN_RETRIED,           /* Tried a reconnection, but was refused */
101         CONN_RETRYING           /* Currently trying to reconnect */
102 };
103 
104 #define SMB_HEADER_LEN   37     /* includes everything up to, but not
105                                  * including smb_bcc */
106 
107 #define SMB_INITIAL_PACKET_SIZE         4000
108 #define SMB_MAX_PACKET_SIZE             32768
109 
110 /* reserve this much space for trans2 parameters. Shouldn't have to be more
111    than 10 or so, but OS/2 seems happier like this. */
112 #define SMB_TRANS2_MAX_PARAM 64
113 
114 #endif
115 #endif
116 
  This page was automatically generated by the LXR engine.