source: rtems/c/src/lib/libbsp/sparc64/shared/helenos/boot/genarch/balloc.c @ 9b4422a2

4.115
Last change on this file since 9b4422a2 was 9b4422a2, checked in by Joel Sherrill <joel.sherrill@…>, on 05/03/12 at 15:09:24

Remove All CVS Id Strings Possible Using a Script

Script does what is expected and tries to do it as
smartly as possible.

+ remove occurrences of two blank comment lines

next to each other after Id string line removed.

+ remove entire comment blocks which only exited to

contain CVS Ids

+ If the processing left a blank line at the top of

a file, it was removed.

  • Property mode set to 100644
File size: 2.3 KB
Line 
1/*
2 * Copyright (c) 2006 Jakub Jermar
3 * All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions
7 * are met:
8 *
9 * - Redistributions of source code must retain the above copyright
10 *   notice, this list of conditions and the following disclaimer.
11 * - Redistributions in binary form must reproduce the above copyright
12 *   notice, this list of conditions and the following disclaimer in the
13 *   documentation and/or other materials provided with the distribution.
14 * - The name of the author may not be used to endorse or promote products
15 *   derived from this software without specific prior written permission.
16 *
17 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
18 * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
19 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
20 * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
21 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
22 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
23 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
24 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
25 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
26 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27 */
28
29/*
30 * Modifications are made to compile for RTEMS. Removes asm.h and replaces
31 * the necessary defines in-line
32 *
33 */
34
35
36#include <boot/balloc.h>
37#if 0
38#include <asm.h>
39#endif
40#include <boot/types.h>
41#include <boot/align.h>
42
43static ballocs_t *ballocs;
44static uintptr_t phys_base;
45
46void balloc_init(ballocs_t *ball, uintptr_t base, uintptr_t kernel_base)
47{
48        ballocs = ball;
49        phys_base = base;
50        ballocs->base = kernel_base;
51        ballocs->size = 0;
52}
53
54void *balloc(size_t size, size_t alignment)
55{
56        /* Enforce minimal alignment. */
57        alignment = ALIGN_UP(alignment, 4);
58       
59        uintptr_t addr = phys_base + ALIGN_UP(ballocs->size, alignment);
60       
61        if (ALIGN_UP(ballocs->size, alignment) + size > BALLOC_MAX_SIZE)
62                return NULL;
63       
64        ballocs->size = ALIGN_UP(ballocs->size, alignment) + size;
65       
66        return (void *) addr;
67}
68
69void *balloc_rebase(void *ptr)
70{
71        return (void *) ((uintptr_t) ptr - phys_base + ballocs->base);
72}
Note: See TracBrowser for help on using the repository browser.