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.
 
 
 

26 lines
705 B

  1. // Copyright 2017 The Go Authors. All rights reserved.
  2. // Use of this source code is governed by a BSD-style
  3. // license that can be found in the LICENSE file.
  4. package socket
  5. import (
  6. "syscall"
  7. "unsafe"
  8. )
  9. const (
  10. sysRECVMMSG = 0x1db
  11. sysSENDMMSG = 0x1dc
  12. )
  13. func recvmmsg(s uintptr, hs []mmsghdr, flags int) (int, error) {
  14. n, _, errno := syscall.Syscall6(sysRECVMMSG, s, uintptr(unsafe.Pointer(&hs[0])), uintptr(len(hs)), uintptr(flags), 0, 0)
  15. return int(n), errnoErr(errno)
  16. }
  17. func sendmmsg(s uintptr, hs []mmsghdr, flags int) (int, error) {
  18. n, _, errno := syscall.Syscall6(sysSENDMMSG, s, uintptr(unsafe.Pointer(&hs[0])), uintptr(len(hs)), uintptr(flags), 0, 0)
  19. return int(n), errnoErr(errno)
  20. }