oooeta
C OOOETA SOURCE PV090527 26/04/24 08:23:07 12524 SUBROUTINE OOOETA (PSEG,IETA,IMOD) C---------------------------------------------------------------------- C C ETAT D'UN SEGMENT C C PSEG POINTEUR DU SEGMENT C C ->IETA 1 SEGMENT ACTIF C 2 SEGMENT INACTIF , EN MEMOIRE C 3 SEGMENT INACTIF , SUR DISQUE C C ->IMOD 0 SEGMENT ACTIF EN LECTURE (*NOMOD) C ->IMOD 1 SEGMENT ACTIF EN ECRITURE (*MOD ) C C PROGRAMMEUR : MOUGIN C MODIF : 10/04/89 ERREUR : OUBLI DE DECLARER PSEG C C----------------------------------------------------------------------- C %INC IOOADR %INC IOOADZ %INC IOODES %INC IOOSGM %INC IOOWCOM POINTEUR PSEG.PSEG C CONTROLES DE VRAISSEMBLANCE DU POINTEUR CALL OOOVPN(PSEG) C Le segment est-il dans la queue de suppression nth=oothrd do i=1,isupq(nth) if (supq(nth,i).eq.pseg) then CALL OOOERR(PSEG,-1,'LE POINTEUR DESIGNE UN SEGMENT SUPPRIME') STOP 16 endif enddo ITYP = MDTYP(PSEG) IMOD = 0 IETA =-1 IF (MDDISK(ITYP).EQ.MDDISQUE) THEN IETA = 3 ELSEIF (MDETAT(ITYP).EQ.MDACT ) THEN C Le segment est-il dans la queue de desactivation do i=1,idesq(nth) if (desq(nth,i).eq.pseg) then ieta=2 return endif enddo C Le segment est-il actuellement actif pour le thread ith if((nth.lt.64.and.ibits(mdro1(pseg),nth,1).eq.0).or. > (nth.ge.64.and.ibits(mdro2(pseg),nth-64,1).eq.0)) then ieta=2 return endif C Le segment est-il ACTIF en *MOD if (mdrw(pseg) .eq. nth+1) imod=1 IETA = 1 ELSE IETA = 2 ENDIF END
© Cast3M 2003 - Tous droits réservés.
Mentions légales