aboutsummaryrefslogtreecommitdiff
path: root/sys/net/if_dl.h
diff options
context:
space:
mode:
Diffstat (limited to 'sys/net/if_dl.h')
-rw-r--r--sys/net/if_dl.h18
1 files changed, 12 insertions, 6 deletions
diff --git a/sys/net/if_dl.h b/sys/net/if_dl.h
index e0ceb61741b3..082ea63f3ff3 100644
--- a/sys/net/if_dl.h
+++ b/sys/net/if_dl.h
@@ -34,6 +34,8 @@
#ifndef _NET_IF_DL_H_
#define _NET_IF_DL_H_
+#include <sys/_types.h>
+
/*
* A Link-Level Sockaddr may specify the interface in one of two
* ways: either by means of a system-provided index number (computed
@@ -67,22 +69,26 @@ struct sockaddr_dl {
contains both if name and ll address */
};
-#define LLADDR(s) ((caddr_t)((s)->sdl_data + (s)->sdl_nlen))
-#define CLLADDR(s) ((c_caddr_t)((s)->sdl_data + (s)->sdl_nlen))
+#define LLADDR(s) (&(s)->sdl_data[(s)->sdl_nlen])
+#define CLLADDR(s) ((const char *)LLADDR(s))
#define LLINDEX(s) ((s)->sdl_index)
+#ifdef _KERNEL
+
struct ifnet;
-struct sockaddr_dl *link_alloc_sdl(size_t, int);
+struct sockaddr_dl *link_alloc_sdl(size_t size, int flags);
void link_free_sdl(struct sockaddr *sa);
-struct sockaddr_dl *link_init_sdl(struct ifnet *, struct sockaddr *, u_char);
+struct sockaddr_dl *link_init_sdl(struct ifnet *ifp, struct sockaddr *paddr,
+ u_char iftypes);
-#ifndef _KERNEL
+#else /* !_KERNEL */
#include <sys/cdefs.h>
__BEGIN_DECLS
-void link_addr(const char *, struct sockaddr_dl *);
+int link_addr(const char *, struct sockaddr_dl *);
char *link_ntoa(const struct sockaddr_dl *);
+int link_ntoa_r(const struct sockaddr_dl *, char *, size_t *);
__END_DECLS
#endif /* !_KERNEL */