git://git.onelab.eu
/
linux-2.6.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Fedora kernel-2.6.17-1.2142_FC4 patched with stable patch-2.6.17.4-vs2.0.2-rc26.diff
[linux-2.6.git]
/
arch
/
x86_64
/
boot
/
compressed
/
misc.c
diff --git
a/arch/x86_64/boot/compressed/misc.c
b/arch/x86_64/boot/compressed/misc.c
index
78d4c78
..
cf4b88c
100644
(file)
--- a/
arch/x86_64/boot/compressed/misc.c
+++ b/
arch/x86_64/boot/compressed/misc.c
@@
-9,8
+9,9
@@
* High loaded stuff by Hans Lermen & Werner Almesberger, Feb. 1996
*/
* High loaded stuff by Hans Lermen & Werner Almesberger, Feb. 1996
*/
-#include
"miscsetup.h"
+#include
<linux/screen_info.h>
#include <asm/io.h>
#include <asm/io.h>
+#include <asm/page.h>
/*
* gzip declarations
/*
* gzip declarations
@@
-82,7
+83,7
@@
static unsigned char *real_mode; /* Pointer to real-mode data */
#endif
#define SCREEN_INFO (*(struct screen_info *)(real_mode+0))
#endif
#define SCREEN_INFO (*(struct screen_info *)(real_mode+0))
-extern char input_data[];
+extern
unsigned
char input_data[];
extern int input_len;
static long bytes_out = 0;
extern int input_len;
static long bytes_out = 0;
@@
-92,8
+93,11
@@
static unsigned long output_ptr = 0;
static void *malloc(int size);
static void free(void *where);
static void *malloc(int size);
static void free(void *where);
-static void puts(const char *);
-
+void* memset(void* s, int c, unsigned n);
+void* memcpy(void* dest, const void* src, unsigned n);
+
+static void putstr(const char *);
+
extern int end;
static long free_mem_ptr = (long)&end;
static long free_mem_end_ptr;
extern int end;
static long free_mem_ptr = (long)&end;
static long free_mem_end_ptr;
@@
-153,7
+157,7
@@
static void scroll(void)
vidmem[i] = ' ';
}
vidmem[i] = ' ';
}
-static void puts(const char *s)
+static void puts
tr
(const char *s)
{
int x,y,pos;
char c;
{
int x,y,pos;
char c;
@@
-270,9
+274,9
@@
static void flush_window(void)
static void error(char *x)
{
static void error(char *x)
{
- puts("\n\n");
- puts(x);
- puts("\n\n -- System halted");
+ puts
tr
("\n\n");
+ puts
tr
(x);
+ puts
tr
("\n\n -- System halted");
while(1);
}
while(1);
}
@@
-284,7
+288,7
@@
void setup_normal_output_buffer(void)
#else
if ((ALT_MEM_K > EXT_MEM_K ? ALT_MEM_K : EXT_MEM_K) < 1024) error("Less than 2MB of memory");
#endif
#else
if ((ALT_MEM_K > EXT_MEM_K ? ALT_MEM_K : EXT_MEM_K) < 1024) error("Less than 2MB of memory");
#endif
- output_data = (
char *)0x100000; /*
Points to 1M */
+ output_data = (
unsigned char *)__PHYSICAL_START; /* Normally
Points to 1M */
free_mem_end_ptr = (long)real_mode;
}
free_mem_end_ptr = (long)real_mode;
}
@@
-301,14
+305,14
@@
void setup_output_buffer_if_we_run_high(struct moveparams *mv)
#else
if ((ALT_MEM_K > EXT_MEM_K ? ALT_MEM_K : EXT_MEM_K) < (3*1024)) error("Less than 4MB of memory");
#endif
#else
if ((ALT_MEM_K > EXT_MEM_K ? ALT_MEM_K : EXT_MEM_K) < (3*1024)) error("Less than 4MB of memory");
#endif
- mv->low_buffer_start = output_data = (char *)LOW_BUFFER_START;
+ mv->low_buffer_start = output_data = (
unsigned
char *)LOW_BUFFER_START;
low_buffer_end = ((unsigned int)real_mode > LOW_BUFFER_MAX
? LOW_BUFFER_MAX : (unsigned int)real_mode) & ~0xfff;
low_buffer_size = low_buffer_end - LOW_BUFFER_START;
high_loaded = 1;
free_mem_end_ptr = (long)high_buffer_start;
low_buffer_end = ((unsigned int)real_mode > LOW_BUFFER_MAX
? LOW_BUFFER_MAX : (unsigned int)real_mode) & ~0xfff;
low_buffer_size = low_buffer_end - LOW_BUFFER_START;
high_loaded = 1;
free_mem_end_ptr = (long)high_buffer_start;
- if ( (
0x100000
+ low_buffer_size) > ((ulg)high_buffer_start)) {
- high_buffer_start = (uch *)(
0x100000
+ low_buffer_size);
+ if ( (
__PHYSICAL_START
+ low_buffer_size) > ((ulg)high_buffer_start)) {
+ high_buffer_start = (uch *)(
__PHYSICAL_START
+ low_buffer_size);
mv->hcount = 0; /* say: we need not to move high_buffer */
}
else mv->hcount = -1;
mv->hcount = 0; /* say: we need not to move high_buffer */
}
else mv->hcount = -1;
@@
-346,9
+350,9
@@
int decompress_kernel(struct moveparams *mv, void *rmode)
else setup_output_buffer_if_we_run_high(mv);
makecrc();
else setup_output_buffer_if_we_run_high(mv);
makecrc();
- puts(".\nDecompressing Linux...");
+ puts
tr
(".\nDecompressing Linux...");
gunzip();
gunzip();
- puts("done.\nBooting the kernel.\n");
+ puts
tr
("done.\nBooting the kernel.\n");
if (high_loaded) close_output_buffer_if_we_run_high(mv);
return high_loaded;
}
if (high_loaded) close_output_buffer_if_we_run_high(mv);
return high_loaded;
}