socket_types.h 839 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. // SPDX-FileCopyrightText: Copyright 2022 yuzu Emulator Project
  2. // SPDX-License-Identifier: GPL-2.0-or-later
  3. #pragma once
  4. #include "common/common_types.h"
  5. namespace Network {
  6. /// Address families
  7. enum class Domain : u8 {
  8. INET, ///< Address family for IPv4
  9. };
  10. /// Socket types
  11. enum class Type {
  12. STREAM,
  13. DGRAM,
  14. RAW,
  15. SEQPACKET,
  16. };
  17. /// Protocol values for sockets
  18. enum class Protocol : u8 {
  19. ICMP,
  20. TCP,
  21. UDP,
  22. };
  23. /// Shutdown mode
  24. enum class ShutdownHow {
  25. RD,
  26. WR,
  27. RDWR,
  28. };
  29. /// Array of IPv4 address
  30. using IPv4Address = std::array<u8, 4>;
  31. /// Cross-platform sockaddr structure
  32. struct SockAddrIn {
  33. Domain family;
  34. IPv4Address ip;
  35. u16 portno;
  36. };
  37. constexpr u32 FLAG_MSG_PEEK = 0x2;
  38. constexpr u32 FLAG_MSG_DONTWAIT = 0x80;
  39. constexpr u32 FLAG_O_NONBLOCK = 0x800;
  40. } // namespace Network