Zephyr API Documentation  2.7.0-rc2
A Scalable Open Source RTOS
ots.h File Reference
#include <zephyr/types.h>
#include <sys/byteorder.h>
#include <sys/types.h>
#include <sys/util.h>
#include <bluetooth/conn.h>
#include <bluetooth/uuid.h>

Go to the source code of this file.

Data Structures

struct  bt_ots_obj_type
 Type of an OTS object. More...
 
struct  bt_ots_obj_size
 Descriptor for OTS Object Size parameter. More...
 
struct  bt_ots_obj_metadata
 Descriptor for OTS object initialization. More...
 
struct  bt_ots_feat
 Features of the OTS. More...
 
struct  bt_ots_cb
 OTS callback structure. More...
 
struct  bt_ots_init
 Descriptor for OTS initialization. More...
 

Macros

#define BT_OTS_OBJ_ID_SIZE   6
 Size of OTS object ID (in bytes). More...
 
#define BT_OTS_OBJ_ID_MIN   0x000000000100
 Minimum allowed value for object ID (except ID for directory listing) More...
 
#define BT_OTS_OBJ_ID_MAX   0xFFFFFFFFFFFF
 Maximum allowed value for object ID (except ID for directory listing) More...
 
#define OTS_OBJ_ID_DIR_LIST   0x000000000000
 ID of the Directory Listing Object. More...
 
#define BT_OTS_OBJ_ID_MASK   BIT64_MASK(48)
 Mask for OTS object IDs, preserving the 48 bits. More...
 
#define BT_OTS_OBJ_ID_STR_LEN   15
 Length of OTS object ID string (in bytes). More...
 
#define BT_OTS_OBJ_SET_PROP_DELETE(prop)    WRITE_BIT(prop, BT_OTS_OBJ_PROP_DELETE, 1)
 Set BT_OTS_OBJ_PROP_DELETE property. More...
 
#define BT_OTS_OBJ_SET_PROP_EXECUTE(prop)    WRITE_BIT(prop, BT_OTS_OBJ_PROP_EXECUTE, 1)
 Set BT_OTS_OBJ_PROP_EXECUTE property. More...
 
#define BT_OTS_OBJ_SET_PROP_READ(prop)    WRITE_BIT(prop, BT_OTS_OBJ_PROP_READ, 1)
 Set BT_OTS_OBJ_PROP_READ property. More...
 
#define BT_OTS_OBJ_SET_PROP_WRITE(prop)    WRITE_BIT(prop, BT_OTS_OBJ_PROP_WRITE, 1)
 Set BT_OTS_OBJ_PROP_WRITE property. More...
 
#define BT_OTS_OBJ_SET_PROP_APPEND(prop)    WRITE_BIT(prop, BT_OTS_OBJ_PROP_APPEND, 1)
 Set BT_OTS_OBJ_PROP_APPEND property. More...
 
#define BT_OTS_OBJ_SET_PROP_TRUNCATE(prop)    WRITE_BIT(prop, BT_OTS_OBJ_PROP_TRUNCATE, 1)
 Set BT_OTS_OBJ_PROP_TRUNCATE property. More...
 
#define BT_OTS_OBJ_SET_PROP_PATCH(prop)    WRITE_BIT(prop, BT_OTS_OBJ_PROP_PATCH, 1)
 Set BT_OTS_OBJ_PROP_PATCH property. More...
 
#define BT_OTS_OBJ_SET_PROP_MARKED(prop)    WRITE_BIT(prop, BT_OTS_OBJ_PROP_MARKED, 1)
 Set BT_OTS_OBJ_SET_PROP_MARKED property. More...
 
#define BT_OTS_OBJ_GET_PROP_DELETE(prop)    ((prop) & BIT(BT_OTS_OBJ_PROP_DELETE))
 Get BT_OTS_OBJ_PROP_DELETE property. More...
 
#define BT_OTS_OBJ_GET_PROP_EXECUTE(prop)    ((prop) & BIT(BT_OTS_OBJ_PROP_EXECUTE))
 Get BT_OTS_OBJ_PROP_EXECUTE property. More...
 
#define BT_OTS_OBJ_GET_PROP_READ(prop)    ((prop) & BIT(BT_OTS_OBJ_PROP_READ))
 Get BT_OTS_OBJ_PROP_READ property. More...
 
#define BT_OTS_OBJ_GET_PROP_WRITE(prop)    ((prop) & BIT(BT_OTS_OBJ_PROP_WRITE))
 Get BT_OTS_OBJ_PROP_WRITE property. More...
 
#define BT_OTS_OBJ_GET_PROP_APPEND(prop)    ((prop) & BIT(BT_OTS_OBJ_PROP_APPEND))
 Get BT_OTS_OBJ_PROP_APPEND property. More...
 
#define BT_OTS_OBJ_GET_PROP_TRUNCATE(prop)    ((prop) & BIT(BT_OTS_OBJ_PROP_TRUNCATE))
 Get BT_OTS_OBJ_PROP_TRUNCATE property. More...
 
