openwrt/tools/kernel2minor/patches/110-fix_endian_conv.patch

34 lines
1.6 KiB
Diff
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

--- a/k2m_biops.h
+++ b/k2m_biops.h
@@ -10,7 +10,9 @@
*/
//нужна ли конвертация. устанавливавется автоматически в 1 для НЕ big_endian систем
-static int endian_need_conv = __BYTE_ORDER__ != __ORDER_BIG_ENDIAN__;
+static int big_endian;
+
+#define endian_need_conv (!!big_endian ^ (__BYTE_ORDER__ == __ORDER_BIG_ENDIAN__))
/* конвертор из одного байтового порядка в обратный
x обязательно должна быть переменной но не выражением !
--- a/kernel2minor.c
+++ b/kernel2minor.c
@@ -76,7 +76,7 @@ void print_help(void){
char *usage[] =
{ "-k", "Path to kernel file", kernel_file,
"-r", "Path to result file", res_file,
- "-e", "Enable endian convert", endian_need_conv ? "Yes" : "No",
+ "-e", "Enable endian convert to big-endian", big_endian ? "Yes" : "No",
"-c", "Use ECC", use_ecc ? "Yes" : "No",
"-s", "FLASH Unit(Chunk) size", chunk_size_str,
"-i", "Add image info block", add_image_info_block ? info_block_size_str : "No",
@@ -595,7 +595,7 @@ int main(int argc, char *argv[]){
case 'k': snprintf(kernel_file, sizeof(kernel_file) - 1, "%s", optarg); break;
case 'r': snprintf(res_file, sizeof(res_file) - 1, "%s", optarg); break;
case 'c': use_ecc = 1; break;
- case 'e': endian_need_conv = 1; break;
+ case 'e': big_endian = 1; break;
case 's': chunk_size = atoi(optarg); break;
case 'i': add_image_info_block = 1; align_size = atoi(optarg); break;
case 'p': strncpy(platform_name, optarg, sizeof(platform_name)); break;