Skip to content

Commit d626890

Browse files
committed
first commit
0 parents  commit d626890

6 files changed

Lines changed: 754 additions & 0 deletions

File tree

.gitignore

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
/target
2+
/.vscode
3+
4+
*/target/*

arceos-driver/main.c

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
#include <linux/module.h>
2+
#include <linux/interrupt.h>
3+
#include <linux/kernel.h>
4+
5+
MODULE_AUTHOR("arceos");
6+
MODULE_LICENSE("GPL");
7+
8+
static int __init arceos_init(void) {
9+
int err;
10+
11+
pr_info(LOGHEAD "Initializing...\n");
12+
13+
pr_info(LOGHEAD "Registering arceos_vdev...\n");
14+
err = misc_register(&arceos_vdev);
15+
if (err) {
16+
pr_err(LOGHEAD "Cannot register arceos_vdev! err: %d\n", err);
17+
goto end;
18+
}
19+
20+
pr_info(LOGHEAD "Registering irq...\n");
21+
err = request_irq(ARCEOS_VIRQ, arceos_virq_handler, IRQF_SHARED, "arceos_hypervisor", &arceos_vdev);
22+
if (err) {
23+
pr_err(LOGHEAD "Cannot register irq! err: %d\n", err);
24+
goto err_unregister_vdev;
25+
}
26+
27+
/**
28+
* Debug:
29+
* arceos_hypercall(0x42, 0x77776666, 0xdeadbeef);
30+
*/
31+
32+
goto end;
33+
34+
err_unregister_vdev:
35+
misc_deregister(&arceos_vdev);
36+
37+
end:
38+
return err;
39+
}
40+
41+
42+
module_init(arceos_init);
43+
module_exit(arceos_exit);

0 commit comments

Comments
 (0)