• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /freebsd-13-stable/sys/contrib/octeon-sdk/

Lines Matching defs:zone

67     cvmx_zone_t zone;
79 zone = (cvmx_zone_t) ((char *)mem_ptr + elem_size * num_elem);
80 zone->elem_size = elem_size;
81 zone->num_elem = num_elem;
82 zone->name = name;
83 zone->align = 0; // not used
84 zone->baseptr = NULL;
85 zone->freelist = NULL;
86 zone->lock.value = CVMX_SPINLOCK_UNLOCKED_VAL;
88 zone->baseptr = (char *)mem_ptr;
92 *(void **)(zone->baseptr + (i*elem_size)) = zone->freelist;
93 zone->freelist = (void *)(zone->baseptr + (i*elem_size));
96 return(zone);
103 cvmx_zone_t zone;
105 zone = (cvmx_zone_t)cvmx_malloc(arena_list, sizeof(struct cvmx_zone));
107 if (NULL == zone)
111 zone->elem_size = elem_size;
112 zone->num_elem = num_elem;
113 zone->name = name;
114 zone->align = align;
115 zone->baseptr = NULL;
116 zone->freelist = NULL;
117 zone->lock.value = CVMX_SPINLOCK_UNLOCKED_VAL;
119 zone->baseptr = (char *)cvmx_memalign(arena_list, align, num_elem * elem_size);
120 if (NULL == zone->baseptr)
127 *(void **)(zone->baseptr + (i*elem_size)) = zone->freelist;
128 zone->freelist = (void *)(zone->baseptr + (i*elem_size));
131 return(zone);
138 void * cvmx_zone_alloc(cvmx_zone_t zone, uint32_t flags)
142 assert(zone != NULL);
143 assert(zone->baseptr != NULL);
144 cvmx_spinlock_lock(&zone->lock);
146 item = (cvmx_zone_t)zone->freelist;
149 zone->freelist = *(void **)item;
153 // cvmx_dprintf("No more elements in zone %s\n", zone->name);
156 cvmx_spinlock_unlock(&zone->lock);
160 void cvmx_zone_free(cvmx_zone_t zone, void *ptr)
163 assert(zone != NULL);
164 assert(zone->baseptr != NULL);
165 assert((unsigned long)ptr - (unsigned long)zone->baseptr < zone->num_elem * zone->elem_size);
167 cvmx_spinlock_lock(&zone->lock);
168 *(void **)ptr = zone->freelist;
169 zone->freelist = ptr;
170 cvmx_spinlock_unlock(&zone->lock);