XenevaOS
Loading...
Searching...
No Matches
Functions | Variables
pipe.c File Reference
#include <Fs\pipe.h>
#include <Mm\kmalloc.h>
#include <Fs\vfs.h>
#include <_null.h>
#include <string.h>
#include <list.h>
Include dependency graph for pipe.c:

Functions

size_t AuPipeUnread (AuPipe *pipe)
 AuPipeUnread – get the available read space from the pipe.
 
size_t AuPipeGetAvailableBytes (AuPipe *pipe)
 AuPipeGetAvailableBytes – returns total available bytes of the pipe.
 
void AuPipeIncrementRead (AuPipe *pipe)
 AuPipeIncrementRead – increment the read pointer of the pipe.
 
void AuPipeIncrementWrite (AuPipe *pipe)
 AuPipeIncrementWrite – increment the write pointer of the given pipe.
 
void AuPipeIncrementWriteAmount (AuPipe *pipe, size_t amount)
 AuPipeIncrementWriteAmount – increments the write ptr by amount in bytes.
 
size_t AuPipeRead (AuVFSNode *fs, AuVFSNode *file, uint64_t *buffer, uint32_t length)
 AuPipeRead – reads from pipe.
 
size_t AuPipeWrite (AuVFSNode *fs, AuVFSNode *file, uint64_t *buffer, uint32_t length)
 AuPipeWrite – write to pipe.
 
AuVFSNodeAuPipeOpen (AuVFSNode *node, char *path)
 
int AuPipeFSAddFile (AuVFSNode *fs, char *path, AuVFSNode *file)
 AuPipeFSAddFile – adds a file/directory.
 
int AuPipeFSRemoveFile (AuVFSNode *fs, char *path)
 AuDevFSRemoveFile – remove a file from device file system.
 
int AuPipeClose (AuVFSNode *fs, AuVFSNode *file)
 AuPipeClose – closes the pipe.
 
int AuCreatePipe (char *name, size_t sz)
 AuCreatePipe – creates a new pipe.
 
AuVFSNodeAuPipeFSOpen (AuVFSNode *fs, char *path)
 AuPipeFSOpen – open a pipe file and return to the caller.
 
void AuPipeFSInitialise ()
 AuPipeFSInitialise – initialise the pipe filesystem.
 

Variables

AuVFSNodepipeFS
 

Detailed Description

BSD 2-Clause License

Copyright (c) 2022-2023, Manas Kamal Choudhury All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

  1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
  2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

Function Documentation

◆ AuCreatePipe()

int AuCreatePipe ( char *  name,
size_t  sz 
)

AuCreatePipe – creates a new pipe.

Parameters
name– name of the pipe
sz– Size of the pipe

◆ AuPipeClose()

int AuPipeClose ( AuVFSNode fs,
AuVFSNode file 
)

AuPipeClose – closes the pipe.

Parameters
fs– Pointer to the pipe
file– Pointer to file, not needed

◆ AuPipeFSAddFile()

int AuPipeFSAddFile ( AuVFSNode fs,
char *  path,
AuVFSNode file 
)

AuPipeFSAddFile – adds a file/directory.

Parameters
fs– pointer to device file system
path– path of the file
file– file to add to dev fs

◆ AuPipeFSInitialise()

void AuPipeFSInitialise ( )

AuPipeFSInitialise – initialise the pipe filesystem.

◆ AuPipeFSOpen()

AuVFSNode * AuPipeFSOpen ( AuVFSNode fs,
char *  path 
)

AuPipeFSOpen – open a pipe file and return to the caller.

Parameters
fs– file system node
path– path of the pipe file

◆ AuPipeFSRemoveFile()

int AuPipeFSRemoveFile ( AuVFSNode fs,
char *  path 
)

AuDevFSRemoveFile – remove a file from device file system.

Parameters
fs– pointer to the file system
path– path of the file

◆ AuPipeGetAvailableBytes()

size_t AuPipeGetAvailableBytes ( AuPipe pipe)

AuPipeGetAvailableBytes – returns total available bytes of the pipe.

Parameters
pipe– Pointer to pipe to get total available bytes
Returns
number of bytes available in the pipe

◆ AuPipeIncrementRead()

void AuPipeIncrementRead ( AuPipe pipe)

AuPipeIncrementRead – increment the read pointer of the pipe.

Parameters
pipe– Pointer to pipe to increment its read pointer

◆ AuPipeIncrementWrite()

void AuPipeIncrementWrite ( AuPipe pipe)

AuPipeIncrementWrite – increment the write pointer of the given pipe.

Parameters
pipe– Pointer to pipe to increment its write pointer

◆ AuPipeIncrementWriteAmount()

void AuPipeIncrementWriteAmount ( AuPipe pipe,
size_t  amount 
)

AuPipeIncrementWriteAmount – increments the write ptr by amount in bytes.

Parameters
pipe– Pointer to the pipe device
amount– amount of bytes

◆ AuPipeOpen()

AuVFSNode * AuPipeOpen ( AuVFSNode node,
char *  path 
)

◆ AuPipeRead()

size_t AuPipeRead ( AuVFSNode fs,
AuVFSNode file,
uint64_t buffer,
uint32_t  length 
)

AuPipeRead – reads from pipe.

Parameters
fs– Pointer to the file system node
file– Pointer to the file, here we don't need it
buffer– Pointer to buffer where to put the data
length– length to read

◆ AuPipeUnread()

size_t AuPipeUnread ( AuPipe pipe)

AuPipeUnread – get the available read space from the pipe.

Parameters
pipe– Pointer to the pipe

◆ AuPipeWrite()

size_t AuPipeWrite ( AuVFSNode fs,
AuVFSNode file,
uint64_t buffer,
uint32_t  length 
)

AuPipeWrite – write to pipe.

Parameters
fs– Pointer to the file system node
file– Pointer to the file, here we don't need it
buffer– Pointer to buffer where to put the data
length– length to read

Variable Documentation

◆ pipeFS

AuVFSNode* pipeFS