/*     
      SCOL SYSTEM . Magma 1.0 . 1996 . Sylvain HUET

         scolpack.h : routines de gestion de package de scol
*/
// Modification history:
//
//$ FA(06/08/2001): Add the declaration of SPGetModifDate()
//
//
//$LB (13/10/2004) : _loadS : an equivalent to _load, but from a String 
//

#include "scolPrerequisites.h"

/* activation du cache */
int SCcacheActivate(mmachine m);
//$BLG Start
int SCisCacheActivated(mmachine m);
//$BLG End

//$BLG - v5.2.06: Add
int SCcacheClear(mmachine m);

/* ajout d'un chemin à la partition en cours */
int SPrefinePartition(mmachine m);

/* ajout d'un chemin à la n-ieme partition */
int SPrefineNthPartition(mmachine m);

/* ajout d'une partition */
int SPaddPartition(mmachine m);

/* suppression de la derniere partition ajoutée */
int SPremovePartition(mmachine m);

/* verification de la presence d'un package
  en 0 : nom complet
 -> en 0 : chemin complet (nil si absent) */
int SPcheckpack(mmachine m);

/* stockage d'un package depuis la bande memoire
  en 0 : nom complet   1 : string package
 -> 0 : 0 si succes, -1 sinon */
int SPstorepack(mmachine m);

//$BLG - v5.22: Add
// Décryptage d'un fichier crypté par méthode Cipher
// Decrypts a file crypted through Cipher method
// fun [S S] I
// Params: source & destination files
// Return: 0 or nil if problem
int SPuncypherpack(mmachine m);

/* préparation d'un fichier modifiable
 en 0 : nom complet
 -> 0 : type W si succes, NIL sinon */
int SPgetmodifypack(mmachine m);

/* creation d'un package
  en 0 : nom W   1 : string package
 -> 0 : 0 si succes, -1 sinon */
int SPcreatepack(mmachine m);

/* append d'un package
  en 0 : nom W   1 : string package
 -> 0 : 0 si succes, -1 sinon */
int SPappendpack(mmachine m);

/* conversion W -> P */
int SPWtoP(mmachine m);

/* chargement d'un package en memoire (sans traitement particulier)
  en 0 : nom complet
 -> en 0 : chaine contenant le package (nil si absent) */
int SPgetpack(mmachine m);

/* destruction d'un fichier */
int SPdeletepack(mmachine m);

/* chargement (et compilation) d'un package sur le canal courant 
 le nom du package est dans la pile */
int SPloadpak(mmachine m);

//$BB test pkg

int SPtestpak (mmachine m);
int SPtestpakS (mmachine m);

//$LB (13/10/2004)
int SPloadpakS (mmachine m);


/* calcul du nom complet d'un fichier present en bande memoire
  en 0:type sign, 1:nom clair 2:string package
 -> 0 : nom complet si succes, nil sinon */
int SPgetlongname(mmachine m);

/* calcul de la signature d'un fichier, sans passer par la memoire scol */
int SPfileSign(mmachine m);

/* calcul de la taille d'un fichier, sans passer par la memoire scol */
int SPfileSize(mmachine m);

/* chargement d'un package (nom du package en niveau 0) */
int SCloadhard(mmachine m);

/* signature d'un environnement */
int SCsignenv(mmachine m);
/* signature de la machine */
int SCsignmachine(mmachine m);

/* definition du suffixe cookies
  en 0 : nom cookies 
  -> inchange */
int SPsetCookies(mmachine m);

/* retourne la liste des fichiers d'un répertoire */
int SClistoffiles(mmachine m);

/* retourne la liste des sous-répertoires d'un répertoire */
int SClistofsubdir(mmachine m);

/* nom de l'utilisateur */
int SCusername(mmachine m);

/* nom de l'ordinateur */
int SCcomputername(mmachine m);

/* routine envoyant la capacité courante au Superviseur */
int SCsendCapacity(mmachine m);

/* deplace les fichiers du cache dans un sous-repertoire */
int SCmovecache(mmachine m);

/* lit une trace cachée dans la machine */
int SCreadTrace(mmachine m);

//$ FA(06/08/2001): Returns the date a file was last modified
int SPGetModifDate(mmachine m);

//$BLG - v5.24: Add
int SPfilemd5(mmachine m);