Mini-OS: Fix alignment in maybe_split()

Needed on ia64, speeds up on x86.
Signed-off-by: Samuel Thibault <samuel.thibault@eu.citrix.com>
This commit is contained in:
Keir Fraser committed 2008-02-14 09:22:33 +00:00
1 parent f280af038a
commit fdbcfd71bb
1 file changed
+10 -7
+10 -7
View File
@@ -62,10 +62,19 @@ struct xmalloc_pad
size_t hdr_size;
};
/* Return size, increased to alignment with align. */
static inline size_t align_up(size_t size, size_t align)
{
return (size + align - 1) & ~(align - 1);
}
static void maybe_split(struct xmalloc_hdr *hdr, size_t size, size_t block)
{
struct xmalloc_hdr *extra;
size_t leftover = block - size;
size_t leftover;
size = align_up(size, __alignof__(struct xmalloc_hdr));
size = align_up(size, __alignof__(struct xmalloc_pad));
leftover = block - size;
/* If enough is left to make a block, put it on free list. */
if ( leftover >= (2 * (sizeof(struct xmalloc_hdr) + sizeof(struct xmalloc_pad))) )
@@ -100,12 +109,6 @@ static struct xmalloc_hdr *xmalloc_new_page(size_t size)
return hdr;
}
/* Return size, increased to alignment with align. */
static inline size_t align_up(size_t size, size_t align)
{
return (size + align - 1) & ~(align - 1);
}
/* Big object? Just use the page allocator. */
static void *xmalloc_whole_pages(size_t size, size_t align)
{
Reference in new issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.