1139825Simp/*-
21541Srgrimes * Copyright (c) 1982, 1986, 1993
31541Srgrimes *	The Regents of the University of California.  All rights reserved.
41541Srgrimes *
51541Srgrimes * Redistribution and use in source and binary forms, with or without
61541Srgrimes * modification, are permitted provided that the following conditions
71541Srgrimes * are met:
81541Srgrimes * 1. Redistributions of source code must retain the above copyright
91541Srgrimes *    notice, this list of conditions and the following disclaimer.
101541Srgrimes * 2. Redistributions in binary form must reproduce the above copyright
111541Srgrimes *    notice, this list of conditions and the following disclaimer in the
121541Srgrimes *    documentation and/or other materials provided with the distribution.
131541Srgrimes * 4. Neither the name of the University nor the names of its contributors
141541Srgrimes *    may be used to endorse or promote products derived from this software
151541Srgrimes *    without specific prior written permission.
161541Srgrimes *
171541Srgrimes * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
181541Srgrimes * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
191541Srgrimes * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
201541Srgrimes * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
211541Srgrimes * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
221541Srgrimes * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
231541Srgrimes * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
241541Srgrimes * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
251541Srgrimes * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
261541Srgrimes * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
271541Srgrimes * SUCH DAMAGE.
281541Srgrimes *
2914489Shsu *	@(#)un.h	8.3 (Berkeley) 2/19/95
3050477Speter * $FreeBSD$
311541Srgrimes */
321541Srgrimes
332165Spaul#ifndef _SYS_UN_H_
342165Spaul#define _SYS_UN_H_
352165Spaul
3695100Smike#include <sys/cdefs.h>
3795100Smike#include <sys/_types.h>
3895100Smike
39102227Smike#ifndef _SA_FAMILY_T_DECLARED
40102227Smiketypedef	__sa_family_t	sa_family_t;
41102227Smike#define	_SA_FAMILY_T_DECLARED
4295100Smike#endif
4395100Smike
441541Srgrimes/*
451541Srgrimes * Definitions for UNIX IPC domain.
461541Srgrimes */
4783045Sobrienstruct sockaddr_un {
4898445Smike	unsigned char	sun_len;	/* sockaddr len including null */
4995100Smike	sa_family_t	sun_family;	/* AF_UNIX */
501541Srgrimes	char	sun_path[104];		/* path name (gag) */
511541Srgrimes};
521541Srgrimes
5395100Smike#if __BSD_VISIBLE
5495100Smike
5581857Sdd/* Socket options. */
56245824Sjhb#define	LOCAL_PEERCRED		1	/* retrieve peer credentials */
57245824Sjhb#define	LOCAL_CREDS		2	/* pass credentials to receiver */
58245824Sjhb#define	LOCAL_CONNWAIT		4	/* connects block until accepted */
5981857Sdd
60246210Sjhb/* Start of reserved space for third-party socket options. */
61246210Sjhb#define	LOCAL_VENDOR		SO_VENDOR
62246210Sjhb
63183650Srwatson#ifndef _KERNEL
64183572Srwatson
651541Srgrimes/* actual length of an initialized sockaddr_un */
661541Srgrimes#define SUN_LEN(su) \
671541Srgrimes	(sizeof(*(su)) - sizeof((su)->sun_path) + strlen((su)->sun_path))
682165Spaul
69183650Srwatson#endif /* !_KERNEL */
7014489Shsu
7195100Smike#endif /* __BSD_VISIBLE */
7295100Smike
7314489Shsu#endif /* !_SYS_UN_H_ */
74