| // Copyright 2017 The Chromium OS Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #ifndef VM_TOOLS_CONCIERGE_VSOCK_CID_POOL_H_ |
| #define VM_TOOLS_CONCIERGE_VSOCK_CID_POOL_H_ |
| |
| #include <stdint.h> |
| |
| #include <base/macros.h> |
| |
| namespace vm_tools { |
| namespace concierge { |
| |
| // Manages a pool of virtual socket context IDs to be assigned to VMs. |
| class VsockCidPool { |
| public: |
| VsockCidPool() = default; |
| VsockCidPool(const VsockCidPool&) = delete; |
| VsockCidPool& operator=(const VsockCidPool&) = delete; |
| |
| ~VsockCidPool() = default; |
| |
| // Allocates and returns a vsock context id. Returns 0 if it is unable to |
| // allocate a cid because 0 is a reserved cid. |
| uint32_t Allocate(); |
| }; |
| |
| } // namespace concierge |
| } // namespace vm_tools |
| |
| #endif // VM_TOOLS_CONCIERGE_VSOCK_CID_POOL_H_ |