/* Fichero de declaracion de tipos */ /* Subsistema de disco */ /* version 2.0, marzo 1997 */ /* Constantes especificas del subsistema */ #include "Consta_DISCO.h" /* Estructura asociada a la direccion de sector fisico */ struct direccion_fisica { unsigned short int superficie; unsigned short int cilindro; unsigned short int sector; }; typedef struct direccion_fisica dir_fis; /* Tipo asociado a la direccion de un sector logico */ typedef unsigned int sector_logico; /* Tipo de dato para direccion extendida */ struct direccion_extendida { dir_fis df; /* Direccion de sector fisico */ sector_logico dl; /* Direccion de sector logico */ }; /* Estructura representar tiempos caracteristicos */ struct param_temp { unsigned long seg; /* Segundos */ long mseg; /* Microsegundos */ }; typedef struct param_temp tiempo; /* Estructura asociada al bloque de parametros fisicos de una unidad de disco */ struct parametros_disco { unsigned short int nsuperficie; /* Numero de supreficies */ unsigned short int ncilindro; /* Numero de cilindros */ unsigned short int nsectores; /* Sectores por pista */ unsigned short int tamsector; /* Numero de bytes por sector */ tiempo tseek; /* Tiempo de traslacion del brazo */ tiempo tlatency; /* Tiempo de latencia */ tiempo ttransf; /* Tiempo de transferencia */ tiempo trecalib; /* Tiempo de recalibrado */ }; typedef struct parametros_disco bloq_param; /* Estructura asociada a la tabla de unidades de disco activas en el sistema */ struct disco_montado { int fd; /* descriptor del fichero simulador */ bloq_param pm; /* Parametros del disco */ unsigned int sect_disc; /* Numero de sectores de la unidad */ unsigned int sect_cil; /* Numero de sectores por cilindro */ }; typedef struct disco_montado reg_tabla; typedef int unidad;