📄 smb_fs_sb.h
字号:
/* * 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 voidsmb_lock_server(struct smb_sb_info *server){ down(&(server->sem));}static inline voidsmb_unlock_server(struct smb_sb_info *server){ up(&(server->sem));}#endif /* __KERNEL__ */#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -