Represents a stream ID (SID). More...
#include <uhd/types/sid.hpp>
Public Member Functions | |
| sid_t () | |
| Create an unset SID. More... | |
| sid_t (uint32_t sid) | |
| Create a sid_t object from a 32-Bit SID value. More... | |
| sid_t (uint8_t src_addr, uint8_t src_ep, uint8_t dst_addr, uint8_t dst_ep) | |
| Create a sid_t object from its four components. More... | |
| sid_t (const std::string &) | |
| Convert a string representation of a SID into its numerical representation. More... | |
| std::string | to_pp_string () const |
| Return a decimal string representation of the SID. More... | |
| std::string | to_pp_string_hex () const |
| Return a hexadecimal string representation of the SID. More... | |
| bool | is_set () const |
| Returns true if this actually holds a valid SID. More... | |
| uint32_t | get () const |
| Alias for get_sid() More... | |
| uint32_t | get_sid () const |
| Returns a 32-Bit representation of the SID if set, or zero otherwise. More... | |
| uint32_t | get_src () const |
| Return the 16-bit source address of this SID. More... | |
| uint32_t | get_dst () const |
| Return the 16-bit destination address of this SID. More... | |
| uint32_t | get_src_addr () const |
| Return 8-bit address of the source. More... | |
| uint32_t | get_src_endpoint () const |
| Return endpoint of the source. More... | |
| uint32_t | get_src_xbarport () const |
| Return crossbar port of the source. More... | |
| uint32_t | get_src_blockport () const |
| Return block port of the source. More... | |
| uint32_t | get_dst_addr () const |
| Return 8-bit address of the destination. More... | |
| uint32_t | get_dst_endpoint () const |
| Return endpoint of the destination. More... | |
| uint32_t | get_dst_xbarport () const |
| Return crossbar port of the source. More... | |
| uint32_t | get_dst_blockport () const |
| Return block port of the source. More... | |
| void | set (uint32_t new_sid) |
| Alias for set_sid() More... | |
| void | set_from_str (const std::string &) |
| Convert a string representation of a SID into a numerical one. More... | |
| void | set_sid (uint32_t new_sid) |
| void | set_src (uint32_t new_addr) |
| Set the source address of this SID. More... | |
| void | set_dst (uint32_t new_addr) |
| Set the destination address of this SID. More... | |
| void | set_src_addr (uint32_t new_addr) |
| void | set_src_endpoint (uint32_t new_addr) |
| void | set_dst_addr (uint32_t new_addr) |
| void | set_dst_endpoint (uint32_t new_addr) |
| void | set_dst_xbarport (uint32_t new_xbarport) |
| void | set_dst_blockport (uint32_t new_blockport) |
| sid_t | reversed () const |
| Swaps dst and src address and returns the new SID. More... | |
| void | reverse () |
| Swaps dst and src in-place. This modifies the current SID. More... | |
| sid_t | operator= (const uint32_t new_sid) |
| sid_t | operator= (const sid_t &sid) |
| sid_t | operator= (const std::string &sid_str) |
| bool | operator== (const sid_t &sid) const |
| bool | operator== (uint32_t sid) const |
| bool | operator== (const std::string &sid_str) const |
| operator uint32_t () const | |
| If the SID is not set, always returns zero. More... | |
| operator bool () const | |
Represents a stream ID (SID).
A stream ID (SID) is an identifier for data. It is a 32-Bit value which consists of 16 Bits for the source address and 16 Bits for the destination address. Every address is split into two parts: The address, which identifies the device used, and the endpoint, which identifies a specific object inside the given device (e.g., a block). Note: In the case where there are several crossbars on a single device, each crossbar gets its own address. Both address and endpoint are 8 bits in length. If a 16-bit address is required, we use the combination of the 8-bit address and the 8-bit endpoint.
+-------------+--------------+-------------+--------------+ | SRC address | SRC endpoint | DST address | DST endpoint | +-------------+--------------+-------------+--------------+
The string representation of a SID is of the form
2.3>0.6
The '>' symbol shows the direction, so in this case, data is flowing from address 2.3 to 0.6.
As a convention, ':' is used instead of '.' when giving the SID in hexadecimal numbers, and two characters are used for each address part. As an example, the following two SIDs are identical:
2.3>0.16 (decimal) 02:03>00:10 (hexadecimal)
The format is: SRC_ADDRESS.SRC_ENDPOINT>DST_ADDRESS.DST_ENDPOINT
In the special case where a block on a crossbar is addressed, the endpoint is further split up into two parts of four bits each: The first four bits specify the port number on the crossbar, whereas the lower four bits represent the block port. As an example, consider the following SID, given in hexadecimal:
00:10>02:A1
In this example, assume data is flowing from the host computer to an X300. The crossbar address is 02. The endpoint is A1, which means we are accessing a block on crossbar port A (the tenth port), and are addressing block port 1.
| uhd::sid_t::sid_t | ( | ) |
Create an unset SID.
| uhd::sid_t::sid_t | ( | uint32_t | sid | ) |
Create a sid_t object from a 32-Bit SID value.
| uhd::sid_t::sid_t | ( | uint8_t | src_addr, |
| uint8_t | src_ep, | ||
| uint8_t | dst_addr, | ||
| uint8_t | dst_ep | ||
| ) |
Create a sid_t object from its four components.
| uhd::sid_t::sid_t | ( | const std::string & | ) |
Convert a string representation of a SID into its numerical representation.
|
inline |
Alias for get_sid()
|
inline |
Return the 16-bit destination address of this SID.
|
inline |
Return 8-bit address of the destination.
|
inline |
Return block port of the source.
|
inline |
Return endpoint of the destination.
|
inline |
Return crossbar port of the source.
|
inline |
Returns a 32-Bit representation of the SID if set, or zero otherwise.
|
inline |
Return the 16-bit source address of this SID.
|
inline |
Return 8-bit address of the source.
|
inline |
Return block port of the source.
|
inline |
Return endpoint of the source.
|
inline |
Return crossbar port of the source.
|
inline |
Returns true if this actually holds a valid SID.
|
inline |
|
inline |
If the SID is not set, always returns zero.
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
| void uhd::sid_t::reverse | ( | ) |
Swaps dst and src in-place. This modifies the current SID.
| sid_t uhd::sid_t::reversed | ( | ) | const |
Swaps dst and src address and returns the new SID.
|
inline |
Alias for set_sid()
| void uhd::sid_t::set_dst | ( | uint32_t | new_addr | ) |
Set the destination address of this SID.
| void uhd::sid_t::set_dst_addr | ( | uint32_t | new_addr | ) |
| void uhd::sid_t::set_dst_blockport | ( | uint32_t | new_blockport | ) |
| void uhd::sid_t::set_dst_endpoint | ( | uint32_t | new_addr | ) |
| void uhd::sid_t::set_dst_xbarport | ( | uint32_t | new_xbarport | ) |
| void uhd::sid_t::set_from_str | ( | const std::string & | ) |
Convert a string representation of a SID into a numerical one.
| void uhd::sid_t::set_sid | ( | uint32_t | new_sid | ) |
| void uhd::sid_t::set_src | ( | uint32_t | new_addr | ) |
Set the source address of this SID.
| void uhd::sid_t::set_src_addr | ( | uint32_t | new_addr | ) |
| void uhd::sid_t::set_src_endpoint | ( | uint32_t | new_addr | ) |
| std::string uhd::sid_t::to_pp_string | ( | ) | const |
Return a decimal string representation of the SID.
| std::string uhd::sid_t::to_pp_string_hex | ( | ) | const |
Return a hexadecimal string representation of the SID.