;; -----------------------------------------------------------------------
-;;
+;;
;; Copyright 2007-2008 H. Peter Anvin - All Rights Reserved
;;
;; This program is free software; you can redistribute it and/or modify
mov [cs:bcopy_gdt.SS16+2],eax
push ss ; Save real-mode SS selector
-
+
o32 lgdt [cs:bcopy_gdt]
mov eax,cr0
or al,1
$pos = 0;
} elsif ( $pos > 0 ) {
print ", ";
- } else {
+ } else {
print "\t";
}
print '0x00';
/* ----------------------------------------------------------------------- *
- *
+ *
* Copyright 2007-2008 H. Peter Anvin - All Rights Reserved
*
* Permission is hereby granted, free of charge, to any person
* sell copies of the Software, and to permit persons to whom
* the Software is furnished to do so, subject to the following
* conditions:
- *
+ *
* The above copyright notice and this permission notice shall
* be included in all copies or substantial portions of the Software.
- *
+ *
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
* OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
\
syslinux/pxe_get_cached.o \
\
- syslinux/adv.o syslinux/advwrite.o syslinux/getadv.o \
+ syslinux/adv.o syslinux/advwrite.o syslinux/getadv.o \
syslinux/setadv.o
BINDIR = /usr/bin
/* adding a pci_dev_info member if needed*/
for (pci_dev=0; pci_dev < pci_device_list->count; pci_dev++) {
struct pci_device *pci_device = &(pci_device_list->pci_device[pci_dev]);
-
+
/* initialize the pci_dev_info structure if it doesn't exist yet. */
if (! pci_device->pci_dev_info) {
pci_device->pci_dev_info = calloc(1,sizeof (struct pci_device));
}
pci_device->pci_dev_info->linux_kernel_module=strdup("unknown");
}
-
+
/* Opening the modules.pcimap (ofa linux kernel) from the boot device*/
f=fopen("modules.pcimap","r");
if (!f)
/*skipping unecessary lines */
if ((line[0] == '#') || (line[0] == ' ') || (line[0] == 10))
continue;
-
+
char *result = NULL;
int field=0;
for (pci_dev=0; pci_dev < pci_device_list->count; pci_dev++) {
struct pci_device *pci_device =
&pci_device_list->pci_device[pci_dev];
-
+
if (hex_to_int(vendor_id) == pci_device->vendor &&
hex_to_int(product_id) == pci_device->product &&
(hex_to_int(sub_product_id) & pci_device->sub_product)
return;
}
}
-
+
pci_device->pci_dev_info->vendor_name=strdup("unknown");
pci_device->pci_dev_info->product_name=strdup("unknown");
}
/* if we have two tabs, it means this is a sub product */
} else if ((line[0] == '\t') && (line[1] == '\t')) {
-
+
/* the product name is last field */
product=skipspace(strstr(line," "));
product=strdup(skipspace(strstr(product," ")));
remove_eol(product);
-
+
/* the sub_vendor id is first field */
strncpy(sub_vendor_id,&line[2],4);
sub_vendor_id[4]=0;
-
+
/* the sub_vendor id is second field */
strncpy(sub_product_id,&line[7],4);
sub_product_id[4]=0;
-
+
/* assign the product_name to any matching pci device*/
for (pci_dev=0; pci_dev < pci_device_list->count; pci_dev++) {
struct pci_device *pci_device =
&pci_device_list->pci_device[pci_dev];
-
+
if (hex_to_int(vendor_id) == pci_device->vendor &&
hex_to_int(product_id) == pci_device->product &&
hex_to_int(sub_product_id) == pci_device->sub_product &&
/* Number of arguments in our version of the entry structure */
#define COM32_ARGS 6
-
+
.section ".init","ax"
.globl _start
.type _start, @function
uint32_t *bgptr = &__vesacon_background[line][start];
unsigned int bytes_per_pixel = __vesacon_bytes_per_pixel;
size_t fbptr = line*__vesa_info.mi.logical_scan + start*bytes_per_pixel;
-
+
__vesacon_copy_to_screen(fbptr, bgptr, npixels);
}
continue;
/* We don't support multibank (interlaced memory) modes */
- /*
+ /*
* Note: The Bochs VESA BIOS (vbe.c 1.58 2006/08/19) violates the
* specification which states that banks == 1 for unbanked modes;
* fortunately it does report bank_size == 0 for those.
/* ----------------------------------------------------------------------- *
- *
+ *
* Copyright 2008 H. Peter Anvin - All Rights Reserved
*
* Permission is hereby granted, free of charge, to any person
* sell copies of the Software, and to permit persons to whom
* the Software is furnished to do so, subject to the following
* conditions:
- *
+ *
* The above copyright notice and this permission notice shall
* be included in all copies or substantial portions of the Software.
- *
+ *
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
* OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
wi.win_num = -1; /* Not a window */
} else {
/* Paged frame buffer */
-
+
/* We have already tested that *one* of these is usable */
if ((mi->win_attr[0] & 0x05) == 0x05 && mi->win_seg[0])
winn = 0;
else
winn = 1;
-
+
wi.win_num = winn;
wi.win_base = (char *)(mi->win_seg[winn] << 4);
wi.win_size = mi->win_size << 10;
/* ----------------------------------------------------------------------- *
- *
+ *
* Copyright 2007-2008 H. Peter Anvin - All Rights Reserved
*
* Permission is hereby granted, free of charge, to any person
* sell copies of the Software, and to permit persons to whom
* the Software is furnished to do so, subject to the following
* conditions:
- *
+ *
* The above copyright notice and this permission notice shall
* be included in all copies or substantial portions of the Software.
- *
+ *
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
* OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
/* ----------------------------------------------------------------------- *
- *
+ *
* Copyright 2007-2008 H. Peter Anvin - All Rights Reserved
*
* Permission is hereby granted, free of charge, to any person
* sell copies of the Software, and to permit persons to whom
* the Software is furnished to do so, subject to the following
* conditions:
- *
+ *
* The above copyright notice and this permission notice shall
* be included in all copies or substantial portions of the Software.
- *
+ *
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
* OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
__noreturn syslinux_reboot(int warm)
{
uint16_t * const reboot_flag = (uint16_t *)0x472;
-
+
*reboot_flag = warm ? 0x1234 : 0;
__farcall(0xf000, 0xfff0, &__com32_zero_regs, NULL);
/* ----------------------------------------------------------------------- *
- *
+ *
* Copyright 2008 H. Peter Anvin - All Rights Reserved
*
* This program is free software; you can redistribute it and/or modify
current_background = new_background;
}
}
-
for (i = 0; i < 256; i++) {
cp->name = mp;
mp += sprintf(mp, "msg%02x", i)+1;
-
+
rsprintf(&cp->ansi, "%s3%d;4%d", (i & 8) ? "1;" : "",
pc2ansi[i & 7], pc2ansi[(i >> 4) & 7]);
cp++;
}
-
+
/*** XXX: This needs to move to run_menu() ***/
console_color_table = color_table;
console_color_table_size = NCOLORS+256;
-
+
set_msg_colors_global(color_table, MSG_COLORS_DEF_FG,
MSG_COLORS_DEF_BG, MSG_COLORS_DEF_SHADOW);
return color_table;
}
-
-
P_HSHIFT,
P_VSHIFT,
P_HIDDEN_ROW,
-
+
NPARAMS
};
find_menu(const char *label)
{
struct menu *m;
-
+
for (m = menu_list; m; m = m->next) {
if (!strcmp(label, m->label))
return m;
me->label = refstr_get(ld->label);
me->passwd = refstr_get(ld->passwd);
me->helptext = ld->helptext;
- me->hotkey = 0;
+ me->hotkey = 0;
me->action = ld->action ? ld->action : MA_CMD;
if ( ld->menuindent ) {
case MA_CMD:
ipp = ipoptions;
*ipp = '\0';
-
+
if (ld->ipappend) {
ipappend = syslinux_ipappend_strings();
for (i = 0; i < ipappend->count; i++) {
/* ----------------------------------------------------------------------- *
- *
+ *
* Copyright 2008 H. Peter Anvin - All Rights Reserved
*
* This program is free software; you can redistribute it and/or modify
if (r) {
ref = (unsigned int *)r - 1;
-
+
if (!--*ref)
free(ref);
}
The --once, --clear-once, and --reset-adv commands can be combined
with --install or --update, if desired. The ADV is preserved
across updates, unless --reset-adv is specified.
-
+
Note that EXTLINUX installs in the filesystem partition like a
well-behaved bootloader :) Thus, it needs a master boot record in the
MENU HIDDEN
Do not display the actual menu unless the user presses a key.
- All that is displayed is a timeout message.
-
+ All that is displayed is a timeout message.
+
MENU SEPARATOR
Insert an empty line in the menu.
Makes the entry unselectable. This allows you to make a
section in your menu with different options below it.
for example:
-
+
# Entries for network boots
LABEL -
MENU LABEL Network:
MENU DISABLE
-
+
# Soft Cap Linux
LABEL softcap
MENU LABEL Soft Cap ^Linux 9.6.36
WARNING: if MENU MASTER PASSWD or ALLOWOPTIONS 0 is set, this
will still allow exiting to the CLI; however, a separate MENU
PASSWD can of course be set for this label.
-
+
INCLUDE filename [tagname]
MENU INCLUDE filename [tagname]
syslinux_reset_adv(syslinux_adv);
else if (read_adv(path) < 0)
return 1;
-
+
if (modify_adv() < 0)
return 1;
/* ----------------------------------------------------------------------- *
- *
+ *
* Copyright 2007-2008 H. Peter Anvin - All Rights Reserved
*
* This program is free software; you can redistribute it and/or modify
/* Make sure both copies agree, and update the checksum */
set_32(advbuf, ADV_MAGIC1);
-
+
csum = ADV_MAGIC2;
for (i = 8; i < ADV_SIZE-4; i += 4)
csum -= get_32(advbuf+i);
-
+
set_32(advbuf+4, csum);
set_32(advbuf+ADV_SIZE-4, ADV_MAGIC3);
return -1;
}
}
-
/* ----------------------------------------------------------------------- *
- *
+ *
* Copyright 2007-2008 H. Peter Anvin - All Rights Reserved
*
* This program is free software; you can redistribute it and/or modify
while (defined($line = <LST>)) {
chomp $line;
-
+
$source = substr($line, 40);
if ($source =~ /^([^;]*);/) {
$source = $1;
print OUT $line, "\n";
}
-
lss16toppm \(em Convert an LSS-16 image to PPM
.SH "SYNOPSIS"
.PP
-\fBlss16toppm\fR [\fB-map\fP] [< file.lss] [> file.ppm]
+\fBlss16toppm\fR [\fB-map\fP] [< file.lss] [> file.ppm]
.SH "DESCRIPTION"
.PP
This manual page documents briefly the \fBlss16toppm\fR command.
.SH SYNOPSIS
.B syslinux
[\fB\-sfr\fP]
-[\fB\-d\fP \fIdirectory\fP]
-[\fB\-o\fP \fIoffset\fP]
+[\fB\-d\fP \fIdirectory\fP]
+[\fB\-o\fP \fIoffset\fP]
.I device
.SH DESCRIPTION
\fBSyslinux\fP is a boot loader for the Linux operating system which
mov dh,al
inc ah
or cl,ah ; CX = cylinder and sector
-
+
mov dl,[DriveNo]
mov bx,7C00h
mov ax,0201h ; Read one sector
regs.eax.b[1] = 0x08;
regs.edx.b[0] = geometry->driveno & 0x80;
syscall(0x13, ®s, ®s);
-
+
if ( regs.eflags.l & 1 ) {
printf("INT 13 08: Failure, assuming this is the only drive\n");
pptr->drivecnt = 0;
regs.edx.b[0], regs.es, regs.edi.w[0]);
pptr->drivecnt = regs.edx.b[0];
}
-
+
/* Compare what INT 13h returned with the appropriate equipment byte */
if ( geometry->driveno & 0x80 ) {
bios_drives = rdz_8(BIOS_HD_COUNT);
} else {
uint8_t equip = rdz_8(BIOS_EQUIP);
-
+
if (equip & 1)
bios_drives = (equip >> 6)+1;
else
bios_drives = 0;
}
-
+
if (pptr->drivecnt > bios_drives) {
printf("BIOS equipment byte says count = %d, go with that\n",
bios_drives);