/* Fichero de cabecera para la declaracion de tipos */ /* Estructura para direccin de sector fsica */ 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 reclaibrado */ }; 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 que la simula */ bloq_param pm; /* Parametro caracteristicos 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;