diff options
author | Harald Welte <laforge@gnumonks.org> | 2011-03-03 23:29:05 +0100 |
---|---|---|
committer | Harald Welte <laforge@gnumonks.org> | 2011-03-03 23:29:05 +0100 |
commit | 31c00f7d6fa63937f2c973157d196a427f6eef95 (patch) | |
tree | 6b7c81d92b6a8b83d0588b2b59d47fd0cca7a052 /openbsc/src/abis/input/lapd.h | |
parent | 9349d7ff7c5866110a1f2421ccc68a487e4030be (diff) |
re-structure the OpenBSC directory layout
The new structure divides the code into a number of libraries
for the BSC core functionality, MSC core functionality, Abis transport,
TRAU and other bits.
This doesn't introduce any functional code change but simply moves
around files and alters Makefile.am accordingly.
Next step would be to disentangle a lot of the inter-library
dependencies and make the individual bits of code more independent.
Diffstat (limited to 'openbsc/src/abis/input/lapd.h')
-rw-r--r-- | openbsc/src/abis/input/lapd.h | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/openbsc/src/abis/input/lapd.h b/openbsc/src/abis/input/lapd.h new file mode 100644 index 000000000..fd11edaa3 --- /dev/null +++ b/openbsc/src/abis/input/lapd.h @@ -0,0 +1,46 @@ +#ifndef OPENBSC_LAPD_H +#define OPENBSC_LAPD_H + +#include <stdint.h> + +#include <osmocore/linuxlist.h> + +typedef enum { + LAPD_MPH_NONE = 0, + + LAPD_MPH_ACTIVATE_IND, + LAPD_MPH_DEACTIVATE_IND, + + LAPD_DL_DATA_IND, + LAPD_DL_UNITDATA_IND, + +} lapd_mph_type; + +struct lapd_instance { + struct llist_head list; /* list of LAPD instances */ + int network_side; + + void (*transmit_cb)(uint8_t *data, int len, void *cbdata); + void *cbdata; + + struct llist_head tei_list; /* list of TEI in this LAPD instance */ +}; + +extern uint8_t *lapd_receive(struct lapd_instance *li, uint8_t *data, unsigned int len, + int *ilen, lapd_mph_type *prim); + +extern void lapd_transmit(struct lapd_instance *li, uint8_t tei, uint8_t sapi, + uint8_t *data, unsigned int len); + +struct lapd_instance *lapd_instance_alloc(int network_side, + void (*tx_cb)(uint8_t *data, int len, + void *cbdata), void *cbdata); + + +/* Start a (user-side) SAP for the specified TEI/SAPI on the LAPD instance */ +int lapd_sap_start(struct lapd_instance *li, uint8_t tei, uint8_t sapi); + +/* Stop a (user-side) SAP for the specified TEI/SAPI on the LAPD instance */ +int lapd_sap_stop(struct lapd_instance *li, uint8_t tei, uint8_t sapi); + +#endif /* OPENBSC_LAPD_H */ |