A2osX/SBIN/CIFSD.S.txt

739 lines
15 KiB
Plaintext
Raw Normal View History

2019-06-13 15:30:28 +00:00
NEW
AUTO 3,1 Enable MASM3 auto line num
.LIST OFF
.OP 65C02 Target CPU, must match CPU level in header
.OR $2000 usualy $2000, but any value > $100 allowed
2020-06-13 19:27:06 +00:00
.TF sbin/cifsd
2019-06-13 15:30:28 +00:00
*--------------------------------------
2020-06-13 19:27:06 +00:00
.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
2021-01-12 21:14:13 +00:00
.INB inc/libcifs.i
2019-06-14 15:16:48 +00:00
*--------------------------------------
2021-01-12 21:14:13 +00:00
TIMEOUT.MAX .EQ 250 25 sec.
2019-06-13 15:30:28 +00:00
*--------------------------------------
* Zero Page Segment, up to 32 bytes
*--------------------------------------
.DUMMY
.OR ZPBIN
ZS.START
ZPIPCfgPtr .BS 2
2021-01-12 21:14:13 +00:00
hSocket .BS 1
2020-06-13 19:27:06 +00:00
hResp .BS 1
ZPRespPtr .BS 2
2019-06-14 15:16:48 +00:00
TimeOut .BS 1
2021-01-12 21:14:13 +00:00
hSMBContext .BS 1
hMount .BS 1
ZPPtr1 .BS 2
ZPPtr2 .BS 2
ZS.END .ED
2019-06-13 15:30:28 +00:00
*--------------------------------------
* File Header (16 Bytes)
*--------------------------------------
CS.START cld
jmp (.1,x)
.DA #$61 6502,Level 1 (65c02)
.DA #1 BIN Layout Version 1
2019-06-14 15:16:48 +00:00
.DA #S.PS.F.EVENT
2019-06-13 15:30:28 +00:00
.DA #0
.DA CS.END-CS.START Code Size (without Constants)
.DA DS.END-DS.START Data SegmentSize
.DA #64 Stack Size
.DA #ZS.END-ZS.START Zero Page Size
.DA 0
*--------------------------------------
* Relocation Table
2019-10-03 06:25:27 +00:00
*--------------------------------------
2019-06-13 15:30:28 +00:00
.1 .DA CS.INIT
.DA CS.RUN
2021-01-12 21:14:13 +00:00
.DA CS.DOEVENT
2019-06-13 15:30:28 +00:00
.DA CS.QUIT
2019-06-14 15:16:48 +00:00
L.LIBTCPIP .DA LIBTCPIP
2021-01-12 21:14:13 +00:00
L.LIBCIFS .DA LIBCIFS
2020-06-13 19:27:06 +00:00
L.MSG.TCPIPERR .DA MSG.TCPIPERR
2019-06-14 15:16:48 +00:00
L.MSG.USAGE .DA MSG.USAGE
L.MSG.UNKNOWN .DA MSG.UNKNOWN
2020-06-17 19:05:36 +00:00
L.MSG.SESSION .DA MSG.SESSION
2020-06-13 19:27:06 +00:00
L.SMB.NegReq .DA SMB.NegReq
L.SMB.SessSetup .DA SMB.SessSetup
L.SMB.TreeConnReq .DA SMB.TreeConnReq
2021-01-12 21:14:13 +00:00
L.SMB.QueryPathInfo .DA SMB.QueryPathInfo
2020-06-17 19:05:36 +00:00
L.SMB.FindFirstReq .DA SMB.FindFirstReq
2019-06-13 15:30:28 +00:00
.DA 0
*--------------------------------------
* Called once at process creation
* Put code for loading LIB here
*--------------------------------------
CS.INIT >LDYA L.LIBTCPIP
>SYSCALL LoadLib
2019-07-07 20:48:57 +00:00
bcs .9
2021-01-12 21:14:13 +00:00
2019-06-13 15:30:28 +00:00
sta hLIBTCPIP
2021-01-12 21:14:13 +00:00
>LDYA L.LIBCIFS
>SYSCALL LoadLib
bcs .9
sta hLIBCIFS
* clc
.9
CS.INIT.RTS rts
2020-06-13 19:27:06 +00:00
*--------------------------------------
* Called until exit with CS
* if RUN exits with CC, RUN entered again
*--------------------------------------
2021-01-12 21:14:13 +00:00
CS.RUN lda hSocket
beq .1
2020-06-13 19:27:06 +00:00
2021-01-12 21:14:13 +00:00
lda #0
clc
2019-06-13 15:30:28 +00:00
rts
2019-06-14 15:16:48 +00:00
2021-01-12 21:14:13 +00:00
.1 jsr CS.RUN.CheckTCPIP
bcs CS.INIT.RTS
jsr CS.RUN.CheckArgs
bcs CS.INIT.RTS
2019-07-12 06:22:32 +00:00
2019-07-07 20:48:57 +00:00
jsr CS.RUN.Connect
2021-01-12 21:14:13 +00:00
bcs CS.INIT.RTS
2020-06-13 19:27:06 +00:00
2021-01-12 21:14:13 +00:00
>PUSHB hSocket
>PUSHBI 0
>LIBCALL hLIBCIFS,LIBCIFS.Negotiate
2020-06-13 19:27:06 +00:00
bcs .9
2021-01-12 21:14:13 +00:00
sta hSMBContext
2021-01-13 16:57:41 +00:00
>DEBUG
2021-01-12 21:14:13 +00:00
>PUSHB hSocket
>PUSHB hSMBContext
>PUSHWI 0
>PUSHWI 0
>PUSHBI 0
>LIBCALL hLIBCIFS,LIBCIFS.SessionSetup
2020-06-17 19:05:36 +00:00
bcs .9
2021-01-12 21:14:13 +00:00
>PUSHB hSocket
>PUSHB hSMBContext
lda #2
>SYSCALL ArgV
>PUSHYA
>PUSHBI 0
>LIBCALL hLIBCIFS,LIBCIFS.TreeConnect
2020-06-17 19:05:36 +00:00
bcs .9
2021-01-12 21:14:13 +00:00
* lda #3
* >SYSCALL ArgV
* >PUSHYA
* >PUSHW L.CS.CALLBACK
* >SYSCALL Mount
* bcs .9
* sta hMount
2020-06-17 19:05:36 +00:00
.8 lda #0
2020-06-13 19:27:06 +00:00
clc
2019-07-07 20:48:57 +00:00
.9 rts
2021-01-12 21:14:13 +00:00
*--------------------------------------
CS.RUN.CheckTCPIP
>LIBCALL hLIBTCPIP,LIBTCPIP.GETCFG is TCPIP loaded ?
bcs .9
2020-06-13 19:27:06 +00:00
2021-01-12 21:14:13 +00:00
>STYA ZPIPCfgPtr
lda (ZPIPCfgPtr) Configured ?
bmi .1
>LDYA L.MSG.TCPIPERR
2020-02-28 07:21:46 +00:00
>SYSCALL PutS
2021-01-12 21:14:13 +00:00
2019-06-13 15:30:28 +00:00
lda #E.SYN
sec
2021-01-12 21:14:13 +00:00
.9 rts
.1 lda #AF.INET
>STA.G SA.LOCAL
>STA.G SA.REMOTE
ldy #S.IPCFG.IP+3
.3 lda (ZPIPCfgPtr),y
pha
dey
cpy #S.IPCFG.IP-1
bne .3
ldy #SA.LOCAL+S.SOCKADDR.ADDR
.4 pla
sta (pData),y
iny
cpy #SA.LOCAL+S.SOCKADDR.ADDR+4
bne .4
lda #TCP.PORT.CIFS
>STA.G SA.REMOTE+S.SOCKADDR.PORT
iny
lda /TCP.PORT.CIFS
sta (pData),y
clc
2019-06-13 15:30:28 +00:00
rts
*--------------------------------------
CS.RUN.CheckArgs
ldy #S.PS.ARGC
2020-02-28 07:21:46 +00:00
lda (pPS),y
2019-06-13 15:30:28 +00:00
cmp #3
2021-01-12 21:14:13 +00:00
bcs .1
2019-06-14 15:16:48 +00:00
2021-01-12 21:14:13 +00:00
>LDYA L.MSG.USAGE
>SYSCALL PutS
lda #E.SYN
sec
rts
.1 lda #TIMEOUT.MAX
2019-06-14 15:16:48 +00:00
sta TimeOut
2021-01-12 21:14:13 +00:00
.2 >PUSHEA.G SA.REMOTE+S.SOCKADDR.ADDR
2019-06-14 15:16:48 +00:00
lda #1
>SYSCALL ArgV
>PUSHYA
2020-08-23 19:46:37 +00:00
>LIBCALL hLIBTCPIP,LIBTCPIP.HST.GetByName
2021-01-12 21:14:13 +00:00
bcc .3
2019-06-14 15:16:48 +00:00
>SLEEP
lda TimeOut
2021-01-12 21:14:13 +00:00
bne .2
2020-06-13 19:27:06 +00:00
>PUSHW L.MSG.UNKNOWN
2019-06-14 15:16:48 +00:00
lda #1
>SYSCALL ArgV
>PUSHYA
>PUSHBI 2
2020-02-28 07:21:46 +00:00
>SYSCALL PrintF
2019-06-14 15:16:48 +00:00
sec
2021-01-12 21:14:13 +00:00
rts
2019-06-14 15:16:48 +00:00
2021-01-12 21:14:13 +00:00
.3 lda #2
>SYSCALL ArgV
2019-06-14 15:16:48 +00:00
clc
rts
2019-06-13 15:30:28 +00:00
*--------------------------------------
2019-06-14 15:16:48 +00:00
CS.RUN.Connect >PUSHBI 0 no protocol
2020-06-13 19:27:06 +00:00
lda #S.SOCKET.T.SEQPKT
2019-06-14 15:16:48 +00:00
>LIBCALL hLIBTCPIP,LIBTCPIP.Socket
bcs .9
2021-01-12 21:14:13 +00:00
sta hSocket
2019-06-14 15:16:48 +00:00
2019-07-07 20:48:57 +00:00
>PUSHEA.G SA.LOCAL
2021-01-12 21:14:13 +00:00
lda hSocket
2019-06-14 15:16:48 +00:00
>LIBCALL hLIBTCPIP,LIBTCPIP.Bind
bcs .9
2021-01-12 21:14:13 +00:00
>SLEEP
2019-07-07 20:48:57 +00:00
>PUSHEA.G SA.REMOTE
2021-01-12 21:14:13 +00:00
lda hSocket
2019-06-14 15:16:48 +00:00
>LIBCALL hLIBTCPIP,LIBTCPIP.Connect
2021-01-12 21:14:13 +00:00
bcs .9
lda #TIMEOUT.MAX
sta TimeOut
.1 >SLEEP
lda hSocket
>LIBCALL hLIBTCPIP,LIBTCPIP.Recv
bcc .7
cmp #E.NODATA
beq .8
ldx TimeOut
bne .1
sec
rts
.7 >SYSCALL Freemem
.8 clc
2019-06-14 15:16:48 +00:00
.9 rts
*--------------------------------------
2019-07-07 20:48:57 +00:00
CS.RUN.Negotiate
2020-06-13 19:27:06 +00:00
lda #TIMEOUT.MAX
sta TimeOut
.1 >PUSHWI SMB.NegReq.end-SMB.NegReq
>PUSHW L.SMB.NegReq
2021-01-12 21:14:13 +00:00
lda hSocket
2019-07-07 20:48:57 +00:00
>LIBCALL hLIBTCPIP,LIBTCPIP.Send
2020-06-13 19:27:06 +00:00
bcc .2
2021-01-12 21:14:13 +00:00
2020-06-13 19:27:06 +00:00
>SLEEP
ldx TimeOut
bne .1
2021-01-12 21:14:13 +00:00
2020-06-13 19:27:06 +00:00
bra .99
2021-01-12 21:14:13 +00:00
2020-06-13 19:27:06 +00:00
.2 >SLEEP
2021-01-12 21:14:13 +00:00
lda hSocket
2020-06-13 19:27:06 +00:00
>LIBCALL hLIBTCPIP,LIBTCPIP.Recv
bcc .3
2020-09-01 10:47:39 +00:00
cmp #E.NODATA
2020-06-13 19:27:06 +00:00
beq .2
bra .99
2020-06-17 19:05:36 +00:00
.3 sta hResp
>SYSCALL GetMemPtr
2020-06-13 19:27:06 +00:00
>STYA ZPRespPtr
2021-01-12 21:14:13 +00:00
2020-06-13 19:27:06 +00:00
ldy #$3f
lda (ZPRespPtr),y
bne .9
2021-01-12 21:14:13 +00:00
2020-06-13 19:27:06 +00:00
ldy #$5B
lda (ZPRespPtr),y
cmp #5
bne .9
2021-01-12 21:14:13 +00:00
2020-06-13 19:27:06 +00:00
lda hResp
>SYSCALL FreeMem
* clc
rts
2021-01-12 21:14:13 +00:00
2020-06-13 19:27:06 +00:00
.9 lda hResp
>SYSCALL FreeMem
2021-01-12 21:14:13 +00:00
2020-06-13 19:27:06 +00:00
.99 lda #MLI.E.INVPATH
sec
2019-07-07 20:48:57 +00:00
rts
*--------------------------------------
2020-06-13 19:27:06 +00:00
CS.RUN.SessSetup
2020-06-17 19:05:36 +00:00
lda #TIMEOUT.MAX
sta TimeOut
.1 >PUSHWI SMB.SessSetup.end-SMB.SessSetup
>PUSHW L.SMB.SessSetup
2021-01-12 21:14:13 +00:00
lda hSocket
2020-06-17 19:05:36 +00:00
>LIBCALL hLIBTCPIP,LIBTCPIP.Send
bcc .2
2021-01-12 21:14:13 +00:00
2020-06-17 19:05:36 +00:00
>SLEEP
ldx TimeOut
bne .1
2021-01-12 21:14:13 +00:00
2020-06-17 19:05:36 +00:00
bra .99
2021-01-12 21:14:13 +00:00
2020-06-17 19:05:36 +00:00
.2 >SLEEP
2021-01-12 21:14:13 +00:00
lda hSocket
2020-06-17 19:05:36 +00:00
>LIBCALL hLIBTCPIP,LIBTCPIP.Recv
bcc .3
2020-09-01 10:47:39 +00:00
cmp #E.NODATA
2020-06-17 19:05:36 +00:00
beq .2
bra .99
2020-06-13 19:27:06 +00:00
2020-06-17 19:05:36 +00:00
.3 sta hResp
>SYSCALL GetMemPtr
>STYA ZPRespPtr
2021-01-12 21:14:13 +00:00
2020-06-17 19:05:36 +00:00
ldy #$3f
lda (ZPRespPtr),y
bne .9
ldy #$56
lda (ZPRespPtr),y
sta SMB.TreeConnReq.UID
iny
lda (ZPRespPtr),y
sta SMB.TreeConnReq.UID+1
2021-01-12 21:14:13 +00:00
2020-06-17 19:05:36 +00:00
>PUSHW L.MSG.SESSION
lda #$63
2020-06-13 19:27:06 +00:00
clc
2020-06-17 19:05:36 +00:00
adc ZPRespPtr
tay
lda #0
adc ZPRespPtr+1
>PUSHYA
2021-01-12 21:14:13 +00:00
2020-06-17 19:05:36 +00:00
>PUSHBI 2
2020-08-23 19:46:37 +00:00
>SYSCALL PrintF
2021-01-12 21:14:13 +00:00
2020-06-17 19:05:36 +00:00
lda hResp
>SYSCALL FreeMem
* clc
rts
2021-01-12 21:14:13 +00:00
2020-06-17 19:05:36 +00:00
.9 lda hResp
>SYSCALL FreeMem
2021-01-12 21:14:13 +00:00
2020-06-17 19:05:36 +00:00
.99 lda #MLI.E.INVPATH
sec
rts
*--------------------------------------
CS.RUN.TreeConn lda #TIMEOUT.MAX
sta TimeOut
.1 >PUSHWI SMB.TreeConnReq.end-SMB.TreeConnReq
>PUSHW L.SMB.TreeConnReq
2021-01-12 21:14:13 +00:00
lda hSocket
2020-06-17 19:05:36 +00:00
>LIBCALL hLIBTCPIP,LIBTCPIP.Send
bcc .2
2021-01-12 21:14:13 +00:00
2020-06-17 19:05:36 +00:00
>SLEEP
ldx TimeOut
bne .1
2021-01-12 21:14:13 +00:00
2020-06-17 19:05:36 +00:00
bra .99
2021-01-12 21:14:13 +00:00
2020-06-17 19:05:36 +00:00
.2 >SLEEP
2021-01-12 21:14:13 +00:00
lda hSocket
2020-06-17 19:05:36 +00:00
>LIBCALL hLIBTCPIP,LIBTCPIP.Recv
bcc .3
2020-09-01 10:47:39 +00:00
cmp #E.NODATA
2020-06-17 19:05:36 +00:00
beq .2
bra .99
.3 sta hResp
>SYSCALL GetMemPtr
>STYA ZPRespPtr
2021-01-12 21:14:13 +00:00
2020-06-17 19:05:36 +00:00
ldy #$3f
lda (ZPRespPtr),y
bne .9
2021-01-12 21:14:13 +00:00
2020-06-19 06:33:47 +00:00
ldy #$52
lda (ZPRespPtr),y
sta SMB.FindFirstReq.TID
iny
lda (ZPRespPtr),y
sta SMB.FindFirstReq.TID+1
2021-01-12 21:14:13 +00:00
2020-06-19 06:33:47 +00:00
ldy #$56
lda (ZPRespPtr),y
sta SMB.FindFirstReq.UID
iny
lda (ZPRespPtr),y
sta SMB.FindFirstReq.UID+1
2021-01-12 21:14:13 +00:00
2020-06-17 19:05:36 +00:00
lda hResp
>SYSCALL FreeMem
* clc
rts
2021-01-12 21:14:13 +00:00
2020-06-17 19:05:36 +00:00
.9 lda hResp
>SYSCALL FreeMem
2021-01-12 21:14:13 +00:00
2020-06-17 19:05:36 +00:00
.99 lda #MLI.E.INVPATH
sec
2020-06-13 19:27:06 +00:00
rts
2019-06-13 15:30:28 +00:00
*--------------------------------------
2019-06-14 15:16:48 +00:00
CS.DOEVENT lda (pEvent)
bpl .9 is it a TIMER event?
2021-01-12 21:14:13 +00:00
2019-06-14 15:16:48 +00:00
lda TimeOut
beq .9
2021-01-12 21:14:13 +00:00
2019-06-14 15:16:48 +00:00
dec TimeOut
.9 sec do not discard TIMER event
2019-06-13 15:30:28 +00:00
rts
*--------------------------------------
* Called once, when RUN exited with CS
* Put code for unloading LIB here
*--------------------------------------
2021-01-12 21:14:13 +00:00
CS.QUIT lda hMount
beq .1
2019-06-13 15:30:28 +00:00
2021-01-12 21:14:13 +00:00
>SYSCALL UMount
2020-06-17 19:05:36 +00:00
2021-01-12 21:14:13 +00:00
.1 lda hSocket
beq .2
2020-06-17 19:05:36 +00:00
2021-01-12 21:14:13 +00:00
>LIBCALL hLIBTCPIP,LIBTCPIP.Shutdown
2020-06-17 19:05:36 +00:00
2021-01-12 21:14:13 +00:00
.2 lda hLIBCIFS
beq .3
2020-06-17 19:05:36 +00:00
2021-01-12 21:14:13 +00:00
>SYSCALL UnloadLib
2020-06-17 19:05:36 +00:00
2021-01-12 21:14:13 +00:00
.3 lda hLIBTCPIP
beq .8
>SYSCALL UnloadLib
.8 clc
2020-06-17 19:05:36 +00:00
rts
*--------------------------------------
2019-06-13 15:30:28 +00:00
CS.END
*--------------------------------------
* Initialized DATA
*--------------------------------------
2020-06-13 19:27:06 +00:00
LIBTCPIP .AZ "libtcpip"
2019-06-13 15:30:28 +00:00
hLIBTCPIP .BS 1
2021-01-12 21:14:13 +00:00
LIBCIFS .AZ "libcifs"
hLIBCIFS .BS 1
MSG.TCPIPERR .AZ "CIFSD:TCP/IP Not initialized properly."
2019-06-14 15:16:48 +00:00
MSG.USAGE .AZ "Usage : CIFSD <ip|host> sharename mountpoint"
2021-01-12 21:14:13 +00:00
MSG.UNKNOWN .AZ "CIFSD:%s: Unknown host\r\n"
MSG.SESSION .AZ "CIFSD:Connected to: %s\r\n"
2019-06-13 15:30:28 +00:00
*--------------------------------------
2020-06-13 19:27:06 +00:00
SMB.NegReq .DA #0 DIRECT TCP TRANSPORT
.DA #0 24 BITS LENGTH
.DA /SMB.NegReq.end-1-*
.DA #SMB.NegReq.end-1-*
.DA #$FF
2019-07-07 20:48:57 +00:00
.AS "SMB"
2020-06-17 19:05:36 +00:00
.DA #S.SMB.H.CMD.NEGOTIATE
2019-07-07 20:48:57 +00:00
.HS 00000000
2020-06-17 19:05:36 +00:00
.DA #0 S.SMB.H.FLAGS
.DA S.SMB.H.FLAGS2.LONGNAMES
2019-07-07 20:48:57 +00:00
.DA 0 PIDHI
.HS 0000000000000000 SECFEAT
.DA 0 RSVD
.DA $FFFF TID
.DA $FEFF PIDLO
.DA 0 UID
.DA 0 MID
2020-06-17 19:05:36 +00:00
2019-07-07 20:48:57 +00:00
.DA #0 WORD COUNT
2020-06-17 19:05:36 +00:00
2020-06-13 19:27:06 +00:00
.DA #SMB.NegReq.end-2-*
.DA /SMB.NegReq.end-2-*
2020-06-17 19:05:36 +00:00
2020-06-13 19:27:06 +00:00
.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"
2019-07-07 20:48:57 +00:00
.DA #2
.AZ "NT LM 0.12"
2020-06-13 19:27:06 +00:00
.DA #2
.AZ "SMB 2.002"
.DA #2
.AZ "SMB 2.???"
SMB.NegReq.end .EQ *
2019-07-07 20:48:57 +00:00
*--------------------------------------
2020-06-13 19:27:06 +00:00
SMB.SessSetup .DA #0 DIRECT TCP TRANSPORT
.DA #0 24 BITS LENGTH
.DA /SMB.SessSetup.end-1-*
.DA #SMB.SessSetup.end-1-*
.DA #$FF
.AS "SMB"
2020-06-17 19:05:36 +00:00
.DA #S.SMB.H.CMD.SESSION.SETUP.ANDX
.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 $FEFF PIDLO
.DA 0 UID
.DA 0 MID
.DA #13 WORD COUNT
2021-01-12 21:14:13 +00:00
2020-06-17 19:05:36 +00:00
.HS FF000000 NO MORE CMD
.DA 1280 MAX BUFFER
.DA 2 MAX MPX COUNT
.HS 0000 VC NUMBER
.HS 00000000 SESSION KEY
.DA 0 CI PASS LEN
.DA 0 CS PASS LEN
.HS 00000000
.HS 00000000 CAPABILITIES
.DA #SMB.SessSetup.end-2-*
.DA /SMB.SessSetup.end-2-*
* .AZ "" Password
2021-01-12 21:14:13 +00:00
.AZ "Guest" Account Name
2020-06-17 19:05:36 +00:00
.AZ "?" Primary Domain
.AZ "A2osX" Native OS
.AZ "A2osX-CIFSD" Native LANMAN
2020-06-13 19:27:06 +00:00
SMB.SessSetup.end .EQ *
*--------------------------------------
SMB.TreeConnReq .DA #0 DIRECT TCP TRANSPORT
.DA #0 24 BITS LENGTH
.DA /SMB.TreeConnReq.end-1-*
.DA #SMB.TreeConnReq.end-1-*
.DA #$FF
.AS "SMB"
2020-06-17 19:05:36 +00:00
.DA #S.SMB.H.CMD.TREE.CONNECT.ANDX
.HS 00000000
.DA #0 S.SMB.H.FLAGS
.DA S.SMB.H.FLAGS2.LONGNAMES
.DA 0 PIDHI
.HS 0000000000000000 SECFEAT
.DA 0 RSVD
2020-06-19 06:33:47 +00:00
SMB.TreeConnReq.TID
2020-06-17 19:05:36 +00:00
.DA $FFFF TID
.DA $FEFF PIDLO
SMB.TreeConnReq.UID
.DA 0 UID
.DA 0 MID
2021-01-12 21:14:13 +00:00
2020-06-17 19:05:36 +00:00
.DA #4 WORD COUNT
.HS FF000000 NO MORE CMD
2021-01-12 21:14:13 +00:00
.DA 0
2020-06-17 19:05:36 +00:00
.DA 1 PASSWORD LEN
2021-01-12 21:14:13 +00:00
2020-06-17 19:05:36 +00:00
.DA #SMB.TreeConnReq.end-2-*
.DA /SMB.TreeConnReq.end-2-*
.AZ "" PASSWORD
2021-01-12 21:14:13 +00:00
.AZ "_temp" PATH
2020-06-17 19:05:36 +00:00
.AZ "?????"
2020-06-13 19:27:06 +00:00
SMB.TreeConnReq.end .EQ *
2020-06-17 19:05:36 +00:00
*--------------------------------------
2021-01-12 21:14:13 +00:00
* https://docs.microsoft.com/en-us/openspecs/windows_protocols/ms-cifs/9b171bbf-c6d8-4c88-ac85-23c795cbb5d3
*--------------------------------------
SMB.QueryPathInfo
.DA #0 DIRECT TCP TRANSPORT
.DA #0 24 BITS LENGTH
.DA /SMB.QueryPathInfo.end-1-*
.DA #SMB.QueryPathInfo.end-1-*
.DA #$FF
.AS "SMB"
.DA #S.SMB.H.CMD.TRANSACTION2
.HS 00000000
.DA #0 S.SMB.H.FLAGS
.DA S.SMB.H.FLAGS2.LONGNAMES
.DA 0 PIDHI
.HS 0000000000000000 SECFEAT
.DA 0 RSVD
SMB.QueryPathInfo.TID
.DA $FFFF TID
.DA $FEFF PIDLO
SMB.QueryPathInfo.UID
.DA 0 UID
.DA 0 MID
* Trans2
.DA #15 WORD COUNT
.DA SMB.QueryPathInfo.PrmCnt 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
.DA SMB.QueryPathInfo.PrmCnt ParameterCount
.DA 66 ParameterOffset
.HS 0000 DataCount
.HS 0000 DataOffset
.DA #1 SetupCount
.HS 00 Reserved3
* TRANS2_QUERY_PATH_INFORMATION
.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
.AZ "server.met" FileName
SMB.QueryPathInfo.PrmCnt .EQ *-SMB.QueryPathInfo.Prm
SMB.QueryPathInfo.end
*--------------------------------------
2020-06-17 19:05:36 +00:00
SMB.FindFirstReq
.DA #0 DIRECT TCP TRANSPORT
.DA #0 24 BITS LENGTH
2020-08-23 19:46:37 +00:00
.DA /SMB.FindFirstReq.end-1-*
.DA #SMB.FindFirstReq.end-1-*
2020-06-17 19:05:36 +00:00
.DA #$FF
.AS "SMB"
.DA #S.SMB.H.CMD.TRANSACTION2
.HS 00000000
.DA #0 S.SMB.H.FLAGS
.DA S.SMB.H.FLAGS2.LONGNAMES
.DA 0 PIDHI
.HS 0000000000000000 SECFEAT
.DA 0 RSVD
2020-06-19 06:33:47 +00:00
SMB.FindFirstReq.TID
2020-06-17 19:05:36 +00:00
.DA $FFFF TID
.DA $FEFF PIDLO
2020-06-19 06:33:47 +00:00
SMB.FindFirstReq.UID
2020-06-17 19:05:36 +00:00
.DA 0 UID
2021-01-12 21:14:13 +00:00
.DA 0 MID
* Trans2
.DA #15 WORD COUNT
.DA SMB.FindFirstReq.PrmCnt TotalParamCount
2020-06-17 19:05:36 +00:00
.DA 0 TotalDataCount
2021-01-12 21:14:13 +00:00
.DA 10 MaxParameterCount
.DA 460 MaxDataCount
2020-06-17 19:05:36 +00:00
.DA #1 MaxSetupCount
.HS 00 Reserved1
.DA 0 Flags
.HS 00000000 Timeout
.HS 0000 Reserved2
2021-01-12 21:14:13 +00:00
.DA SMB.FindFirstReq.PrmCnt ParameterCount
.DA 66 ParameterOffset
2020-06-19 06:33:47 +00:00
.HS 0000 DataCount
2020-06-17 19:05:36 +00:00
.HS 0000 DataOffset
.DA #1 SetupCount
.HS 00 Reserved3
2021-01-12 21:14:13 +00:00
* FIND_FIRST2
2020-06-17 19:05:36 +00:00
.DA 1 TRANS2_FIND_FIRST2
2021-01-12 21:14:13 +00:00
.DA SMB.FindFirstReq.PrmCnt+1 INCLUDING Padding byte below
.HS 00 Padding
2020-06-17 19:05:36 +00:00
2021-01-12 21:14:13 +00:00
SMB.FindFirstReq.Prm
.DA $0016 SearchAttributes
2020-06-19 06:33:47 +00:00
.DA 1024 SearchCount
2021-01-12 21:14:13 +00:00
.DA 3 Flags
.DA $0001 InformationLevel
2020-06-17 19:05:36 +00:00
.HS 00000000 SearchStorageType
2021-01-12 21:14:13 +00:00
.AZ "\*.*" FileName
SMB.FindFirstReq.PrmCnt .EQ *-SMB.FindFirstReq.Prm
2020-06-17 19:05:36 +00:00
SMB.FindFirstReq.end
2019-06-13 15:30:28 +00:00
*--------------------------------------
.DUMMY
.OR 0
DS.START
2019-06-14 15:16:48 +00:00
SA.LOCAL .BS 1 S.SOCKADDR.AF
2019-06-13 15:30:28 +00:00
.BS 1
.BS 4 S.SOCKADDR.ADDR
.BS 2 S.SOCKADDR.PORT
2019-06-14 15:16:48 +00:00
SA.REMOTE .BS 1 S.SOCKADDR.AF
2019-06-13 15:30:28 +00:00
.BS 1
.BS 4 S.SOCKADDR.ADDR
2019-06-14 15:16:48 +00:00
.BS 2 S.SOCKADDR.PORT
2019-06-13 15:30:28 +00:00
DS.END
.ED
*--------------------------------------
MAN
2020-08-09 19:47:42 +00:00
SAVE usr/src/sbin/cifsd.s
2019-06-13 15:30:28 +00:00
ASM