Remove firmware-IDs
[b43-tools.git] / fwcutter / fwcutter.c
index 0d828067e26cecb0e63a90d6b3bbb2bdda2fee77..20337589192761ae17b351f9bbd4d488d242f85e 100644 (file)
@@ -2,7 +2,7 @@
  * firmware cutter for broadcom 43xx wireless driver files
  * 
  * Copyright (c) 2005 Martin Langer <martin-langer@gmx.de>,
- *               2005-2007 Michael Buesch <mb@bu3sch.de>
+ *               2005-2007 Michael Buesch <m@bues.ch>
  *              2005 Alex Beregszaszi
  *              2007 Johannes Berg <johannes@sipsolutions.net>
  *
@@ -38,7 +38,7 @@
 #include <sys/stat.h>
 #include <sys/types.h>
 
-#ifdef __DragonFly__
+#if defined(__DragonFly__) || defined(__FreeBSD__)
 #include <sys/endian.h>
 #else
 #include <byteswap.h>
@@ -48,7 +48,7 @@
 #include "fwcutter.h"
 #include "fwcutter_list.h"
 
-#ifdef __DragonFly__
+#if defined(__DragonFly__) || defined(__FreeBSD__)
 #define V3_FW_DIRNAME  "v3"
 #define V4_FW_DIRNAME  "v4"
 #else
@@ -65,18 +65,6 @@ static int file_ok(const struct file *f)
        return !(f->flags & FW_FLAG_UNSUPPORTED) || cmdargs.unsupported;
 }
 
-/* Convert a CPU-endian 16bit integer to Big-Endian */
-static be16_t to_be16(uint16_t v)
-{
-       uint8_t ret[2];
-
-       ret[0] = (v & 0xFF00) >> 8;
-       ret[1] = (v & 0x00FF);
-
-       return *((be16_t *)ret);
-}
-
-#if 0
 /* Convert a Big-Endian 16bit integer to CPU-endian */
 static uint16_t from_be16(be16_t v)
 {
@@ -87,19 +75,11 @@ static uint16_t from_be16(be16_t v)
 
        return ret;
 }
-#endif
 
-/* Convert a CPU-endian 32bit integer to Big-Endian */
-static be32_t to_be32(uint32_t v)
+/* Convert a CPU-endian 16bit integer to Big-Endian */
+static be16_t to_be16(uint16_t v)
 {
-       uint8_t ret[4];
-
-       ret[0] = (v & 0xFF000000) >> 24;
-       ret[1] = (v & 0x00FF0000) >> 16;
-       ret[2] = (v & 0x0000FF00) >> 8;
-       ret[3] = (v & 0x000000FF);
-
-       return *((be32_t *)ret);
+       return (be16_t)from_be16((be16_t)v);
 }
 
 /* Convert a Big-Endian 32bit integer to CPU-endian */
@@ -115,6 +95,12 @@ static uint32_t from_be32(be32_t v)
        return ret;
 }
 
+/* Convert a CPU-endian 32bit integer to Big-Endian */
+static be32_t to_be32(uint32_t v)
+{
+       return (be32_t)from_be32((be32_t)v);
+}
+
 /* tiny disassembler */
 static void print_ucode_version(struct insn *insn)
 {
@@ -439,8 +425,6 @@ static void print_file(const struct file *file)
        printf("%s\t", file->ucode_version);
        if (strlen(file->ucode_version) < 8) printf("\t");
 
-       printf("%s\t", file->id);
-
        printf("%s\n", file->md5);
 }
 
@@ -451,15 +435,10 @@ static void print_supported_files(void)
        print_banner();
        printf("\nExtracting firmware is possible "
               "from these binary driver files.\n"
-              "The <ID> column shows the unique identifier string "
-              "for your firmware.\nYou must select the firmware with the "
-              "same ID as printed by the kernel driver on modprobe.\n"
-              "Note that only recent drivers print such a message on modprobe.\n"
               "Please read http://linuxwireless.org/en/users/Drivers/b43#devicefirmware\n\n");
        printf("<driver>\t"
               "<filename>\t\t"
               "<microcode>\t"
-              "<ID>\t"
               "<MD5 checksum>\n\n");
        /* print for legacy driver first */
        for (i = 0; i < ARRAY_SIZE(files); i++)
@@ -495,7 +474,6 @@ static const struct file *find_file(FILE *fd)
                if (file_ok(&files[i]) &&
                    strcasecmp(md5sig, files[i].md5) == 0) {
                        printf("This file is recognised as:\n");
-                       printf("  ID         :  %s\n", files[i].id);
                        printf("  filename   :  %s\n", files[i].name);
                        printf("  version    :  %s\n", files[i].ucode_version);
                        printf("  MD5        :  %s\n", files[i].md5);