Re: DOS server debugging continues

From: Mike A Larson <larz_at_nospam.org>
Date: Sun Jun 25 1995 - 08:51:26 PDT

[David Jeske <jeske@igcom.net> writes:]
> Actually, after looking through fdl.c from libc and the cam code, I don't
> understand how "read()" could ever read more than 4096 bytes. Which it
> clearly does when the DOS server is started as a boot server from the
> boot.lst. (otherwise it wouldn't be able to read ANY FATs over 4096 bytes)

Hi David,

(Please note that I don't have access to the full VSTa source
tree right now - some of this is from memory.)

From the cam side of things, pdisk_rwio() (the disk read/write function)
passes off to cam_start_rwio() to process read/write requests.
cam_start_rwio() checks the transfer size - if its greater than
MAXIO, the transfer size is truncated to MAXIO. When the transfer
completes, cam_cntuio() is called. cam_cntuio() checks to see
if more data needs to be transfered, and if so, starts another
transfer for up to MAXIO bytes. The process is repeated until
the original request is satisfied (or until there is an error).

You may want to put some print statements in the cam server to
see what's going on. One thing to try is putting a print statement
after the disk driver calls dpart_get_offset() and see if the
block count is what you expect.

Hope this helps.

                                        Mike Larson
Received on Thu Jun 29 18:49:56 1995

This archive was generated by hypermail 2.1.8 : Thu Sep 22 2005 - 15:12:27 PDT