/trunk/kernel/generic/include/mm/buddy.h |
---|
40,30 → 40,32 |
#define BUDDY_SYSTEM_INNER_BLOCK 0xff |
struct buddy_system; |
/** Buddy system operations to be implemented by each implementation. */ |
struct buddy_system_operations { |
typedef struct { |
/** Return pointer to left-side or right-side buddy for block passed as |
* argument. */ |
link_t *(* find_buddy)(buddy_system_t *, link_t *); |
link_t *(* find_buddy)(struct buddy_system *, link_t *); |
/** Bisect the block passed as argument and return pointer to the new |
* right-side buddy. */ |
link_t *(* bisect)(buddy_system_t *, link_t *); |
link_t *(* bisect)(struct buddy_system *, link_t *); |
/** Coalesce two buddies into a bigger block. */ |
link_t *(* coalesce)(buddy_system_t *, link_t *, link_t *); |
link_t *(* coalesce)(struct buddy_system *, link_t *, link_t *); |
/** Set order of block passed as argument. */ |
void (*set_order)(buddy_system_t *, link_t *, uint8_t); |
void (*set_order)(struct buddy_system *, link_t *, uint8_t); |
/** Return order of block passed as argument. */ |
uint8_t (*get_order)(buddy_system_t *, link_t *); |
uint8_t (*get_order)(struct buddy_system *, link_t *); |
/** Mark block as busy. */ |
void (*mark_busy)(buddy_system_t *, link_t *); |
void (*mark_busy)(struct buddy_system *, link_t *); |
/** Mark block as available. */ |
void (*mark_available)(buddy_system_t *, link_t *); |
void (*mark_available)(struct buddy_system *, link_t *); |
/** Find parent of block that has given order */ |
link_t *(* find_block)(buddy_system_t *, link_t *, uint8_t); |
void (* print_id)(buddy_system_t *, link_t *); |
}; |
link_t *(* find_block)(struct buddy_system *, link_t *, uint8_t); |
void (* print_id)(struct buddy_system *, link_t *); |
} buddy_system_operations_t; |
struct buddy_system { |
typedef struct buddy_system { |
/** Maximal order of block which can be stored by buddy system. */ |
uint8_t max_order; |
link_t *order; |
70,7 → 72,7 |
buddy_system_operations_t *op; |
/** Pointer to be used by the implementation. */ |
void *data; |
}; |
} buddy_system_t; |
extern void buddy_system_create(buddy_system_t *b, uint8_t max_order, |
buddy_system_operations_t *op, void *data); |
/trunk/kernel/generic/include/typedefs.h |
---|
49,8 → 49,6 |
typedef struct task task_t; |
typedef struct thread thread_t; |
typedef struct context context_t; |
typedef struct fpu_context fpu_context_t; |
typedef struct spinlock spinlock_t; |
typedef struct mutex mutex_t; |
61,9 → 59,6 |
typedef struct waitq waitq_t; |
typedef struct futex futex_t; |
typedef struct buddy_system buddy_system_t; |
typedef struct buddy_system_operations buddy_system_operations_t; |
typedef struct as_area as_area_t; |
typedef struct as as_t; |
/trunk/kernel/generic/src/mm/frame.c |
---|
424,7 → 424,7 |
frame->refcount = 0; |
} |
static struct buddy_system_operations zone_buddy_system_operations = { |
static buddy_system_operations_t zone_buddy_system_operations = { |
.find_buddy = zone_buddy_find_buddy, |
.bisect = zone_buddy_bisect, |
.coalesce = zone_buddy_coalesce, |
/trunk/kernel/arch/sparc64/include/fpu_context.h |
---|
40,10 → 40,10 |
#define ARCH_HAS_FPU |
#define FPU_CONTEXT_ALIGN 8 |
struct fpu_context { |
typedef struct { |
uint64_t d[32]; |
uint64_t fsr; |
}; |
} fpu_context_t; |
#endif |
/trunk/kernel/arch/sparc64/include/context.h |
---|
56,7 → 56,7 |
* Save only registers that must be preserved across |
* function calls. |
*/ |
struct context { |
typedef struct { |
uintptr_t sp; /* %o6 */ |
uintptr_t pc; /* %o7 */ |
uint64_t i0; |
76,7 → 76,7 |
uint64_t l6; |
uint64_t l7; |
ipl_t ipl; |
}; |
} context_t; |
#endif |
/trunk/kernel/arch/ia64/include/fpu_context.h |
---|
42,9 → 42,9 |
#define FRS 96 |
struct fpu_context { |
typedef struct { |
__r128 fr[FRS]; |
}; |
} fpu_context_t; |
#endif |
/trunk/kernel/arch/ia64/include/context.h |
---|
66,7 → 66,7 |
* Only save registers that must be preserved across |
* function calls. |
*/ |
struct context { |
typedef struct { |
/* |
* Application registers |
128,7 → 128,7 |
__r128 f31; |
ipl_t ipl; |
}; |
} context_t; |
#endif |
/trunk/kernel/arch/ppc32/include/fpu_context.h |
---|
39,7 → 39,7 |
# include <arch/types.h> |
#endif |
struct fpu_context { |
typedef struct { |
uint64_t fr14; |
uint64_t fr15; |
uint64_t fr16; |
59,7 → 59,7 |
uint64_t fr30; |
uint64_t fr31; |
uint32_t fpscr; |
} __attribute__ ((packed)); |
} __attribute__ ((packed)) fpu_context_t; |
#endif |
/trunk/kernel/arch/ppc32/include/context.h |
---|
39,7 → 39,7 |
#define SP_DELTA 16 |
struct context { |
typedef struct { |
uintptr_t sp; |
uintptr_t pc; |
67,7 → 67,7 |
uint32_t cr; |
ipl_t ipl; |
} __attribute__ ((packed)); |
} __attribute__ ((packed)) context_t; |
#endif |
/trunk/kernel/arch/amd64/include/context.h |
---|
46,7 → 46,7 |
/* We include only registers that must be preserved |
* during function call |
*/ |
struct context { |
typedef struct { |
uintptr_t sp; |
uintptr_t pc; |
59,7 → 59,7 |
uint64_t r15; |
ipl_t ipl; |
} __attribute__ ((packed)); |
} __attribute__ ((packed)) context_t; |
#endif |
/trunk/kernel/arch/ppc64/include/fpu_context.h |
---|
39,7 → 39,7 |
# include <arch/types.h> |
#endif |
struct fpu_context { |
typedef struct { |
uint64_t fr14; |
uint64_t fr15; |
uint64_t fr16; |
59,7 → 59,7 |
uint64_t fr30; |
uint64_t fr31; |
uint32_t fpscr; |
} __attribute__ ((packed)); |
} __attribute__ ((packed)) fpu_context_t; |
#endif |
/trunk/kernel/arch/ppc64/include/context.h |
---|
39,7 → 39,7 |
#define SP_DELTA 16 |
struct context { |
typedef struct { |
uintptr_t sp; |
uintptr_t pc; |
67,7 → 67,7 |
uint64_t cr; |
ipl_t ipl; |
} __attribute__ ((packed)); |
} __attribute__ ((packed)) context_t; |
#endif |
/trunk/kernel/arch/mips32/include/fpu_context.h |
---|
39,10 → 39,10 |
#define FPU_CONTEXT_ALIGN sizeof(unative_t) |
struct fpu_context { |
typedef struct { |
unative_t dregs[32]; |
unative_t cregs[32]; |
}; |
} fpu_context_t; |
#endif |
/trunk/kernel/arch/mips32/include/context.h |
---|
52,7 → 52,7 |
* Only save registers that must be preserved across |
* function calls. |
*/ |
struct context { |
typedef struct { |
uintptr_t sp; |
uintptr_t pc; |
68,7 → 68,7 |
uint32_t gp; |
ipl_t ipl; |
}; |
} context_t; |
#endif /* __ASM__ */ |
/trunk/kernel/arch/ia32/include/fpu_context.h |
---|
44,9 → 44,9 |
void fpu_fsr(void); |
struct fpu_context { |
typedef struct { |
uint8_t fpu[512]; /* FXSAVE & FXRSTOR storage area */ |
}; |
} fpu_context_t; |
#endif |
/trunk/kernel/arch/ia32/include/context.h |
---|
51,7 → 51,7 |
* Only save registers that must be preserved across |
* function calls. |
*/ |
struct context { |
typedef struct { |
uintptr_t sp; |
uintptr_t pc; |
uint32_t ebx; |
59,7 → 59,7 |
uint32_t edi; |
uint32_t ebp; |
ipl_t ipl; |
} __attribute__ ((packed)); |
} __attribute__ ((packed)) context_t; |
#endif |