fis-gtm/sr_port/bml_free.c

35 lines
983 B
C

/****************************************************************
* *
* Copyright 2001, 2007 Fidelity Information Services, Inc *
* *
* This source code contains the intellectual property *
* of its copyright holder(s), and is made available *
* under a license. If you do not know the terms of *
* the license, please stop and do not read further. *
* *
****************************************************************/
#include "mdef.h"
#include "gdsroot.h"
#include "gdsbt.h"
#include "gdsblk.h"
#include "gdsbml.h"
/* Include prototypes */
#include "bit_set.h"
#include "bit_clear.h"
GBLREF boolean_t dse_running;
uint4 bml_free(uint4 setfree, sm_uc_ptr_t map)
{
uint4 ret, ret1;
setfree *= BML_BITS_PER_BLK;
ret = bit_set(setfree, map);
ret1 = bit_clear(setfree + 1, map);
/* Assert that only a BUSY or RECYCLED block gets marked as FREE (dse is an exception) */
assert((!ret && !ret1) || (ret && ret1) || dse_running);
return ret;
}