58 lines
2.6 KiB
C
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
|