Jump to content

IFS - FS Service Routines: Difference between revisions

From EDM2
No edit summary
Ak120 (talk | contribs)
m gerümpel
 
(2 intermediate revisions by one other user not shown)
Line 1: Line 1:
{{IFSRef}}
{{IFSRef}}
{{IBM-Reprint}}
{{IBM-Reprint}}
The following table summarizes the entry points that make up the interface between the kernel and the FSD. 


;Note: Names must be in all upper case, as required by OS/2 naming conventions.  
The following table summarizes the entry points that make up the interface between the kernel and the FSD.


;Note: Names must be in all upper case, as required by OS/2 naming conventions.
{|class="wikitable"
!FS Entry Point||Description||FSDs Required to export
|-
|[[FS_ALLOCATEPAGESPACE]]||Adjust the size of paging file||PAGE I/O
|-
|[[FS_ATTACH]]||Attach to an FSD||ALL
|-
|[[FS_CANCELLOCKREQUEST]]||Cancel file record lock request||FILE I/O
|-
|[[FS_CHDIR]]||Change/Verify directory path||ALL
|-
|[[FS_CHGFILEPTR]]||Move a file's position pointer||ALL
|-
|[[FS_CLOSE]]||Release a file handle||ALL
|-
|[[FS_COMMIT]]||Flush a file's buffer to disk||ALL
|-
|[[FS_COPY]]||Copy a file||ALL
|-
|[[FS_DELETE]]||Delete a file||ALL
|-
|[[FS_DOPAGEIO]]||Perform paging I/O operations||PAGE I/O
|-
|[[FS_EXIT]]||End of a process cleanup||ALL
|-
|[[FS_FILEATTRIBUTE]]||Query/Set file's attributes||ALL
|-
|[[FS_FILEINFO]]||Query/Set file's information||ALL
|-
|[[FS_FILEIO]]||Multi-function file I/O||ALL
|-
|[[FS_FILELOCKS]]||Request a file record lock/unlock||FILE I/O
|-
|[[FS_FINDCLOSE]]||Directory search close||ALL
|-
|[[FS_FINDFIRST]]||Find first matching filename||ALL
|-
|[[FS_FINDFROMNAME]]||Find matching filename from name||ALL
|-
|[[FS_FINDNEXT]]||Find next matching filename||ALL
|-
|[[FS_FINDNOTIFYCLOSE]]||Close FindNotify handle||ALL
|-
|[[FS_FINDNOTIFYFIRST]]||Monitor a directory for changes||ALL
|-
|[[FS_FINDNOTIFYNEXT]]||Resume reporting directory changes||ALL
|-
|[[FS_FLUSHBUF]]||Commit file buffers to disk||ALL
|-
|[[FS_FSCTL]]||File system control||ALL
|-
|[[FS_FSINFO]]||Query/Set file system information||ALL
|-
|[[FS_INIT]]||FSD initialization||ALL
|-
|[[FS_IOCTL]]||I/O device control||ALL
|-
|[[FS_MKDIR]]||Make a directory||ALL
|-
|[[FS_MOUNT]]||Mount/unmount volumes||ALL
|-
|[[FS_MOVE]]||Move a file or subdirectory||ALL
|-
|[[FS_NEWSIZE]]||Change a file's logical size||ALL
|-
|[[FS_NMPIPE]]||Do a named pipe operation||ALL
|-
|[[FS_OPENCREATE]]||Open/create/replace files||ALL
|-
|[[FS_OPENPAGEFILE]]||Create paging file and handle||PAGE I/O
|-
|[[FS_PATHINFO]]||Query/Set a file's information||ALL
|-
|[[FS_PROCESSNAME]]||FSD unique name canonicalization||ALL
|-
|[[FS_READ]]||Read data from a file||ALL
|-
|[[FS_RMDIR]]||Remove a subdirectory||ALL
|-
|[[FS_SETSWAP]]||Notification of swapfile ownership||ALL
|-
|[[FS_SHUTDOWN]]||Shutdown file system||ALL
|-
|[[FS_VERIFYUNCNAME]]||Verify UNC server ownership||UNC
|-
|[[FS_WRITE]]||Write data to a file||ALL
|}
Each FS entry point has a distinct parameter list composed of those parameters needed by that particular entry. Parameters include:
*File pathname
*Current disk/directory information
*Open file information
*Application data buffers
*Descriptions of file extended attributes
*Other parameters specific to an individual call
Most of the FS entry points have a level parameter for specifying the level of information they are provided or have to supply. FSDs must provide for additional levels which may be added in future versions of OS/2 by returning ERROR_NOT_SUPPORTED for any level they do not recognize.


