GitOS
Loading...
Searching...
No Matches
disk_streamer.c File Reference
#include "disk_streamer.h"
#include <kernel.h>
#include <common/assert.h>
#include <stdbool.h>
#include "disk.h"
#include "memory/heap/kheap.h"

Functions

struct disk_streamdiskstreamer_new (int disk_id)
 Allocates and sets up new disk_stream struct.
int diskstreamer_seek (struct disk_stream *stream, int pos)
 Seeks into specified offset in stream.
int diskstreamer_read (struct disk_stream *stream, void *out, int total)
 Reads specified amount of bytes into buffer.
void diskstreamer_close (struct disk_stream *stream)
 Frees allocated disk_stream.

Function Documentation

◆ diskstreamer_close()

void diskstreamer_close ( struct disk_stream * stream)

Frees allocated disk_stream.

Parameters
streamStream to close

References kfree().

◆ diskstreamer_new()

struct disk_stream * diskstreamer_new ( int disk_id)

Allocates and sets up new disk_stream struct.

Parameters
disk_idDisk ID
Returns
struct disk_stream* Created struct

References disk_stream::disk, disk_get(), kzalloc(), and disk_stream::pos.

◆ diskstreamer_read()

int diskstreamer_read ( struct disk_stream * stream,
void * out,
int total )

Reads specified amount of bytes into buffer.

Parameters
streamStream to read
outTarget buffer
totalTotal amount of bytes to read
Returns
int Status

References assert, disk_stream::disk, disk_read_block(), DISK_SECTOR_SIZE, offset, and disk_stream::pos.

◆ diskstreamer_seek()

int diskstreamer_seek ( struct disk_stream * stream,
int pos )

Seeks into specified offset in stream.

Parameters
streamStream to seek
posBytes from 0
Returns
int 0

References disk_stream::pos.