/* Fichero de tipos de datos del Subsistema de Ficheros Simbolico */
/* Version 2.0, marzo 1997 */

#include "Consta_SF.h"

/* Tipo asociado al nombre simbolico de un archivo */
typedef char			Nombre_Simbolico[CARACT_NOMB];
typedef char			Nombre;

/* Tipo asociado al campo de direcciones de bloques de datos */
typedef unsigned short int		Direccion_Bloques[DIREC_DATOS];

/* Tipo asociado al campo fecha de ultima actualizacion */
struct fech {
	char			ano;
	char			mes;
	char			dia;
};
typedef struct fech		Fecha;

/* Tipo asociado al campo hora de la ultima actualizacion */
struct hor {
	char			hora;
	char			minuto;
	char			segundo;
};
typedef struct hor		Hora;

/* Tipo asociado al campo accesos permitidos */
typedef char			Atributo;

/* Tipo asociado al campo longitud del fichero */
typedef unsigned int		Longitud;

/* Tipo asociado a una entrada de control (directorio) de archivo */
struct control_fich {
	Nombre_Simbolico	nombre;
	Fecha			fecha;
	Hora			hora;
	Atributo		acceso;
	Longitud		longitud;
	Direccion_Bloques	bloque_dato;
};
typedef struct control_fich	Bcfd;

/* Tipo asociado a una entrada de control de fichero en memoria (abierto) */
typedef unsigned short int	Ind_Direct;
typedef unsigned char		Referencias;
typedef unsigned char		Bloqueo;

struct control_memo {
	Ind_Direct		indice_directorio;	
	Bcfd			info_disco;
	Referencias		referencia;
	Bloqueo			bloqueo;
};
typedef struct control_memo	Bcfm;	

/* Tipos asociados al control de archivos a nivel de usuario */
typedef unsigned short int	Ind_Tfas;
typedef unsigned int		Posfich;

struct control_usuario {
	Ind_Tfas		indice_tfas;
	Atributo		modo;
	Posfich			puntero;
};	
typedef struct control_usuario	Bcfu;
typedef Atributo		Acceso;
typedef unsigned short int	paramfs;