40 lines
926 B
Go
40 lines
926 B
Go
package winpwn
|
|
|
|
import "encoding/binary"
|
|
|
|
// P16 packs a uint16 into a little-endian byte slice.
|
|
func P16(val uint16) []byte {
|
|
b := make([]byte, 2)
|
|
binary.LittleEndian.PutUint16(b, val)
|
|
return b
|
|
}
|
|
|
|
// P32 packs a uint32 into a little-endian byte slice.
|
|
func P32(val uint32) []byte {
|
|
b := make([]byte, 4)
|
|
binary.LittleEndian.PutUint32(b, val)
|
|
return b
|
|
}
|
|
|
|
// P64 packs a uint64 into a little-endian byte slice.
|
|
func P64(val uint64) []byte {
|
|
b := make([]byte, 8)
|
|
binary.LittleEndian.PutUint64(b, val)
|
|
return b
|
|
}
|
|
|
|
// U16 unpacks a little-endian uint16 from the first 2 bytes of b.
|
|
func U16(b []byte) uint16 {
|
|
return binary.LittleEndian.Uint16(b)
|
|
}
|
|
|
|
// U32 unpacks a little-endian uint32 from the first 4 bytes of b.
|
|
func U32(b []byte) uint32 {
|
|
return binary.LittleEndian.Uint32(b)
|
|
}
|
|
|
|
// U64 unpacks a little-endian uint64 from the first 8 bytes of b.
|
|
func U64(b []byte) uint64 {
|
|
return binary.LittleEndian.Uint64(b)
|
|
}
|