Rev 9012 |
Blame |
Compare with Previous |
Last modification |
View Log
| Download
| RSS feed
#include <sys/ksys.h>
#include <stdio.h>
#include <stdlib.h>
char* drv_name = NULL;
struct{
int a;
int b;
}add_struct;
int sum=0;
ksys_drv_hand_t drv = 0;
#define DRV_ADD_FUNC 0
int main(int argc, char** argv){
puts("1 - asm_drv.sys\n2 - c_drv.dll");
switch (num_drv) {
case 1 :
drv_name = "asm_drv";
drv = _ksys_load_driver(drv_name);
break;
case 2 :
drv_name = "/sys/drivers/c_drv.dll";
drv = _ksys_load_pe_driver(drv_name, NULL);
break;
default:
printf("No driver selected!\n");
}
if(!drv){
printf("'%s' driver not load!\n", drv_name
);
}else{
printf("'%s' driver is load!\n", drv_name
);
}
add_struct.a = 43;
add_struct.b = 532;
ksys_ioctl_t ioctl;
ioctl.func_num = DRV_ADD_FUNC;
ioctl.handler = drv;
ioctl.in_data_ptr = &add_struct;
ioctl.in_data_size = sizeof(add_struct);
ioctl.out_data_ptr = ∑
ioctl.out_data_size = sizeof(sum);
unsigned status =_ksys_work_driver(&ioctl);
if(status==-1){
}else {
printf("%d + %d = %d\n", add_struct.
a, add_struct.
b, sum
);
if(sum == add_struct.a + add_struct.b){
}else{
}
}
}