#include #include #include #include #include #include #include #include "gps.h" #include "ubx.h" #include "ubx-parse.h" #include "rrlp.h" static int do_ubx_read(struct gps_assist_data *gps, const char *filename) { int rv, fd, i; struct stat st; void *buf; /* Load file */ fd = open(filename, O_RDONLY); if (fd < 0) return -1; rv = fstat(fd, &st); if (rv < 0) { close(fd); return -1; } buf = malloc(st.st_size); if (!buf) { close(fd); return -1; } rv = read(fd, buf, st.st_size); if (rv != st.st_size) { free(buf); close(fd); return -1; } /* Parse each message */ for (i=0; i