/* 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;