osmocom-bb/src/host/layer23/include/osmocom/bb/misc/log.h

81 lines
1.4 KiB
C

enum {
LOG_TYPE_NONE = 0,
LOG_TYPE_SYSINFO,
LOG_TYPE_POWER,
};
struct power {
uint8_t gps_valid;
double longitude, latitude;
time_t gmt;
int8_t rxlev[1024];
};
struct node_power {
struct node_power *next;
struct power power;
};
struct node_mcc {
struct node_mcc *next;
uint16_t mcc;
struct node_mnc *mnc;
};
struct node_mnc {
struct node_mnc *next;
uint16_t mnc;
struct node_lac *lac;
};
struct node_lac {
struct node_lac *next;
uint16_t lac;
struct node_cell *cell;
};
struct sysinfo {
uint16_t arfcn;
int8_t rxlev;
uint8_t bsic;
uint8_t gps_valid;
double longitude, latitude;
time_t gmt;
uint8_t si1[23];
uint8_t si2[23];
uint8_t si2bis[23];
uint8_t si2ter[23];
uint8_t si3[23];
uint8_t si4[23];
uint8_t ta_valid;
uint8_t ta;
};
struct node_cell {
struct node_cell *next;
uint16_t cellid;
uint8_t content; /* indicates, if sysinfo is already applied */
struct node_meas *meas, **meas_last_p;
struct sysinfo sysinfo;
struct gsm48_sysinfo s;
};
struct node_meas {
struct node_meas *next;
time_t gmt;
int8_t rxlev;
uint8_t gps_valid;
double longitude, latitude;
uint8_t ta_valid;
uint8_t ta;
};
struct node_mcc *get_node_mcc(uint16_t mcc);
struct node_mnc *get_node_mnc(struct node_mcc *mcc, uint16_t mnc);
struct node_lac *get_node_lac(struct node_mnc *mnc, uint16_t lac);
struct node_cell *get_node_cell(struct node_lac *lac, uint16_t cellid);
struct node_meas *add_node_meas(struct node_cell *cell);
int read_log(FILE *infp);