aboutsummaryrefslogtreecommitdiff
path: root/sys/dev/fb
diff options
context:
space:
mode:
authorMarcel Moolenaar <marcel@FreeBSD.org>2011-02-13 19:25:48 +0000
committerMarcel Moolenaar <marcel@FreeBSD.org>2011-02-13 19:25:48 +0000
commit01f7b6dad306ef87e28e5fb8a2a3f9c7224e9bdf (patch)
tree8b315c48daa0d84244327319d24d6977cd9aee08 /sys/dev/fb
parentefdb11cd581e23fc484899da67c775ac769b649d (diff)
Notes
Diffstat (limited to 'sys/dev/fb')
-rw-r--r--sys/dev/fb/splash.c32
1 files changed, 17 insertions, 15 deletions
diff --git a/sys/dev/fb/splash.c b/sys/dev/fb/splash.c
index ec25d1cf03a40..ac005887efdb5 100644
--- a/sys/dev/fb/splash.c
+++ b/sys/dev/fb/splash.c
@@ -59,26 +59,28 @@ static void *splash_arg;
static int
splash_find_data(splash_decoder_t *decoder)
{
- caddr_t image_module;
- caddr_t p;
+ caddr_t image_module;
+ void *ptr;
+ size_t sz;
if (decoder->data_type == NULL)
- return 0;
+ return (0);
+
image_module = preload_search_by_type(decoder->data_type);
if (image_module == NULL)
- return ENOENT;
- p = preload_search_info(image_module, MODINFO_ADDR);
- if (p == NULL)
- return ENOENT;
- decoder->data = *(void **)p;
- p = preload_search_info(image_module, MODINFO_SIZE);
- if (p == NULL)
- return ENOENT;
- decoder->data_size = *(size_t *)p;
+ return (ENOENT);
+
+ ptr = preload_fetch_addr(image_module);
+ sz = preload_fetch_size(image_module);
+ if (ptr == NULL || sz == 0)
+ return (ENOENT);
+
if (bootverbose)
- printf("splash: image@%p, size:%lu\n",
- (void *)decoder->data, (long)decoder->data_size);
- return 0;
+ printf("splash: image@%p, size:%zu\n", ptr, sz);
+
+ decoder->data = ptr;
+ decoder->data_size = sz;
+ return (0);
}
static int