Annotation of researchv9/jerq/sgs/inc/sdpsrc/hi/unlock.c, revision 1.1.1.1

1.1       root        1: /*
                      2:  * static char ID_unlckc[] = "@(#) unlock.c: 1.1 1/7/82";
                      3:  */
                      4: 
                      5: unlock(itemid, permissions)
                      6: ITEMID itemid;
                      7: int    permissions;
                      8: {
                      9: 
                     10:        register index;
                     11: 
                     12:        LD_unlock++;
                     13: #if DEBUG
                     14:        if( dflag > 15 )
                     15:                fprintf( stderr, "unlock %08lx ", itemid );
                     16: #endif
                     17: 
                     18:        itemid &= ~BYTEMASK;
                     19: 
                     20:        for( index = 0; index < NUMBERFRAMES; index++ )
                     21:                if( itemid == manager[index].page_id) {
                     22:                        manager[index].lock_count--;
                     23:                        if( permissions == WRTN )
                     24:                                manager[index].ref_chng = WRTN;
                     25:                        if( manager[index].lock_count < 0 )
                     26:                                return( fatal("attempt to unlock unlocked frame") );
                     27:                        if( manager[index].lock_count == 0 )
                     28:                                if( enlist(index, MRU) < 0 )
                     29:                                        return( fatal("unable to replace frame on free list") );
                     30:                        return(SUCCESS);
                     31:                        }
                     32: 
                     33:        return( fatal("attempt to unlock non-resident item") );
                     34: }

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.