"Fossies" - the Fresh Open Source Software Archive

Member "ntfs-3g_ntfsprogs-2017.3.23/ntfsprogs/boot.c" (23 Mar 2017, 3420 Bytes) of package /linux/misc/ntfs-3g_ntfsprogs-2017.3.23.tgz:


As a special service "Fossies" has tried to format the requested source page into HTML format using (guessed) C and C++ source code syntax highlighting (style: standard) with prefixed line numbers and code folding option. Alternatively you can here view or download the uninterpreted source code file. For more information about "boot.c" see the Fossies "Dox" file reference documentation and the latest Fossies "Diffs" side-by-side code changes report: 3g_ntfsprogs-2016.2.22_vs_3g_ntfsprogs-2017.3.23.

    1 /*
    2  *      NTFS bootsector, adapted from the vfat one.
    3  */
    4 
    5 /* mkfs.fat.c - utility to create FAT/MS-DOS filesystems
    6  * Copyright (C) 1991 Linus Torvalds <torvalds@klaava.helsinki.fi>
    7  * Copyright (C) 1992-1993 Remy Card <card@masi.ibp.fr>
    8  * Copyright (C) 1993-1994 David Hudson <dave@humbug.demon.co.uk>
    9  * Copyright (C) 1998 H. Peter Anvin <hpa@zytor.com>
   10  * Copyright (C) 1998-2005 Roman Hodek <Roman.Hodek@informatik.uni-erlangen.de>
   11  * Copyright (C) 2008-2014 Daniel Baumann <mail@daniel-baumann.ch>
   12  * Copyright (C) 2015 Andreas Bombe <aeb@debian.org>
   13  *
   14  * This program is free software: you can redistribute it and/or modify
   15  * it under the terms of the GNU General Public License as published by
   16  * the Free Software Foundation, either version 3 of the License, or
   17  * (at your option) any later version.
   18  *
   19  * This program is distributed in the hope that it will be useful,
   20  * but WITHOUT ANY WARRANTY; without even the implied warranty of
   21  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
   22  * GNU General Public License for more details.
   23  * You should have received a copy of the GNU General Public License
   24  * along with this program. If not, see <http://www.gnu.org/licenses/>.
   25  * The complete text of the GNU General Public License
   26  * can be found in /usr/share/common-licenses/GPL-3 file.
   27  */
   28 
   29 #include "boot.h"
   30 
   31 #define BOOTCODE_SIZE 4136
   32 
   33 /* The "boot code" we put into the filesystem... it writes a message and
   34  * tells the user to try again */
   35 
   36 #define MSG_OFFSET_OFFSET 3
   37 
   38 const unsigned char boot_array[BOOTCODE_SIZE] =
   39 
   40     "\xeb\x52\x90"   /* jump to code at 0x54 (0x7c54) */
   41     "NTFS    \0"     /* NTFS signature */
   42 
   43     "\0\0\0\0\0\0\0\0\0\0\0\0"     /* 72 bytes for device parameters */
   44     "\0\0\0\0\0\0\0\0\0\0\0\0"
   45     "\0\0\0\0\0\0\0\0\0\0\0\0"
   46     "\0\0\0\0\0\0\0\0\0\0\0\0"
   47     "\0\0\0\0\0\0\0\0\0\0\0\0"
   48     "\0\0\0\0\0\0\0\0\0\0\0\0"
   49                                    /* Boot code run at location 0x7c54 */
   50     "\x0e"      /* push cs */
   51     "\x1f"      /* pop ds */
   52     "\xbe\x71\x7c"  /* mov si, offset message_txt (at location 0x7c71) */
   53                             /* write_msg: */
   54     "\xac"      /* lodsb */
   55     "\x22\xc0"  /* and al, al */
   56     "\x74\x0b"  /* jz key_press */
   57     "\x56"      /* push si */
   58     "\xb4\x0e"  /* mov ah, 0eh */
   59     "\xbb\x07\x00"  /* mov bx, 0007h */
   60     "\xcd\x10"  /* int 10h */
   61     "\x5e"      /* pop si */
   62     "\xeb\xf0"  /* jmp write_msg */
   63                             /* key_press: */
   64     "\x32\xe4"  /* xor ah, ah */
   65     "\xcd\x16"  /* int 16h */
   66     "\xcd\x19"  /* int 19h */
   67     "\xeb\xfe"  /* foo: jmp foo */
   68     /* message_txt: */
   69     "This is not a bootable disk. Please insert a bootable floppy and\r\n"
   70     "press any key to try again ... \r\n"
   71                 /* At location 0xd4, 298 bytes to reach 0x1fe */
   72                 /* 298 = 4 blocks of 72 then 10 */
   73     "\0\0\0\0\0\0\0\0\0\0\0\0"
   74     "\0\0\0\0\0\0\0\0\0\0\0\0"
   75     "\0\0\0\0\0\0\0\0\0\0\0\0"
   76     "\0\0\0\0\0\0\0\0\0\0\0\0"
   77     "\0\0\0\0\0\0\0\0\0\0\0\0"
   78     "\0\0\0\0\0\0\0\0\0\0\0\0"
   79 
   80     "\0\0\0\0\0\0\0\0\0\0\0\0"
   81     "\0\0\0\0\0\0\0\0\0\0\0\0"
   82     "\0\0\0\0\0\0\0\0\0\0\0\0"
   83     "\0\0\0\0\0\0\0\0\0\0\0\0"
   84     "\0\0\0\0\0\0\0\0\0\0\0\0"
   85     "\0\0\0\0\0\0\0\0\0\0\0\0"
   86 
   87     "\0\0\0\0\0\0\0\0\0\0\0\0"
   88     "\0\0\0\0\0\0\0\0\0\0\0\0"
   89     "\0\0\0\0\0\0\0\0\0\0\0\0"
   90     "\0\0\0\0\0\0\0\0\0\0\0\0"
   91     "\0\0\0\0\0\0\0\0\0\0\0\0"
   92     "\0\0\0\0\0\0\0\0\0\0\0\0"
   93 
   94     "\0\0\0\0\0\0\0\0\0\0\0\0"
   95     "\0\0\0\0\0\0\0\0\0\0\0\0"
   96     "\0\0\0\0\0\0\0\0\0\0\0\0"
   97     "\0\0\0\0\0\0\0\0\0\0\0\0"
   98     "\0\0\0\0\0\0\0\0\0\0\0\0"
   99     "\0\0\0\0\0\0\0\0\0\0\0\0"
  100 
  101     "\0\0\0\0\0\0\0\0\0\0"
  102                     /* Boot signature at 0x1fe */
  103     "\x55\xaa";