Beispiel #1
0
void CPU_dump(CPU_t* cpu) {

    assert(cpu);
    printf("\n  CPU //\n\n");
    printf("    # register ax = %d\n", cpu->ax);
    Stack_dump(cpu->stack_cpu);

}
Beispiel #2
0
int full(stack *my_stack)
{
    if (Stack_OK(my_stack))
        Stack_dump(my_stack);
    if(my_stack->size == my_stack->Max)
        return -1;
    else
        return 0;
}
Beispiel #3
0
//show last element
double topp(stack *my_stack)
{
     errno = 0;
    Stack_OK(my_stack);
    if (!errno)
        return my_stack->top;
    else
        Stack_dump(my_stack);
    return -1;
}
Beispiel #4
0
// clear stack
int clear(stack *my_stack)
{
    Stack_OK(my_stack);
    if (Stack_OK(my_stack))
        Stack_dump(my_stack);
    else
        {
            my_stack->data = 0;
            errno = 0;
            return 0;
        }
    return -1;
}
Beispiel #5
0
int Stack_pop(Stack_t* st) {

    if (--st->counter >= 0) return st->data[st->counter];

    else if (!Stack_ok(st)) {

        Stack_dump(st);
        assert(!"   # Stack is empty #  ");

    }
    else return 0xBAD;

}
Beispiel #6
0
int Stack_push(Stack_t* st, elem_t num) {

    if (!Stack_ok(st)) {

        Stack_dump(st);
        assert(!"   # Stack overflow #  ");

    }

    st->data[st->counter++] = num;


    if (!Stack_ok(st)) {return 0;}
    else {

        return 1;

    }

}
Beispiel #7
0
static void shutdown_handler(int signo)
{
  const char *signame = signames[signo];
  if (!signame) {
    signame = "unknown";
  }

  const char threadname[17] = "thread";
#ifdef HAVE_PRCTL
  {
    prctl(PR_GET_NAME, threadname);
  }
#endif

  fprintf(stderr, "%s: caught signal %d (%s)\n", threadname, signo, signame);

  Stack_dump();

  _exit(signo);
}
Beispiel #8
0
static void usr1_handler(int signo)
{
  Stack_dump();
}