Main Page | Directories | File List | Globals

adi_char.c

Go to the documentation of this file.
00001 /*
00002  * kernel_drivers/adi_core/adi_char.c
00003  *
00004  * Copyright (c) 2003-2004 Lukasz Dembinski <dembol@nasa.com.pl>
00005  * All Rights Reserved
00006  * 
00007  * Date:        2004/01
00008  * Author:      Lukasz Dembinski
00009  * Info:        adi_char.c core file
00010  * Contact:     mailto: <dembol@nasa.com.pl>
00011  *
00012  */
00013 
00014 #include <agnix/agnix.h>
00015 #include <agnix/adi/adi.h>
00016 #include <agnix/memory.h>
00017 #include <agnix/strings.h>
00018 #include <agnix/console.h>
00019 
00020 #define MOD_NAME        "CHAR: "
00021 
00022 struct adi_chrdev_s adi_chrdevs[ADI_CHRDEV_MAX];
00023 
00024 extern int adi_chrdrv_kbd_init(void);
00025 extern int adi_sysconsole_init(void);
00026 extern int adi_text_display_init(void);
00027 
00028 int __init adi_console_init(void)
00029 {
00030     adi_text_display_init();
00031     adi_sysconsole_init();
00032 
00033     return 0;
00034 }
00035 
00036 int adi_register_chrdev(struct adi_chrdev_s *chrdev)
00037 {
00038     u8 dev_minor = chrdev->dev_nr;
00039 
00040     if (adi_chrdevs[dev_minor].dev_nr != 0)
00041         return -1;
00042 
00043     memcpy((void *)&adi_chrdevs[dev_minor], (void *)chrdev, sizeof(struct adi_chrdev_s));
00044     
00045     return 0;
00046 }
00047 
00048 struct adi_chrdev_s *adi_chrdev_find_by_name(char *name)
00049 {
00050     int i;
00051 
00052     for (i = 0; i < ADI_CHRDEV_MAX; i++) {
00053         if (!strcmp(adi_chrdevs[i].dev_name, name))
00054             return &adi_chrdevs[i];
00055     }
00056     
00057     return NULL;
00058 }
00059 
00060 int __init adi_chrdrv_init(void)
00061 {
00062     printk(MOD_NAME "Initializing character drivers\n");
00063 
00064     adi_chrdrv_kbd_init();
00065     
00066     return 0;
00067 }
Dokumentacje wygenerowano programem Doxygen 1.4.2 dla projektu Agnix