Annotation of sys/netbt/sco.h, Revision 1.1
1.1 ! nbrk 1: /* $OpenBSD: sco.h,v 1.2 2007/06/01 02:46:12 uwe Exp $ */
! 2: /* $NetBSD: sco.h,v 1.2 2006/07/26 10:20:56 tron Exp $ */
! 3:
! 4: /*-
! 5: * Copyright (c) 2006 Itronix Inc.
! 6: * All rights reserved.
! 7: *
! 8: * Redistribution and use in source and binary forms, with or without
! 9: * modification, are permitted provided that the following conditions
! 10: * are met:
! 11: * 1. Redistributions of source code must retain the above copyright
! 12: * notice, this list of conditions and the following disclaimer.
! 13: * 2. Redistributions in binary form must reproduce the above copyright
! 14: * notice, this list of conditions and the following disclaimer in the
! 15: * documentation and/or other materials provided with the distribution.
! 16: * 3. The name of Itronix Inc. may not be used to endorse
! 17: * or promote products derived from this software without specific
! 18: * prior written permission.
! 19: *
! 20: * THIS SOFTWARE IS PROVIDED BY ITRONIX INC. ``AS IS'' AND
! 21: * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
! 22: * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
! 23: * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL ITRONIX INC. BE LIABLE FOR ANY
! 24: * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
! 25: * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
! 26: * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
! 27: * ON ANY THEORY OF LIABILITY, WHETHER IN
! 28: * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
! 29: * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
! 30: * POSSIBILITY OF SUCH DAMAGE.
! 31: */
! 32:
! 33: #ifndef _NETBT_SCO_H_
! 34: #define _NETBT_SCO_H_
! 35:
! 36: #define SO_SCO_MTU 1
! 37: #define SO_SCO_HANDLE 2
! 38:
! 39: #ifdef _KERNEL
! 40: /*
! 41: * SCO protocol control block
! 42: */
! 43: struct sco_pcb {
! 44: struct hci_link *sp_link; /* SCO link */
! 45: unsigned int sp_flags; /* flags */
! 46: bdaddr_t sp_laddr; /* local address */
! 47: bdaddr_t sp_raddr; /* remote address */
! 48: unsigned int sp_mtu; /* link MTU */
! 49: int sp_pending; /* number of packets pending */
! 50:
! 51: const struct btproto *sp_proto; /* upper layer protocol */
! 52: void *sp_upper; /* upper layer argument */
! 53:
! 54: LIST_ENTRY(sco_pcb) sp_next;
! 55: };
! 56:
! 57: LIST_HEAD(sco_pcb_list, sco_pcb);
! 58: extern struct sco_pcb_list sco_pcb;
! 59:
! 60: /* sp_flags */
! 61: #define SP_LISTENING (1<<0) /* is listening pcb */
! 62:
! 63: /* sco_socket.c */
! 64: struct socket;
! 65: extern int sco_sendspace;
! 66: extern int sco_recvspace;
! 67: int sco_usrreq(struct socket *, int, struct mbuf *,
! 68: struct mbuf *, struct mbuf *);
! 69: int sco_ctloutput(int, struct socket *, int, int, struct mbuf **);
! 70:
! 71: /* sco_upper.c */
! 72: int sco_attach(struct sco_pcb **, const struct btproto *, void *);
! 73: int sco_bind(struct sco_pcb *, struct sockaddr_bt *);
! 74: int sco_sockaddr(struct sco_pcb *, struct sockaddr_bt *);
! 75: int sco_connect(struct sco_pcb *, struct sockaddr_bt *);
! 76: int sco_peeraddr(struct sco_pcb *, struct sockaddr_bt *);
! 77: int sco_disconnect(struct sco_pcb *, int);
! 78: int sco_detach(struct sco_pcb **);
! 79: int sco_listen(struct sco_pcb *);
! 80: int sco_send(struct sco_pcb *, struct mbuf *);
! 81: int sco_setopt(struct sco_pcb *, int, void *);
! 82: int sco_getopt(struct sco_pcb *, int, void *);
! 83:
! 84: #endif /* _KERNEL */
! 85:
! 86: #endif /* _NETBT_SCO_H_ */
CVSweb