Import backup from 2004-08-03

This commit is contained in:
josh committed 2017-07-25 22:23:48 -04:00
1 parent a50c2a1233
commit cd02211b21
12 files changed
+270 -79

No files matched your search

+13 -6
View File
@@ -1,6 +1,7 @@
// devices.c
// Author: Josh Holtrop
// Date: 08/02/04
// Modified: 08/03/04
#include "fs/devices.h"
@@ -10,16 +11,22 @@ dev_driver_t drivers[256];
char drivers_registered[256]; //0 (unregistered), 'b', 'c'
void dev_init()
void devices_init()
{
}
int dev_register_major(major_t major, dev_driver_t *dev)
int devices_register_major(char type, major_t major, dev_driver_t *dev)
{
if (registered[major])
return -1; //driver already registered
drivers[major] = *dev;
return 0;
if (type == 'b' || type == 'c')
{
if (drivers_registered[major])
return -1; //driver already registered
drivers[major] = *dev;
drivers_registered[major] = type;
return 0;
}
return -1;
}
+11 -7
View File
@@ -1,23 +1,27 @@
// devices.h
// Author: Josh Holtrop
// Date: 08/02/04
// Modified: 08/03/04
#ifndef __HOS_DEVICES_H__
#define __HOS_DEVICES_H__ __HOS_DEVICES_H__
#include "hos_defines.h"
#define MAJOR_CONSOLE 4
typedef unsigned char major_t;
typedef unsigned char minor_t;
typedef struct {
int (*block_read)(u32_t blockStart, u32_t blocks, void *buffer);
int (*block_write)(u32_t blockStart, u32_t blocks, void *buffer);
int (*char_read)(u64_t position);
int (*char_write)(u64_t position, int value);
int (*block_read)(minor_t minor, u32_t blockStart, u32_t blocks, void *buffer);
int (*block_write)(minor_t minor, u32_t blockStart, u32_t blocks, void *buffer);
int (*char_read)(minor_t minor, u64_t position);
int (*char_write)(minor_t minor, u64_t position, int value);
} dev_driver_t;
void dev_init();
int dev_register_major(major_t major, dev_driver_t *dev);
void devices_init();
int devices_register_major(char type, major_t major, dev_driver_t *dev);
#endif