amiga-news DEUTSCHE VERSION
.
Links| Forums| Comments| Report news
.
Chat| Polls| Newsticker| Archive
.

amiga-news.de Forum > Programmierung > SCSI Direct - Buffer Frage [ - Search - New posts - Register - Login - ]

-1- [ - Post reply - ]

2016-01-11, 13:20 h

Thore
Posts: 2266
User
Hi, habe ein kleines Verständnisproblem zur Programmierung von SCSI Direct, und hoffe jemand von euch kann mir helfen.
In Sachen SCSI Direct Programmierung bin ich ein Neuling.
Ich möchte einen beliebigen Block eines Laufwerks auslesen. Dazu habe ich gemacht:
1. Req Port, Devcice etc geöffnet
2. CDB mit SCSI_READ_10 Felder ausgefüllt
3. ioReq und SCSICmd ausgefüllt
4. DoIO ausgeführt.
5. Zeug wieder geschlossen.
Soweit scheint alles ohne Fehler durchzulaufen, aber mein Buffer bleibt leer.
Den Buffer habe ich im scmd.scsi_Data = (UWORD *)buffer eingehängt und die Länge auf die Blocksize gestellt. Im CDB steht der Sektor / Blocksize drin (was wohl der LBA entspricht).
Wird der Buffer nicht in dieses Feld geschrieben? Wenn nein, wo landen die Daten?
Vielen Dank

[ - Answer - Quote - Direct link - ]

2016-01-11, 20:25 h

thomas
Posts: 7718
User
Du solltest dich nicht darauf verlassen, dass alles zu laufen "scheint", sondern die Fehlercodes überprüfen.

DoIO gibt einen Fehlercode zurück, der auch im io_Error Feld steht. Darüberhinaus steht in io_Actual, wieviel übertragen wurde (hier vermutlich nur die Größe des scsicmd). Der scsicmd enthält auch ein Status- und ein Actual-Feld, die darauf hindeuten, was schiefgelaufen ist.


--
Email: thomas-rapp@web.de
Home: thomas-rapp.homepage.t-online.de/

[ - Answer - Quote - Direct link - ]

2016-01-16, 09:13 h

Thore
Posts: 2266
User
Der Fehlercode ist 45.
Soweit ich weiß ist das BadStatus.
Der Status ist 2.
Wo sind denn die Status definiert?

[ - Answer - Quote - Direct link - ]

2016-01-16, 12:23 h

thomas
Posts: 7718
User
@Thore:

Z.B. im SCSI Architecture Model - 3.pdf.

Status 2 ist CHECK CONDITION, das heißt soviel wie "irgendwas ist falsch". Mehr Details liefern die Sense-Daten. Schau dir mal das Beispiel an, das ich dir im Pegasos-Forum verlinkt habe, das zeigt, wie man die Sense-Daten aufdröselt.

Beschrieben ist das im SCSI Primary Commands - 3.pdf.


--
Email: thomas-rapp@web.de
Home: thomas-rapp.homepage.t-online.de/

[ - Answer - Quote - Direct link - ]

2016-01-16, 17:21 h

naTmeg
Posts: 24
User
Schau mal in meinen Sourcen bei exfatfs, ulsata2 auf http://www.219.dic.at oder Poste den Source code hier. Vielleicht seh ich den Fehler sofort...

Edit: Linkfix, thx hjoerg :)


[ Dieser Beitrag wurde von naTmeg am 16.01.2016 um 23:11 Uhr geändert. ]

[ - Answer - Quote - Direct link - ]

2016-01-16, 19:37 h

hjoerg
Posts: 3854
User
Zitat:
Original von naTmeg:
Schau mal in meinen Sourcen bei exfatfs, ulsata2 auf http://www.219.dic.at, oder Poste den Source code hier. Vielleicht seh ich den Fehler sofort...


Der LINK hat ein Komma, dass hab ich sofort gesehen. :D

Kommas sind in Adressen nicht zulässig.
--
WinUAE Fan
hjörg :dance2:
For Player only

"Wenn ich dir Recht gebe, liegen wir beide falsch"

[ - Answer - Quote - Direct link - ]


-1- [ - Post reply - ]


amiga-news.de Forum > Programmierung > SCSI Direct - Buffer Frage [ - Search - New posts - Register - Login - ]


.
Masthead | Privacy policy | Netiquette | Advertising | Contact
Copyright © 1998-2024 by amiga-news.de - all rights reserved.
.