1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79
|
/*
* smb_fs_sb.h
*
* Copyright (C) 1995 by Paal-Kr. Engstad and Volker Lendecke
*
*/
#ifndef _SMB_FS_SB
#define _SMB_FS_SB
#include <linux/smb.h>
#include <linux/smb_fs_i.h>
#include <linux/smb_mount.h>
#include <linux/types.h>
#ifdef __KERNEL__
struct smb_server {
enum smb_protocol protocol; /* The protocol this
connection accepts. */
enum smb_case_hndl case_handling;
struct file * sock_file; /* The socket we transfer
data on. */
int lock; /* To prevent mismatch in
protocols. */
struct wait_queue *wait;
__u32 max_xmit;
char hostname[256];
word pid;
word server_uid;
word mid;
word tid;
struct smb_mount_data m; /* We store the complete information here
* to be able to reconnect.
*/
unsigned short rcls; /* The error codes we received */
unsigned short err;
__u32 packet_size;
unsigned char * packet;
enum smb_conn_state state;
unsigned long reconnect_time; /* The time of the last attempt */
/* The following are LANMAN 1.0 options transferred to us in
SMBnegprot */
word secmode;
word maxmux;
word maxvcs;
word blkmode;
dword sesskey;
/* We use our on data_ready callback, but need the original one */
void *data_ready;
/* We do not have unique numbers for files in the smb protocol
like NFS-filehandles. (SMB was designed for DOS, not for
UNIX!) So we have to create our own inode numbers. We keep
a complete path of smb_inode_info's to each active
inode. The inode number is then created by the address of
this structure. */
struct smb_inode_info root;
};
/*
* This is the part of the super-block (in memory) for the SMB file system.
*/
struct smb_sb_info {
struct smb_server s_server;
struct smb_dskattr s_attr;
};
#endif /* __KERNEL__ */
#endif
|