#define SCCSID "@(#)fssab.c   1.0 96/03/26"

/***    MVDMGLBL.C
 *
 *      Version: 1.0 , for src/dos/filesys/fssab.c, filesys, c.krnl, currbld
 *
 *
 *      IBM Confidential
 *
 *      Copyright (c) IBM Corporation 1996
 *
 *      All Rights Reserved
 *
 *      Title:
 *
 *      File System SAB (System Anchor Block) Extension
 *
 *      Description:
 *
 *      Intialize File System SAB extension structure members to addresses
 *      of File System data
 *
 *  Exported Routines: No Exported Routines
 *
 *  Imported Routines: No Imported Routines
 *
 *  History:
 *      03/25/96 D. R. Brown    New source file.
 */

#define FNO_NUM  FNO_FSSAB_C
#define INCL_TYPES              // include base types

#include <osconst.h>
#include <ostypes.h>
#include <basemac.h>
#include <basedef.h>
#include <fnofs.h>
#include <osmac.h>
#include <mi.h>
#include <sft.h>
#include <pgexport.h>
#include <tkexport.h>
#include <cache.h>
#include "fssab.h"             // src\dos\filesys

/*************************************/
/*  external data references         */
/*************************************/

extern BYTE                     ksemMFT;                        // filesys\gshare32.asm
extern WORD                     hVPBFirst;                      // task\sdata.asm
extern DWORD                    pVPBBuf;                        // task\sdata.asm
extern BYTE                     pVPBSem;                        // task\sdata.asm
extern DWORD                    SFT_FreeHead;                   // task\sdata.asm
extern DWORD                    MFT_hPTree;                     // task\sdata.asm
extern WORD                     RLRHead;                        // task\sdata.asm
extern WORD                     MaxSec;                         // task\sdata.asm
extern WORD                     CDSAddr;                        // task\sdata.asm
extern BYTE                     LstDPBDrv;                      // task\sdata.asm
extern BYTE                     uchLastDrive;                   // task\sdata.asm
extern struct _DELFILEINFO      TempDelFileInfo;                // filesys\dosdel.c
#ifdef FSSTRICT
extern BYTE                     fFSSwapStarted;                 // filesys\codelock.asm
#endif
extern BYTE                     MFSD_Stage;                     // filesys\fshelper.asm
extern BYTE                     initfatchkdsk;                  // filesys\lockdrv.asm
extern WORD                     NmpBmpSel;                      // filesys\nampipe1.asm
extern WORD                     NmpRmpHand;                     // filesys\nampipe1.asm
extern WORD                     CNotifyGlobal_Count;            // filesys\notify.asm
extern WORD                     NextCDSHandle;                  // filesys\path.asm
extern DWORD                    SFNAllocCtr;                    // filesys\util.asm
extern BYTE                     SFT_GrowSem;                    // filesys\util.asm
extern DWORD                    pbufWPT;                        // filesys\volsubr.asm
extern BYTE                     semWPT;                         // filesys\volsubr.asm
extern WORD                     FSPrtyIO_Mode;                  // filesys\strat2.asm
extern BYTE                     FATCache;                       // filesys\strat2.asm
extern BYTE                     GlobalAutoFail;                 // init\inicmd.asm
extern BYTE                     mFSD_FLAG;                      // init\inidin1.asm
extern DWORD                    pMiniFSD;                       // init\inidin1.asm
extern BYTE                     IsMiniIFS;                      // init\inisifs.asm
extern BYTE                     FatDirtyBit;                    // init\inisifs.asm
extern WORD                     DirBufferSelector;              // init\inisifs.asm
extern WORD                     OS2DirBufferSelector;           // init\inisifs.asm
extern WORD                     OS2BOOTDirBufferSelector;       // init\inisifs.asm
extern DWORD                    FileBufferAddress;              // init\inisifs.asm
extern DWORD                    FileBufferLength;               // init\inisifs.asm
extern WORD                     FileReadBuffer;                 // init\inisifs.asm
extern WORD                     IOShutdownState;                // filesys\shutdown.asm
extern DWORD                    pVPB_BMP;                       // filesys\volmount.asm
extern int                      fAsyncReadRunning;              // filesys\cachdata.c
extern DWORD                    AsyncReadHeadSel;               // filesys\cachdata.c
extern DWORD                    AsyncReadHeadOff;               // filesys\cachdata.c
extern DWORD                    AsyncReadTailSel;               // filesys\cachdata.c
extern DWORD                    AsyncReadTailOff;               // filesys\cachdata.c
extern DWORD                    cBufs;                          // filesys\cachdata.c
extern DWORD                    cbufLWLock;                     // filesys\cachdata.c
extern DWORD                    LWBufWanted;                    // filesys\cachdata.c
extern int                      fGFBActive;                     // filesys\cachdata.c
extern DWORD                    pGFBWaitChain;                  // filesys\cachdata.c
extern DWORD                    FLWReqListSel;                  // filesys\cachdata.c
extern DWORD                    semLW;                          // filesys\cachdata.c
extern DWORD                    semLR;                          // filesys\cachdata.c
extern DWORD                    semLRWait;                      // filesys\cachdata.c
extern DWORD                    FreeBufs;                       // filesys\cachdata.c
extern WORD                     LWAsyncSem;                     // filesys\cachmisc.c
extern int                      fHotFixing;                     // filesys\cache.h
extern DWORD                    DiskThresh;                     // filesys\cache.h
extern BUFHDR                   BufLRUHead;                     // filesys\cache.h
extern DWORD                    pPhysLRBuf;                     // filesys\cache.h
extern KSEMMTX                  HotFixKsem;                     // filesys\cache.h
extern BUFHDR                   BufFreeList;                    // filesys\cache.h
extern BUFHDR                   BufDirtyHead;                   // filesys\cache.h
extern int                      AsyncReadSem;                   // filesys\cache.h
extern int                      fLWIO;                          // filesys\cache.h
extern DWORD                    S2_RW_RQPKT_SIZE;               // filesys\cache.h
extern DWORD                    msLastIO;                       // filesys\cache.h
extern int                      fLWDaemon;                      // filesys\cache.h
extern DWORD                    pLinLRBuf;                      // filesys\cache.h

