/***************************************************************************** ** ** Name: goep_util.h ** ** File: Generic Object Exchange Profile utility API ** ** Copyright (c) 2000-2008, Broadcom Corp., All Rights Reserved. ** WIDCOMM Bluetooth Core. Proprietary and confidential. ** *****************************************************************************/ #ifndef GOEP_UTIL_H #define GOEP_UTIL_H #include "bt_target.h" #include "sdp_api.h" /* for tSDP_DISC_REC */ /***************************************************************************** ** Constants *****************************************************************************/ #define GOEP_ENHANCED_VERSION 0x0102 #define GOEP_LEGACY_VERSION 0x0100 /***************************************************************************** ** Type Definitions *****************************************************************************/ /*** Define goep error codes ***/ enum { GOEP_SUCCESS = 0, /* success */ GOEP_ERROR, /* general failure */ GOEP_RESOURCES, /* resources not available */ GOEP_INVALID_PARAM /* bad parameter(s) */ } ; typedef UINT8 tGOEP_ERRORS; /***************************************************************************** ** External Function Declarations *****************************************************************************/ #ifdef __cplusplus extern "C" { #endif /*** GOEP utility functions ***/ /***************************************************************************** ** ** Function GOEP_SetSecurityLevel() ** ** Description Register security & encryption level for GOEP server. ** This is not to be used for the GOEP command server. ** ** Returns TRUE if OK, FALSE if a bad parameter ** *****************************************************************************/ GOEP_API extern BOOLEAN GOEP_SetSecurityLevel (BOOLEAN b_orig, char *p_sz_name, UINT32 service, UINT8 sec, UINT8 scn); /***************************************************************************** ** ** Function GOEP_SetTraceLevel ** ** Description This function changes the trace level (debugging levels) ** ** Returns void ** *****************************************************************************/ GOEP_API extern void GOEP_SetTraceLevel(UINT8 level); /******************************************************************************* ** ** Function GOEP_FreeBuf ** ** Description free memory for specified packet ** ** Returns void ** *******************************************************************************/ GOEP_API extern void GOEP_FreeBuf (void **p_buf); /******************************************************************************* ** ** Function GOEP_SendMsg ** ** Description send a message to BTU task ** ** Returns void ** *******************************************************************************/ GOEP_API extern void GOEP_SendMsg (void *p_msg); /******************************************************************************* ** ** Function GOEP_Init ** ** Description This function is called once at stack startup to allocate ** (if using dynamic memory) and initialize the ** control block, and initializes the ** debug tracing level. ** ** Returns void ** *******************************************************************************/ GOEP_API extern void GOEP_Init(void); /*** GOEP Service functions ***/ /***************************************************************************** ** ** Function: GOEP_Register() ** ** Purpose: Register an OBEX profile with SDP ** ** Parameters: ** ** char *p_name service name; optional (may be NULL) ** UINT32 *phSDP handle to the created record; cannot be NULL ** UINT8 scn scn desired for the service; must be > 0 ** UINT16 version version of the service; optional (may be 0) ** ** Returns: (tGOEP_ERRORS) GOEP_SUCCESS if ok; GOEP_ERROR on error ** ** Notes: ** ** ** Preconditions: ** - phSDP must be set (to return the SDP record handle) ** - scn must be set ** ** Postconditions: ** - ** *****************************************************************************/ GOEP_API extern tGOEP_ERRORS GOEP_Register (char *p_name, UINT32 *p_sdp_handle, UINT8 scn, UINT8 num_srv_class, UINT16 *p_service_class, UINT16 profile_id, UINT16 version); /***************************************************************************** ** ** Function: GOEP_Register2() ** ** Purpose: Register an OBEX 1.5 profile with SDP ** ** Parameters: ** ** char *p_name service name; optional (may be NULL) ** UINT32 *phSDP handle to the created record; cannot be NULL ** UINT16 psm psm desired for the service; must be an legal L2CAP dynamic PSM ** UINT16 version version of the service; optional (may be 0) ** ** Returns: (tGOEP_ERRORS) GOEP_SUCCESS if ok; GOEP_ERROR on error ** ** Notes: ** ** ** Preconditions: ** - phSDP must be set (to return the SDP record handle) ** - psm must be set ** ** Postconditions: ** - ** *****************************************************************************/ GOEP_API extern tGOEP_ERRORS GOEP_Register2 (char *p_name, UINT32 *phSDP, UINT16 psm, UINT8 num_srv_class, UINT16 *p_service_class, UINT16 profile_id, UINT16 version); /***************************************************************************** ** ** Function: GOEP_AddProtoLists() ** ** Purpose: Add the AdditionalProtocolDescriptorLists attribute ** to a SDP record ** ** Parameters: ** ** UINT32 sdp_hdl the SDP record handle ** UINT8 scn scn desired for the service; must be > 0 ** ** Returns: (tGOEP_ERRORS) GOEP_SUCCESS if ok; GOEP_ERROR on error ** ** Notes: ** ** ** Preconditions: ** - sdp_hdl must be set (to the SDP record handle from GOEP_Register()) ** - scn must be set ** ** Postconditions: ** - ** *****************************************************************************/ GOEP_API extern tGOEP_ERRORS GOEP_AddProtoLists ( UINT32 sdp_hdl, UINT8 scn); /*** Debug Tracing support ***/ #if BT_USE_TRACES == TRUE GOEP_API extern char *GOEP_ErrorName (tGOEP_ERRORS error); GOEP_API extern void GOEP_TraceSupportedDataTypes(UINT8 data_types, UINT8 *p_data_types); #else #ifndef BTE_SIM_APP /* define these trace functions out */ #define GOEP_CodeName(_x) "" #define GOEP_ErrorName(_x) "" #endif #define GOEP_TraceSupportedDataTypes(x, y) #endif /***************************************************************************** ** ** Design notes: ** ** The responsibilities handle by this module include: ** ** a) Function signatures which assure the proper header fields are ** set for the GOEP connection establishment, GOEP put, and GOEP get. ** Required fields / headers are filled in through the API function ** parameters. Extensions beyond the required fields / headers ** must be set through the tOBEX_HEADERS *p_headers parameter. ** ** b) Debug error checking for required fields and prohibited fields ** for the GOEP connection establishment, GOEP put, and GOEP get. ** With debugging on, non-optional headers set in the p_headers ** parameter will generate a Widcomm assertion error. ** ** c) Does NOT include checks of any kind on the contents of the ** authentication or authentication response headers. In fact, ** the logic for encoding, decoding, validating, and calculating ** authentication data is outside the scope of GOEP and OBEX. ** Refer to IrOBEX v1.2 sections 2.2.13, 2.2.14, and 3.5. ** ** d) Does NOT include checks of any kind on the contents of the ** data (body headers) sent or received. ** ** *****************************************************************************/ #ifdef __cplusplus } #endif #endif /* GOEP_UTIL_H */