* Use dprintf_no_syslog() for FLOW and everything in scsi2ata.c - this prevents

endless writing to the syslog.
* Minor cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25237 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
Axel Dörfler 2008-04-29 08:11:43 +00:00
parent 0cadc931d2
commit 66cb8f0ede
3 changed files with 40 additions and 39 deletions

View File

@ -1,5 +1,5 @@
/*
* Copyright 2004-2007, Haiku, Inc. All RightsReserved.
* Copyright 2004-2008, Haiku, Inc. All RightsReserved.
* Copyright 2002/03, Thomas Kurschel. All rights reserved.
*
* Distributed under the terms of the MIT License.
@ -8,7 +8,7 @@
/*
Part of Open IDE bus manager
Converts SCSI commands to ATA commands.
Converts SCSI commands to ATA commands.
*/
@ -18,8 +18,8 @@
#include <string.h>
#define TRACE dprintf
#define FLOW dprintf
#define TRACE dprintf_no_syslog
#define FLOW dprintf_no_syslog
@ -80,7 +80,7 @@ scsi_mode_sense_10(ide_device_info *device, ata_request *request)
copy_sg_data(ccb, 0, allocationLength, &param_header,
sizeof(param_header), false);
/*block_desc = (scsi_mode_param_block_desc *)(ccb->data
/*block_desc = (scsi_mode_param_block_desc *)(ccb->data
+ sizeof(*param_header));*/
memset(&block_desc, 0, sizeof(block_desc));
// density is reserved (0), descriptor apply to entire medium (num_blocks=0)
@ -92,16 +92,16 @@ scsi_mode_sense_10(ide_device_info *device, ata_request *request)
copy_sg_data(ccb, sizeof(param_header), allocationLength,
&block_desc, sizeof(block_desc), false);
/*contr = (scsi_modepage_contr *)(ccb->data
/*contr = (scsi_modepage_contr *)(ccb->data
+ sizeof(*param_header)
+ ((uint16)param_header->high_block_desc_len << 8)
+ ((uint16)param_header->high_block_desc_len << 8)
+ param_header->low_block_desc_len);*/
memset(&control, 0, sizeof(control));
control.RLEC = false;
control.DQue = 1;//!device->CQ_enabled;
control.QErr = false;
// when a command fails we requeue all
// when a command fails we requeue all
// lost commands automagically
control.QAM = SCSI_QAM_UNRESTRICTED;
@ -167,7 +167,7 @@ scsi_mode_select_10(ide_device_info *device, ata_request *request)
modepageOffset = sizeof(param_header)
+ B_BENDIAN_TO_HOST_INT16(param_header.block_desc_length);
// go through list of pages
// go through list of pages
while (modepageOffset < totalLength) {
uint32 pageLength;
@ -226,7 +226,7 @@ scsi_test_unit_ready(ide_device_info *device, ata_request *request)
|| device->infoblock._127_RMSN_support != 1)
return;
// ask device about status
// ask device about status
device->tf_param_mask = 0;
device->tf.write.command = IDE_CMD_GET_MEDIA_STATUS;
@ -238,7 +238,7 @@ scsi_test_unit_ready(ide_device_info *device, ata_request *request)
// bits ide_error_mcr | ide_error_mc | ide_error_wp are also valid
// but not requested by TUR; ide_error_wp can safely be ignored, but
// we don't want to loose media change (request) reports
ata_finish_command(device, request, ATA_WAIT_FINISH | ATA_DRDY_REQUIRED,
ata_finish_command(device, request, ATA_WAIT_FINISH | ATA_DRDY_REQUIRED,
ide_error_nm | ide_error_abrt | ide_error_mcr | ide_error_mc);
// SCSI spec is unclear here: we shouldn't report "media change (request)"
// but what to do if there is one? anyway - we report them
@ -258,7 +258,7 @@ scsi_synchronize_cache(ide_device_info *device, ata_request *request)
return true;
device->tf_param_mask = 0;
device->tf.lba.command = device->use_48bits ? IDE_CMD_FLUSH_CACHE_EXT
device->tf.lba.command = device->use_48bits ? IDE_CMD_FLUSH_CACHE_EXT
: IDE_CMD_FLUSH_CACHE;
// spec says that this may take more then 30s, how much more?
@ -350,9 +350,9 @@ scsi_inquiry(ide_device_info *device, ata_request *request)
data.relative_address = false;
// the following fields are *much* to small, sigh...
memcpy(data.vendor_ident, device->infoblock.model_number,
memcpy(data.vendor_ident, device->infoblock.model_number,
sizeof(data.vendor_ident));
memcpy(data.product_ident, device->infoblock.model_number + 8,
memcpy(data.product_ident, device->infoblock.model_number + 8,
sizeof(data.product_ident));
memcpy(data.product_rev, " ", sizeof(data.product_rev));
@ -428,9 +428,9 @@ void
ata_exec_io(ide_device_info *device, ata_request *request)
{
scsi_ccb *ccb = request->ccb;
//FLOW("ata_exec_io: scsi command 0x%02x\n", ccb->cdb[0]);
// ATA devices have one LUN only
if (ccb->target_lun != 0) {
FLOW("ata_exec_io: wrong target lun\n");
@ -463,7 +463,7 @@ ata_exec_io(ide_device_info *device, ata_request *request)
ata_request_set_sense(request, SCSIS_KEY_ILLEGAL_REQUEST, SCSIS_ASC_INV_OPCODE);
break;
case SCSI_OP_INQUIRY:
case SCSI_OP_INQUIRY:
scsi_inquiry(device, request);
break;
@ -523,7 +523,7 @@ ata_exec_io(ide_device_info *device, ata_request *request)
break;
case SCSI_OP_SYNCHRONIZE_CACHE:
// we ignore range and immediate bit, we always immediately flush everything
// we ignore range and immediate bit, we always immediately flush everything
scsi_synchronize_cache(device, request);
break;

View File

@ -7,7 +7,7 @@
Part of Open SCSI Disk Driver
Main file.
You'll find das_... all over the place. This stands for
"Direct Access Storage" which is the official SCSI name for
normal (floppy/hard/ZIP)-disk drives.
@ -62,7 +62,7 @@ update_capacity(das_device_info *device)
device->scsi->free_ccb(ccb);
return res;
return res;
}
@ -104,9 +104,9 @@ get_geometry(das_handle_info *handle, void *buf, size_t len)
geometry->removable,
geometry->read_only,
geometry->write_once);
SHOW_FLOW0(3, "done");
return B_OK;
}
@ -121,7 +121,7 @@ load_eject(das_device_info *device, bool load)
ccb = device->scsi->alloc_ccb(device->scsi_device);
res = scsi_periph->send_start_stop(device->scsi_periph_device,
res = scsi_periph->send_start_stop(device->scsi_periph_device,
ccb, load, true);
device->scsi->free_ccb(ccb);
@ -135,18 +135,19 @@ synchronize_cache(das_device_info *device)
{
scsi_ccb *ccb;
err_res res;
SHOW_FLOW0( 0, "" );
SHOW_FLOW0(0, "");
ccb = device->scsi->alloc_ccb(device->scsi_device);
res = scsi_periph->synchronize_cache(device->scsi_periph_device, ccb);
device->scsi->free_ccb(ccb);
return res.error_code;
}
static int
log2(uint32 x)
{
@ -166,7 +167,7 @@ das_set_capacity(das_device_info *device, uint64 capacity,
{
uint32 ld_block_size;
SHOW_FLOW(3, "device=%p, capacity=%Ld, block_size=%ld",
SHOW_FLOW(3, "device=%p, capacity=%Ld, block_size=%ld",
device, capacity, block_size);
// get log2, if possible
@ -178,7 +179,7 @@ das_set_capacity(das_device_info *device, uint64 capacity,
device->capacity = capacity;
device->block_size = block_size;
gBlockIO->set_media_params(device->block_io_device, block_size,
gBlockIO->set_media_params(device->block_io_device, block_size,
ld_block_size, capacity);
}
@ -218,7 +219,7 @@ das_ioctl(das_handle_info *handle, int op, void *buf, size_t len)
break;
case B_GET_ICON:
res = scsi_periph->get_icon(device->removable ? icon_type_floppy : icon_type_disk,
res = scsi_periph->get_icon(device->removable ? icon_type_floppy : icon_type_disk,
(device_icon *)buf);
break;
@ -231,9 +232,9 @@ das_ioctl(das_handle_info *handle, int op, void *buf, size_t len)
res = load_eject(device, true);
break;
case B_FLUSH_DRIVE_CACHE:
res = synchronize_cache(device);
break;
case B_FLUSH_DRIVE_CACHE:
res = synchronize_cache(device);
break;
default:
res = scsi_periph->ioctl(handle->scsi_periph_handle, op, buf, len);
@ -265,7 +266,7 @@ das_supports_device(device_node_handle parent, bool *_noConnection)
|| device_type != scsi_dev_direct_access) {
free(bus);
return 0.0;
}
}
free(bus);
return 0.6;
@ -333,7 +334,7 @@ block_device_interface scsi_dsk_module = {
};
#if !_BUILDING_kernel && !BOOT
_EXPORT
_EXPORT
module_info *modules[] = {
(module_info *)&scsi_dsk_module,
NULL

View File

@ -17,7 +17,7 @@
#ifdef DEBUG_WAIT_ON_MSG
# define DEBUG_WAIT snooze( DEBUG_WAIT_ON_MSG );
#else
# define DEBUG_WAIT
# define DEBUG_WAIT
#endif
#ifdef DEBUG_WAIT_ON_ERROR
@ -58,12 +58,12 @@
#define SHOW_FLOW(seriousness, format, param...) \
do { if( seriousness <= debug_level_flow && seriousness <= DEBUG_MAX_LEVEL_FLOW ) { \
dprintf( "%s%s: "format"\n", FUNC_NAME, param ); DEBUG_WAIT \
dprintf_no_syslog( "%s%s: "format"\n", FUNC_NAME, param ); DEBUG_WAIT \
}} while( 0 )
#define SHOW_FLOW0(seriousness, format) \
do { if( seriousness <= debug_level_flow && seriousness <= DEBUG_MAX_LEVEL_FLOW ) { \
dprintf( "%s%s: "format"\n", FUNC_NAME); DEBUG_WAIT \
dprintf_no_syslog( "%s%s: "format"\n", FUNC_NAME); DEBUG_WAIT \
}} while( 0 )
#define SHOW_INFO(seriousness, format, param...) \