summaryrefslogtreecommitdiff
path: root/cesar/interface/fcall/interface_fcall.h
blob: 61d556a5e07fe465ea21a08cf81492afb840d453 (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
39
40
41
42
43
44
45
46
47
48
#ifndef interface_fcall_interface_fcall_h
#define interface_fcall_interface_fcall_h
/* Cesar project {{{
 *
 * Copyright (C) 2008 Spidcom
 *
 * <<<Licence>>>
 *
 * }}} */
/**
 * \file    interface/fcall/interface_fcall.h
 * \brief   Public interface fcall module functions.
 * \ingroup interface/fcall
 *
 */
#include "cl/mbx/mbx.h"
#include "bufmgr/bufmgr.h"
#include "mac/common/config.h"

typedef struct interface_fcall_t interface_fcall_t;

/**
 * Initialise the interface fcall module and the callback functions.
 * \param  cl_mbx  the convergence layer to send MME to linux
 * \param  mac_config  the mac_config
 * \param  bufmgr  the buffer manager context
 */
interface_fcall_t*
interface_fcall_init (cl_mbx_t *cl_mbx, mac_config_t *mac_config,
                      bufmgr_t *bufmgr);

/**
 * uninitalise the interface fcall module
 * \param  ctx  the interface fcall context
 */
void
interface_fcall_uninit (interface_fcall_t *ctx);

/**
 * process a received MME and request the interface module to send the MME response
 * \param  data  pointer to the interface fcall context
 * \param  mme  the MME buffer
 * \param  buffer  an empty allocated buffer for fcall response
 */
void
interface_fcall_mme_recv (void *data, u8 *mme);

#endif /* interface_fcall_interface_fcall_h */