FS Entry Point      Description                        FSDs Required
File system drivers which support hierarchical directory structures must use '\' and '/' as path name component separators. File system drivers which do not support hierarchical directory structures must reject as illegal any use of '\' or '/' in path names. The file names '.' and '..' are reserved for use in hierarchical directory structures for the current directory and the parent of the current directory, respectively.
                                                          to export
────────────────────────────────────────────────────────────────────────
FS_ALLOCATEPAGESPACE Adjust the size of paging file      PAGE I/O
────────────────────────────────────────────────────────────────────────
[[FS_ATTACH]]            Attach to an FSD                    ALL
────────────────────────────────────────────────────────────────────────
FS_CANCELLOCKREQUEST Cancel file record lock request    FILE I/O
────────────────────────────────────────────────────────────────────────
FS_CHDIR            Change/Verify directory path        ALL
────────────────────────────────────────────────────────────────────────
FS_CHGFILEPTR        Move a file's position pointer      ALL
────────────────────────────────────────────────────────────────────────
FS_CLOSE            Release a file handle              ALL
────────────────────────────────────────────────────────────────────────
FS_COMMIT            Flush a file's buffer to disk      ALL
────────────────────────────────────────────────────────────────────────
FS_COPY              Copy a file                        ALL
────────────────────────────────────────────────────────────────────────
FS_DELETE            Delete a file                      ALL
────────────────────────────────────────────────────────────────────────
FS_DOPAGEIO          Perform paging I/O operations      PAGE I/O
────────────────────────────────────────────────────────────────────────
FS_EXIT              End of a process cleanup            ALL
────────────────────────────────────────────────────────────────────────
FS_FILEATTRIBUTE    Query/Set file's attributes        ALL
────────────────────────────────────────────────────────────────────────
FS_FILEINFO          Query/Set file's information        ALL
────────────────────────────────────────────────────────────────────────
FS_FILEIO            Multi-function file I/O            ALL
────────────────────────────────────────────────────────────────────────
FS_FILELOCKS        Request a file record lock/unlock  FILE I/O
────────────────────────────────────────────────────────────────────────
FS_FINDCLOSE        Directory search close              ALL
────────────────────────────────────────────────────────────────────────
FS_FINDFIRST        Find first matching filename        ALL
────────────────────────────────────────────────────────────────────────
FS_FINDFROMNAME      Find matching filename from name   ALL
────────────────────────────────────────────────────────────────────────
FS_FINDNEXT          Find next matching filename        ALL
────────────────────────────────────────────────────────────────────────
FS_FINDNOTIFYCLOSE  Close FindNotify handle            ALL
────────────────────────────────────────────────────────────────────────
FS_FINDNOTIFYFIRST  Monitor a directory for changes    ALL
────────────────────────────────────────────────────────────────────────
FS_FINDNOTIFYNEXT    Resume reporting directory changes  ALL
────────────────────────────────────────────────────────────────────────
FS_FLUSHBUF          Commit file buffers to disk        ALL
────────────────────────────────────────────────────────────────────────
FS_FSCTL            File system control                ALL
────────────────────────────────────────────────────────────────────────
FS_FSINFO            Query/Set file system information  ALL
────────────────────────────────────────────────────────────────────────
FS_INIT              FSD initialization                  ALL
────────────────────────────────────────────────────────────────────────
FS_IOCTL            I/O device control                  ALL
────────────────────────────────────────────────────────────────────────
FS_MKDIR            Make a directory                   ALL
────────────────────────────────────────────────────────────────────────
FS_MOUNT            Mount/unmount volumes              ALL
────────────────────────────────────────────────────────────────────────
FS_MOVE              Move a file or subdirectory        ALL
────────────────────────────────────────────────────────────────────────
FS_NEWSIZE          Change a file's logical size        ALL
────────────────────────────────────────────────────────────────────────
FS_NMPIPE            Do a named pipe operation          ALL
────────────────────────────────────────────────────────────────────────
FS_OPENCREATE        Open/create/replace files          ALL
────────────────────────────────────────────────────────────────────────
FS_OPENPAGEFILE      Create paging file and handle      PAGE I/O
────────────────────────────────────────────────────────────────────────
FS_PATHINFO          Query/Set a file's information      ALL
────────────────────────────────────────────────────────────────────────
FS_PROCESSNAME      FSD unique name canonicalization    ALL
────────────────────────────────────────────────────────────────────────
FS_READ              Read data from a file              ALL
────────────────────────────────────────────────────────────────────────
FS_RMDIR            Remove a subdirectory              ALL
────────────────────────────────────────────────────────────────────────
FS_SETSWAP          Notification of swapfile ownership  ALL
────────────────────────────────────────────────────────────────────────
FS_SHUTDOWN          Shutdown file system                ALL
────────────────────────────────────────────────────────────────────────
FS_VERIFYUNCNAME    Verify UNC server ownership        UNC
────────────────────────────────────────────────────────────────────────
FS_WRITE            Write data to a file                ALL


