/* $NetBSD: bluetooth.h,v 1.8 2008/09/08 23:36:55 gmcgarry Exp $ */ /*- * Copyright (c) 2005 Iain Hibbert. * Copyright (c) 2006 Itronix Inc. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * 3. The name of Itronix Inc. may not be used to endorse * or promote products derived from this software without specific * prior written permission. * * THIS SOFTWARE IS PROVIDED BY ITRONIX INC. ``AS IS'' AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL ITRONIX INC. BE LIABLE FOR ANY * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND * ON ANY THEORY OF LIABILITY, WHETHER IN * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. */ #ifndef _NETBT_BLUETOOTH_H_ #define _NETBT_BLUETOOTH_H_ #include #include /* * Bluetooth Address Family Protocol Numbers */ #define BTPROTO_HCI 1 #define BTPROTO_L2CAP 2 #define BTPROTO_RFCOMM 3 #define BTPROTO_SCO 4 /* All sizes are in bytes */ #define BLUETOOTH_BDADDR_SIZE 6 /* * Bluetooth device address */ typedef struct { uint8_t b[BLUETOOTH_BDADDR_SIZE]; } __packed bdaddr_t; /* * bdaddr utility functions */ static __inline int bdaddr_same(const bdaddr_t *a, const bdaddr_t *b) { return (a->b[0] == b->b[0] && a->b[1] == b->b[1] && a->b[2] == b->b[2] && a->b[3] == b->b[3] && a->b[4] == b->b[4] && a->b[5] == b->b[5]); } static __inline int bdaddr_any(const bdaddr_t *a) { return (a->b[0] == 0 && a->b[1] == 0 && a->b[2] == 0 && a->b[3] == 0 && a->b[4] == 0 && a->b[5] == 0); } static __inline void bdaddr_copy(bdaddr_t *d, const bdaddr_t *s) { d->b[0] = s->b[0]; d->b[1] = s->b[1]; d->b[2] = s->b[2]; d->b[3] = s->b[3]; d->b[4] = s->b[4]; d->b[5] = s->b[5]; } /* * Socket address used by Bluetooth protocols */ struct sockaddr_bt { uint8_t bt_len; sa_family_t bt_family; bdaddr_t bt_bdaddr; uint16_t bt_psm; uint8_t bt_channel; uint8_t bt_zero[5]; }; /* Note: this is actually 6 bytes including terminator */ #define BDADDR_ANY ((const bdaddr_t *) "\000\000\000\000\000") #ifdef _KERNEL MALLOC_DECLARE(M_BLUETOOTH); /* * Bluetooth Protocol API callback methods */ struct mbuf; struct btproto { void (*connecting)(void *); void (*connected)(void *); void (*disconnected)(void *, int); void *(*newconn)(void *, struct sockaddr_bt *, struct sockaddr_bt *); void (*complete)(void *, int); void (*linkmode)(void *, int); void (*input)(void *, struct mbuf *); }; /* * Debugging stuff */ #include "opt_bluetooth.h" #ifdef BLUETOOTH_DEBUG extern int bluetooth_debug; # define DPRINTF(fmt, args...) do { \ if (bluetooth_debug) \ printf("%s: "fmt, __func__ , ##args); \ } while (/* CONSTCOND */0) # define DPRINTFN(n, fmt, args...) do { \ if (bluetooth_debug > (n)) \ printf("%s: "fmt, __func__ , ##args); \ } while (/* CONSTCOND */0) # define UNKNOWN(value) \ printf("%s: %s = %d unknown!\n", __func__, #value, (value)); #else # define DPRINTF(...) ((void)0) # define DPRINTFN(...) ((void)0) # define UNKNOWN(x) ((void)0) #endif /* BLUETOOTH_DEBUG */ extern kmutex_t *bt_lock; #endif /* _KERNEL */ #endif /* _NETBT_BLUETOOTH_H_ */ /arch/evbarm/bcm53xx?id=e93b22b47e56971d3f181c490a2e24d1032fe858'>Consistently use vaddr_t as initarm and friends return type.skrll 2019-05-18Convert remaining armv7 kernels to generic start and remove a bunch ofskrll 2018-11-03Less is moreskrll 2018-10-18Provide generic start code that assumes the MMU is off and caches areskrll 2018-10-18Whitespaceskrll 2018-09-21Centralise defparam CONSADDR, CONSPEED, CONMODE and CONADDR intoskrll 2018-08-05Undo previous as it is not required.skrll 2018-08-05One more step towards fixing some builds. Like my last attemptkre 2018-08-04Fix KERN_{VTOPHYS,PHYSTOV) fallout differentlyskrll 2018-08-04Hack workaround to deal with KERN_VTOPHYS and KERN_PHYSTOV nowkre 2018-07-31Sprinkle #include "opt_arm_debug.h" where VERBOSE_INIT_ARM is usedskrll 2018-07-17make sure uboot_args is in the data segment by saying so, as opposed tochristos 2015-07-17Deal with more than 1GB of RAM.matt 2015-05-28Remove #define VERBOSE_INIT_ARMmatt 2014-03-29adjust arm_cpu_max by 1 to be number of cpusmatt 2014-02-21Rework PIC method to be simplier. Change be more cortex neutral.matt 2014-01-24After loading the pc-relative offset, clear the upper the 4 bits incasematt 2013-12-24Use the right BCM563XX symbolmatt 2013-10-28Support for the Broadcom BCM56340 iProc based switch.matt 2013-08-04If this is a BE kernel, force ourselves into BE just in case we aren't.matt 2013-06-30Print out PMUSERSRmatt 2013-06-30Add MD_CPU_HATCHmatt 2013-06-17a9_cpuinit -> arm_cpuinitmatt 2012-10-23Support a MEMSIZE optionmatt 2012-10-17If there is more than 256MB of ram, add the first 256MB into a separatematt 2012-10-07add call to bcm53xx_dma_bootstrap.matt 2012-09-27Print out u-boot argsmatt 2012-09-07Include PCI outbound windows in the kernel IO region. Make sure these startmatt 2012-09-02Use the common code in <arm/cortex/a9_mpsubr.S>matt 2012-09-01Add support for the BCM95301X development boardmatt