OpenCores
URL https://opencores.org/ocsvn/openrisc_2011-10-31/openrisc_2011-10-31/trunk

Subversion Repositories openrisc_2011-10-31

[/] [openrisc/] [tags/] [gnu-src/] [newlib-1.18.0/] [newlib-1.18.0-or32-1.0rc1/] [newlib/] [libc/] [sys/] [mmixware/] [sbrk.c] - Diff between revs 207 and 345

Only display areas with differences | Details | Blame | View Log

Rev 207 Rev 345
/* sbrk for MMIXware.
/* sbrk for MMIXware.
 
 
   Copyright (C) 2001 Hans-Peter Nilsson
   Copyright (C) 2001 Hans-Peter Nilsson
 
 
   Permission to use, copy, modify, and distribute this software is
   Permission to use, copy, modify, and distribute this software is
   freely granted, provided that the above copyright notice, this notice
   freely granted, provided that the above copyright notice, this notice
   and the following disclaimer are preserved with no changes.
   and the following disclaimer are preserved with no changes.
 
 
   THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
   THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
   IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
   IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
   WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
   WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
   PURPOSE.  */
   PURPOSE.  */
 
 
#include <_ansi.h>
#include <_ansi.h>
#include <sys/types.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <sys/stat.h>
#include "sys/syscall.h"
#include "sys/syscall.h"
 
 
extern char *_Sbrk_high;
extern char *_Sbrk_high;
 
 
/* When the program is loaded, the first location in Pool_Segment holds
/* When the program is loaded, the first location in Pool_Segment holds
   the first available octabyte in the memory pool (a.k.a. the heap);
   the first available octabyte in the memory pool (a.k.a. the heap);
   somewhere after the command-line parameters.  We don't have to
   somewhere after the command-line parameters.  We don't have to
   initialize that location, we can just use it straight up as a pointer;
   initialize that location, we can just use it straight up as a pointer;
   just point the symbol there.
   just point the symbol there.
 
 
   This file will be compiled with -no-builtin-syms, so we need to define
   This file will be compiled with -no-builtin-syms, so we need to define
   Pool_Segment and any other symbols that would be predefined in mmixal.  */
   Pool_Segment and any other symbols that would be predefined in mmixal.  */
 
 
__asm__ (" .global _Sbrk_high\n"
__asm__ (" .global _Sbrk_high\n"
         "_Sbrk_high    IS      Pool_Segment\n"
         "_Sbrk_high    IS      Pool_Segment\n"
         "Pool_Segment  IS      0x40<<56");
         "Pool_Segment  IS      0x40<<56");
 
 
caddr_t
caddr_t
_sbrk (size_t incr)
_sbrk (size_t incr)
{
{
  extern char end;              /* Defined by the linker */
  extern char end;              /* Defined by the linker */
  char *prev_heap_end;
  char *prev_heap_end;
 
 
  prev_heap_end = _Sbrk_high;
  prev_heap_end = _Sbrk_high;
  _Sbrk_high += incr;
  _Sbrk_high += incr;
  return (caddr_t) prev_heap_end;
  return (caddr_t) prev_heap_end;
}
}
 
 

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.