smb_fs_sb.h
上传用户:jlfgdled
上传日期:2013-04-10
资源大小:33168k
文件大小:2k
- /*
- * smb_fs_sb.h
- *
- * Copyright (C) 1995 by Paal-Kr. Engstad and Volker Lendecke
- * Copyright (C) 1997 by Volker Lendecke
- *
- */
- #ifndef _SMB_FS_SB
- #define _SMB_FS_SB
- #ifdef __KERNEL__
- #include <linux/types.h>
- #include <linux/smb.h>
- /* structure access macros */
- #define server_from_inode(inode) (&(inode)->i_sb->u.smbfs_sb)
- #define server_from_dentry(dentry) (&(dentry)->d_sb->u.smbfs_sb)
- #define SB_of(server) ((struct super_block *) ((char *)(server) -
- (unsigned long)(&((struct super_block *)0)->u.smbfs_sb)))
- struct smb_sb_info {
- enum smb_conn_state state;
- struct file * sock_file;
- struct smb_mount_data_kernel *mnt;
- unsigned char *temp_buf;
- /* Connections are counted. Each time a new socket arrives,
- * generation is incremented.
- */
- unsigned int generation;
- pid_t conn_pid;
- struct smb_conn_opt opt;
- struct semaphore sem;
- wait_queue_head_t wait;
- __u32 packet_size;
- unsigned char * packet;
- unsigned short rcls; /* The error codes we received */
- unsigned short err;
- /* We use our own data_ready callback, but need the original one */
- void *data_ready;
- /* nls pointers for codepage conversions */
- struct nls_table *remote_nls;
- struct nls_table *local_nls;
- /* utf8 can make strings longer so we can't do in-place conversion.
- This is a buffer for temporary stuff. We only need one so no need
- to put it on the stack. This points to temp_buf space. */
- char *name_buf;
- int (*convert)(char *, int, const char *, int,
- struct nls_table *, struct nls_table *);
- };
- static inline void
- smb_lock_server(struct smb_sb_info *server)
- {
- down(&(server->sem));
- }
- static inline void
- smb_unlock_server(struct smb_sb_info *server)
- {
- up(&(server->sem));
- }
- #endif /* __KERNEL__ */
- #endif