Import backup from 2004-07-12

This commit is contained in:
josh committed 2017-07-25 22:23:47 -04:00
1 parent 872d562d6a
commit dfb71cc759
17 files changed
+717 -30

No files matched your search

+53
View File
@@ -0,0 +1,53 @@
#include "block/rd.h"
#include "kernel.h"
ramdisk_t ramdisks[256];
char rd_refs[256]; //number of references to each ramdisk
void rd_init()
{
}
int rd_register(byte *ramdisk, u32_t size)
{
int i;
for (i = 0; i < 256; i++)
{
if (!rd_refs[i])
{
rd_refs[i]++;
ramdisks[i].start = ramdisk;
ramdisks[i].size = size;
return i;
}
}
return -1;
}
int rd_remove(minor_t minor)
{
if (rd_refs[minor] <= 0)
return -1;
rd_refs[minor]--;
if (!rd_refs[minor])
free(ramdisks[minor].start);
}
int rd_read_block(minor_t minor, u32_t blockNum, u32_t count, byte *buffer)
{
if (rd_refs[minor] <= 0)
return -1;
byte *copyFrom = ramdisks[minor] + (blockNum << 9);
if (copyFrom > ramdisks[minor].start + ramdisks[minor].size)
return -1;
}
int rd_write_block(minor_t minor, u32_t blockNum, u32_t count, byte *buffer)
{
}
+21
View File
@@ -0,0 +1,21 @@
#ifndef __HOS_RD_H__
#define __HOS_RD_H__ __HOS_RD_H__
#include "kernel.h"
#include "devices.h"
typedef struct {
byte *start;
u32_t size;
} ramdisk_t;
void rd_init();
int rd_register(byte *ramdisk, u32_t size);
int rd_remove(minor_t minor);
int rd_read_block(minor_t minor, u32_t blockNum, u32_t count, byte *buffer);
int rd_write_block(minor_t minor, u32_t blockNum, u32_t count, byte *buffer);
#endif