ia64/xen-unstable

view tools/blktap2/include/uuid.h @ 19817:b7f73a7f3078

blktap2: portability fixes for NetBSD

- Use standard off_t and lseek() instead of non-portable off64_t and
lseek64()
- Use uuid API as documented in DCE 1.1 RPC specification
- Add NetBSD implementation for blk_getimagesize() and
blk_getsectorsize()
- Use blk_getimagesize() and blk_getsectorsize()
- Fix uuid header check

Signed-off-by: Christoph Egger <Christoph.Egger@amd.com>
Signed-off-by: Keir Fraser <keir.fraser@citrix.com>
author Keir Fraser <keir.fraser@citrix.com>
date Tue Jun 23 17:24:14 2009 +0100 (2009-06-23)
parents
children
line source
1 /* Copyright (c) 2008, XenSource Inc.
2 * All rights reserved.
3 *
4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions are met:
6 * * Redistributions of source code must retain the above copyright
7 * notice, this list of conditions and the following disclaimer.
8 * * Redistributions in binary form must reproduce the above copyright
9 * notice, this list of conditions and the following disclaimer in the
10 * documentation and/or other materials provided with the distribution.
11 * * Neither the name of XenSource Inc. nor the names of its contributors
12 * may be used to endorse or promote products derived from this software
13 * without specific prior written permission.
14 *
15 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
16 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
17 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
18 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER
19 * OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
20 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
21 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
22 * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
23 * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
24 * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
25 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26 */
27 #ifndef __BLKTAP2_UUID_H__
28 #define __BLKTAP2_UUID_H__
30 #if defined(__linux__) || defined(__Linux__)
32 #include <uuid/uuid.h>
34 #else
36 #include <inttypes.h>
37 #include <string.h>
38 #include <uuid.h>
40 static inline int uuid_is_null(uuid_t uuid)
41 {
42 uint32_t status;
43 return uuid_is_nil(&uuid, &status);
44 }
46 static inline void uuid_generate(uuid_t uuid)
47 {
48 uint32_t status;
49 uuid_create(&uuid, &status);
50 }
52 static inline void uuid_unparse(uuid_t uuid, char *out)
53 {
54 uint32_t status;
55 uuid_to_string(&uuid, (char **)&out, &status);
56 }
58 static inline void uuid_copy(uuid_t dst, uuid_t src)
59 {
60 memcpy(dst, src, sizeof(dst));
61 }
63 static inline void uuid_clear(uuid_t uu)
64 {
65 memset(uu, 0, sizeof(uu));
66 }
68 #define uuid_compare(x,y) \
69 ({ uint32_t status; uuid_compare(&(x),&(y),&status); })
71 #endif
73 #endif /* __BLKTAP2_UUID_H__ */