/*	@(#)mauft.h	20.1	*/

/*----------------------------------*/
/*codes retour de l'ucb utilisateur */
/*----------------------------------*/

/*codes de severite 0 */

#define normal		 0x06000000	 /*pas d' erreurs			   */
#define errdetfich	 0x06000009     /*refus de suppression du distant	   */
#define errcrefich	 0x06000002     /*refus de creation du distant		   */
#define errattfich	 0x06000003     /*refus de demande d'attributs du distant */
#define errassfich	 0x06000004     /*refus d'assignation du distant	   */
#define errouvfich	 0x06000005     /*refus d'ouverture du distant		   */
#define errdeassfich	 0x06000006     /*refus de deassignation du distant       */	
#define errfermfich	 0x06000007     /*refus de fermeture du distant	   */
#define errtransf	 0x06000008     /*erreur transfert detectee par le distant*/
#define errrefferm	 0x0600000a	/* refus de fermeture canal */
#define errtronq	 0x06000001     /*donnees tronquees			   */

/*codes de severite 1 */

#define errdescout	 0x06010010     /*nombre de descripteurs en sortie incorrect*/
#define errdescin	 0x06010011     /*nombre de descripteurs en entree incorrect*/
#define errnocan	 0x06010012     /*numero de canal non fourni		   */
#define errblk		 0x06010013     /*nom de bloc inconnu			   */
#define errinfo		 0x06010014     /*champ info doit etre a zero             */
#define errfcb		 0x06010015     /*syntaxe du fcb incorrecte     	   */
#define errlgfcb	 0x06010016     /*longueur pour fcb incorrecte		   */
#define errlgadtran	 0x06010017     /*longueur adressage transport incorrect  */
#define errrecs		 0x06010018     /* taille record invalide */
#define errattrib	 0x06010019	/* attributs incorrect */
#define errdat		 0x0601001a	/* structure date incorrect */
/*services non geres sur le canal */
#define errservcr	 0x06010020     /*service creation non permis		   */
#define errservsup	 0x06010021     /*service suppression non permis	   */
#define errservatt	 0x06010022     /*service demande d'attributs non permis  */
#define errservred	 0x06010023     /*service redemarrage non permis 	   */

/* erreurs de parametres */
#define errparam	 0x06010030     /*parametre incorrect dans le fcb fourni  */
#define errdonnees	 0x06010031     /*donnees inexistantes en emission        */
#define errlgdata	 0x06010032     /*longueur des donnees > max		   */
#define errlgemiss	 0x06010033     /*longueur de l'enregistrement <> de celle*/
				 /*negociee auparavant			   */
#define errlgrecept	 0x06010034     /*longueur des donnees en reception incorrect*/
#define errfileid	 0x06010035     /*file_id inexistant			   */
#define errlgfileid	 0x06010036     /*longueur file_id > max		   */
#define errlgtr		 0x06010037	/* longueur ident transfert incorrect*/
#define errtrid		 0x06010038     /*transfer_id non fourni		   */
#define errlgrest	 0x06010039	/* longueur ident redemmarrage incorrect */
#define errrest		 0x0601003a     /*restarted_transfer non fourni	   */
#define errretfcb        0x0601003b     /*code retour fcb inconnu                 */

/* erreur d'etat */
#define errreqetat	 0x06010040     /*requete incompatible avec l'etat	   */
#define errreq		 0x06010041     /*requete non permise			   */
#define errconnect	 0x06010042     /*refus de connexion du distant	   */
#define errferm		 0x06010043     /*fermeture en cours			   */

#define errintr 	0x06010046	/* interruption par le server */
/*codes d'abandon */
#define errsession	 0x06010050     /*abandon session ou erreur detectee par  */
				 /*la session entrainant un abandon        */
#define errprot		 0x06010051     /*erreur protocole du distant entrainant  */
				 /*un abandon				   */
#define erraband	 0x06010052     /*abandon en cours  */	  

/*codes de severite 2 */

#define errctx		 0x06020060     /*plus de contexte ftp			   */

/*------------------------------------------*/
/*codes utilises pour le code retour du fcb */
/*------------------------------------------*/		
                         
/* erreurs de parametres dans un message protocole */ 

#define errmispar         	     0x01000014 /*parametre manquant             */
#define errinvpar                    0x01000015 /*valeur de parametre invalide   */
#define errincpar                    0x01000016 /*valeur de parametre incorrecte */
#define errunkpar                    0x00000018 /*parametre inconnu              */
#define errseqpar                    0x01000019 /*parametre hors sequence        */
#define errsuppar                    0x0100001a /*valeur non supportee           */

/*codes d'abandon autres que ceux ci_dessous */
#define errprneg	 8 /*profil de negociation recu incorrect */

/*-----------------------------------------------------------*/
/*codes d'abandon utilises pour la requete d'abandon session */
/*-----------------------------------------------------------*/

    
#define abshutdown                1 /*immediate shutdown			*/ 
#define abunsupmes                2 /*unsupported_message			*/
#define abmessseq                 3 /*message out of sequence			*/
#define abmescont                 4 /*illegal message contents		*/
#define abillegjet                5 /*illegal data token usage		*/
#define abmesssess                6 /*unsupported session usage		*/
#define abtime_out                7 /*time out				*/