#define BT_OTS_OBJ_GET_PROP_PATCH(prop)    ((prop) & BIT(BT_OTS_OBJ_PROP_PATCH))
 Get BT_OTS_OBJ_PROP_PATCH property. More...
 
#define BT_OTS_OBJ_GET_PROP_MARKED(prop)    ((prop) & BIT(BT_OTS_OBJ_PROP_MARKED))
 Get BT_OTS_OBJ_PROP_MARKED property. More...
 
#define BT_OTS_OACP_SET_FEAT_CREATE(feat)    WRITE_BIT(feat, BT_OTS_OACP_FEAT_CREATE, 1)
 Set BT_OTS_OACP_SET_FEAT_CREATE feature. More...
 
#define BT_OTS_OACP_SET_FEAT_DELETE(feat)    WRITE_BIT(feat, BT_OTS_OACP_FEAT_DELETE, 1)
 Set BT_OTS_OACP_FEAT_DELETE feature. More...
 
#define BT_OTS_OACP_SET_FEAT_CHECKSUM(feat)    WRITE_BIT(feat, BT_OTS_OACP_FEAT_CHECKSUM, 1)
 Set BT_OTS_OACP_FEAT_CHECKSUM feature. More...
 
#define BT_OTS_OACP_SET_FEAT_EXECUTE(feat)    WRITE_BIT(feat, BT_OTS_OACP_FEAT_EXECUTE, 1)
 Set BT_OTS_OACP_FEAT_EXECUTE feature. More...
 
#define BT_OTS_OACP_SET_FEAT_READ(feat)    WRITE_BIT(feat, BT_OTS_OACP_FEAT_READ, 1)
 Set BT_OTS_OACP_FEAT_READ feature. More...
 
#define BT_OTS_OACP_SET_FEAT_WRITE(feat)    WRITE_BIT(feat, BT_OTS_OACP_FEAT_WRITE, 1)
 Set BT_OTS_OACP_FEAT_WRITE feature. More...
 
#define BT_OTS_OACP_SET_FEAT_APPEND(feat)    WRITE_BIT(feat, BT_OTS_OACP_FEAT_APPEND, 1)
 Set BT_OTS_OACP_FEAT_APPEND feature. More...
 
#define BT_OTS_OACP_SET_FEAT_TRUNCATE(feat)    WRITE_BIT(feat, BT_OTS_OACP_FEAT_TRUNCATE, 1)
 Set BT_OTS_OACP_FEAT_TRUNCATE feature. More...
 
#define BT_OTS_OACP_SET_FEAT_PATCH(feat)    WRITE_BIT(feat, BT_OTS_OACP_FEAT_PATCH, 1)
 Set BT_OTS_OACP_FEAT_PATCH feature. More...
 
#define BT_OTS_OACP_SET_FEAT_ABORT(feat)    WRITE_BIT(feat, BT_OTS_OACP_FEAT_ABORT, 1)
 Set BT_OTS_OACP_FEAT_ABORT feature. More...
 
#define BT_OTS_OACP_GET_FEAT_CREATE(feat)    ((feat) & BIT(BT_OTS_OACP_FEAT_CREATE))
 Get BT_OTS_OACP_FEAT_CREATE feature. More...
 
#define BT_OTS_OACP_GET_FEAT_DELETE(feat)    ((feat) & BIT(BT_OTS_OACP_FEAT_DELETE))
 Get BT_OTS_OACP_FEAT_DELETE feature. More...
 
#define BT_OTS_OACP_GET_FEAT_CHECKSUM(feat)    ((feat) & BIT(BT_OTS_OACP_FEAT_CHECKSUM))
 Get BT_OTS_OACP_FEAT_CHECKSUM feature. More...
 
#define BT_OTS_OACP_GET_FEAT_EXECUTE(feat)    ((feat) & BIT(BT_OTS_OACP_FEAT_EXECUTE))
 Get BT_OTS_OACP_FEAT_EXECUTE feature. More...
 
#define BT_OTS_OACP_GET_FEAT_READ(feat)    ((feat) & BIT(BT_OTS_OACP_FEAT_READ))
 Get BT_OTS_OACP_FEAT_READ feature. More...
 
#define BT_OTS_OACP_GET_FEAT_WRITE(feat)    ((feat) & BIT(BT_OTS_OACP_FEAT_WRITE))
 Get BT_OTS_OACP_FEAT_WRITE feature. More...
 
#define BT_OTS_OACP_GET_FEAT_APPEND(feat)    ((feat) & BIT(BT_OTS_OACP_FEAT_APPEND))
 Get BT_OTS_OACP_FEAT_APPEND feature. More...
 
#define BT_OTS_OACP_GET_FEAT_TRUNCATE(feat)    ((feat) & BIT(BT_OTS_OACP_FEAT_TRUNCATE))
 Get BT_OTS_OACP_FEAT_TRUNCATE feature. More...
 
