1*94d5b8dbSZhangGuoDong /* SPDX-License-Identifier: LGPL-2.1 */ 2*94d5b8dbSZhangGuoDong /* 3*94d5b8dbSZhangGuoDong * 4*94d5b8dbSZhangGuoDong * Copyright (C) International Business Machines Corp., 2002,2009 5*94d5b8dbSZhangGuoDong * 2018 Samsung Electronics Co., Ltd. 6*94d5b8dbSZhangGuoDong * Author(s): Steve French <sfrench@us.ibm.com> 7*94d5b8dbSZhangGuoDong * Namjae Jeon <linkinjeon@kernel.org> 8*94d5b8dbSZhangGuoDong * 9*94d5b8dbSZhangGuoDong */ 10*94d5b8dbSZhangGuoDong 11*94d5b8dbSZhangGuoDong #ifndef _COMMON_SMB1_PDU_H 12*94d5b8dbSZhangGuoDong #define _COMMON_SMB1_PDU_H 13*94d5b8dbSZhangGuoDong 14*94d5b8dbSZhangGuoDong #define SMB1_PROTO_NUMBER cpu_to_le32(0x424d53ff) 15*94d5b8dbSZhangGuoDong 16*94d5b8dbSZhangGuoDong /* 17*94d5b8dbSZhangGuoDong * See MS-CIFS 2.2.3.1 18*94d5b8dbSZhangGuoDong * MS-SMB 2.2.3.1 19*94d5b8dbSZhangGuoDong */ 20*94d5b8dbSZhangGuoDong struct smb_hdr { 21*94d5b8dbSZhangGuoDong __u8 Protocol[4]; 22*94d5b8dbSZhangGuoDong __u8 Command; 23*94d5b8dbSZhangGuoDong union { 24*94d5b8dbSZhangGuoDong struct { 25*94d5b8dbSZhangGuoDong __u8 ErrorClass; 26*94d5b8dbSZhangGuoDong __u8 Reserved; 27*94d5b8dbSZhangGuoDong __le16 Error; 28*94d5b8dbSZhangGuoDong } __packed DosError; 29*94d5b8dbSZhangGuoDong __le32 CifsError; 30*94d5b8dbSZhangGuoDong } __packed Status; 31*94d5b8dbSZhangGuoDong __u8 Flags; 32*94d5b8dbSZhangGuoDong __le16 Flags2; /* note: le */ 33*94d5b8dbSZhangGuoDong __le16 PidHigh; 34*94d5b8dbSZhangGuoDong union { 35*94d5b8dbSZhangGuoDong struct { 36*94d5b8dbSZhangGuoDong __le32 SequenceNumber; /* le */ 37*94d5b8dbSZhangGuoDong __u32 Reserved; /* zero */ 38*94d5b8dbSZhangGuoDong } __packed Sequence; 39*94d5b8dbSZhangGuoDong __u8 SecuritySignature[8]; /* le */ 40*94d5b8dbSZhangGuoDong } __packed Signature; 41*94d5b8dbSZhangGuoDong __u8 pad[2]; 42*94d5b8dbSZhangGuoDong __u16 Tid; 43*94d5b8dbSZhangGuoDong __le16 Pid; 44*94d5b8dbSZhangGuoDong __u16 Uid; 45*94d5b8dbSZhangGuoDong __le16 Mid; 46*94d5b8dbSZhangGuoDong __u8 WordCount; 47*94d5b8dbSZhangGuoDong } __packed; 48*94d5b8dbSZhangGuoDong 49*94d5b8dbSZhangGuoDong /* See MS-CIFS 2.2.4.52.1 */ 50*94d5b8dbSZhangGuoDong typedef struct smb_negotiate_req { 51*94d5b8dbSZhangGuoDong struct smb_hdr hdr; /* wct = 0 */ 52*94d5b8dbSZhangGuoDong __le16 ByteCount; 53*94d5b8dbSZhangGuoDong unsigned char DialectsArray[]; 54*94d5b8dbSZhangGuoDong } __packed SMB_NEGOTIATE_REQ; 55*94d5b8dbSZhangGuoDong 56*94d5b8dbSZhangGuoDong #endif /* _COMMON_SMB1_PDU_H */ 57