選択できるのは25トピックまでです。 トピックは、先頭が英数字で、英数字とダッシュ('-')を使用した35文字以内のものにしてください。

rotate.h 724B

123456789101112131415161718192021222324252627
  1. #ifndef _GPXE_ROTATE_H
  2. #define _GPXE_ROTATE_H
  3. /** @file
  4. *
  5. * Bit operations
  6. */
  7. #include <stdint.h>
  8. static inline uint32_t rol32 ( uint32_t data, unsigned int rotation ) {
  9. return ( ( data << rotation ) | ( data >> ( 32 - rotation ) ) );
  10. }
  11. static inline uint32_t ror32 ( uint32_t data, unsigned int rotation ) {
  12. return ( ( data >> rotation ) | ( data << ( 32 - rotation ) ) );
  13. }
  14. static inline uint64_t rol64 ( uint64_t data, unsigned int rotation ) {
  15. return ( ( data << rotation ) | ( data >> ( 64 - rotation ) ) );
  16. }
  17. static inline uint64_t ror64 ( uint64_t data, unsigned int rotation ) {
  18. return ( ( data >> rotation ) | ( data << ( 64 - rotation ) ) );
  19. }
  20. #endif /* _GPXE_ROTATE_H */