| /* --COPYRIGHT--,EPL |
| * Copyright (c) 2008 Texas Instruments and others. |
| * All rights reserved. This program and the accompanying materials |
| * are made available under the terms of the Eclipse Public License v1.0 |
| * which accompanies this distribution, and is available at |
| * http://www.eclipse.org/legal/epl-v10.html |
| * |
| * Contributors: |
| * Texas Instruments - initial implementation |
| * |
| * --/COPYRIGHT--*/ |
| extern int __cinit__; /* defined by TI linker == -1 if .cinit isn't loaded */ |
| extern char __bss__; /* defined by the TI linker to be the start of .bss */ |
| extern char __end__; /* defined by the TI linker to be the end of .bss */ |
| |
| /* |
| * ======== _system_pre_init ======== |
| * Called by the reset code prior to .cinit processing (which |
| * initializes all explicitly initialized C static or global variables) |
| */ |
| int _system_pre_init(void) |
| { |
| /* if .cinit is not loaded, the loader has already initialized .bss */ |
| if (&__cinit__ != (int *)-1) { |
| char *cp; |
| |
| /* otherwise, we initialize all .bss to 0 before .cinit is processed */ |
| for (cp = &__bss__; cp <= &__end__; ) { |
| *cp++ = 0; |
| } |
| } |
| |
| return (1); |
| } |