Annotation of dmsdos/src/my_break.h, revision 1.1

1.1     ! root        1: #ifndef _MY_BREAK_H
        !             2: #define _MY_BREAK_H
        !             3: 
        !             4: #include <linux/sched.h>
        !             5: 
        !             6: #define BREAK_NOW my_break_now(__PRETTY_FUNCTION__);
        !             7: 
        !             8: #define get_esp() ({int a_sp; __asm__ ("mov %%esp,%0":"=r"(a_sp)); a_sp;}) 
        !             9: 
        !            10: struct wait_queue * my_break_wait=NULL;
        !            11: 
        !            12: static void my_break_cont(void)
        !            13: {  wake_up(&my_break_wait);
        !            14: }
        !            15: 
        !            16: static void my_break_now(char * s)
        !            17: { unsigned call_pc;
        !            18:   unsigned call_sp;
        !            19:   call_pc=(typeof(call_pc))__builtin_return_address(0);
        !            20:   call_sp=(typeof(call_sp))get_esp();
        !            21:   printk ("BREAK : procces %i (current=0x%x) stopped at 0x%x in %s\n",
        !            22:        current->pid,(unsigned)current,call_pc,s);
        !            23:   printk ("BREAK : sp = 0x%x\n",call_sp);
        !            24:   printk ("BREAK : for continue call *0x%x()\n",
        !            25:        (unsigned)&my_break_cont);
        !            26:   sleep_on(&my_break_wait);
        !            27:   printk ("BREAK : continuing\n");
        !            28: }
        !            29: 
        !            30: #endif /* _MY_BREAK_H */

unix.superglobalmegacorp.com

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