diff options
Diffstat (limited to 'src/crypto/cpu-arm-linux.c')
-rw-r--r-- | src/crypto/cpu-arm-linux.c | 80 |
1 files changed, 40 insertions, 40 deletions
diff --git a/src/crypto/cpu-arm-linux.c b/src/crypto/cpu-arm-linux.c index 95bb5ee3..a5f1f8ac 100644 --- a/src/crypto/cpu-arm-linux.c +++ b/src/crypto/cpu-arm-linux.c @@ -34,15 +34,15 @@ #define HWCAP_NEON (1 << 12) -/* See /usr/include/asm/hwcap.h on an ARM installation for the source of - * these values. */ +// See /usr/include/asm/hwcap.h on an ARM installation for the source of +// these values. #define HWCAP2_AES (1 << 0) #define HWCAP2_PMULL (1 << 1) #define HWCAP2_SHA1 (1 << 2) #define HWCAP2_SHA2 (1 << 3) -/* |getauxval| is not available on Android until API level 20. Link it as a weak - * symbol and use other methods as fallback. */ +// |getauxval| is not available on Android until API level 20. Link it as a weak +// symbol and use other methods as fallback. unsigned long getauxval(unsigned long type) __attribute__((weak)); static int open_eintr(const char *path, int flags) { @@ -61,8 +61,8 @@ static ssize_t read_eintr(int fd, void *out, size_t len) { return ret; } -/* read_full reads exactly |len| bytes from |fd| to |out|. On error or end of - * file, it returns zero. */ +// read_full reads exactly |len| bytes from |fd| to |out|. On error or end of +// file, it returns zero. static int read_full(int fd, void *out, size_t len) { char *outp = out; while (len > 0) { @@ -76,9 +76,9 @@ static int read_full(int fd, void *out, size_t len) { return 1; } -/* read_file opens |path| and reads until end-of-file. On success, it returns - * one and sets |*out_ptr| and |*out_len| to a newly-allocated buffer with the - * contents. Otherwise, it returns zero. */ +// read_file opens |path| and reads until end-of-file. On success, it returns +// one and sets |*out_ptr| and |*out_len| to a newly-allocated buffer with the +// contents. Otherwise, it returns zero. static int read_file(char **out_ptr, size_t *out_len, const char *path) { int fd = open_eintr(path, O_RDONLY); if (fd < 0) { @@ -128,7 +128,7 @@ err: return ret; } -/* getauxval_proc behaves like |getauxval| but reads from /proc/self/auxv. */ +// getauxval_proc behaves like |getauxval| but reads from /proc/self/auxv. static unsigned long getauxval_proc(unsigned long type) { int fd = open_eintr("/proc/self/auxv", O_RDONLY); if (fd < 0) { @@ -164,16 +164,16 @@ static int STRING_PIECE_equals(const STRING_PIECE *a, const char *b) { return a->len == b_len && OPENSSL_memcmp(a->data, b, b_len) == 0; } -/* STRING_PIECE_split finds the first occurence of |sep| in |in| and, if found, - * sets |*out_left| and |*out_right| to |in| split before and after it. It - * returns one if |sep| was found and zero otherwise. */ +// STRING_PIECE_split finds the first occurence of |sep| in |in| and, if found, +// sets |*out_left| and |*out_right| to |in| split before and after it. It +// returns one if |sep| was found and zero otherwise. static int STRING_PIECE_split(STRING_PIECE *out_left, STRING_PIECE *out_right, const STRING_PIECE *in, char sep) { const char *p = OPENSSL_memchr(in->data, sep, in->len); if (p == NULL) { return 0; } - /* |out_left| or |out_right| may alias |in|, so make a copy. */ + // |out_left| or |out_right| may alias |in|, so make a copy. STRING_PIECE in_copy = *in; out_left->data = in_copy.data; out_left->len = p - in_copy.data; @@ -182,7 +182,7 @@ static int STRING_PIECE_split(STRING_PIECE *out_left, STRING_PIECE *out_right, return 1; } -/* STRING_PIECE_trim removes leading and trailing whitespace from |s|. */ +// STRING_PIECE_trim removes leading and trailing whitespace from |s|. static void STRING_PIECE_trim(STRING_PIECE *s) { while (s->len != 0 && (s->data[0] == ' ' || s->data[0] == '\t')) { s->data++; @@ -194,12 +194,12 @@ static void STRING_PIECE_trim(STRING_PIECE *s) { } } -/* extract_cpuinfo_field extracts a /proc/cpuinfo field named |field| from - * |in|. If found, it sets |*out| to the value and returns one. Otherwise, it - * returns zero. */ +// extract_cpuinfo_field extracts a /proc/cpuinfo field named |field| from +// |in|. If found, it sets |*out| to the value and returns one. Otherwise, it +// returns zero. static int extract_cpuinfo_field(STRING_PIECE *out, const STRING_PIECE *in, const char *field) { - /* Process |in| one line at a time. */ + // Process |in| one line at a time. STRING_PIECE remaining = *in, line; while (STRING_PIECE_split(&line, &remaining, &remaining, '\n')) { STRING_PIECE key, value; @@ -224,8 +224,8 @@ static int cpuinfo_field_equals(const STRING_PIECE *cpuinfo, const char *field, STRING_PIECE_equals(&extracted, value); } -/* has_list_item treats |list| as a space-separated list of items and returns - * one if |item| is contained in |list| and zero otherwise. */ +// has_list_item treats |list| as a space-separated list of items and returns +// one if |item| is contained in |list| and zero otherwise. static int has_list_item(const STRING_PIECE *list, const char *item) { STRING_PIECE remaining = *list, feature; while (STRING_PIECE_split(&feature, &remaining, &remaining, ' ')) { @@ -238,11 +238,11 @@ static int has_list_item(const STRING_PIECE *list, const char *item) { static unsigned long get_hwcap_cpuinfo(const STRING_PIECE *cpuinfo) { if (cpuinfo_field_equals(cpuinfo, "CPU architecture", "8")) { - /* This is a 32-bit ARM binary running on a 64-bit kernel. NEON is always - * available on ARMv8. Linux omits required features, so reading the - * "Features" line does not work. (For simplicity, use strict equality. We - * assume everything running on future ARM architectures will have a - * working |getauxval|.) */ + // This is a 32-bit ARM binary running on a 64-bit kernel. NEON is always + // available on ARMv8. Linux omits required features, so reading the + // "Features" line does not work. (For simplicity, use strict equality. We + // assume everything running on future ARM architectures will have a + // working |getauxval|.) return HWCAP_NEON; } @@ -276,8 +276,8 @@ static unsigned long get_hwcap2_cpuinfo(const STRING_PIECE *cpuinfo) { return ret; } -/* has_broken_neon returns one if |in| matches a CPU known to have a broken - * NEON unit. See https://crbug.com/341598. */ +// has_broken_neon returns one if |in| matches a CPU known to have a broken +// NEON unit. See https://crbug.com/341598. static int has_broken_neon(const STRING_PIECE *cpuinfo) { return cpuinfo_field_equals(cpuinfo, "CPU implementer", "0x51") && cpuinfo_field_equals(cpuinfo, "CPU architecture", "7") && @@ -300,13 +300,13 @@ void OPENSSL_cpuid_setup(void) { cpuinfo.data = cpuinfo_data; cpuinfo.len = cpuinfo_len; - /* |getauxval| is not available on Android until API level 20. If it is - * unavailable, read from /proc/self/auxv as a fallback. This is unreadable - * on some versions of Android, so further fall back to /proc/cpuinfo. - * - * See - * https://android.googlesource.com/platform/ndk/+/882ac8f3392858991a0e1af33b4b7387ec856bd2 - * and b/13679666 (Google-internal) for details. */ + // |getauxval| is not available on Android until API level 20. If it is + // unavailable, read from /proc/self/auxv as a fallback. This is unreadable + // on some versions of Android, so further fall back to /proc/cpuinfo. + // + // See + // https://android.googlesource.com/platform/ndk/+/882ac8f3392858991a0e1af33b4b7387ec856bd2 + // and b/13679666 (Google-internal) for details. unsigned long hwcap = 0; if (getauxval != NULL) { hwcap = getauxval(AT_HWCAP); @@ -318,18 +318,18 @@ void OPENSSL_cpuid_setup(void) { hwcap = get_hwcap_cpuinfo(&cpuinfo); } - /* Clear NEON support if known broken. */ + // Clear NEON support if known broken. g_has_broken_neon = has_broken_neon(&cpuinfo); if (g_has_broken_neon) { hwcap &= ~HWCAP_NEON; } - /* Matching OpenSSL, only report other features if NEON is present. */ + // Matching OpenSSL, only report other features if NEON is present. if (hwcap & HWCAP_NEON) { OPENSSL_armcap_P |= ARMV7_NEON; - /* Some ARMv8 Android devices don't expose AT_HWCAP2. Fall back to - * /proc/cpuinfo. See https://crbug.com/596156. */ + // Some ARMv8 Android devices don't expose AT_HWCAP2. Fall back to + // /proc/cpuinfo. See https://crbug.com/596156. unsigned long hwcap2 = 0; if (getauxval != NULL) { hwcap2 = getauxval(AT_HWCAP2); @@ -357,4 +357,4 @@ void OPENSSL_cpuid_setup(void) { int CRYPTO_has_broken_NEON(void) { return g_has_broken_neon; } -#endif /* OPENSSL_ARM && !OPENSSL_STATIC_ARMCAP */ +#endif // OPENSSL_ARM && !OPENSSL_STATIC_ARMCAP |