Jump to content

FS DOPAGEIO: Difference between revisions

From EDM2
Ak120 (talk | contribs)
mNo edit summary
No edit summary
 
Line 47: Line 47:


For a detailed description of the Extended Strategy request interface please see the OS/2 Version 2.0 Physical Device Driver Reference.
For a detailed description of the Extended Strategy request interface please see the OS/2 Version 2.0 Physical Device Driver Reference.
[[Category:IFS Interfaces]]

Latest revision as of 21:33, 20 November 2019

Performs all the I/O operations in a PageCmdList.

Syntax

int far pascal FS_DOPAGEIO(psffsi, psffsd, pList)

Parameters

psffsi
is a pointer to the file-system-independent portion of an open file instance.
psffsd
is a pointer to the file-system-dependent portion of an open file instance.
pList
is a pointer to a PageCmdHeader structure.

The PageCmdHeader structure has the following format:

struct PageCmdHeader {
   unsigned char  InFlags;      /* Input Flags                        */
   unsigned char  OutFlags;     /* Output Flags - must be 0 on entry  */
   unsigned char  OpCount;      /* Number of operations               */
   unsigned char  Pad;          /* Pad for DWORD alignment            */
   unsigned long  Reserved1;    /* Currently Unused                   */
   unsigned long  Reserved2;    /* Currently Unused                   */
   unsigned long  Reserved3;    /* Currently Unused                   */
   struct PageCmd PageCmdList;  /* Currently Unused                   */ 
}

The PageCmd structure has the following format:

struct PageCmd {    
   unsigned char Cmd;           /* Cmd Code (Read,Write,Verify)       */    
   unsigned char Priority;      /* Same values as for req packets     */    
   unsigned char Status;        /* Status byte                        */    
   unsigned char Error;         /* I24 error code                     */
   unsigned long Addr;          /* Physical(0:32) or Virtual(16:16)   */
   unsigned long FileOffset;    /* Byte Offset in page file  */
}

Returns

Sample

struct sffsi far * psffsi;
struct sffsd far * psffsd;
struct PageCmdHeader far * pList;

int far pascal FS_DOPAGEIO(psffsi, psffsd, pList)

Remarks

FS_DOPAGEIO performs all the I/O operations specified in the PageCmdList.

If the disk driver Extended Strategy requests, a request list will be built from the PageCmdList and issued to the driver.

If the disk driver does not support Extended Strategy requests, the FSD can either let the kernel do the emulation (See FS_OPENPAGEFILE to set this state) or has the option to do the emulation itself.

For a detailed description of the Extended Strategy request interface please see the OS/2 Version 2.0 Physical Device Driver Reference.