summaryrefslogtreecommitdiffstats
path: root/qemu/roms/openbios/libc/misc.c
diff options
context:
space:
mode:
Diffstat (limited to 'qemu/roms/openbios/libc/misc.c')
-rw-r--r--qemu/roms/openbios/libc/misc.c144
1 files changed, 0 insertions, 144 deletions
diff --git a/qemu/roms/openbios/libc/misc.c b/qemu/roms/openbios/libc/misc.c
deleted file mode 100644
index e7cf4f408..000000000
--- a/qemu/roms/openbios/libc/misc.c
+++ /dev/null
@@ -1,144 +0,0 @@
-/*
- * Creation Date: <2002/10/19 21:05:07 samuel>
- * Time-stamp: <2002/10/22 22:29:18 samuel>
- *
- * <misc.c>
- *
- * Miscellaneous
- *
- * Copyright (C) 2002, 2003 Samuel Rydh (samuel@ibrium.se)
- *
- * 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
- *
- */
-
-#include "config.h"
-#include "libc/string.h"
-
-int errno_int;
-
-void
-qsort( void *base, size_t nmemb, size_t size, int (*compar)(const void *, const void*) )
-{
- unsigned int worked, i, j;
-
- /* even more inefficient than the glibc variant :-) */
- do {
- char *p = base;
- worked = 0;
- for( i=0; i<nmemb-1; i++, p+= size ) {
- if( compar( p, p + size ) > 0 ) {
- worked = 1;
- for( j=0; j<size; j++ ) {
- char ch = p[j];
- p[j] = p[j+size];
- p[j+size] = ch;
- }
- }
- }
- } while( worked );
-}
-
-
-long int
-strtol( const char *nptr, char **endptr, int base )
-{
- int sum, n, sign=1;
- while( isspace(*nptr) )
- nptr++;
-
- if( *nptr == '-' || *nptr == '+' )
- sign = (*nptr++ == '-') ? -1 : 1;
-
- if( base == 16 || base == 0) {
- if( !base )
- base = (nptr[0] == '0')? 8 : 10;
- if( nptr[0] == '0' && nptr[1] == 'x' ) {
- nptr += 2;
- base = 16;
- }
- }
- for( sum=0 ;; nptr++ ) {
- char ch = *nptr;
- if( !isalnum(ch) )
- break;
- n = isdigit(ch) ? ch - '0' : toupper(ch) - 'A' + 10;
- if( n >= base || n < 0 )
- break;
- sum *= base;
- sum += n;
- }
- if( endptr )
- *endptr = (char*)nptr;
-
- return sum * sign;
-}
-
-long long int
-strtoll( const char *nptr, char **endptr, int base )
-{
- long long int sum;
- int n, sign=1;
- while( isspace(*nptr) )
- nptr++;
-
- if( *nptr == '-' || *nptr == '+' )
- sign = (*nptr++ == '-') ? -1 : 1;
-
- if( base == 16 || base == 0) {
- if( !base )
- base = (nptr[0] == '0')? 8 : 10;
- if( nptr[0] == '0' && nptr[1] == 'x' ) {
- nptr += 2;
- base = 16;
- }
- }
- for( sum=0 ;; nptr++ ) {
- char ch = *nptr;
- if( !isalnum(ch) )
- break;
- n = isdigit(ch) ? ch - '0' : toupper(ch) - 'A' + 10;
- if( n >= base || n < 0 )
- break;
- sum *= base;
- sum += n;
- }
- if( endptr )
- *endptr = (char*)nptr;
-
- return sum * sign;
-}
-
-// Propolice support
-long __guard[8] = {
-#ifdef CONFIG_BIG_ENDIAN
- (0 << 24) | (0 << 16) | ('\n' << 8) | 255,
-#else
- (255 << 24) | ('\n' << 16) | (0 << 8) | 0,
-#endif
- 0, 0, 0, 0, 0, 0, 0
-};
-
-static void freeze(void)
-{
- // Freeze
- // XXX: Disable interrupts?
- for(;;)
- ;
-}
-
-void __stack_smash_handler(const char *func, int damaged)
-{
- printk("Propolice detected a stack smashing attack %x at function %s,"
- " freezing\n", damaged, func);
- freeze();
-}
-
-void __stack_chk_fail(void)
-{
- printk("Propolice detected a stack smashing attack, freezing\n");
-
- freeze();
-}