Kernel - Slight reworks to timer code
[tpg/acess2.git] / Modules / USB / Core / main.c
1 /*
2  * Acess2
3  * USB Stack
4  */
5 #define VERSION ( (0<<8)| 5 )
6 #define DEBUG   1
7 #include <acess.h>
8 #include <vfs.h>
9 #include <fs_devfs.h>
10 #include <modules.h>
11 #include "usb.h"
12
13 // === IMPORTS ===
14 extern void     USB_PollThread(void *unused);
15 extern void     USB_AsyncThread(void *Unused);
16
17 // === PROTOTYPES ===
18  int    USB_Install(char **Arguments);
19 void    USB_Cleanup(void);
20 char    *USB_ReadDir(tVFS_Node *Node, int Pos);
21 tVFS_Node       *USB_FindDir(tVFS_Node *Node, const char *Name);
22  int    USB_IOCtl(tVFS_Node *Node, int Id, void *Data);
23
24 // === GLOBALS ===
25 MODULE_DEFINE(0, VERSION, USB_Core, USB_Install, NULL, NULL);
26 tVFS_NodeType   gUSB_RootNodeType = {
27         .ReadDir = USB_ReadDir,
28         .FindDir = USB_FindDir,
29         .IOCtl = USB_IOCtl
30 };
31 tDevFS_Driver   gUSB_DrvInfo = {
32         NULL, "usb", {
33                 .NumACLs = 1,
34                 .ACLs = &gVFS_ACL_EveryoneRX,
35                 .Flags = VFS_FFLAG_DIRECTORY,
36                 .Type = &gUSB_RootNodeType
37         }
38 };
39 tUSBHost        *gUSB_Hosts = NULL;
40
41 // === CODE ===
42 /**
43  * \brief Called once module is loaded
44  */
45 int USB_Install(char **Arguments)
46 {
47         Log_Warning("USB", "Not Complete - Devel Only");
48         
49         Proc_SpawnWorker(USB_PollThread, NULL);
50         Proc_SpawnWorker(USB_AsyncThread, NULL);
51         
52         return MODULE_ERR_OK;
53 }
54
55 /**
56  * \brief Called just before module is unloaded
57  */
58 void USB_Cleanup()
59 {
60 }
61
62 /**
63  * \fn char *USB_ReadDir(tVFS_Node *Node, int Pos)
64  * \brief Read from the USB root
65  */
66 char *USB_ReadDir(tVFS_Node *Node, int Pos)
67 {
68         return NULL;
69 }
70
71 /**
72  * \fn tVFS_Node *USB_FindDir(tVFS_Node *Node, const char *Name)
73  * \brief Locate an entry in the USB root
74  */
75 tVFS_Node *USB_FindDir(tVFS_Node *Node, const char *Name)
76 {
77         return NULL;
78 }
79
80 /**
81  * \brief Handles IOCtl Calls to the USB driver
82  */
83 int USB_IOCtl(tVFS_Node *Node, int Id, void *Data)
84 {
85         return 0;
86 }

UCC git Repository :: git.ucc.asn.au