Files
FireBee_SVN/sd-emutos/cookie.c
Markus Fröschle 9ca54ea56d
2013-05-03 19:24:34 +00:00

52 lines
752 B
C

/*
* cookie.c
*
* Created on: 03.05.2013
* Author: mfro
*/
#include <stdint.h>
#include <osbind.h>
static uint32_t cookieptr(void)
{
return * (uint32_t *) 0x5a0L;
}
int getcookie(uint32_t cookie, uint32_t *p_value)
{
uint32_t *cookiejar = (uint32_t *) Supexec(cookieptr);
if (!cookiejar) return 0;
do
{
if (cookiejar[0] == cookie)
{
if (p_value) *p_value = cookiejar[1];
return 1;
}
else
cookiejar = &(cookiejar[2]);
} while (cookiejar[-2]);
return 0;
}
void setcookie(uint32_t cookie, uint32_t value)
{
uint32_t *cookiejar = (uint32_t *) Supexec(cookieptr);
do
{
if (cookiejar[0] == cookie)
{
cookiejar[1] = value;
return;
}
else
cookiejar = &(cookiejar[2]);
} while (cookiejar[-2]);
}