isfl/x64/isfl.h

58 lines
2.6 KiB
C

/*
* InsydeFlash Linux Driver
* File: isfl.h
*
* Copyright (C) 2005 - 2015 Insyde Software Corp.
*
* This software is licensed under the terms of the GNU General Public
* License version 2, as published by the Free Software Foundation, and
* may be copied, distributed, and modified under those terms.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
*/
#ifndef _DEBUG_H_
#define _DEBUG_H_
#define DEVICE_NAME "isfl" //InsydeFlash buffer
#define DEVICE_NAME_PATH "/dev/"DEVICE_NAME // Open device node on user-space
#define DEVICE_MAJOR_NUM 100
#define ISFB_FLASH_SIZE ( 128 * 1024 ) // 128KB
#define MEMORY_BLOCK_SIZE ( 64 * 1024 ) // 64KB
#define MAX_MEMORY_BLOCK_COUNT 512
struct _isfl
{
unsigned long smi_io; // SMI Port
unsigned long mbuf_size; // memory buffer size
unsigned long mbuf_paddr; // memory buffer physical address
unsigned long smi_status; // SW SMI Status Return
unsigned long enable_kbc;
unsigned long disable_kbc;
};
struct _mblock
{
unsigned long mbuf_PhyAddr; // memory buffer index
unsigned long mbuf_size; // memory buffer size
unsigned char pbyBuffer[MEMORY_BLOCK_SIZE];
};
#define IOCTL_ALLOCATE_MEMORY _IOWR(DEVICE_MAJOR_NUM, 0, struct _isfl *)
#define IOCTL_FREE_MEMORY _IOW(DEVICE_MAJOR_NUM, 1, struct _isfl *)
#define IOCTL_WRITE_MEMORY _IOWR(DEVICE_MAJOR_NUM, 2, struct _isfl *)
#define IOCTL_READ_MEMORY _IOWR(DEVICE_MAJOR_NUM, 3, struct _isfl *)
#define IOCTL_GENERATE_SMI _IOW(DEVICE_MAJOR_NUM, 4, struct _isfl *)
#define IOCTL_GET_SMI_STATUS _IOR(DEVICE_MAJOR_NUM, 5, struct _isfl *)
#define IOCTL_DISABLE_KBC _IOR(DEVICE_MAJOR_NUM, 6, struct _isfl *)
#define IOCTL_ENABLE_KBC _IOR(DEVICE_MAJOR_NUM, 7, struct _isfl *)
#define IOCTL_ALLOCATE_MULTI_BLOCK_MEMORY _IOWR(DEVICE_MAJOR_NUM, 8, struct _isfl *)
#define IOCTL_FREE_MULTI_BLOCK_MEMORY _IOW(DEVICE_MAJOR_NUM, 9, struct _isfl *)
#define IOCTL_WRITE_TO_PHYSICAL _IOWR(DEVICE_MAJOR_NUM, 10, struct _mblock *)
#define IOCTL_READ_FROME_PHYSICAL _IOWR(DEVICE_MAJOR_NUM, 11, struct _mblock *)
#endif