Each FS entry point has a distinct parameter list composed of those parameters needed by that particular entry. Parameters include: 
Unless otherwise specified in the descriptions below, data buffers may be accessed without concern for the accessibility of the data. OS/2 will either check buffers for accessibility and lock them, or transfer them into locally accessible data areas.


*File pathname
Simple parameters will be verified by the IFS router before the FS service routine is called.
*Current disk/directory information
*Open file information
*Application data buffers
*Descriptions of file extended attributes
*Other parameters specific to an individual call


Most of the FS entry points have a level parameter for specifying the level of information they are provided or have to supply. FSDs must provide for additional levels which may be added in future versions of OS/2 by returning ERROR_NOT_ SUPPORTED for any level they do not recognize. 
;Note: New with 2.0, some entry points need only be exported and supported by those FSDs which desire to service the pager (PAGE I/0), UNC servers (UNC) and/or file locking (FILE I/O). With these new entry point groups, a FSD must export all or none of the entry points within a particular group.
 
File system drivers which support hierarchical directory structures must use '\' and '/' as path name component separators. File system drivers which do not support hierarchical directory structures must reject as illegal any use of '\' or '/' in path names. The file names '.' and '..' are reserved for use in hierarchical directory structures for the current directory and the parent of the current directory, respectively. 
 
Unless otherwise specified in the descriptions below, data buffers may be accessed without concern for the accessibility of the data. OS/2 will either check buffers for accessibility and lock them, or transfer them into locally accessible data areas. 
 
Simple parameters will be verified by the IFS router before the FS service routine is called. 
 
;Note: New with 2.0, some entry points need only be exported and supported by those FSDs which desire to service the pager (PAGE I/0), UNC servers (UNC) and/or file locking (FILE I/O). With these new entry point groups, a FSD must export all or none of the entry points within a particular group.  
 
These optional entry points are: 


These optional entry points are:
  FS_ALLOCATEPAGESPACE    (PAGE I/O)
  FS_ALLOCATEPAGESPACE    (PAGE I/O)
  FS_CANCELLOCKREQUEST    (FILE I/O)
  FS_CANCELLOCKREQUEST    (FILE I/O)
Line 120: Line 116:
  FS_OPENPAGEFILE        (PAGE I/O)
  FS_OPENPAGEFILE        (PAGE I/O)
  FS_VERIFYUNCNAME        (UNC)
  FS_VERIFYUNCNAME        (UNC)


[[Category:IFS]]
[[Category:IFS]]

Latest revision as of 05:26, 10 February 2020

Installable File Systems for OS/2
  1. Installable File System Mechanism
    1. Installable File System Overview
    2. Extended Attributes
    3. FSD File Image
    4. FSD Initialization
    5. IFS Commands
    6. File System Function Calls
    7. FSD System Interfaces
    8. FSD Calling Conventions and Requirements
  2. FS Service Routines
  3. FS Helper Functions
  4. Remote IPL / Bootable IFS
  5. mini-FDS Entry Points
  6. mini-FDS Helper Routines

Reprint Courtesy of International Business Machines Corporation, © International Business Machines Corporation

