diff options
author | Subv <subv2112@gmail.com> | 2017-07-17 16:25:58 +0200 |
---|---|---|
committer | Subv <subv2112@gmail.com> | 2017-08-27 17:48:09 +0200 |
commit | 54411bef4eb16af0822820205a923690ea7e822a (patch) | |
tree | e8a0a55d7be9cb4bd50c456ecb7d934685d95f9c /src/core/hle/service/nwm/uds_connection.h | |
parent | Merge pull request #2814 from Kloen/macro-remove (diff) | |
download | yuzu-54411bef4eb16af0822820205a923690ea7e822a.tar yuzu-54411bef4eb16af0822820205a923690ea7e822a.tar.gz yuzu-54411bef4eb16af0822820205a923690ea7e822a.tar.bz2 yuzu-54411bef4eb16af0822820205a923690ea7e822a.tar.lz yuzu-54411bef4eb16af0822820205a923690ea7e822a.tar.xz yuzu-54411bef4eb16af0822820205a923690ea7e822a.tar.zst yuzu-54411bef4eb16af0822820205a923690ea7e822a.zip |
Diffstat (limited to '')
-rw-r--r-- | src/core/hle/service/nwm/uds_connection.h | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/src/core/hle/service/nwm/uds_connection.h b/src/core/hle/service/nwm/uds_connection.h new file mode 100644 index 000000000..73f55a4fd --- /dev/null +++ b/src/core/hle/service/nwm/uds_connection.h @@ -0,0 +1,51 @@ +// Copyright 2017 Citra Emulator Project +// Licensed under GPLv2 or any later version +// Refer to the license.txt file included. + +#pragma once + +#include <vector> +#include "common/common_types.h" +#include "common/swap.h" +#include "core/hle/service/service.h" + +namespace Service { +namespace NWM { + +/// Sequence number of the 802.11 authentication frames. +enum class AuthenticationSeq : u16 { SEQ1 = 1, SEQ2 = 2 }; + +enum class AuthAlgorithm : u16 { OpenSystem = 0 }; + +enum class AuthStatus : u16 { Successful = 0 }; + +enum class AssocStatus : u16 { Successful = 0 }; + +struct AuthenticationFrame { + u16_le auth_algorithm = static_cast<u16>(AuthAlgorithm::OpenSystem); + u16_le auth_seq; + u16_le status_code = static_cast<u16>(AuthStatus::Successful); +}; + +static_assert(sizeof(AuthenticationFrame) == 6, "AuthenticationFrame has wrong size"); + +struct AssociationResponseFrame { + u16_le capabilities; + u16_le status_code; + u16_le assoc_id; +}; + +static_assert(sizeof(AssociationResponseFrame) == 6, "AssociationResponseFrame has wrong size"); + +/// Generates an 802.11 authentication frame, starting at the frame body. +std::vector<u8> GenerateAuthenticationFrame(AuthenticationSeq seq); + +/// Returns the sequence number from the body of an Authentication frame. +AuthenticationSeq GetAuthenticationSeqNumber(const std::vector<u8>& body); + +/// Generates an 802.11 association response frame with the specified status, association id and +/// network id, starting at the frame body. +std::vector<u8> GenerateAssocResponseFrame(AssocStatus status, u16 association_id, u32 network_id); + +} // namespace NWM +} // namespace Service |