libosmocore 1.6.0.113-b17c
Osmocom core library
prim.h
Go to the documentation of this file.
1#pragma once
2
19#include <stdint.h>
20#include <osmocom/core/msgb.h>
21
22#define OSMO_PRIM(prim, op) ((prim << 8) | (op & 0xFF))
23#define OSMO_PRIM_HDR(oph) OSMO_PRIM((oph)->primitive, (oph)->operation)
24
31};
32
33extern const struct value_string osmo_prim_op_names[5];
34
36#define _SAP_GSM_SHIFT 24
37
38#define _SAP_GSM_BASE (0x01 << _SAP_GSM_SHIFT)
39#define _SAP_TETRA_BASE (0x02 << _SAP_GSM_SHIFT)
40#define _SAP_SS7_BASE (0x03 << _SAP_GSM_SHIFT)
41
44 unsigned int sap;
45 unsigned int primitive;
47 struct msgb *msg;
54};
55
63static inline void
64osmo_prim_init(struct osmo_prim_hdr *oph, unsigned int sap,
65 unsigned int primitive, enum osmo_prim_operation operation,
66 struct msgb *msg)
67{
68 oph->sap = sap;
69 oph->primitive = primitive;
70 oph->operation = operation;
71 oph->msg = msg;
72}
73
75typedef int (*osmo_prim_cb)(struct osmo_prim_hdr *oph, void *ctx);
76
79#define OSMO_NO_EVENT 0xFFFFFFFF
80
83 unsigned int sap;
84 unsigned int primitive;
86 uint32_t event;
87};
88
89uint32_t osmo_event_for_prim(const struct osmo_prim_hdr *oph,
90 const struct osmo_prim_event_map *maps);
osmo_prim_operation
primitive operation
Definition: prim.h:26
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:28
const struct value_string osmo_prim_op_names[5]
The upper 8 byte of the technology, the lower 24 bits for the SAP.
Definition: prim.c:16
int(* osmo_prim_cb)(struct osmo_prim_hdr *oph, void *ctx)
primitive handler callback type
Definition: prim.h:75
static void osmo_prim_init(struct osmo_prim_hdr *oph, unsigned int sap, unsigned int primitive, enum osmo_prim_operation operation, struct msgb *msg)
Convenience function to initialize a primitive header.
Definition: prim.h:64
@ PRIM_OP_INDICATION
indication
Definition: prim.h:29
@ PRIM_OP_CONFIRM
confirm
Definition: prim.h:30
@ PRIM_OP_REQUEST
request
Definition: prim.h:27
@ PRIM_OP_RESPONSE
response
Definition: prim.h:28
uint8_t msg[0]
Osmocom message buffer.
Definition: msgb.h:31
single entry in a SAP/PRIM/OP -> EVENT map
Definition: prim.h:82
uint32_t event
event as result if above match
Definition: prim.h:86
unsigned int sap
SAP to match.
Definition: prim.h:83
unsigned int primitive
primtiive to match
Definition: prim.h:84
enum osmo_prim_operation operation
operation to match
Definition: prim.h:85
Osmocom primitive header.
Definition: prim.h:43
struct msgb * msg
Primitive Operation.
Definition: prim.h:47
enum osmo_prim_operation operation
Definition: prim.h:46
unsigned int primitive
Primitive number.
Definition: prim.h:45
unsigned int sap
Service Access Point Identifier.
Definition: prim.h:44
A mapping between human-readable string and numeric value.
Definition: utils.h:51