CeDOS - kernel/sched/stack_check.c

kernel/sched/stack_check.c (view raw)

1
2
3
4
5
6
7
8
9
10
11
12
13
#include "sched/stack_check.h"

void stack_compute_checksum(STACK_CHECKSUM* checksum, const void *esp, const void *ebp) {
	*checksum = 0;

	for (uint32_t *p = (uint32_t*)(esp); p < (uint32_t*)(ebp); p = &p[1]) {
		*checksum ^= *p;
	}
}

int stack_compare_checksum(STACK_CHECKSUM* a, STACK_CHECKSUM* b) {
    return (a == b);
}