aboutsummaryrefslogtreecommitdiffstats
path: root/com32/cmenu/libmenu/syslnx.c
blob: 73ec2a7cbf3fc74b91c3b83f5a9dbda9b8ffe17c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
/* -*- c -*- ------------------------------------------------------------- *
 *
 *   Copyright 2004-2005 Murali Krishnan Ganapathy - All Rights Reserved
 *
 *   This program is free software; you can redistribute it and/or modify
 *   it under the terms of the GNU General Public License as published by
 *   the Free Software Foundation, Inc., 53 Temple Place Ste 330,
 *   Boston MA 02111-1307, USA; either version 2 of the License, or
 *   (at your option) any later version; incorporated herein by reference.
 *
 * ----------------------------------------------------------------------- */

#include <string.h>
#include <com32.h>
#include <core.h>
#include <graphics.h>
#include "syslnx.h"
#include <syslinux/config.h>
#include <syslinux/video.h>

com32sys_t inreg, outreg;	// Global registers for this module

void runsyslinuxcmd(const char *cmd)
{
    char *bounce;

    bounce = lmalloc(strlen(cmd) + 1);
    if (!bounce)
	return;

    strcpy(bounce, cmd);
    load_kernel(bounce);
}

void gototxtmode(void)
{
    syslinux_force_text_mode();
}

void syslinux_idle(void)
{
    __idle();
}

unsigned int getversion(char *deriv, unsigned int *numfun)
{
    if (deriv)
	*deriv = __syslinux_version.filesystem;
    if (numfun)
	*numfun = __syslinux_version.max_api;
    return __syslinux_version.version;
}

char issyslinux(void)
{
    return !!getversion(NULL, NULL);
}

void runsyslinuximage(const char *cmd, long ipappend)
{
    (void)ipappend;		// XXX: Unused?!

    getversion(NULL, NULL);
    runsyslinuxcmd(cmd);
}