X-Git-Url: https://git.zerfleddert.de/cgi-bin/gitweb.cgi/rsbs2/blobdiff_plain/67a9a9e866d0ff3c40dc2a4a5df32c6e39e9747f..99f916c4f2f21a5e41464b3b9455f4442ce5069e:/bmc/ipmb.c?ds=sidebyside diff --git a/bmc/ipmb.c b/bmc/ipmb.c index fa057c9..b18d664 100644 --- a/bmc/ipmb.c +++ b/bmc/ipmb.c @@ -1,3 +1,4 @@ +#include #include #include @@ -17,7 +18,7 @@ uint8_t ipmb_csum(unsigned char *buf, int len) return -csum; } -void ipmb_send(struct ipmb_resp *resp, unsigned char *data, uint8_t datalen) +void ipmb_send(struct ipmb_resp *resp, const unsigned char *data, uint8_t datalen) { unsigned char buf[24]; int len; @@ -31,7 +32,7 @@ void ipmb_send(struct ipmb_resp *resp, unsigned char *data, uint8_t datalen) buf[3] = resp->rsSA; buf[4] = ((resp->rqSEQ)<<2) | (resp->rsLUN & 0x3); buf[5] = resp->cmd; - memcpy(buf+6, data, datalen); + memcpy_P(buf+6, data, datalen); len = datalen + 7; buf[len-1] = ipmb_csum(buf+3, len - 4); @@ -72,7 +73,7 @@ void ipmb_dump_req(struct ipmb_req *req) void ipmb_invalid(struct ipmb_resp *resp) { #if 1 - static unsigned char cmd_invalid[] = {IPMB_CC_INVALID}; + static const unsigned char cmd_invalid[] PROGMEM = {IPMB_CC_INVALID}; ipmb_send(resp, cmd_invalid, sizeof(cmd_invalid)); #endif @@ -81,25 +82,25 @@ void ipmb_invalid(struct ipmb_resp *resp) void ipmb_cmd(struct ipmb_req *req) { struct ipmb_resp resp; - static unsigned char get_devid[] = + static const unsigned char get_devid[] PROGMEM = {IPMB_CC_NORMALLY, 0x42, 0x42, 0x01, 0x01, 0x51, 0xff /* Add. Dev. Supp */, 0x00, 0x00, 0x00, 0x00, 0x00 }; - static unsigned char get_wd_timer[] = + static const unsigned char get_wd_timer[] PROGMEM = {IPMB_CC_NORMALLY, 0x42, 0x00, 0x00, 0x04, 0xff, 0xff, 0xfe, 0xfe}; - static unsigned char cc_normal[] = + static const unsigned char cc_normal[] PROGMEM = {IPMB_CC_NORMALLY}; - static unsigned char sel_info[] = + static const unsigned char sel_info[] PROGMEM = {IPMB_CC_NORMALLY, 0x51, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00}; - static unsigned char sel_alloc_info[] = + static const unsigned char sel_alloc_info[] PROGMEM = {IPMB_CC_NORMALLY, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; - static unsigned char sel_entry[] = + static const unsigned char sel_entry[] PROGMEM = {IPMB_CC_ERROR}; - static unsigned char sel_timestamp[] = + static const unsigned char sel_timestamp[] PROGMEM = {IPMB_CC_NORMALLY, 0x00, 0x00, 0x00, 0x00}; - static unsigned char chassis_status[] = + static const unsigned char chassis_status[] PROGMEM = {IPMB_CC_NORMALLY, 0x60, 0x10, 0x00, 0x00}; - static unsigned char reserve_sdr[] = + static const unsigned char reserve_sdr[] PROGMEM = {IPMB_CC_NORMALLY, 0x00, 0x00}; - static unsigned char get_sdr[] = + static const unsigned char get_sdr[] PROGMEM = {IPMB_CC_NORMALLY, 0xff, 0xff}; resp.rqSA = req->rqSA;