#ifndef __FLAMEDDIFC_H__
#define __FLAMEDDIFC_H__

/* WINDOWS NT deviceiocontrol calls */

#define TESTSIM_DEVICE_TYPE             0x8002
#define TESTSIM_MAKE_IOCTL(t,c)\
(ULONG)CTL_CODE((t), 0x800+(c), METHOD_BUFFERED, FILE_ANY_ACCESS)

/* Input: none
   Output: USHORT version info  */
#define IOCTL_TESTSIM_GETVERSION        TESTSIM_MAKE_IOCTL(TESTSIM_DEVICE_TYPE, 0)

/* Input: none
   Output: ULONG ptr to user memory address */
#define IOCTL_TESTSIM_GETMEMADDR        TESTSIM_MAKE_IOCTL(TESTSIM_DEVICE_TYPE, 1)

/* not supported    */
#define IOCTL_TESTSIM_GETIOPORT         TESTSIM_MAKE_IOCTL(TESTSIM_DEVICE_TYPE, 2)
#define IOCTL_TESTSIM_GETIRQLEVEL       TESTSIM_MAKE_IOCTL(TESTSIM_DEVICE_TYPE, 3)

/* Input: none
   Output: ULONG size of memory window  */
#define IOCTL_TESTSIM_GETMEMLENGTH      TESTSIM_MAKE_IOCTL(TESTSIM_DEVICE_TYPE, 4)

/* no input/output  */
#define IOCTL_TESTSIM_BLOCKONIRQ        TESTSIM_MAKE_IOCTL(TESTSIM_DEVICE_TYPE, 5)
#define IOCTL_TESTSIM_RELEASEIRQ        TESTSIM_MAKE_IOCTL(TESTSIM_DEVICE_TYPE, 6)
#define IOCTL_TESTSIM_HALTDMA           TESTSIM_MAKE_IOCTL(TESTSIM_DEVICE_TYPE, 7)
#define IOCTL_TESTSIM_GET_CARDCOUNT     TESTSIM_MAKE_IOCTL(TESTSIM_DEVICE_TYPE, 8)
#define IOCTL_TESTSIM_SETUP_DMA         TESTSIM_MAKE_IOCTL(TESTSIM_DEVICE_TYPE, 9)

/* Input: ULONG upper word is address, lower word is data
   Output: none */
#define IOCTL_TESTSIM_IOWRITE           TESTSIM_MAKE_IOCTL(TESTSIM_DEVICE_TYPE, 12)

/* Input:
   Output:  */
#define IOCTL_TESTSIM_IOREAD            TESTSIM_MAKE_IOCTL(TESTSIM_DEVICE_TYPE, 13)

/* Input:
   Output:  */
#define IOCTL_TESTSIM_CLOSEDEVICE       TESTSIM_MAKE_IOCTL(TESTSIM_DEVICE_TYPE, 14)

#endif