由于VxWorks7中无法调用用户自定义的功能,需要使用scMemVal 库 scIoctlGroupRegister( )注册ioctl功能组。
示例
#include <scMemVal.h>
#include <sys/ioctl.h>
#define VX_IOCG_USER 'u'
#define SAMPLE_FUNCTION1 _IO(VX_IOCG_USER,1)
#define SAMPLE_FUNCTION2 _IO(VX_IOCG_USER,2)
#define SAMPLE_FUNCTION3 _IO(VX_IOCG_USER,3)
#define SAMPLE_FUNCTION4 _IO(VX_IOCG_USER,4)
LOCAL const SC_IOCTL_TBL_ENTRY ioctlSampleTbl[] =
{
{ SC_IOCTL_DISABLE, 0 }, /* 0: unused */
{ SC_IOCTL_ENABLE, 0 }, /* 1: FEATURE_SETNAME */
{ SC_IOCTL_ENABLE, 0 }, /* 2: FEATURE_KERNEL */
{ SC_IOCTL_ENABLE, 0 }, /* 3: FEATURE_SETMODE */
{ SC_IOCTL_ENABLE, 0 } /* 4: FEATURE_GETMODE */
};
LOCAL STATUS sampleAttach
(
VXB_DEV_ID pDev
)
{
......
scIoctlGroupRegister (VX_IOCG_USER, ioctlSampleTbl,
NELEMENTS(ioctlSampleTbl));
if(ERROR==status)
{
return ERROR;
}
.......
}