?? vfsio.c
字號:
// VFS IO Layer
#include <vfs.h>
#include <knllib.h>
#include <string.h>
#include <memory.h>
#include "vfsio.h"
long fsioOpen(VFSIODEF *io, const char *dev, int mode)
{
io->handle = (_u32)vfsOpen(dev, mode);
return io->handle?ERR_SUCCESS:ERR_INVALID;
}
void fsioClose(IOH handle)
{
vfsClose((HFILE)handle->handle);
handle->handle = 0;
}
// device has already been opened
long fsioOpenHandle(VFSIODEF *io, _u32 handle)
{
io->handle = handle;
io->sector_size = 512;
return 0;
}
int fsioIsHandleValid(IOH handle)
{
return handle && handle->handle;
}
int fsioRead(IOH handle, _u32 pos, void *buf, int num)
{
long len;
vfsSeek((HFILE)handle->handle, (_s64)((_u64)pos*handle->sector_size), SEEK_SET);
len = vfsRead((HFILE)handle->handle, buf, handle->sector_size*num);
if(len<0) return 0;
if(len<handle->sector_size*num)
memset(buf, 0, num*handle->sector_size-len);
return num;
}
int fsioWrite(IOH handle, _u32 pos, void *buf, int num)
{
long len;
vfsSeek((HFILE)handle->handle, (_s64)((_u64)pos*handle->sector_size), SEEK_SET);
len = vfsWrite((HFILE)handle->handle, buf, handle->sector_size*num);
return len<0 ? 0 : (len/handle->sector_size);
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -