Date: Fri, 29 May 1998 19:03:23 +0200 (MET DST) From: Joerg Schilling <schilling@fokus.gmd.de> To: mike@smith.net.au, schilling@fokus.gmd.de Cc: freebsd-current@FreeBSD.ORG Subject: Re: cdrecord trouble on currnet Message-ID: <199805291703.TAA14897@sherwood.gmd.de>
next in thread | raw e-mail | index | archive | help
>From mike@antipodes.cdrom.com Fri May 29 18:26:05 1998
>> First some notes. You are discussing things related to cdrecord.
>> If you like to see your effort back in the main stream cdrecord, this
>> is definitely the wring mailing list.
>It's a good place to deal with the specifics of making cdrecord work on =
>FreeBSD though. It's certainly unlikely that Peter would have been =
I see that this should be discussed on the FreeBSD list too, but if you like
to get help from me, you could not get it from freebsd-current, I am not
subscribed.
>The FreeBSD Posix implementation is still under development, and the =
>scheduler module is an optional addition (as allowed for under the =
>spec.). Cdrecord doesn't make the required runtime check for the =
>presence of the desired functionality.
OK, but this is a new issue. It never has been nessecary before.
If other operating systems will start to behave similar, it would make
autoconfiguration a lot more complex.
>> >> > Bus error (core dumped)
>> =
>> If you are not able to analyze the core with adb and send a usable
>> bug description, I cannot help..
>The bus error is (in my case at any rate) due to a buffer overrun =
>elsewhere. I haven't been able to ascertain the cause of this yet, but =
>there are indications that winding back the visible Posix interface =
>resolves the issue.
I am interested to find the reason for this core dump as it should not
happen. Some versions of HP-UX have the definition for POSIX RR and do not
implement it. On such HP_UX versions you usually get a warning about
the non existence of RR scheduling and cdrecord then uses nice(2).
I even may remove the warning if I an sure that no-one cares about the
non existing RR class.
I am testing cdrecord on all systems I can get hold of in a way that allows
testing to me (root access). As the SCSI implementations usually are not
sufficient, development and testing is mainly done on Solaris.
>We're not talking about "rubbish". We're talking about an
>in-development implementation of the Posix environment.
OK, I understand. BTW: I would be happy if the user interface of the new
SCSI user transport calls would be easier to access and to understand.
In other words:
I like to have the device files be present by default so that
programs like cdrecord onlu have to open the right file to get
access to the device.
>> On SVr4 systems the _POSIX_PRIORITY_SCHEDULING is definitely worse
>> than the RT priocntl() interface and proicntl with RR scheduling is eve=
>n
>> available since the early days of SVr4. I cannot change the source in a=
> way
>> that only makes sure that nothing works after the change.
>This sounds like "rubbish" in SysV.
I I would not call this rubbish, it is available since 1988/1989 - years before
POSIX realtime enhanceements have beendefined and it grants you to be able to
run a process at a higher priority than you pager.
>> The scg drvier which I wrote in 1986 is based on this interface and
>> itself is the base for my portable SCSI user-level command transport
>> system. It should be faily easy to make a CAM adoption layer for scg.
>It was. The real problems with scg have to do with the lack of visible
>documentation. It is unclear how to do any sort of meaningful error
>handling, or whether this should be managed at a lower level. Again,
>this is an issue I was postponing until I had established that
>everything else was going to behave and the interface had stabilised.
OK, here is what I send to Sun some weeks ago:
If you like to do a quick hack:
- scsi_open() is currenltly not able to use anything but busno,target,lun
You would get into trouble if you like to open /dev/rdsk/*
- The interface funkctions are (currently):
scsi_open()
prepare a handle for later use with scsi_send()
scsi_maxdma()
return the max. amount of contiguous DMA on the current
architecture
scsi_getbuf(amt)
allocate a (currently global - later open-specific)
buffer of size 'amt' but not grater than scsi_maxdma()
scsi_havebuf(busno)
return TRUE/FALSE on whether the current machine
includes a SCSI bus 'busno'
scsi_fileno(bus, tgt, lun)
return a filedescriptor to be used for the SCSI
send ioctl. The filedesscriptor mus be the right
one for bus/tgt/lun
scsieset()
as it says, need not to be implemented.
scsi_send(f, struct scg_cmd *)
Simulate the scg SCSI send command ioctl.
returns: -1 usage error(e.g. EINVAL ....)
0 All other
see scgio.h for a description of the fields in the struct.
cmd->resid is set to the DMA residual count
cmd-error is set to one of:
SCG_NO_ERROR SCSI transport without error
this is true for most failed
commands too !!!!
SCG_FATAL could not select target
SCG_TIMEOUT a SCSI timeout occured
SCG_RETRYABLE any other case
cmd->ux_errno is set to the UNIX errno for a
failed command (note: parameter error are covered above)
cmd->scb is set to the SCSI Status byte for the command
note there is currently no sense status
cmd->sense must be filled with auto-sense data if the
comand fails.
cmd->sense_count must be set to the # of valid sense bytes
/*--------------------------------------------------------------------------*/
I decided to make the SCSI ABI testuite available before I start to create
a separate SCSI library.
Jörg
EMail:joerg@schily.isdn.cs.tu-berlin.de (home) Jörg Schilling D-13353 Berlin
js@cs.tu-berlin.de (uni) If you don't have iso-8859-1
schilling@fokus.gmd.de (work) chars I am J"org Schilling
URL: http://www.fokus.gmd.de/usr/schilling ftp://ftp.fokus.gmd.de/pub/unix
To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-current" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199805291703.TAA14897>
