You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

dec_util.go 1011B

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. /*
  2. * XZ decompressor utility functions
  3. *
  4. * Author: Michael Cross <https://github.com/xi2>
  5. *
  6. * This file has been put into the public domain.
  7. * You can do whatever you want with this file.
  8. */
  9. package xz
  10. func getLE32(buf []byte) uint32 {
  11. return uint32(buf[0]) |
  12. uint32(buf[1])<<8 |
  13. uint32(buf[2])<<16 |
  14. uint32(buf[3])<<24
  15. }
  16. func getBE32(buf []byte) uint32 {
  17. return uint32(buf[0])<<24 |
  18. uint32(buf[1])<<16 |
  19. uint32(buf[2])<<8 |
  20. uint32(buf[3])
  21. }
  22. func putLE32(val uint32, buf []byte) {
  23. buf[0] = byte(val)
  24. buf[1] = byte(val >> 8)
  25. buf[2] = byte(val >> 16)
  26. buf[3] = byte(val >> 24)
  27. return
  28. }
  29. func putBE32(val uint32, buf []byte) {
  30. buf[0] = byte(val >> 24)
  31. buf[1] = byte(val >> 16)
  32. buf[2] = byte(val >> 8)
  33. buf[3] = byte(val)
  34. return
  35. }
  36. func putLE64(val uint64, buf []byte) {
  37. buf[0] = byte(val)
  38. buf[1] = byte(val >> 8)
  39. buf[2] = byte(val >> 16)
  40. buf[3] = byte(val >> 24)
  41. buf[4] = byte(val >> 32)
  42. buf[5] = byte(val >> 40)
  43. buf[6] = byte(val >> 48)
  44. buf[7] = byte(val >> 56)
  45. return
  46. }