/usr/include/openobex/obex_const.h is in libopenobex1-dev 1.5-2build1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 | /**
\file openobex/obex_const.h
OpenOBEX library - Free implementation of the Object Exchange protocol.
Copyright (C) 1999-2000 Dag Brattli <dagb@cs.uit.no>
Copyright (C) 1999-2000 Pontus Fuchs <pontus.fuchs@tactel.se>
Copyright (C) 2001-2002 Jean Tourrilhes <jt@hpl.hp.com>
Copyright (C) 2002-2006 Marcel Holtmann <marcel@holtmann.org>
Copyright (C) 2002-2008 Christian W. Zuckschwerdt <zany@triq.net>
Copyright (C) 2002 Dmitry Kasatkin <dmitry.kasatkin@nokia.com>
Copyright (C) 2005 Herton Ronaldo Krzesinski <herton@conectiva.com.br>
Copyright (C) 2005-2008 Alex Kanavin <ak@sensi.org>
Copyright (C) 2006 Johan Hedberg <johan.hedberg@nokia.com>
Copyright (C) 2007-2008 Hendrik Sattler <post@hendrik-sattler.de>
OpenOBEX is free software; you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
published by the Free Software Foundation; either version 2.1 of
the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with OpenOBEX. If not, see <http://www.gnu.org/>.
*/
#ifndef __OBEX_CONST_H
#define __OBEX_CONST_H
#ifdef __cplusplus
extern "C" {
#endif
#include <inttypes.h>
typedef union {
uint32_t bq4;
uint8_t bq1;
const uint8_t *bs;
} obex_headerdata_t;
typedef struct {
int (*connect)(obex_t *handle, void * customdata);
int (*disconnect)(obex_t *handle, void * customdata);
int (*listen)(obex_t *handle, void * customdata);
int (*write)(obex_t *handle, void * customdata, uint8_t *buf, int buflen);
int (*handleinput)(obex_t *handle, void * customdata, int timeout);
void * customdata;
} obex_ctrans_t;
/** USB-specific OBEX interface information */
typedef struct {
/** Manufacturer, e.g. Nokia */
char *manufacturer;
/** Product, e.g. Nokia 6680 */
char *product;
/** Product serial number */
char *serial;
/** USB device configuration description */
char *configuration;
/** Control interface description */
char *control_interface;
/** Idle data interface description, typically empty */
char *data_interface_idle;
/** Active data interface description, typically empty */
char *data_interface_active;
/** Internal information for the transport layer in the library */
struct obex_usb_intf_transport_t *intf;
} obex_usb_intf_t;
/** Generic OBEX interface information */
typedef union {
/** USB-specific OBEX interface information */
obex_usb_intf_t usb;
//obex_bluetooth_intf_t bt; // to be added
} obex_interface_t;
#define OBEX_MODE_CLIENT 0
#define OBEX_MODE_SERVER 1
/* compatibility definitions */
#define OBEX_CLIENT OBEX_MODE_CLIENT
#define OBEX_SERVER OBEX_MODE_SERVER
/* Possible events */
#define OBEX_EV_PROGRESS 0 /* Progress has been made */
#define OBEX_EV_REQHINT 1 /* An incoming request is about to come */
#define OBEX_EV_REQ 2 /* An incoming request has arrived */
#define OBEX_EV_REQDONE 3 /* Request has finished */
#define OBEX_EV_LINKERR 4 /* Link has been disconnected */
#define OBEX_EV_PARSEERR 5 /* Malformed data encountered */
#define OBEX_EV_ACCEPTHINT 6 /* Connection accepted */
#define OBEX_EV_ABORT 7 /* Request was aborted */
#define OBEX_EV_STREAMEMPTY 8 /* Need to feed more data when sending a stream */
#define OBEX_EV_STREAMAVAIL 9 /* Time to pick up data when receiving a stream */
#define OBEX_EV_UNEXPECTED 10 /* Unexpected data, not fatal */
#define OBEX_EV_REQCHECK 11 /* First packet of an incoming request has been parsed */
/* For OBEX_Init() */
#define OBEX_FL_KEEPSERVER 0x02 /* Keep the server alive */
#define OBEX_FL_FILTERHINT 0x04 /* Filter devices based on hint bit */
#define OBEX_FL_FILTERIAS 0x08 /* Filter devices based on IAS entry */
/* For OBEX_ObjectAddHeader */
#define OBEX_FL_FIT_ONE_PACKET 0x01 /* This header must fit in one packet */
#define OBEX_FL_STREAM_START 0x02 /* Start of streaming body */
#define OBEX_FL_STREAM_DATA 0x04 /* Body-stream data */
#define OBEX_FL_STREAM_DATAEND 0x08 /* Body stream last data */
#define OBEX_FL_SUSPEND 0x10 /* Suspend after sending this header */
/* Transports */
#define OBEX_TRANS_IRDA 1
#define OBEX_TRANS_INET 2
#define OBEX_TRANS_CUST 3 /* Fixme: This will go away in future */
#define OBEX_TRANS_CUSTOM 3
#define OBEX_TRANS_BLUETOOTH 4
#define OBEX_TRANS_FD 5
#define OBEX_TRANS_USB 6
/* Standard headers */
#define OBEX_HDR_TYPE_UNICODE (0 << 6) /* zero terminated unicode string (network byte order) */
#define OBEX_HDR_TYPE_BYTES (1 << 6) /* byte array */
#define OBEX_HDR_TYPE_UINT8 (2 << 6) /* 8bit unsigned integer */
#define OBEX_HDR_TYPE_UINT32 (3 << 6) /* 32bit unsigned integer */
#define OBEX_HDR_TYPE_MASK 0xc0
#define OBEX_HDR_ID_COUNT 0x00 /* Number of objects (used by connect) */
#define OBEX_HDR_ID_NAME 0x01 /* Name of the object */
#define OBEX_HDR_ID_TYPE 0x02 /* Type of the object */
#define OBEX_HDR_ID_LENGTH 0x03 /* Total length of object */
#define OBEX_HDR_ID_TIME 0x04 /* Last modification time of (ISO8601) */
#define OBEX_HDR_ID_DESCRIPTION 0x05 /* Description of object */
#define OBEX_HDR_ID_TARGET 0x06 /* Identifies the target for the object */
#define OBEX_HDR_ID_HTTP 0x07 /* An HTTP 1.x header */
#define OBEX_HDR_ID_BODY 0x08 /* Data part of the object */
#define OBEX_HDR_ID_BODY_END 0x09 /* Last data part of the object */
#define OBEX_HDR_ID_WHO 0x0a /* Identifies the sender of the object */
#define OBEX_HDR_ID_CONNECTION 0x0b /* Connection identifier */
#define OBEX_HDR_ID_APPARAM 0x0c /* Application parameters */
#define OBEX_HDR_ID_AUTHCHAL 0x0d /* Authentication challenge */
#define OBEX_HDR_ID_AUTHRESP 0x0e /* Authentication response */
#define OBEX_HDR_ID_CREATOR 0x0f /* indicates the creator of an object */
#define OBEX_HDR_ID_WANUUID 0x10 /* uniquely identifies the network client (OBEX server) */
#define OBEX_HDR_ID_OBJECTCLASS 0x11 /* OBEX Object class of object */
#define OBEX_HDR_ID_SESSIONPARAM 0x12 /* Parameters used in session commands/responses */
#define OBEX_HDR_ID_SESSIONSEQ 0x13 /* Sequence number used in each OBEX packet for reliability */
#define OBEX_HDR_ID_MASK 0x3f
#define OBEX_HDR_EMPTY 0x00 /* Empty header (buggy OBEX servers) */
#define OBEX_HDR_COUNT (OBEX_HDR_ID_COUNT | OBEX_HDR_TYPE_UINT32 )
#define OBEX_HDR_NAME (OBEX_HDR_ID_NAME | OBEX_HDR_TYPE_UNICODE)
#define OBEX_HDR_TYPE (OBEX_HDR_ID_TYPE | OBEX_HDR_TYPE_BYTES )
#define OBEX_HDR_LENGTH (OBEX_HDR_ID_LENGTH | OBEX_HDR_TYPE_UINT32 )
#define OBEX_HDR_TIME (OBEX_HDR_ID_TIME | OBEX_HDR_TYPE_BYTES ) /* Format: ISO 8601 */
#define OBEX_HDR_TIME2 (OBEX_HDR_ID_TIME | OBEX_HDR_TYPE_UINT32 ) /* Deprecated use HDR_TIME instead */
#define OBEX_HDR_DESCRIPTION (OBEX_HDR_ID_DESCRIPTION | OBEX_HDR_TYPE_UNICODE)
#define OBEX_HDR_TARGET (OBEX_HDR_ID_TARGET | OBEX_HDR_TYPE_BYTES )
#define OBEX_HDR_HTTP (OBEX_HDR_ID_HTTP | OBEX_HDR_TYPE_BYTES )
#define OBEX_HDR_BODY (OBEX_HDR_ID_BODY | OBEX_HDR_TYPE_BYTES )
#define OBEX_HDR_BODY_END (OBEX_HDR_ID_BODY_END | OBEX_HDR_TYPE_BYTES )
#define OBEX_HDR_WHO (OBEX_HDR_ID_WHO | OBEX_HDR_TYPE_BYTES )
#define OBEX_HDR_CONNECTION (OBEX_HDR_ID_CONNECTION | OBEX_HDR_TYPE_UINT32 )
#define OBEX_HDR_APPARAM (OBEX_HDR_ID_APPARAM | OBEX_HDR_TYPE_BYTES )
#define OBEX_HDR_AUTHCHAL (OBEX_HDR_ID_AUTHCHAL | OBEX_HDR_TYPE_BYTES )
#define OBEX_HDR_AUTHRESP (OBEX_HDR_ID_AUTHRESP | OBEX_HDR_TYPE_BYTES )
#define OBEX_HDR_CREATOR (OBEX_HDR_ID_CREATOR | OBEX_HDR_TYPE_BYTES )
#define OBEX_HDR_WANUUID (OBEX_HDR_ID_WANUUID | OBEX_HDR_TYPE_BYTES )
#define OBEX_HDR_OBJECTCLASS (OBEX_HDR_ID_OBJECTCLASS | OBEX_HDR_TYPE_BYTES )
#define OBEX_HDR_SESSIONPARAM (OBEX_HDR_ID_SESSIONPARAM | OBEX_HDR_TYPE_BYTES )
#define OBEX_HDR_SESSIONSEQ (OBEX_HDR_ID_SESSIONSEQ | OBEX_HDR_TYPE_UINT8 )
/* Commands */
#define OBEX_CMD_CONNECT 0x00
#define OBEX_CMD_DISCONNECT 0x01
#define OBEX_CMD_PUT 0x02
#define OBEX_CMD_GET 0x03
#define OBEX_CMD_SETPATH 0x05
#define OBEX_CMD_SESSION 0x07 /* used for reliable session support */
#define OBEX_CMD_ABORT 0x7f
#define OBEX_FINAL 0x80
/* Responses */
#define OBEX_RSP_CONTINUE 0x10
#define OBEX_RSP_SWITCH_PRO 0x11
#define OBEX_RSP_SUCCESS 0x20
#define OBEX_RSP_CREATED 0x21
#define OBEX_RSP_ACCEPTED 0x22
#define OBEX_RSP_NON_AUTHORITATIVE 0x23
#define OBEX_RSP_NO_CONTENT 0x24
#define OBEX_RSP_RESET_CONTENT 0x25
#define OBEX_RSP_PARTIAL_CONTENT 0x26
#define OBEX_RSP_MULTIPLE_CHOICES 0x30
#define OBEX_RSP_MOVED_PERMANENTLY 0x31
#define OBEX_RSP_MOVED_TEMPORARILY 0x32
#define OBEX_RSP_SEE_OTHER 0x33
#define OBEX_RSP_NOT_MODIFIED 0x34
#define OBEX_RSP_USE_PROXY 0x35
#define OBEX_RSP_BAD_REQUEST 0x40
#define OBEX_RSP_UNAUTHORIZED 0x41
#define OBEX_RSP_PAYMENT_REQUIRED 0x42
#define OBEX_RSP_FORBIDDEN 0x43
#define OBEX_RSP_NOT_FOUND 0x44
#define OBEX_RSP_METHOD_NOT_ALLOWED 0x45
#define OBEX_RSP_NOT_ACCEPTABLE 0x46
#define OBEX_RSP_PROXY_AUTH_REQUIRED 0x47
#define OBEX_RSP_REQUEST_TIME_OUT 0x48
#define OBEX_RSP_CONFLICT 0x49
#define OBEX_RSP_GONE 0x4a
#define OBEX_RSP_LENGTH_REQUIRED 0x4b
#define OBEX_RSP_PRECONDITION_FAILED 0x4c
#define OBEX_RSP_REQ_ENTITY_TOO_LARGE 0x4d
#define OBEX_RSP_REQ_URL_TOO_LARGE 0x4e
#define OBEX_RSP_UNSUPPORTED_MEDIA_TYPE 0x4f
#define OBEX_RSP_INTERNAL_SERVER_ERROR 0x50
#define OBEX_RSP_NOT_IMPLEMENTED 0x51
#define OBEX_RSP_BAD_GATEWAY 0x52
#define OBEX_RSP_SERVICE_UNAVAILABLE 0x53
#define OBEX_RSP_GATEWAY_TIMEOUT 0x54
#define OBEX_RSP_VERSION_NOT_SUPPORTED 0x55
#define OBEX_RSP_DATABASE_FULL 0x60
#define OBEX_RSP_DATABASE_LOCKED 0x61
/* Min, Max and default transport MTU */
#define OBEX_DEFAULT_MTU 1024
#define OBEX_MINIMUM_MTU 255
#define OBEX_MAXIMUM_MTU 65535
/** Optimum MTU for various transport (optimum for throughput).
* The user/application has to set them via OBEX_SetTransportMTU().
* If you are worried about safety or latency, stick with the current
* default... - Jean II */
#define OBEX_IRDA_OPT_MTU (7 * 2039) /* 7 IrLAP frames */
#ifdef __cplusplus
}
#endif
#endif /* __OBEX_CONST_H */
|