mirror of
https://github.com/drasko/codezero.git
synced 2026-04-18 09:49:05 +02:00
A fix and a helper macro for the thread library.
The fix solves the problem of giving the last slice from a pool. The helper macro makes utcb space creation easy for the user because we have to consider a few things like alignment and total allocated space.
This commit is contained in:
@@ -6,6 +6,10 @@
|
|||||||
#ifndef __LIB_THREAD_H__
|
#ifndef __LIB_THREAD_H__
|
||||||
#define __LIB_THREAD_H__
|
#define __LIB_THREAD_H__
|
||||||
|
|
||||||
|
/* A helper macro easing utcb space creation. */
|
||||||
|
#define DECLARE_UTCB_SPACE(name, entries) \
|
||||||
|
char name[(entries + PAGE_SIZE / UTCB_SIZE) * UTCB_SIZE] ALIGN(PAGE_SIZE);
|
||||||
|
|
||||||
int l4_set_stack_params(unsigned long stack_top,
|
int l4_set_stack_params(unsigned long stack_top,
|
||||||
unsigned long stack_bottom,
|
unsigned long stack_bottom,
|
||||||
unsigned long stack_size);
|
unsigned long stack_size);
|
||||||
|
|||||||
@@ -49,8 +49,7 @@ int find_and_set_first_free_contig_bits(u32 *word, unsigned int limit,
|
|||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
/* This is a state machine that checks n contiguous free bits. */
|
/* This is a state machine that checks n contiguous free bits. */
|
||||||
/* FIXME: It should be <= instead of <. Fix & test in a single patch */
|
while (i + nbits <= limit) {
|
||||||
while (i + nbits < limit) {
|
|
||||||
first = i;
|
first = i;
|
||||||
last = i;
|
last = i;
|
||||||
while (!(word[BITWISE_GETWORD(last)] & BITWISE_GETBIT(last))) {
|
while (!(word[BITWISE_GETWORD(last)] & BITWISE_GETBIT(last))) {
|
||||||
|
|||||||
Reference in New Issue
Block a user