]>
cvs.zerfleddert.de Git - proxmark3-svn/blob - armsrc/util.h
7b3d0849e1d9eb8fb47e383e29b356b2c681c1cb
   1 //----------------------------------------------------------------------------- 
   2 // Jonathan Westhues, Aug 2005 
   4 // This code is licensed to you under the terms of the GNU GPL, version 2 or, 
   5 // at your option, any later version. See the LICENSE.txt file for the text of 
   7 //----------------------------------------------------------------------------- 
   8 // Utility functions used in many places, not specific to any piece of code. 
   9 //----------------------------------------------------------------------------- 
  18 #define BYTEx(x, n) (((x) >> (n * 8)) & 0xff ) 
  26 #define BUTTON_NO_CLICK       0 
  27 #define BUTTON_SINGLE_CLICK  -1 
  28 #define BUTTON_DOUBLE_CLICK  -2 
  29 #define BUTTON_ERROR        -99 
  31 #define REV8(x)  ((((x)>>7)&1)|((((x)>>6)&1)<<1)|((((x)>>5)&1)<<2)|((((x)>>4)&1)<<3)|((((x)>>3)&1)<<4)|((((x)>>2)&1)<<5)|((((x)>>1)&1)<<6)|(((x)&1)<<7)) 
  32 #define REV16(x) (REV8(x)  | (REV8 (x >> 8) << 8)) 
  33 #define REV32(x) (REV16(x) | (REV16(x >> 16) << 16)) 
  34 #define REV64(x) (REV32(x) | (REV32(x >> 32) << 32)) 
  36 void print_result(char *name
, uint8_t *buf
, size_t len
); 
  37 size_t nbytes(size_t nbits
); 
  38 uint32_t SwapBits(uint32_t value
, int nrbits
); 
  39 void num_to_bytes(uint64_t n
, size_t len
, uint8_t* dest
); 
  40 uint64_t bytes_to_num(uint8_t* src
, size_t len
); 
  41 void rol(uint8_t *data
, const size_t len
); 
  42 void lsl (uint8_t *data
, size_t len
); 
  44 void LED(int led
, int ms
); 
  48 int BUTTON_CLICKED(int ms
); 
  49 int BUTTON_HELD(int ms
); 
  50 void FormatVersionInformation(char *dst
, int len
, const char *prefix
, void *version_information
); 
  54 # define GET_TICKS GetTicks() 
  57 void SpinDelay(int ms
); 
  58 void SpinDelayUs(int us
); 
  60 void StartTickCount(); 
  61 uint32_t RAMFUNC 
GetTickCount(); 
  64 uint32_t RAMFUNC 
GetCountUS(); 
  65 uint32_t RAMFUNC 
GetDeltaCountUS(); 
  67 void StartCountSspClk(); 
  68 void ResetSspClk(void); 
  69 uint32_t RAMFUNC 
GetCountSspClk(); 
  71 extern void StartTicks(void); 
  72 extern uint32_t GetTicks(void); 
  73 extern void WaitTicks(uint32_t ticks
); 
  74 extern void WaitUS(uint16_t us
); 
  75 extern void WaitMS(uint16_t ms
); 
  76 extern void ResetTicks(); 
  77 extern void ResetTimer(AT91PS_TC timer
); 
  78 extern void StopTicks(void); 
  79 // end iceman's ticks.h