socsvn commit: r268576 - in soc2014/seiya/bootsplash/sys: boot/forth dev/fb sys
seiya at FreeBSD.org
seiya at FreeBSD.org
Sun May 25 07:40:32 UTC 2014
Author: seiya
Date: Sun May 25 07:40:30 2014
New Revision: 268576
URL: http://svnweb.FreeBSD.org/socsvn/?view=rev&rev=268576
Log:
load splash.conf
At first, I planed to integrate with https://wiki.freebsd.org/OliverFromme/BootLoader,
but I noticed that my bootsplash and the graphical bootloader can live apart.
Therefore my bootsplash loads its own config file.
Modified:
soc2014/seiya/bootsplash/sys/boot/forth/loader.conf
soc2014/seiya/bootsplash/sys/dev/fb/bsplash.c
soc2014/seiya/bootsplash/sys/sys/kernel.h
Modified: soc2014/seiya/bootsplash/sys/boot/forth/loader.conf
==============================================================================
--- soc2014/seiya/bootsplash/sys/boot/forth/loader.conf Sun May 25 06:42:43 2014 (r268575)
+++ soc2014/seiya/bootsplash/sys/boot/forth/loader.conf Sun May 25 07:40:30 2014 (r268576)
@@ -37,6 +37,10 @@
bitmap_name="splash.bmp" # Set this to the name of the file
bitmap_type="splash_image_data" # and place it on the module_path
+bsplash_load="NO" # Set this to YES to enable enhanced bootsplash!
+bsplash_conf_load="NO" # Set this to YES to enable enhanced bootsplash too!
+bsplash_conf_name="/boot/splash/default/splash.conf" # name of configuration file
+bsplash_conf_type="bsplash_conf"
##############################################################
### Random number generator configuration ###################
Modified: soc2014/seiya/bootsplash/sys/dev/fb/bsplash.c
==============================================================================
--- soc2014/seiya/bootsplash/sys/dev/fb/bsplash.c Sun May 25 06:42:43 2014 (r268575)
+++ soc2014/seiya/bootsplash/sys/dev/fb/bsplash.c Sun May 25 07:40:30 2014 (r268576)
@@ -31,6 +31,29 @@
#include <sys/module.h>
#include <sys/kernel.h>
#include <sys/systm.h>
+#include <sys/linker.h>
+
+static int load_config(void)
+{
+ caddr_t conf;
+ char* ptr;
+
+ conf = preload_search_by_type("bsplash_conf");
+ if(conf == NULL)
+ return -1;
+
+ ptr = preload_fetch_addr(conf);
+
+ printf("bsplash conf: ");
+ /* parse config file */
+ while(*ptr){
+ printf("%c", *ptr);
+ ptr++;
+ }
+ printf("\n");
+
+ return 0;
+}
static int modevent(module_t mod, int type, void *data)
{
@@ -38,6 +61,7 @@
switch ((modeventtype_t)type) {
case MOD_LOAD:
+ load_config();
break;
case MOD_UNLOAD:
break;
Modified: soc2014/seiya/bootsplash/sys/sys/kernel.h
==============================================================================
--- soc2014/seiya/bootsplash/sys/sys/kernel.h Sun May 25 06:42:43 2014 (r268575)
+++ soc2014/seiya/bootsplash/sys/sys/kernel.h Sun May 25 07:40:30 2014 (r268576)
@@ -89,6 +89,7 @@
SI_SUB_DUMMY = 0x0000000, /* not executed; for linker*/
SI_SUB_DONE = 0x0000001, /* processed*/
SI_SUB_TUNABLES = 0x0700000, /* establish tunable values */
+ SI_SUB_BOOTSPLASH = 0x0780000, /* bootsplash */
SI_SUB_COPYRIGHT = 0x0800001, /* first use of console*/
SI_SUB_SETTINGS = 0x0880000, /* check and recheck settings */
SI_SUB_MTX_POOL_STATIC = 0x0900000, /* static mutex pool */
More information about the svn-soc-all
mailing list