1139825Simp/*-
2129759Sbrooks * Copyright 2004 The Aerospace Corporation.  All rights reserved.
3129759Sbrooks *
4129759Sbrooks * Redistribution and use in source and binary forms, with or without
5129759Sbrooks * modification, are permitted provided that the following conditions
6129759Sbrooks * are met:
7129759Sbrooks *
8129759Sbrooks * 1.  Redistributions of source code must retain the above copyright
9129759Sbrooks *     notice, this list of conditions, and the following disclaimer.
10129759Sbrooks * 2.  Redistributions in binary form must reproduce the above copyright
11129759Sbrooks *     notice, this list of conditions, and the following disclaimer in the
12129759Sbrooks *     documentation and/or other materials provided with the distribution.
13129759Sbrooks * 3.  The name of The Aerospace Corporation may not be used to endorse or
14129759Sbrooks *     promote products derived from this software.
15129759Sbrooks *
16129759Sbrooks * THIS SOFTWARE IS PROVIDED BY THE AEROSPACE CORPORATION "AS IS" AND
17129759Sbrooks * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
18129759Sbrooks * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
19129759Sbrooks * ARE DISCLAIMED.  IN NO EVENT SHALL THE AEROSPACE CORPORATION BE LIABLE
20129759Sbrooks * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
21129759Sbrooks * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
22129759Sbrooks * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
23129759Sbrooks * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
24129759Sbrooks * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
25129759Sbrooks * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
26129759Sbrooks * SUCH DAMAGE.
27129759Sbrooks *
28129759Sbrooks * $FreeBSD$
29129759Sbrooks */
30129759Sbrooks#ifndef _SYS_EUI64_H
31129759Sbrooks#define _SYS_EUI64_H
32129759Sbrooks
33129759Sbrooks/*
34129759Sbrooks * Size of the ASCII representation of an EUI-64.
35129759Sbrooks */
36129759Sbrooks#define EUI64_SIZ	24
37129759Sbrooks
38129759Sbrooks/*
39129759Sbrooks * The number of bytes in an EUI-64.
40129759Sbrooks */
41129759Sbrooks#define EUI64_LEN	8
42129759Sbrooks
43129759Sbrooks/*
44129759Sbrooks * Structure of an IEEE EUI-64.
45129759Sbrooks */
46129759Sbrooksstruct	eui64 {
47129759Sbrooks	u_char octet[EUI64_LEN];
48129759Sbrooks};
49129759Sbrooks
50129759Sbrooks#ifndef _KERNEL
51129759Sbrooksint	eui64_aton(const char *, struct eui64 *);
52129759Sbrooksint	eui64_ntoa(const struct eui64 *, char *, size_t);
53129759Sbrooksint	eui64_ntohost(char *, size_t, const struct eui64 *);
54129759Sbrooksint	eui64_hostton(const char *, struct eui64 *);
55129759Sbrooks#endif /* !_KERNEL */
56129759Sbrooks
57129759Sbrooks#endif /* !_SYS_EUI64_H */
58