Modules/VGA - Start on a generic VGA driver (VGA driver, and library for derivatives)
[tpg/acess2.git] / KernelLand / Kernel / drv / zero-one.c
index e7d3892..b21d1ef 100644 (file)
 
 // === PROTOTYPES ===
  int   CoreDevs_Install(char **Arguments);
-size_t CoreDevs_Write(tVFS_Node *Node, off_t Offset, size_t Length, const void *Buffer);
-size_t CoreDevs_Read_Zero(tVFS_Node *Node, off_t Offset, size_t Length, void *Buffer);
-size_t CoreDevs_Read_One (tVFS_Node *Node, off_t Offset, size_t Length, void *Buffer);
-size_t CoreDevs_Read_Null(tVFS_Node *Node, off_t Offset, size_t Length, void *Buffer);
-size_t CoreDevs_Read_FRandom(tVFS_Node *Node, off_t Offset, size_t Length, void *Buffer);
-size_t CoreDevs_Read_GRandom(tVFS_Node *Node, off_t Offset, size_t Length, void *Buffer);
+size_t CoreDevs_Write(tVFS_Node *Node, off_t Offset, size_t Length, const void *Buffer, Uint Flags);
+size_t CoreDevs_Read_Zero(tVFS_Node *Node, off_t Offset, size_t Length, void *Buffer, Uint Flags);
+size_t CoreDevs_Read_One (tVFS_Node *Node, off_t Offset, size_t Length, void *Buffer, Uint Flags);
+size_t CoreDevs_Read_Null(tVFS_Node *Node, off_t Offset, size_t Length, void *Buffer, Uint Flags);
+size_t CoreDevs_Read_FRandom(tVFS_Node *Node, off_t Offset, size_t Length, void *Buffer, Uint Flags);
+size_t CoreDevs_Read_GRandom(tVFS_Node *Node, off_t Offset, size_t Length, void *Buffer, Uint Flags);
 
 // === GLOBALS ===
 MODULE_DEFINE(0, 0x0100, CoreDevs, CoreDevs_Install, NULL, NULL);
 tVFS_NodeType  gCoreDevs_NT_Null = {
        .TypeName = "CoreDevs-null",
+       .Flags = VFS_NODETYPEFLAG_STREAM,
        .Read  = CoreDevs_Read_Null,
        .Write = CoreDevs_Write
 };
 tVFS_NodeType  gCoreDevs_NT_Zero = {
        .TypeName = "CoreDevs-zero",
+       .Flags = VFS_NODETYPEFLAG_STREAM,
        .Read  = CoreDevs_Read_Zero,
        .Write = CoreDevs_Write
 };
 tVFS_NodeType  gCoreDevs_NT_One = {
        .TypeName = "CoreDevs-one",
+       .Flags = VFS_NODETYPEFLAG_STREAM,
        .Read  = CoreDevs_Read_One,
        .Write = CoreDevs_Write
 };
 tVFS_NodeType  gCoreDevs_NT_FRandom = {
        .TypeName = "CoreDevs-frandom",
+       .Flags = VFS_NODETYPEFLAG_STREAM,
        .Read  = CoreDevs_Read_FRandom,
        .Write = CoreDevs_Write
 };
 tVFS_NodeType  gCoreDevs_NT_GRandom = {
        .TypeName = "CoreDevs-grandom",
+       .Flags = VFS_NODETYPEFLAG_STREAM,
        .Read  = CoreDevs_Read_GRandom,
        .Write = CoreDevs_Write
 };
 tDevFS_Driver  gCoreDevs_Null = {
        NULL, "null",
        {
-       .Size = 0, .NumACLs = 1,
+       .Size = -1, .NumACLs = 1,
        .ACLs = &gVFS_ACL_EveryoneRW,
        .Type = &gCoreDevs_NT_Null
        }
@@ -57,7 +62,7 @@ tDevFS_Driver gCoreDevs_Null = {
 tDevFS_Driver  gCoreDevs_Zero = {
        NULL, "zero",
        {
-       .Size = 0, .NumACLs = 1,
+       .Size = -1, .NumACLs = 1,
        .ACLs = &gVFS_ACL_EveryoneRW,
        .Type = &gCoreDevs_NT_Zero
        }
@@ -65,7 +70,7 @@ tDevFS_Driver gCoreDevs_Zero = {
 tDevFS_Driver  gCoreDevs_One = {
        NULL, "one",
        {
-       .Size = 0, .NumACLs = 1,
+       .Size = -1, .NumACLs = 1,
        .ACLs = &gVFS_ACL_EveryoneRW,
        .Type = &gCoreDevs_NT_One
        }
@@ -73,7 +78,7 @@ tDevFS_Driver gCoreDevs_One = {
 tDevFS_Driver  gCoreDevs_FRandom = {
        NULL, "frandom",
        {
-       .Size = 0, .NumACLs = 1,
+       .Size = -1, .NumACLs = 1,
        .ACLs = &gVFS_ACL_EveryoneRW,
        .Type = &gCoreDevs_NT_FRandom,
        .DataAvaliable = 1
@@ -82,7 +87,7 @@ tDevFS_Driver gCoreDevs_FRandom = {
 tDevFS_Driver  gCoreDevs_GRandom = {
        NULL, "grandom",
        {
-       .Size = 0, .NumACLs = 1,
+       .Size = -1, .NumACLs = 1,
        .ACLs = &gVFS_ACL_EveryoneRW,
        .Type = &gCoreDevs_NT_GRandom,
        .DataAvaliable = 1
@@ -103,18 +108,18 @@ int CoreDevs_Install(char **Options)
        return MODULE_ERR_OK;
 }
 
-size_t CoreDevs_Write(tVFS_Node *Node, off_t Offset, size_t Length, const void *Buffer)
+size_t CoreDevs_Write(tVFS_Node *Node, off_t Offset, size_t Length, const void *Buffer, Uint Flags)
 {
        return Length;  // Ignore
 }
 
-size_t CoreDevs_Read_Zero(tVFS_Node *Node, off_t Offset, size_t Length, void *Buffer)
+size_t CoreDevs_Read_Zero(tVFS_Node *Node, off_t Offset, size_t Length, void *Buffer, Uint Flags)
 {
        memset(Buffer, 0, Length);
        return Length;
 }
 
-size_t CoreDevs_Read_One (tVFS_Node *Node, off_t Offset, size_t Length, void *Buffer)
+size_t CoreDevs_Read_One (tVFS_Node *Node, off_t Offset, size_t Length, void *Buffer, Uint Flags)
 {
        Uint8   *ptr = Buffer;
        size_t  rem;
@@ -123,13 +128,13 @@ size_t CoreDevs_Read_One (tVFS_Node *Node, off_t Offset, size_t Length, void *Bu
        return Length;
 }
 
-size_t CoreDevs_Read_Null(tVFS_Node *Node, off_t Offset, size_t Length, void *Buffer)
+size_t CoreDevs_Read_Null(tVFS_Node *Node, off_t Offset, size_t Length, void *Buffer, Uint Flags)
 {
        return 0;
 }
 
 //! Fast random number generator
-size_t CoreDevs_Read_FRandom(tVFS_Node *Node, off_t Offset, size_t Length, void *Buffer)
+size_t CoreDevs_Read_FRandom(tVFS_Node *Node, off_t Offset, size_t Length, void *Buffer, Uint Flags)
 {
        Uint8   *cbuf = Buffer;
        for( int i = 0; i < Length; i ++ )
@@ -137,8 +142,9 @@ size_t CoreDevs_Read_FRandom(tVFS_Node *Node, off_t Offset, size_t Length, void
        return Length;
 }
 
-size_t CoreDevs_Read_GRandom(tVFS_Node *Node, off_t Offset, size_t Length, void *Buffer)
+size_t CoreDevs_Read_GRandom(tVFS_Node *Node, off_t Offset, size_t Length, void *Buffer, Uint Flags)
 {
+       // TODO: VFS_IOFLAG_NOBLOCK
        Log_Error("CoreDevs", "GRandom is unimplimented");
        return -1;
 }

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