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: 7718 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: 7718 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: 3854 Nutzer |
Zitat: Der LINK hat ein Komma, dass hab ich sofort gesehen. Kommas sind in Adressen nicht zulässig. -- WinUAE Fan hjörg 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. |