#ifndef _BLOCKS_H
#define _BLOCKS_H
/*
**		Blocks.h
**
**		Définitions de structures pour les blocs de gestion des disks
**		AMIGADOS.
**
*/

#include <libraries/dos.h>

#define CreationDay Cday;
#define CreationMin Cmin;
#define CreationTick Ctick;

#define ModificationDay Mday;
#define ModificationMin Mmin;
#define ModificationTick Mtick;

struct RootB
{
	LONG	Type;
	LONG	HK;
	LONG	HS;
	LONG	HashSize;
	LONG	reserved;
	LONG	CheckSum;
	LONG	HashTable[72];
	LONG	BMvalid;
	LONG	BitMapTable[26];
	LONG	Mday;
	LONG	Mmin;
	LONG	Mtick;
	BYTE	DiskName[13*4];
	LONG	Cday;
	LONG	Cmin;
	LONG	Ctick;
	LONG	NextHash;
	LONG	ParentDir;
	LONG	Extension;
	LONG	SecType;
};

struct FileHeaderB
{
	LONG	Type;
	LONG	HeaderKey;
	LONG	FileBlocks;
	LONG	DataSize;
	LONG	FirstDataB;
	LONG	CheckSum;
	LONG	DataTable[72];
	LONG	Reserved1;
	LONG	Reserved2;
	LONG	Protection;
	LONG	FileLength;
	BSTR	Comment[23];
	LONG	Cday;
	LONG	Cmin;
	LONG	Ctick;
	BSTR	FileName[16];
	LONG	NextHash;
	LONG	ParentDir;
	LONG	Extension;
	LONG	SecType;
};


struct FileListB
{
	LONG	Type;
	LONG	HeaderKey;
	LONG	FileBlocks;
	LONG	DataSize;
	LONG	FirstDataB;
	LONG	CheckSum;
	LONG	DataTable[72];
	LONG	Reserved1[46];
	LONG	Reserved2;
	LONG	ParentFH;
	LONG	Extension;
	LONG	SecType;
};

struct UserDirB
{
	LONG	Type;
	LONG	HeaderKey;
	LONG	FileBlocks;
	LONG	DataSize;
	LONG	Reserved1;
	LONG	CheckSum;
	LONG	HashTable[72];
	LONG	Reserved2[2];
	LONG	Protection;
	LONG	Reserved3;
	BSTR	Comment[23];
	LONG	Mday;
	LONG	Mmin;
	LONG	Mtick;
	BSTR	DirName[16];
	LONG	NextHash;
	LONG	ParentDir;
	LONG	Extension;
	LONG	SecType;
};

struct DataB
{
	LONG	Type;
	LONG	HeaderKey;
	LONG	SeqNum;
	LONG	ValidSize;	/* number of valid bytes in this block (the first) */
	LONG	NextDataBlock;
	LONG	CheckSum;
	LONG	Datas[122];
};

#endif