Changeset 3626 in Sophya for trunk/AddOn/TAcq/racqumem.h
- Timestamp:
- May 22, 2009, 6:18:06 PM (16 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/AddOn/TAcq/racqumem.h
r3623 r3626 5 5 // ---- classes de gestion memoire pour acquisition BAORadio ----- 6 6 // 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 7 10 //---------------------------------------------------------------- 8 11 … … 21 24 // Structure de gestion utilisee par la classe RAcqMemMgr 22 25 typedef 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 27 31 } St_MemZ; 28 32 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 36 enum 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 39 enum MemZaction { MemZA_None=0, MemZA_Fill=1, MemZA_Save=2, MemZA_Proc=4, 40 MemZA_ProcA=8, MemZA_ProcB=16, MemZA_ProcC=32 }; 31 41 32 42 // ------------------------------------------------------------------- 33 // Structure de gestion de zones memoire partagee (des vecteurs) entre43 // Classe de gestion de zones memoire partagee (des buffers) entre 34 44 // threads - qui doivent operer successivement sur les vecteurs 35 45 // ------------------------------------------------------------------- 36 46 class RAcqMemZoneMgr { 37 47 public: 38 // Constructeur, classe dma,nz=Nb de zones, np=Nb de paquets/zone , psz=taille de paquet39 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); 40 50 ~RAcqMemZoneMgr(); 41 51 … … 49 59 inline uint_4 ZoneSize() { return npaq*paqsz; } 50 60 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_; } 51 66 52 67 // Retourne un MemZone disponible pour une action specifique … … 71 86 vector< St_MemZ > states; 72 87 bool stop_; 88 uint_4 mask_finalized_; 89 uint_8 serial_; 73 90 }; 74 91
Note:
See TracChangeset
for help on using the changeset viewer.