Code refactor and format.

This commit is contained in:
2020-10-31 02:28:50 +00:00
parent 00b30ece2e
commit fabe9f8b40
6 changed files with 151 additions and 198 deletions

View File

@@ -86,12 +86,8 @@ int32_t SendAtaChsCommand(void* device_ctx,
case AARUREMOTE_ATA_PROTOCOL_DMA:
case AARUREMOTE_ATA_PROTOCOL_DMA_QUEUED:
case AARUREMOTE_ATA_PROTOCOL_UDMA_IN:
case AARUREMOTE_ATA_PROTOCOL_UDMA_OUT:
camccb->ataio.cmd.flags |= CAM_ATAIO_DMA;
break;
case AARUREMOTE_ATA_PROTOCOL_FPDMA:
camccb->ataio.cmd.flags |= CAM_ATAIO_FPDMA;
break;
case AARUREMOTE_ATA_PROTOCOL_UDMA_OUT: camccb->ataio.cmd.flags |= CAM_ATAIO_DMA; break;
case AARUREMOTE_ATA_PROTOCOL_FPDMA: camccb->ataio.cmd.flags |= CAM_ATAIO_FPDMA; break;
}
camccb->ataio.cmd.command = registers.command;
@@ -106,8 +102,7 @@ int32_t SendAtaChsCommand(void* device_ctx,
error = cam_send_ccb(ctx->device, camccb);
if(!clock_error)
clock_error = clock_gettime(CLOCK_REALTIME_PRECISE, &end_tp);
if(!clock_error) clock_error = clock_gettime(CLOCK_REALTIME_PRECISE, &end_tp);
if(!clock_error)
{
@@ -119,8 +114,7 @@ int32_t SendAtaChsCommand(void* device_ctx,
*duration = (uint32_t)(end - start);
}
if(error < 0)
error = errno;
if(error < 0) error = errno;
if((camccb->ccb_h.status & CAM_STATUS_MASK) != CAM_REQ_CMP &&
(camccb->ccb_h.status & CAM_STATUS_MASK) != CAM_ATA_STATUS_ERROR)
@@ -129,8 +123,7 @@ int32_t SendAtaChsCommand(void* device_ctx,
*sense = true;
}
if((camccb->ccb_h.status & CAM_STATUS_MASK) == CAM_ATA_STATUS_ERROR)
*sense = true;
if((camccb->ccb_h.status & CAM_STATUS_MASK) == CAM_ATA_STATUS_ERROR) *sense = true;
error_registers->cylinder_high = camccb->ataio.res.lba_high;
error_registers->cylinder_low = camccb->ataio.res.lba_mid;
@@ -194,12 +187,8 @@ int32_t SendAtaLba28Command(void* device_ctx,
case AARUREMOTE_ATA_PROTOCOL_DMA:
case AARUREMOTE_ATA_PROTOCOL_DMA_QUEUED:
case AARUREMOTE_ATA_PROTOCOL_UDMA_IN:
case AARUREMOTE_ATA_PROTOCOL_UDMA_OUT:
camccb->ataio.cmd.flags |= CAM_ATAIO_DMA;
break;
case AARUREMOTE_ATA_PROTOCOL_FPDMA:
camccb->ataio.cmd.flags |= CAM_ATAIO_FPDMA;
break;
case AARUREMOTE_ATA_PROTOCOL_UDMA_OUT: camccb->ataio.cmd.flags |= CAM_ATAIO_DMA; break;
case AARUREMOTE_ATA_PROTOCOL_FPDMA: camccb->ataio.cmd.flags |= CAM_ATAIO_FPDMA; break;
}
camccb->ataio.cmd.command = registers.command;
@@ -214,8 +203,7 @@ int32_t SendAtaLba28Command(void* device_ctx,
error = cam_send_ccb(ctx->device, camccb);
if(!clock_error)
clock_error = clock_gettime(CLOCK_REALTIME_PRECISE, &end_tp);
if(!clock_error) clock_error = clock_gettime(CLOCK_REALTIME_PRECISE, &end_tp);
if(!clock_error)
{
@@ -227,8 +215,7 @@ int32_t SendAtaLba28Command(void* device_ctx,
*duration = (uint32_t)(end - start);
}
if(error < 0)
error = errno;
if(error < 0) error = errno;
if((camccb->ccb_h.status & CAM_STATUS_MASK) != CAM_REQ_CMP &&
(camccb->ccb_h.status & CAM_STATUS_MASK) != CAM_ATA_STATUS_ERROR)
@@ -237,8 +224,7 @@ int32_t SendAtaLba28Command(void* device_ctx,
*sense = true;
}
if((camccb->ccb_h.status & CAM_STATUS_MASK) == CAM_ATA_STATUS_ERROR)
*sense = true;
if((camccb->ccb_h.status & CAM_STATUS_MASK) == CAM_ATA_STATUS_ERROR) *sense = true;
error_registers->lba_high = camccb->ataio.res.lba_high;
error_registers->lba_mid = camccb->ataio.res.lba_mid;
@@ -304,12 +290,8 @@ int32_t SendAtaLba48Command(void* device_ctx,
case AARUREMOTE_ATA_PROTOCOL_DMA:
case AARUREMOTE_ATA_PROTOCOL_DMA_QUEUED:
case AARUREMOTE_ATA_PROTOCOL_UDMA_IN:
case AARUREMOTE_ATA_PROTOCOL_UDMA_OUT:
camccb->ataio.cmd.flags |= CAM_ATAIO_DMA;
break;
case AARUREMOTE_ATA_PROTOCOL_FPDMA:
camccb->ataio.cmd.flags |= CAM_ATAIO_FPDMA;
break;
case AARUREMOTE_ATA_PROTOCOL_UDMA_OUT: camccb->ataio.cmd.flags |= CAM_ATAIO_DMA; break;
case AARUREMOTE_ATA_PROTOCOL_FPDMA: camccb->ataio.cmd.flags |= CAM_ATAIO_FPDMA; break;
}
camccb->ataio.cmd.command = registers.command;
@@ -329,8 +311,7 @@ int32_t SendAtaLba48Command(void* device_ctx,
error = cam_send_ccb(ctx->device, camccb);
if(!clock_error)
clock_error = clock_gettime(CLOCK_REALTIME_PRECISE, &end_tp);
if(!clock_error) clock_error = clock_gettime(CLOCK_REALTIME_PRECISE, &end_tp);
if(!clock_error)
{
@@ -342,8 +323,7 @@ int32_t SendAtaLba48Command(void* device_ctx,
*duration = (uint32_t)(end - start);
}
if(error < 0)
error = errno;
if(error < 0) error = errno;
if((camccb->ccb_h.status & CAM_STATUS_MASK) != CAM_REQ_CMP &&
(camccb->ccb_h.status & CAM_STATUS_MASK) != CAM_ATA_STATUS_ERROR)
@@ -352,8 +332,7 @@ int32_t SendAtaLba48Command(void* device_ctx,
*sense = true;
}
if((camccb->ccb_h.status & CAM_STATUS_MASK) == CAM_ATA_STATUS_ERROR)
*sense = true;
if((camccb->ccb_h.status & CAM_STATUS_MASK) == CAM_ATA_STATUS_ERROR) *sense = true;
error_registers->lba_high = (camccb->ataio.res.lba_high_exp << 8) + camccb->ataio.res.lba_high;
error_registers->lba_mid = (camccb->ataio.res.lba_mid_exp << 8) + camccb->ataio.res.lba_mid;

View File

@@ -64,8 +64,7 @@ void DeviceClose(void* device_ctx)
if(!ctx) return;
if(ctx->device)
cam_close_device(ctx->device);
if(ctx->device) cam_close_device(ctx->device);
close(ctx->fd);
@@ -99,25 +98,15 @@ int32_t GetDeviceType(void* device_ctx)
switch(camccb->cgd.protocol)
{
case PROTO_ATA:
case PROTO_SATAPM:
device_type = AARUREMOTE_DEVICE_TYPE_ATA;
break;
case PROTO_ATAPI:
device_type = AARUREMOTE_DEVICE_TYPE_ATAPI;
break;
case PROTO_SCSI:
device_type = AARUREMOTE_DEVICE_TYPE_SCSI;
break;
case PROTO_NVME:
device_type = AARUREMOTE_DEVICE_TYPE_NVME;
break;
case PROTO_SATAPM: device_type = AARUREMOTE_DEVICE_TYPE_ATA; break;
case PROTO_ATAPI: device_type = AARUREMOTE_DEVICE_TYPE_ATAPI; break;
case PROTO_SCSI: device_type = AARUREMOTE_DEVICE_TYPE_SCSI; break;
case PROTO_NVME: device_type = AARUREMOTE_DEVICE_TYPE_NVME; break;
case PROTO_MMCSD:
// TODO: MMC vs SD
device_type = AARUREMOTE_DEVICE_TYPE_MMC;
break;
default:
device_type = AARUREMOTE_DEVICE_TYPE_UNKNOWN;
break;
default: device_type = AARUREMOTE_DEVICE_TYPE_UNKNOWN; break;
}
cam_freeccb(camccb);

View File

@@ -19,8 +19,8 @@
#define AARUREMOTE_FREEBSD_FREEBSD_H_
// Included here as it seems to need to be after all others
#include <stdio.h>
#include <camlib.h>
#include <stdio.h>
typedef struct
{

View File

@@ -111,16 +111,14 @@ DeviceInfoList* ListDevices()
strncpy(list_next->this.serial, (const char*)camccb->cgd.ident_data.serial, 20);
if(strncmp(camdev->sim_name, "ahcich", 6) == 0)
strncpy(list_next->this.bus, "SATA", 5);
if(strncmp(camdev->sim_name, "ahcich", 6) == 0) strncpy(list_next->this.bus, "SATA", 5);
else
strncpy(list_next->this.bus, "ATA", 4);
// TODO: This protocol didn't work in C#, does it work in C?
list_next->this.supported = strncmp(camdev->sim_name, "ata", 3) != 0;
if(camccb->cgd.protocol == PROTO_ATAPI)
goto protocol_atapi;
if(camccb->cgd.protocol == PROTO_ATAPI) goto protocol_atapi;
break;
case PROTO_SCSI:
@@ -128,8 +126,7 @@ DeviceInfoList* ListDevices()
strncpy(list_next->this.vendor, camccb->cgd.inq_data.vendor, 8);
strncpy(list_next->this.model, camccb->cgd.inq_data.product, 16);
if(strncmp(camdev->sim_name, "ata", 3) == 0 ||
strncmp(camdev->sim_name, "ahcich", 6) == 0)
if(strncmp(camdev->sim_name, "ata", 3) == 0 || strncmp(camdev->sim_name, "ahcich", 6) == 0)
strncpy(list_next->this.bus, "ATAPI", 5);
else
strncpy(list_next->this.bus, "SCSI", 4);

View File

@@ -20,7 +20,4 @@
#include "../aaruremote.h"
#include "freebsd.h"
uint8_t GetPcmciaData(void* device_ctx, uint16_t* cis_len, char* cis)
{
return 0;
}
uint8_t GetPcmciaData(void* device_ctx, uint16_t* cis_len, char* cis) { return 0; }

View File

@@ -51,18 +51,10 @@ int32_t SendScsiCommand(void* device_ctx,
switch(direction)
{
case AARUREMOTE_SCSI_DIRECTION_NONE:
flags = CAM_DIR_NONE;
break;
case AARUREMOTE_SCSI_DIRECTION_OUT:
flags = CAM_DIR_OUT;
break;
case AARUREMOTE_SCSI_DIRECTION_IN:
flags = CAM_DIR_IN;
break;
case AARUREMOTE_SCSI_DIRECTION_INOUT:
flags = CAM_DIR_BOTH;
break;
case AARUREMOTE_SCSI_DIRECTION_NONE: flags = CAM_DIR_NONE; break;
case AARUREMOTE_SCSI_DIRECTION_OUT: flags = CAM_DIR_OUT; break;
case AARUREMOTE_SCSI_DIRECTION_IN: flags = CAM_DIR_IN; break;
case AARUREMOTE_SCSI_DIRECTION_INOUT: flags = CAM_DIR_BOTH; break;
}
if(!ctx) return -1;
@@ -88,8 +80,7 @@ int32_t SendScsiCommand(void* device_ctx,
camccb->csio.cdb_len = cdb_len;
camccb->csio.tag_action = 0x20;
if(cdb_len <= CAM_MAX_CDBLEN)
memcpy(camccb->csio.cdb_io.cdb_bytes, cdb, cdb_len);
if(cdb_len <= CAM_MAX_CDBLEN) memcpy(camccb->csio.cdb_io.cdb_bytes, cdb, cdb_len);
else
{
camccb->csio.cdb_io.cdb_ptr = (u_int8_t*)cdb;
@@ -102,8 +93,7 @@ int32_t SendScsiCommand(void* device_ctx,
error = cam_send_ccb(ctx->device, camccb);
if(!clock_error)
clock_error = clock_gettime(CLOCK_REALTIME_PRECISE, &end_tp);
if(!clock_error) clock_error = clock_gettime(CLOCK_REALTIME_PRECISE, &end_tp);
if(!clock_error)
{
@@ -115,8 +105,7 @@ int32_t SendScsiCommand(void* device_ctx,
*duration = (uint32_t)(end - start);
}
if(error < 0)
error = errno;
if(error < 0) error = errno;
if((camccb->ccb_h.status & CAM_STATUS_MASK) != CAM_REQ_CMP &&
(camccb->ccb_h.status & CAM_STATUS_MASK) != CAM_SCSI_STATUS_ERROR)
@@ -137,7 +126,9 @@ int32_t SendScsiCommand(void* device_ctx,
*sense = (camccb->ccb_h.status & CAM_STATUS_MASK) == CAM_SCSI_STATUS_ERROR;
*sense_buffer = malloc(camccb->csio.sense_len - camccb->csio.sense_resid);
(*sense_buffer)[0] = camccb->csio.sense_data.error_code;
memcpy((*sense_buffer)+1, camccb->csio.sense_data.sense_buf, (camccb->csio.sense_len - camccb->csio.sense_resid) - 1);
memcpy((*sense_buffer) + 1,
camccb->csio.sense_data.sense_buf,
(camccb->csio.sense_len - camccb->csio.sense_resid) - 1);
}
cam_freeccb(camccb);