summaryrefslogtreecommitdiffstats
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
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).
-rw-r--r--src/host/osmocon/osmoload.c52
-rw-r--r--src/target/firmware/apps/loader/main.c36
-rw-r--r--src/target/firmware/apps/loader_mtk/main.c36
3 files changed, 62 insertions, 62 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);
diff --git a/src/target/firmware/apps/loader/main.c b/src/target/firmware/apps/loader/main.c
index b849090b..50a39ddd 100644
--- a/src/target/firmware/apps/loader/main.c
+++ b/src/target/firmware/apps/loader/main.c
@@ -203,7 +203,7 @@ static void cmd_handler(uint8_t dlci, struct msgb *msg)
return;
}
- uint8_t command = msgb_get_u8(msg);
+ uint8_t command = msgb_pull_u8(msg);
int res;
@@ -251,8 +251,8 @@ static void cmd_handler(uint8_t dlci, struct msgb *msg)
case LOADER_MEM_READ:
- nbytes = msgb_get_u8(msg);
- address = msgb_get_u32(msg);
+ nbytes = msgb_pull_u8(msg);
+ address = msgb_pull_u32(msg);
crc = osmo_crc16(0, (void *)address, nbytes);
@@ -269,11 +269,11 @@ static void cmd_handler(uint8_t dlci, struct msgb *msg)
case LOADER_MEM_WRITE:
- nbytes = msgb_get_u8(msg);
- crc = msgb_get_u16(msg);
- address = msgb_get_u32(msg);
+ nbytes = msgb_pull_u8(msg);
+ crc = msgb_pull_u16(msg);
+ address = msgb_pull_u32(msg);
- data = msgb_get(msg, nbytes);
+ data = msgb_pull(msg, nbytes);
mycrc = osmo_crc16(0, data, nbytes);
@@ -292,7 +292,7 @@ static void cmd_handler(uint8_t dlci, struct msgb *msg)
case LOADER_JUMP:
- address = msgb_get_u32(msg);
+ address = msgb_pull_u32(msg);
msgb_put_u8(reply, LOADER_JUMP);
msgb_put_u32(reply, address);
@@ -328,8 +328,8 @@ static void cmd_handler(uint8_t dlci, struct msgb *msg)
case LOADER_FLASH_LOCK:
case LOADER_FLASH_LOCKDOWN:
- chip = msgb_get_u8(msg);
- address = msgb_get_u32(msg);
+ chip = msgb_pull_u8(msg);
+ address = msgb_pull_u32(msg);
if (command == LOADER_FLASH_ERASE) {
res = flash_block_erase(&the_flash, address);
@@ -355,8 +355,8 @@ static void cmd_handler(uint8_t dlci, struct msgb *msg)
case LOADER_FLASH_GETLOCK:
- chip = msgb_get_u8(msg);
- address = msgb_get_u32(msg);
+ chip = msgb_pull_u8(msg);
+ address = msgb_pull_u32(msg);
lock = flash_block_getlock(&the_flash, address);
@@ -385,13 +385,13 @@ static void cmd_handler(uint8_t dlci, struct msgb *msg)
case LOADER_FLASH_PROGRAM:
- nbytes = 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);
+ nbytes = 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);
- data = msgb_get(msg, nbytes);
+ data = msgb_pull(msg, nbytes);
mycrc = osmo_crc16(0, data, nbytes);
diff --git a/src/target/firmware/apps/loader_mtk/main.c b/src/target/firmware/apps/loader_mtk/main.c
index ddf3532e..7748dc45 100644
--- a/src/target/firmware/apps/loader_mtk/main.c
+++ b/src/target/firmware/apps/loader_mtk/main.c
@@ -143,7 +143,7 @@ static void cmd_handler(uint8_t dlci, struct msgb *msg)
return;
}
- uint8_t command = msgb_get_u8(msg);
+ uint8_t command = msgb_pull_u8(msg);
int res;
@@ -191,8 +191,8 @@ static void cmd_handler(uint8_t dlci, struct msgb *msg)
case LOADER_MEM_READ:
- nbytes = msgb_get_u8(msg);
- address = msgb_get_u32(msg);
+ nbytes = msgb_pull_u8(msg);
+ address = msgb_pull_u32(msg);
crc = osmo_crc16(0, (void *)address, nbytes);
@@ -209,11 +209,11 @@ static void cmd_handler(uint8_t dlci, struct msgb *msg)
case LOADER_MEM_WRITE:
- nbytes = msgb_get_u8(msg);
- crc = msgb_get_u16(msg);
- address = msgb_get_u32(msg);
+ nbytes = msgb_pull_u8(msg);
+ crc = msgb_pull_u16(msg);
+ address = msgb_pull_u32(msg);
- data = msgb_get(msg, nbytes);
+ data = msgb_pull(msg, nbytes);
mycrc = osmo_crc16(0, data, nbytes);
@@ -232,7 +232,7 @@ static void cmd_handler(uint8_t dlci, struct msgb *msg)
case LOADER_JUMP:
- address = msgb_get_u32(msg);
+ address = msgb_pull_u32(msg);
msgb_put_u8(reply, LOADER_JUMP);
msgb_put_u32(reply, address);
@@ -268,8 +268,8 @@ static void cmd_handler(uint8_t dlci, struct msgb *msg)
case LOADER_FLASH_LOCK:
case LOADER_FLASH_LOCKDOWN:
- chip = msgb_get_u8(msg);
- address = msgb_get_u32(msg);
+ chip = msgb_pull_u8(msg);
+ address = msgb_pull_u32(msg);
if (command == LOADER_FLASH_ERASE) {
res = flash_block_erase(&the_flash, address);
@@ -295,8 +295,8 @@ static void cmd_handler(uint8_t dlci, struct msgb *msg)
case LOADER_FLASH_GETLOCK:
- chip = msgb_get_u8(msg);
- address = msgb_get_u32(msg);
+ chip = msgb_pull_u8(msg);
+ address = msgb_pull_u32(msg);
lock = flash_block_getlock(&the_flash, address);
@@ -325,13 +325,13 @@ static void cmd_handler(uint8_t dlci, struct msgb *msg)
case LOADER_FLASH_PROGRAM:
- nbytes = 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);
+ nbytes = 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);
- data = msgb_get(msg, nbytes);
+ data = msgb_pull(msg, nbytes);
mycrc = osmo_crc16(0, data, nbytes);