#ifndef __SBFISICO_H #define __SBFISICO_H /* */ /* SBFISICO.H */ /* ========== */ /* */ /* Interfaz con el Sistema de Ficheros Físico */ /* */ /* Tipos básicos de estas prácticas */ #include "tipos.h" /* Estructura del superbloque */ #include "superblq.h" /************************/ /* Límites y constantes */ /************************/ #define MIN_TAMBLOQUE 96 /* para que quepa el superbloque */ /* Estas dos constantes pueden alterarse */ #define MAX_TAMBLOQUE 8192 #define MAX_TAMDISCO (1L<<24) /* 16 megabytes */ #define MAX_BLOQUES_FISICOS (MAX_TAMDISCO/MIN_TAMBLOQUE) /****************************/ /* Servicios de este módulo */ /****************************/ /* Instalación y montaje del disco */ int InstalaDisco ( const char* nombre_fichero, WORD tam_bloque, DWORD num_bloques ); int MontaDisco ( const char* nombre_fichero, int nbloques_cache ); int DesmontaDisco (void); /* Acceso al superbloque */ int LeeSuperbloque (struct Superbloque* bloque); int EscribeSuperbloque (const struct Superbloque* bloque); /* Lectura y escritura de bloques físicos */ int LeeBloqueFisico ( DWORD nbloque, void* bufer ); int EscribeBloqueFisico ( DWORD nbloque, void* bufer ); enum ModoAccesoFisico { ACCESO_FISICO_LECTURA=0, ACCESO_FISICO_ESCRITURA=1 }; int AccedeBloqueFisico ( DWORD nbloque, void* bufer, enum ModoAccesoFisico ); #endif