168 lines
4.0 KiB
C
168 lines
4.0 KiB
C
/*************************************************************************
|
|
* sdla_edu.h Sangoma Educatonal Kit definitions
|
|
*
|
|
* Author: David Rokhvarg <davidr@sangoma.com>
|
|
*
|
|
* Copyright: (c) 1984-2004 Sangoma Technologies Inc.
|
|
*
|
|
* This program is free software; you can redistribute it and/or
|
|
* modify it under the term of the GNU General Public License
|
|
* as published by the Free Software Foundation; either version
|
|
* 2 of the License, or (at your option) any later version.
|
|
===========================================================================
|
|
*
|
|
* Sep 18, 2001 David Rokhvarg Initial version.
|
|
*
|
|
* Jul 30, 2003 David Rokhvarg v 1.0
|
|
* 1. sdla_load() is not used anymore,
|
|
* all the loading is done from user mode instead.
|
|
* All IOCTLs used for loading are not valid anymore.
|
|
* 2. New IOCTLs added for starting and stopping
|
|
* the card.
|
|
*
|
|
* Nov 17, 2004 David Rokhvarg v 2.0
|
|
* 1. Removed globals and put into private area
|
|
* 2. New IOCTLs added for TCP/IP handling.
|
|
*
|
|
===========================================================================
|
|
Organization
|
|
- Constants defining the shared memory control block (mailbox)
|
|
- IOCTL codes
|
|
- Structures for performing IOCTLs
|
|
|
|
*************************************************************************/
|
|
|
|
#ifndef _SDLA_EDU_H
|
|
# define _SDLA_EDU_H
|
|
|
|
/*------------------------------------------------------------------------
|
|
Notes:
|
|
|
|
Compiler Platform
|
|
------------------------
|
|
GNU C Linux
|
|
|
|
------------------------------------------------------------------------*/
|
|
|
|
enum SDLA_COMMAND{
|
|
|
|
SDLA_CMD_READ_BYTE = 10,
|
|
SDLA_CMD_WRITE_BYTE,
|
|
|
|
SDLA_CMD_READ_PORT_BYTE,
|
|
SDLA_CMD_WRITE_PORT_BYTE,
|
|
|
|
SDLA_CMD_READ_BLOCK,
|
|
SDLA_CMD_WRITE_BLOCK,
|
|
|
|
SDLA_CMD_GET_CARDS,
|
|
SDLA_CMD_REGISTER,
|
|
SDLA_CMD_DEREGISTER,
|
|
SDLA_CMD_PREPARE_TO_LOAD,
|
|
SDLA_CMD_LOAD_COMPLETE,
|
|
SDLA_CMD_ZERO_WINDOW,
|
|
|
|
SDLA_CMD_START_S514,
|
|
SDLA_CMD_STOP_S514,
|
|
|
|
SDLA_CMD_IS_TX_DATA_AVAILABLE,
|
|
SDLA_CMD_COPLETE_TX_REQUEST,
|
|
|
|
SDLA_CMD_INDICATE_RX_DATA_AVAILABLE,
|
|
SDLA_CMD_GET_PCI_ADAPTER_TYPE
|
|
};
|
|
|
|
typedef struct edu_exec_cmd{
|
|
unsigned char ioctl; // the ioctl code
|
|
unsigned char return_code;
|
|
unsigned short buffer_length; // the data length
|
|
unsigned long offset; // offset on the card
|
|
}edu_exec_cmd_t;
|
|
|
|
#define MAX_TCP_IP_DATA_LEN 800L
|
|
#define MAX_TX_RX_DATA_SIZE 2000
|
|
typedef struct{
|
|
//caller's card number. only card 0 can do IP transactions.
|
|
unsigned char cardnumber;
|
|
//operation status
|
|
unsigned char status;
|
|
//length of data in 'data'
|
|
unsigned long buffer_length;
|
|
unsigned char data[MAX_TX_RX_DATA_SIZE];
|
|
}TX_RX_DATA;
|
|
|
|
//
|
|
//possible 'status' values in 'TX_RX_DATA' structure on completion of:
|
|
// 1. SDLA_CMD_COPLETE_TX_REQUEST
|
|
// 2. SDLA_CMD_IS_TX_DATA_AVAILABLE
|
|
// 3. SDLA_CMD_INDICATE_RX_DATA_AVAILABLE
|
|
//
|
|
enum TX_RX_STATUS{
|
|
TX_SUCCESS = 1,
|
|
TX_ERR_PROTOCOL_DOWN,
|
|
TX_ERR_HARDWARE,
|
|
TX_RX_REQUEST_INVALID
|
|
};
|
|
|
|
#if !defined(BUILD_FOR_UNIX)
|
|
#define IOCTL_SDLA CTL_CODE(FILE_DEVICE_UNKNOWN, 0, METHOD_BUFFERED, FILE_ANY_ACCESS)
|
|
|
|
typedef struct {
|
|
unsigned char cardnumber;
|
|
unsigned long offset;
|
|
unsigned char value;
|
|
} XFER_BYTE_CONTROL;
|
|
|
|
#define MAX_CARDS 1 //card 0 and card 1 only
|
|
|
|
/* structure used for reading and writing blocks */
|
|
typedef struct {
|
|
void* buffer;
|
|
unsigned short num_bytes;
|
|
unsigned long offset;
|
|
unsigned char card_number;
|
|
} SDLA_BLOCKOP;
|
|
|
|
typedef struct {
|
|
unsigned char cardnumber;
|
|
unsigned char rcode;
|
|
} CARD_TRANSACTION;
|
|
|
|
|
|
#define MAX_IOCTL_DATA_LEN 4096
|
|
typedef struct{
|
|
|
|
unsigned long command;
|
|
unsigned long buffer_length;
|
|
unsigned char return_code;
|
|
unsigned char data[MAX_IOCTL_DATA_LEN];
|
|
}SDLA_CTL_BLOCK;
|
|
|
|
|
|
typedef struct{
|
|
|
|
void* ndis_adapter;
|
|
|
|
}SDLA_DEV_EXTENSION;
|
|
|
|
//RESULT MESSAGES
|
|
|
|
#define SDLAR_NOT_REGISTERED 0L
|
|
#define SDLAR_DEREGISTERED 1L
|
|
#define SDLAR_RELEASED 2L
|
|
#define SDLAR_REGISTERED 1L
|
|
#define SDLAR_ALLOCATED 2L
|
|
|
|
#define SDLAR_CARD_BLOCKED 0L
|
|
#define SDLAR_PREPARED 2L
|
|
#define SDLAR_NOT_PREPARED 0L
|
|
#define SDLAR_ERROR_PREPARING 3L
|
|
|
|
#define DRV_NAME "EduKit"
|
|
|
|
#endif //#if !defined(BUILD_FOR_UNIX)
|
|
|
|
#endif //_SDLA_EDU_H
|
|
|
|
|