#
259065 |
|
07-Dec-2013 |
gjb |
- Copy stable/10 (r259064) to releng/10.0 as part of the 10.0-RELEASE cycle. - Update __FreeBSD_version [1] - Set branch name to -RC1
[1] 10.0-CURRENT __FreeBSD_version value ended at '55', so start releng/10.0 at '100' so the branch is started with a value ending in zero.
Approved by: re (implicit) Sponsored by: The FreeBSD Foundation |
#
256281 |
|
10-Oct-2013 |
gjb |
Copy head (r256279) to stable/10 as part of the 10.0-RELEASE cycle.
Approved by: re (implicit) Sponsored by: The FreeBSD Foundation
|
#
244089 |
|
10-Dec-2012 |
dteske |
Add support for comma-separated values (whitespace-separated still supported).
PR: conf/121064 Submitted by: koitsu Reviewed by: jh
|
#
244048 |
|
09-Dec-2012 |
dteske |
Use ASCII characters for box/line characters in frames.4th
Committed with changes to support the following from loader.conf(5): + console="vidconsole comconsole" (not just console="comconsole") + boot_serial="anything" (not just boot_serial="YES") + boot_multicons="anything" (unsupported in originally-submitted patch)
PR: conf/121064 Submitted by: koitsu Reviewed by: gcooper, adrian (co-mentor) Approved by: adrian (co-mentor)
|
#
222417 |
|
28-May-2011 |
julian |
New boot loader menus from Devin Teske. Discussed on hackers and recommended for inclusion into 9.0 at the devsummit. All support email to devin dteske at vicor dot ignoreme dot com .
Submitted by: dteske at vicor dot ignoreme dot com Reviewed by: me and many others
|
#
187143 |
|
13-Jan-2009 |
luigi |
comment out some debugging messages that slipped in by mistake.
MFC after: 3 days
|
#
186789 |
|
05-Jan-2009 |
luigi |
This patch introduces a number of simplifications to the Forth functions used in the bootloader. The goal is to make the code more readable and smaller (especially because we have size issues in the loader's environment).
High level description of the changes: + define some string manipulation functions to improve readability; + create functions to manipulate module descriptors, removing some duplicated code; + rename the error codes to ESOMETHING; + consistently use set_environment_variable (which evaluates $variables) when interpreting variable=value assignments;
I have tested the code, but there might be code paths that I have not traversed so please let me know of any issues.
Details of this change:
--- loader.4th --- + add some module operators, to remove duplicated code while parsing module-related commands:
set-module-flag enable-module disable-module toggle-module show-module
--- pnp.4th --- + move here the definition related to the pnp devices list, e.g. STAILQ_* , pnpident, pnpinfo
--- support.4th --- + rename error codes to capital e.g. ENOMEM EFREE ... and do obvious changes related to the renaming; + remove unused structures (those relevant to pnp are moved to pnp.4th) + various string functions - strlen removed (it is an internal function) - strchr, defined as the C function - strtype -- type a string to output - strref -- assign a reference to the string on the stack - unquote -- remove quotes from a string
+ remove reset_line_buffer
+ move up the 'set_environment_variable' function (which now uses the interpreter, so $variables are evaluated). Use the function in various places
+ add a 'test_file function' for debugging purposes
MFC after: 4 weeks
|
#
185746 |
|
07-Dec-2008 |
luigi |
PROBLEM: putting in a loader config file a line of the form
loader_conf_files="foo bar baz"
should cause loading the files listed, and then resume with the remaining config files (from previous values of the variable). Unfortunately, sometimes the line was ignored -- actually even modifying the line in /boot/default/loader.conf sometimes doesn't work.
ANALYSIS: After much investigation, turned out to be a bug in the logic. The existing code detected a new assignment by looking at the address of the the variable containing the string. This only worked by pure chance, i.e. if the new string is longer than the previous value then the memory allocator may return a different address to store the string hence triggering the detection.
SOLUTION: This commit contains a minimal change to fix the problem, without altering too much the existing structure of the code. However, as a step towards improving the quality and reliability of this code, I have introduced a handful of one-line functions (strget, strset, strfree, string= ) that could be used in dozens of places in the existing code.
HOWEVER: There is a much bigger problem here. Even though I am no Forth expert (as most fellow src committers) I can tell that much of the forth code (in support.4th at least) is in severe need of a review/refactoring:
+ pieces of code are replicated multiple times instead of writing functions (see e.g. set_module_*);
+ a lot of stale code (e.g. "structure" definitions for preloaded_files, kernel_module, pnp stuff) which is not used or at least belongs elsewhere. The code bload is extremely bad as the loader runs with very small memory constraints, and we already hit the limit once (see
http://svn.freebsd.org/viewvc/base?view=revision&revision=185132 Reducing the footprint of the forth files is critical.
+ two different styles of coding, one using pure stack functions (maybe beautiful but surely highly unreadable), one using high level mechanisms to give names to arguments and local variables (which leads to readable code).
Note that this code is used by default by all FreeBSD installations, so the fragility and the code bloat are extremely damaging. I will try to work fixing the three items above, but if others have time, please have a look at these issues.
MFC after: 4 weeks
|
#
174777 |
|
19-Dec-2007 |
ambrisko |
Allow negative values to be specified in the loader.
|
#
163327 |
|
13-Oct-2006 |
ru |
Replace a rarely used "depuration" with "debugging".
PR: docs/85127 Submitted by: Gary W. Swearingen (partially) MFC after: 3 days
|
#
97201 |
|
24-May-2002 |
gordon |
Add support for reading an additional loader configuration file. By default, this is called /boot/nextboot.conf. This file is required to have it's first line be nextboot_enable="YES" for it to be read. Also, this file is rewritten by the loader to nextboot_enable="NO"<space> after it is read. This makes it so the file is read exactly once. Finally, the nextboot.conf is removed shortly after the filesystems are mounted r/w.
Caution should be taken as you can shoot yourself in the foot. This is only the loader piece. There will be a tool called nextboot(8) that will manage the nextboot.conf file for you. It is coming shortly.
Reviewed by: dcs Approved by: jake (mentor)
|
#
87636 |
|
10-Dec-2001 |
jhb |
- Add 'fwrite' and 'fseek' words for writing to and seeking on files. - Change the 'fopen' keyword to accept a mode parameter. Note that this will break existing 4th scripts that use fopen. Thus, the loader version has been bumped and loader.4th has been changed to check for a sufficient version on i386 and alpha. Be sure that you either do a full world build or install or full build and install of sys/boot after this since loader.old won't work with the new 4th files and vice versa.
PR: kern/32389 Submitted by: Jonathan Mini <mini@haikugeek.com> Sponsored by: ClickArray, Inc.
|
#
66349 |
|
25-Sep-2000 |
dcs |
Get rid of garbage left on the stack.
|
#
65949 |
|
16-Sep-2000 |
dcs |
Use _ instead or - where proper, according to the style I have been using.
Overload "?" so it will also show loader.4th commands.
|
#
65945 |
|
16-Sep-2000 |
dcs |
Solve a name clash. Add something to help debugging.
|
#
65938 |
|
16-Sep-2000 |
dcs |
Both boot and boot-conf were using a different algorithm from the one used by start to find the kernel. Fix this.
Also, boot would proceed immediately in the absence of a path as argument. Check first if a kernel has already been loaded, and, if not, fall back to load kernel&modules behavior.
Some further factorizing. I deem this code to be mostly readable by now! :-)
Many thanks to: Makoto MATSUSHITA <matusita@jp.FreeBSD.org>
|
#
65883 |
|
15-Sep-2000 |
dcs |
Factorize, reorganize, and move code around.
The boot-conf and boot code had various bugs, and some of it was big, ugly, unwieldy, and, sometimes, plain incorrect. I'm just about completely replaced these ugly parts with something much more manageable.
Minor changes were made to the well-factorized parts of it, to accomodate the new code.
Of note:
* make sure boot-conf has the exact same behavior wrt boot order as start.
* Correct both boot and boot-conf so they'll work correctly when compiled in, as they both had some bugs, minor and major.
* Remove all the crud from loader.4th back into support.4th, for the first time since boot-conf was first improved. Hurray!
I'm fairly satisfied with the code at this time. Time to see about those man pages...
|
#
65641 |
|
09-Sep-2000 |
dcs |
Upon reflection, I decided that bootfile must have priority over kernel as the kernel name. The one very unfortunate consequence is that kernel as an absolute path loses the priority. It will only be tried after /boot/${kernel}/${bootfile}. I'll see what can be done about it later.
|
#
65630 |
|
09-Sep-2000 |
dcs |
First tackle at trying to handle the New Deal on kernels.
Load the first of the following kernels to be found:
${kernel} if ${kernel} is an absolute path /boot/${kernel}/${kernel} /boot/${kernel}/${bootfile} ${kernel}/${kernel} ${kernel}/${bootfile} ${kernel} ${bootfile}
The last instance of ${kernel} and ${bootfile} will be treated as a list of semicolon separated file names, and each will be tried in turn, from left to right.
Also, for each filename loader(8) will try filename, filename.ko, filename.gz, filename.ko.gz, in that order, but that's not related to this code.
This resulted in a major reorganization of the code, and much of what was accumulating on loader.4th was rightly transfered to support.4th.
The semantics of boot-conf and boot also changed. Both will try to load a kernel the same as above.
After a kernel was loaded, the variable module_path may get changed. Such change will happen if the kernel was found with a directory prefix. In that case, the module path will be set to ${directory};${module_path}.
Next, the modules are loaded as usual.
This is intended so kernel="xyzzy" in /boot/loader.conf will load /boot/xyzzy/kernel.ko, load system modules from /boot/xyzzy/, and load third party modules from /boot/modules or /modules. If that doesn't work, it's a bug.
Also, fix a breakage of "boot" which was recently introduced. Boot without any arguments would fail. No longer. Also, boot will only unload/reload if the first argument is a path. If no argument exists or the first argument is a flag, boot will use whatever is already loaded. I hope this is POLA. That behavior is markedly different from that of boot-conf, which will always unload/reload.
The semantics introduced here are experimental. Even if the code works, we might decide this is not the prefered behavior. If you feel so, send your feedback. (Yeah, this belongs in a HEADS UP or something, but I've been working for the past 16 hours on this stuff, so gimme a break.)
|
#
65616 |
|
08-Sep-2000 |
dcs |
Fix an error message which was using the wrong variable to get the kernel name from.
|
#
65615 |
|
08-Sep-2000 |
dcs |
Add constructors to crude structure support. Rework some of the code into a more modular interface, with hidden vocabularies and such. Remove the need to a lot of ugly initialization.
Also, add a few structure definitions, from stuff used on the C part of loader. Some of this will disappear, and the crude structure support will most likely be replaced by full-blown OOP support already present on FICL, but not installed by default. But it was getting increasingly inconvenient to keep this separate on my tree, and I already lost lots of work once because of the hurdles, so commit this.
Anyway, it makes support.4th more structured, and I'm not proceeding with the work on it any time soon, unfortunately.
|
#
61373 |
|
07-Jun-2000 |
dcs |
Remove AGAIN definition, as FICL 2.04 provides it.
Add strlen, to help handling data generated by C code.
Add 2>r 2r>, because OO programming without them sucks.
|
#
53672 |
|
24-Nov-1999 |
dcs |
Add silly password feature. If people want to depend on a flawed security measures, so be it. It costs us almost nothing.
Document some code in support.4th that I was unable to understand just by reading.
|
#
50477 |
|
27-Aug-1999 |
peter |
$Id$ -> $FreeBSD$
|
#
44603 |
|
09-Mar-1999 |
dcs |
New loader.rc stuff.
Reviewed by: jkh
|