A2osX/LIB/LIBCIFS.S.txt

732 lines
13 KiB
Plaintext
Raw Normal View History

2021-01-12 21:14:13 +00:00
NEW
AUTO 3,1
.LIST OFF
.OP 65C02
.OR $2000
.TF lib/libcifs
*--------------------------------------
.INB inc/macros.i
.INB inc/a2osx.i
.INB inc/mli.e.i
.INB inc/eth.i
.INB inc/libtcpip.i
.INB inc/net.smb.i
*--------------------------------------
.DUMMY
.OR ZPLIB
ZS.START
ZPReqPtr .BS 2
ZPReqLen .BS 2
ZPCtxPtr .BS 2
ZPRespPtr .BS 2
ZPPtr1 .BS 2
ZPPtr2 .BS 2
ZS.END .ED
*--------------------------------------
* File Header (16 Bytes)
*--------------------------------------
CS.START cld
jmp (.1,x)
.DA #$61 6502,Level 1 (65c02)
.DA #1 BIN Layout Version 1
.DA 0
.DA CS.END-CS.START
.DA 0
.DA 0
.DA 0
*--------------------------------------
* Relocation Table
*--------------------------------------
.1 .DA LIB.LOAD
.DA LIB.UNLOAD
.DA CIFS.Negotiate
.DA CIFS.SessionSetup
.DA CIFS.TreeConnect
.DA CIFS.Mount
.DA CIFS.UMount
*--------------------------------------
2021-01-17 21:48:54 +00:00
L.CALLBACK .DA CIFS.CallBack
*--------------------------------------
2021-01-12 21:14:13 +00:00
J.CIFS .DA CIFS.ChTyp
.DA CIFS.ChMod
.DA CIFS.FStat
.DA CIFS.Stat
.DA CIFS.MKDir
.DA CIFS.MKNod
.DA CIFS.MKFIFO
.DA CIFS.Pipe
.DA CIFS.OpenDir
.DA CIFS.ReadDir
.DA CIFS.CloseDir
.DA CIFS.Open
.DA CIFS.Close
.DA CIFS.Read
.DA CIFS.Write
.DA CIFS.ChOwn
L.LIBTCPIP .DA LIBTCPIP
L.SMB.TRANSPORT .DA SMB.TRANSPORT
.DA 0
*--------------------------------------
LIB.LOAD >LDYA L.LIBTCPIP
2021-01-17 21:48:54 +00:00
>SYSCALL2 LoadLib
2021-01-12 21:14:13 +00:00
bcs .9
sta hLIBTCPIP
2021-01-17 21:48:54 +00:00
>SYSCALL2 GetMemPtr
>STYA pLIBTCPIP
2021-01-12 21:14:13 +00:00
>LDYAI 256
2021-01-17 21:48:54 +00:00
>SYSCALL2 GetMem
2021-01-12 21:14:13 +00:00
bcs .9
2021-01-17 21:48:54 +00:00
2021-01-12 21:14:13 +00:00
stx hReq
* clc
.9 rts
*--------------------------------------
LIB.UNLOAD lda hReq
beq .1
2021-01-17 21:48:54 +00:00
>SYSCALL2 FreeMem
2021-01-12 21:14:13 +00:00
.1 lda hLIBTCPIP
beq .8
2021-01-17 21:48:54 +00:00
>SYSCALL2 UnloadLib
2021-01-12 21:14:13 +00:00
.8 clc
rts
*--------------------------------------
* >PUSHB hSocket
2021-01-17 21:48:54 +00:00
* >PUSHBI 0
2021-01-12 21:14:13 +00:00
* >LIBCALL Negotiate
* A = hSMBContext
*--------------------------------------
CIFS.Negotiate lda (pStack)
bne .1
2021-01-17 21:48:54 +00:00
2021-01-12 21:14:13 +00:00
dec
sta (pStack)
>PUSHWI SMB.NegReq.end-SMB.TRANSPORT
>PUSHW L.SMB.TRANSPORT
ldy #1+4 hSocket
lda (pStack),y
2021-01-13 16:57:41 +00:00
ldx #LIBTCPIP.Send
2021-01-17 21:48:54 +00:00
jsr GO.LIBTCPIP
2021-01-12 21:14:13 +00:00
bcs .99
2021-01-13 16:57:41 +00:00
2021-01-12 21:14:13 +00:00
lda #0
sec
rts
.1 dec
sta (pStack)
beq .98
ldy #1 hSocket
lda (pStack),y
2021-01-13 16:57:41 +00:00
ldx #LIBTCPIP.Recv
2021-01-17 21:48:54 +00:00
jsr GO.LIBTCPIP
2021-01-12 21:14:13 +00:00
bcc .3
cmp #E.NODATA
bne .99
inc
rts
.3 jsr GetRespData
2021-01-17 21:48:54 +00:00
2021-01-12 21:14:13 +00:00
ldy #S.NETBIOS+S.SMB.H.STATUS
lda (ZPRespPtr),y
bne .97
ldy #3
lda (ZPRespPtr),y
2021-01-17 21:48:54 +00:00
2021-01-14 21:39:36 +00:00
clc
adc #4 + NETBIOS header
sta ZPPtr1
2021-01-12 21:14:13 +00:00
tay
lda #0
2021-01-17 21:48:54 +00:00
>SYSCALL2 GetMem
2021-01-12 21:14:13 +00:00
bcs .99
2021-01-17 21:48:54 +00:00
>STYA ZPCtxPtr
2021-01-14 21:39:36 +00:00
ldy ZPPtr1
2021-01-12 21:14:13 +00:00
.4 dey
lda (ZPRespPtr),y
sta (ZPCtxPtr),y
tya
bne .4
2021-01-14 21:39:36 +00:00
ldy #S.NETBIOS+S.SMB.H.FLAGS
sta (ZPCtxPtr),y
2021-01-12 21:14:13 +00:00
phx
2021-01-17 21:48:54 +00:00
2021-01-12 21:14:13 +00:00
lda hResp
2021-01-17 21:48:54 +00:00
>SYSCALL2 FreeMem
2021-01-12 21:14:13 +00:00
pla
2021-01-17 21:48:54 +00:00
2021-01-12 21:14:13 +00:00
clc
>RET 2
.97 lda hResp
2021-01-17 21:48:54 +00:00
>SYSCALL2 FreeMem
2021-01-12 21:14:13 +00:00
.98 lda #MLI.E.IO
2021-01-14 21:39:36 +00:00
.99 >RET 2
2021-01-12 21:14:13 +00:00
*--------------------------------------
* >PUSHB hSocket
* >PUSHB hSMBContext
* >PUSHW username
* >PUSHW password
2021-01-17 21:48:54 +00:00
* >PUSHBI 0
2021-01-12 21:14:13 +00:00
* >LIBCALL SessionSetup
* (SMBContext updated with UID)
*--------------------------------------
CIFS.SessionSetup
lda (pStack)
2021-01-17 21:48:54 +00:00
bne .5
2021-01-12 21:14:13 +00:00
2021-01-17 21:48:54 +00:00
dec
2021-01-12 21:14:13 +00:00
sta (pStack)
2021-01-17 21:48:54 +00:00
ldy #5 hSMBContext
jsr GetSMBContext
2021-01-14 21:39:36 +00:00
2021-01-12 21:14:13 +00:00
ldx #S.SMB.H.CMD.SESSION.SETUP.ANDX
2021-01-17 21:48:54 +00:00
jsr RequestSetupX
2021-01-12 21:14:13 +00:00
ldx #0
.2 lda SMB.SessionSetup.H,x
sta (ZPReqPtr),y
iny
inx
cpx #SMB.SessionSetup.H.Len
bne .2
2021-01-17 21:48:54 +00:00
2021-01-12 21:14:13 +00:00
phy save Y = LEN
iny
iny
2021-01-17 21:48:54 +00:00
2021-01-12 21:14:13 +00:00
ldx #0
2021-01-17 21:48:54 +00:00
2021-01-12 21:14:13 +00:00
.3 lda SMB.SessionSetup.Guest,x
sta (ZPReqPtr),y
iny
inx
cpx #SMB.SessionSetup.Guest.Len
bne .3
2021-01-17 21:48:54 +00:00
2021-01-12 21:14:13 +00:00
ldx #0
.4 lda SMB.SessionSetup.T,x
sta (ZPReqPtr),y
iny
inx
cpx #SMB.SessionSetup.T.Len
bne .4
2021-01-17 21:48:54 +00:00
2021-01-12 21:14:13 +00:00
pla
2021-01-17 21:48:54 +00:00
2021-01-14 21:39:36 +00:00
jsr SetReqLenYAtA
2021-01-12 21:14:13 +00:00
>PUSHYA
>PUSHW ZPReqPtr
ldy #6+4 hSocket
lda (pStack),y
2021-01-13 16:57:41 +00:00
ldx #LIBTCPIP.Send
2021-01-17 21:48:54 +00:00
jsr GO.LIBTCPIP
2021-01-12 21:14:13 +00:00
bcs .99
lda #0
sec
2021-01-17 21:48:54 +00:00
rts
2021-01-12 21:14:13 +00:00
.5 dec
sta (pStack)
beq .98
ldy #6 hSocket
lda (pStack),y
2021-01-13 16:57:41 +00:00
ldx #LIBTCPIP.Recv
2021-01-17 21:48:54 +00:00
jsr GO.LIBTCPIP
2021-01-12 21:14:13 +00:00
bcc .6
cmp #E.NODATA
bne .99
inc
rts
.6 jsr GetRespData
ldy #S.NETBIOS+S.SMB.H.STATUS
lda (ZPRespPtr),y
bne .97
2021-01-17 21:48:54 +00:00
2021-01-12 21:14:13 +00:00
ldy #5 hSMBContext
2021-01-17 21:48:54 +00:00
jsr GetSMBContext
2021-01-12 21:14:13 +00:00
ldy #S.NETBIOS+S.SMB.H.UID
lda (ZPRespPtr),y
sta (ZPCtxPtr),y
2021-01-17 21:48:54 +00:00
iny
2021-01-12 21:14:13 +00:00
lda (ZPRespPtr),y
sta (ZPCtxPtr),y
2021-01-17 21:48:54 +00:00
2021-01-12 21:14:13 +00:00
.8 lda hResp
2021-01-17 21:48:54 +00:00
>SYSCALL2 FreeMem
2021-01-12 21:14:13 +00:00
clc
>RET 7
.97 lda hResp
2021-01-17 21:48:54 +00:00
>SYSCALL2 FreeMem
2021-01-12 21:14:13 +00:00
.98 lda #MLI.E.IO
2021-01-13 16:57:41 +00:00
sec
2021-01-17 21:48:54 +00:00
.99 >RET 7
2021-01-12 21:14:13 +00:00
*--------------------------------------
* >PUSHB hSocket
* >PUSHB hSMBContext
2021-01-14 21:39:36 +00:00
* >PUSHW pathname
2021-01-17 21:48:54 +00:00
* >PUSHBI 0
2021-01-12 21:14:13 +00:00
* >LIBCALL TreeConnect
* (SMBContext updated with TID)
*--------------------------------------
CIFS.TreeConnect
lda (pStack)
2021-01-17 21:48:54 +00:00
bne .5
2021-01-12 21:14:13 +00:00
2021-01-17 21:48:54 +00:00
dec
2021-01-12 21:14:13 +00:00
sta (pStack)
2021-01-14 21:39:36 +00:00
ldy #1 pathname
lda (pStack),y
sta ZPPtr1
iny
lda (pStack),y
sta ZPPtr1+1
2021-01-17 21:48:54 +00:00
iny hSMBContext
jsr GetSMBContext
2021-01-12 21:14:13 +00:00
2021-01-17 21:48:54 +00:00
ldx #S.SMB.H.CMD.TREE.CONNECT.ANDX
jsr RequestSetupX
2021-01-12 21:14:13 +00:00
ldx #0
2021-01-17 21:48:54 +00:00
.1 lda SMB.TreeConnect.H,x
2021-01-12 21:14:13 +00:00
sta (ZPReqPtr),y
iny
inx
cpx #SMB.TreeConnect.H.Len
2021-01-17 21:48:54 +00:00
bne .1
2021-01-12 21:14:13 +00:00
phy save Y = LEN
iny
iny
2021-01-17 21:48:54 +00:00
2021-01-12 21:14:13 +00:00
lda #0
sta (ZPReqPtr),y PASSWORD = "\0"
iny
2021-01-17 21:48:54 +00:00
.2 lda (ZPPtr1)
2021-01-12 21:14:13 +00:00
inc ZPPtr1
2021-01-17 21:48:54 +00:00
bne .3
2021-01-12 21:14:13 +00:00
inc ZPPtr1+1
2021-01-17 21:48:54 +00:00
.3 sta (ZPReqPtr),y
2021-01-12 21:14:13 +00:00
iny
tax
2021-01-17 21:48:54 +00:00
bne .2
2021-01-12 21:14:13 +00:00
ldx #0
.4 lda SMB.TreeConnect.T,x
sta (ZPReqPtr),y
iny
inx
cpx #SMB.TreeConnect.T.Len
bne .4
2021-01-17 21:48:54 +00:00
2021-01-12 21:14:13 +00:00
pla
2021-01-17 21:48:54 +00:00
2021-01-14 21:39:36 +00:00
jsr SetReqLenYAtA
2021-01-12 21:14:13 +00:00
>PUSHYA
>PUSHW ZPReqPtr
ldy #4+4 hSocket
lda (pStack),y
2021-01-13 16:57:41 +00:00
ldx #LIBTCPIP.Send
2021-01-17 21:48:54 +00:00
jsr GO.LIBTCPIP
2021-01-12 21:14:13 +00:00
bcs .99
lda #0
sec
2021-01-17 21:48:54 +00:00
rts
2021-01-12 21:14:13 +00:00
.5 dec
sta (pStack)
beq .98
ldy #4 hSocket
lda (pStack),y
2021-01-13 16:57:41 +00:00
ldx #LIBTCPIP.Recv
2021-01-17 21:48:54 +00:00
jsr GO.LIBTCPIP
2021-01-12 21:14:13 +00:00
bcc .6
cmp #E.NODATA
bne .99
inc
rts
.6 jsr GetRespData
ldy #S.NETBIOS+S.SMB.H.STATUS
lda (ZPRespPtr),y
bne .97
2021-01-17 21:48:54 +00:00
2021-01-12 21:14:13 +00:00
ldy #3 hSMBContext
2021-01-17 21:48:54 +00:00
jsr GetSMBContext
2021-01-12 21:14:13 +00:00
ldy #S.NETBIOS+S.SMB.H.TID
lda (ZPRespPtr),y
sta (ZPCtxPtr),y
2021-01-17 21:48:54 +00:00
iny
2021-01-12 21:14:13 +00:00
lda (ZPRespPtr),y
sta (ZPCtxPtr),y
2021-01-17 21:48:54 +00:00
2021-01-12 21:14:13 +00:00
.8 lda hResp
2021-01-17 21:48:54 +00:00
>SYSCALL2 FreeMem
2021-01-12 21:14:13 +00:00
clc
>RET 5
.97 lda hResp
2021-01-17 21:48:54 +00:00
>SYSCALL2 FreeMem
2021-01-12 21:14:13 +00:00
.98 lda #MLI.E.IO
2021-01-13 16:57:41 +00:00
sec
2021-01-17 21:48:54 +00:00
.99 >RET 5
2021-01-12 21:14:13 +00:00
*--------------------------------------
2021-01-17 21:48:54 +00:00
* >PUSHB hSocket
* >PUSHB hSMBContext
* >PUSHW MountPoint
* >LIBCALL Mount
*--------------------------------------
CIFS.Mount ldy #1
lda (pStack),y MP HI
>PUSHA
lda (pStack),y MP LO
>PUSHA
>PUSHW L.CALLBACK
>SYSCALL2 Mount
bcs .9
pha hMount
ldx #0
.1 >PULLB MountTable,x
inx
cpx #4
bne .1
clc
pla
.9 >RET 4
2021-01-12 21:14:13 +00:00
*--------------------------------------
CIFS.UMount clc
rts
*--------------------------------------
2021-01-17 21:48:54 +00:00
CIFS.CallBack jmp (J.CIFS,x)
2021-01-12 21:14:13 +00:00
*--------------------------------------
CIFS.ChTyp
*--------------------------------------
CIFS.ChMod
*--------------------------------------
CIFS.FStat
*--------------------------------------
2021-01-17 21:48:54 +00:00
CIFS.Stat pha
>PULLW ZPPtr2 S.STAT
2021-01-12 21:14:13 +00:00
>PULLW ZPPtr1 PATH
2021-01-17 21:48:54 +00:00
pla
>SYSCALL2 PutS
2021-01-12 21:14:13 +00:00
.99 lda #MLI.E.INVPATH
sec
rts
*--------------------------------------
CIFS.MKDir
*--------------------------------------
CIFS.MKNod
*--------------------------------------
CIFS.MKFIFO
*--------------------------------------
CIFS.Pipe lda #MLI.E.BADCALL
sec
rts
*--------------------------------------
CIFS.OpenDir lda #MLI.E.BADCALL
sec
rts
*--------------------------------------
CIFS.ReadDir lda #MLI.E.INVPATH
sec
rts
*--------------------------------------
CIFS.CloseDir
*--------------------------------------
CIFS.Open
*--------------------------------------
CIFS.Close
*--------------------------------------
CIFS.Read
*--------------------------------------
CIFS.Write
*--------------------------------------
CIFS.ChOwn
lda #MLI.E.BADCALL
sec
rts
*--------------------------------------
2021-01-17 21:48:54 +00:00
GetSMBContext lda (pStack),y
>SYSCALL2 GetMemPtr
2021-01-12 21:14:13 +00:00
>STYA ZPCtxPtr
rts
*--------------------------------------
2021-01-17 21:48:54 +00:00
RequestSetupX phx
lda hReq
>SYSCALL2 GetMemPtr
>STYA ZPReqPtr
plx
ldy #0
.1 lda (ZPCtxPtr),y
cpy #S.NETBIOS+S.SMB.H.CMD
bne .2
txa
.2 sta (ZPReqPtr),y
iny
cpy #S.NETBIOS+S.SMB.H
bne .1
rts
*--------------------------------------
2021-01-12 21:14:13 +00:00
* Y = LEN from S.NETBIOS.TYPE
* A = Ptr to LEN Word
*--------------------------------------
2021-01-14 21:39:36 +00:00
SetReqLenYAtA sty ZPReqLen
2021-01-12 21:14:13 +00:00
stz ZPReqLen+1
2021-01-17 21:48:54 +00:00
2021-01-14 21:39:36 +00:00
sta ZPPtr1
2021-01-12 21:14:13 +00:00
pha
2021-01-17 21:48:54 +00:00
2021-01-12 21:14:13 +00:00
tya
dec
dec
2021-01-14 21:39:36 +00:00
sec
sbc ZPPtr1
2021-01-12 21:14:13 +00:00
ply
2021-01-14 21:39:36 +00:00
2021-01-12 21:14:13 +00:00
sta (ZPReqPtr),y
iny
lda #0
sta (ZPReqPtr),y
2021-01-17 21:48:54 +00:00
2021-01-12 21:14:13 +00:00
lda ZPReqLen
sec
sbc #S.NETBIOS
ldy #S.NETBIOS.LEN+2
sta (ZPReqPtr),y
lda ZPReqLen+1
sec
2021-01-17 21:48:54 +00:00
sbc /S.NETBIOS
2021-01-12 21:14:13 +00:00
dey
sta (ZPReqPtr),y
2021-01-17 21:48:54 +00:00
2021-01-14 21:39:36 +00:00
>LDYA ZPReqLen
2021-01-12 21:14:13 +00:00
rts
*--------------------------------------
GetRespData sta hResp
2021-01-17 21:48:54 +00:00
>SYSCALL2 GetMemPtr
2021-01-12 21:14:13 +00:00
pha
tya
* clc
adc #S.TCP
sta ZPRespPtr
pla
adc /S.TCP
sta ZPRespPtr+1
rts
*--------------------------------------
2021-01-17 21:48:54 +00:00
GO.LIBTCPIP jmp (pLIBTCPIP)
2021-01-13 16:57:41 +00:00
*--------------------------------------
2021-01-12 21:14:13 +00:00
CS.END
*--------------------------------------
LIBTCPIP .AZ "libtcpip"
hLIBTCPIP .BS 1
2021-01-17 21:48:54 +00:00
pLIBTCPIP .BS 2
2021-01-14 21:39:36 +00:00
hSocket .BS 1
hReq .BS 1
hResp .BS 1
2021-01-12 21:14:13 +00:00
*--------------------------------------
2021-01-17 21:48:54 +00:00
MountTable .BS 2 pMountPoint
.BS 1 hSMBContext
.BS 1 hSocket
*--------------------------------------
2021-01-12 21:14:13 +00:00
SMB.TRANSPORT .DA #0 DIRECT TCP TRANSPORT
.DA #0 24 BITS LENGTH
.DA /SMB.NegReq.end-SMB.H
.DA #SMB.NegReq.end-SMB.H
*--------------------------------------
SMB.H .DA #$FF
.AS "SMB"
.DA #S.SMB.H.CMD.NEGOTIATE
.HS 00000000
.DA #0 S.SMB.H.FLAGS
.DA S.SMB.H.FLAGS2.LONGNAMES
.DA 0 PIDHI
.HS 0000000000000000 SECFEAT
.DA 0 RSVD
.DA $FFFF TID
.DA $FFFE PIDLO
.BS 2 UID
.DA 0 MID
*--------------------------------------
SMB.NegReq .DA #0 WORD COUNT
.DA #SMB.NegReq.end-2-* ByteCount
.DA #0
* .DA #2
* .AZ "PC NETWORK PROGRAM 1.0"
* .DA #2
* .AZ "LANMAN1.0"
* .DA #2
* .AZ "Windows for Workgroups 3.1a"
* .DA #2
* .AZ "LM1.2X002"
* .DA #2
* .AZ "LANMAN2.1"
.DA #2
.AZ "NT LM 0.12"
* .DA #2
* .AZ "SMB 2.002"
* .DA #2
* .AZ "SMB 2.???"
SMB.NegReq.end .EQ *
*--------------------------------------
SMB.SessionSetup.H
.DA #13 WORD COUNT
.HS FF000000 NO MORE CMD
.DA 1280 MAX BUFFER
.DA 2 MAX MPX COUNT
.HS 0000 VC NUMBER
.HS 00000000 SESSION KEY
2021-01-14 21:39:36 +00:00
.DA 0 CI PASS LEN (ANSI)
.DA 0 CS PASS LEN (UNICODE)
2021-01-12 21:14:13 +00:00
.HS 00000000
.HS 00000000 CAPABILITIES
SMB.SessionSetup.H.Len .EQ *-SMB.SessionSetup.H
* .BS 2 ByteCount
SMB.SessionSetup.Guest
2021-01-14 21:39:36 +00:00
* .AZ "" Password
2021-01-12 21:14:13 +00:00
.AZ "Guest" Account Name
.AZ "?" Primary Domain
SMB.SessionSetup.Guest.Len .EQ *-SMB.SessionSetup.Guest
SMB.SessionSetup.T
.AZ "A2osX" Native OS
.AZ "A2osX-CIFSD" Native LANMAN
SMB.SessionSetup.T.Len .EQ *-SMB.SessionSetup.T
*--------------------------------------
SMB.TreeConnect.H
.DA #4 WORD COUNT
.HS FF000000 NO MORE CMD
.DA 0
.DA 1 PASSWORD LEN (1 for "\0")
SMB.TreeConnect.H.Len .EQ *-SMB.TreeConnect.H
* .BS 2 ByteCount
* .AZ "" PASSWORD
* .AZ "_temp" PATH
SMB.TreeConnect.T
.AZ "A:" Disk Share
SMB.TreeConnect.T.Len .EQ *-SMB.TreeConnect.T
*--------------------------------------
SMB.TRANS2.H .DA #15 WORD COUNT
.BS 2 TotalParamCount
.DA 0 TotalDataCount
.DA 10 MaxParameterCount
.DA 460 MaxDataCount
.DA #1 MaxSetupCount
.HS 00 Reserved1
.DA 0 Flags
.HS 00000000 Timeout
.HS 0000 Reserved2
.BS 2 ParameterCount
.DA 66 ParameterOffset
.HS 0000 DataCount
.HS 0000 DataOffset
.DA #1 SetupCount
.HS 00 Reserved3
*--------------------------------------
SMB.QueryPathInfo
.DA 5 TRANS2_QUERY_PATH_INFORMATION
.DA SMB.QueryPathInfo.PrmCnt+1 INCLUDING Padding byte below
.HS 00 Padding
SMB.QueryPathInfo.Prm
.DA $0001 InformationLevel
.HS 00000000 SearchStorageType
SMB.QueryPathInfo.PrmCnt .EQ *-SMB.QueryPathInfo.Prm
.AZ "server.met" FileName
SMB.QueryPathInfo.end
*--------------------------------------
SMB.FindFirst .DA 1 TRANS2_FIND_FIRST2
.DA SMB.FindFirst.PrmCnt+1 INCLUDING Padding byte below
.HS 00 Padding
SMB.FindFirst.Prm
.DA $0016 SearchAttributes
.DA 1024 SearchCount
.DA 3 Flags
.DA $0001 InformationLevel
.HS 00000000 SearchStorageType
SMB.FindFirst.PrmCnt .EQ *-SMB.FindFirst.Prm
.AZ "\*.*" FileName
SMB.FindFirst.end
*--------------------------------------
MAN
SAVE usr/src/lib/libcifs.s
ASM