xref: /haiku/src/add-ons/kernel/partitioning_systems/gpt/guid.h (revision 25a7b01d15612846f332751841da3579db313082)
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