amiga-news ENGLISH VERSION
.
Links| Forum| Kommentare| News melden
.
Chat| Umfragen| Newsticker| Archiv
.

amiga-news.de Forum > Programmierung > SCSI Direct - Buffer Frage [ - Suche - Neue Beiträge - Registrieren - Login - ]

-1- [ - Beitrag schreiben - ]

11.01.2016, 13:20 Uhr

Thore
Posts: 2266
Nutzer
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

[ - Antworten - Zitieren - Direktlink - ]

11.01.2016, 20:25 Uhr

thomas
Posts: 7716
Nutzer
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/

[ - Antworten - Zitieren - Direktlink - ]

16.01.2016, 09:13 Uhr

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

[ - Antworten - Zitieren - Direktlink - ]

16.01.2016, 12:23 Uhr

thomas
Posts: 7716
Nutzer
@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/

[ - Antworten - Zitieren - Direktlink - ]

16.01.2016, 17:21 Uhr

naTmeg
Posts: 24
Nutzer
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. ]

[ - Antworten - Zitieren - Direktlink - ]

16.01.2016, 19:37 Uhr

hjoerg
Posts: 3853
Nutzer
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"

[ - Antworten - Zitieren - Direktlink - ]


-1- [ - Beitrag schreiben - ]


amiga-news.de Forum > Programmierung > SCSI Direct - Buffer Frage [ - Suche - Neue Beiträge - Registrieren - Login - ]


.
Impressum | Datenschutzerklärung | Netiquette | Werbung | Kontakt
Copyright © 1998-2024 by amiga-news.de - alle Rechte vorbehalten.
.