Annotation of qemu/roms/openbios/arch/x86/lib.c, revision 1.1

1.1     ! root        1: /* lib.c
        !             2:  * tag: simple function library
        !             3:  *
        !             4:  * Copyright (C) 2003 Stefan Reinauer
        !             5:  *
        !             6:  * See the file "COPYING" for further information about
        !             7:  * the copyright and warranty status of this work.
        !             8:  */
        !             9: 
        !            10: #include "config.h"
        !            11: #include "asm/types.h"
        !            12: #include <stdarg.h>
        !            13: #include "libc/stdlib.h"
        !            14: #include "libc/vsprintf.h"
        !            15: #include "kernel/kernel.h"
        !            16: 
        !            17: /* Format a string and print it on the screen, just like the libc
        !            18:  * function printf.
        !            19:  */
        !            20: int printk( const char *fmt, ... )
        !            21: {
        !            22:         char *p, buf[512];
        !            23:        va_list args;
        !            24:        int i;
        !            25: 
        !            26:        va_start(args, fmt);
        !            27:         i = vsnprintf(buf, sizeof(buf), fmt, args);
        !            28:        va_end(args);
        !            29: 
        !            30:        for( p=buf; *p; p++ )
        !            31:                putchar(*p);
        !            32:        return i;
        !            33: }
        !            34: 
        !            35: // dumb quick memory allocator until we get a decent thing here.
        !            36: 
        !            37: #define MEMSIZE 128*1024
        !            38: static char memory[MEMSIZE];
        !            39: static void *memptr=memory;
        !            40: static int memsize=MEMSIZE;
        !            41: 
        !            42: void *malloc(int size)
        !            43: {
        !            44:        void *ret=(void *)0;
        !            45:        if(memsize>=size) {
        !            46:                memsize-=size;
        !            47:                ret=memptr;
        !            48:                memptr = (void *)((unsigned long)memptr + size);
        !            49:        }
        !            50:        return ret;
        !            51: }
        !            52: 
        !            53: void free(void *ptr)
        !            54: {
        !            55:        /* Nothing yet */
        !            56: }

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.