sos_bsect.lds

来自「Simple Operating Systems (简称SOS)是一个可以运行在」· LDS 代码 · 共 62 行

LDS
62
字号
/* Copyright (C) 2004, David Decotigny   This program is free software; you can redistribute it and/or   modify it under the terms of the GNU General Public License   as published by the Free Software Foundation; either version 2   of the License, or (at your option) any later version.      This program is distributed in the hope that it will be useful,   but WITHOUT ANY WARRANTY; without even the implied warranty of   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the   GNU General Public License for more details.      You should have received a copy of the GNU General Public License   along with this program; if not, write to the Free Software   Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,   USA. */SECTIONS{    /* ***********************************************     * The bootsector is here. We link it against the remaining of the kernel     * in order to automatically figure out its size that must be loaded     * from file to memory (see the load_size definition below)     */    /* If we use one, we put the boot sector here. We don't set its     * address to 0x7c000 (aka 0x7c00:0), since it reloads itself to     * 0x9f000, causing the 0x7c000 address to be meaningless too. So we     * chose to pretend that the address is 0x0, and to make a little     * address arithmetic in bootsect.S */    .bootsect 0x0 :    {      /* The code for the boot sector goes here */      *(.bootsect);      /* The load_size symbol contains the size of the area (in       * sectors, aka 512 Bytes) that the boot sector should copy from       * the disk. The bss section is not included since it uses 0       * bytes on disk */      load_size = .;      LONG((__e_load - __b_load + 511) >> 9);      /* ---> This is equivalent to ceil( (__e_load - __b_load) / 512 ) */      /* At offsets 511 and 512, we set the boot sector signature (AA55h) */      . = 0x1fe;      SHORT(0xAA55);    }}/* This is to avoid a cut/paste here. Please notice that a multiboot * section WILL be inserted, which is NOT mandatory (we could have * removed it without getting into trouble). Please note however that * the *.bin files will NOT be multiboot compatible (they are not in ELF * format): they are expected to be directly booted by the BIOS (or * by the "chainloader" command of Grub). */INCLUDE ../support/sos.lds/* We overload the entry set in sos.lds, just to avoid an ld warning */ENTRY(sos_main);

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?