91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 4M
    文件類型: .zip
    金幣: 2
    下載: 0 次
    發布日期: 2023-09-16
  • 語言: 其他
  • 標簽: 其他??

資源簡介

操作系統課程設計.zip

資源截圖

代碼片段和文件信息

#include?“linux/kernel.h“
#include?“linux/module.h“
#include?“linux/fs.h“
#include?“linux/init.h“
#include?“linux/types.h“
#include?“linux/errno.h“
#include?“linux/uaccess.h“
#include?“linux/kdev_t.h“
#define?MAX_SIZE?1024

static?int?my_open(struct?inode?*inode?struct?file?*file);
static?int?my_release(struct?inode?*inode?struct?file?*file);
static?ssize_t?my_read(struct?file?*file?char?__user?*user?size_t?t?loff_t?*f);
static?ssize_t?my_write(struct?file?*file?const?char?__user?*user?size_t?t?loff_t?*f);

static?char?message[MAX_SIZE]?=?“-------congratulations--------!“;
static?int?device_num?=?0;//設備號?
static?int?counter?=?0;//計數用?
static?int?mutex?=?0;//互斥用?
static?char*?devName?=?“myDevice“;//設備名?

struct?file_operations?pStruct?=
{?open:my_open?release:my_release?read:my_read?write:my_write?};

/*?注冊模塊?*/
int?init_module()
{
int?ret;
/*??函數中第一個參數是告訴系統,新注冊的設備的主設備號由系統分配?
?*?第二個參數是新設備注冊時的設備名字,?
?????*?第三個參數是指向file_operations的指針,?
?????*?當用設備號為0創建時,系統一個可以用的設備號創建模塊?*/
ret?=?register_chrdev(0?devName?&pStruct);
if?(ret? {
printk(“regist?failure!\n“);
return?-1;
}
else
{
printk(“the?device?has?been?registered!\n“);
device_num?=?ret;
printk(“<1>the?virtual?device‘s?major?number?%d.\n“?device_num);
printk(“<1>Or?you?can?see?it?by?using\n“);
printk(“<1>------more?/proc/devices-------\n“);
printk(“<1>To?talk?to?the?drivercreate?a?dev?file?with\n“);
printk(“<1>------‘mknod?/dev/myDevice?c?%d?0‘-------\n“?device_num);
printk(“<1>Use?\“rmmode\“?to?remove?the?module\n“);

return?0;
}
}
/*?注銷模塊,函數名很特殊*/
void?cleanup_module()
{
unregister_chrdev(device_num?devName);
printk(“unregister?it?success!\n“);
}

static?int?my_open(struct?inode?*inode?struct?file?*file)
{
????????if(mutex)
????????????????return?-EBUSY;
????????mutex?=?1;//上鎖?
printk(“<1>main??device?:?%d\n“?MAJOR(inode->i_rdev));
printk(“<1>slave?device?:?%d\n“?MINOR(inode->i_rdev));
printk(“<1>%d?times?to?call?the?device\n“?++counter);
try_module_get(THIS_MODULE);
return?0;
}
/*?每次使用完后會release?*/
static?int?my_release(struct?inode?*inode?struct?file?*file)
{
printk(“Device?released!\n“);
module_put(THIS_MODULE);
????????mutex?=?0;//開鎖
return?0;
}

static?ssize_t?my_read(struct?file?*file?char?__user?*user?size_t?t?loff_t?*f)
{
if(copy_to_user(usermessagesizeof(message)))
{
return?-EFAULT;
}
return?sizeof(message);
}

static?ssize_t?my_write(struct?file?*file?const?char?__user?*user?size_t?t?loff_t?*f)
{
if(copy_from_user(messageusersizeof(message)))
{
return?-EFAULT;
}
return?sizeof(message);
}


?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2018-04-28?12:26??操作系統課程設計\
?????目錄???????????0??2016-12-25?20:47??操作系統課程設計\DeviceDriver\
?????文件????????2703??2016-12-04?23:14??操作系統課程設計\DeviceDriver\devDrv.c
?????文件?????????739??2012-02-19?08:58??操作系統課程設計\DeviceDriver\Makefile
?????文件?????????839??2016-12-24?23:23??操作系統課程設計\DeviceDriver\test.c
?????文件?????3341802??2016-10-08?10:51??操作系統課程設計\Linux設備驅動程序(中文版第三版).pdf
?????目錄???????????0??2016-12-25?20:47??操作系統課程設計\test\
?????文件????????3187??2016-11-06?17:12??操作系統課程設計\test.sh
?????文件?????????109??2016-12-22?23:00??操作系統課程設計\test\.testdev.ko.cmd
?????文件?????????250??2016-12-22?23:00??操作系統課程設計\test\.testdev.ko.unsigned.cmd
?????文件???????22312??2016-12-22?23:00??操作系統課程設計\test\.testdev.mod.o.cmd
?????文件???????28889??2016-12-22?23:00??操作系統課程設計\test\.testdev.o.cmd
?????目錄???????????0??2016-12-25?20:47??操作系統課程設計\test\.tmp_versions\
?????文件??????????59??2016-12-22?23:31??操作系統課程設計\test\.tmp_versions\testdev.mod
?????文件?????????441??2016-12-21?09:17??操作系統課程設計\test\Makefile
?????文件?????????740??2016-12-22?22:30??操作系統課程設計\test\Makefile~
?????文件???????????0??2016-12-22?22:54??操作系統課程設計\test\Module.symvers
?????文件??????????37??2016-12-22?23:31??操作系統課程設計\test\modules.order
?????文件?????????834??2016-12-21?09:17??操作系統課程設計\test\test.c
?????文件????????4240??2016-12-22?22:54??操作系統課程設計\test\testdev.c
?????文件????????4240??2016-12-22?22:54??操作系統課程設計\test\testdev.c~
?????文件?????????367??2016-12-22?22:59??操作系統課程設計\test\testdev.h
?????文件?????????367??2016-12-22?22:59??操作系統課程設計\test\testdev.h~
?????文件??????205205??2016-12-22?23:00??操作系統課程設計\test\testdev.ko
?????文件??????205205??2016-12-22?23:00??操作系統課程設計\test\testdev.ko.unsigned
?????文件????????1271??2016-12-22?23:00??操作系統課程設計\test\testdev.mod.c
?????文件???????55576??2016-12-22?23:00??操作系統課程設計\test\testdev.mod.o
?????文件??????151308??2016-12-22?23:00??操作系統課程設計\test\testdev.o
?????文件????????2109??2016-11-06?19:32??操作系統課程設計\work.sh
?????文件??????727689??2016-09-21?21:36??操作系統課程設計\操作系統課程設計-2016-09.pdf
?????文件??????930816??2016-09-21?21:36??操作系統課程設計\操作系統課程設計講稿-201609.ppt
............此處省略7個文件信息

評論

共有 條評論