Exemplo n.º 1
0
static void l4_insert(struct L4 **list)
{
    struct L4 *item = zalloc_or_die(sizeof *item);
    item->down = zalloc_or_die(119U);

    item->next = *list;
    *list = item;
}
Exemplo n.º 2
0
static void l4_insert(struct L4 **list, void *owner)
{
    struct L4 *item = zalloc_or_die(sizeof *item);
    item->down = zalloc_or_die(119U);
    *((void **)item->down) = item;

    item->owner = owner;
    item->next = *list;
    *list = item;
}
Exemplo n.º 3
0
static void l0_insert(struct L0 **list)
{
    struct L0 *item = zalloc_or_die(sizeof *item);

    do
        l1_insert(&item->down);
    while (__VERIFIER_nondet_int());

    item->next = *list;
    *list = item;
}
Exemplo n.º 4
0
static void l1_insert(struct L1 **list)
{
    struct L1 *item = zalloc_or_die(sizeof *item);

    do
        l2_insert(&item->down);
    while (___sl_get_nondet_int());

    item->next = *list;
    *list = item;
}
Exemplo n.º 5
0
static void l2_insert(struct L2 **list, void *owner)
{
    struct L2 *item = zalloc_or_die(sizeof *item);

    do
        l3_insert(&item->down);
    while (___sl_get_nondet_int());

    item->owner = owner;
    item->next = *list;
    *list = item;
}
Exemplo n.º 6
0
static void l3_insert(struct L3 **list)
{
    struct L3 *item = zalloc_or_die(sizeof *item);

    do
        l4_insert(&item->down, list);
    while (___sl_get_nondet_int());

    item->owner = list;
    item->next = *list;
    *list = item;
}
static void l0_insert(struct L0 **list)
{
    struct L0 *item = zalloc_or_die(sizeof *item);

    int c = 0;

    do {
        c++;
        l1_insert(&item->down);
    } while (c < 2);

    item->next = *list;
    *list = item;
}
static void l1_insert(struct L1 **list)
{
    struct L1 *item = zalloc_or_die(sizeof *item);

    int c = 0;

    do {
        c++;
        l2_insert(&item->down, list);
    } while (c < 2);

    item->owner = list;
    item->next = *list;
    *list = item;
}
static void l2_insert(struct L2 **list, void *owner)
{
    struct L2 *item = zalloc_or_die(sizeof *item);

    int c = 0;

    do {
        c++;
        l3_insert(&item->down);
    } while (c < 2);

    item->owner = owner;
    item->next = *list;
    *list = item;
}
census* new_census
   (unspos	len,
	char	kind,
	u32		maskThresh)
	{
	census*	cen;
	size_t	bytesNeeded;

	if (strchr ("BWL", kind) == NULL) kind = 'B';
	if (len == 0) len = 1;

	if (kind == 'B')
		{
		bytesNeeded = sizeof(census) + (len*sizeof(u8));
		cen = (census*) zalloc_or_die ("new_census", bytesNeeded);
		cen->count8 = (u8*) (cen + 1);
		}
	else if (kind == 'W')
		{
		bytesNeeded = sizeof(census) + (len*sizeof(u16));
		cen = (census*) zalloc_or_die ("new_census", bytesNeeded);
		cen->count16 = (u16*) (cen + 1);
		}
	else // if (kind == 'L')
		{
		bytesNeeded = sizeof(census) + (len*sizeof(u32));
		cen = (census*) zalloc_or_die ("new_census", bytesNeeded);
		cen->count32 = (u32*) (cen + 1);
		}

	cen->len        = len;
	cen->kind       = kind;
	cen->maskThresh = maskThresh;

	return cen;
	}
Exemplo n.º 11
0
void empty_diag_hash (void)
	{
	u32 hDiag;

#ifndef noSeedHitQueue
	//printf ("\n(erasing seed hit queue)\n");
#endif // not noSeedHitQueue

	// allocate (or re-use) memory;  note that only diagEnd requires that we
	// fill it with zeros

	if (diagEnd == NULL)
		{
		// allocate new array
		// caveat: sometimes we don't need all of this (e.g. process_for_simple_hit)
		//         .. so allocating all these together is wasteful

		diagEnd    = malloc_or_die ("empty_diag_hash (diagEnd)",
		                            diagHashSize * sizeof(unspos));
		diagStart  = malloc_or_die ("empty_diag_hash (diagStart)",
		                            diagHashSize * sizeof(unspos));
		diagActual = malloc_or_die ("empty_diag_hash (diagActual)",
		                            diagHashSize * sizeof(sgnpos));
		diagActive = malloc_or_die ("empty_diag_hash (diagActive)",
		                            diagHashSize * sizeof(u32));

		for (hDiag=0 ; hDiag<diagHashSize ; hDiag++)
			diagEnd[hDiag] = hashInactiveEnd;

		numDiagActive = 0;

#ifdef debugDiag
		printf ("init: (diag %9s|%9s|%04X) end is %d\n",
		        "","", debugDiag, hashInactiveEnd);
#endif

#ifndef noSeedHitQueue
		if (seedHitQueueSize > 0)
			{
			seedHitQueue = zalloc_or_die ("empty_diag_hash (seedHitQueue)",
			                              seedHitQueueSize * sizeof(shqhit));
			lastSeedHit  = zalloc_or_die ("empty_diag_hash (lastSeedHit)",
			                              diagHashSize * sizeof(u64));
			seedHitNum   = seedHitQueueSize;
			}
		else
			{
			seedHitQueue = NULL;
			lastSeedHit  = NULL;
			}
#endif // not noSeedHitQueue
		}
	else
		{
		// clear the previously-allocated data

#ifndef noSeedHitQueue
		if (seedHitQueueSize > 0)
			{
			while (numDiagActive > 0)
				{
				hDiag = diagActive[--numDiagActive];
				diagEnd[hDiag] = hashInactiveEnd;
				lastSeedHit[hDiag] = 0;
#ifdef debugDiag
				if (hDiag == hashedDiag (debugDiag,0))
					printf ("insq: (diag %9s|%9s|%04X) end is %d\n",
					        "","", hDiag, hashInactiveEnd);
#endif
				}
			seedHitNum = seedHitQueueSize;
			}
		else
			{
#endif // not noSeedHitQueue
			while (numDiagActive > 0)
				{
				hDiag = diagActive[--numDiagActive];
				diagEnd[hDiag] = hashInactiveEnd;
#ifdef debugDiag
				if (hDiag == hashedDiag (debugDiag,0))
					printf ("isq:  (diag %9s|%9s|%04X) end is %d\n",
					        "","", hDiag, hashInactiveEnd);
#endif
				}
#ifndef noSeedHitQueue
			}
#endif // not noSeedHitQueue
		}

	}