libosmocore  0.9.6.311-c977
Osmocom core library
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Modules Pages
prim.h
Go to the documentation of this file.
1 #pragma once
2 
7 #include <stdint.h>
8 #include <osmocom/core/msgb.h>
9 
10 #define OSMO_PRIM(prim, op) ((prim << 8) | (op & 0xFF))
11 #define OSMO_PRIM_HDR(oph) OSMO_PRIM((oph)->primitive, (oph)->operation)
12 
19 };
20 
21 extern const struct value_string osmo_prim_op_names[5];
22 
23 #define _SAP_GSM_SHIFT 24
24 
25 #define _SAP_GSM_BASE (0x01 << _SAP_GSM_SHIFT)
26 #define _SAP_TETRA_BASE (0x02 << _SAP_GSM_SHIFT)
27 #define _SAP_SS7_BASE (0x03 << _SAP_GSM_SHIFT)
28 
30 struct osmo_prim_hdr {
31  unsigned int sap;
32  unsigned int primitive;
34  struct msgb *msg;
35 };
36 
44 static inline void
45 osmo_prim_init(struct osmo_prim_hdr *oph, unsigned int sap,
46  unsigned int primitive, enum osmo_prim_operation operation,
47  struct msgb *msg)
48 {
49  oph->sap = sap;
50  oph->primitive = primitive;
51  oph->operation = operation;
52  oph->msg = msg;
53 }
54 
56 typedef int (*osmo_prim_cb)(struct osmo_prim_hdr *oph, void *ctx);
57 
60 #define OSMO_NO_EVENT 0xFFFFFFFF
61 
64  unsigned int sap;
65  unsigned int primitive;
67  uint32_t event;
68 };
69 
70 uint32_t osmo_event_for_prim(const struct osmo_prim_hdr *oph,
71  const struct osmo_prim_event_map *maps);
confirm
Definition: prim.h:18
response
Definition: prim.h:16
Osmocom message buffer.
Definition: msgb.h:35
request
Definition: prim.h:15
indication
Definition: prim.h:17
A mapping between human-readable string and numeric value.
Definition: utils.h:27
static void osmo_prim_init(struct osmo_prim_hdr *oph, unsigned int sap, unsigned int primitive, enum osmo_prim_operation operation, struct msgb *msg)
initialize a primitive header
Definition: prim.h:45
int(* osmo_prim_cb)(struct osmo_prim_hdr *oph, void *ctx)
primitive handler callback type
Definition: prim.h:56
unsigned int primitive
Primitive number.
Definition: prim.h:32
unsigned int sap
Service Access Point.
Definition: prim.h:31
unsigned int sap
SAP to match.
Definition: prim.h:64
uint32_t osmo_event_for_prim(const struct osmo_prim_hdr *oph, const struct osmo_prim_event_map *maps)
resolve the (fsm) event for a given primitive using a map
Definition: prim.c:20
single entry in a SAP/PRIM/OP -> EVENT map
Definition: prim.h:63
uint32_t event
event as result if above match
Definition: prim.h:67
osmo_prim_operation
primitive operation
Definition: prim.h:14
enum osmo_prim_operation operation
operation to match
Definition: prim.h:66
enum osmo_prim_operation operation
Definition: prim.h:33
primitive header
Definition: prim.h:30
const struct value_string osmo_prim_op_names[5]
human-readable string mapping for osmo_prim_operation
Definition: prim.c:8
struct msgb * msg
Primitive Operation.
Definition: prim.h:34
unsigned int primitive
primtiive to match
Definition: prim.h:65