diff options
Diffstat (limited to 'src/plugins/serial/serial_basic.c')
-rw-r--r-- | src/plugins/serial/serial_basic.c | 32 |
1 files changed, 12 insertions, 20 deletions
diff --git a/src/plugins/serial/serial_basic.c b/src/plugins/serial/serial_basic.c index e3322c1..e134c9c 100644 --- a/src/plugins/serial/serial_basic.c +++ b/src/plugins/serial/serial_basic.c @@ -29,11 +29,12 @@ * LIABILITY, ARISING OUT OF THE USE OF OR INABILITY TO USE THIS SOFTWARE, * EVEN IF PPS HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. */ -#define _GNU_SOURCE 1 /* Serial Interface, Basic Mode plugin. */ +#if defined HAVE_ALLOCA_H #include <alloca.h> +#endif #include <stdio.h> #include <fcntl.h> #include <time.h> @@ -79,7 +80,7 @@ struct ipmb_msg_hdr { unsigned char rqSA; unsigned char rqSeq; /* RQ SEQ | RQ LUN */ unsigned char cmd; - unsigned char data[0]; + unsigned char data[]; }; /* @@ -101,7 +102,7 @@ struct ipmi_get_message_rp { unsigned char rsSA; unsigned char rqSeq; unsigned char cmd; - unsigned char data[0]; + unsigned char data[]; }; /* @@ -128,7 +129,7 @@ struct serial_bm_parse_ctx{ * Receiving context */ struct serial_bm_recv_ctx { - char buffer[SERIAL_BM_MAX_BUFFER_SIZE]; + uint8_t buffer[SERIAL_BM_MAX_BUFFER_SIZE]; size_t buffer_size; size_t max_buffer_size; }; @@ -240,12 +241,12 @@ serial_bm_open(struct ipmi_intf * intf) return -1; } - for (i = 0; i < sizeof(rates) / sizeof(rates[0]); i++) { + for (i = 0; i < ARRAY_SIZE(rates); i++) { if (rates[i].baudrate == rate) { break; } } - if (i >= sizeof(rates) / sizeof(rates[0])) { + if (i >= ARRAY_SIZE(rates)) { lprintf(LOG_ERR, "Unsupported baud rate %i specified", rate); return -1; } @@ -611,18 +612,7 @@ serial_bm_build_msg(const struct ipmi_intf * intf, uint8_t * data = msg, seq; struct ipmb_msg_hdr * hdr = (struct ipmb_msg_hdr *) msg; struct ipmi_send_message_rq * inner_rq = NULL, * outer_rq = NULL; - int bridging_level; - - /* acquire bridging level */ - if (intf->target_addr && intf->target_addr != intf->my_addr) { - if (intf->transit_addr != 0) { - bridging_level = 2; - } else { - bridging_level = 1; - } - } else { - bridging_level = 0; - } + int bridging_level = ipmi_intf_get_bridging_level(intf); /* check overall packet length */ if(req->msg.data_len + 7 + bridging_level * 8 > max_len) { @@ -654,7 +644,7 @@ serial_bm_build_msg(const struct ipmi_intf * intf, /* inner send message request is further */ inner_rq = (outer_rq + 1); } else { - /* there is only outer send message reuest */ + /* there is only outer send message request */ inner_rq = outer_rq; } @@ -815,12 +805,14 @@ serial_bm_wait_response(struct ipmi_intf * intf, /* * Get message from receive message queue + * + * Note: kept max_len in case later use. */ static int serial_bm_get_message(struct ipmi_intf * intf, struct serial_bm_request_ctx * req_ctx, struct serial_bm_recv_ctx * read_ctx, - uint8_t * msg, size_t max_len) + uint8_t * msg, size_t __UNUSED__(max_len)) { uint8_t data[SERIAL_BM_MAX_MSG_SIZE]; struct serial_bm_request_ctx tmp_ctx; |