Files
m241Neelima/vxworks-6.9/target/h/drv/wdb/vision/wdbVisionDrvIF.h
T
2026-07-30 11:19:44 +05:30

117 lines
3.9 KiB
C

/* wdbVisionDrvIF.h - Interface definitions/declations for vision DRIVER */
/* Copyright 1986-2002 Wind River Systems Inc. */
/*
modification history
--------------------
01c,01dec01,g_h Cleaning for T2.2
01b,05may01,g_h rename to wdbVisionDrvIF.h
01a,09apr01,rnr written.
*/
#ifndef __INCwdbVisionDrvIFh
#define __INCwdbVisionDrvIFh
#ifdef __cplusplus
extern "C" {
#endif
/* defines */
#define VDR_SUCCESS 0 /* Indicates success of requested operation */
#define VDR_FAILURE 1 /* Indicates failure of requested operation */
/* */
#define VDR_WRITE_COMPLETE 0 /* Previously requested WRITE is done */
#define VDR_WRITE_PENDING 1 /* Previously requested WRITE is not done */
/* */
#define VDR_DATA_FOUND 0 /* Data is pending on the receive channel */
#define VDR_DATA_NONE 1 /* Data is NOT pending on the receive channel */
/* typedefs */
typedef unsigned char VDR_UCHAR; /* Host independent unsigned 1-byte unit */
typedef unsigned long VDR_ULONG; /* Host independent unsigned 4-byte unit */
typedef void * VDR_PDATA; /* Host independent void 4-byte unit */
#if defined(__STDC__)
/* Open/Close prototypes */
typedef VDR_ULONG (*VDR_OPEN_PTR) (VDR_PDATA priv);
typedef VDR_ULONG (*VDR_CLOSE_PTR) (VDR_PDATA priv);
/* Read/Write prototypes */
typedef VDR_ULONG (*VDR_READ_STATUS_PTR) (VDR_PDATA priv, VDR_ULONG * status);
typedef VDR_ULONG (*VDR_WRITE_STATUS_PTR) (VDR_PDATA priv, VDR_ULONG * status);
/* ReadStatus/WriteStatus prototypes */
typedef VDR_ULONG (*VDR_READ_PTR) (VDR_PDATA priv, VDR_UCHAR * pData,
VDR_ULONG maxSize, VDR_ULONG * rcvBytes);
typedef VDR_ULONG (*VDR_WRITE_PTR) (VDR_PDATA priv, VDR_UCHAR * pData, VDR_ULONG size);
#else /* __STDC__ */
/* Open/Close prototypes */
typedef VDR_ULONG (*VDR_OPEN_PTR)();
typedef VDR_ULONG (*VDR_CLOSE_PTR)();
/* Read/Write prototypes */
typedef VDR_ULONG (*VDR_READ_STATUS_PTR )();
typedef VDR_ULONG (*VDR_WRITE_STATUS_PTR)();
/* ReadStatus/WriteStatus prototypes */
typedef VDR_ULONG (*VDR_READ_PTR)();
typedef VDR_ULONG (*VDR_WRITE_PTR)();
#endif /* __STDC__ */
/*
* This data structure represent the interface exchange between
* the High-Level Vision driver ( wdbVisioDrv ) and the Low-Level I/O
* subsystem driver. vDriver code will make an initialization
* call into the Low-Level code. The Low-Level code will setup
* the function pointer fields with the addresses of routines
* that perform that particular operation. Also the Low-Level
* I/O will fill in the PrivateData field with a value which is
* of meaining to the Low-Level driver. This data will be given
* back to the Low-Level driver on every request.
*/
typedef struct vDriverInterface
{
VDR_OPEN_PTR openFunc; /* Addr of OPEN routine */
VDR_CLOSE_PTR closeFunc; /* Addr of CLOSE routine */
VDR_READ_PTR readFunc; /* Addr of the READ routine */
VDR_WRITE_PTR writeFunc; /* Addr of the WRITE routine */
VDR_READ_STATUS_PTR readStatusFunc; /* Addr of the READ STATUS routine */
VDR_WRITE_STATUS_PTR writeStatusFunc; /* Addr of the WRITE STATUS routine */
VDR_PDATA privateData; /* Private data space */
} V_DRIVER_INTERFACE;
/* function prototypes */
/* Prototype for the Initialization call */
#if defined(__STDC__)
typedef VDR_ULONG (*VDR_INIT_PTR) (V_DRIVER_INTERFACE * interfaceData);
#else /* __STDC__ */
typedef VDR_ULONG (*VDR_INIT_PTR)();
#endif /* __STDC__ */
#ifdef __cplusplus
}
#endif
#endif /* __INCwdbVisionDrvIFh */