FSSAB FS_SAB = {

     &ksemMFT,                   // filesys\gshare32.asm
     &hVPBFirst,                 // task\sdata.asm
     &pVPBBuf,                   // task\sdata.asm
     &pVPBSem,                   // task\sdata.asm
     &SFT_FreeHead,              // task\sdata.asm
     &MFT_hPTree,                // task\sdata.asm
     &RLRHead,                   // task\sdata.asm
     &MaxSec,                    // task\sdata.asm
     &CDSAddr,                   // task\sdata.asm
     &LstDPBDrv,                 // task\sdata.asm
     &uchLastDrive,              // task\sdata.asm
     &TempDelFileInfo,           // filesys\dosdel.c
#ifdef FSSTRICT
     &fFSSwapStarted,            // filesys\codelock.asm
#else
     0,
#endif
     &MFSD_Stage,                // filesys\fshelper.asm
     &initfatchkdsk,             // filesys\lockdrv.asm
     &NmpBmpSel,                 // filesys\nampipe1.asm
     &NmpRmpHand,                // filesys\nampipe1.asm
     &CNotifyGlobal_Count,       // filesys\notify.asm
     &NextCDSHandle,             // filesys\path.asm
     &SFNAllocCtr,               // filesys\util.asm
     &SFT_GrowSem,               // filesys\util.asm
     &pbufWPT,                   // filesys\volsubr.asm
     &semWPT,                    // filesys\volsubr.asm
     &FSPrtyIO_Mode,             // filesys\strat2.asm
     &FATCache,                  // filesys\strat2.asm
     &GlobalAutoFail,            // init\inicmd.asm
     &mFSD_FLAG,                 // init\inidin1.asm
     &pMiniFSD,                  // init\inidin2.asm
     &IsMiniIFS,                 // init\inisifs.asm
     &FatDirtyBit,               // init\inisifs.asm
     &DirBufferSelector,         // init\inisifs.asm
     &OS2DirBufferSelector,      // init\inisifs.asm
     &OS2BOOTDirBufferSelector,  // init\inisifs.asm
     &FileBufferAddress,         // init\inisifs.asm
     &FileBufferLength,          // init\inisifs.asm
     &FileReadBuffer,            // init\inidin1.asm
     &IOShutdownState,           // filesys\shutdown.asm
     &pVPB_BMP,                  // filesys\volmount.asm
     (DWORD *) BufHashTable,     // filesys\cachdata.c
     &GFB_Sem,                   // filesys\cachdata.c
     &fAsyncReadRunning,         // filesys\cachdata.c
     &AsyncReadHeadSel,          // filesys\cachdata.c
     &AsyncReadHeadOff,          // filesys\cachdata.c
     &AsyncReadTailSel,          // filesys\cachdata.c
     &AsyncReadTailOff,          // filesys\cachdata.c
     &cBufs,                     // filesys\cachdata.c
     &cbufLWLock,                // filesys\cachdata.c
     &LWBufWanted,               // filesys\cachdata.c
     &fGFBActive,                // filesys\cachdata.c
     &pGFBWaitChain,             // filesys\cachdata.c
     &FLWReqListSel,             // filesys\cachdata.c
     &semLW,                     // filesys\cachdata.c
     &semLR,                     // filesys\cachdata.c
     &semLRWait,                 // filesys\cachdata.c
     &FreeBufs,                  // filesys\cachdata.c
     &LWAsyncSem,                // filesys\cachmisc.c
     &fHotFixing,                // filesys\cache.h
     &DiskThresh,                // filesys\cache.h
     &BufLRUHead,                // filesys\cache.h
     &pPhysLRBuf,                // filesys\cache.h
     &HotFixKsem,                // filesys\cache.h
     &BufFreeList,               // filesys\cache.h
     &BufDirtyHead,              // filesys\cache.h
     &AsyncReadSem,              // filesys\cache.h
     &fLWIO,                     // filesys\cache.h
     &S2_RW_RQPKT_SIZE,          // filesys\cache.h
     &msLastIO,                  // filesys\cache.h
     &fLWDaemon,                 // filesys\cache.h
     &pLinLRBuf                  // filesys\cache.h
};

