coreboot-kgpe-d16/payloads/external/tint/libpayload_tint.patch

473 lines
13 KiB
Diff

diff -rupN tint-0.04+nmu1/config.h tint/config.h
--- tint-0.04+nmu1/config.h 2001-12-08 00:03:24.000000000 +0100
+++ tint/config.h 2018-02-23 12:00:00.000000000 +0200
@@ -29,7 +29,15 @@
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
+#include <libpayload.h>
+#include <curses.h>
+
+#define curs_set(x)
+#define USE_RAND
+
/* Score file */
+#if 0
const char scorefile[] = SCOREFILE;
+#endif
#endif /* #ifndef CONFIG_H */
diff -rupN tint-0.04+nmu1/engine.c tint/engine.c
--- tint-0.04+nmu1/engine.c 2005-07-17 13:26:22.000000000 +0200
+++ tint/engine.c 2018-02-23 12:00:00.000000000 +0200
@@ -27,10 +27,13 @@
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
+#include "config.h"
+
+#if 0
#include <stdlib.h>
#include <string.h>
+#endif
-#include "typedefs.h"
#include "utils.h"
#include "io.h"
#include "engine.h"
diff -rupN tint-0.04+nmu1/engine.h tint/engine.h
--- tint-0.04+nmu1/engine.h 2001-12-07 16:48:08.000000000 +0100
+++ tint/engine.h 2018-02-23 12:00:00.000000000 +0200
@@ -29,7 +29,7 @@
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
-#include "typedefs.h" /* bool */
+#include "curses.h" /* bool */
/*
* Macros
diff -rupN tint-0.04+nmu1/io.c tint/io.c
--- tint-0.04+nmu1/io.c 2010-06-23 15:05:12.000000000 +0100
+++ tint/io.c 2018-02-23 12:00:00.000000000 +0200
@@ -27,9 +27,13 @@
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
+#include "config.h"
+
+#if 0
#include <stdarg.h> /* va_list(), va_start(), va_end() */
#include <sys/time.h> /* gettimeofday() */
#include <unistd.h> /* gettimeofday() */
+#endif
#include "io.h"
@@ -68,7 +72,11 @@ static int in_timeleft;
/* Initialize screen */
void io_init ()
{
+ curses_enable_serial(0);
+ curses_enable_vga(1);
initscr ();
+ halfdelay(1);
+ timeout(1);
start_color ();
curs_set (CURSOR_INVISIBLE);
out_attr = A_NORMAL;
@@ -177,11 +185,17 @@ void out_beep ()
/* Read a character. Please note that you MUST call in_timeout() before in_getch() */
int in_getch ()
{
+#if 0
struct timeval starttv,endtv;
+#endif
int ch;
+#if 0
timeout (in_timeleft / 1000);
gettimeofday (&starttv,NULL);
+#endif
ch = getch ();
+ mdelay(150);
+#if 0
gettimeofday (&endtv,NULL);
/* Timeout? */
if (ch == ERR)
@@ -199,6 +213,7 @@ int in_getch ()
in_timeleft -= endtv.tv_usec;
if (in_timeleft <= 0) in_timeleft = in_timetotal;
}
+#endif
return ch;
}
diff -rupN tint-0.04+nmu1/io.h tint/io.h
--- tint-0.04+nmu1/io.h 2010-06-23 14:55:03.000000000 +0100
+++ tint/io.h 2018-02-23 12:00:00.000000000 +0200
@@ -29,9 +29,8 @@
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
-
+
#include <curses.h>
-#include <wchar.h>
-
+
/*
* Colors
*/
diff -rupN tint-0.04+nmu1/Makefile tint/Makefile
--- tint-0.04+nmu1/Makefile 2010-06-23 15:06:11.000000000 +0200
+++ tint/Makefile 2018-02-23 12:00:00.000000000 +0200
@@ -1,0 +1,106 @@
+
+# -*- sh -*-
+
+# Copyright (c) Abraham vd Merwe <abz@blio.net>
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+# 1. Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# 2. Redistributions in binary form must reproduce the above copyright
+# notice, this list of conditions and the following disclaimer in the
+# documentation and/or other materials provided with the distribution.
+# 3. Neither the name of the author nor the names of other contributors
+# may be used to endorse or promote products derived from this software
+# without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+# THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+# ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+# in addition to the dependency below, create the file if it doesn't exist
+# to silence warnings about a file that would be generated anyway.
+$(if $(wildcard .xcompile),,$(eval $(shell ../../../../util/xcompile/xcompile $(XGCCPATH) > .xcompile || rm -f .xcompile)))
+.xcompile: ../../../../util/xcompile/xcompile
+
+CONFIG_COMPILER_GCC := y
+ARCH-y := x86_32
+
+include .xcompile
+
+src := $(CURDIR)
+srctree := $(src)
+tint_obj := $(src)/build
+
+LIBCONFIG_PATH := $(realpath ../../../libpayload)
+LIBPAYLOAD_DIR := $(tint_obj)/libpayload
+HAVE_LIBPAYLOAD := $(wildcard $(LIBPAYLOAD_DIR)/lib/libpayload.a)
+LIB_CONFIG ?= configs/defconfig-tinycurses
+
+# CFLAGS := -Wall -Werror -Os
+CFLAGS := -Wall -g -Os
+TARGET := tint
+OBJS := $(TARGET).o engine.o io.o utils.o
+
+ARCH-y := x86_32
+
+CC := $(CC_$(ARCH-y))
+AS := $(AS_$(ARCH-y))
+OBJCOPY := $(OBJCOPY_$(ARCH-y))
+
+LPCC := CC="$(CC)" $(LIBPAYLOAD_DIR)/bin/lpgcc
+LPAS := AS="$(AS)" $(LIBPAYLOAD_DIR)/bin/lpas
+
+# Make is silent per default, but 'make V=1' will show all compiler calls.
+ifneq ($(V),1)
+Q := @
+endif
+
+all: $(TARGET).elf
+# printf" CC $(CC)\n"
+
+$(TARGET).elf: $(OBJS) libpayload
+ $(Q)printf " LPCC $(subst $(shell pwd)/,,$(@))\n"
+ $(Q)$(LPCC) -o $@ $(OBJS)
+ $(Q)$(OBJCOPY) --only-keep-debug $@ tint.debug
+ $(Q)$(OBJCOPY) --strip-debug $@
+ $(Q)$(OBJCOPY) --add-gnu-debuglink=tint.debug $@
+
+%.o: %.c libpayload
+ $(Q)printf " LPCC $(subst $(shell pwd)/,,$(@))\n"
+ $(Q)$(LPCC) $(CFLAGS) $(CPPFLAGS) -c -o $@ $<
+
+%.S.o: %.S libpayload
+ $(Q)printf " LPAS $(subst $(shell pwd)/,,$(@))\n"
+ $(Q)$(LPAS) $(ASFLAGS) --32 -o $@ $<
+
+ifneq ($(strip $(HAVE_LIBPAYLOAD)),)
+libpayload:
+ $(Q)printf "Found Libpayload $(LIBPAYLOAD_DIR).\n"
+else
+libpayload:
+ $(Q)printf "Building libpayload @ $(LIBCONFIG_PATH).\n"
+ $(Q)make -C $(LIBCONFIG_PATH) distclean
+ $(Q)make -C $(LIBCONFIG_PATH) defconfig KBUILD_DEFCONFIG=$(LIB_CONFIG)
+ $(Q)make -C $(LIBCONFIG_PATH) DESTDIR=$(tint_obj) install
+endif
+
+clean:
+ $(Q)rm -f $(TARGET).elf $(TARGET).debug *.o
+ $(Q)rm .xcompile
+
+distclean: clean
+ $(Q)rm -rf $(tint_obj)
+
+
+.PHONY: all clean do-it-all depend with-depends without-depends debian postinst
diff -rupN tint-0.04+nmu1/tint.c tint/tint.c
--- tint-0.04+nmu1/tint.c 2010-08-08 19:42:50.000000000 +0200
+++ tint/tint.c 2018-02-23 12:00:00.000000000 +0200
@@ -1,4 +1,3 @@
-
/*
* Copyright (c) Abraham vd Merwe <abz@blio.net>
* All rights reserved.
@@ -27,6 +26,7 @@
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
+#if 0
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
@@ -34,8 +34,8 @@
#include <pwd.h>
#include <sys/types.h>
#include <unistd.h>
+#endif
-#include "typedefs.h"
#include "utils.h"
#include "io.h"
#include "config.h"
@@ -306,4 +306,4 @@
/* Header for scorefile */
-#define SCORE_HEADER "Tint 0.02b (c) Abraham vd Merwe - Scores"
+#define SCORE_HEADER "Tint 0.04+nmu1 (c) Abraham vd Merwe - Scores"
-
+
/* Header for score title */
@@ -322,6 +322,7 @@ typedef struct
time_t timestamp;
} score_t;
+#if 0
static void getname (char *name)
{
struct passwd *pw = getpwuid (geteuid ());
@@ -338,7 +339,9 @@ static void getname (char *name)
name[NAMELEN - 1] = '\0';
}
}
+#endif
+#if 0
static void err1 ()
{
fprintf (stderr,"Error creating %s\n",scorefile);
@@ -350,10 +353,11 @@ static void err2 ()
fprintf (stderr,"Error writing to %s\n",scorefile);
exit (EXIT_FAILURE);
}
+#endif
void showplayerstats (engine_t *engine)
{
- fprintf (stderr,
+ printf (
"\n\t PLAYER STATISTICS\n\n\t"
"Score %11d\n\t"
"Efficiency %11d\n\t"
@@ -361,6 +365,7 @@ void showplayerstats (engine_t *engine)
GETSCORE (engine->score),engine->status.efficiency,GETSCORE (engine->score) / getsum ());
}
+#if 0
static void createscores (int score)
{
FILE *handle;
@@ -395,7 +400,9 @@ static void createscores (int score)
fprintf (stderr,"%s",scoretitle);
fprintf (stderr,"\t 1* %7d %s\n\n",score,scores[0].name);
}
+#endif
+#if 0
static int cmpscores (const void *a,const void *b)
{
int result;
@@ -413,7 +420,9 @@ static int cmpscores (const void *a,cons
/* timestamps is equal */
return 0;
}
+#endif
+#if 0
static void savescores (int score)
{
FILE *handle;
@@ -491,11 +500,13 @@ static void savescores (int score)
}
fprintf (stderr,"\n");
}
+#endif
/***************************************************************************/
/***************************************************************************/
/***************************************************************************/
+#if 0
static void showhelp ()
{
fprintf (stderr,"USAGE: tint [-h] [-l level] [-n] [-d] [-b char]\n");
@@ -506,9 +517,11 @@ static void showhelp ()
fprintf (stderr," -b <char> Use this character to draw blocks instead of spaces\n");
exit (EXIT_FAILURE);
}
+#endif
static void parse_options (int argc,char *argv[])
{
+#if 0
int i = 1;
while (i < argc)
{
@@ -544,10 +557,12 @@ static void parse_options (int argc,char
}
i++;
}
+#endif
}
static void choose_level ()
{
+#if 0
char buf[NAMELEN];
do
@@ -557,6 +572,8 @@ static void choose_level ()
buf[strlen (buf) - 1] = '\0';
}
while (!str2int (&level,buf) || level < MINLEVEL || level > MAXLEVEL);
+#endif
+ level = 1;
}
/***************************************************************************/
@@ -569,6 +586,8 @@ int main (int argc,char *argv[])
int ch;
engine_t engine;
/* Initialize */
+ if (IS_ENABLED(CONFIG_LP_USB))
+ usb_initialize();
rand_init (); /* must be called before engine_init () */
engine_init (&engine,score_function); /* must be called before using engine.curshape */
finished = shownext = FALSE;
@@ -632,13 +651,15 @@ int main (int argc,char *argv[])
/* pause */
case 'p':
out_setcolor (COLOR_WHITE,COLOR_BLACK);
- out_gotoxy ((out_width () - 34) / 2,out_height () - 2);
+ out_gotoxy ((out_width () - 34) / 2,out_height () / 2);
out_printf ("Paused - Press any key to continue");
+ refresh ();
while ((ch = in_getch ()) == ERR) ; /* Wait for a key to be pressed */
in_flush (); /* Clear keyboard buffer */
- out_gotoxy ((out_width () - 34) / 2,out_height () - 2);
+ out_gotoxy ((out_width () - 34) / 2,out_height () / 2);
out_printf (" ");
+ refresh ();
break;
/* unknown keypress */
default:
out_beep ();
@@ -673,11 +694,31 @@ int main (int argc,char *argv[])
/* Restore console settings and exit */
io_close ();
+#if 0
/* Don't bother the player if he want's to quit */
if (ch != 'q')
{
+#endif
showplayerstats (&engine);
+#if 0
savescores (GETSCORE (engine.score));
}
+#endif
+ printf("Press 'q' to reboot...\n");
+ refresh();
+ for (;;) {
+ in_flush ();
+ while ((ch = in_getch ()) == ERR) ; /* Wait for a key to be pressed */
+ if (ch == 'q') { /* reboot */
+ outb(0x6, 0xcf9);
+ for(;;); //halt();
+ }
+ else {
+ in_flush ();
+ }
+ }
+
+#if 0
exit (EXIT_SUCCESS);
+#endif
}
diff -rupN tint-0.04+nmu1/utils.c tint/utils.c
--- tint-0.04+nmu1/utils.c 2001-12-07 16:49:19.000000000 +0100
+++ tint/utils.c 2018-02-23 12:00:00.000000000 +0200
@@ -27,11 +27,13 @@
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
+#include "config.h"
+
+#if 0
#include <stdlib.h>
#include <time.h>
#include <limits.h>
-
-#include "typedefs.h"
+#endif
/*
* Initialize random number generator
@@ -61,6 +63,7 @@ int rand_value (int range)
* Convert an str to long. Returns TRUE if successful,
* FALSE otherwise.
*/
+#if 0
bool str2int (int *i,const char *str)
{
char *endptr;
@@ -69,3 +72,4 @@ bool str2int (int *i,const char *str)
return TRUE;
}
+#endif
diff -rupN tint-0.04+nmu1/utils.h tint/utils.h
--- tint-0.04+nmu1/utils.h 2001-12-07 16:49:35.000000000 +0100
+++ tint/utils.h 2018-02-23 12:00:00.000000000 +0200
@@ -29,7 +29,7 @@
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
-#include "typedefs.h"
+#include <curses.h>
/*
* Initialize random number generator