util.c 930 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. #include "stdinc.h"
  2. #include "vac.h"
  3. #include "dat.h"
  4. #include "fns.h"
  5. int
  6. vtGetUint16(uchar *p)
  7. {
  8. return (p[0]<<8)|p[1];
  9. }
  10. ulong
  11. vtGetUint32(uchar *p)
  12. {
  13. return (p[0]<<24)|(p[1]<<16)|(p[2]<<8)|p[3];
  14. }
  15. uvlong
  16. vtGetUint48(uchar *p)
  17. {
  18. return ((uvlong)p[0]<<40)|((uvlong)p[1]<<32)|
  19. (p[2]<<24)|(p[3]<<16)|(p[4]<<8)|p[5];
  20. }
  21. uvlong
  22. vtGetUint64(uchar *p)
  23. {
  24. return ((uvlong)p[0]<<56)|((uvlong)p[1]<<48)|((uvlong)p[2]<<40)|
  25. ((uvlong)p[3]<<32)|(p[4]<<24)|(p[5]<<16)|(p[6]<<8)|p[7];
  26. }
  27. void
  28. vtPutUint16(uchar *p, int x)
  29. {
  30. p[0] = x>>8;
  31. p[1] = x;
  32. }
  33. void
  34. vtPutUint32(uchar *p, ulong x)
  35. {
  36. p[0] = x>>24;
  37. p[1] = x>>16;
  38. p[2] = x>>8;
  39. p[3] = x;
  40. }
  41. void
  42. vtPutUint48(uchar *p, uvlong x)
  43. {
  44. p[0] = x>>40;
  45. p[1] = x>>32;
  46. p[2] = x>>24;
  47. p[3] = x>>16;
  48. p[4] = x>>8;
  49. p[5] = x;
  50. }
  51. void
  52. vtPutUint64(uchar *p, uvlong x)
  53. {
  54. p[0] = x>>56;
  55. p[1] = x>>48;
  56. p[2] = x>>40;
  57. p[3] = x>>32;
  58. p[4] = x>>24;
  59. p[5] = x>>16;
  60. p[6] = x>>8;
  61. p[7] = x;
  62. }