SIM-115: update simulator to use latest E2SM KPM version 3
[sim/e2-interface.git] / e2sim / asn1c / per_encoder.c
1 #include <asn_internal.h>
2 #include <per_encoder.h>
3
4 int
5 ignore_output(const void *data, size_t size, void *app_key) {
6     (void)data;
7     (void)size;
8     (void)app_key;
9     return 0;
10 }
11
12 int
13 encode_dyn_cb(const void *buffer, size_t size, void *key) {
14     enc_dyn_arg *arg = key;
15     if(arg->length + size >= arg->allocated) {
16         size_t new_size = arg->allocated ? arg->allocated : 8;
17         void *p;
18
19         do {
20             new_size <<= 2;
21         } while(arg->length + size >= new_size);
22
23         p = REALLOC(arg->buffer, new_size);
24         if(!p) {
25             FREEMEM(arg->buffer);
26             memset(arg, 0, sizeof(*arg));
27             return -1;
28         }
29         arg->buffer = p;
30         arg->allocated = new_size;
31     }
32     memcpy(((char *)arg->buffer) + arg->length, buffer, size);
33     arg->length += size;
34     return 0;
35 }