72 lines
1.8 KiB
C
72 lines
1.8 KiB
C
// #include "../kernel/vfs.h"
|
|
// #include "../libc/stdlib.h"
|
|
// #include "../libc/string.h"
|
|
// #include "../libc/stdio.h"
|
|
// #include "devfs.h"
|
|
//
|
|
// char** devices;
|
|
// dev_drv* dev_drivers;
|
|
// uint32_t num_devices;
|
|
// uint32_t max_devices;
|
|
//
|
|
// char devfs_drv(fs_op op,FILE* stream,void* data1,void* data2) {
|
|
// if (op==FSOP_MOUNT) {
|
|
// return 1;
|
|
// }
|
|
// if (op==FSOP_OPEN) {
|
|
// for (int i=0;i<num_devices;i++) {
|
|
// if (strcmp(devices[i],stream->path)==0) {
|
|
// return 1;
|
|
// }
|
|
// }
|
|
// return 0;
|
|
// }
|
|
// if (op==FSOP_GETC) {
|
|
// int i;
|
|
// for (i=0;i<num_devices;i++) {
|
|
// if (strcmp(devices[i],stream->path)==0) {
|
|
// break;
|
|
// }
|
|
// }
|
|
// *((int*)data1)=dev_drivers[i]((char*)stream->path,0,stream->pos,0);
|
|
// stream->pos+=1;
|
|
// return 1;
|
|
// }
|
|
// if (op==FSOP_PUTC) {
|
|
// int i;
|
|
// for (i=0;i<num_devices;i++) {
|
|
// if (strcmp(devices[i],stream->path)==0) {
|
|
// break;
|
|
// }
|
|
// }
|
|
// dev_drivers[i]((char*)stream->path,*((int*)data1),stream->pos,1);
|
|
// stream->pos+=1;
|
|
// return 1;
|
|
// }
|
|
// if (op==FSOP_CLOSE) {
|
|
// return 1;
|
|
// }
|
|
// return 0;
|
|
// }
|
|
//
|
|
// void init_devfs() {
|
|
// devices=malloc(sizeof(char*)*32);
|
|
// dev_drivers=malloc(sizeof(dev_drv)*32);
|
|
// num_devices=0;
|
|
// max_devices=0;
|
|
// register_fs(devfs_drv,"devfs");
|
|
// mount("/dev/","","devfs");
|
|
// }
|
|
//
|
|
// void add_dev(dev_drv drv,char* name) {
|
|
// if (num_devices==max_devices) {
|
|
// devices=realloc(devices,sizeof(char*)*(max_devices+32));
|
|
// dev_drivers=realloc(dev_drivers,sizeof(dev_drv)*(max_devices+32));
|
|
// max_devices+=32;
|
|
// }
|
|
// dev_drivers[num_devices]=drv;
|
|
// devices[num_devices]=malloc(sizeof(char)*(strlen(name)+1));
|
|
// strcpy(devices[num_devices],name);
|
|
// num_devices++;
|
|
// }
|