X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;f=KernelLand%2FKernel%2Fdrv%2Fzero-one.c;h=b21d1eff8d31622797c949b5ac9dc9a624ab17c0;hb=e47f509e07718893b837826f981085829cf16c84;hp=e7d3892f439bb791c9dc2f54584eb66711fe7e55;hpb=fe07801ccb8de442c9fc665cd1706faa0f12c166;p=tpg%2Facess2.git diff --git a/KernelLand/Kernel/drv/zero-one.c b/KernelLand/Kernel/drv/zero-one.c index e7d3892f..b21d1eff 100644 --- a/KernelLand/Kernel/drv/zero-one.c +++ b/KernelLand/Kernel/drv/zero-one.c @@ -12,44 +12,49 @@ // === 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; }