Example #1
0
void display_dump_pixels(display_t* display)
{
    for (uint16_t y = 0; y < 32; y++) {
        for (uint16_t x = 0; x < 64; x++) {
            if (display->pixels[(y * 64) + x]) {
                log_op(" ");
            } else {
                log_op("O");
            }
        }
        log_op("\n");
    }
    log_op("\n");
}
Example #2
0
void log_stuff(int operation, char * from, char * to, int dp, int cc, stack stk) {
    fprintf(stderr, "stack = ");
    print_list(*stk);
    fprintf(stderr, "\n%s -(%c%c)-> %s operation ", from, "RDLU"[dp], "lr"[cc], to);
    log_op(operation);
    fprintf(stderr, "\n");
}
Example #3
0
void nes_cpu_cli(void) {
	
	log_op("CLI");
	
	cpu_clr_I();
	
	cpu.pc ++;
	
}
Example #4
0
void nes_cpu_php(void) {
	
	log_op("PHP");
	
	cpu.stack[cpu.sp --] = cpu.sreg;
	
	cpu.pc ++;
	
}
Example #5
0
void nes_cpu_pla(void) {
	
	log_op("PLA");
	
	cpu.a = cpu.stack[cpu.sp ++];
	
	cpu_check_Z(cpu.a); cpu_check_N(cpu.a);
		
	cpu.pc ++;
	
}
Example #6
0
void nes_cpu_tsx(void) {
	
	log_op("TSX");
	
	cpu.x = cpu.sp;
	
	cpu_check_Z(cpu.x); cpu_check_N(cpu.x);
	
	cpu.pc ++;
	
}
Example #7
0
bool forward_dir(void)
{	bool ok = true;
	//
	ok     &= abs_op();
	ok     &= acos_op();
	ok     &= acosh_op();
	ok     &= asin_op();
	ok     &= asinh_op();
	ok     &= atan_op();
	ok     &= atanh_op();
	ok     &= addpv_op();
	ok     &= addvv_op();
	ok     &= cexp_op();
	ok     &= cosh_op();
	ok     &= cos_op();
	ok     &= csum_op();
	ok     &= dis_op();
	ok     &= divpv_op();
	ok     &= divvp_op();
	ok     &= divvv_op();
	ok     &= exp_op();
	ok     &= load_op();
	ok     &= log_op();
	ok     &= mulpv_op();
	ok     &= par_op();
	ok     &= powpv_op();
	ok     &= powvp_op();
	ok     &= powvv_op();
	ok     &= sign_op();
	ok     &= sin_op();
	ok     &= sinh_op();
	ok     &= subpv_op();
	ok     &= subvp_op();
	ok     &= subvv_op();
	ok     &= sqrt_op();
	ok     &= tan_op();
	ok     &= tanh_op();
	ok     &= usr_op();
	//
	return ok;
}
Example #8
0
static void stress(int num)
{
	int i, o, op, max_op, skip;
	unsigned int n, skips, lock_ops, unlock_ops, unlockf_ops, cancel_ops;
	struct lk *lk;

	n = skips = lock_ops = unlock_ops = unlockf_ops = cancel_ops = 0;
	sts_eunlock = sts_ecancel = sts_etimedout = sts_edeadlk = sts_eagain = sts_other = sts_zero = 0;
	bast_unlock = bast_skip = 0;

	while (!stress_stop) {
		if (stress_delay)
			usleep(stress_delay);

		process_libdlm();

		if (++n == num)
			break;

		i = rand_int(0, maxn-1);
		lk = get_lock(i);
		if (!lk)
			continue;

		max_op = 5;
		if (stress_lock_only)
			max_op = 2;

		o = rand_int(0, max_op);
		switch (o) {
		case 0:
		case 1:
		case 2:
			op = Op_lock;
			break;
		case 3:
			op = Op_unlock;
			break;
		case 4:
			op = Op_unlockf;
			break;
		case 5:
			op = Op_cancel;
			break;
		default:
			op = 0;
		}

		skip = 0;

		switch (op) {
		case Op_lock:
			if (lk->wait_ast) {
				skip = 1;
				break;
			}

			noqueue = !!o;
			our_xid = n;

			lock(i, rand_int(0, 5));
			lock_ops++;
			log_op("%8x: lock    %3d\t%x\n", n, i, lk->lksb.sb_lkid);
			break;

		case Op_unlock:
			if (lk->wait_ast) {
				skip = 1;
				break;
			}
			if (lk->lastop == Op_unlock || lk->lastop == Op_unlockf) {
				skip = 1;
				break;
			}
			if (!lk->lksb.sb_lkid) {
				skip = 1;
				break;
			}

			unlock(i);
			unlock_ops++;
			log_op("%8x: unlock  %3d\t%x\n", n, i, lk->lksb.sb_lkid);
			break;

		case Op_unlockf:
			if (lk->lastop == Op_unlock || lk->lastop == Op_unlockf) {
				skip = 1;
				break;
			}
			if (!lk->lksb.sb_lkid) {
				skip = 1;
				break;
			}

			unlockf(i);
			unlockf_ops++;
			log_op("%8x: unlockf %3d\t%x\n", n, i, lk->lksb.sb_lkid);
			break;

		case Op_cancel:
			if (!lk->wait_ast) {
				skip = 1;
				break;
			}
			if (lk->lastop > Op_lock) {
				skip = 1;
				break;
			}

			cancel(i);
			cancel_ops++;
			log_op("%8x: cancel  %3d\t%x\n", n, i, lk->lksb.sb_lkid);
			break;
		}

		if (skip)
			skips++;
	}

	printf("ops: skip %d lock %d unlock %d unlockf %d cancel %d\n",
		skips, lock_ops, unlock_ops, unlockf_ops, cancel_ops);
	printf("bast: unlock %u skip %u\n", bast_unlock, bast_skip);
	printf("ast status: eunlock %d ecancel %d etimedout %d edeadlk %d eagain %d\n",
		sts_eunlock, sts_ecancel, sts_etimedout, sts_edeadlk, sts_eagain);
	printf("ast status: zero %d other %d\n", sts_zero, sts_other);
}