summaryrefslogtreecommitdiffstats
path: root/src/host/osmocon/osmoload.c
diff options
context:
space:
mode:
authorHarald Welte <laforge@gnumonks.org>2012-09-08 22:45:30 +0200
committerHarald Welte <laforge@gnumonks.org>2012-09-08 22:45:30 +0200
commit6ce46e7a86f4de0b1eef9c641ef6cfb49f1255cd (patch)
tree5279ef9563f56b4fb74dda9c6fe79f011d185f56 /src/host/osmocon/osmoload.c
parenta8ce4ea4696a385d18beb785eef8f510c6fed143 (diff)
use msgb_pull() to get bytes from start of message, not msgb_get()
msgb_get() is for getting bytes from the end of a message, but it was broken in libosmocore for a long time (until it was fixed today).
Diffstat (limited to 'src/host/osmocon/osmoload.c')
-rw-r--r--src/host/osmocon/osmoload.c52
1 files changed, 26 insertions, 26 deletions
diff --git a/src/host/osmocon/osmoload.c b/src/host/osmocon/osmoload.c
index 2d558394..9b649357 100644
--- a/src/host/osmocon/osmoload.c
+++ b/src/host/osmocon/osmoload.c
@@ -228,7 +228,7 @@ static void
loader_parse_flash_info(struct msgb *msg) {
uint8_t nchips;
- nchips = msgb_get_u8(msg);
+ nchips = msgb_pull_u8(msg);
osmoload.numblocks = 0;
@@ -236,21 +236,21 @@ loader_parse_flash_info(struct msgb *msg) {
for(chip = 0; chip < nchips; chip++) {
uint32_t address;
- address = msgb_get_u32(msg);
+ address = msgb_pull_u32(msg);
uint32_t chipsize;
- chipsize = msgb_get_u32(msg);
+ chipsize = msgb_pull_u32(msg);
uint8_t nregions;
- nregions = msgb_get_u8(msg);
+ nregions = msgb_pull_u8(msg);
printf(" chip %d at 0x%8.8x of %d bytes in %d regions\n", chip, address, chipsize, nregions);
uint32_t curoffset = 0;
int region;
for(region = 0; region < nregions; region++) {
- uint16_t blockcount = msgb_get_u32(msg);
- uint32_t blocksize = msgb_get_u32(msg);
+ uint16_t blockcount = msgb_pull_u32(msg);
+ uint32_t blocksize = msgb_pull_u32(msg);
printf(" region %d with %d blocks of %d bytes each\n", region, blockcount, blocksize);
@@ -280,7 +280,7 @@ loader_handle_reply(struct msgb *msg) {
osmoload_osmo_hexdump(msg->data, msg->len);
}
- uint8_t cmd = msgb_get_u8(msg);
+ uint8_t cmd = msgb_pull_u8(msg);
uint8_t chip;
uint8_t length;
@@ -293,8 +293,8 @@ loader_handle_reply(struct msgb *msg) {
switch(cmd) {
case LOADER_INIT:
- address = msgb_get_u32(msg);
- entrypoint = msgb_get_u32(msg);
+ address = msgb_pull_u32(msg);
+ entrypoint = msgb_pull_u32(msg);
printf("Loader at entry %x has been started, requesting load to %x\n", entrypoint, address);
break;
case LOADER_PING:
@@ -304,18 +304,18 @@ loader_handle_reply(struct msgb *msg) {
case LOADER_ENTER_FLASH_LOADER:
break;
case LOADER_MEM_READ:
- length = msgb_get_u8(msg);
- crc = msgb_get_u16(msg);
- address = msgb_get_u32(msg);
- data = msgb_get(msg, length);
+ length = msgb_pull_u8(msg);
+ crc = msgb_pull_u16(msg);
+ address = msgb_pull_u32(msg);
+ data = msgb_pull(msg, length);
break;
case LOADER_MEM_WRITE:
- length = msgb_get_u8(msg);
- crc = msgb_get_u16(msg);
- address = msgb_get_u32(msg);
+ length = msgb_pull_u8(msg);
+ crc = msgb_pull_u16(msg);
+ address = msgb_pull_u32(msg);
break;
case LOADER_JUMP:
- address = msgb_get_u32(msg);
+ address = msgb_pull_u32(msg);
break;
case LOADER_FLASH_INFO:
break;
@@ -324,17 +324,17 @@ loader_handle_reply(struct msgb *msg) {
case LOADER_FLASH_UNLOCK:
case LOADER_FLASH_LOCK:
case LOADER_FLASH_LOCKDOWN:
- chip = msgb_get_u8(msg);
- address = msgb_get_u32(msg);
- status = msgb_get_u32(msg);
+ chip = msgb_pull_u8(msg);
+ address = msgb_pull_u32(msg);
+ status = msgb_pull_u32(msg);
break;
case LOADER_FLASH_PROGRAM:
- length = msgb_get_u8(msg);
- crc = msgb_get_u16(msg);
- msgb_get_u8(msg); // XXX align
- chip = msgb_get_u8(msg);
- address = msgb_get_u32(msg);
- status = msgb_get_u32(msg);
+ length = msgb_pull_u8(msg);
+ crc = msgb_pull_u16(msg);
+ msgb_pull_u8(msg); // XXX align
+ chip = msgb_pull_u8(msg);
+ address = msgb_pull_u32(msg);
+ status = msgb_pull_u32(msg);
break;
default:
printf("Received unknown reply %d:\n", cmd);