1*61ba1259SAxel Dörfler /* 2*61ba1259SAxel Dörfler * Copyright 2007, Axel Dörfler, axeld@pinc-software.de. All rights reserved. 3*61ba1259SAxel Dörfler * Distributed under the terms of the MIT License. 4*61ba1259SAxel Dörfler */ 5*61ba1259SAxel Dörfler #ifndef GUID_H 6*61ba1259SAxel Dörfler #define GUID_H 7*61ba1259SAxel Dörfler 8*61ba1259SAxel Dörfler 9*61ba1259SAxel Dörfler #include <SupportDefs.h> 10*61ba1259SAxel Dörfler 11*61ba1259SAxel Dörfler 12*61ba1259SAxel Dörfler typedef struct guid { 13*61ba1259SAxel Dörfler uint32 data1; 14*61ba1259SAxel Dörfler uint16 data2; 15*61ba1259SAxel Dörfler uint16 data3; 16*61ba1259SAxel Dörfler uint8 data4[8]; 17*61ba1259SAxel Dörfler 18*61ba1259SAxel Dörfler inline bool operator==(const guid &other) const; 19*61ba1259SAxel Dörfler inline bool operator!=(const guid &other) const; 20*61ba1259SAxel Dörfler } _PACKED guid_t; 21*61ba1259SAxel Dörfler 22*61ba1259SAxel Dörfler 23*61ba1259SAxel Dörfler inline bool 24*61ba1259SAxel Dörfler guid_t::operator==(const guid_t &other) const 25*61ba1259SAxel Dörfler { 26*61ba1259SAxel Dörfler return data1 == other.data1 27*61ba1259SAxel Dörfler && data2 == other.data2 28*61ba1259SAxel Dörfler && data3 == other.data3 29*61ba1259SAxel Dörfler && *(uint64 *)data4 == *(uint64 *)other.data4; 30*61ba1259SAxel Dörfler } 31*61ba1259SAxel Dörfler 32*61ba1259SAxel Dörfler 33*61ba1259SAxel Dörfler inline bool 34*61ba1259SAxel Dörfler guid_t::operator!=(const guid_t &other) const 35*61ba1259SAxel Dörfler { 36*61ba1259SAxel Dörfler return data1 != other.data1 37*61ba1259SAxel Dörfler || data2 != other.data2 38*61ba1259SAxel Dörfler || data3 != other.data3 39*61ba1259SAxel Dörfler || *(uint64 *)data4 != *(uint64 *)other.data4; 40*61ba1259SAxel Dörfler } 41*61ba1259SAxel Dörfler 42*61ba1259SAxel Dörfler #endif /* GUID_H */ 43*61ba1259SAxel Dörfler 44