mirror of
https://github.com/signalwire/freeswitch.git
synced 2026-11-15 05:48:33 +00:00
inital addition of libuuid to tree
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@16021 d0543943-73ff-0310-b7d9-9358b9ac24b2
This commit is contained in:
1 parent
e36b47cbc3
commit
03dc56f95e
78 files changed
+19280
No files matched your search
@@ -0,0 +1,81 @@
|
||||
|
||||
_ ___ ____ ____ ____ _ _
|
||||
|_|_ _ / _ \/ ___/ ___|| _ \ _ _ _ _(_) __| |
|
||||
_|_||_| | | | \___ \___ \| |_) | | | | | | | | |/ _` |
|
||||
|_||_|_| | |_| |___) |__) | __/ | |_| | |_| | | (_| |
|
||||
|_|_|_| \___/|____/____/|_| \__,_|\__,_|_|\__,_|
|
||||
|
||||
OSSP uuid - Universally Unique Identifier
|
||||
|
||||
OVERVIEW
|
||||
|
||||
A UUID consists of 128 bits (16-octets) which are split into 6
|
||||
octet-bounded unsigned integer fields ("time_low", "time_mid",
|
||||
"time_hi_and_version", "clk_seq_hi_res", "clk_seq_low" and "node") and
|
||||
where two fields are multiplexed with a fixed size 4-bit "version" and
|
||||
a variable sized 2-3 bit "variant" field.
|
||||
|
||||
The UUID octets are counted from left to right 15 to 0 and the bits
|
||||
in each octet are counted from left to right 7 to 0 (most significant
|
||||
bit first, least significant bit last). The unsigned integer fields
|
||||
formed out of multiple octets are stored in "network byte order" (most
|
||||
significant octet first, least significant octet last). A UUID is
|
||||
stored and transmitted from left to right, i.e., in "network byte
|
||||
order" with the most significant octet first and the least significant
|
||||
octet last.
|
||||
|
||||
Illustration 1:
|
||||
(single octet array, less compact, more annotations)
|
||||
|
||||
|
||||
Bits: [4] [2-3]
|
||||
Field: version variant
|
||||
MSO -->| |<-- -->| |<-- LSO
|
||||
\ | | | | /
|
||||
Octet: 15 14 13 12 11 10 | |9 8 | | 7 6 5 4 3 2 1 0
|
||||
+------++------++------++------++------++------++------++------++------++------++------++------++------++------++------++------+
|
||||
UUID: | || || || || || |#### || |##: || || || || || || || |
|
||||
+------++------++------++------++------++------++------++------++------++------++------++------++------++------++------++------+
|
||||
Bit: 76543210765432107654321076543210765432107654321076543210765432107654321076543210765432107654321076543210765432107654321076543210
|
||||
/| || || || || || |\
|
||||
MSB | || || || || || | LSB
|
||||
|<---------------------------->||<------------>||<------------>||<---->||<---->||<-------------------------------------------->|
|
||||
time_hi clk_seq clk_seq
|
||||
Field: time_low time_mid _and_version _hi_res _low node
|
||||
Bits: [32] [16] [16] [5-6] [8] [48]
|
||||
|
||||
|
||||
Illustration 2:
|
||||
(two octet arrays, more compact, less annotations)
|
||||
|
||||
[4]
|
||||
version
|
||||
-->| |<--
|
||||
| |
|
||||
| | [16]
|
||||
[32] [16] | |time_hi
|
||||
time_low time_mid | _and_version
|
||||
|<---------------------------->||<------------>||<------------>|
|
||||
| MSO || || | |
|
||||
| / || || | |
|
||||
| 15 14 13 12 || 11 10 || |9 8 |
|
||||
7654321076543210765432107654321076543210765432107654321076543210
|
||||
/+------++------++------++------++------++------++------++------+~
|
||||
MSB | || || || || || |#### || | ...
|
||||
+------++------++------++------++------++------++------++------+~
|
||||
~+------++------++------++------++------++------++------++------+
|
||||
... ##: || || || || || || || | LSB
|
||||
~+------++------++------++------++------++------++------++------+/
|
||||
7654321076543210765432107654321076543210765432107654321076543210
|
||||
| | 7 || 6 || 5 4 3 2 1 0 |
|
||||
| | || || / |
|
||||
| | || || LSO |
|
||||
|<---->||<---->||<-------------------------------------------->|
|
||||
|clk_seq clk_seq node
|
||||
|_hi_res _low [48]
|
||||
|[5-6] [8]
|
||||
| |
|
||||
-->| |<--
|
||||
variant
|
||||
[2-3]
|
||||
|
||||
Reference in new issue
Block a user