1*86d7f5d3SJohn Marino /* $NetBSD: uuid.h,v 1.1.1.1 2008/12/22 00:18:43 haad Exp $ */ 2*86d7f5d3SJohn Marino 3*86d7f5d3SJohn Marino /* 4*86d7f5d3SJohn Marino * Copyright (C) 2001-2004 Sistina Software, Inc. All rights reserved. 5*86d7f5d3SJohn Marino * Copyright (C) 2004-2006 Red Hat, Inc. All rights reserved. 6*86d7f5d3SJohn Marino * 7*86d7f5d3SJohn Marino * This file is part of LVM2. 8*86d7f5d3SJohn Marino * 9*86d7f5d3SJohn Marino * This copyrighted material is made available to anyone wishing to use, 10*86d7f5d3SJohn Marino * modify, copy, or redistribute it subject to the terms and conditions 11*86d7f5d3SJohn Marino * of the GNU Lesser General Public License v.2.1. 12*86d7f5d3SJohn Marino * 13*86d7f5d3SJohn Marino * You should have received a copy of the GNU Lesser General Public License 14*86d7f5d3SJohn Marino * along with this program; if not, write to the Free Software Foundation, 15*86d7f5d3SJohn Marino * Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 16*86d7f5d3SJohn Marino */ 17*86d7f5d3SJohn Marino 18*86d7f5d3SJohn Marino #ifndef _LVM_UUID_H 19*86d7f5d3SJohn Marino #define _LVM_UUID_H 20*86d7f5d3SJohn Marino 21*86d7f5d3SJohn Marino #define ID_LEN 32 22*86d7f5d3SJohn Marino #define ID_LEN_S "32" 23*86d7f5d3SJohn Marino 24*86d7f5d3SJohn Marino struct id { 25*86d7f5d3SJohn Marino int8_t uuid[ID_LEN]; 26*86d7f5d3SJohn Marino }; 27*86d7f5d3SJohn Marino 28*86d7f5d3SJohn Marino /* 29*86d7f5d3SJohn Marino * Unique logical volume identifier 30*86d7f5d3SJohn Marino * With format1 this is VG uuid + LV uuid + '\0' + padding 31*86d7f5d3SJohn Marino */ 32*86d7f5d3SJohn Marino union lvid { 33*86d7f5d3SJohn Marino struct id id[2]; 34*86d7f5d3SJohn Marino char s[2 * sizeof(struct id) + 1 + 7]; 35*86d7f5d3SJohn Marino }; 36*86d7f5d3SJohn Marino 37*86d7f5d3SJohn Marino int lvid_from_lvnum(union lvid *lvid, struct id *vgid, uint32_t lv_num); 38*86d7f5d3SJohn Marino int lvnum_from_lvid(union lvid *lvid); 39*86d7f5d3SJohn Marino int lvid_in_restricted_range(union lvid *lvid); 40*86d7f5d3SJohn Marino 41*86d7f5d3SJohn Marino void uuid_from_num(char *uuid, uint32_t num); 42*86d7f5d3SJohn Marino 43*86d7f5d3SJohn Marino int lvid_create(union lvid *lvid, struct id *vgid); 44*86d7f5d3SJohn Marino int id_create(struct id *id); 45*86d7f5d3SJohn Marino int id_valid(struct id *id); 46*86d7f5d3SJohn Marino int id_equal(const struct id *lhs, const struct id *rhs); 47*86d7f5d3SJohn Marino 48*86d7f5d3SJohn Marino /* 49*86d7f5d3SJohn Marino * Fills 'buffer' with a more human readable form 50*86d7f5d3SJohn Marino * of the uuid. 51*86d7f5d3SJohn Marino */ 52*86d7f5d3SJohn Marino int id_write_format(const struct id *id, char *buffer, size_t size); 53*86d7f5d3SJohn Marino 54*86d7f5d3SJohn Marino /* 55*86d7f5d3SJohn Marino * Reads a formatted uuid. 56*86d7f5d3SJohn Marino */ 57*86d7f5d3SJohn Marino int id_read_format(struct id *id, const char *buffer); 58*86d7f5d3SJohn Marino 59*86d7f5d3SJohn Marino #endif 60