/*-------------------------------------------*/
/*codes normalises pour le code retour du fcb */
/*---------------------------------------------*/
#define erfcbnoraison		  0x06010000
#define erfcbmispar1   		  0x06010001
#define erfcbinvpar1		  0x06010002
#define erfcbincpar1		  0x06010003
#define erfcbduppar1		  0x06010004
#define erfcbunkpar1		  0x06010005
#define erfcbseqpar1		  0x06010006
#define erfcbsuppar1		  0x06010007
#define erfcbaccperm		  0x06010008
#define erfcbnofile		  0x06010009
#define erfcbfilebusy		  0x0601000a
#define erfcbnodevice		  0x0601000b
#define erfcbsyntax		  0x0601000c
#define erfcbioerror		  0x0601000d
#define erfcbsystem		  0x0601000e
#define erfcbunschar		  0x0601000f
#define erfcbnomemory		  0x06010010
#define erfcbnego		  0x06010011
#define erfcbcantopen		  0x06010012
#define erfcbcomp		  0x06010013
#define erfcbinvchar		  0x06010014
#define erfcbabort		  0x06010015
#define erfcbnoack		  0x06010016
#define erfcbtranserr		  0x06010017
#define erfcbspace		  0x06010018
#define erfcbrecordsize		  0x06010019
#define erfcbnumrec		  0x0601001a
#define erfcbkey		  0x0601001b
#define erfcbdupkey		  0x0601001c
#define erfcbclose		  0x0601001d
#define erfcbwexist		  0x0601001e
#define erfcbexist		  0x0601001f
#define erfcbunsspace		  0x06010020
#define erfcbunswchar		  0x06010021
#define erfcbwfileinex		  0x06010022 
#define erfcbshutdown             0x06010050    /*immediate shutdown			*/ 
#define erfcbunsupmes             0x06010051    /*unsupported_message			*/
#define erfcbmessseq              0x06010052    /*message out of sequence			*/
#define erfcbmescont              0x06010053    /*illegal message contents		*/
#define erfcbillegjet             0x06010054    /*illegal data token usage		*/
#define erfcbmesssess             0x06010055    /*unsupported session usage		*/

/*------------------------------------*/
/*codes retour rendus par la session */
/*------------------------------------*/
#define errclo		 0x0500003a /*fermeture en cours            */
#define errab		 0x0501003b /*abandon en cours              */
#define indclo		 0x05010066 /*session en cours de fermeture */
#define errok   	 0x56000000 /* code retour ok               */
#define indtronc	 0x56000001 /* donnees tronques             */
#define errefus		 0x05010043 /* refus de connexion 	    */
#define errefclo	 0x05010013 /* refus de deconnexion 	    */
#define errtrans	 0x05010044 /* refus de connexion par transport */
#define errdem		 0x0501003d /* requete identique en cours */
 


/* codes des #define requetes utilisateur*/ 
#define OPEN	 		113
#define ACPT	 		114
#define RACPT		 	115
#define CLOS			116
#define RCLO			117
#define ABRT			118
#define DATA			119
#define FTRA			120
#define ATTE		        121
#define CREA		        122
#define RCREA			123
#define DETR		        124
#define RDETR			125
#define INFO			126
#define RINFO			127
#define ASSG			128
#define RASSG			129
#define DASSG			130
#define RDASSG			131
#define OPFI			132
#define ROPFI			133
#define CLFI			134
#define RCLFI			135


#define SIGCREA		101
#define SIGDEL		102
#define SIGASSGN	103
#define SIGDASSGN	104
#define SIGOPEN		105
#define SIGFERM		106
#define SIGINTERR	107
#define SIGDATA		108
#define SIGDEMDATA	109
#define SIGABANDON	110
#define SIGDEMCLCANAL	111
#define SIGSP  		112
#define SIGATTR		113


			
  	
  struct  qostype {
                   unsigned short  lfac ; 
                   char typfac [10];
                 }  ; 
    struct tadrres  {
               unsigned short ladrres ; 
               char typadr [8];
               }  ; 
   struct  TABSIT {
              unsigned char stcl;
              unsigned char staltcl; 
              unsigned short  stexp; 
              unsigned short  stctrl; 
              unsigned short  stcrdt; 
              unsigned short  stltpdu; 
              unsigned short  stcheck; 
              unsigned short  stlnsdu; 
              unsigned short  stlnpdu; 
              unsigned char stwi; 
              unsigned char stwo; 
              unsigned char stypres; 
              unsigned char stcnx; 
              struct tadrres stfrna; 
              struct tadrres sttona; 
              struct qostype stqos; 
           }   ;   
 typedef   TABSIT *PTTABSIT ; 


  typedef struct   tfcb     {
	char		name[3] ;
	char		version ;
	unsigned int    idsys  ;
	unsigned int	iduser ;
	unsigned short	signal ;
	unsigned short	indic ;
	unsigned int	codret ;
	unsigned int	recs ;
	unsigned char	creatc ;
	unsigned char	acct ;
	unsigned char	datac ;
	unsigned char	subset ;
	unsigned char	datacomp ;
	unsigned char   tcc ;
	unsigned char 	file_organ ;
	unsigned char	desired_attr ;
	int		   restart_rank ;
	unsigned char	redem ;
	unsigned char	alloc_size_unit ;
	short        	file_seq_num ;
	unsigned int	cur_alloc_size ;
	unsigned int    inc_alloc_size ;
	unsigned int	max_alloc_size ;
	date            creat_date_time ;
	date    	last_ac_date_time ;
	date    	last_mo_date_time ;
	date    	exp_date_time ;
	 } ;
typedef struct tfcb *tpttfcb ;

#define boolean char
typedef struct  {
		char yy1 ;
		char yy2 ;
		char mm1 ;
		char mm2 ;
		char dd1 ;
		char dd2 ;
		char hh1 ;
		char hh2 ;
		char mn1 ;
		char mn2 ;
		char ss1 ;
		char ss2 ;
      		}     date ;  

