Lines Matching defs:ao
2058 struct arena_object *ao = &arenas[pool->arenaindex];
2059 pool->nextpool = ao->freepools;
2060 ao->freepools = pool;
2061 uint nf = ao->nfreepools;
2073 if (lastnf == ao) { /* it is the rightmost */
2074 struct arena_object* p = ao->prevarena;
2077 ao->nfreepools = ++nf;
2096 if (nf == ao->ntotalpools && ao->nextarena != NULL) {
2097 /* Case 1. First unlink ao from usable_arenas.
2099 assert(ao->prevarena == NULL ||
2100 ao->prevarena->address != 0);
2101 assert(ao ->nextarena == NULL ||
2102 ao->nextarena->address != 0);
2107 if (ao->prevarena == NULL) {
2108 usable_arenas = ao->nextarena;
2113 assert(ao->prevarena->nextarena == ao);
2114 ao->prevarena->nextarena =
2115 ao->nextarena;
2118 if (ao->nextarena != NULL) {
2119 assert(ao->nextarena->prevarena == ao);
2120 ao->nextarena->prevarena =
2121 ao->prevarena;
2126 ao->nextarena = unused_arena_objects;
2127 unused_arena_objects = ao;
2131 arena_map_mark_used(ao->address, 0);
2136 (void *)ao->address, ARENA_SIZE);
2137 ao->address = 0; /* mark unassociated */
2144 /* Case 2. Put ao at the head of
2146 * ao->nfreepools was 0 before, ao isn't
2149 ao->nextarena = usable_arenas;
2150 ao->prevarena = NULL;
2152 usable_arenas->prevarena = ao;
2153 usable_arenas = ao;
2156 nfp2lasta[1] = ao;
2171 nfp2lasta[nf] = ao;
2174 if (ao == lastnf) {
2178 /* If ao were the only arena in the list, the last block would have
2181 assert(ao->nextarena != NULL);
2186 * First unlink ao from usable_arenas.
2188 if (ao->prevarena != NULL) {
2189 /* ao isn't at the head of the list */
2190 assert(ao->prevarena->nextarena == ao);
2191 ao->prevarena->nextarena = ao->nextarena;
2194 /* ao is at the head of the list */
2195 assert(usable_arenas == ao);
2196 usable_arenas = ao->nextarena;
2198 ao->nextarena->prevarena = ao->prevarena;
2200 ao->prevarena = lastnf;
2201 ao->nextarena = lastnf->nextarena;
2202 if (ao->nextarena != NULL) {
2203 ao->nextarena->prevarena = ao;
2205 lastnf->nextarena = ao;
2207 assert(ao->nextarena == NULL || nf <= ao->nextarena->nfreepools);
2208 assert(ao->prevarena == NULL || nf > ao->prevarena->nfreepools);
2209 assert(ao->nextarena == NULL || ao->nextarena->prevarena == ao);
2210 assert((usable_arenas == ao && ao->prevarena == NULL)
2211 || ao->prevarena->nextarena == ao);