[BACK]Return to un.h CVS log [TXT][DIR] Up to [cvs.NetBSD.org] / src / sys / sys

Annotation of src/sys/sys/un.h, Revision 1.42

1.42    ! yamt        1: /*     $NetBSD: un.h,v 1.41 2008/02/23 09:37:54 is Exp $       */
1.8       cgd         2:
1.1       cgd         3: /*
1.6       mycroft     4:  * Copyright (c) 1982, 1986, 1993
                      5:  *     The Regents of the University of California.  All rights reserved.
1.1       cgd         6:  *
                      7:  * Redistribution and use in source and binary forms, with or without
                      8:  * modification, are permitted provided that the following conditions
                      9:  * are met:
                     10:  * 1. Redistributions of source code must retain the above copyright
                     11:  *    notice, this list of conditions and the following disclaimer.
                     12:  * 2. Redistributions in binary form must reproduce the above copyright
                     13:  *    notice, this list of conditions and the following disclaimer in the
                     14:  *    documentation and/or other materials provided with the distribution.
1.30      agc        15:  * 3. Neither the name of the University nor the names of its contributors
1.1       cgd        16:  *    may be used to endorse or promote products derived from this software
                     17:  *    without specific prior written permission.
                     18:  *
                     19:  * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
                     20:  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
                     21:  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
                     22:  * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
                     23:  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
                     24:  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
                     25:  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
                     26:  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
                     27:  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
                     28:  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
                     29:  * SUCH DAMAGE.
                     30:  *
1.18      fvdl       31:  *     @(#)un.h        8.3 (Berkeley) 2/19/95
1.1       cgd        32:  */
                     33:
1.13      mikel      34: #ifndef _SYS_UN_H_
                     35: #define _SYS_UN_H_
                     36:
1.24      kleink     37: #include <sys/ansi.h>
1.26      bjh21      38: #include <sys/featuretest.h>
1.40      he         39: #include <sys/types.h>
1.24      kleink     40:
                     41: #ifndef sa_family_t
                     42: typedef __sa_family_t  sa_family_t;
1.25      kleink     43: #define sa_family_t    __sa_family_t
1.24      kleink     44: #endif
                     45:
1.1       cgd        46: /*
                     47:  * Definitions for UNIX IPC domain.
                     48:  */
                     49: struct sockaddr_un {
1.38      perry      50:        uint8_t         sun_len;        /* total sockaddr length */
1.24      kleink     51:        sa_family_t     sun_family;     /* AF_LOCAL */
1.23      danw       52:        char            sun_path[104];  /* path name (gag) */
1.1       cgd        53: };
                     54:
1.17      thorpej    55: /*
                     56:  * Socket options for UNIX IPC domain.
                     57:  */
1.26      bjh21      58: #if defined(_NETBSD_SOURCE)
1.17      thorpej    59: #define        LOCAL_CREDS     0x0001          /* pass credentials to receiver */
1.33      matt       60: #define        LOCAL_CONNWAIT  0x0002          /* connects block until accepted */
1.40      he         61: #define        LOCAL_PEEREID   0x0003          /* get peer identification */
1.22      kleink     62: #endif
1.17      thorpej    63:
1.40      he         64: /*
                     65:  * Data automatically stored inside connect() for use by LOCAL_PEEREID
                     66:  */
                     67: struct unpcbid {
                     68:        pid_t unp_pid;          /* process id */
                     69:        uid_t unp_euid;         /* effective user id */
                     70:        gid_t unp_egid;         /* effective group id */
                     71: };
                     72:
1.10      jtc        73: #ifdef _KERNEL
1.6       mycroft    74: struct unpcb;
1.11      christos   75: struct socket;
1.4       andrew     76:
1.35      matt       77: int    uipc_usrreq(struct socket *, int, struct mbuf *,
1.37      christos   78:            struct mbuf *, struct mbuf *, struct lwp *);
1.35      matt       79: int    uipc_ctloutput(int, struct socket *, int, int, struct mbuf **);
                     80:
1.34      matt       81: int    unp_attach (struct socket *);
1.37      christos   82: int    unp_bind (struct unpcb *, struct mbuf *, struct lwp *);
                     83: int    unp_connect (struct socket *, struct mbuf *, struct lwp *);
1.34      matt       84: int    unp_connect2 (struct socket *, struct socket *, int);
                     85: void   unp_detach (struct unpcb *);
                     86: void   unp_discard (struct file *);
                     87: void   unp_disconnect (struct unpcb *);
                     88: void   unp_drop (struct unpcb *, int);
                     89: void   unp_gc (void);
                     90: void   unp_mark (struct file *);
                     91: void   unp_scan (struct mbuf *, void (*)(struct file *), int);
                     92: void   unp_shutdown (struct unpcb *);
1.37      christos   93: int    unp_externalize (struct mbuf *, struct lwp *);
1.42    ! yamt       94: int    unp_internalize (struct mbuf **, struct lwp *);
1.34      matt       95: void   unp_dispose (struct mbuf *);
                     96: int    unp_output (struct mbuf *, struct mbuf *, struct unpcb *,
1.39      ad         97:            struct lwp *);
1.34      matt       98: void   unp_setsockaddr (struct unpcb *, struct mbuf *);
                     99: void   unp_setpeeraddr (struct unpcb *, struct mbuf *);
1.10      jtc       100: #else /* !_KERNEL */
1.1       cgd       101:
                    102: /* actual length of an initialized sockaddr_un */
1.26      bjh21     103: #if defined(_NETBSD_SOURCE)
1.1       cgd       104: #define SUN_LEN(su) \
1.15      cgd       105:        (sizeof(*(su)) - sizeof((su)->sun_path) + strlen((su)->sun_path))
1.41      is        106: #endif /* !_NetBSD_SOURCE */
1.10      jtc       107: #endif /* _KERNEL */
1.13      mikel     108:
                    109: #endif /* !_SYS_UN_H_ */

CVSweb <webmaster@jp.NetBSD.org>