linux-old/include/linux/smb.h
<<
>>
Prefs
   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
  14enum smb_protocol { 
  15        SMB_PROTOCOL_NONE, 
  16        SMB_PROTOCOL_CORE, 
  17        SMB_PROTOCOL_COREPLUS, 
  18        SMB_PROTOCOL_LANMAN1, 
  19        SMB_PROTOCOL_LANMAN2, 
  20        SMB_PROTOCOL_NT1 
  21};
  22
  23enum smb_case_hndl {
  24        SMB_CASE_DEFAULT,
  25        SMB_CASE_LOWER,
  26        SMB_CASE_UPPER
  27};
  28
  29struct smb_dskattr {
  30        __u16 total;
  31        __u16 allocblocks;
  32        __u16 blocksize;
  33        __u16 free;
  34};
  35
  36struct smb_conn_opt {
  37
  38        /* The socket */
  39        unsigned int fd;
  40
  41        enum smb_protocol protocol;
  42        enum smb_case_hndl case_handling;
  43
  44        /* Connection-Options */
  45
  46        __u32              max_xmit;
  47        __u16              server_uid;
  48        __u16              tid;
  49
  50        /* The following are LANMAN 1.0 options */
  51        __u16              secmode;
  52        __u16              maxmux;
  53        __u16              maxvcs;
  54        __u16              rawmode;
  55        __u32              sesskey;
  56
  57        /* The following are NT LM 0.12 options */
  58        __u32              maxraw;
  59        __u32              capabilities;
  60        __s16              serverzone;
  61};
  62
  63#ifdef __KERNEL__
  64
  65#define SMB_NLS_MAXNAMELEN 20
  66struct smb_nls_codepage {
  67        char local_name[SMB_NLS_MAXNAMELEN];
  68        char remote_name[SMB_NLS_MAXNAMELEN];
  69};
  70
  71
  72#define SMB_MAXNAMELEN 255
  73#define SMB_MAXPATHLEN 1024
  74
  75/*
  76 * Contains all relevant data on a SMB networked file.
  77 */
  78struct smb_fattr {
  79
  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        kdev_t          f_rdev;
  88        loff_t          f_size;
  89        time_t          f_atime;
  90        time_t          f_mtime;
  91        time_t          f_ctime;
  92        unsigned long   f_blksize;
  93        unsigned long   f_blocks;
  94        int             f_unix;
  95};
  96
  97enum smb_conn_state {
  98        CONN_VALID,             /* everything's fine */
  99        CONN_INVALID,           /* Something went wrong, but did not
 100                                   try to reconnect yet. */
 101        CONN_RETRIED,           /* Tried a reconnection, but was refused */
 102        CONN_RETRYING           /* Currently trying to reconnect */
 103};
 104
 105#define SMB_SUPER_MAGIC               0x517B
 106
 107#define SMB_HEADER_LEN   37     /* includes everything up to, but not
 108                                 * including smb_bcc */
 109
 110#define SMB_INITIAL_PACKET_SIZE         4000
 111#define SMB_MAX_PACKET_SIZE             32768
 112
 113/* reserve this much space for trans2 parameters. Shouldn't have to be more
 114   than 10 or so, but OS/2 seems happier like this. */
 115#define SMB_TRANS2_MAX_PARAM 64
 116
 117#endif
 118#endif
 119
lxr.linux.no kindly hosted by Redpill Linpro AS, provider of Linux consulting and operations services since 1995.