Lines Matching refs:size

187 static SLJIT_INLINE struct chunk_header* alloc_chunk(sljit_uw size)  in alloc_chunk()  argument
196 if (ftruncate(fd, size)) { in alloc_chunk()
201 retval = (struct chunk_header *)mmap(NULL, size, PROT_READ | PROT_WRITE, MAP_SHARED, fd, 0); in alloc_chunk()
208 retval->executable = mmap(NULL, size, PROT_READ | PROT_EXEC, MAP_SHARED, fd, 0); in alloc_chunk()
211 munmap((void *)retval, size); in alloc_chunk()
220 static SLJIT_INLINE struct chunk_header* alloc_chunk(sljit_uw size) in alloc_chunk() argument
225 retval = (struct chunk_header *)mmap(NULL, size, in alloc_chunk()
232 maprx = mremap(retval, size, NULL, size, MAP_REMAPDUP); in alloc_chunk()
234 munmap((void *)retval, size); in alloc_chunk()
238 if (mprotect(retval, size, PROT_READ | PROT_WRITE) == -1 || in alloc_chunk()
239 mprotect(maprx, size, PROT_READ | PROT_EXEC) == -1) { in alloc_chunk()
240 munmap(maprx, size); in alloc_chunk()
241 munmap((void *)retval, size); in alloc_chunk()
249 static SLJIT_INLINE void free_chunk(void *chunk, sljit_uw size) in free_chunk() argument
253 munmap(header->executable, size); in free_chunk()
254 munmap((void *)header, size); in free_chunk()
264 sljit_uw size; member
273 sljit_uw size; member
281 #define ALIGN_SIZE(size) (((size) + sizeof(struct block_header) + 7) & ~7) argument
287 static SLJIT_INLINE void sljit_insert_free_block(struct free_block *free_block, sljit_uw size) in sljit_insert_free_block() argument
289 free_block->header.size = 0; in sljit_insert_free_block()
290 free_block->size = size; in sljit_insert_free_block()
312 SLJIT_API_FUNC_ATTRIBUTE void* sljit_malloc_exec(sljit_uw size) in sljit_malloc_exec() argument
322 if (size < (64 - sizeof(struct block_header))) in sljit_malloc_exec()
323 size = (64 - sizeof(struct block_header)); in sljit_malloc_exec()
324 size = ALIGN_SIZE(size); in sljit_malloc_exec()
328 if (free_block->size >= size) { in sljit_malloc_exec()
329 chunk_size = free_block->size; in sljit_malloc_exec()
330 if (chunk_size > size + 64) { in sljit_malloc_exec()
332 chunk_size -= size; in sljit_malloc_exec()
333 free_block->size = chunk_size; in sljit_malloc_exec()
337 AS_BLOCK_HEADER(header, size)->prev_size = size; in sljit_malloc_exec()
342 size = chunk_size; in sljit_malloc_exec()
344 allocated_size += size; in sljit_malloc_exec()
345 header->size = size; in sljit_malloc_exec()
353 chunk_size = (chunk_size + size + CHUNK_SIZE - 1) & CHUNK_MASK; in sljit_malloc_exec()
370 if (chunk_size > size + 64) { in sljit_malloc_exec()
372 allocated_size += size; in sljit_malloc_exec()
373 header->size = size; in sljit_malloc_exec()
374 chunk_size -= size; in sljit_malloc_exec()
376 free_block = AS_FREE_BLOCK(header, size); in sljit_malloc_exec()
377 free_block->header.prev_size = size; in sljit_malloc_exec()
385 header->size = chunk_size; in sljit_malloc_exec()
388 next_header->size = 1; in sljit_malloc_exec()
403 allocated_size -= header->size; in sljit_free_exec()
410 if (SLJIT_UNLIKELY(!free_block->header.size)) { in sljit_free_exec()
411 free_block->size += header->size; in sljit_free_exec()
412 header = AS_BLOCK_HEADER(free_block, free_block->size); in sljit_free_exec()
413 header->prev_size = free_block->size; in sljit_free_exec()
417 sljit_insert_free_block(free_block, header->size); in sljit_free_exec()
420 header = AS_BLOCK_HEADER(free_block, free_block->size); in sljit_free_exec()
421 if (SLJIT_UNLIKELY(!header->size)) { in sljit_free_exec()
422 free_block->size += ((struct free_block*)header)->size; in sljit_free_exec()
424 header = AS_BLOCK_HEADER(free_block, free_block->size); in sljit_free_exec()
425 header->prev_size = free_block->size; in sljit_free_exec()
429 if (SLJIT_UNLIKELY(!free_block->header.prev_size && header->size == 1)) { in sljit_free_exec()
431 if (total_size - free_block->size > (allocated_size * 3 / 2)) { in sljit_free_exec()
432 total_size -= free_block->size; in sljit_free_exec()
434 free_chunk(free_block, free_block->size + in sljit_free_exec()
454 AS_BLOCK_HEADER(free_block, free_block->size)->size == 1) { in sljit_free_unused_memory_exec()
455 total_size -= free_block->size; in sljit_free_unused_memory_exec()
457 free_chunk(free_block, free_block->size + in sljit_free_unused_memory_exec()