/* cbioLibP.h - cached block I/O device (CBIO) private header file */ /* Copyright 1999-2002, 2010 Wind River Systems, Inc. */ /* modification history -------------------- 01h,29apr10,pad Moved extern C statement after include statements. 01g,21dec03,jkf moving define of _WRS_DOSFS2_VXWORKS_AE to dosFsVerP.h 01f,11jul03,rec merge in .@@/main/tor2/base6_itn1_kernel-int/base6_itn1_kernel-dev.al/3 01e,30jul01,jkf SPR#69031, common code for both AE & 5.x. 01d,13jun01,jyo SPR#67729: Added three members to the CBIO_DEV structure also included blkIo.h 01c,29feb00,jkf T3 changes 01b,07dec99,jkf changed OBJ_CORE to HANDLE, SEMAPHORE to SEM_ID. 01a,31aug99,jkf written - CBIO API changes. */ #ifndef __INCcbioLibPh #define __INCcbioLibPh /* * This module is for CBIO modules internal use only. * File system level code (ie users of CBIO device modules) * should not include this module but rather should use * the public CBIO API, cbioLib.h. * * This WRS private header file is subject to change by WRS * without notice. */ /* include's */ #include "vxWorks.h" #include "private/dosFsVerP.h" /* determine DOSFS2 OS version */ #include "cbioLib.h" /* pull in public CBIO API */ #include "semLib.h" /* for SEM_ID type */ #include "blkIo.h" /* for BLK_DEV type */ #ifdef __cplusplus extern "C" { #endif /* macro's */ #define CBIO_READYCHANGED(x) ((x)->readyChanged) #define CBIO_REMOVABLE(x) ((x)->cbioParams.cbioRemovable) #define CBIO_MODE(x) ((x)->cbioMode) #ifndef CBIO_DEV_EXTRA #define CBIO_DEV_EXTRA void /* module specific field */ #endif /* typedef's */ typedef struct cbioFuncs /* CBIO modules method functions */ { STATUS (* cbioDevBlkRW) /* Read/Write blocks */ (CBIO_DEV_ID dev, block_t startBlock, block_t numBlocks, addr_t buffer, CBIO_RW rw, cookie_t * pCookie); STATUS (* cbioDevBytesRW) /* Read/Write bytes */ (CBIO_DEV_ID dev, block_t startBlock, off_t offset, addr_t buffer, size_t nBytes, CBIO_RW rw, cookie_t * pCookie); STATUS (* cbioDevBlkCopy) /* Copy sectors */ (CBIO_DEV_ID dev, block_t srcBlock, block_t dstBlock, block_t numBlocks); STATUS (* cbioDevIoctl) /* control operations */ (CBIO_DEV_ID dev, int command, addr_t arg); } CBIO_FUNCS; typedef struct cbioDev /* CBIO_DEV */ { #ifdef _WRS_DOSFS2_VXWORKS_AE HANDLE cbioHandle; /* VxWorks AE handle management */ #else OBJ_CORE objCore; /* VxWorks 5.x objCore */ #endif /* _WRS_DOSFS2_VXWORKS_AE */ /* Embedded objects */ SEM_ID cbioMutex; /* mutex semaphore */ /* Functions (methods) */ struct cbioFuncs * pFuncs; /* cbioFuncs functions */ /* Public attributes */ char * cbioDesc; /* printable descriptive string */ short cbioMode; /* O_RDONLY |O_WRONLY| O_RDWR */ BOOL readyChanged; /* Device READY status indicator */ /* ** Physical device attributes */ CBIO_PARAMS cbioParams; /* Physical parameters, cbioLib.h */ /* *** Implementation defined attributes */ caddr_t cbioMemBase; /* base addr of memory pool */ size_t cbioMemSize; /* size of memory pool used */ u_long cbioPriv0; /* Implementation defined */ u_long cbioPriv1; /* Implementation defined */ u_long cbioPriv2; /* Implementation defined */ u_long cbioPriv3; /* Implementation defined */ u_long cbioPriv4; /* Implementation defined */ u_long cbioPriv5; /* Implementation defined */ u_long cbioPriv6; /* Implementation defined */ u_long cbioPriv7; /* Implementation defined */ CBIO_DEV_EXTRA * pDc ; /* Implementation defined structure */ CBIO_DEV_ID cbioSubDev; /* Stores the pointer to lower CBIO. */ BLK_DEV * blkSubDev; /* Stores the pointer to lower BLKDEV. */ BOOL isDriver; /* This variable is used to verify */ /* the nature of current layer. */ } CBIO_DEV; /* externals */ IMPORT CLASS_ID cbioClassId ; /* private functions */ CBIO_DEV_ID cbioDevCreate /* used by CBIO modules only */ ( caddr_t ramAddr, /* where it is in memory (0 = malloc) */ size_t ramSize /* pool size */ ); #ifdef __cplusplus } #endif #endif /* __INCcbioLibPh */