mirror of
https://github.com/drasko/codezero.git
synced 2026-01-16 21:03:16 +01:00
Increased inode block pointers to 40. The current maximum allowed (and checked). Updates to file size after every file write ensures subsequent writes can correctly operate using updated file size information (i.e. not try to add more pages that are already present). We cannot do this inside write() because directory writes rely on byte-granularity updates on file buffers, whereas file updates are by page-granularity (currently).
44 lines
1.2 KiB
Plaintext
44 lines
1.2 KiB
Plaintext
/*
|
|
* Simple linker script for userspace or svc tasks.
|
|
*
|
|
* Copyright (C) 2007 Bahadir Balban
|
|
*/
|
|
|
|
/*
|
|
* The only catch with this linker script is that everything
|
|
* is linked starting at virtual_base, and loaded starting
|
|
* at physical_base. virtual_base is the predefined region
|
|
* of virtual memory for userland applications. physical_base
|
|
* is determined at build-time, it is one of the subsequent pages
|
|
* that come after the kernel image's load area.
|
|
*/
|
|
/* USER_AREA_START, see memlayout.h */
|
|
virtual_base = 0x10000000;
|
|
__stack = (0x20000000 - 0x1000 - 8); /* First page before the env/args */
|
|
INCLUDE "include/physical_base.lds"
|
|
|
|
/* physical_base = 0x228000; */
|
|
offset = virtual_base - physical_base;
|
|
|
|
ENTRY(_start)
|
|
|
|
SECTIONS
|
|
{
|
|
. = virtual_base;
|
|
_start_text = .;
|
|
.text : AT (ADDR(.text) - offset) { crt0.o(.text) *(.text) }
|
|
/* rodata is needed else your strings will link at physical! */
|
|
.rodata : AT (ADDR(.rodata) - offset) { *(.rodata) }
|
|
.rodata1 : AT (ADDR(.rodata1) - offset) { *(.rodata1) }
|
|
.data : AT (ADDR(.data) - offset)
|
|
{
|
|
. = ALIGN(4K);
|
|
_start_test1 = .;
|
|
*(.test1)
|
|
_end_test1 = .;
|
|
*(.data)
|
|
}
|
|
.bss : AT (ADDR(.bss) - offset) { *(.bss) }
|
|
_end = .;
|
|
}
|