|
|
原程序是
#ifndef __KERNEL__
# define __KERNEL__
#endif
#ifndef MODULE
# define MODULE
#endif
#define DEVICE_NAME "simple_dev"
#define OPENSPK 1
#define CLOSESPK 2
MODULE_LICENSE("GPL")
#include<linux/module.h>
#include<linux/kernel.h>
#include<linux/sched.h>
#include<linux/fs.h>
#include<asm/uaccess.h>
#include<asm/io.h>
int my_major=0;
static int Device_Open=0;
static char Message[]="hello world";
char *Message_Ptr;
int simple_open(struct inode * inode,struct file *file)
{ printk("\ndevice_open(%p,%p)\n",inode,file);
if(Device_Open)
return -EBUSY;
Device_Open++;
MOD_INC_USE_COUNT;
return 0;
}
。。。。。。。。。。。。。。
int dev_init(void)
{ int result;
result=register_chrdev(my_major,DEVICE_NAME,&simple_file);
if(result<0) return result;
if( my_major == 0)
my_major=result;
printk("\nRegister OK.major_number=%d\n",result);
return 0;
}
void dev_exit(void)
{ printk("\nunload\n");
unregister_chrdev(my_major,DEVICE_NAME);
}
module_init(dev_init);
module_exit(dev_exit);
编译时出现很多错误:
include/linux/sched.h:1091: 错误:声明的参数 ‘release_task’ 不存在
include/linux/sched.h:1090: 错误:声明的参数 ‘unblock_all_signals’ 不存在
include/linux/sched.h:1089: 错误:声明的参数 ‘block_all_signals’ 不存在
include/linux/sched.h:1074: 错误:声明的参数 ‘dequeue_signal’ 不存在
include/linux/sched.h:1073: 错误:声明的参数 ‘flush_signal_handlers’ 不存在
include/linux/sched.h:1072: 错误:声明的参数 ‘flush_signals’ 不存在
include/linux/sched.h:1071: 错误:声明的参数 ‘proc_caches_init’ 不存在
include/linux/sched.h:1069: 错误:声明的参数 ‘in_egroup_p’ 不存在
include/linux/sched.h:1068: 错误:声明的参数 ‘in_group_p’ 不存在
include/linux/sched.h:1058: 错误:声明的参数 ‘wake_up_new_task’ 不存在
include/linux/sched.h:1057: 错误:声明的参数 ‘wake_up_process’ 不存在
include/linux/sched.h:1056: 错误:声明的参数 ‘wake_up_state’ 不存在
include/linux/sched.h:1054: 错误:声明的参数 ‘do_timer’ 不存在
include/linux/sched.h:1050: 错误:声明的参数 ‘switch_uid’ 不存在
include/linux/sched.h:1049: 错误:声明的参数 ‘free_uid’ 不存在
include/linux/sched.h:1043: 错误:声明的参数 ‘alloc_uid’ 不存在
include/linux/sched.h:1038: 错误:声明的参数 ‘find_task_by_pid_type’ 不存在
include/linux/sched.h:1035: 错误:声明的参数 ‘init_mm’ 不存在
include/linux/sched.h:1033: 错误:声明的参数 ‘init_task’ 不存在
include/linux/sched.h:1032: 错误:声明的参数 ‘init_thread_union’ 不存在
include/linux/sched.h:1015: 错误:形参 ‘default_exec_domain’ 的类型不完全
include/linux/sched.h:1015: 错误:声明的参数 ‘default_exec_domain’ 不存在
include/linux/sched.h:1010: 错误:声明的参数 ‘yield’ 不存在
include/linux/sched.h:1008: 错误:声明的参数 ‘set_curr_task’ 不存在
include/linux/sched.h:1005: 错误:声明的参数 ‘sched_setscheduler’ 不存在
include/linux/sched.h:1004: 错误:声明的参数 ‘idle_cpu’ 不存在
include/linux/sched.h:998: 错误:声明的参数 ‘sched_idle_next’ 不存在
include/linux/sched.h:982: 错误:声明的参数 ‘sched_clock’ 不存在
include/linux/sched.h:911: 错误:声明的参数 ‘__put_task_struct_cb’ 不存在
include/linux/sched.h:908: 错误:声明的参数 ‘free_task’ 不存在
include/linux/sched.h:687: 错误:声明的参数 ‘groups_search’ 不存在
include/linux/sched.h:686: 错误:声明的参数 ‘set_current_groups’ 不存在
include/linux/sched.h:685: 错误:声明的参数 ‘groups_free’ 不存在
include/linux/sched.h:684: 错误:声明的参数 ‘groups_alloc’ 不存在
include/linux/sched.h:656: 错误:声明的参数 ‘exit_io_context’ 不存在
include/linux/sched.h:533: 错误:形参 ‘prio_array_t’ 的类型不完全
include/linux/sched.h:533: 错误:声明的参数 ‘prio_array_t’ 不存在
include/linux/sched.h:530: 错误:声明的参数 ‘root_user不存在
include/linux/sched.h:528: 错误:声明的参数 ‘find_user’ 不存在
include/linux/sched.h:369: 错误:声明的参数 ‘sighand_free_cb’ 不存在
include/linux/sched.h:283: 错误:声明的参数 ‘mm_counter_t’ 不存在
include/linux/sched.h:259: 错误:声明的参数 ‘arch_unmap_area_topdown’ 不存在
include/linux/sched.h:258: 错误:声明的参数 ‘arch_unmap_area’ 不存在
include/linux/sched.h:257: 错误:声明的参数 ‘arch_get_unmapped_area_topdown’ 不 存在
include/linux/sched.h:253: 错误:声明的参数 ‘arch_get_unmapped_exec_area’ 不存在
include/linux/sched.h:249: 错误:声明的参数 ‘arch_get_unmapped_area’ 不存在
include/linux/aio.h:248: 错误:声明的参数 ‘aio_max_nr’ 不存在
include/linux/aio.h:247: 错误:声明的参数 ‘aio_nr’ 不存在
include/linux/aio.h:212: 错误:声明的参数 ‘io_submit_one’ 不存在
include/linux/aio.h:211: 错误:声明的参数 ‘lookup_ioctx’ 不存在
include/linux/aio.h:207: 错误:声明的参数 ‘io_submit_one’ 不存在
include/linux/aio.h:206: 错误:声明的参数 ‘lookup_ioctx’ 不存在
。。。。。。。。。。。。。。。
请问这是怎么回事呀?
大家帮帮忙吧,谢谢! |
|