other.c 648 B

123456789101112131415161718192021222324252627282930313233343536
  1. #include "other.h"
  2. #include <pthread.h>
  3. size_t req_padding(size_t size) {
  4. if(size <= 32)
  5. return 32;
  6. if(size <= 64)
  7. return 64;
  8. if(size <= 128)
  9. return 128;
  10. if(size <= 256)
  11. return 256;
  12. return size;
  13. }
  14. int map_size_to_list(heap_t *heap, size_t sz) {
  15. int i;
  16. maptable_node_t *node;
  17. i = 0;
  18. node = heap->maptable_head;
  19. while(node) {
  20. if(node->size == sz) {
  21. return i;
  22. }
  23. i++;
  24. node = node->next;
  25. }
  26. return -1;
  27. }
  28. // Random assignment
  29. int map_thread_heap(void) {
  30. return (int) (((unsigned long) pthread_self() >> 10) % NUM_HEAPS);
  31. }