mirror of https://gerrit.osmocom.org/libosmocore
35 lines
643 B
C
35 lines
643 B
C
|
|
||
|
#include <unistd.h>
|
||
|
|
||
|
#include <osmocom/core/talloc.h>
|
||
|
#include <osmocom/sim/sim.h>
|
||
|
|
||
|
struct osim_decoded_data *osim_file_decode(struct osim_file *file,
|
||
|
int len, uint8_t *data)
|
||
|
{
|
||
|
struct osim_decoded_data *dd;
|
||
|
|
||
|
if (!file->desc->ops.parse)
|
||
|
return NULL;
|
||
|
|
||
|
dd = talloc_zero(file, struct osim_decoded_data);
|
||
|
dd->file = file;
|
||
|
|
||
|
if (file->desc->ops.parse(dd, file->desc, len, data) < 0) {
|
||
|
talloc_free(dd);
|
||
|
return NULL;
|
||
|
} else
|
||
|
return dd;
|
||
|
}
|
||
|
|
||
|
struct msgb *osim_file_encode(const struct osim_file_desc *desc,
|
||
|
const struct osim_decoded_data *data)
|
||
|
{
|
||
|
if (!desc->ops.encode)
|
||
|
return NULL;
|
||
|
|
||
|
return desc->ops.encode(desc, data);
|
||
|
}
|
||
|
|
||
|
|