Changeset 3626 in Sophya for trunk/AddOn/TAcq/racqumem.h


Ignore:
Timestamp:
May 22, 2009, 6:18:06 PM (16 years ago)
Author:
ansari
Message:

Introduction numero d'ordre de remplissage, mask de recyclage,
et sequence de traitement procA/B/C dans le gestionnaire de
memoire - Reza 22/05/2009

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/AddOn/TAcq/racqumem.h

    r3623 r3626  
    55// ---- classes de gestion memoire pour acquisition BAORadio -----
    66// LAL -      R. Ansari - Juin/Juillet 2008
     7//       Modifs Mai 2009
     8//       - Introduction du numero d'ordre de remplissage
     9//       - Introduction de mask de recyclage et sequence de traitement procA/B/C
    710//----------------------------------------------------------------
    811
     
    2124// Structure de gestion utilisee par la classe RAcqMemMgr
    2225typedef struct {
    23   uint_4 act;
    24   uint_4 stat;
    25   uint_4 nbact[3];
    26 //  int tid;
     26  uint_8 serial;    // Numero de serie permettant d'ordonner en temps les zones memoire rempli
     27  uint_4 act;       // Indique l'action en cours sur une zone Fill,Save ...
     28  uint_4 stat;      // Champ de flag (bits) indiquant les operations effectuees sur la zone
     29  uint_4 nbact[6];  // compteurs nb de fois ou (fill,save,proc,procA/B/C) a ete effectuee sur la zone
     30//  int tid;        Pas utilise pour le moment, permet l'identification du thread operant sur la zone
    2731} St_MemZ;
    2832
    29 enum MemZStatus { MemZS_Free=0, MemZS_Filled=1, MemZS_Saved=2, MemZS_Proc=4 };
    30 enum MemZaction { MemZA_None=0, MemZA_Fill=1, MemZA_Save=2, MemZA_Proc=4};
     33// Les flags (bits) correspondant aux operations effectuees sur une zone
     34// Free->libre, Filled->rempli(par DMA), Saved(ecrit sur disque), Proc(Traitement)
     35// ProcA/B/C : Trois traitement qui doivent s'enchainer
     36enum MemZStatus { MemZS_Free=0, MemZS_Filled=1, MemZS_Saved=2, MemZS_Proc=4,
     37                  MemZS_ProcA=8, MemZS_ProcB=16, MemZS_ProcC=32 };
     38// L'action en cours sur une zone
     39enum MemZaction { MemZA_None=0, MemZA_Fill=1, MemZA_Save=2, MemZA_Proc=4,
     40                  MemZA_ProcA=8, MemZA_ProcB=16, MemZA_ProcC=32 };
    3141
    3242// -------------------------------------------------------------------
    33 // Structure de gestion de zones memoire partagee (des vecteurs) entre
     43// Classe de gestion de zones memoire partagee (des buffers) entre
    3444// threads - qui doivent operer successivement sur les vecteurs
    3545// -------------------------------------------------------------------
    3646class RAcqMemZoneMgr {
    3747public:
    38 // Constructeur, classe dma, nz=Nb de zones, np=Nb de paquets/zone , psz=taille de paquet
    39   RAcqMemZoneMgr(uint_4 nz, uint_4 np=1000, uint_4 psz=4096);
     48// Constructeur, nz=Nb de zones, np=Nb de paquets/zone , psz=taille de paquet
     49  RAcqMemZoneMgr(uint_4 nz, uint_4 np=256, uint_4 psz=4096);
    4050  ~RAcqMemZoneMgr();
    4151 
     
    4959  inline uint_4 ZoneSize() { return npaq*paqsz; }
    5060 
     61  // Definit l'etat des operations obligatoires avant qu'une zone
     62  // remplie ne puisse etre recyclee (re-remplie)
     63  inline uint_4 SetFinalizedMask(uint_4 mask=((uint_4)MemZS_Saved))
     64    { mask_finalized_ = mask; }
     65  inline uint_4 GetFinalizedMask() { return mask_finalized_; }
    5166
    5267  // Retourne un MemZone disponible pour une action specifique
     
    7186  vector< St_MemZ > states;
    7287  bool stop_;
     88  uint_4 mask_finalized_;
     89  uint_8 serial_; 
    7390};
    7491
Note: See TracChangeset for help on using the changeset viewer.