OS DEV C++



  • Ich benütze den DevCpp Compiler und er kann dass nicht compilieren

    #include "system.h"
    
    void *memcpy(void *dest, const void *src, size_t count)
    {
        const char *sp = (const char *)src;
        char *dp = (char *)dest;
        for(; count != 0; count--) *dp++ = *sp++;
        return dest;
    }
    
    int *memset(void *dest, char val, size_t count)
    {
        char *temp = (char *)dest;
        for( ; count != 0; count--) *temp++ = val;
        return dest;
    }
    
    unsigned short *memsetw(unsigned short *dest, unsigned short val, size_t count)
    {
        unsigned short *temp = (unsigned short *)dest;
        for( ; count != 0; count--) *temp++ = val;
        return dest;
    }
    
    size_t strlen(const char *str)
    {
        size_t retval;
        for(retval = 0; *str != '\0'; str++) retval++;
        return retval;
    }
    
    unsigned char inportb (unsigned short _port)
    {
        unsigned char rv;
        __asm__ __volatile__ ("inb %1, %0" : "=a" (rv) : "dN" (_port));
        return rv;
    }
    
    void outportb (unsigned short _port, unsigned char _data)
    {
        __asm__ __volatile__ ("outb %1, %0" : : "dN" (_port), "a" (_data));
    }
    
    int main()
    {
        int i;
    
        gdt_install();
        idt_install();
        isrs_install();
        irq_install();
        init_video();
        timer_install();
        keyboard_install();
    
        __asm__ __volatile__ ("sti");
    
        puts("Willkommen im MF OS 1.0\n");
    
    //    i = 10 / 0;
    //    putch(i);
    
        for (;;);
    }
    

    und das ist die headerdatei

    #ifndef __SYSTEM_H
    #define __SYSTEM_H
    
    typedef int size_t;
    
    /* This defines what the stack looks like after an ISR was running */
    struct regs
    {
        unsigned int gs, fs, es, ds;
        unsigned int edi, esi, ebp, esp, ebx, edx, ecx, eax;
        unsigned int int_no, err_code;
        unsigned int eip, cs, eflags, useresp, ss;    
    };
    
    /* MAIN.C */
    extern void *memcpy(void *dest, const void *src, size_t count);
    extern void *memset(void *dest, char val, size_t count);
    extern unsigned short *memsetw(unsigned short *dest, unsigned short val, size_t count);
    extern size_t strlen(const char *str);
    extern unsigned char inportb (unsigned short _port);
    extern void outportb (unsigned short _port, unsigned char _data);
    
    /* CONSOLE.C */
    extern void init_video(void);
    extern void puts(unsigned char *text);
    extern void putch(unsigned char c);
    extern void cls();
    
    /* GDT.C */
    extern void gdt_set_gate(int num, unsigned long base, unsigned long limit, unsigned char access, unsigned char gran);
    extern void gdt_install();
    
    /* IDT.C */
    extern void idt_set_gate(unsigned char num, unsigned long base, unsigned short sel, unsigned char flags);
    extern void idt_install();
    
    /* ISRS.C */
    extern void isrs_install();
    
    /* IRQ.C */
    extern void irq_install_handler(int irq, void (*handler)(struct regs *r));
    extern void irq_uninstall_handler(int irq);
    extern void irq_install();
    
    /* TIMER.C */
    extern void timer_wait(int ticks);
    extern void timer_install();
    
    /* KEYBOARD.C */
    extern void keyboard_install();
    
    #endif
    


  • OS Progger schrieb:

    Ich benütze den DevCpp Compiler und er kann dass nicht compilieren

    was meckert er denn? multiple definitions o.ä.?


  • Mod

    OS Progger schrieb:

    Ich benütze den DevCpp Compiler und er kann dass nicht compilieren

    das ist keine fehlerbeschreibung.


Anmelden zum Antworten