xiaoxiang781216 commented on code in PR #6427: URL: https://github.com/apache/incubator-nuttx/pull/6427#discussion_r896469823
########## drivers/wireless/ieee80211/bcm43xxx/bcmf_core.c: ########## @@ -328,24 +331,114 @@ int bcmf_upload_file(FAR struct bcmf_sdio_dev_s *sbus, uint32_t address, int bcmf_upload_nvram(FAR struct bcmf_sdio_dev_s *sbus) { - int ret; + FAR uint8_t *nvram_buf; uint32_t nvram_sz; uint32_t token; + int ret; + +#ifdef CONFIG_IEEE80211_BROADCOM_FWFILES + const char *nvfile = CONFIG_IEEE80211_BROADCOM_NVFILENAME; + unsigned char swap[32]; + struct file finfo; + struct stat sbuf; + FAR uint8_t *buf; + bool bskipline; + int i; + + nvram_buf = NULL; + nvram_sz = 0; Review Comment: merge into line 334-335 ########## drivers/wireless/ieee80211/bcm43xxx/bcmf_core.c: ########## @@ -328,24 +331,114 @@ int bcmf_upload_file(FAR struct bcmf_sdio_dev_s *sbus, uint32_t address, int bcmf_upload_nvram(FAR struct bcmf_sdio_dev_s *sbus) { - int ret; + FAR uint8_t *nvram_buf; uint32_t nvram_sz; uint32_t token; + int ret; + +#ifdef CONFIG_IEEE80211_BROADCOM_FWFILES + const char *nvfile = CONFIG_IEEE80211_BROADCOM_NVFILENAME; + unsigned char swap[32]; + struct file finfo; + struct stat sbuf; Review Comment: sbuf->stat ########## drivers/wireless/ieee80211/bcm43xxx/bcmf_core.c: ########## @@ -328,24 +331,114 @@ int bcmf_upload_file(FAR struct bcmf_sdio_dev_s *sbus, uint32_t address, int bcmf_upload_nvram(FAR struct bcmf_sdio_dev_s *sbus) { - int ret; + FAR uint8_t *nvram_buf; uint32_t nvram_sz; uint32_t token; + int ret; + +#ifdef CONFIG_IEEE80211_BROADCOM_FWFILES + const char *nvfile = CONFIG_IEEE80211_BROADCOM_NVFILENAME; + unsigned char swap[32]; + struct file finfo; + struct stat sbuf; + FAR uint8_t *buf; + bool bskipline; + int i; + + nvram_buf = NULL; + nvram_sz = 0; + + if (strlen(nvfile) <= 0) + { + goto out_ramload; + } + + ret = file_open(&finfo, nvfile, O_RDONLY); + if (ret < 0) + { + goto out_ramload; + } + + ret = file_fstat(&finfo, &sbuf); + if (ret < 0 || sbuf.st_size <= 0) + { + goto out_ramload_with_file; + } + + /* Round up the ram buffer size */ + + sbuf.st_size = (sbuf.st_size + 63) & (-64); + + nvram_buf = buf = (FAR uint8_t *)kmm_malloc(sbuf.st_size); + if (nvram_buf == NULL) + { + goto out_ramload_with_file; + } + + bskipline = false; + + /* Convert text pattern: + * 1. Remove the comment line (Prefix with '#') + * 2. Convert LF('\n') to NULL'\0' + */ + + while ((ret = file_read(&finfo, swap, sizeof(swap))) > 0) + { + for (i = 0; i < ret; i++) + { + if (swap[i] == '\n') + { + if (buf != nvram_buf && *(buf - 1) != '\0') + { + *buf++ = '\0'; + } + + bskipline = false; + } + else if (bskipline) Review Comment: remove ########## drivers/wireless/ieee80211/bcm43xxx/bcmf_core.c: ########## @@ -328,24 +331,114 @@ int bcmf_upload_file(FAR struct bcmf_sdio_dev_s *sbus, uint32_t address, int bcmf_upload_nvram(FAR struct bcmf_sdio_dev_s *sbus) { - int ret; + FAR uint8_t *nvram_buf; uint32_t nvram_sz; uint32_t token; + int ret; + +#ifdef CONFIG_IEEE80211_BROADCOM_FWFILES + const char *nvfile = CONFIG_IEEE80211_BROADCOM_NVFILENAME; + unsigned char swap[32]; + struct file finfo; Review Comment: finfo->file ########## drivers/wireless/ieee80211/bcm43xxx/bcmf_core.c: ########## @@ -328,24 +331,114 @@ int bcmf_upload_file(FAR struct bcmf_sdio_dev_s *sbus, uint32_t address, int bcmf_upload_nvram(FAR struct bcmf_sdio_dev_s *sbus) { - int ret; + FAR uint8_t *nvram_buf; uint32_t nvram_sz; uint32_t token; + int ret; + +#ifdef CONFIG_IEEE80211_BROADCOM_FWFILES + const char *nvfile = CONFIG_IEEE80211_BROADCOM_NVFILENAME; + unsigned char swap[32]; + struct file finfo; + struct stat sbuf; + FAR uint8_t *buf; + bool bskipline; + int i; + + nvram_buf = NULL; + nvram_sz = 0; + + if (strlen(nvfile) <= 0) + { + goto out_ramload; + } + + ret = file_open(&finfo, nvfile, O_RDONLY); + if (ret < 0) + { + goto out_ramload; + } + + ret = file_fstat(&finfo, &sbuf); + if (ret < 0 || sbuf.st_size <= 0) + { + goto out_ramload_with_file; + } + + /* Round up the ram buffer size */ + + sbuf.st_size = (sbuf.st_size + 63) & (-64); + + nvram_buf = buf = (FAR uint8_t *)kmm_malloc(sbuf.st_size); + if (nvram_buf == NULL) + { + goto out_ramload_with_file; + } + + bskipline = false; Review Comment: merge into line 345 ########## drivers/wireless/ieee80211/bcm43xxx/bcmf_core.c: ########## @@ -328,24 +331,114 @@ int bcmf_upload_file(FAR struct bcmf_sdio_dev_s *sbus, uint32_t address, int bcmf_upload_nvram(FAR struct bcmf_sdio_dev_s *sbus) { - int ret; + FAR uint8_t *nvram_buf; uint32_t nvram_sz; uint32_t token; + int ret; + +#ifdef CONFIG_IEEE80211_BROADCOM_FWFILES + const char *nvfile = CONFIG_IEEE80211_BROADCOM_NVFILENAME; + unsigned char swap[32]; + struct file finfo; + struct stat sbuf; + FAR uint8_t *buf; + bool bskipline; + int i; + + nvram_buf = NULL; + nvram_sz = 0; + + if (strlen(nvfile) <= 0) + { + goto out_ramload; + } + + ret = file_open(&finfo, nvfile, O_RDONLY); + if (ret < 0) + { + goto out_ramload; + } + + ret = file_fstat(&finfo, &sbuf); + if (ret < 0 || sbuf.st_size <= 0) + { + goto out_ramload_with_file; + } + + /* Round up the ram buffer size */ + + sbuf.st_size = (sbuf.st_size + 63) & (-64); + + nvram_buf = buf = (FAR uint8_t *)kmm_malloc(sbuf.st_size); + if (nvram_buf == NULL) + { + goto out_ramload_with_file; + } + + bskipline = false; + + /* Convert text pattern: + * 1. Remove the comment line (Prefix with '#') + * 2. Convert LF('\n') to NULL'\0' + */ + + while ((ret = file_read(&finfo, swap, sizeof(swap))) > 0) + { + for (i = 0; i < ret; i++) + { + if (swap[i] == '\n') + { + if (buf != nvram_buf && *(buf - 1) != '\0') + { + *buf++ = '\0'; + } + + bskipline = false; + } + else if (bskipline) + { + } + else if (swap[i] == '#') + { + bskipline = true; + } + else Review Comment: else if (!bskipline) ########## drivers/wireless/ieee80211/bcm43xxx/bcmf_core.c: ########## @@ -328,24 +331,114 @@ int bcmf_upload_file(FAR struct bcmf_sdio_dev_s *sbus, uint32_t address, int bcmf_upload_nvram(FAR struct bcmf_sdio_dev_s *sbus) { - int ret; + FAR uint8_t *nvram_buf; uint32_t nvram_sz; uint32_t token; + int ret; + +#ifdef CONFIG_IEEE80211_BROADCOM_FWFILES + const char *nvfile = CONFIG_IEEE80211_BROADCOM_NVFILENAME; + unsigned char swap[32]; Review Comment: swap[32] to tmp[256] ########## drivers/wireless/ieee80211/bcm43xxx/bcmf_core.c: ########## @@ -328,24 +331,114 @@ int bcmf_upload_file(FAR struct bcmf_sdio_dev_s *sbus, uint32_t address, int bcmf_upload_nvram(FAR struct bcmf_sdio_dev_s *sbus) { - int ret; + FAR uint8_t *nvram_buf; uint32_t nvram_sz; uint32_t token; + int ret; + +#ifdef CONFIG_IEEE80211_BROADCOM_FWFILES + const char *nvfile = CONFIG_IEEE80211_BROADCOM_NVFILENAME; + unsigned char swap[32]; + struct file finfo; + struct stat sbuf; + FAR uint8_t *buf; + bool bskipline; + int i; + + nvram_buf = NULL; + nvram_sz = 0; + + if (strlen(nvfile) <= 0) + { + goto out_ramload; + } + + ret = file_open(&finfo, nvfile, O_RDONLY); + if (ret < 0) + { + goto out_ramload; + } + + ret = file_fstat(&finfo, &sbuf); + if (ret < 0 || sbuf.st_size <= 0) + { + goto out_ramload_with_file; + } + + /* Round up the ram buffer size */ + + sbuf.st_size = (sbuf.st_size + 63) & (-64); + + nvram_buf = buf = (FAR uint8_t *)kmm_malloc(sbuf.st_size); + if (nvram_buf == NULL) + { + goto out_ramload_with_file; + } + + bskipline = false; + + /* Convert text pattern: + * 1. Remove the comment line (Prefix with '#') + * 2. Convert LF('\n') to NULL'\0' + */ + + while ((ret = file_read(&finfo, swap, sizeof(swap))) > 0) + { + for (i = 0; i < ret; i++) + { + if (swap[i] == '\n') + { + if (buf != nvram_buf && *(buf - 1) != '\0') + { + *buf++ = '\0'; + } + + bskipline = false; + } + else if (bskipline) + { + } + else if (swap[i] == '#') + { + bskipline = true; + } + else + { + *buf++ = swap[i]; + } + } + } + + nvram_sz = buf - nvram_buf; + +out_ramload_with_file: + file_close(&finfo); +out_ramload: + if (nvram_buf == NULL || nvram_sz == 0) Review Comment: remove nvram_buf == NULL ########## drivers/wireless/ieee80211/bcm43xxx/bcmf_core.c: ########## @@ -328,24 +331,114 @@ int bcmf_upload_file(FAR struct bcmf_sdio_dev_s *sbus, uint32_t address, int bcmf_upload_nvram(FAR struct bcmf_sdio_dev_s *sbus) { - int ret; + FAR uint8_t *nvram_buf; uint32_t nvram_sz; uint32_t token; + int ret; + +#ifdef CONFIG_IEEE80211_BROADCOM_FWFILES + const char *nvfile = CONFIG_IEEE80211_BROADCOM_NVFILENAME; + unsigned char swap[32]; + struct file finfo; + struct stat sbuf; + FAR uint8_t *buf; + bool bskipline; + int i; + + nvram_buf = NULL; + nvram_sz = 0; + + if (strlen(nvfile) <= 0) + { + goto out_ramload; + } + + ret = file_open(&finfo, nvfile, O_RDONLY); + if (ret < 0) + { + goto out_ramload; + } + + ret = file_fstat(&finfo, &sbuf); + if (ret < 0 || sbuf.st_size <= 0) + { + goto out_ramload_with_file; + } + + /* Round up the ram buffer size */ + + sbuf.st_size = (sbuf.st_size + 63) & (-64); + + nvram_buf = buf = (FAR uint8_t *)kmm_malloc(sbuf.st_size); + if (nvram_buf == NULL) + { + goto out_ramload_with_file; + } + + bskipline = false; + + /* Convert text pattern: + * 1. Remove the comment line (Prefix with '#') + * 2. Convert LF('\n') to NULL'\0' + */ + + while ((ret = file_read(&finfo, swap, sizeof(swap))) > 0) + { + for (i = 0; i < ret; i++) + { + if (swap[i] == '\n') + { + if (buf != nvram_buf && *(buf - 1) != '\0') + { + *buf++ = '\0'; + } + + bskipline = false; + } + else if (bskipline) + { + } + else if (swap[i] == '#') + { + bskipline = true; + } + else + { + *buf++ = swap[i]; + } + } + } + + nvram_sz = buf - nvram_buf; + +out_ramload_with_file: + file_close(&finfo); +out_ramload: + if (nvram_buf == NULL || nvram_sz == 0) +#endif + { + nvram_buf = sbus->chip->nvram_image; Review Comment: free nvram_buf before the assignment ########## drivers/wireless/ieee80211/bcm43xxx/bcmf_core.c: ########## @@ -328,24 +331,114 @@ int bcmf_upload_file(FAR struct bcmf_sdio_dev_s *sbus, uint32_t address, int bcmf_upload_nvram(FAR struct bcmf_sdio_dev_s *sbus) { - int ret; + FAR uint8_t *nvram_buf; uint32_t nvram_sz; uint32_t token; + int ret; + +#ifdef CONFIG_IEEE80211_BROADCOM_FWFILES + const char *nvfile = CONFIG_IEEE80211_BROADCOM_NVFILENAME; + unsigned char swap[32]; + struct file finfo; + struct stat sbuf; + FAR uint8_t *buf; + bool bskipline; + int i; + + nvram_buf = NULL; + nvram_sz = 0; + + if (strlen(nvfile) <= 0) + { + goto out_ramload; + } + + ret = file_open(&finfo, nvfile, O_RDONLY); + if (ret < 0) + { + goto out_ramload; + } + + ret = file_fstat(&finfo, &sbuf); + if (ret < 0 || sbuf.st_size <= 0) + { + goto out_ramload_with_file; + } + + /* Round up the ram buffer size */ + + sbuf.st_size = (sbuf.st_size + 63) & (-64); Review Comment: why change sbuf.st_size ########## drivers/wireless/ieee80211/bcm43xxx/bcmf_core.c: ########## @@ -328,24 +331,114 @@ int bcmf_upload_file(FAR struct bcmf_sdio_dev_s *sbus, uint32_t address, int bcmf_upload_nvram(FAR struct bcmf_sdio_dev_s *sbus) { - int ret; + FAR uint8_t *nvram_buf; uint32_t nvram_sz; uint32_t token; + int ret; + +#ifdef CONFIG_IEEE80211_BROADCOM_FWFILES + const char *nvfile = CONFIG_IEEE80211_BROADCOM_NVFILENAME; + unsigned char swap[32]; + struct file finfo; + struct stat sbuf; + FAR uint8_t *buf; + bool bskipline; Review Comment: skipline -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: commits-unsubscr...@nuttx.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org