#define BT_OTS_OACP_GET_FEAT_PATCH(feat)    ((feat) & BIT(BT_OTS_OACP_FEAT_PATCH))
 Get BT_OTS_OACP_FEAT_PATCH feature. More...
 
#define BT_OTS_OACP_GET_FEAT_ABORT(feat)    ((feat) & BIT(BT_OTS_OACP_FEAT_ABORT))
 Get BT_OTS_OACP_FEAT_ABORT feature. More...
 
#define BT_OTS_OLCP_SET_FEAT_GO_TO(feat)    WRITE_BIT(feat, BT_OTS_OLCP_FEAT_GO_TO, 1)
 Set BT_OTS_OLCP_FEAT_GO_TO feature. More...
 
#define BT_OTS_OLCP_SET_FEAT_ORDER(feat)    WRITE_BIT(feat, BT_OTS_OLCP_FEAT_ORDER, 1)
 Set BT_OTS_OLCP_FEAT_ORDER feature. More...
 
#define BT_OTS_OLCP_SET_FEAT_NUM_REQ(feat)    WRITE_BIT(feat, BT_OTS_OLCP_FEAT_NUM_REQ, 1)
 Set BT_OTS_OLCP_FEAT_NUM_REQ feature. More...
 
#define BT_OTS_OLCP_SET_FEAT_CLEAR(feat)    WRITE_BIT(feat, BT_OTS_OLCP_FEAT_CLEAR, 1)
 Set BT_OTS_OLCP_FEAT_CLEAR feature. More...
 
#define BT_OTS_OLCP_GET_FEAT_GO_TO(feat)    ((feat) & BIT(BT_OTS_OLCP_FEAT_GO_TO))
 Get BT_OTS_OLCP_GET_FEAT_GO_TO feature. More...
 
#define BT_OTS_OLCP_GET_FEAT_ORDER(feat)    ((feat) & BIT(BT_OTS_OLCP_FEAT_ORDER))
 Get BT_OTS_OLCP_GET_FEAT_ORDER feature. More...
 
#define BT_OTS_OLCP_GET_FEAT_NUM_REQ(feat)    ((feat) & BIT(BT_OTS_OLCP_FEAT_NUM_REQ))
 Get BT_OTS_OLCP_GET_FEAT_NUM_REQ feature. More...
 
#define BT_OTS_OLCP_GET_FEAT_CLEAR(feat)    ((feat) & BIT(BT_OTS_OLCP_FEAT_CLEAR))
 Get BT_OTS_OLCP_GET_FEAT_CLEAR feature. More...
 

Enumerations

enum  {
  BT_OTS_OBJ_PROP_DELETE = 0 , BT_OTS_OBJ_PROP_EXECUTE = 1 , BT_OTS_OBJ_PROP_READ = 2 , BT_OTS_OBJ_PROP_WRITE = 3 ,
  BT_OTS_OBJ_PROP_APPEND = 4 , BT_OTS_OBJ_PROP_TRUNCATE = 5 , BT_OTS_OBJ_PROP_PATCH = 6 , BT_OTS_OBJ_PROP_MARKED = 7
}
 Properties of an OTS object. More...
 
enum  {
  BT_OTS_OACP_FEAT_CREATE = 0 , BT_OTS_OACP_FEAT_DELETE = 1 , BT_OTS_OACP_FEAT_CHECKSUM = 2 , BT_OTS_OACP_FEAT_EXECUTE = 3 ,
  BT_OTS_OACP_FEAT_READ = 4 , BT_OTS_OACP_FEAT_WRITE = 5 , BT_OTS_OACP_FEAT_APPEND = 6 , BT_OTS_OACP_FEAT_TRUNCATE = 7 ,
  BT_OTS_OACP_FEAT_PATCH = 8 , BT_OTS_OACP_FEAT_ABORT = 9
}
 Object Action Control Point Feature bits. More...
 
enum  { BT_OTS_OLCP_FEAT_GO_TO = 0 , BT_OTS_OLCP_FEAT_ORDER = 1 , BT_OTS_OLCP_FEAT_NUM_REQ = 2 , BT_OTS_OLCP_FEAT_CLEAR = 3 }
 Object List Control Point Feature bits. More...
 

Functions

int bt_ots_obj_add (struct bt_ots *ots, struct bt_ots_obj_metadata *obj_init)
 Add an object to the OTS instance. More...
 
int bt_ots_obj_delete (struct bt_ots *ots, uint64_t id)
 Delete an object from the OTS instance. More...
 
voidbt_ots_svc_decl_get (struct bt_ots *ots)
 Get the service declaration attribute. More...
 
int bt_ots_init (struct bt_ots *ots, struct bt_ots_init *ots_init)
 Initialize the OTS instance. More...
 
struct bt_ots * bt_ots_free_instance_get (void)
 Get a free instance of OTS from the pool. More...
 
static int bt_ots_obj_id_to_str (uint64_t obj_id, char *str, size_t len)
 Converts binary OTS Object ID to string. More...