The following table summarizes the entry points that make up the interface between the kernel and the FSD.

Note
Names must be in all upper case, as required by OS/2 naming conventions.
FS Entry Point Description FSDs Required to export
FS_ALLOCATEPAGESPACE Adjust the size of paging file PAGE I/O
FS_ATTACH Attach to an FSD ALL
FS_CANCELLOCKREQUEST Cancel file record lock request FILE I/O
FS_CHDIR Change/Verify directory path ALL
FS_CHGFILEPTR Move a file's position pointer ALL
FS_CLOSE Release a file handle ALL
FS_COMMIT Flush a file's buffer to disk ALL
FS_COPY Copy a file ALL
FS_DELETE Delete a file ALL
FS_DOPAGEIO Perform paging I/O operations PAGE I/O
FS_EXIT End of a process cleanup ALL
FS_FILEATTRIBUTE Query/Set file's attributes ALL
FS_FILEINFO Query/Set file's information ALL
FS_FILEIO Multi-function file I/O ALL
FS_FILELOCKS Request a file record lock/unlock FILE I/O
FS_FINDCLOSE Directory search close ALL
FS_FINDFIRST Find first matching filename ALL
FS_FINDFROMNAME Find matching filename from name ALL
FS_FINDNEXT Find next matching filename ALL
FS_FINDNOTIFYCLOSE Close FindNotify handle ALL
FS_FINDNOTIFYFIRST Monitor a directory for changes ALL
FS_FINDNOTIFYNEXT Resume reporting directory changes ALL
FS_FLUSHBUF Commit file buffers to disk ALL
FS_FSCTL File system control ALL
FS_FSINFO Query/Set file system information ALL
FS_INIT FSD initialization ALL
FS_IOCTL I/O device control ALL
FS_MKDIR Make a directory ALL
FS_MOUNT Mount/unmount volumes ALL
FS_MOVE Move a file or subdirectory ALL
FS_NEWSIZE Change a file's logical size ALL
FS_NMPIPE Do a named pipe operation ALL
FS_OPENCREATE Open/create/replace files ALL
FS_OPENPAGEFILE Create paging file and handle PAGE I/O
FS_PATHINFO Query/Set a file's information ALL
FS_PROCESSNAME FSD unique name canonicalization ALL
FS_READ Read data from a file ALL
FS_RMDIR Remove a subdirectory ALL
FS_SETSWAP Notification of swapfile ownership ALL
FS_SHUTDOWN Shutdown file system ALL
FS_VERIFYUNCNAME Verify UNC server ownership UNC
FS_WRITE Write data to a file ALL

Each FS entry point has a distinct parameter list composed of those parameters needed by that particular entry. Parameters include:

  • File pathname
  • Current disk/directory information
  • Open file information
  • Application data buffers
  • Descriptions of file extended attributes
  • Other parameters specific to an individual call

Most of the FS entry points have a level parameter for specifying the level of information they are provided or have to supply. FSDs must provide for additional levels which may be added in future versions of OS/2 by returning ERROR_NOT_SUPPORTED for any level they do not recognize.

File system drivers which support hierarchical directory structures must use '\' and '/' as path name component separators. File system drivers which do not support hierarchical directory structures must reject as illegal any use of '\' or '/' in path names. The file names '.' and '..' are reserved for use in hierarchical directory structures for the current directory and the parent of the current directory, respectively.

Unless otherwise specified in the descriptions below, data buffers may be accessed without concern for the accessibility of the data. OS/2 will either check buffers for accessibility and lock them, or transfer them into locally accessible data areas.

Simple parameters will be verified by the IFS router before the FS service routine is called.

Note
New with 2.0, some entry points need only be exported and supported by those FSDs which desire to service the pager (PAGE I/0), UNC servers (UNC) and/or file locking (FILE I/O). With these new entry point groups, a FSD must export all or none of the entry points within a particular group.

These optional entry points are:

FS_ALLOCATEPAGESPACE    (PAGE I/O)
FS_CANCELLOCKREQUEST    (FILE I/O)
FS_DOPAGEIO             (PAGE I/O)
FS_FILELOCKS            (FILE I/O)
FS_OPENPAGEFILE         (PAGE I/O)
FS_VERIFYUNCNAME        (UNC)