summaryrefslogtreecommitdiff
path: root/bsp/gkipc/libraries/drv/gnu_c/internal.c
blob: 6b82f7360f43756eed87d7b8c1f3a1bc04a9adeb (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
#include "stdio.h"
#include "internal.h"

static enter_crit  st_enter_critical = NULL;
static exit_crit   st_exit_critical = NULL;

int st_register_crit_func(enter_crit ent, exit_crit exit)
{
    if(ent == NULL || ent == NULL)
    {
        printf("parameter error\n");
        return -1;
    }
    st_enter_critical = ent;
    st_exit_critical = exit;
    return 0;
}

uint32_t st_enter_crit_func()
{
    if(st_enter_critical)
    {
        return st_enter_critical();
    }
    else
    {
        return -1;
    }
}

void st_exit_crit_func(uint32_t flags)
{
    if(st_exit_critical)
    {
        st_exit_critical(flags);
    }

}