• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /barrelfish-2018-10-04/usr/eclipseclp/Shm/src/

Lines Matching defs:cluster

130  * pages->free[i] holds a list of i-page cluster descriptor.
133 * Allocation of an i-page cluster:
135 * - if this is empty, split a larger cluster
136 * - if no sufficiently large cluster available, call sbrk()
138 * Freeing a cluster:
141 * - put resulting free cluster into appropriate free list
146 * TODO: Especially for shared memory, the free cluster links should
220 pages->free[i] = (struct cluster *) 0;
289 ((struct cluster *)ptr)->next = hd->pages->free[list_index];
290 ((struct cluster *)ptr)->addr = ptr;
291 ((struct cluster *)ptr)->size = number_of_pages;
292 hd->pages->free[list_index] = (struct cluster *)ptr;
300 register struct cluster **p;
406 struct cluster *clu, *next;
543 register struct cluster **cluster_list;
544 register struct cluster *cluster;
561 if (pages->free[pages_needed]) /* a cluster that fits exactly */
564 cluster = pages->free[pages_needed];
565 pages->free[pages_needed] = cluster->next; /* remove from free list */
567 Page_Parameters(cluster->addr, block, p, mask);
574 return cluster->addr;
579 if (! (*cluster_list)) /* else any another larger cluster */
598 * look for a sufficiently large cluster (at least pages_needed)
601 while (cluster = (*cluster_list))
603 if (cluster->size >= pages_needed)
606 *cluster_list = cluster->next; /* remove from free list */
607 if (cluster->size > pages_needed) /* put back the rest, if any */
610 ((char *) cluster->addr + pages_needed*BYTES_PER_PAGE),
611 cluster->size - pages_needed);
614 Page_Parameters(cluster->addr, block, p, mask);
621 return cluster->addr;
623 cluster_list = &cluster->next;
628 * get a sufficiently large cluster from the operating system
1015 struct cluster *cl;
1057 p_fprintf(current_err_, "%10d %4d-page cluster free\n", 1, cl->size);