mirror of
https://github.com/RfidResearchGroup/proxmark3.git
synced 2025-08-15 19:17:26 -07:00
support function
This commit is contained in:
parent
47262433e8
commit
ac809c4a9f
2 changed files with 11 additions and 0 deletions
|
@ -144,6 +144,16 @@ uint32_t reflect32(uint32_t b) {
|
|||
return v;
|
||||
}
|
||||
|
||||
uint64_t reflect64(uint64_t b) {
|
||||
// https://graphics.stanford.edu/~seander/bithacks.html#BitReverseTable
|
||||
uint64_t v = b; // 32-bit word to reverse bit order
|
||||
// swap 2-byte long pairs
|
||||
uint64_t v1 = reflect32(v >> 32);
|
||||
uint64_t v2 = reflect32(v);
|
||||
v = (v1 << 32) | (v2 & 0xFFFFFFFF);
|
||||
return v;
|
||||
}
|
||||
|
||||
void num_to_bytes(uint64_t n, size_t len, uint8_t *dest) {
|
||||
while (len--) {
|
||||
dest[len] = (uint8_t) n;
|
||||
|
|
|
@ -74,6 +74,7 @@ uint32_t reflect(uint32_t v, int b); // used in crc.c ...
|
|||
uint8_t reflect8(uint8_t b); // dedicated 8bit reversal
|
||||
uint16_t reflect16(uint16_t b); // dedicated 16bit reversal
|
||||
uint32_t reflect32(uint32_t b); // dedicated 32bit reversal
|
||||
uint64_t reflect64(uint64_t b); // dedicated 64bit reversal
|
||||
|
||||
void num_to_bytes(uint64_t n, size_t len, uint8_t *dest);
|
||||
uint64_t bytes_to_num(const uint8_t *src, size_t len);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue