1.蓝牙应用
This commit is contained in:
parent
3e94aa8dd5
commit
e991dec869
481
code/application/source/sf_app/code/source/sf_blue/inc/bluetooth/bluetooth.h
Executable file
481
code/application/source/sf_app/code/source/sf_blue/inc/bluetooth/bluetooth.h
Executable file
|
@ -0,0 +1,481 @@
|
||||||
|
/* SPDX-License-Identifier: GPL-2.0-or-later */
|
||||||
|
/*
|
||||||
|
*
|
||||||
|
* BlueZ - Bluetooth protocol stack for Linux
|
||||||
|
*
|
||||||
|
* Copyright (C) 2000-2001 Qualcomm Incorporated
|
||||||
|
* Copyright (C) 2002-2003 Maxim Krasnyansky <maxk@qualcomm.com>
|
||||||
|
* Copyright (C) 2002-2010 Marcel Holtmann <marcel@holtmann.org>
|
||||||
|
*
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef __BLUETOOTH_H
|
||||||
|
#define __BLUETOOTH_H
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <stdint.h>
|
||||||
|
#include <string.h>
|
||||||
|
#include <endian.h>
|
||||||
|
#include <byteswap.h>
|
||||||
|
#include <netinet/in.h>
|
||||||
|
|
||||||
|
#ifndef AF_BLUETOOTH
|
||||||
|
#define AF_BLUETOOTH 31
|
||||||
|
#define PF_BLUETOOTH AF_BLUETOOTH
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define BTPROTO_L2CAP 0
|
||||||
|
#define BTPROTO_HCI 1
|
||||||
|
#define BTPROTO_SCO 2
|
||||||
|
#define BTPROTO_RFCOMM 3
|
||||||
|
#define BTPROTO_BNEP 4
|
||||||
|
#define BTPROTO_CMTP 5
|
||||||
|
#define BTPROTO_HIDP 6
|
||||||
|
#define BTPROTO_AVDTP 7
|
||||||
|
#define BTPROTO_ISO 8
|
||||||
|
|
||||||
|
#define SOL_HCI 0
|
||||||
|
#define SOL_L2CAP 6
|
||||||
|
#define SOL_SCO 17
|
||||||
|
#define SOL_RFCOMM 18
|
||||||
|
|
||||||
|
#ifndef SOL_BLUETOOTH
|
||||||
|
#define SOL_BLUETOOTH 274
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define BT_SECURITY 4
|
||||||
|
struct bt_security {
|
||||||
|
uint8_t level;
|
||||||
|
uint8_t key_size;
|
||||||
|
};
|
||||||
|
#define BT_SECURITY_SDP 0
|
||||||
|
#define BT_SECURITY_LOW 1
|
||||||
|
#define BT_SECURITY_MEDIUM 2
|
||||||
|
#define BT_SECURITY_HIGH 3
|
||||||
|
#define BT_SECURITY_FIPS 4
|
||||||
|
|
||||||
|
#define BT_DEFER_SETUP 7
|
||||||
|
|
||||||
|
#define BT_FLUSHABLE 8
|
||||||
|
|
||||||
|
#define BT_FLUSHABLE_OFF 0
|
||||||
|
#define BT_FLUSHABLE_ON 1
|
||||||
|
|
||||||
|
#define BT_POWER 9
|
||||||
|
struct bt_power {
|
||||||
|
uint8_t force_active;
|
||||||
|
};
|
||||||
|
#define BT_POWER_FORCE_ACTIVE_OFF 0
|
||||||
|
#define BT_POWER_FORCE_ACTIVE_ON 1
|
||||||
|
|
||||||
|
#define BT_CHANNEL_POLICY 10
|
||||||
|
|
||||||
|
/* BR/EDR only (default policy)
|
||||||
|
* AMP controllers cannot be used.
|
||||||
|
* Channel move requests from the remote device are denied.
|
||||||
|
* If the L2CAP channel is currently using AMP, move the channel to BR/EDR.
|
||||||
|
*/
|
||||||
|
#define BT_CHANNEL_POLICY_BREDR_ONLY 0
|
||||||
|
|
||||||
|
/* BR/EDR Preferred
|
||||||
|
* Allow use of AMP controllers.
|
||||||
|
* If the L2CAP channel is currently on AMP, move it to BR/EDR.
|
||||||
|
* Channel move requests from the remote device are allowed.
|
||||||
|
*/
|
||||||
|
#define BT_CHANNEL_POLICY_BREDR_PREFERRED 1
|
||||||
|
|
||||||
|
/* AMP Preferred
|
||||||
|
* Allow use of AMP controllers
|
||||||
|
* If the L2CAP channel is currently on BR/EDR and AMP controller
|
||||||
|
* resources are available, initiate a channel move to AMP.
|
||||||
|
* Channel move requests from the remote device are allowed.
|
||||||
|
* If the L2CAP socket has not been connected yet, try to create
|
||||||
|
* and configure the channel directly on an AMP controller rather
|
||||||
|
* than BR/EDR.
|
||||||
|
*/
|
||||||
|
#define BT_CHANNEL_POLICY_AMP_PREFERRED 2
|
||||||
|
|
||||||
|
#define BT_VOICE 11
|
||||||
|
struct bt_voice {
|
||||||
|
uint16_t setting;
|
||||||
|
};
|
||||||
|
|
||||||
|
#define BT_SNDMTU 12
|
||||||
|
#define BT_RCVMTU 13
|
||||||
|
|
||||||
|
#define BT_VOICE_TRANSPARENT 0x0003
|
||||||
|
#define BT_VOICE_CVSD_16BIT 0x0060
|
||||||
|
|
||||||
|
#define BT_PHY 14
|
||||||
|
|
||||||
|
#define BT_PHY_BR_1M_1SLOT 0x00000001
|
||||||
|
#define BT_PHY_BR_1M_3SLOT 0x00000002
|
||||||
|
#define BT_PHY_BR_1M_5SLOT 0x00000004
|
||||||
|
#define BT_PHY_EDR_2M_1SLOT 0x00000008
|
||||||
|
#define BT_PHY_EDR_2M_3SLOT 0x00000010
|
||||||
|
#define BT_PHY_EDR_2M_5SLOT 0x00000020
|
||||||
|
#define BT_PHY_EDR_3M_1SLOT 0x00000040
|
||||||
|
#define BT_PHY_EDR_3M_3SLOT 0x00000080
|
||||||
|
#define BT_PHY_EDR_3M_5SLOT 0x00000100
|
||||||
|
#define BT_PHY_LE_1M_TX 0x00000200
|
||||||
|
#define BT_PHY_LE_1M_RX 0x00000400
|
||||||
|
#define BT_PHY_LE_2M_TX 0x00000800
|
||||||
|
#define BT_PHY_LE_2M_RX 0x00001000
|
||||||
|
#define BT_PHY_LE_CODED_TX 0x00002000
|
||||||
|
#define BT_PHY_LE_CODED_RX 0x00004000
|
||||||
|
|
||||||
|
#define BT_MODE 15
|
||||||
|
|
||||||
|
#define BT_MODE_BASIC 0x00
|
||||||
|
#define BT_MODE_ERTM 0x01
|
||||||
|
#define BT_MODE_STREAMING 0x02
|
||||||
|
#define BT_MODE_LE_FLOWCTL 0x03
|
||||||
|
#define BT_MODE_EXT_FLOWCTL 0x04
|
||||||
|
|
||||||
|
#define BT_PKT_STATUS 16
|
||||||
|
|
||||||
|
#define BT_SCM_PKT_STATUS 0x03
|
||||||
|
|
||||||
|
#define BT_ISO_QOS 17
|
||||||
|
|
||||||
|
#define BT_ISO_QOS_CIG_UNSET 0xff
|
||||||
|
#define BT_ISO_QOS_CIS_UNSET 0xff
|
||||||
|
|
||||||
|
struct bt_iso_io_qos {
|
||||||
|
uint32_t interval;
|
||||||
|
uint16_t latency;
|
||||||
|
uint16_t sdu;
|
||||||
|
uint8_t phy;
|
||||||
|
uint8_t rtn;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct bt_iso_qos {
|
||||||
|
union {
|
||||||
|
uint8_t cig;
|
||||||
|
uint8_t big;
|
||||||
|
};
|
||||||
|
union {
|
||||||
|
uint8_t cis;
|
||||||
|
uint8_t bis;
|
||||||
|
};
|
||||||
|
union {
|
||||||
|
uint8_t sca;
|
||||||
|
uint8_t sync_interval;
|
||||||
|
};
|
||||||
|
uint8_t packing;
|
||||||
|
uint8_t framing;
|
||||||
|
struct bt_iso_io_qos in;
|
||||||
|
struct bt_iso_io_qos out;
|
||||||
|
};
|
||||||
|
|
||||||
|
#define BT_CODEC 19
|
||||||
|
struct bt_codec {
|
||||||
|
uint8_t id;
|
||||||
|
uint16_t cid;
|
||||||
|
uint16_t vid;
|
||||||
|
uint8_t data_path_id;
|
||||||
|
uint8_t num_caps;
|
||||||
|
struct codec_caps {
|
||||||
|
uint8_t len;
|
||||||
|
uint8_t data[];
|
||||||
|
} caps[];
|
||||||
|
} __attribute__((packed));
|
||||||
|
|
||||||
|
struct bt_codecs {
|
||||||
|
uint8_t num_codecs;
|
||||||
|
struct bt_codec codecs[];
|
||||||
|
} __attribute__((packed));
|
||||||
|
|
||||||
|
|
||||||
|
/* Connection and socket states */
|
||||||
|
enum {
|
||||||
|
BT_CONNECTED = 1, /* Equal to TCP_ESTABLISHED to make net code happy */
|
||||||
|
BT_OPEN,
|
||||||
|
BT_BOUND,
|
||||||
|
BT_LISTEN,
|
||||||
|
BT_CONNECT,
|
||||||
|
BT_CONNECT2,
|
||||||
|
BT_CONFIG,
|
||||||
|
BT_DISCONN,
|
||||||
|
BT_CLOSED
|
||||||
|
};
|
||||||
|
|
||||||
|
#define BT_ISO_BASE 20
|
||||||
|
|
||||||
|
/* Byte order conversions */
|
||||||
|
#if __BYTE_ORDER == __LITTLE_ENDIAN
|
||||||
|
#define htobs(d) (d)
|
||||||
|
#define htobl(d) (d)
|
||||||
|
#define htobll(d) (d)
|
||||||
|
#define btohs(d) (d)
|
||||||
|
#define btohl(d) (d)
|
||||||
|
#define btohll(d) (d)
|
||||||
|
#elif __BYTE_ORDER == __BIG_ENDIAN
|
||||||
|
#define htobs(d) bswap_16(d)
|
||||||
|
#define htobl(d) bswap_32(d)
|
||||||
|
#define htobll(d) bswap_64(d)
|
||||||
|
#define btohs(d) bswap_16(d)
|
||||||
|
#define btohl(d) bswap_32(d)
|
||||||
|
#define btohll(d) bswap_64(d)
|
||||||
|
#else
|
||||||
|
#error "Unknown byte order"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* Bluetooth unaligned access */
|
||||||
|
#define bt_get_unaligned(ptr) \
|
||||||
|
__extension__ ({ \
|
||||||
|
struct __attribute__((packed)) { \
|
||||||
|
__typeof__(*(ptr)) __v; \
|
||||||
|
} *__p = (__typeof__(__p)) (ptr); \
|
||||||
|
__p->__v; \
|
||||||
|
})
|
||||||
|
|
||||||
|
#define bt_put_unaligned(val, ptr) \
|
||||||
|
do { \
|
||||||
|
struct __attribute__((packed)) { \
|
||||||
|
__typeof__(*(ptr)) __v; \
|
||||||
|
} *__p = (__typeof__(__p)) (ptr); \
|
||||||
|
__p->__v = (val); \
|
||||||
|
} while(0)
|
||||||
|
|
||||||
|
#if __BYTE_ORDER == __LITTLE_ENDIAN
|
||||||
|
static inline uint64_t bt_get_le64(const void *ptr)
|
||||||
|
{
|
||||||
|
return bt_get_unaligned((const uint64_t *) ptr);
|
||||||
|
}
|
||||||
|
|
||||||
|
static inline uint64_t bt_get_be64(const void *ptr)
|
||||||
|
{
|
||||||
|
return bswap_64(bt_get_unaligned((const uint64_t *) ptr));
|
||||||
|
}
|
||||||
|
|
||||||
|
static inline uint32_t bt_get_le32(const void *ptr)
|
||||||
|
{
|
||||||
|
return bt_get_unaligned((const uint32_t *) ptr);
|
||||||
|
}
|
||||||
|
|
||||||
|
static inline uint32_t bt_get_be32(const void *ptr)
|
||||||
|
{
|
||||||
|
return bswap_32(bt_get_unaligned((const uint32_t *) ptr));
|
||||||
|
}
|
||||||
|
|
||||||
|
static inline uint16_t bt_get_le16(const void *ptr)
|
||||||
|
{
|
||||||
|
return bt_get_unaligned((const uint16_t *) ptr);
|
||||||
|
}
|
||||||
|
|
||||||
|
static inline uint16_t bt_get_be16(const void *ptr)
|
||||||
|
{
|
||||||
|
return bswap_16(bt_get_unaligned((const uint16_t *) ptr));
|
||||||
|
}
|
||||||
|
|
||||||
|
static inline void bt_put_le64(uint64_t val, const void *ptr)
|
||||||
|
{
|
||||||
|
bt_put_unaligned(val, (uint64_t *) ptr);
|
||||||
|
}
|
||||||
|
|
||||||
|
static inline void bt_put_be64(uint64_t val, const void *ptr)
|
||||||
|
{
|
||||||
|
bt_put_unaligned(bswap_64(val), (uint64_t *) ptr);
|
||||||
|
}
|
||||||
|
|
||||||
|
static inline void bt_put_le32(uint32_t val, const void *ptr)
|
||||||
|
{
|
||||||
|
bt_put_unaligned(val, (uint32_t *) ptr);
|
||||||
|
}
|
||||||
|
|
||||||
|
static inline void bt_put_be32(uint32_t val, const void *ptr)
|
||||||
|
{
|
||||||
|
bt_put_unaligned(bswap_32(val), (uint32_t *) ptr);
|
||||||
|
}
|
||||||
|
|
||||||
|
static inline void bt_put_le16(uint16_t val, const void *ptr)
|
||||||
|
{
|
||||||
|
bt_put_unaligned(val, (uint16_t *) ptr);
|
||||||
|
}
|
||||||
|
|
||||||
|
static inline void bt_put_be16(uint16_t val, const void *ptr)
|
||||||
|
{
|
||||||
|
bt_put_unaligned(bswap_16(val), (uint16_t *) ptr);
|
||||||
|
}
|
||||||
|
|
||||||
|
#elif __BYTE_ORDER == __BIG_ENDIAN
|
||||||
|
static inline uint64_t bt_get_le64(const void *ptr)
|
||||||
|
{
|
||||||
|
return bswap_64(bt_get_unaligned((const uint64_t *) ptr));
|
||||||
|
}
|
||||||
|
|
||||||
|
static inline uint64_t bt_get_be64(const void *ptr)
|
||||||
|
{
|
||||||
|
return bt_get_unaligned((const uint64_t *) ptr);
|
||||||
|
}
|
||||||
|
|
||||||
|
static inline uint32_t bt_get_le32(const void *ptr)
|
||||||
|
{
|
||||||
|
return bswap_32(bt_get_unaligned((const uint32_t *) ptr));
|
||||||
|
}
|
||||||
|
|
||||||
|
static inline uint32_t bt_get_be32(const void *ptr)
|
||||||
|
{
|
||||||
|
return bt_get_unaligned((const uint32_t *) ptr);
|
||||||
|
}
|
||||||
|
|
||||||
|
static inline uint16_t bt_get_le16(const void *ptr)
|
||||||
|
{
|
||||||
|
return bswap_16(bt_get_unaligned((const uint16_t *) ptr));
|
||||||
|
}
|
||||||
|
|
||||||
|
static inline uint16_t bt_get_be16(const void *ptr)
|
||||||
|
{
|
||||||
|
return bt_get_unaligned((const uint16_t *) ptr);
|
||||||
|
}
|
||||||
|
|
||||||
|
static inline void bt_put_le64(uint64_t val, const void *ptr)
|
||||||
|
{
|
||||||
|
bt_put_unaligned(bswap_64(val), (uint64_t *) ptr);
|
||||||
|
}
|
||||||
|
|
||||||
|
static inline void bt_put_be64(uint64_t val, const void *ptr)
|
||||||
|
{
|
||||||
|
bt_put_unaligned(val, (uint64_t *) ptr);
|
||||||
|
}
|
||||||
|
|
||||||
|
static inline void bt_put_le32(uint32_t val, const void *ptr)
|
||||||
|
{
|
||||||
|
bt_put_unaligned(bswap_32(val), (uint32_t *) ptr);
|
||||||
|
}
|
||||||
|
|
||||||
|
static inline void bt_put_be32(uint32_t val, const void *ptr)
|
||||||
|
{
|
||||||
|
bt_put_unaligned(val, (uint32_t *) ptr);
|
||||||
|
}
|
||||||
|
|
||||||
|
static inline void bt_put_le16(uint16_t val, const void *ptr)
|
||||||
|
{
|
||||||
|
bt_put_unaligned(bswap_16(val), (uint16_t *) ptr);
|
||||||
|
}
|
||||||
|
|
||||||
|
static inline void bt_put_be16(uint16_t val, const void *ptr)
|
||||||
|
{
|
||||||
|
bt_put_unaligned(val, (uint16_t *) ptr);
|
||||||
|
}
|
||||||
|
#else
|
||||||
|
#error "Unknown byte order"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* BD Address */
|
||||||
|
typedef struct {
|
||||||
|
uint8_t b[6];
|
||||||
|
} __attribute__((packed)) bdaddr_t;
|
||||||
|
|
||||||
|
/* BD Address type */
|
||||||
|
#define BDADDR_BREDR 0x00
|
||||||
|
#define BDADDR_LE_PUBLIC 0x01
|
||||||
|
#define BDADDR_LE_RANDOM 0x02
|
||||||
|
|
||||||
|
#define BDADDR_ANY (&(bdaddr_t) {{0, 0, 0, 0, 0, 0}})
|
||||||
|
#define BDADDR_ALL (&(bdaddr_t) {{0xff, 0xff, 0xff, 0xff, 0xff, 0xff}})
|
||||||
|
#define BDADDR_LOCAL (&(bdaddr_t) {{0, 0, 0, 0xff, 0xff, 0xff}})
|
||||||
|
|
||||||
|
/* Copy, swap, convert BD Address */
|
||||||
|
static inline int bacmp(const bdaddr_t *ba1, const bdaddr_t *ba2)
|
||||||
|
{
|
||||||
|
return memcmp(ba1, ba2, sizeof(bdaddr_t));
|
||||||
|
}
|
||||||
|
static inline void bacpy(bdaddr_t *dst, const bdaddr_t *src)
|
||||||
|
{
|
||||||
|
memcpy(dst, src, sizeof(bdaddr_t));
|
||||||
|
}
|
||||||
|
|
||||||
|
void baswap(bdaddr_t *dst, const bdaddr_t *src);
|
||||||
|
bdaddr_t *strtoba(const char *str);
|
||||||
|
char *batostr(const bdaddr_t *ba);
|
||||||
|
int ba2str(const bdaddr_t *ba, char *str);
|
||||||
|
int ba2strlc(const bdaddr_t *ba, char *str);
|
||||||
|
int str2ba(const char *str, bdaddr_t *ba);
|
||||||
|
int ba2oui(const bdaddr_t *ba, char *oui);
|
||||||
|
int bachk(const char *str);
|
||||||
|
|
||||||
|
int baprintf(const char *format, ...);
|
||||||
|
int bafprintf(FILE *stream, const char *format, ...);
|
||||||
|
int basprintf(char *str, const char *format, ...);
|
||||||
|
int basnprintf(char *str, size_t size, const char *format, ...);
|
||||||
|
|
||||||
|
void *bt_malloc(size_t size);
|
||||||
|
void *bt_malloc0(size_t size);
|
||||||
|
void bt_free(void *ptr);
|
||||||
|
|
||||||
|
int bt_error(uint16_t code);
|
||||||
|
const char *bt_compidtostr(int id);
|
||||||
|
|
||||||
|
typedef struct {
|
||||||
|
uint8_t data[3];
|
||||||
|
} uint24_t;
|
||||||
|
|
||||||
|
typedef struct {
|
||||||
|
uint8_t data[16];
|
||||||
|
} uint128_t;
|
||||||
|
|
||||||
|
static inline void bswap_128(const void *src, void *dst)
|
||||||
|
{
|
||||||
|
const uint8_t *s = (const uint8_t *) src;
|
||||||
|
uint8_t *d = (uint8_t *) dst;
|
||||||
|
int i;
|
||||||
|
|
||||||
|
for (i = 0; i < 16; i++)
|
||||||
|
d[15 - i] = s[i];
|
||||||
|
}
|
||||||
|
|
||||||
|
#if __BYTE_ORDER == __BIG_ENDIAN
|
||||||
|
|
||||||
|
#define ntoh64(x) (x)
|
||||||
|
|
||||||
|
static inline void ntoh128(const uint128_t *src, uint128_t *dst)
|
||||||
|
{
|
||||||
|
memcpy(dst, src, sizeof(uint128_t));
|
||||||
|
}
|
||||||
|
|
||||||
|
static inline void btoh128(const uint128_t *src, uint128_t *dst)
|
||||||
|
{
|
||||||
|
bswap_128(src, dst);
|
||||||
|
}
|
||||||
|
|
||||||
|
#else
|
||||||
|
|
||||||
|
static inline uint64_t ntoh64(uint64_t n)
|
||||||
|
{
|
||||||
|
uint64_t h;
|
||||||
|
uint64_t tmp = ntohl(n & 0x00000000ffffffff);
|
||||||
|
|
||||||
|
h = ntohl(n >> 32);
|
||||||
|
h |= tmp << 32;
|
||||||
|
|
||||||
|
return h;
|
||||||
|
}
|
||||||
|
|
||||||
|
static inline void ntoh128(const uint128_t *src, uint128_t *dst)
|
||||||
|
{
|
||||||
|
bswap_128(src, dst);
|
||||||
|
}
|
||||||
|
|
||||||
|
static inline void btoh128(const uint128_t *src, uint128_t *dst)
|
||||||
|
{
|
||||||
|
memcpy(dst, src, sizeof(uint128_t));
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define hton64(x) ntoh64(x)
|
||||||
|
#define hton128(x, y) ntoh128(x, y)
|
||||||
|
#define htob128(x, y) btoh128(x, y)
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif /* __BLUETOOTH_H */
|
149
code/application/source/sf_app/code/source/sf_blue/inc/bluetooth/bnep.h
Executable file
149
code/application/source/sf_app/code/source/sf_blue/inc/bluetooth/bnep.h
Executable file
|
@ -0,0 +1,149 @@
|
||||||
|
/* SPDX-License-Identifier: GPL-2.0-or-later */
|
||||||
|
/*
|
||||||
|
*
|
||||||
|
* BlueZ - Bluetooth protocol stack for Linux
|
||||||
|
*
|
||||||
|
* Copyright (C) 2002-2003 Maxim Krasnyansky <maxk@qualcomm.com>
|
||||||
|
* Copyright (C) 2002-2010 Marcel Holtmann <marcel@holtmann.org>
|
||||||
|
*
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef __BNEP_H
|
||||||
|
#define __BNEP_H
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include <bluetooth/bluetooth.h>
|
||||||
|
|
||||||
|
#ifndef ETH_ALEN
|
||||||
|
#define ETH_ALEN 6 /* from <net/ethernet.h> */
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* BNEP UUIDs */
|
||||||
|
#define BNEP_BASE_UUID 0x0000000000001000800000805F9B34FB
|
||||||
|
#define BNEP_UUID16 0x02
|
||||||
|
#define BNEP_UUID32 0x04
|
||||||
|
#define BNEP_UUID128 0x16
|
||||||
|
|
||||||
|
#define BNEP_SVC_PANU 0x1115
|
||||||
|
#define BNEP_SVC_NAP 0x1116
|
||||||
|
#define BNEP_SVC_GN 0x1117
|
||||||
|
|
||||||
|
/* BNEP packet types */
|
||||||
|
#define BNEP_GENERAL 0x00
|
||||||
|
#define BNEP_CONTROL 0x01
|
||||||
|
#define BNEP_COMPRESSED 0x02
|
||||||
|
#define BNEP_COMPRESSED_SRC_ONLY 0x03
|
||||||
|
#define BNEP_COMPRESSED_DST_ONLY 0x04
|
||||||
|
|
||||||
|
/* BNEP control types */
|
||||||
|
#define BNEP_CMD_NOT_UNDERSTOOD 0x00
|
||||||
|
#define BNEP_SETUP_CONN_REQ 0x01
|
||||||
|
#define BNEP_SETUP_CONN_RSP 0x02
|
||||||
|
#define BNEP_FILTER_NET_TYPE_SET 0x03
|
||||||
|
#define BNEP_FILTER_NET_TYPE_RSP 0x04
|
||||||
|
#define BNEP_FILTER_MULT_ADDR_SET 0x05
|
||||||
|
#define BNEP_FILTER_MULT_ADDR_RSP 0x06
|
||||||
|
|
||||||
|
/* BNEP response messages */
|
||||||
|
#define BNEP_SUCCESS 0x00
|
||||||
|
|
||||||
|
#define BNEP_CONN_INVALID_DST 0x01
|
||||||
|
#define BNEP_CONN_INVALID_SRC 0x02
|
||||||
|
#define BNEP_CONN_INVALID_SVC 0x03
|
||||||
|
#define BNEP_CONN_NOT_ALLOWED 0x04
|
||||||
|
|
||||||
|
#define BNEP_FILTER_UNSUPPORTED_REQ 0x01
|
||||||
|
#define BNEP_FILTER_INVALID_RANGE 0x02
|
||||||
|
#define BNEP_FILTER_INVALID_MCADDR 0x02
|
||||||
|
#define BNEP_FILTER_LIMIT_REACHED 0x03
|
||||||
|
#define BNEP_FILTER_DENIED_SECURITY 0x04
|
||||||
|
|
||||||
|
/* L2CAP settings */
|
||||||
|
#define BNEP_MTU 1691
|
||||||
|
#define BNEP_FLUSH_TO 0xffff
|
||||||
|
#define BNEP_CONNECT_TO 15
|
||||||
|
#define BNEP_FILTER_TO 15
|
||||||
|
|
||||||
|
#ifndef BNEP_PSM
|
||||||
|
#define BNEP_PSM 0x0f
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* BNEP headers */
|
||||||
|
#define BNEP_TYPE_MASK 0x7f
|
||||||
|
#define BNEP_EXT_HEADER 0x80
|
||||||
|
|
||||||
|
struct bnep_setup_conn_req {
|
||||||
|
uint8_t type;
|
||||||
|
uint8_t ctrl;
|
||||||
|
uint8_t uuid_size;
|
||||||
|
uint8_t service[0];
|
||||||
|
} __attribute__((packed));
|
||||||
|
|
||||||
|
struct bnep_set_filter_req {
|
||||||
|
uint8_t type;
|
||||||
|
uint8_t ctrl;
|
||||||
|
uint16_t len;
|
||||||
|
uint8_t list[0];
|
||||||
|
} __attribute__((packed));
|
||||||
|
|
||||||
|
struct bnep_ctrl_cmd_not_understood_cmd {
|
||||||
|
uint8_t type;
|
||||||
|
uint8_t ctrl;
|
||||||
|
uint8_t unkn_ctrl;
|
||||||
|
} __attribute__((packed));
|
||||||
|
|
||||||
|
struct bnep_control_rsp {
|
||||||
|
uint8_t type;
|
||||||
|
uint8_t ctrl;
|
||||||
|
uint16_t resp;
|
||||||
|
} __attribute__((packed));
|
||||||
|
|
||||||
|
struct bnep_ext_hdr {
|
||||||
|
uint8_t type;
|
||||||
|
uint8_t len;
|
||||||
|
uint8_t data[0];
|
||||||
|
} __attribute__((packed));
|
||||||
|
|
||||||
|
/* BNEP ioctl defines */
|
||||||
|
#define BNEPCONNADD _IOW('B', 200, int)
|
||||||
|
#define BNEPCONNDEL _IOW('B', 201, int)
|
||||||
|
#define BNEPGETCONNLIST _IOR('B', 210, int)
|
||||||
|
#define BNEPGETCONNINFO _IOR('B', 211, int)
|
||||||
|
#define BNEPGETSUPPFEAT _IOR('B', 212, int)
|
||||||
|
|
||||||
|
#define BNEP_SETUP_RESPONSE 0
|
||||||
|
|
||||||
|
struct bnep_connadd_req {
|
||||||
|
int sock; /* Connected socket */
|
||||||
|
uint32_t flags;
|
||||||
|
uint16_t role;
|
||||||
|
char device[16]; /* Name of the Ethernet device */
|
||||||
|
};
|
||||||
|
|
||||||
|
struct bnep_conndel_req {
|
||||||
|
uint32_t flags;
|
||||||
|
uint8_t dst[ETH_ALEN];
|
||||||
|
};
|
||||||
|
|
||||||
|
struct bnep_conninfo {
|
||||||
|
uint32_t flags;
|
||||||
|
uint16_t role;
|
||||||
|
uint16_t state;
|
||||||
|
uint8_t dst[ETH_ALEN];
|
||||||
|
char device[16];
|
||||||
|
};
|
||||||
|
|
||||||
|
struct bnep_connlist_req {
|
||||||
|
uint32_t cnum;
|
||||||
|
struct bnep_conninfo *ci;
|
||||||
|
};
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif /* __BNEP_H */
|
56
code/application/source/sf_app/code/source/sf_blue/inc/bluetooth/cmtp.h
Executable file
56
code/application/source/sf_app/code/source/sf_blue/inc/bluetooth/cmtp.h
Executable file
|
@ -0,0 +1,56 @@
|
||||||
|
/* SPDX-License-Identifier: GPL-2.0-or-later */
|
||||||
|
/*
|
||||||
|
*
|
||||||
|
* BlueZ - Bluetooth protocol stack for Linux
|
||||||
|
*
|
||||||
|
* Copyright (C) 2002-2010 Marcel Holtmann <marcel@holtmann.org>
|
||||||
|
*
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef __CMTP_H
|
||||||
|
#define __CMTP_H
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* CMTP defaults */
|
||||||
|
#define CMTP_MINIMUM_MTU 152
|
||||||
|
#define CMTP_DEFAULT_MTU 672
|
||||||
|
|
||||||
|
/* CMTP ioctl defines */
|
||||||
|
#define CMTPCONNADD _IOW('C', 200, int)
|
||||||
|
#define CMTPCONNDEL _IOW('C', 201, int)
|
||||||
|
#define CMTPGETCONNLIST _IOR('C', 210, int)
|
||||||
|
#define CMTPGETCONNINFO _IOR('C', 211, int)
|
||||||
|
|
||||||
|
#define CMTP_LOOPBACK 0
|
||||||
|
|
||||||
|
struct cmtp_connadd_req {
|
||||||
|
int sock; /* Connected socket */
|
||||||
|
uint32_t flags;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct cmtp_conndel_req {
|
||||||
|
bdaddr_t bdaddr;
|
||||||
|
uint32_t flags;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct cmtp_conninfo {
|
||||||
|
bdaddr_t bdaddr;
|
||||||
|
uint32_t flags;
|
||||||
|
uint16_t state;
|
||||||
|
int num;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct cmtp_connlist_req {
|
||||||
|
uint32_t cnum;
|
||||||
|
struct cmtp_conninfo *ci;
|
||||||
|
};
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif /* __CMTP_H */
|
2444
code/application/source/sf_app/code/source/sf_blue/inc/bluetooth/hci.h
Executable file
2444
code/application/source/sf_app/code/source/sf_blue/inc/bluetooth/hci.h
Executable file
File diff suppressed because it is too large
Load Diff
229
code/application/source/sf_app/code/source/sf_blue/inc/bluetooth/hci_lib.h
Executable file
229
code/application/source/sf_app/code/source/sf_blue/inc/bluetooth/hci_lib.h
Executable file
|
@ -0,0 +1,229 @@
|
||||||
|
/* SPDX-License-Identifier: GPL-2.0-or-later */
|
||||||
|
/*
|
||||||
|
*
|
||||||
|
* BlueZ - Bluetooth protocol stack for Linux
|
||||||
|
*
|
||||||
|
* Copyright (C) 2000-2001 Qualcomm Incorporated
|
||||||
|
* Copyright (C) 2002-2003 Maxim Krasnyansky <maxk@qualcomm.com>
|
||||||
|
* Copyright (C) 2002-2010 Marcel Holtmann <marcel@holtmann.org>
|
||||||
|
*
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef __HCI_LIB_H
|
||||||
|
#define __HCI_LIB_H
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
struct hci_request {
|
||||||
|
uint16_t ogf;
|
||||||
|
uint16_t ocf;
|
||||||
|
int event;
|
||||||
|
void *cparam;
|
||||||
|
int clen;
|
||||||
|
void *rparam;
|
||||||
|
int rlen;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct hci_version {
|
||||||
|
uint16_t manufacturer;
|
||||||
|
uint8_t hci_ver;
|
||||||
|
uint16_t hci_rev;
|
||||||
|
uint8_t lmp_ver;
|
||||||
|
uint16_t lmp_subver;
|
||||||
|
};
|
||||||
|
|
||||||
|
int hci_open_dev(int dev_id);
|
||||||
|
int hci_close_dev(int dd);
|
||||||
|
int hci_send_cmd(int dd, uint16_t ogf, uint16_t ocf, uint8_t plen, void *param);
|
||||||
|
int hci_send_req(int dd, struct hci_request *req, int timeout);
|
||||||
|
|
||||||
|
int hci_create_connection(int dd, const bdaddr_t *bdaddr, uint16_t ptype, uint16_t clkoffset, uint8_t rswitch, uint16_t *handle, int to);
|
||||||
|
int hci_disconnect(int dd, uint16_t handle, uint8_t reason, int to);
|
||||||
|
|
||||||
|
int hci_inquiry(int dev_id, int len, int num_rsp, const uint8_t *lap, inquiry_info **ii, long flags);
|
||||||
|
int hci_devinfo(int dev_id, struct hci_dev_info *di);
|
||||||
|
int hci_devba(int dev_id, bdaddr_t *bdaddr);
|
||||||
|
int hci_devid(const char *str);
|
||||||
|
|
||||||
|
int hci_read_local_name(int dd, int len, char *name, int to);
|
||||||
|
int hci_write_local_name(int dd, const char *name, int to);
|
||||||
|
int hci_read_remote_name(int dd, const bdaddr_t *bdaddr, int len, char *name, int to);
|
||||||
|
int hci_read_remote_name_with_clock_offset(int dd, const bdaddr_t *bdaddr, uint8_t pscan_rep_mode, uint16_t clkoffset, int len, char *name, int to);
|
||||||
|
int hci_read_remote_name_cancel(int dd, const bdaddr_t *bdaddr, int to);
|
||||||
|
int hci_read_remote_version(int dd, uint16_t handle, struct hci_version *ver, int to);
|
||||||
|
int hci_read_remote_features(int dd, uint16_t handle, uint8_t *features, int to);
|
||||||
|
int hci_read_remote_ext_features(int dd, uint16_t handle, uint8_t page, uint8_t *max_page, uint8_t *features, int to);
|
||||||
|
int hci_read_clock_offset(int dd, uint16_t handle, uint16_t *clkoffset, int to);
|
||||||
|
int hci_read_local_version(int dd, struct hci_version *ver, int to);
|
||||||
|
int hci_read_local_commands(int dd, uint8_t *commands, int to);
|
||||||
|
int hci_read_local_features(int dd, uint8_t *features, int to);
|
||||||
|
int hci_read_local_ext_features(int dd, uint8_t page, uint8_t *max_page, uint8_t *features, int to);
|
||||||
|
int hci_read_bd_addr(int dd, bdaddr_t *bdaddr, int to);
|
||||||
|
int hci_read_class_of_dev(int dd, uint8_t *cls, int to);
|
||||||
|
int hci_write_class_of_dev(int dd, uint32_t cls, int to);
|
||||||
|
int hci_read_voice_setting(int dd, uint16_t *vs, int to);
|
||||||
|
int hci_write_voice_setting(int dd, uint16_t vs, int to);
|
||||||
|
int hci_read_current_iac_lap(int dd, uint8_t *num_iac, uint8_t *lap, int to);
|
||||||
|
int hci_write_current_iac_lap(int dd, uint8_t num_iac, uint8_t *lap, int to);
|
||||||
|
int hci_read_stored_link_key(int dd, bdaddr_t *bdaddr, uint8_t all, int to);
|
||||||
|
int hci_write_stored_link_key(int dd, bdaddr_t *bdaddr, uint8_t *key, int to);
|
||||||
|
int hci_delete_stored_link_key(int dd, bdaddr_t *bdaddr, uint8_t all, int to);
|
||||||
|
int hci_authenticate_link(int dd, uint16_t handle, int to);
|
||||||
|
int hci_encrypt_link(int dd, uint16_t handle, uint8_t encrypt, int to);
|
||||||
|
int hci_change_link_key(int dd, uint16_t handle, int to);
|
||||||
|
int hci_switch_role(int dd, bdaddr_t *bdaddr, uint8_t role, int to);
|
||||||
|
int hci_park_mode(int dd, uint16_t handle, uint16_t max_interval, uint16_t min_interval, int to);
|
||||||
|
int hci_exit_park_mode(int dd, uint16_t handle, int to);
|
||||||
|
int hci_read_inquiry_scan_type(int dd, uint8_t *type, int to);
|
||||||
|
int hci_write_inquiry_scan_type(int dd, uint8_t type, int to);
|
||||||
|
int hci_read_inquiry_mode(int dd, uint8_t *mode, int to);
|
||||||
|
int hci_write_inquiry_mode(int dd, uint8_t mode, int to);
|
||||||
|
int hci_read_afh_mode(int dd, uint8_t *mode, int to);
|
||||||
|
int hci_write_afh_mode(int dd, uint8_t mode, int to);
|
||||||
|
int hci_read_ext_inquiry_response(int dd, uint8_t *fec, uint8_t *data, int to);
|
||||||
|
int hci_write_ext_inquiry_response(int dd, uint8_t fec, uint8_t *data, int to);
|
||||||
|
int hci_read_simple_pairing_mode(int dd, uint8_t *mode, int to);
|
||||||
|
int hci_write_simple_pairing_mode(int dd, uint8_t mode, int to);
|
||||||
|
int hci_read_local_oob_data(int dd, uint8_t *hash, uint8_t *randomizer, int to);
|
||||||
|
int hci_read_inq_response_tx_power_level(int dd, int8_t *level, int to);
|
||||||
|
int hci_read_inquiry_transmit_power_level(int dd, int8_t *level, int to);
|
||||||
|
int hci_write_inquiry_transmit_power_level(int dd, int8_t level, int to);
|
||||||
|
int hci_read_transmit_power_level(int dd, uint16_t handle, uint8_t type, int8_t *level, int to);
|
||||||
|
int hci_read_link_policy(int dd, uint16_t handle, uint16_t *policy, int to);
|
||||||
|
int hci_write_link_policy(int dd, uint16_t handle, uint16_t policy, int to);
|
||||||
|
int hci_read_link_supervision_timeout(int dd, uint16_t handle, uint16_t *timeout, int to);
|
||||||
|
int hci_write_link_supervision_timeout(int dd, uint16_t handle, uint16_t timeout, int to);
|
||||||
|
int hci_set_afh_classification(int dd, uint8_t *map, int to);
|
||||||
|
int hci_read_link_quality(int dd, uint16_t handle, uint8_t *link_quality, int to);
|
||||||
|
int hci_read_rssi(int dd, uint16_t handle, int8_t *rssi, int to);
|
||||||
|
int hci_read_afh_map(int dd, uint16_t handle, uint8_t *mode, uint8_t *map, int to);
|
||||||
|
int hci_read_clock(int dd, uint16_t handle, uint8_t which, uint32_t *clock, uint16_t *accuracy, int to);
|
||||||
|
|
||||||
|
int hci_le_set_scan_enable(int dev_id, uint8_t enable, uint8_t filter_dup, int to);
|
||||||
|
int hci_le_set_scan_parameters(int dev_id, uint8_t type, uint16_t interval,
|
||||||
|
uint16_t window, uint8_t own_type,
|
||||||
|
uint8_t filter, int to);
|
||||||
|
int hci_le_set_advertise_enable(int dev_id, uint8_t enable, int to);
|
||||||
|
int hci_le_create_conn(int dd, uint16_t interval, uint16_t window,
|
||||||
|
uint8_t initiator_filter, uint8_t peer_bdaddr_type,
|
||||||
|
bdaddr_t peer_bdaddr, uint8_t own_bdaddr_type,
|
||||||
|
uint16_t min_interval, uint16_t max_interval,
|
||||||
|
uint16_t latency, uint16_t supervision_timeout,
|
||||||
|
uint16_t min_ce_length, uint16_t max_ce_length,
|
||||||
|
uint16_t *handle, int to);
|
||||||
|
int hci_le_conn_update(int dd, uint16_t handle, uint16_t min_interval,
|
||||||
|
uint16_t max_interval, uint16_t latency,
|
||||||
|
uint16_t supervision_timeout, int to);
|
||||||
|
int hci_le_add_white_list(int dd, const bdaddr_t *bdaddr, uint8_t type, int to);
|
||||||
|
int hci_le_rm_white_list(int dd, const bdaddr_t *bdaddr, uint8_t type, int to);
|
||||||
|
int hci_le_read_white_list_size(int dd, uint8_t *size, int to);
|
||||||
|
int hci_le_clear_white_list(int dd, int to);
|
||||||
|
int hci_le_add_resolving_list(int dd, const bdaddr_t *bdaddr, uint8_t type,
|
||||||
|
uint8_t *peer_irk, uint8_t *local_irk, int to);
|
||||||
|
int hci_le_rm_resolving_list(int dd, const bdaddr_t *bdaddr, uint8_t type, int to);
|
||||||
|
int hci_le_clear_resolving_list(int dd, int to);
|
||||||
|
int hci_le_read_resolving_list_size(int dd, uint8_t *size, int to);
|
||||||
|
int hci_le_set_address_resolution_enable(int dev_id, uint8_t enable, int to);
|
||||||
|
int hci_le_read_remote_features(int dd, uint16_t handle, uint8_t *features, int to);
|
||||||
|
|
||||||
|
int hci_for_each_dev(int flag, int(*func)(int dd, int dev_id, long arg), long arg);
|
||||||
|
int hci_get_route(bdaddr_t *bdaddr);
|
||||||
|
|
||||||
|
char *hci_bustostr(int bus);
|
||||||
|
char *hci_typetostr(int type);
|
||||||
|
char *hci_dtypetostr(int type);
|
||||||
|
char *hci_dflagstostr(uint32_t flags);
|
||||||
|
char *hci_ptypetostr(unsigned int ptype);
|
||||||
|
int hci_strtoptype(char *str, unsigned int *val);
|
||||||
|
char *hci_scoptypetostr(unsigned int ptype);
|
||||||
|
int hci_strtoscoptype(char *str, unsigned int *val);
|
||||||
|
char *hci_lptostr(unsigned int ptype);
|
||||||
|
int hci_strtolp(char *str, unsigned int *val);
|
||||||
|
char *hci_lmtostr(unsigned int ptype);
|
||||||
|
int hci_strtolm(char *str, unsigned int *val);
|
||||||
|
|
||||||
|
char *hci_cmdtostr(unsigned int cmd);
|
||||||
|
char *hci_commandstostr(uint8_t *commands, char *pref, int width);
|
||||||
|
|
||||||
|
char *hci_vertostr(unsigned int ver);
|
||||||
|
int hci_strtover(char *str, unsigned int *ver);
|
||||||
|
char *lmp_vertostr(unsigned int ver);
|
||||||
|
int lmp_strtover(char *str, unsigned int *ver);
|
||||||
|
char *pal_vertostr(unsigned int ver);
|
||||||
|
int pal_strtover(char *str, unsigned int *ver);
|
||||||
|
|
||||||
|
char *lmp_featurestostr(uint8_t *features, char *pref, int width);
|
||||||
|
|
||||||
|
static inline void hci_set_bit(int nr, void *addr)
|
||||||
|
{
|
||||||
|
*((uint32_t *) addr + (nr >> 5)) |= (1 << (nr & 31));
|
||||||
|
}
|
||||||
|
|
||||||
|
static inline void hci_clear_bit(int nr, void *addr)
|
||||||
|
{
|
||||||
|
*((uint32_t *) addr + (nr >> 5)) &= ~(1 << (nr & 31));
|
||||||
|
}
|
||||||
|
|
||||||
|
static inline int hci_test_bit(int nr, void *addr)
|
||||||
|
{
|
||||||
|
return *((uint32_t *) addr + (nr >> 5)) & (1 << (nr & 31));
|
||||||
|
}
|
||||||
|
|
||||||
|
/* HCI filter tools */
|
||||||
|
static inline void hci_filter_clear(struct hci_filter *f)
|
||||||
|
{
|
||||||
|
memset(f, 0, sizeof(*f));
|
||||||
|
}
|
||||||
|
static inline void hci_filter_set_ptype(int t, struct hci_filter *f)
|
||||||
|
{
|
||||||
|
hci_set_bit((t == HCI_VENDOR_PKT) ? 0 : (t & HCI_FLT_TYPE_BITS), &f->type_mask);
|
||||||
|
}
|
||||||
|
static inline void hci_filter_clear_ptype(int t, struct hci_filter *f)
|
||||||
|
{
|
||||||
|
hci_clear_bit((t == HCI_VENDOR_PKT) ? 0 : (t & HCI_FLT_TYPE_BITS), &f->type_mask);
|
||||||
|
}
|
||||||
|
static inline int hci_filter_test_ptype(int t, struct hci_filter *f)
|
||||||
|
{
|
||||||
|
return hci_test_bit((t == HCI_VENDOR_PKT) ? 0 : (t & HCI_FLT_TYPE_BITS), &f->type_mask);
|
||||||
|
}
|
||||||
|
static inline void hci_filter_all_ptypes(struct hci_filter *f)
|
||||||
|
{
|
||||||
|
memset((void *) &f->type_mask, 0xff, sizeof(f->type_mask));
|
||||||
|
}
|
||||||
|
static inline void hci_filter_set_event(int e, struct hci_filter *f)
|
||||||
|
{
|
||||||
|
hci_set_bit((e & HCI_FLT_EVENT_BITS), &f->event_mask);
|
||||||
|
}
|
||||||
|
static inline void hci_filter_clear_event(int e, struct hci_filter *f)
|
||||||
|
{
|
||||||
|
hci_clear_bit((e & HCI_FLT_EVENT_BITS), &f->event_mask);
|
||||||
|
}
|
||||||
|
static inline int hci_filter_test_event(int e, struct hci_filter *f)
|
||||||
|
{
|
||||||
|
return hci_test_bit((e & HCI_FLT_EVENT_BITS), &f->event_mask);
|
||||||
|
}
|
||||||
|
static inline void hci_filter_all_events(struct hci_filter *f)
|
||||||
|
{
|
||||||
|
memset((void *) f->event_mask, 0xff, sizeof(f->event_mask));
|
||||||
|
}
|
||||||
|
static inline void hci_filter_set_opcode(int opcode, struct hci_filter *f)
|
||||||
|
{
|
||||||
|
f->opcode = opcode;
|
||||||
|
}
|
||||||
|
static inline void hci_filter_clear_opcode(struct hci_filter *f)
|
||||||
|
{
|
||||||
|
f->opcode = 0;
|
||||||
|
}
|
||||||
|
static inline int hci_filter_test_opcode(int opcode, struct hci_filter *f)
|
||||||
|
{
|
||||||
|
return (f->opcode == opcode);
|
||||||
|
}
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif /* __HCI_LIB_H */
|
72
code/application/source/sf_app/code/source/sf_blue/inc/bluetooth/hidp.h
Executable file
72
code/application/source/sf_app/code/source/sf_blue/inc/bluetooth/hidp.h
Executable file
|
@ -0,0 +1,72 @@
|
||||||
|
/* SPDX-License-Identifier: GPL-2.0-or-later */
|
||||||
|
/*
|
||||||
|
*
|
||||||
|
* BlueZ - Bluetooth protocol stack for Linux
|
||||||
|
*
|
||||||
|
* Copyright (C) 2003-2010 Marcel Holtmann <marcel@holtmann.org>
|
||||||
|
*
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef __HIDP_H
|
||||||
|
#define __HIDP_H
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* HIDP defaults */
|
||||||
|
#define HIDP_MINIMUM_MTU 48
|
||||||
|
#define HIDP_DEFAULT_MTU 48
|
||||||
|
|
||||||
|
/* HIDP ioctl defines */
|
||||||
|
#define HIDPCONNADD _IOW('H', 200, int)
|
||||||
|
#define HIDPCONNDEL _IOW('H', 201, int)
|
||||||
|
#define HIDPGETCONNLIST _IOR('H', 210, int)
|
||||||
|
#define HIDPGETCONNINFO _IOR('H', 211, int)
|
||||||
|
|
||||||
|
#define HIDP_VIRTUAL_CABLE_UNPLUG 0
|
||||||
|
#define HIDP_BOOT_PROTOCOL_MODE 1
|
||||||
|
#define HIDP_BLUETOOTH_VENDOR_ID 9
|
||||||
|
|
||||||
|
struct hidp_connadd_req {
|
||||||
|
int ctrl_sock; /* Connected control socket */
|
||||||
|
int intr_sock; /* Connected interrupt socket */
|
||||||
|
uint16_t parser; /* Parser version */
|
||||||
|
uint16_t rd_size; /* Report descriptor size */
|
||||||
|
uint8_t *rd_data; /* Report descriptor data */
|
||||||
|
uint8_t country;
|
||||||
|
uint8_t subclass;
|
||||||
|
uint16_t vendor;
|
||||||
|
uint16_t product;
|
||||||
|
uint16_t version;
|
||||||
|
uint32_t flags;
|
||||||
|
uint32_t idle_to;
|
||||||
|
char name[128]; /* Device name */
|
||||||
|
};
|
||||||
|
|
||||||
|
struct hidp_conndel_req {
|
||||||
|
bdaddr_t bdaddr;
|
||||||
|
uint32_t flags;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct hidp_conninfo {
|
||||||
|
bdaddr_t bdaddr;
|
||||||
|
uint32_t flags;
|
||||||
|
uint16_t state;
|
||||||
|
uint16_t vendor;
|
||||||
|
uint16_t product;
|
||||||
|
uint16_t version;
|
||||||
|
char name[128];
|
||||||
|
};
|
||||||
|
|
||||||
|
struct hidp_connlist_req {
|
||||||
|
uint32_t cnum;
|
||||||
|
struct hidp_conninfo *ci;
|
||||||
|
};
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif /* __HIDP_H */
|
266
code/application/source/sf_app/code/source/sf_blue/inc/bluetooth/l2cap.h
Executable file
266
code/application/source/sf_app/code/source/sf_blue/inc/bluetooth/l2cap.h
Executable file
|
@ -0,0 +1,266 @@
|
||||||
|
/* SPDX-License-Identifier: GPL-2.0-or-later */
|
||||||
|
/*
|
||||||
|
*
|
||||||
|
* BlueZ - Bluetooth protocol stack for Linux
|
||||||
|
*
|
||||||
|
* Copyright (C) 2000-2001 Qualcomm Incorporated
|
||||||
|
* Copyright (C) 2002-2003 Maxim Krasnyansky <maxk@qualcomm.com>
|
||||||
|
* Copyright (C) 2002-2010 Marcel Holtmann <marcel@holtmann.org>
|
||||||
|
* Copyright (c) 2012 Code Aurora Forum. All rights reserved.
|
||||||
|
*
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef __L2CAP_H
|
||||||
|
#define __L2CAP_H
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include <sys/socket.h>
|
||||||
|
|
||||||
|
/* L2CAP defaults */
|
||||||
|
#define L2CAP_DEFAULT_MTU 672
|
||||||
|
#define L2CAP_DEFAULT_FLUSH_TO 0xFFFF
|
||||||
|
|
||||||
|
/* L2CAP socket address */
|
||||||
|
struct sockaddr_l2 {
|
||||||
|
sa_family_t l2_family;
|
||||||
|
unsigned short l2_psm;
|
||||||
|
bdaddr_t l2_bdaddr;
|
||||||
|
unsigned short l2_cid;
|
||||||
|
uint8_t l2_bdaddr_type;
|
||||||
|
};
|
||||||
|
|
||||||
|
/* L2CAP socket options */
|
||||||
|
#define L2CAP_OPTIONS 0x01
|
||||||
|
struct l2cap_options {
|
||||||
|
uint16_t omtu;
|
||||||
|
uint16_t imtu;
|
||||||
|
uint16_t flush_to;
|
||||||
|
uint8_t mode;
|
||||||
|
uint8_t fcs;
|
||||||
|
uint8_t max_tx;
|
||||||
|
uint16_t txwin_size;
|
||||||
|
};
|
||||||
|
|
||||||
|
#define L2CAP_CONNINFO 0x02
|
||||||
|
struct l2cap_conninfo {
|
||||||
|
uint16_t hci_handle;
|
||||||
|
uint8_t dev_class[3];
|
||||||
|
};
|
||||||
|
|
||||||
|
#define L2CAP_LM 0x03
|
||||||
|
#define L2CAP_LM_MASTER 0x0001
|
||||||
|
#define L2CAP_LM_AUTH 0x0002
|
||||||
|
#define L2CAP_LM_ENCRYPT 0x0004
|
||||||
|
#define L2CAP_LM_TRUSTED 0x0008
|
||||||
|
#define L2CAP_LM_RELIABLE 0x0010
|
||||||
|
#define L2CAP_LM_SECURE 0x0020
|
||||||
|
|
||||||
|
/* L2CAP command codes */
|
||||||
|
#define L2CAP_COMMAND_REJ 0x01
|
||||||
|
#define L2CAP_CONN_REQ 0x02
|
||||||
|
#define L2CAP_CONN_RSP 0x03
|
||||||
|
#define L2CAP_CONF_REQ 0x04
|
||||||
|
#define L2CAP_CONF_RSP 0x05
|
||||||
|
#define L2CAP_DISCONN_REQ 0x06
|
||||||
|
#define L2CAP_DISCONN_RSP 0x07
|
||||||
|
#define L2CAP_ECHO_REQ 0x08
|
||||||
|
#define L2CAP_ECHO_RSP 0x09
|
||||||
|
#define L2CAP_INFO_REQ 0x0a
|
||||||
|
#define L2CAP_INFO_RSP 0x0b
|
||||||
|
#define L2CAP_CREATE_REQ 0x0c
|
||||||
|
#define L2CAP_CREATE_RSP 0x0d
|
||||||
|
#define L2CAP_MOVE_REQ 0x0e
|
||||||
|
#define L2CAP_MOVE_RSP 0x0f
|
||||||
|
#define L2CAP_MOVE_CFM 0x10
|
||||||
|
#define L2CAP_MOVE_CFM_RSP 0x11
|
||||||
|
|
||||||
|
/* L2CAP extended feature mask */
|
||||||
|
#define L2CAP_FEAT_FLOWCTL 0x00000001
|
||||||
|
#define L2CAP_FEAT_RETRANS 0x00000002
|
||||||
|
#define L2CAP_FEAT_BIDIR_QOS 0x00000004
|
||||||
|
#define L2CAP_FEAT_ERTM 0x00000008
|
||||||
|
#define L2CAP_FEAT_STREAMING 0x00000010
|
||||||
|
#define L2CAP_FEAT_FCS 0x00000020
|
||||||
|
#define L2CAP_FEAT_EXT_FLOW 0x00000040
|
||||||
|
#define L2CAP_FEAT_FIXED_CHAN 0x00000080
|
||||||
|
#define L2CAP_FEAT_EXT_WINDOW 0x00000100
|
||||||
|
#define L2CAP_FEAT_UCD 0x00000200
|
||||||
|
|
||||||
|
/* L2CAP fixed channels */
|
||||||
|
#define L2CAP_FC_L2CAP 0x02
|
||||||
|
#define L2CAP_FC_CONNLESS 0x04
|
||||||
|
#define L2CAP_FC_A2MP 0x08
|
||||||
|
|
||||||
|
/* L2CAP structures */
|
||||||
|
typedef struct {
|
||||||
|
uint16_t len;
|
||||||
|
uint16_t cid;
|
||||||
|
} __attribute__ ((packed)) l2cap_hdr;
|
||||||
|
#define L2CAP_HDR_SIZE 4
|
||||||
|
|
||||||
|
typedef struct {
|
||||||
|
uint8_t code;
|
||||||
|
uint8_t ident;
|
||||||
|
uint16_t len;
|
||||||
|
} __attribute__ ((packed)) l2cap_cmd_hdr;
|
||||||
|
#define L2CAP_CMD_HDR_SIZE 4
|
||||||
|
|
||||||
|
typedef struct {
|
||||||
|
uint16_t reason;
|
||||||
|
} __attribute__ ((packed)) l2cap_cmd_rej;
|
||||||
|
#define L2CAP_CMD_REJ_SIZE 2
|
||||||
|
|
||||||
|
typedef struct {
|
||||||
|
uint16_t psm;
|
||||||
|
uint16_t scid;
|
||||||
|
} __attribute__ ((packed)) l2cap_conn_req;
|
||||||
|
#define L2CAP_CONN_REQ_SIZE 4
|
||||||
|
|
||||||
|
typedef struct {
|
||||||
|
uint16_t dcid;
|
||||||
|
uint16_t scid;
|
||||||
|
uint16_t result;
|
||||||
|
uint16_t status;
|
||||||
|
} __attribute__ ((packed)) l2cap_conn_rsp;
|
||||||
|
#define L2CAP_CONN_RSP_SIZE 8
|
||||||
|
|
||||||
|
/* connect result */
|
||||||
|
#define L2CAP_CR_SUCCESS 0x0000
|
||||||
|
#define L2CAP_CR_PEND 0x0001
|
||||||
|
#define L2CAP_CR_BAD_PSM 0x0002
|
||||||
|
#define L2CAP_CR_SEC_BLOCK 0x0003
|
||||||
|
#define L2CAP_CR_NO_MEM 0x0004
|
||||||
|
|
||||||
|
/* connect status */
|
||||||
|
#define L2CAP_CS_NO_INFO 0x0000
|
||||||
|
#define L2CAP_CS_AUTHEN_PEND 0x0001
|
||||||
|
#define L2CAP_CS_AUTHOR_PEND 0x0002
|
||||||
|
|
||||||
|
typedef struct {
|
||||||
|
uint16_t dcid;
|
||||||
|
uint16_t flags;
|
||||||
|
uint8_t data[0];
|
||||||
|
} __attribute__ ((packed)) l2cap_conf_req;
|
||||||
|
#define L2CAP_CONF_REQ_SIZE 4
|
||||||
|
|
||||||
|
typedef struct {
|
||||||
|
uint16_t scid;
|
||||||
|
uint16_t flags;
|
||||||
|
uint16_t result;
|
||||||
|
uint8_t data[0];
|
||||||
|
} __attribute__ ((packed)) l2cap_conf_rsp;
|
||||||
|
#define L2CAP_CONF_RSP_SIZE 6
|
||||||
|
|
||||||
|
#define L2CAP_CONF_SUCCESS 0x0000
|
||||||
|
#define L2CAP_CONF_UNACCEPT 0x0001
|
||||||
|
#define L2CAP_CONF_REJECT 0x0002
|
||||||
|
#define L2CAP_CONF_UNKNOWN 0x0003
|
||||||
|
#define L2CAP_CONF_PENDING 0x0004
|
||||||
|
#define L2CAP_CONF_EFS_REJECT 0x0005
|
||||||
|
|
||||||
|
typedef struct {
|
||||||
|
uint8_t type;
|
||||||
|
uint8_t len;
|
||||||
|
uint8_t val[0];
|
||||||
|
} __attribute__ ((packed)) l2cap_conf_opt;
|
||||||
|
#define L2CAP_CONF_OPT_SIZE 2
|
||||||
|
|
||||||
|
#define L2CAP_CONF_MTU 0x01
|
||||||
|
#define L2CAP_CONF_FLUSH_TO 0x02
|
||||||
|
#define L2CAP_CONF_QOS 0x03
|
||||||
|
#define L2CAP_CONF_RFC 0x04
|
||||||
|
#define L2CAP_CONF_FCS 0x05
|
||||||
|
#define L2CAP_CONF_EFS 0x06
|
||||||
|
#define L2CAP_CONF_EWS 0x07
|
||||||
|
|
||||||
|
#define L2CAP_CONF_MAX_SIZE 22
|
||||||
|
|
||||||
|
#define L2CAP_MODE_BASIC 0x00
|
||||||
|
#define L2CAP_MODE_RETRANS 0x01
|
||||||
|
#define L2CAP_MODE_FLOWCTL 0x02
|
||||||
|
#define L2CAP_MODE_ERTM 0x03
|
||||||
|
#define L2CAP_MODE_STREAMING 0x04
|
||||||
|
|
||||||
|
#define L2CAP_SERVTYPE_NOTRAFFIC 0x00
|
||||||
|
#define L2CAP_SERVTYPE_BESTEFFORT 0x01
|
||||||
|
#define L2CAP_SERVTYPE_GUARANTEED 0x02
|
||||||
|
|
||||||
|
typedef struct {
|
||||||
|
uint16_t dcid;
|
||||||
|
uint16_t scid;
|
||||||
|
} __attribute__ ((packed)) l2cap_disconn_req;
|
||||||
|
#define L2CAP_DISCONN_REQ_SIZE 4
|
||||||
|
|
||||||
|
typedef struct {
|
||||||
|
uint16_t dcid;
|
||||||
|
uint16_t scid;
|
||||||
|
} __attribute__ ((packed)) l2cap_disconn_rsp;
|
||||||
|
#define L2CAP_DISCONN_RSP_SIZE 4
|
||||||
|
|
||||||
|
typedef struct {
|
||||||
|
uint16_t type;
|
||||||
|
} __attribute__ ((packed)) l2cap_info_req;
|
||||||
|
#define L2CAP_INFO_REQ_SIZE 2
|
||||||
|
|
||||||
|
typedef struct {
|
||||||
|
uint16_t type;
|
||||||
|
uint16_t result;
|
||||||
|
uint8_t data[0];
|
||||||
|
} __attribute__ ((packed)) l2cap_info_rsp;
|
||||||
|
#define L2CAP_INFO_RSP_SIZE 4
|
||||||
|
|
||||||
|
/* info type */
|
||||||
|
#define L2CAP_IT_CL_MTU 0x0001
|
||||||
|
#define L2CAP_IT_FEAT_MASK 0x0002
|
||||||
|
|
||||||
|
/* info result */
|
||||||
|
#define L2CAP_IR_SUCCESS 0x0000
|
||||||
|
#define L2CAP_IR_NOTSUPP 0x0001
|
||||||
|
|
||||||
|
typedef struct {
|
||||||
|
uint16_t psm;
|
||||||
|
uint16_t scid;
|
||||||
|
uint8_t id;
|
||||||
|
} __attribute__ ((packed)) l2cap_create_req;
|
||||||
|
#define L2CAP_CREATE_REQ_SIZE 5
|
||||||
|
|
||||||
|
typedef struct {
|
||||||
|
uint16_t dcid;
|
||||||
|
uint16_t scid;
|
||||||
|
uint16_t result;
|
||||||
|
uint16_t status;
|
||||||
|
} __attribute__ ((packed)) l2cap_create_rsp;
|
||||||
|
#define L2CAP_CREATE_RSP_SIZE 8
|
||||||
|
|
||||||
|
typedef struct {
|
||||||
|
uint16_t icid;
|
||||||
|
uint8_t id;
|
||||||
|
} __attribute__ ((packed)) l2cap_move_req;
|
||||||
|
#define L2CAP_MOVE_REQ_SIZE 3
|
||||||
|
|
||||||
|
typedef struct {
|
||||||
|
uint16_t icid;
|
||||||
|
uint16_t result;
|
||||||
|
} __attribute__ ((packed)) l2cap_move_rsp;
|
||||||
|
#define L2CAP_MOVE_RSP_SIZE 4
|
||||||
|
|
||||||
|
typedef struct {
|
||||||
|
uint16_t icid;
|
||||||
|
uint16_t result;
|
||||||
|
} __attribute__ ((packed)) l2cap_move_cfm;
|
||||||
|
#define L2CAP_MOVE_CFM_SIZE 4
|
||||||
|
|
||||||
|
typedef struct {
|
||||||
|
uint16_t icid;
|
||||||
|
} __attribute__ ((packed)) l2cap_move_cfm_rsp;
|
||||||
|
#define L2CAP_MOVE_CFM_RSP_SIZE 2
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif /* __L2CAP_H */
|
86
code/application/source/sf_app/code/source/sf_blue/inc/bluetooth/rfcomm.h
Executable file
86
code/application/source/sf_app/code/source/sf_blue/inc/bluetooth/rfcomm.h
Executable file
|
@ -0,0 +1,86 @@
|
||||||
|
/* SPDX-License-Identifier: GPL-2.0-or-later */
|
||||||
|
/*
|
||||||
|
*
|
||||||
|
* BlueZ - Bluetooth protocol stack for Linux
|
||||||
|
*
|
||||||
|
* Copyright (C) 2002-2003 Maxim Krasnyansky <maxk@qualcomm.com>
|
||||||
|
* Copyright (C) 2002-2010 Marcel Holtmann <marcel@holtmann.org>
|
||||||
|
*
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef __RFCOMM_H
|
||||||
|
#define __RFCOMM_H
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include <sys/socket.h>
|
||||||
|
|
||||||
|
/* RFCOMM defaults */
|
||||||
|
#define RFCOMM_DEFAULT_MTU 127
|
||||||
|
|
||||||
|
#define RFCOMM_PSM 3
|
||||||
|
|
||||||
|
/* RFCOMM socket address */
|
||||||
|
struct sockaddr_rc {
|
||||||
|
sa_family_t rc_family;
|
||||||
|
bdaddr_t rc_bdaddr;
|
||||||
|
uint8_t rc_channel;
|
||||||
|
};
|
||||||
|
|
||||||
|
/* RFCOMM socket options */
|
||||||
|
#define RFCOMM_CONNINFO 0x02
|
||||||
|
struct rfcomm_conninfo {
|
||||||
|
uint16_t hci_handle;
|
||||||
|
uint8_t dev_class[3];
|
||||||
|
};
|
||||||
|
|
||||||
|
#define RFCOMM_LM 0x03
|
||||||
|
#define RFCOMM_LM_MASTER 0x0001
|
||||||
|
#define RFCOMM_LM_AUTH 0x0002
|
||||||
|
#define RFCOMM_LM_ENCRYPT 0x0004
|
||||||
|
#define RFCOMM_LM_TRUSTED 0x0008
|
||||||
|
#define RFCOMM_LM_RELIABLE 0x0010
|
||||||
|
#define RFCOMM_LM_SECURE 0x0020
|
||||||
|
|
||||||
|
/* RFCOMM TTY support */
|
||||||
|
#define RFCOMM_MAX_DEV 256
|
||||||
|
|
||||||
|
#define RFCOMMCREATEDEV _IOW('R', 200, int)
|
||||||
|
#define RFCOMMRELEASEDEV _IOW('R', 201, int)
|
||||||
|
#define RFCOMMGETDEVLIST _IOR('R', 210, int)
|
||||||
|
#define RFCOMMGETDEVINFO _IOR('R', 211, int)
|
||||||
|
|
||||||
|
struct rfcomm_dev_req {
|
||||||
|
int16_t dev_id;
|
||||||
|
uint32_t flags;
|
||||||
|
bdaddr_t src;
|
||||||
|
bdaddr_t dst;
|
||||||
|
uint8_t channel;
|
||||||
|
};
|
||||||
|
#define RFCOMM_REUSE_DLC 0
|
||||||
|
#define RFCOMM_RELEASE_ONHUP 1
|
||||||
|
#define RFCOMM_HANGUP_NOW 2
|
||||||
|
#define RFCOMM_TTY_ATTACHED 3
|
||||||
|
|
||||||
|
struct rfcomm_dev_info {
|
||||||
|
int16_t id;
|
||||||
|
uint32_t flags;
|
||||||
|
uint16_t state;
|
||||||
|
bdaddr_t src;
|
||||||
|
bdaddr_t dst;
|
||||||
|
uint8_t channel;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct rfcomm_dev_list_req {
|
||||||
|
uint16_t dev_num;
|
||||||
|
struct rfcomm_dev_info dev_info[0];
|
||||||
|
};
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif /* __RFCOMM_H */
|
49
code/application/source/sf_app/code/source/sf_blue/inc/bluetooth/sco.h
Executable file
49
code/application/source/sf_app/code/source/sf_blue/inc/bluetooth/sco.h
Executable file
|
@ -0,0 +1,49 @@
|
||||||
|
/* SPDX-License-Identifier: GPL-2.0-or-later */
|
||||||
|
/*
|
||||||
|
*
|
||||||
|
* BlueZ - Bluetooth protocol stack for Linux
|
||||||
|
*
|
||||||
|
* Copyright (C) 2002-2003 Maxim Krasnyansky <maxk@qualcomm.com>
|
||||||
|
* Copyright (C) 2002-2010 Marcel Holtmann <marcel@holtmann.org>
|
||||||
|
*
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef __SCO_H
|
||||||
|
#define __SCO_H
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* SCO defaults */
|
||||||
|
#define SCO_DEFAULT_MTU 500
|
||||||
|
#define SCO_DEFAULT_FLUSH_TO 0xFFFF
|
||||||
|
|
||||||
|
#define SCO_CONN_TIMEOUT (HZ * 40)
|
||||||
|
#define SCO_DISCONN_TIMEOUT (HZ * 2)
|
||||||
|
#define SCO_CONN_IDLE_TIMEOUT (HZ * 60)
|
||||||
|
|
||||||
|
/* SCO socket address */
|
||||||
|
struct sockaddr_sco {
|
||||||
|
sa_family_t sco_family;
|
||||||
|
bdaddr_t sco_bdaddr;
|
||||||
|
};
|
||||||
|
|
||||||
|
/* set/get sockopt defines */
|
||||||
|
#define SCO_OPTIONS 0x01
|
||||||
|
struct sco_options {
|
||||||
|
uint16_t mtu;
|
||||||
|
};
|
||||||
|
|
||||||
|
#define SCO_CONNINFO 0x02
|
||||||
|
struct sco_conninfo {
|
||||||
|
uint16_t hci_handle;
|
||||||
|
uint8_t dev_class[3];
|
||||||
|
};
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif /* __SCO_H */
|
529
code/application/source/sf_app/code/source/sf_blue/inc/bluetooth/sdp.h
Executable file
529
code/application/source/sf_app/code/source/sf_blue/inc/bluetooth/sdp.h
Executable file
|
@ -0,0 +1,529 @@
|
||||||
|
/* SPDX-License-Identifier: GPL-2.0-or-later */
|
||||||
|
/*
|
||||||
|
*
|
||||||
|
* BlueZ - Bluetooth protocol stack for Linux
|
||||||
|
*
|
||||||
|
* Copyright (C) 2001-2002 Nokia Corporation
|
||||||
|
* Copyright (C) 2002-2003 Maxim Krasnyansky <maxk@qualcomm.com>
|
||||||
|
* Copyright (C) 2002-2010 Marcel Holtmann <marcel@holtmann.org>
|
||||||
|
* Copyright (C) 2002-2003 Stephen Crane <steve.crane@rococosoft.com>
|
||||||
|
*
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef __SDP_H
|
||||||
|
#define __SDP_H
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include <stdint.h>
|
||||||
|
#include <bluetooth/bluetooth.h>
|
||||||
|
|
||||||
|
#define SDP_UNIX_PATH "/var/run/sdp"
|
||||||
|
#define SDP_RESPONSE_TIMEOUT 20
|
||||||
|
#define SDP_REQ_BUFFER_SIZE 2048
|
||||||
|
#define SDP_RSP_BUFFER_SIZE 65535
|
||||||
|
#define SDP_PDU_CHUNK_SIZE 1024
|
||||||
|
|
||||||
|
/*
|
||||||
|
* All definitions are based on Bluetooth Assigned Numbers
|
||||||
|
* of the Bluetooth Specification
|
||||||
|
*/
|
||||||
|
#define SDP_PSM 0x0001
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Protocol UUIDs
|
||||||
|
*/
|
||||||
|
#define SDP_UUID 0x0001
|
||||||
|
#define UDP_UUID 0x0002
|
||||||
|
#define RFCOMM_UUID 0x0003
|
||||||
|
#define TCP_UUID 0x0004
|
||||||
|
#define TCS_BIN_UUID 0x0005
|
||||||
|
#define TCS_AT_UUID 0x0006
|
||||||
|
#define ATT_UUID 0x0007
|
||||||
|
#define OBEX_UUID 0x0008
|
||||||
|
#define IP_UUID 0x0009
|
||||||
|
#define FTP_UUID 0x000a
|
||||||
|
#define HTTP_UUID 0x000c
|
||||||
|
#define WSP_UUID 0x000e
|
||||||
|
#define BNEP_UUID 0x000f
|
||||||
|
#define UPNP_UUID 0x0010
|
||||||
|
#define HIDP_UUID 0x0011
|
||||||
|
#define HCRP_CTRL_UUID 0x0012
|
||||||
|
#define HCRP_DATA_UUID 0x0014
|
||||||
|
#define HCRP_NOTE_UUID 0x0016
|
||||||
|
#define AVCTP_UUID 0x0017
|
||||||
|
#define AVDTP_UUID 0x0019
|
||||||
|
#define CMTP_UUID 0x001b
|
||||||
|
#define UDI_UUID 0x001d
|
||||||
|
#define MCAP_CTRL_UUID 0x001e
|
||||||
|
#define MCAP_DATA_UUID 0x001f
|
||||||
|
#define L2CAP_UUID 0x0100
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Service class identifiers of standard services and service groups
|
||||||
|
*/
|
||||||
|
#define SDP_SERVER_SVCLASS_ID 0x1000
|
||||||
|
#define BROWSE_GRP_DESC_SVCLASS_ID 0x1001
|
||||||
|
#define PUBLIC_BROWSE_GROUP 0x1002
|
||||||
|
#define SERIAL_PORT_SVCLASS_ID 0x1101
|
||||||
|
#define LAN_ACCESS_SVCLASS_ID 0x1102
|
||||||
|
#define DIALUP_NET_SVCLASS_ID 0x1103
|
||||||
|
#define IRMC_SYNC_SVCLASS_ID 0x1104
|
||||||
|
#define OBEX_OBJPUSH_SVCLASS_ID 0x1105
|
||||||
|
#define OBEX_FILETRANS_SVCLASS_ID 0x1106
|
||||||
|
#define IRMC_SYNC_CMD_SVCLASS_ID 0x1107
|
||||||
|
#define HEADSET_SVCLASS_ID 0x1108
|
||||||
|
#define CORDLESS_TELEPHONY_SVCLASS_ID 0x1109
|
||||||
|
#define AUDIO_SOURCE_SVCLASS_ID 0x110a
|
||||||
|
#define AUDIO_SINK_SVCLASS_ID 0x110b
|
||||||
|
#define AV_REMOTE_TARGET_SVCLASS_ID 0x110c
|
||||||
|
#define ADVANCED_AUDIO_SVCLASS_ID 0x110d
|
||||||
|
#define AV_REMOTE_SVCLASS_ID 0x110e
|
||||||
|
#define AV_REMOTE_CONTROLLER_SVCLASS_ID 0x110f
|
||||||
|
#define INTERCOM_SVCLASS_ID 0x1110
|
||||||
|
#define FAX_SVCLASS_ID 0x1111
|
||||||
|
#define HEADSET_AGW_SVCLASS_ID 0x1112
|
||||||
|
#define WAP_SVCLASS_ID 0x1113
|
||||||
|
#define WAP_CLIENT_SVCLASS_ID 0x1114
|
||||||
|
#define PANU_SVCLASS_ID 0x1115
|
||||||
|
#define NAP_SVCLASS_ID 0x1116
|
||||||
|
#define GN_SVCLASS_ID 0x1117
|
||||||
|
#define DIRECT_PRINTING_SVCLASS_ID 0x1118
|
||||||
|
#define REFERENCE_PRINTING_SVCLASS_ID 0x1119
|
||||||
|
#define IMAGING_SVCLASS_ID 0x111a
|
||||||
|
#define IMAGING_RESPONDER_SVCLASS_ID 0x111b
|
||||||
|
#define IMAGING_ARCHIVE_SVCLASS_ID 0x111c
|
||||||
|
#define IMAGING_REFOBJS_SVCLASS_ID 0x111d
|
||||||
|
#define HANDSFREE_SVCLASS_ID 0x111e
|
||||||
|
#define HANDSFREE_AGW_SVCLASS_ID 0x111f
|
||||||
|
#define DIRECT_PRT_REFOBJS_SVCLASS_ID 0x1120
|
||||||
|
#define REFLECTED_UI_SVCLASS_ID 0x1121
|
||||||
|
#define BASIC_PRINTING_SVCLASS_ID 0x1122
|
||||||
|
#define PRINTING_STATUS_SVCLASS_ID 0x1123
|
||||||
|
#define HID_SVCLASS_ID 0x1124
|
||||||
|
#define HCR_SVCLASS_ID 0x1125
|
||||||
|
#define HCR_PRINT_SVCLASS_ID 0x1126
|
||||||
|
#define HCR_SCAN_SVCLASS_ID 0x1127
|
||||||
|
#define CIP_SVCLASS_ID 0x1128
|
||||||
|
#define VIDEO_CONF_GW_SVCLASS_ID 0x1129
|
||||||
|
#define UDI_MT_SVCLASS_ID 0x112a
|
||||||
|
#define UDI_TA_SVCLASS_ID 0x112b
|
||||||
|
#define AV_SVCLASS_ID 0x112c
|
||||||
|
#define SAP_SVCLASS_ID 0x112d
|
||||||
|
#define PBAP_PCE_SVCLASS_ID 0x112e
|
||||||
|
#define PBAP_PSE_SVCLASS_ID 0x112f
|
||||||
|
#define PBAP_SVCLASS_ID 0x1130
|
||||||
|
#define MAP_MSE_SVCLASS_ID 0x1132
|
||||||
|
#define MAP_MCE_SVCLASS_ID 0x1133
|
||||||
|
#define MAP_SVCLASS_ID 0x1134
|
||||||
|
#define GNSS_SVCLASS_ID 0x1135
|
||||||
|
#define GNSS_SERVER_SVCLASS_ID 0x1136
|
||||||
|
#define MPS_SC_SVCLASS_ID 0x113A
|
||||||
|
#define MPS_SVCLASS_ID 0x113B
|
||||||
|
#define PNP_INFO_SVCLASS_ID 0x1200
|
||||||
|
#define GENERIC_NETWORKING_SVCLASS_ID 0x1201
|
||||||
|
#define GENERIC_FILETRANS_SVCLASS_ID 0x1202
|
||||||
|
#define GENERIC_AUDIO_SVCLASS_ID 0x1203
|
||||||
|
#define GENERIC_TELEPHONY_SVCLASS_ID 0x1204
|
||||||
|
#define UPNP_SVCLASS_ID 0x1205
|
||||||
|
#define UPNP_IP_SVCLASS_ID 0x1206
|
||||||
|
#define UPNP_PAN_SVCLASS_ID 0x1300
|
||||||
|
#define UPNP_LAP_SVCLASS_ID 0x1301
|
||||||
|
#define UPNP_L2CAP_SVCLASS_ID 0x1302
|
||||||
|
#define VIDEO_SOURCE_SVCLASS_ID 0x1303
|
||||||
|
#define VIDEO_SINK_SVCLASS_ID 0x1304
|
||||||
|
#define VIDEO_DISTRIBUTION_SVCLASS_ID 0x1305
|
||||||
|
#define HDP_SVCLASS_ID 0x1400
|
||||||
|
#define HDP_SOURCE_SVCLASS_ID 0x1401
|
||||||
|
#define HDP_SINK_SVCLASS_ID 0x1402
|
||||||
|
#define GENERIC_ACCESS_SVCLASS_ID 0x1800
|
||||||
|
#define GENERIC_ATTRIB_SVCLASS_ID 0x1801
|
||||||
|
#define APPLE_AGENT_SVCLASS_ID 0x2112
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Standard profile descriptor identifiers; note these
|
||||||
|
* may be identical to some of the service classes defined above
|
||||||
|
*/
|
||||||
|
#define SDP_SERVER_PROFILE_ID SDP_SERVER_SVCLASS_ID
|
||||||
|
#define BROWSE_GRP_DESC_PROFILE_ID BROWSE_GRP_DESC_SVCLASS_ID
|
||||||
|
#define SERIAL_PORT_PROFILE_ID SERIAL_PORT_SVCLASS_ID
|
||||||
|
#define LAN_ACCESS_PROFILE_ID LAN_ACCESS_SVCLASS_ID
|
||||||
|
#define DIALUP_NET_PROFILE_ID DIALUP_NET_SVCLASS_ID
|
||||||
|
#define IRMC_SYNC_PROFILE_ID IRMC_SYNC_SVCLASS_ID
|
||||||
|
#define OBEX_OBJPUSH_PROFILE_ID OBEX_OBJPUSH_SVCLASS_ID
|
||||||
|
#define OBEX_FILETRANS_PROFILE_ID OBEX_FILETRANS_SVCLASS_ID
|
||||||
|
#define IRMC_SYNC_CMD_PROFILE_ID IRMC_SYNC_CMD_SVCLASS_ID
|
||||||
|
#define HEADSET_PROFILE_ID HEADSET_SVCLASS_ID
|
||||||
|
#define CORDLESS_TELEPHONY_PROFILE_ID CORDLESS_TELEPHONY_SVCLASS_ID
|
||||||
|
#define AUDIO_SOURCE_PROFILE_ID AUDIO_SOURCE_SVCLASS_ID
|
||||||
|
#define AUDIO_SINK_PROFILE_ID AUDIO_SINK_SVCLASS_ID
|
||||||
|
#define AV_REMOTE_TARGET_PROFILE_ID AV_REMOTE_TARGET_SVCLASS_ID
|
||||||
|
#define ADVANCED_AUDIO_PROFILE_ID ADVANCED_AUDIO_SVCLASS_ID
|
||||||
|
#define AV_REMOTE_PROFILE_ID AV_REMOTE_SVCLASS_ID
|
||||||
|
#define INTERCOM_PROFILE_ID INTERCOM_SVCLASS_ID
|
||||||
|
#define FAX_PROFILE_ID FAX_SVCLASS_ID
|
||||||
|
#define HEADSET_AGW_PROFILE_ID HEADSET_AGW_SVCLASS_ID
|
||||||
|
#define WAP_PROFILE_ID WAP_SVCLASS_ID
|
||||||
|
#define WAP_CLIENT_PROFILE_ID WAP_CLIENT_SVCLASS_ID
|
||||||
|
#define PANU_PROFILE_ID PANU_SVCLASS_ID
|
||||||
|
#define NAP_PROFILE_ID NAP_SVCLASS_ID
|
||||||
|
#define GN_PROFILE_ID GN_SVCLASS_ID
|
||||||
|
#define DIRECT_PRINTING_PROFILE_ID DIRECT_PRINTING_SVCLASS_ID
|
||||||
|
#define REFERENCE_PRINTING_PROFILE_ID REFERENCE_PRINTING_SVCLASS_ID
|
||||||
|
#define IMAGING_PROFILE_ID IMAGING_SVCLASS_ID
|
||||||
|
#define IMAGING_RESPONDER_PROFILE_ID IMAGING_RESPONDER_SVCLASS_ID
|
||||||
|
#define IMAGING_ARCHIVE_PROFILE_ID IMAGING_ARCHIVE_SVCLASS_ID
|
||||||
|
#define IMAGING_REFOBJS_PROFILE_ID IMAGING_REFOBJS_SVCLASS_ID
|
||||||
|
#define HANDSFREE_PROFILE_ID HANDSFREE_SVCLASS_ID
|
||||||
|
#define HANDSFREE_AGW_PROFILE_ID HANDSFREE_AGW_SVCLASS_ID
|
||||||
|
#define DIRECT_PRT_REFOBJS_PROFILE_ID DIRECT_PRT_REFOBJS_SVCLASS_ID
|
||||||
|
#define REFLECTED_UI_PROFILE_ID REFLECTED_UI_SVCLASS_ID
|
||||||
|
#define BASIC_PRINTING_PROFILE_ID BASIC_PRINTING_SVCLASS_ID
|
||||||
|
#define PRINTING_STATUS_PROFILE_ID PRINTING_STATUS_SVCLASS_ID
|
||||||
|
#define HID_PROFILE_ID HID_SVCLASS_ID
|
||||||
|
#define HCR_PROFILE_ID HCR_SCAN_SVCLASS_ID
|
||||||
|
#define HCR_PRINT_PROFILE_ID HCR_PRINT_SVCLASS_ID
|
||||||
|
#define HCR_SCAN_PROFILE_ID HCR_SCAN_SVCLASS_ID
|
||||||
|
#define CIP_PROFILE_ID CIP_SVCLASS_ID
|
||||||
|
#define VIDEO_CONF_GW_PROFILE_ID VIDEO_CONF_GW_SVCLASS_ID
|
||||||
|
#define UDI_MT_PROFILE_ID UDI_MT_SVCLASS_ID
|
||||||
|
#define UDI_TA_PROFILE_ID UDI_TA_SVCLASS_ID
|
||||||
|
#define AV_PROFILE_ID AV_SVCLASS_ID
|
||||||
|
#define SAP_PROFILE_ID SAP_SVCLASS_ID
|
||||||
|
#define PBAP_PCE_PROFILE_ID PBAP_PCE_SVCLASS_ID
|
||||||
|
#define PBAP_PSE_PROFILE_ID PBAP_PSE_SVCLASS_ID
|
||||||
|
#define PBAP_PROFILE_ID PBAP_SVCLASS_ID
|
||||||
|
#define MAP_PROFILE_ID MAP_SVCLASS_ID
|
||||||
|
#define PNP_INFO_PROFILE_ID PNP_INFO_SVCLASS_ID
|
||||||
|
#define GENERIC_NETWORKING_PROFILE_ID GENERIC_NETWORKING_SVCLASS_ID
|
||||||
|
#define GENERIC_FILETRANS_PROFILE_ID GENERIC_FILETRANS_SVCLASS_ID
|
||||||
|
#define GENERIC_AUDIO_PROFILE_ID GENERIC_AUDIO_SVCLASS_ID
|
||||||
|
#define GENERIC_TELEPHONY_PROFILE_ID GENERIC_TELEPHONY_SVCLASS_ID
|
||||||
|
#define UPNP_PROFILE_ID UPNP_SVCLASS_ID
|
||||||
|
#define UPNP_IP_PROFILE_ID UPNP_IP_SVCLASS_ID
|
||||||
|
#define UPNP_PAN_PROFILE_ID UPNP_PAN_SVCLASS_ID
|
||||||
|
#define UPNP_LAP_PROFILE_ID UPNP_LAP_SVCLASS_ID
|
||||||
|
#define UPNP_L2CAP_PROFILE_ID UPNP_L2CAP_SVCLASS_ID
|
||||||
|
#define VIDEO_SOURCE_PROFILE_ID VIDEO_SOURCE_SVCLASS_ID
|
||||||
|
#define VIDEO_SINK_PROFILE_ID VIDEO_SINK_SVCLASS_ID
|
||||||
|
#define VIDEO_DISTRIBUTION_PROFILE_ID VIDEO_DISTRIBUTION_SVCLASS_ID
|
||||||
|
#define HDP_PROFILE_ID HDP_SVCLASS_ID
|
||||||
|
#define HDP_SOURCE_PROFILE_ID HDP_SOURCE_SVCLASS_ID
|
||||||
|
#define HDP_SINK_PROFILE_ID HDP_SINK_SVCLASS_ID
|
||||||
|
#define GENERIC_ACCESS_PROFILE_ID GENERIC_ACCESS_SVCLASS_ID
|
||||||
|
#define GENERIC_ATTRIB_PROFILE_ID GENERIC_ATTRIB_SVCLASS_ID
|
||||||
|
#define APPLE_AGENT_PROFILE_ID APPLE_AGENT_SVCLASS_ID
|
||||||
|
#define MPS_PROFILE_ID MPS_SC_SVCLASS_ID
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Compatibility macros for the old MDP acronym
|
||||||
|
*/
|
||||||
|
#define MDP_SVCLASS_ID HDP_SVCLASS_ID
|
||||||
|
#define MDP_SOURCE_SVCLASS_ID HDP_SOURCE_SVCLASS_ID
|
||||||
|
#define MDP_SINK_SVCLASS_ID HDP_SINK_SVCLASS_ID
|
||||||
|
#define MDP_PROFILE_ID HDP_PROFILE_ID
|
||||||
|
#define MDP_SOURCE_PROFILE_ID HDP_SOURCE_PROFILE_ID
|
||||||
|
#define MDP_SINK_PROFILE_ID HDP_SINK_PROFILE_ID
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Attribute identifier codes
|
||||||
|
*/
|
||||||
|
#define SDP_SERVER_RECORD_HANDLE 0x0000
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Possible values for attribute-id are listed below.
|
||||||
|
* See SDP Spec, section "Service Attribute Definitions" for more details.
|
||||||
|
*/
|
||||||
|
#define SDP_ATTR_RECORD_HANDLE 0x0000
|
||||||
|
#define SDP_ATTR_SVCLASS_ID_LIST 0x0001
|
||||||
|
#define SDP_ATTR_RECORD_STATE 0x0002
|
||||||
|
#define SDP_ATTR_SERVICE_ID 0x0003
|
||||||
|
#define SDP_ATTR_PROTO_DESC_LIST 0x0004
|
||||||
|
#define SDP_ATTR_BROWSE_GRP_LIST 0x0005
|
||||||
|
#define SDP_ATTR_LANG_BASE_ATTR_ID_LIST 0x0006
|
||||||
|
#define SDP_ATTR_SVCINFO_TTL 0x0007
|
||||||
|
#define SDP_ATTR_SERVICE_AVAILABILITY 0x0008
|
||||||
|
#define SDP_ATTR_PFILE_DESC_LIST 0x0009
|
||||||
|
#define SDP_ATTR_DOC_URL 0x000a
|
||||||
|
#define SDP_ATTR_CLNT_EXEC_URL 0x000b
|
||||||
|
#define SDP_ATTR_ICON_URL 0x000c
|
||||||
|
#define SDP_ATTR_ADD_PROTO_DESC_LIST 0x000d
|
||||||
|
|
||||||
|
#define SDP_ATTR_GROUP_ID 0x0200
|
||||||
|
#define SDP_ATTR_IP_SUBNET 0x0200
|
||||||
|
#define SDP_ATTR_VERSION_NUM_LIST 0x0200
|
||||||
|
#define SDP_ATTR_SUPPORTED_FEATURES_LIST 0x0200
|
||||||
|
#define SDP_ATTR_GOEP_L2CAP_PSM 0x0200
|
||||||
|
#define SDP_ATTR_SVCDB_STATE 0x0201
|
||||||
|
|
||||||
|
#define SDP_ATTR_MPSD_SCENARIOS 0x0200
|
||||||
|
#define SDP_ATTR_MPMD_SCENARIOS 0x0201
|
||||||
|
#define SDP_ATTR_MPS_DEPENDENCIES 0x0202
|
||||||
|
|
||||||
|
#define SDP_ATTR_SERVICE_VERSION 0x0300
|
||||||
|
#define SDP_ATTR_EXTERNAL_NETWORK 0x0301
|
||||||
|
#define SDP_ATTR_SUPPORTED_DATA_STORES_LIST 0x0301
|
||||||
|
#define SDP_ATTR_DATA_EXCHANGE_SPEC 0x0301
|
||||||
|
#define SDP_ATTR_NETWORK 0x0301
|
||||||
|
#define SDP_ATTR_FAX_CLASS1_SUPPORT 0x0302
|
||||||
|
#define SDP_ATTR_REMOTE_AUDIO_VOLUME_CONTROL 0x0302
|
||||||
|
#define SDP_ATTR_MCAP_SUPPORTED_PROCEDURES 0x0302
|
||||||
|
#define SDP_ATTR_FAX_CLASS20_SUPPORT 0x0303
|
||||||
|
#define SDP_ATTR_SUPPORTED_FORMATS_LIST 0x0303
|
||||||
|
#define SDP_ATTR_FAX_CLASS2_SUPPORT 0x0304
|
||||||
|
#define SDP_ATTR_AUDIO_FEEDBACK_SUPPORT 0x0305
|
||||||
|
#define SDP_ATTR_NETWORK_ADDRESS 0x0306
|
||||||
|
#define SDP_ATTR_WAP_GATEWAY 0x0307
|
||||||
|
#define SDP_ATTR_HOMEPAGE_URL 0x0308
|
||||||
|
#define SDP_ATTR_WAP_STACK_TYPE 0x0309
|
||||||
|
#define SDP_ATTR_SECURITY_DESC 0x030a
|
||||||
|
#define SDP_ATTR_NET_ACCESS_TYPE 0x030b
|
||||||
|
#define SDP_ATTR_MAX_NET_ACCESSRATE 0x030c
|
||||||
|
#define SDP_ATTR_IP4_SUBNET 0x030d
|
||||||
|
#define SDP_ATTR_IP6_SUBNET 0x030e
|
||||||
|
#define SDP_ATTR_SUPPORTED_CAPABILITIES 0x0310
|
||||||
|
#define SDP_ATTR_SUPPORTED_FEATURES 0x0311
|
||||||
|
#define SDP_ATTR_SUPPORTED_FUNCTIONS 0x0312
|
||||||
|
#define SDP_ATTR_TOTAL_IMAGING_DATA_CAPACITY 0x0313
|
||||||
|
#define SDP_ATTR_SUPPORTED_REPOSITORIES 0x0314
|
||||||
|
#define SDP_ATTR_MAS_INSTANCE_ID 0x0315
|
||||||
|
#define SDP_ATTR_SUPPORTED_MESSAGE_TYPES 0x0316
|
||||||
|
#define SDP_ATTR_PBAP_SUPPORTED_FEATURES 0x0317
|
||||||
|
#define SDP_ATTR_MAP_SUPPORTED_FEATURES 0x0317
|
||||||
|
|
||||||
|
#define SDP_ATTR_SPECIFICATION_ID 0x0200
|
||||||
|
#define SDP_ATTR_VENDOR_ID 0x0201
|
||||||
|
#define SDP_ATTR_PRODUCT_ID 0x0202
|
||||||
|
#define SDP_ATTR_VERSION 0x0203
|
||||||
|
#define SDP_ATTR_PRIMARY_RECORD 0x0204
|
||||||
|
#define SDP_ATTR_VENDOR_ID_SOURCE 0x0205
|
||||||
|
|
||||||
|
#define SDP_ATTR_HID_DEVICE_RELEASE_NUMBER 0x0200
|
||||||
|
#define SDP_ATTR_HID_PARSER_VERSION 0x0201
|
||||||
|
#define SDP_ATTR_HID_DEVICE_SUBCLASS 0x0202
|
||||||
|
#define SDP_ATTR_HID_COUNTRY_CODE 0x0203
|
||||||
|
#define SDP_ATTR_HID_VIRTUAL_CABLE 0x0204
|
||||||
|
#define SDP_ATTR_HID_RECONNECT_INITIATE 0x0205
|
||||||
|
#define SDP_ATTR_HID_DESCRIPTOR_LIST 0x0206
|
||||||
|
#define SDP_ATTR_HID_LANG_ID_BASE_LIST 0x0207
|
||||||
|
#define SDP_ATTR_HID_SDP_DISABLE 0x0208
|
||||||
|
#define SDP_ATTR_HID_BATTERY_POWER 0x0209
|
||||||
|
#define SDP_ATTR_HID_REMOTE_WAKEUP 0x020a
|
||||||
|
#define SDP_ATTR_HID_PROFILE_VERSION 0x020b
|
||||||
|
#define SDP_ATTR_HID_SUPERVISION_TIMEOUT 0x020c
|
||||||
|
#define SDP_ATTR_HID_NORMALLY_CONNECTABLE 0x020d
|
||||||
|
#define SDP_ATTR_HID_BOOT_DEVICE 0x020e
|
||||||
|
|
||||||
|
/*
|
||||||
|
* These identifiers are based on the SDP spec stating that
|
||||||
|
* "base attribute id of the primary (universal) language must be 0x0100"
|
||||||
|
*
|
||||||
|
* Other languages should have their own offset; e.g.:
|
||||||
|
* #define XXXLangBase yyyy
|
||||||
|
* #define AttrServiceName_XXX 0x0000+XXXLangBase
|
||||||
|
*/
|
||||||
|
#define SDP_PRIMARY_LANG_BASE 0x0100
|
||||||
|
|
||||||
|
#define SDP_ATTR_SVCNAME_PRIMARY 0x0000 + SDP_PRIMARY_LANG_BASE
|
||||||
|
#define SDP_ATTR_SVCDESC_PRIMARY 0x0001 + SDP_PRIMARY_LANG_BASE
|
||||||
|
#define SDP_ATTR_PROVNAME_PRIMARY 0x0002 + SDP_PRIMARY_LANG_BASE
|
||||||
|
|
||||||
|
/*
|
||||||
|
* The Data representation in SDP PDUs (pps 339, 340 of BT SDP Spec)
|
||||||
|
* These are the exact data type+size descriptor values
|
||||||
|
* that go into the PDU buffer.
|
||||||
|
*
|
||||||
|
* The datatype (leading 5bits) + size descriptor (last 3 bits)
|
||||||
|
* is 8 bits. The size descriptor is critical to extract the
|
||||||
|
* right number of bytes for the data value from the PDU.
|
||||||
|
*
|
||||||
|
* For most basic types, the datatype+size descriptor is
|
||||||
|
* straightforward. However for constructed types and strings,
|
||||||
|
* the size of the data is in the next "n" bytes following the
|
||||||
|
* 8 bits (datatype+size) descriptor. Exactly what the "n" is
|
||||||
|
* specified in the 3 bits of the data size descriptor.
|
||||||
|
*
|
||||||
|
* TextString and URLString can be of size 2^{8, 16, 32} bytes
|
||||||
|
* DataSequence and DataSequenceAlternates can be of size 2^{8, 16, 32}
|
||||||
|
* The size are computed post-facto in the API and are not known apriori
|
||||||
|
*/
|
||||||
|
#define SDP_DATA_NIL 0x00
|
||||||
|
#define SDP_UINT8 0x08
|
||||||
|
#define SDP_UINT16 0x09
|
||||||
|
#define SDP_UINT32 0x0A
|
||||||
|
#define SDP_UINT64 0x0B
|
||||||
|
#define SDP_UINT128 0x0C
|
||||||
|
#define SDP_INT8 0x10
|
||||||
|
#define SDP_INT16 0x11
|
||||||
|
#define SDP_INT32 0x12
|
||||||
|
#define SDP_INT64 0x13
|
||||||
|
#define SDP_INT128 0x14
|
||||||
|
#define SDP_UUID_UNSPEC 0x18
|
||||||
|
#define SDP_UUID16 0x19
|
||||||
|
#define SDP_UUID32 0x1A
|
||||||
|
#define SDP_UUID128 0x1C
|
||||||
|
#define SDP_TEXT_STR_UNSPEC 0x20
|
||||||
|
#define SDP_TEXT_STR8 0x25
|
||||||
|
#define SDP_TEXT_STR16 0x26
|
||||||
|
#define SDP_TEXT_STR32 0x27
|
||||||
|
#define SDP_BOOL 0x28
|
||||||
|
#define SDP_SEQ_UNSPEC 0x30
|
||||||
|
#define SDP_SEQ8 0x35
|
||||||
|
#define SDP_SEQ16 0x36
|
||||||
|
#define SDP_SEQ32 0x37
|
||||||
|
#define SDP_ALT_UNSPEC 0x38
|
||||||
|
#define SDP_ALT8 0x3D
|
||||||
|
#define SDP_ALT16 0x3E
|
||||||
|
#define SDP_ALT32 0x3F
|
||||||
|
#define SDP_URL_STR_UNSPEC 0x40
|
||||||
|
#define SDP_URL_STR8 0x45
|
||||||
|
#define SDP_URL_STR16 0x46
|
||||||
|
#define SDP_URL_STR32 0x47
|
||||||
|
|
||||||
|
/*
|
||||||
|
* The PDU identifiers of SDP packets between client and server
|
||||||
|
*/
|
||||||
|
#define SDP_ERROR_RSP 0x01
|
||||||
|
#define SDP_SVC_SEARCH_REQ 0x02
|
||||||
|
#define SDP_SVC_SEARCH_RSP 0x03
|
||||||
|
#define SDP_SVC_ATTR_REQ 0x04
|
||||||
|
#define SDP_SVC_ATTR_RSP 0x05
|
||||||
|
#define SDP_SVC_SEARCH_ATTR_REQ 0x06
|
||||||
|
#define SDP_SVC_SEARCH_ATTR_RSP 0x07
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Some additions to support service registration.
|
||||||
|
* These are outside the scope of the Bluetooth specification
|
||||||
|
*/
|
||||||
|
#define SDP_SVC_REGISTER_REQ 0x75
|
||||||
|
#define SDP_SVC_REGISTER_RSP 0x76
|
||||||
|
#define SDP_SVC_UPDATE_REQ 0x77
|
||||||
|
#define SDP_SVC_UPDATE_RSP 0x78
|
||||||
|
#define SDP_SVC_REMOVE_REQ 0x79
|
||||||
|
#define SDP_SVC_REMOVE_RSP 0x80
|
||||||
|
|
||||||
|
/*
|
||||||
|
* SDP Error codes
|
||||||
|
*/
|
||||||
|
#define SDP_INVALID_VERSION 0x0001
|
||||||
|
#define SDP_INVALID_RECORD_HANDLE 0x0002
|
||||||
|
#define SDP_INVALID_SYNTAX 0x0003
|
||||||
|
#define SDP_INVALID_PDU_SIZE 0x0004
|
||||||
|
#define SDP_INVALID_CSTATE 0x0005
|
||||||
|
|
||||||
|
/*
|
||||||
|
* SDP PDU
|
||||||
|
*/
|
||||||
|
typedef struct {
|
||||||
|
uint8_t pdu_id;
|
||||||
|
uint16_t tid;
|
||||||
|
uint16_t plen;
|
||||||
|
} __attribute__ ((packed)) sdp_pdu_hdr_t;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Common definitions for attributes in the SDP.
|
||||||
|
* Should the type of any of these change, you need only make a change here.
|
||||||
|
*/
|
||||||
|
|
||||||
|
typedef struct {
|
||||||
|
uint8_t type;
|
||||||
|
union {
|
||||||
|
uint16_t uuid16;
|
||||||
|
uint32_t uuid32;
|
||||||
|
uint128_t uuid128;
|
||||||
|
} value;
|
||||||
|
} uuid_t;
|
||||||
|
|
||||||
|
#define SDP_IS_UUID(x) ((x) == SDP_UUID16 || (x) == SDP_UUID32 || \
|
||||||
|
(x) == SDP_UUID128)
|
||||||
|
#define SDP_IS_ALT(x) ((x) == SDP_ALT8 || (x) == SDP_ALT16 || (x) == SDP_ALT32)
|
||||||
|
#define SDP_IS_SEQ(x) ((x) == SDP_SEQ8 || (x) == SDP_SEQ16 || (x) == SDP_SEQ32)
|
||||||
|
#define SDP_IS_TEXT_STR(x) ((x) == SDP_TEXT_STR8 || (x) == SDP_TEXT_STR16 || \
|
||||||
|
(x) == SDP_TEXT_STR32)
|
||||||
|
|
||||||
|
typedef struct _sdp_list sdp_list_t;
|
||||||
|
struct _sdp_list {
|
||||||
|
sdp_list_t *next;
|
||||||
|
void *data;
|
||||||
|
};
|
||||||
|
|
||||||
|
/*
|
||||||
|
* User-visible strings can be in many languages
|
||||||
|
* in addition to the universal language.
|
||||||
|
*
|
||||||
|
* Language meta-data includes language code in ISO639
|
||||||
|
* followed by the encoding format. The third field in this
|
||||||
|
* structure is the attribute offset for the language.
|
||||||
|
* User-visible strings in the specified language can be
|
||||||
|
* obtained at this offset.
|
||||||
|
*/
|
||||||
|
typedef struct {
|
||||||
|
uint16_t code_ISO639;
|
||||||
|
uint16_t encoding;
|
||||||
|
uint16_t base_offset;
|
||||||
|
} sdp_lang_attr_t;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Profile descriptor is the Bluetooth profile metadata. If a
|
||||||
|
* service conforms to a well-known profile, then its profile
|
||||||
|
* identifier (UUID) is an attribute of the service. In addition,
|
||||||
|
* if the profile has a version number it is specified here.
|
||||||
|
*/
|
||||||
|
typedef struct {
|
||||||
|
uuid_t uuid;
|
||||||
|
uint16_t version;
|
||||||
|
} sdp_profile_desc_t;
|
||||||
|
|
||||||
|
typedef struct {
|
||||||
|
uint8_t major;
|
||||||
|
uint8_t minor;
|
||||||
|
} sdp_version_t;
|
||||||
|
|
||||||
|
typedef struct {
|
||||||
|
uint8_t *data;
|
||||||
|
uint32_t data_size;
|
||||||
|
uint32_t buf_size;
|
||||||
|
} sdp_buf_t;
|
||||||
|
|
||||||
|
typedef struct {
|
||||||
|
uint32_t handle;
|
||||||
|
|
||||||
|
/* Search pattern: a sequence of all UUIDs seen in this record */
|
||||||
|
sdp_list_t *pattern;
|
||||||
|
sdp_list_t *attrlist;
|
||||||
|
|
||||||
|
/* Main service class for Extended Inquiry Response */
|
||||||
|
uuid_t svclass;
|
||||||
|
} sdp_record_t;
|
||||||
|
|
||||||
|
typedef struct sdp_data_struct sdp_data_t;
|
||||||
|
struct sdp_data_struct {
|
||||||
|
uint8_t dtd;
|
||||||
|
uint16_t attrId;
|
||||||
|
union {
|
||||||
|
int8_t int8;
|
||||||
|
int16_t int16;
|
||||||
|
int32_t int32;
|
||||||
|
int64_t int64;
|
||||||
|
uint128_t int128;
|
||||||
|
uint8_t uint8;
|
||||||
|
uint16_t uint16;
|
||||||
|
uint32_t uint32;
|
||||||
|
uint64_t uint64;
|
||||||
|
uint128_t uint128;
|
||||||
|
uuid_t uuid;
|
||||||
|
char *str;
|
||||||
|
sdp_data_t *dataseq;
|
||||||
|
} val;
|
||||||
|
sdp_data_t *next;
|
||||||
|
int unitSize;
|
||||||
|
};
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif /* __SDP_H */
|
621
code/application/source/sf_app/code/source/sf_blue/inc/bluetooth/sdp_lib.h
Executable file
621
code/application/source/sf_app/code/source/sf_blue/inc/bluetooth/sdp_lib.h
Executable file
|
@ -0,0 +1,621 @@
|
||||||
|
/* SPDX-License-Identifier: GPL-2.0-or-later */
|
||||||
|
/*
|
||||||
|
*
|
||||||
|
* BlueZ - Bluetooth protocol stack for Linux
|
||||||
|
*
|
||||||
|
* Copyright (C) 2001-2002 Nokia Corporation
|
||||||
|
* Copyright (C) 2002-2003 Maxim Krasnyansky <maxk@qualcomm.com>
|
||||||
|
* Copyright (C) 2002-2010 Marcel Holtmann <marcel@holtmann.org>
|
||||||
|
* Copyright (C) 2002-2003 Stephen Crane <steve.crane@rococosoft.com>
|
||||||
|
*
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef __SDP_LIB_H
|
||||||
|
#define __SDP_LIB_H
|
||||||
|
|
||||||
|
#include <sys/socket.h>
|
||||||
|
#include <bluetooth/bluetooth.h>
|
||||||
|
#include <bluetooth/hci.h>
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/*
|
||||||
|
* SDP lists
|
||||||
|
*/
|
||||||
|
typedef void(*sdp_list_func_t)(void *, void *);
|
||||||
|
typedef void(*sdp_free_func_t)(void *);
|
||||||
|
typedef int (*sdp_comp_func_t)(const void *, const void *);
|
||||||
|
|
||||||
|
sdp_list_t *sdp_list_append(sdp_list_t *list, void *d);
|
||||||
|
sdp_list_t *sdp_list_remove(sdp_list_t *list, void *d);
|
||||||
|
sdp_list_t *sdp_list_insert_sorted(sdp_list_t *list, void *data, sdp_comp_func_t f);
|
||||||
|
void sdp_list_free(sdp_list_t *list, sdp_free_func_t f);
|
||||||
|
|
||||||
|
static inline int sdp_list_len(const sdp_list_t *list)
|
||||||
|
{
|
||||||
|
int n = 0;
|
||||||
|
for (; list; list = list->next)
|
||||||
|
n++;
|
||||||
|
return n;
|
||||||
|
}
|
||||||
|
|
||||||
|
static inline sdp_list_t *sdp_list_find(sdp_list_t *list, void *u, sdp_comp_func_t f)
|
||||||
|
{
|
||||||
|
for (; list; list = list->next)
|
||||||
|
if (f(list->data, u) == 0)
|
||||||
|
return list;
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
static inline void sdp_list_foreach(sdp_list_t *list, sdp_list_func_t f, void *u)
|
||||||
|
{
|
||||||
|
for (; list; list = list->next)
|
||||||
|
f(list->data, u);
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Values of the flags parameter to sdp_record_register
|
||||||
|
*/
|
||||||
|
#define SDP_RECORD_PERSIST 0x01
|
||||||
|
#define SDP_DEVICE_RECORD 0x02
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Values of the flags parameter to sdp_connect
|
||||||
|
*/
|
||||||
|
#define SDP_RETRY_IF_BUSY 0x01
|
||||||
|
#define SDP_WAIT_ON_CLOSE 0x02
|
||||||
|
#define SDP_NON_BLOCKING 0x04
|
||||||
|
#define SDP_LARGE_MTU 0x08
|
||||||
|
|
||||||
|
/*
|
||||||
|
* a session with an SDP server
|
||||||
|
*/
|
||||||
|
typedef struct {
|
||||||
|
int sock;
|
||||||
|
int state;
|
||||||
|
int local;
|
||||||
|
int flags;
|
||||||
|
uint16_t tid; /* Current transaction ID */
|
||||||
|
void *priv;
|
||||||
|
} sdp_session_t;
|
||||||
|
|
||||||
|
typedef enum {
|
||||||
|
/*
|
||||||
|
* Attributes are specified as individual elements
|
||||||
|
*/
|
||||||
|
SDP_ATTR_REQ_INDIVIDUAL = 1,
|
||||||
|
/*
|
||||||
|
* Attributes are specified as a range
|
||||||
|
*/
|
||||||
|
SDP_ATTR_REQ_RANGE
|
||||||
|
} sdp_attrreq_type_t;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* When the pdu_id(type) is a sdp error response, check the status value
|
||||||
|
* to figure out the error reason. For status values 0x0001-0x0006 check
|
||||||
|
* Bluetooth SPEC. If the status is 0xffff, call sdp_get_error function
|
||||||
|
* to get the real reason:
|
||||||
|
* - wrong transaction ID(EPROTO)
|
||||||
|
* - wrong PDU id or(EPROTO)
|
||||||
|
* - I/O error
|
||||||
|
*/
|
||||||
|
typedef void sdp_callback_t(uint8_t type, uint16_t status, uint8_t *rsp, size_t size, void *udata);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* create an L2CAP connection to a Bluetooth device
|
||||||
|
*
|
||||||
|
* INPUT:
|
||||||
|
*
|
||||||
|
* bdaddr_t *src:
|
||||||
|
* Address of the local device to use to make the connection
|
||||||
|
* (or BDADDR_ANY)
|
||||||
|
*
|
||||||
|
* bdaddr_t *dst:
|
||||||
|
* Address of the SDP server device
|
||||||
|
*/
|
||||||
|
sdp_session_t *sdp_connect(const bdaddr_t *src, const bdaddr_t *dst, uint32_t flags);
|
||||||
|
int sdp_close(sdp_session_t *session);
|
||||||
|
int sdp_get_socket(const sdp_session_t *session);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* SDP transaction: functions for asynchronous search.
|
||||||
|
*/
|
||||||
|
sdp_session_t *sdp_create(int sk, uint32_t flags);
|
||||||
|
int sdp_get_error(sdp_session_t *session);
|
||||||
|
int sdp_process(sdp_session_t *session);
|
||||||
|
int sdp_set_notify(sdp_session_t *session, sdp_callback_t *func, void *udata);
|
||||||
|
|
||||||
|
int sdp_service_search_async(sdp_session_t *session, const sdp_list_t *search, uint16_t max_rec_num);
|
||||||
|
int sdp_service_attr_async(sdp_session_t *session, uint32_t handle, sdp_attrreq_type_t reqtype, const sdp_list_t *attrid_list);
|
||||||
|
int sdp_service_search_attr_async(sdp_session_t *session, const sdp_list_t *search, sdp_attrreq_type_t reqtype, const sdp_list_t *attrid_list);
|
||||||
|
|
||||||
|
uint16_t sdp_gen_tid(sdp_session_t *session);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* find all devices in the piconet
|
||||||
|
*/
|
||||||
|
int sdp_general_inquiry(inquiry_info *ii, int dev_num, int duration, uint8_t *found);
|
||||||
|
|
||||||
|
/* flexible extraction of basic attributes - Jean II */
|
||||||
|
int sdp_get_int_attr(const sdp_record_t *rec, uint16_t attr, int *value);
|
||||||
|
int sdp_get_string_attr(const sdp_record_t *rec, uint16_t attr, char *value, int valuelen);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Basic sdp data functions
|
||||||
|
*/
|
||||||
|
sdp_data_t *sdp_data_alloc(uint8_t dtd, const void *value);
|
||||||
|
sdp_data_t *sdp_data_alloc_with_length(uint8_t dtd, const void *value, uint32_t length);
|
||||||
|
void sdp_data_free(sdp_data_t *data);
|
||||||
|
sdp_data_t *sdp_data_get(const sdp_record_t *rec, uint16_t attr_id);
|
||||||
|
|
||||||
|
sdp_data_t *sdp_seq_alloc(void **dtds, void **values, int len);
|
||||||
|
sdp_data_t *sdp_seq_alloc_with_length(void **dtds, void **values, int *length, int len);
|
||||||
|
sdp_data_t *sdp_seq_append(sdp_data_t *seq, sdp_data_t *data);
|
||||||
|
|
||||||
|
int sdp_attr_add(sdp_record_t *rec, uint16_t attr, sdp_data_t *data);
|
||||||
|
void sdp_attr_remove(sdp_record_t *rec, uint16_t attr);
|
||||||
|
void sdp_attr_replace(sdp_record_t *rec, uint16_t attr, sdp_data_t *data);
|
||||||
|
int sdp_set_uuidseq_attr(sdp_record_t *rec, uint16_t attr, sdp_list_t *seq);
|
||||||
|
int sdp_get_uuidseq_attr(const sdp_record_t *rec, uint16_t attr, sdp_list_t **seqp);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* NOTE that none of the functions below will update the SDP server,
|
||||||
|
* unless the {register, update}sdp_record_t() function is invoked.
|
||||||
|
* All functions which return an integer value, return 0 on success
|
||||||
|
* or -1 on failure.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Create an attribute and add it to the service record's attribute list.
|
||||||
|
* This consists of the data type descriptor of the attribute,
|
||||||
|
* the value of the attribute and the attribute identifier.
|
||||||
|
*/
|
||||||
|
int sdp_attr_add_new(sdp_record_t *rec, uint16_t attr, uint8_t dtd, const void *p);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Set the information attributes of the service record.
|
||||||
|
* The set of attributes comprises service name, description
|
||||||
|
* and provider name
|
||||||
|
*/
|
||||||
|
void sdp_set_info_attr(sdp_record_t *rec, const char *name, const char *prov, const char *desc);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Set the ServiceClassID attribute to the sequence specified by seq.
|
||||||
|
* Note that the identifiers need to be in sorted order from the most
|
||||||
|
* specific to the most generic service class that this service
|
||||||
|
* conforms to.
|
||||||
|
*/
|
||||||
|
static inline int sdp_set_service_classes(sdp_record_t *rec, sdp_list_t *seq)
|
||||||
|
{
|
||||||
|
return sdp_set_uuidseq_attr(rec, SDP_ATTR_SVCLASS_ID_LIST, seq);
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Get the service classes to which the service conforms.
|
||||||
|
*
|
||||||
|
* When set, the list contains elements of ServiceClassIdentifer(uint16_t)
|
||||||
|
* ordered from most specific to most generic
|
||||||
|
*/
|
||||||
|
static inline int sdp_get_service_classes(const sdp_record_t *rec, sdp_list_t **seqp)
|
||||||
|
{
|
||||||
|
return sdp_get_uuidseq_attr(rec, SDP_ATTR_SVCLASS_ID_LIST, seqp);
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Set the BrowseGroupList attribute to the list specified by seq.
|
||||||
|
*
|
||||||
|
* A service can belong to one or more service groups
|
||||||
|
* and the list comprises such group identifiers (UUIDs)
|
||||||
|
*/
|
||||||
|
static inline int sdp_set_browse_groups(sdp_record_t *rec, sdp_list_t *seq)
|
||||||
|
{
|
||||||
|
return sdp_set_uuidseq_attr(rec, SDP_ATTR_BROWSE_GRP_LIST, seq);
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Set the access protocols of the record to those specified in proto
|
||||||
|
*/
|
||||||
|
int sdp_set_access_protos(sdp_record_t *rec, const sdp_list_t *proto);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Set the additional access protocols of the record to those specified in proto
|
||||||
|
*/
|
||||||
|
int sdp_set_add_access_protos(sdp_record_t *rec, const sdp_list_t *proto);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Get protocol port (i.e. PSM for L2CAP, Channel for RFCOMM)
|
||||||
|
*/
|
||||||
|
int sdp_get_proto_port(const sdp_list_t *list, int proto);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Get protocol descriptor.
|
||||||
|
*/
|
||||||
|
sdp_data_t *sdp_get_proto_desc(sdp_list_t *list, int proto);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Set the LanguageBase attributes to the values specified in list
|
||||||
|
* (a linked list of sdp_lang_attr_t objects, one for each language in
|
||||||
|
* which user-visible attributes are present).
|
||||||
|
*/
|
||||||
|
int sdp_set_lang_attr(sdp_record_t *rec, const sdp_list_t *list);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Set the ServiceInfoTimeToLive attribute of the service.
|
||||||
|
* This is the number of seconds that this record is guaranteed
|
||||||
|
* not to change after being obtained by a client.
|
||||||
|
*/
|
||||||
|
static inline int sdp_set_service_ttl(sdp_record_t *rec, uint32_t ttl)
|
||||||
|
{
|
||||||
|
return sdp_attr_add_new(rec, SDP_ATTR_SVCINFO_TTL, SDP_UINT32, &ttl);
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Set the ServiceRecordState attribute of a service. This is
|
||||||
|
* guaranteed to change if there is any kind of modification to
|
||||||
|
* the record.
|
||||||
|
*/
|
||||||
|
static inline int sdp_set_record_state(sdp_record_t *rec, uint32_t state)
|
||||||
|
{
|
||||||
|
return sdp_attr_add_new(rec, SDP_ATTR_RECORD_STATE, SDP_UINT32, &state);
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Set the ServiceID attribute of a service.
|
||||||
|
*/
|
||||||
|
void sdp_set_service_id(sdp_record_t *rec, uuid_t uuid);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Set the GroupID attribute of a service
|
||||||
|
*/
|
||||||
|
void sdp_set_group_id(sdp_record_t *rec, uuid_t grouuuid);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Set the ServiceAvailability attribute of a service.
|
||||||
|
*
|
||||||
|
* Note that this represents the relative availability
|
||||||
|
* of the service: 0x00 means completely unavailable;
|
||||||
|
* 0xFF means maximum availability.
|
||||||
|
*/
|
||||||
|
static inline int sdp_set_service_avail(sdp_record_t *rec, uint8_t avail)
|
||||||
|
{
|
||||||
|
return sdp_attr_add_new(rec, SDP_ATTR_SERVICE_AVAILABILITY, SDP_UINT8, &avail);
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Set the profile descriptor list attribute of a record.
|
||||||
|
*
|
||||||
|
* Each element in the list is an object of type
|
||||||
|
* sdp_profile_desc_t which is a definition of the
|
||||||
|
* Bluetooth profile that this service conforms to.
|
||||||
|
*/
|
||||||
|
int sdp_set_profile_descs(sdp_record_t *rec, const sdp_list_t *desc);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Set URL attributes of a record.
|
||||||
|
*
|
||||||
|
* ClientExecutableURL: a URL to a client's platform specific (WinCE,
|
||||||
|
* PalmOS) executable code that can be used to access this service.
|
||||||
|
*
|
||||||
|
* DocumentationURL: a URL pointing to service documentation
|
||||||
|
*
|
||||||
|
* IconURL: a URL to an icon that can be used to represent this service.
|
||||||
|
*
|
||||||
|
* Note: pass NULL for any URLs that you don't want to set or remove
|
||||||
|
*/
|
||||||
|
void sdp_set_url_attr(sdp_record_t *rec, const char *clientExecURL, const char *docURL, const char *iconURL);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* a service search request.
|
||||||
|
*
|
||||||
|
* INPUT :
|
||||||
|
*
|
||||||
|
* sdp_list_t *search
|
||||||
|
* list containing elements of the search
|
||||||
|
* pattern. Each entry in the list is a UUID
|
||||||
|
* of the service to be searched
|
||||||
|
*
|
||||||
|
* uint16_t max_rec_num
|
||||||
|
* An integer specifying the maximum number of
|
||||||
|
* entries that the client can handle in the response.
|
||||||
|
*
|
||||||
|
* OUTPUT :
|
||||||
|
*
|
||||||
|
* int return value
|
||||||
|
* 0
|
||||||
|
* The request completed successfully. This does not
|
||||||
|
* mean the requested services were found
|
||||||
|
* -1
|
||||||
|
* The request completed unsuccessfully
|
||||||
|
*
|
||||||
|
* sdp_list_t *rsp_list
|
||||||
|
* This variable is set on a successful return if there are
|
||||||
|
* non-zero service handles. It is a singly linked list of
|
||||||
|
* service record handles (uint16_t)
|
||||||
|
*/
|
||||||
|
int sdp_service_search_req(sdp_session_t *session, const sdp_list_t *search, uint16_t max_rec_num, sdp_list_t **rsp_list);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* a service attribute request.
|
||||||
|
*
|
||||||
|
* INPUT :
|
||||||
|
*
|
||||||
|
* uint32_t handle
|
||||||
|
* The handle of the service for which the attribute(s) are
|
||||||
|
* requested
|
||||||
|
*
|
||||||
|
* sdp_attrreq_type_t reqtype
|
||||||
|
* Attribute identifiers are 16 bit unsigned integers specified
|
||||||
|
* in one of 2 ways described below :
|
||||||
|
* SDP_ATTR_REQ_INDIVIDUAL - 16bit individual identifiers
|
||||||
|
* They are the actual attribute identifiers in ascending order
|
||||||
|
*
|
||||||
|
* SDP_ATTR_REQ_RANGE - 32bit identifier range
|
||||||
|
* The high-order 16bits is the start of range
|
||||||
|
* the low-order 16bits are the end of range
|
||||||
|
* 0x0000 to 0xFFFF gets all attributes
|
||||||
|
*
|
||||||
|
* sdp_list_t *attrid_list
|
||||||
|
* Singly linked list containing attribute identifiers desired.
|
||||||
|
* Every element is either a uint16_t(attrSpec = SDP_ATTR_REQ_INDIVIDUAL)
|
||||||
|
* or a uint32_t(attrSpec=SDP_ATTR_REQ_RANGE)
|
||||||
|
*
|
||||||
|
* OUTPUT :
|
||||||
|
* int return value
|
||||||
|
* 0
|
||||||
|
* The request completed successfully. This does not
|
||||||
|
* mean the requested services were found
|
||||||
|
* -1
|
||||||
|
* The request completed unsuccessfully due to a timeout
|
||||||
|
*/
|
||||||
|
sdp_record_t *sdp_service_attr_req(sdp_session_t *session, uint32_t handle, sdp_attrreq_type_t reqtype, const sdp_list_t *attrid_list);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* This is a service search request combined with the service
|
||||||
|
* attribute request. First a service class match is done and
|
||||||
|
* for matching service, requested attributes are extracted
|
||||||
|
*
|
||||||
|
* INPUT :
|
||||||
|
*
|
||||||
|
* sdp_list_t *search
|
||||||
|
* Singly linked list containing elements of the search
|
||||||
|
* pattern. Each entry in the list is a UUID(DataTypeSDP_UUID16)
|
||||||
|
* of the service to be searched
|
||||||
|
*
|
||||||
|
* AttributeSpecification attrSpec
|
||||||
|
* Attribute identifiers are 16 bit unsigned integers specified
|
||||||
|
* in one of 2 ways described below :
|
||||||
|
* SDP_ATTR_REQ_INDIVIDUAL - 16bit individual identifiers
|
||||||
|
* They are the actual attribute identifiers in ascending order
|
||||||
|
*
|
||||||
|
* SDP_ATTR_REQ_RANGE - 32bit identifier range
|
||||||
|
* The high-order 16bits is the start of range
|
||||||
|
* the low-order 16bits are the end of range
|
||||||
|
* 0x0000 to 0xFFFF gets all attributes
|
||||||
|
*
|
||||||
|
* sdp_list_t *attrid_list
|
||||||
|
* Singly linked list containing attribute identifiers desired.
|
||||||
|
* Every element is either a uint16_t(attrSpec = SDP_ATTR_REQ_INDIVIDUAL)
|
||||||
|
* or a uint32_t(attrSpec=SDP_ATTR_REQ_RANGE)
|
||||||
|
*
|
||||||
|
* OUTPUT :
|
||||||
|
* int return value
|
||||||
|
* 0
|
||||||
|
* The request completed successfully. This does not
|
||||||
|
* mean the requested services were found
|
||||||
|
* -1
|
||||||
|
* The request completed unsuccessfully due to a timeout
|
||||||
|
*
|
||||||
|
* sdp_list_t *rsp_list
|
||||||
|
* This variable is set on a successful return to point to
|
||||||
|
* service(s) found. Each element of this list is of type
|
||||||
|
* sdp_record_t *.
|
||||||
|
*/
|
||||||
|
int sdp_service_search_attr_req(sdp_session_t *session, const sdp_list_t *search, sdp_attrreq_type_t reqtype, const sdp_list_t *attrid_list, sdp_list_t **rsp_list);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Allocate/free a service record and its attributes
|
||||||
|
*/
|
||||||
|
sdp_record_t *sdp_record_alloc(void);
|
||||||
|
void sdp_record_free(sdp_record_t *rec);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Register a service record.
|
||||||
|
*
|
||||||
|
* Note: It is the responsbility of the Service Provider to create the
|
||||||
|
* record first and set its attributes using setXXX() methods.
|
||||||
|
*
|
||||||
|
* The service provider must then call sdp_record_register() to make
|
||||||
|
* the service record visible to SDP clients. This function returns 0
|
||||||
|
* on success or -1 on failure (and sets errno).
|
||||||
|
*/
|
||||||
|
int sdp_device_record_register_binary(sdp_session_t *session, bdaddr_t *device, uint8_t *data, uint32_t size, uint8_t flags, uint32_t *handle);
|
||||||
|
int sdp_device_record_register(sdp_session_t *session, bdaddr_t *device, sdp_record_t *rec, uint8_t flags);
|
||||||
|
int sdp_record_register(sdp_session_t *session, sdp_record_t *rec, uint8_t flags);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Unregister a service record.
|
||||||
|
*/
|
||||||
|
int sdp_device_record_unregister_binary(sdp_session_t *session, bdaddr_t *device, uint32_t handle);
|
||||||
|
int sdp_device_record_unregister(sdp_session_t *session, bdaddr_t *device, sdp_record_t *rec);
|
||||||
|
int sdp_record_unregister(sdp_session_t *session, sdp_record_t *rec);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Update an existing service record. (Calling this function
|
||||||
|
* before a previous call to sdp_record_register() will result
|
||||||
|
* in an error.)
|
||||||
|
*/
|
||||||
|
int sdp_device_record_update_binary(sdp_session_t *session, bdaddr_t *device, uint32_t handle, uint8_t *data, uint32_t size);
|
||||||
|
int sdp_device_record_update(sdp_session_t *session, bdaddr_t *device, const sdp_record_t *rec);
|
||||||
|
int sdp_record_update(sdp_session_t *sess, const sdp_record_t *rec);
|
||||||
|
|
||||||
|
void sdp_record_print(const sdp_record_t *rec);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* UUID functions
|
||||||
|
*/
|
||||||
|
uuid_t *sdp_uuid16_create(uuid_t *uuid, uint16_t data);
|
||||||
|
uuid_t *sdp_uuid32_create(uuid_t *uuid, uint32_t data);
|
||||||
|
uuid_t *sdp_uuid128_create(uuid_t *uuid, const void *data);
|
||||||
|
int sdp_uuid16_cmp(const void *p1, const void *p2);
|
||||||
|
int sdp_uuid128_cmp(const void *p1, const void *p2);
|
||||||
|
int sdp_uuid_cmp(const void *p1, const void *p2);
|
||||||
|
uuid_t *sdp_uuid_to_uuid128(const uuid_t *uuid);
|
||||||
|
void sdp_uuid16_to_uuid128(uuid_t *uuid128, const uuid_t *uuid16);
|
||||||
|
void sdp_uuid32_to_uuid128(uuid_t *uuid128, const uuid_t *uuid32);
|
||||||
|
int sdp_uuid128_to_uuid(uuid_t *uuid);
|
||||||
|
int sdp_uuid_to_proto(uuid_t *uuid);
|
||||||
|
int sdp_uuid_extract(const uint8_t *buffer, int bufsize, uuid_t *uuid, int *scanned);
|
||||||
|
void sdp_uuid_print(const uuid_t *uuid);
|
||||||
|
|
||||||
|
#define MAX_LEN_UUID_STR 37
|
||||||
|
#define MAX_LEN_PROTOCOL_UUID_STR 8
|
||||||
|
#define MAX_LEN_SERVICECLASS_UUID_STR 28
|
||||||
|
#define MAX_LEN_PROFILEDESCRIPTOR_UUID_STR 28
|
||||||
|
|
||||||
|
int sdp_uuid2strn(const uuid_t *uuid, char *str, size_t n);
|
||||||
|
int sdp_proto_uuid2strn(const uuid_t *uuid, char *str, size_t n);
|
||||||
|
int sdp_svclass_uuid2strn(const uuid_t *uuid, char *str, size_t n);
|
||||||
|
int sdp_profile_uuid2strn(const uuid_t *uuid, char *str, size_t n);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* In all the sdp_get_XXX(handle, XXX *xxx) functions below,
|
||||||
|
* the XXX * is set to point to the value, should it exist
|
||||||
|
* and 0 is returned. If the value does not exist, -1 is
|
||||||
|
* returned and errno set to ENODATA.
|
||||||
|
*
|
||||||
|
* In all the methods below, the memory management rules are
|
||||||
|
* simple. Don't free anything! The pointer returned, in the
|
||||||
|
* case of constructed types, is a pointer to the contents
|
||||||
|
* of the sdp_record_t.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Get the access protocols from the service record
|
||||||
|
*/
|
||||||
|
int sdp_get_access_protos(const sdp_record_t *rec, sdp_list_t **protos);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Get the additional access protocols from the service record
|
||||||
|
*/
|
||||||
|
int sdp_get_add_access_protos(const sdp_record_t *rec, sdp_list_t **protos);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Extract the list of browse groups to which the service belongs.
|
||||||
|
* When set, seqp contains elements of GroupID (uint16_t)
|
||||||
|
*/
|
||||||
|
static inline int sdp_get_browse_groups(const sdp_record_t *rec, sdp_list_t **seqp)
|
||||||
|
{
|
||||||
|
return sdp_get_uuidseq_attr(rec, SDP_ATTR_BROWSE_GRP_LIST, seqp);
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Extract language attribute meta-data of the service record.
|
||||||
|
* For each language in the service record, LangSeq has a struct of type
|
||||||
|
* sdp_lang_attr_t.
|
||||||
|
*/
|
||||||
|
int sdp_get_lang_attr(const sdp_record_t *rec, sdp_list_t **langSeq);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Extract the Bluetooth profile descriptor sequence from a record.
|
||||||
|
* Each element in the list is of type sdp_profile_desc_t
|
||||||
|
* which contains the UUID of the profile and its version number
|
||||||
|
* (encoded as major and minor in the high-order 8bits
|
||||||
|
* and low-order 8bits respectively of the uint16_t)
|
||||||
|
*/
|
||||||
|
int sdp_get_profile_descs(const sdp_record_t *rec, sdp_list_t **profDesc);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Extract SDP server version numbers
|
||||||
|
*
|
||||||
|
* Note: that this is an attribute of the SDP server only and
|
||||||
|
* contains a list of uint16_t each of which represent the
|
||||||
|
* major and minor SDP version numbers supported by this server
|
||||||
|
*/
|
||||||
|
int sdp_get_server_ver(const sdp_record_t *rec, sdp_list_t **pVnumList);
|
||||||
|
|
||||||
|
int sdp_get_service_id(const sdp_record_t *rec, uuid_t *uuid);
|
||||||
|
int sdp_get_group_id(const sdp_record_t *rec, uuid_t *uuid);
|
||||||
|
int sdp_get_record_state(const sdp_record_t *rec, uint32_t *svcRecState);
|
||||||
|
int sdp_get_service_avail(const sdp_record_t *rec, uint8_t *svcAvail);
|
||||||
|
int sdp_get_service_ttl(const sdp_record_t *rec, uint32_t *svcTTLInfo);
|
||||||
|
int sdp_get_database_state(const sdp_record_t *rec, uint32_t *svcDBState);
|
||||||
|
|
||||||
|
static inline int sdp_get_service_name(const sdp_record_t *rec, char *str, int len)
|
||||||
|
{
|
||||||
|
return sdp_get_string_attr(rec, SDP_ATTR_SVCNAME_PRIMARY, str, len);
|
||||||
|
}
|
||||||
|
|
||||||
|
static inline int sdp_get_service_desc(const sdp_record_t *rec, char *str, int len)
|
||||||
|
{
|
||||||
|
return sdp_get_string_attr(rec, SDP_ATTR_SVCDESC_PRIMARY, str, len);
|
||||||
|
}
|
||||||
|
|
||||||
|
static inline int sdp_get_provider_name(const sdp_record_t *rec, char *str, int len)
|
||||||
|
{
|
||||||
|
return sdp_get_string_attr(rec, SDP_ATTR_PROVNAME_PRIMARY, str, len);
|
||||||
|
}
|
||||||
|
|
||||||
|
static inline int sdp_get_doc_url(const sdp_record_t *rec, char *str, int len)
|
||||||
|
{
|
||||||
|
return sdp_get_string_attr(rec, SDP_ATTR_DOC_URL, str, len);
|
||||||
|
}
|
||||||
|
|
||||||
|
static inline int sdp_get_clnt_exec_url(const sdp_record_t *rec, char *str, int len)
|
||||||
|
{
|
||||||
|
return sdp_get_string_attr(rec, SDP_ATTR_CLNT_EXEC_URL, str, len);
|
||||||
|
}
|
||||||
|
|
||||||
|
static inline int sdp_get_icon_url(const sdp_record_t *rec, char *str, int len)
|
||||||
|
{
|
||||||
|
return sdp_get_string_attr(rec, SDP_ATTR_ICON_URL, str, len);
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Set the supported features
|
||||||
|
* sf should be a list of list with each feature data
|
||||||
|
* Returns 0 on success -1 on fail
|
||||||
|
*/
|
||||||
|
int sdp_set_supp_feat(sdp_record_t *rec, const sdp_list_t *sf);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Get the supported features
|
||||||
|
* seqp is set to a list of list with each feature data
|
||||||
|
* Returns 0 on success, if an error occurred -1 is returned and errno is set
|
||||||
|
*/
|
||||||
|
int sdp_get_supp_feat(const sdp_record_t *rec, sdp_list_t **seqp);
|
||||||
|
|
||||||
|
sdp_record_t *sdp_extract_pdu(const uint8_t *pdata, int bufsize, int *scanned);
|
||||||
|
sdp_record_t *sdp_copy_record(sdp_record_t *rec);
|
||||||
|
|
||||||
|
void sdp_data_print(sdp_data_t *data);
|
||||||
|
void sdp_print_service_attr(sdp_list_t *alist);
|
||||||
|
|
||||||
|
int sdp_attrid_comp_func(const void *key1, const void *key2);
|
||||||
|
|
||||||
|
void sdp_set_seq_len(uint8_t *ptr, uint32_t length);
|
||||||
|
void sdp_set_attrid(sdp_buf_t *pdu, uint16_t id);
|
||||||
|
void sdp_append_to_pdu(sdp_buf_t *dst, sdp_data_t *d);
|
||||||
|
void sdp_append_to_buf(sdp_buf_t *dst, uint8_t *data, uint32_t len);
|
||||||
|
|
||||||
|
int sdp_gen_pdu(sdp_buf_t *pdu, sdp_data_t *data);
|
||||||
|
int sdp_gen_record_pdu(const sdp_record_t *rec, sdp_buf_t *pdu);
|
||||||
|
|
||||||
|
int sdp_extract_seqtype(const uint8_t *buf, int bufsize, uint8_t *dtdp, int *size);
|
||||||
|
|
||||||
|
sdp_data_t *sdp_extract_attr(const uint8_t *pdata, int bufsize, int *extractedLength, sdp_record_t *rec);
|
||||||
|
|
||||||
|
void sdp_pattern_add_uuid(sdp_record_t *rec, uuid_t *uuid);
|
||||||
|
void sdp_pattern_add_uuidseq(sdp_record_t *rec, sdp_list_t *seq);
|
||||||
|
|
||||||
|
int sdp_send_req_w4_rsp(sdp_session_t *session, uint8_t *req, uint8_t *rsp, uint32_t reqsize, uint32_t *rspsize);
|
||||||
|
|
||||||
|
void sdp_add_lang_attr(sdp_record_t *rec);
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif /* __SDP_LIB_H */
|
67
code/application/source/sf_app/code/source/sf_blue/inc/dbus/dbus-address.h
Executable file
67
code/application/source/sf_app/code/source/sf_blue/inc/dbus/dbus-address.h
Executable file
|
@ -0,0 +1,67 @@
|
||||||
|
/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
|
||||||
|
/* dbus-address.h Server address parser.
|
||||||
|
*
|
||||||
|
* Copyright (C) 2003 CodeFactory AB
|
||||||
|
*
|
||||||
|
* Licensed under the Academic Free License version 2.1
|
||||||
|
*
|
||||||
|
* This program is free software; you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation; either version 2 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 General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program; if not, write to the Free Software
|
||||||
|
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
#if !defined (DBUS_INSIDE_DBUS_H) && !defined (DBUS_COMPILATION)
|
||||||
|
#error "Only <dbus/dbus.h> can be included directly, this file may disappear or change contents."
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef DBUS_ADDRESS_H
|
||||||
|
#define DBUS_ADDRESS_H
|
||||||
|
|
||||||
|
#include <dbus/dbus-types.h>
|
||||||
|
#include <dbus/dbus-errors.h>
|
||||||
|
|
||||||
|
DBUS_BEGIN_DECLS
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @addtogroup DBusAddress
|
||||||
|
* @{
|
||||||
|
*/
|
||||||
|
|
||||||
|
/** Opaque type representing one of the semicolon-separated items in an address */
|
||||||
|
typedef struct DBusAddressEntry DBusAddressEntry;
|
||||||
|
|
||||||
|
DBUS_EXPORT
|
||||||
|
dbus_bool_t dbus_parse_address (const char *address,
|
||||||
|
DBusAddressEntry ***entry,
|
||||||
|
int *array_len,
|
||||||
|
DBusError *error);
|
||||||
|
DBUS_EXPORT
|
||||||
|
const char *dbus_address_entry_get_value (DBusAddressEntry *entry,
|
||||||
|
const char *key);
|
||||||
|
DBUS_EXPORT
|
||||||
|
const char *dbus_address_entry_get_method (DBusAddressEntry *entry);
|
||||||
|
DBUS_EXPORT
|
||||||
|
void dbus_address_entries_free (DBusAddressEntry **entries);
|
||||||
|
|
||||||
|
DBUS_EXPORT
|
||||||
|
char* dbus_address_escape_value (const char *value);
|
||||||
|
DBUS_EXPORT
|
||||||
|
char* dbus_address_unescape_value (const char *value,
|
||||||
|
DBusError *error);
|
||||||
|
|
||||||
|
/** @} */
|
||||||
|
|
||||||
|
DBUS_END_DECLS
|
||||||
|
|
||||||
|
#endif /* DBUS_ADDRESS_H */
|
||||||
|
|
61
code/application/source/sf_app/code/source/sf_blue/inc/dbus/dbus-arch-deps.h
Executable file
61
code/application/source/sf_app/code/source/sf_blue/inc/dbus/dbus-arch-deps.h
Executable file
|
@ -0,0 +1,61 @@
|
||||||
|
/* -*- mode: C; c-file-style: "gnu" -*- */
|
||||||
|
/* dbus-arch-deps.h Header with architecture/compiler specific information, installed to libdir
|
||||||
|
*
|
||||||
|
* Copyright (C) 2003 Red Hat, Inc.
|
||||||
|
*
|
||||||
|
* Licensed under the Academic Free License version 2.0
|
||||||
|
*
|
||||||
|
* This program is free software; you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation; either version 2 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 General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program; if not, write to the Free Software
|
||||||
|
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
#if !defined (DBUS_INSIDE_DBUS_H) && !defined (DBUS_COMPILATION)
|
||||||
|
#error "Only <dbus/dbus.h> can be included directly, this file may disappear or change contents."
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef DBUS_ARCH_DEPS_H
|
||||||
|
#define DBUS_ARCH_DEPS_H
|
||||||
|
|
||||||
|
#include <dbus/dbus-macros.h>
|
||||||
|
|
||||||
|
DBUS_BEGIN_DECLS
|
||||||
|
|
||||||
|
/* D-Bus no longer supports platforms with no 64-bit integer type. */
|
||||||
|
#define DBUS_HAVE_INT64 1
|
||||||
|
_DBUS_GNUC_EXTENSION typedef long long dbus_int64_t;
|
||||||
|
_DBUS_GNUC_EXTENSION typedef unsigned long long dbus_uint64_t;
|
||||||
|
|
||||||
|
#define DBUS_INT64_CONSTANT(val) (_DBUS_GNUC_EXTENSION (val##LL))
|
||||||
|
#define DBUS_UINT64_CONSTANT(val) (_DBUS_GNUC_EXTENSION (val##ULL))
|
||||||
|
|
||||||
|
typedef int dbus_int32_t;
|
||||||
|
typedef unsigned int dbus_uint32_t;
|
||||||
|
|
||||||
|
typedef short dbus_int16_t;
|
||||||
|
typedef unsigned short dbus_uint16_t;
|
||||||
|
|
||||||
|
/* This is not really arch-dependent, but it's not worth
|
||||||
|
* creating an additional generated header just for this
|
||||||
|
*/
|
||||||
|
#define DBUS_MAJOR_VERSION 1
|
||||||
|
#define DBUS_MINOR_VERSION 9
|
||||||
|
#define DBUS_MICRO_VERSION 4
|
||||||
|
|
||||||
|
#define DBUS_VERSION_STRING "1.9.4"
|
||||||
|
|
||||||
|
#define DBUS_VERSION ((1 << 16) | (9 << 8) | (4))
|
||||||
|
|
||||||
|
DBUS_END_DECLS
|
||||||
|
|
||||||
|
#endif /* DBUS_ARCH_DEPS_H */
|
95
code/application/source/sf_app/code/source/sf_blue/inc/dbus/dbus-bus.h
Executable file
95
code/application/source/sf_app/code/source/sf_blue/inc/dbus/dbus-bus.h
Executable file
|
@ -0,0 +1,95 @@
|
||||||
|
/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
|
||||||
|
/* dbus-bus.h Convenience functions for communicating with the bus.
|
||||||
|
*
|
||||||
|
* Copyright (C) 2003 CodeFactory AB
|
||||||
|
*
|
||||||
|
* Licensed under the Academic Free License version 2.1
|
||||||
|
*
|
||||||
|
* This program is free software; you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation; either version 2 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 General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program; if not, write to the Free Software
|
||||||
|
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
#if !defined (DBUS_INSIDE_DBUS_H) && !defined (DBUS_COMPILATION)
|
||||||
|
#error "Only <dbus/dbus.h> can be included directly, this file may disappear or change contents."
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef DBUS_BUS_H
|
||||||
|
#define DBUS_BUS_H
|
||||||
|
|
||||||
|
#include <dbus/dbus-connection.h>
|
||||||
|
|
||||||
|
DBUS_BEGIN_DECLS
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @addtogroup DBusBus
|
||||||
|
* @{
|
||||||
|
*/
|
||||||
|
|
||||||
|
DBUS_EXPORT
|
||||||
|
DBusConnection *dbus_bus_get (DBusBusType type,
|
||||||
|
DBusError *error);
|
||||||
|
DBUS_EXPORT
|
||||||
|
DBusConnection *dbus_bus_get_private (DBusBusType type,
|
||||||
|
DBusError *error);
|
||||||
|
|
||||||
|
DBUS_EXPORT
|
||||||
|
dbus_bool_t dbus_bus_register (DBusConnection *connection,
|
||||||
|
DBusError *error);
|
||||||
|
DBUS_EXPORT
|
||||||
|
dbus_bool_t dbus_bus_set_unique_name (DBusConnection *connection,
|
||||||
|
const char *unique_name);
|
||||||
|
DBUS_EXPORT
|
||||||
|
const char* dbus_bus_get_unique_name (DBusConnection *connection);
|
||||||
|
DBUS_EXPORT
|
||||||
|
unsigned long dbus_bus_get_unix_user (DBusConnection *connection,
|
||||||
|
const char *name,
|
||||||
|
DBusError *error);
|
||||||
|
DBUS_EXPORT
|
||||||
|
char* dbus_bus_get_id (DBusConnection *connection,
|
||||||
|
DBusError *error);
|
||||||
|
DBUS_EXPORT
|
||||||
|
int dbus_bus_request_name (DBusConnection *connection,
|
||||||
|
const char *name,
|
||||||
|
unsigned int flags,
|
||||||
|
DBusError *error);
|
||||||
|
DBUS_EXPORT
|
||||||
|
int dbus_bus_release_name (DBusConnection *connection,
|
||||||
|
const char *name,
|
||||||
|
DBusError *error);
|
||||||
|
DBUS_EXPORT
|
||||||
|
dbus_bool_t dbus_bus_name_has_owner (DBusConnection *connection,
|
||||||
|
const char *name,
|
||||||
|
DBusError *error);
|
||||||
|
|
||||||
|
DBUS_EXPORT
|
||||||
|
dbus_bool_t dbus_bus_start_service_by_name (DBusConnection *connection,
|
||||||
|
const char *name,
|
||||||
|
dbus_uint32_t flags,
|
||||||
|
dbus_uint32_t *reply,
|
||||||
|
DBusError *error);
|
||||||
|
|
||||||
|
DBUS_EXPORT
|
||||||
|
void dbus_bus_add_match (DBusConnection *connection,
|
||||||
|
const char *rule,
|
||||||
|
DBusError *error);
|
||||||
|
DBUS_EXPORT
|
||||||
|
void dbus_bus_remove_match (DBusConnection *connection,
|
||||||
|
const char *rule,
|
||||||
|
DBusError *error);
|
||||||
|
|
||||||
|
/** @} */
|
||||||
|
|
||||||
|
DBUS_END_DECLS
|
||||||
|
|
||||||
|
#endif /* DBUS_BUS_H */
|
496
code/application/source/sf_app/code/source/sf_blue/inc/dbus/dbus-connection.h
Executable file
496
code/application/source/sf_app/code/source/sf_blue/inc/dbus/dbus-connection.h
Executable file
|
@ -0,0 +1,496 @@
|
||||||
|
/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
|
||||||
|
/* dbus-connection.h DBusConnection object
|
||||||
|
*
|
||||||
|
* Copyright (C) 2002, 2003 Red Hat Inc.
|
||||||
|
*
|
||||||
|
* Licensed under the Academic Free License version 2.1
|
||||||
|
*
|
||||||
|
* This program is free software; you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation; either version 2 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 General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program; if not, write to the Free Software
|
||||||
|
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
#if !defined (DBUS_INSIDE_DBUS_H) && !defined (DBUS_COMPILATION)
|
||||||
|
#error "Only <dbus/dbus.h> can be included directly, this file may disappear or change contents."
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef DBUS_CONNECTION_H
|
||||||
|
#define DBUS_CONNECTION_H
|
||||||
|
|
||||||
|
#include <dbus/dbus-errors.h>
|
||||||
|
#include <dbus/dbus-memory.h>
|
||||||
|
#include <dbus/dbus-message.h>
|
||||||
|
#include <dbus/dbus-shared.h>
|
||||||
|
|
||||||
|
DBUS_BEGIN_DECLS
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @addtogroup DBusConnection
|
||||||
|
* @{
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* documented in dbus-watch.c */
|
||||||
|
typedef struct DBusWatch DBusWatch;
|
||||||
|
/* documented in dbus-timeout.c */
|
||||||
|
typedef struct DBusTimeout DBusTimeout;
|
||||||
|
/** Opaque type representing preallocated resources so a message can be sent without further memory allocation. */
|
||||||
|
typedef struct DBusPreallocatedSend DBusPreallocatedSend;
|
||||||
|
/** Opaque type representing a method call that has not yet received a reply. */
|
||||||
|
typedef struct DBusPendingCall DBusPendingCall;
|
||||||
|
/** Opaque type representing a connection to a remote application and associated incoming/outgoing message queues. */
|
||||||
|
typedef struct DBusConnection DBusConnection;
|
||||||
|
/** Set of functions that must be implemented to handle messages sent to a particular object path. */
|
||||||
|
typedef struct DBusObjectPathVTable DBusObjectPathVTable;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Indicates the status of a #DBusWatch.
|
||||||
|
*/
|
||||||
|
typedef enum
|
||||||
|
{
|
||||||
|
DBUS_WATCH_READABLE = 1 << 0, /**< As in POLLIN */
|
||||||
|
DBUS_WATCH_WRITABLE = 1 << 1, /**< As in POLLOUT */
|
||||||
|
DBUS_WATCH_ERROR = 1 << 2, /**< As in POLLERR (can't watch for
|
||||||
|
* this, but can be present in
|
||||||
|
* current state passed to
|
||||||
|
* dbus_watch_handle()).
|
||||||
|
*/
|
||||||
|
DBUS_WATCH_HANGUP = 1 << 3 /**< As in POLLHUP (can't watch for
|
||||||
|
* it, but can be present in current
|
||||||
|
* state passed to
|
||||||
|
* dbus_watch_handle()).
|
||||||
|
*/
|
||||||
|
/* Internal to libdbus, there is also _DBUS_WATCH_NVAL in dbus-watch.h */
|
||||||
|
} DBusWatchFlags;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Indicates the status of incoming data on a #DBusConnection. This determines whether
|
||||||
|
* dbus_connection_dispatch() needs to be called.
|
||||||
|
*/
|
||||||
|
typedef enum
|
||||||
|
{
|
||||||
|
DBUS_DISPATCH_DATA_REMAINS, /**< There is more data to potentially convert to messages. */
|
||||||
|
DBUS_DISPATCH_COMPLETE, /**< All currently available data has been processed. */
|
||||||
|
DBUS_DISPATCH_NEED_MEMORY /**< More memory is needed to continue. */
|
||||||
|
} DBusDispatchStatus;
|
||||||
|
|
||||||
|
/** Called when libdbus needs a new watch to be monitored by the main
|
||||||
|
* loop. Returns #FALSE if it lacks enough memory to add the
|
||||||
|
* watch. Set by dbus_connection_set_watch_functions() or
|
||||||
|
* dbus_server_set_watch_functions().
|
||||||
|
*/
|
||||||
|
typedef dbus_bool_t (* DBusAddWatchFunction) (DBusWatch *watch,
|
||||||
|
void *data);
|
||||||
|
/** Called when dbus_watch_get_enabled() may return a different value
|
||||||
|
* than it did before. Set by dbus_connection_set_watch_functions()
|
||||||
|
* or dbus_server_set_watch_functions().
|
||||||
|
*/
|
||||||
|
typedef void (* DBusWatchToggledFunction) (DBusWatch *watch,
|
||||||
|
void *data);
|
||||||
|
/** Called when libdbus no longer needs a watch to be monitored by the
|
||||||
|
* main loop. Set by dbus_connection_set_watch_functions() or
|
||||||
|
* dbus_server_set_watch_functions().
|
||||||
|
*/
|
||||||
|
typedef void (* DBusRemoveWatchFunction) (DBusWatch *watch,
|
||||||
|
void *data);
|
||||||
|
/** Called when libdbus needs a new timeout to be monitored by the main
|
||||||
|
* loop. Returns #FALSE if it lacks enough memory to add the
|
||||||
|
* watch. Set by dbus_connection_set_timeout_functions() or
|
||||||
|
* dbus_server_set_timeout_functions().
|
||||||
|
*/
|
||||||
|
typedef dbus_bool_t (* DBusAddTimeoutFunction) (DBusTimeout *timeout,
|
||||||
|
void *data);
|
||||||
|
/** Called when dbus_timeout_get_enabled() may return a different
|
||||||
|
* value than it did before.
|
||||||
|
* Set by dbus_connection_set_timeout_functions() or
|
||||||
|
* dbus_server_set_timeout_functions().
|
||||||
|
*/
|
||||||
|
typedef void (* DBusTimeoutToggledFunction) (DBusTimeout *timeout,
|
||||||
|
void *data);
|
||||||
|
/** Called when libdbus no longer needs a timeout to be monitored by the
|
||||||
|
* main loop. Set by dbus_connection_set_timeout_functions() or
|
||||||
|
* dbus_server_set_timeout_functions().
|
||||||
|
*/
|
||||||
|
typedef void (* DBusRemoveTimeoutFunction) (DBusTimeout *timeout,
|
||||||
|
void *data);
|
||||||
|
/** Called when the return value of dbus_connection_get_dispatch_status()
|
||||||
|
* may have changed. Set with dbus_connection_set_dispatch_status_function().
|
||||||
|
*/
|
||||||
|
typedef void (* DBusDispatchStatusFunction) (DBusConnection *connection,
|
||||||
|
DBusDispatchStatus new_status,
|
||||||
|
void *data);
|
||||||
|
/**
|
||||||
|
* Called when the main loop's thread should be notified that there's now work
|
||||||
|
* to do. Set with dbus_connection_set_wakeup_main_function().
|
||||||
|
*/
|
||||||
|
typedef void (* DBusWakeupMainFunction) (void *data);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Called during authentication to check whether the given UNIX user
|
||||||
|
* ID is allowed to connect, if the client tried to auth as a UNIX
|
||||||
|
* user ID. Normally on Windows this would never happen. Set with
|
||||||
|
* dbus_connection_set_unix_user_function().
|
||||||
|
*/
|
||||||
|
typedef dbus_bool_t (* DBusAllowUnixUserFunction) (DBusConnection *connection,
|
||||||
|
unsigned long uid,
|
||||||
|
void *data);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Called during authentication to check whether the given Windows user
|
||||||
|
* ID is allowed to connect, if the client tried to auth as a Windows
|
||||||
|
* user ID. Normally on UNIX this would never happen. Set with
|
||||||
|
* dbus_connection_set_windows_user_function().
|
||||||
|
*/
|
||||||
|
typedef dbus_bool_t (* DBusAllowWindowsUserFunction) (DBusConnection *connection,
|
||||||
|
const char *user_sid,
|
||||||
|
void *data);
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Called when a pending call now has a reply available. Set with
|
||||||
|
* dbus_pending_call_set_notify().
|
||||||
|
*/
|
||||||
|
typedef void (* DBusPendingCallNotifyFunction) (DBusPendingCall *pending,
|
||||||
|
void *user_data);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Called when a message needs to be handled. The result indicates whether or
|
||||||
|
* not more handlers should be run. Set with dbus_connection_add_filter().
|
||||||
|
*/
|
||||||
|
typedef DBusHandlerResult (* DBusHandleMessageFunction) (DBusConnection *connection,
|
||||||
|
DBusMessage *message,
|
||||||
|
void *user_data);
|
||||||
|
DBUS_EXPORT
|
||||||
|
DBusConnection* dbus_connection_open (const char *address,
|
||||||
|
DBusError *error);
|
||||||
|
DBUS_EXPORT
|
||||||
|
DBusConnection* dbus_connection_open_private (const char *address,
|
||||||
|
DBusError *error);
|
||||||
|
DBUS_EXPORT
|
||||||
|
DBusConnection* dbus_connection_ref (DBusConnection *connection);
|
||||||
|
DBUS_EXPORT
|
||||||
|
void dbus_connection_unref (DBusConnection *connection);
|
||||||
|
DBUS_EXPORT
|
||||||
|
void dbus_connection_close (DBusConnection *connection);
|
||||||
|
DBUS_EXPORT
|
||||||
|
dbus_bool_t dbus_connection_get_is_connected (DBusConnection *connection);
|
||||||
|
DBUS_EXPORT
|
||||||
|
dbus_bool_t dbus_connection_get_is_authenticated (DBusConnection *connection);
|
||||||
|
DBUS_EXPORT
|
||||||
|
dbus_bool_t dbus_connection_get_is_anonymous (DBusConnection *connection);
|
||||||
|
DBUS_EXPORT
|
||||||
|
char* dbus_connection_get_server_id (DBusConnection *connection);
|
||||||
|
DBUS_EXPORT
|
||||||
|
dbus_bool_t dbus_connection_can_send_type (DBusConnection *connection,
|
||||||
|
int type);
|
||||||
|
|
||||||
|
DBUS_EXPORT
|
||||||
|
void dbus_connection_set_exit_on_disconnect (DBusConnection *connection,
|
||||||
|
dbus_bool_t exit_on_disconnect);
|
||||||
|
DBUS_EXPORT
|
||||||
|
void dbus_connection_flush (DBusConnection *connection);
|
||||||
|
DBUS_EXPORT
|
||||||
|
dbus_bool_t dbus_connection_read_write_dispatch (DBusConnection *connection,
|
||||||
|
int timeout_milliseconds);
|
||||||
|
DBUS_EXPORT
|
||||||
|
dbus_bool_t dbus_connection_read_write (DBusConnection *connection,
|
||||||
|
int timeout_milliseconds);
|
||||||
|
DBUS_EXPORT
|
||||||
|
DBusMessage* dbus_connection_borrow_message (DBusConnection *connection);
|
||||||
|
DBUS_EXPORT
|
||||||
|
void dbus_connection_return_message (DBusConnection *connection,
|
||||||
|
DBusMessage *message);
|
||||||
|
DBUS_EXPORT
|
||||||
|
void dbus_connection_steal_borrowed_message (DBusConnection *connection,
|
||||||
|
DBusMessage *message);
|
||||||
|
DBUS_EXPORT
|
||||||
|
DBusMessage* dbus_connection_pop_message (DBusConnection *connection);
|
||||||
|
DBUS_EXPORT
|
||||||
|
DBusDispatchStatus dbus_connection_get_dispatch_status (DBusConnection *connection);
|
||||||
|
DBUS_EXPORT
|
||||||
|
DBusDispatchStatus dbus_connection_dispatch (DBusConnection *connection);
|
||||||
|
DBUS_EXPORT
|
||||||
|
dbus_bool_t dbus_connection_has_messages_to_send (DBusConnection *connection);
|
||||||
|
DBUS_EXPORT
|
||||||
|
dbus_bool_t dbus_connection_send (DBusConnection *connection,
|
||||||
|
DBusMessage *message,
|
||||||
|
dbus_uint32_t *client_serial);
|
||||||
|
DBUS_EXPORT
|
||||||
|
dbus_bool_t dbus_connection_send_with_reply (DBusConnection *connection,
|
||||||
|
DBusMessage *message,
|
||||||
|
DBusPendingCall **pending_return,
|
||||||
|
int timeout_milliseconds);
|
||||||
|
DBUS_EXPORT
|
||||||
|
DBusMessage * dbus_connection_send_with_reply_and_block (DBusConnection *connection,
|
||||||
|
DBusMessage *message,
|
||||||
|
int timeout_milliseconds,
|
||||||
|
DBusError *error);
|
||||||
|
DBUS_EXPORT
|
||||||
|
dbus_bool_t dbus_connection_set_watch_functions (DBusConnection *connection,
|
||||||
|
DBusAddWatchFunction add_function,
|
||||||
|
DBusRemoveWatchFunction remove_function,
|
||||||
|
DBusWatchToggledFunction toggled_function,
|
||||||
|
void *data,
|
||||||
|
DBusFreeFunction free_data_function);
|
||||||
|
DBUS_EXPORT
|
||||||
|
dbus_bool_t dbus_connection_set_timeout_functions (DBusConnection *connection,
|
||||||
|
DBusAddTimeoutFunction add_function,
|
||||||
|
DBusRemoveTimeoutFunction remove_function,
|
||||||
|
DBusTimeoutToggledFunction toggled_function,
|
||||||
|
void *data,
|
||||||
|
DBusFreeFunction free_data_function);
|
||||||
|
DBUS_EXPORT
|
||||||
|
void dbus_connection_set_wakeup_main_function (DBusConnection *connection,
|
||||||
|
DBusWakeupMainFunction wakeup_main_function,
|
||||||
|
void *data,
|
||||||
|
DBusFreeFunction free_data_function);
|
||||||
|
DBUS_EXPORT
|
||||||
|
void dbus_connection_set_dispatch_status_function (DBusConnection *connection,
|
||||||
|
DBusDispatchStatusFunction function,
|
||||||
|
void *data,
|
||||||
|
DBusFreeFunction free_data_function);
|
||||||
|
DBUS_EXPORT
|
||||||
|
dbus_bool_t dbus_connection_get_unix_user (DBusConnection *connection,
|
||||||
|
unsigned long *uid);
|
||||||
|
DBUS_EXPORT
|
||||||
|
dbus_bool_t dbus_connection_get_unix_process_id (DBusConnection *connection,
|
||||||
|
unsigned long *pid);
|
||||||
|
DBUS_EXPORT
|
||||||
|
dbus_bool_t dbus_connection_get_adt_audit_session_data (DBusConnection *connection,
|
||||||
|
void **data,
|
||||||
|
dbus_int32_t *data_size);
|
||||||
|
DBUS_EXPORT
|
||||||
|
void dbus_connection_set_unix_user_function (DBusConnection *connection,
|
||||||
|
DBusAllowUnixUserFunction function,
|
||||||
|
void *data,
|
||||||
|
DBusFreeFunction free_data_function);
|
||||||
|
DBUS_EXPORT
|
||||||
|
dbus_bool_t dbus_connection_get_windows_user (DBusConnection *connection,
|
||||||
|
char **windows_sid_p);
|
||||||
|
DBUS_EXPORT
|
||||||
|
void dbus_connection_set_windows_user_function (DBusConnection *connection,
|
||||||
|
DBusAllowWindowsUserFunction function,
|
||||||
|
void *data,
|
||||||
|
DBusFreeFunction free_data_function);
|
||||||
|
DBUS_EXPORT
|
||||||
|
void dbus_connection_set_allow_anonymous (DBusConnection *connection,
|
||||||
|
dbus_bool_t value);
|
||||||
|
DBUS_EXPORT
|
||||||
|
void dbus_connection_set_route_peer_messages (DBusConnection *connection,
|
||||||
|
dbus_bool_t value);
|
||||||
|
|
||||||
|
|
||||||
|
/* Filters */
|
||||||
|
|
||||||
|
DBUS_EXPORT
|
||||||
|
dbus_bool_t dbus_connection_add_filter (DBusConnection *connection,
|
||||||
|
DBusHandleMessageFunction function,
|
||||||
|
void *user_data,
|
||||||
|
DBusFreeFunction free_data_function);
|
||||||
|
DBUS_EXPORT
|
||||||
|
void dbus_connection_remove_filter (DBusConnection *connection,
|
||||||
|
DBusHandleMessageFunction function,
|
||||||
|
void *user_data);
|
||||||
|
|
||||||
|
|
||||||
|
/* Other */
|
||||||
|
DBUS_EXPORT
|
||||||
|
dbus_bool_t dbus_connection_allocate_data_slot (dbus_int32_t *slot_p);
|
||||||
|
DBUS_EXPORT
|
||||||
|
void dbus_connection_free_data_slot (dbus_int32_t *slot_p);
|
||||||
|
DBUS_EXPORT
|
||||||
|
dbus_bool_t dbus_connection_set_data (DBusConnection *connection,
|
||||||
|
dbus_int32_t slot,
|
||||||
|
void *data,
|
||||||
|
DBusFreeFunction free_data_func);
|
||||||
|
DBUS_EXPORT
|
||||||
|
void* dbus_connection_get_data (DBusConnection *connection,
|
||||||
|
dbus_int32_t slot);
|
||||||
|
|
||||||
|
DBUS_EXPORT
|
||||||
|
void dbus_connection_set_change_sigpipe (dbus_bool_t will_modify_sigpipe);
|
||||||
|
|
||||||
|
DBUS_EXPORT
|
||||||
|
void dbus_connection_set_max_message_size (DBusConnection *connection,
|
||||||
|
long size);
|
||||||
|
DBUS_EXPORT
|
||||||
|
long dbus_connection_get_max_message_size (DBusConnection *connection);
|
||||||
|
DBUS_EXPORT
|
||||||
|
void dbus_connection_set_max_received_size (DBusConnection *connection,
|
||||||
|
long size);
|
||||||
|
DBUS_EXPORT
|
||||||
|
long dbus_connection_get_max_received_size (DBusConnection *connection);
|
||||||
|
|
||||||
|
DBUS_EXPORT
|
||||||
|
void dbus_connection_set_max_message_unix_fds (DBusConnection *connection,
|
||||||
|
long n);
|
||||||
|
DBUS_EXPORT
|
||||||
|
long dbus_connection_get_max_message_unix_fds (DBusConnection *connection);
|
||||||
|
DBUS_EXPORT
|
||||||
|
void dbus_connection_set_max_received_unix_fds(DBusConnection *connection,
|
||||||
|
long n);
|
||||||
|
DBUS_EXPORT
|
||||||
|
long dbus_connection_get_max_received_unix_fds(DBusConnection *connection);
|
||||||
|
|
||||||
|
DBUS_EXPORT
|
||||||
|
long dbus_connection_get_outgoing_size (DBusConnection *connection);
|
||||||
|
DBUS_EXPORT
|
||||||
|
long dbus_connection_get_outgoing_unix_fds (DBusConnection *connection);
|
||||||
|
|
||||||
|
DBUS_EXPORT
|
||||||
|
DBusPreallocatedSend* dbus_connection_preallocate_send (DBusConnection *connection);
|
||||||
|
DBUS_EXPORT
|
||||||
|
void dbus_connection_free_preallocated_send (DBusConnection *connection,
|
||||||
|
DBusPreallocatedSend *preallocated);
|
||||||
|
DBUS_EXPORT
|
||||||
|
void dbus_connection_send_preallocated (DBusConnection *connection,
|
||||||
|
DBusPreallocatedSend *preallocated,
|
||||||
|
DBusMessage *message,
|
||||||
|
dbus_uint32_t *client_serial);
|
||||||
|
|
||||||
|
|
||||||
|
/* Object tree functionality */
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Called when a #DBusObjectPathVTable is unregistered (or its connection is freed).
|
||||||
|
* Found in #DBusObjectPathVTable.
|
||||||
|
*/
|
||||||
|
typedef void (* DBusObjectPathUnregisterFunction) (DBusConnection *connection,
|
||||||
|
void *user_data);
|
||||||
|
/**
|
||||||
|
* Called when a message is sent to a registered object path. Found in
|
||||||
|
* #DBusObjectPathVTable which is registered with dbus_connection_register_object_path()
|
||||||
|
* or dbus_connection_register_fallback().
|
||||||
|
*/
|
||||||
|
typedef DBusHandlerResult (* DBusObjectPathMessageFunction) (DBusConnection *connection,
|
||||||
|
DBusMessage *message,
|
||||||
|
void *user_data);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Virtual table that must be implemented to handle a portion of the
|
||||||
|
* object path hierarchy. Attach the vtable to a particular path using
|
||||||
|
* dbus_connection_register_object_path() or
|
||||||
|
* dbus_connection_register_fallback().
|
||||||
|
*/
|
||||||
|
struct DBusObjectPathVTable
|
||||||
|
{
|
||||||
|
DBusObjectPathUnregisterFunction unregister_function; /**< Function to unregister this handler */
|
||||||
|
DBusObjectPathMessageFunction message_function; /**< Function to handle messages */
|
||||||
|
|
||||||
|
void (* dbus_internal_pad1) (void *); /**< Reserved for future expansion */
|
||||||
|
void (* dbus_internal_pad2) (void *); /**< Reserved for future expansion */
|
||||||
|
void (* dbus_internal_pad3) (void *); /**< Reserved for future expansion */
|
||||||
|
void (* dbus_internal_pad4) (void *); /**< Reserved for future expansion */
|
||||||
|
};
|
||||||
|
|
||||||
|
DBUS_EXPORT
|
||||||
|
dbus_bool_t dbus_connection_try_register_object_path (DBusConnection *connection,
|
||||||
|
const char *path,
|
||||||
|
const DBusObjectPathVTable *vtable,
|
||||||
|
void *user_data,
|
||||||
|
DBusError *error);
|
||||||
|
|
||||||
|
DBUS_EXPORT
|
||||||
|
dbus_bool_t dbus_connection_register_object_path (DBusConnection *connection,
|
||||||
|
const char *path,
|
||||||
|
const DBusObjectPathVTable *vtable,
|
||||||
|
void *user_data);
|
||||||
|
|
||||||
|
DBUS_EXPORT
|
||||||
|
dbus_bool_t dbus_connection_try_register_fallback (DBusConnection *connection,
|
||||||
|
const char *path,
|
||||||
|
const DBusObjectPathVTable *vtable,
|
||||||
|
void *user_data,
|
||||||
|
DBusError *error);
|
||||||
|
|
||||||
|
DBUS_EXPORT
|
||||||
|
dbus_bool_t dbus_connection_register_fallback (DBusConnection *connection,
|
||||||
|
const char *path,
|
||||||
|
const DBusObjectPathVTable *vtable,
|
||||||
|
void *user_data);
|
||||||
|
DBUS_EXPORT
|
||||||
|
dbus_bool_t dbus_connection_unregister_object_path (DBusConnection *connection,
|
||||||
|
const char *path);
|
||||||
|
|
||||||
|
DBUS_EXPORT
|
||||||
|
dbus_bool_t dbus_connection_get_object_path_data (DBusConnection *connection,
|
||||||
|
const char *path,
|
||||||
|
void **data_p);
|
||||||
|
|
||||||
|
DBUS_EXPORT
|
||||||
|
dbus_bool_t dbus_connection_list_registered (DBusConnection *connection,
|
||||||
|
const char *parent_path,
|
||||||
|
char ***child_entries);
|
||||||
|
|
||||||
|
DBUS_EXPORT
|
||||||
|
dbus_bool_t dbus_connection_get_unix_fd (DBusConnection *connection,
|
||||||
|
int *fd);
|
||||||
|
DBUS_EXPORT
|
||||||
|
dbus_bool_t dbus_connection_get_socket (DBusConnection *connection,
|
||||||
|
int *fd);
|
||||||
|
|
||||||
|
/** @} */
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @addtogroup DBusWatch
|
||||||
|
* @{
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef DBUS_DISABLE_DEPRECATED
|
||||||
|
DBUS_EXPORT
|
||||||
|
DBUS_DEPRECATED int dbus_watch_get_fd (DBusWatch *watch);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
DBUS_EXPORT
|
||||||
|
int dbus_watch_get_unix_fd (DBusWatch *watch);
|
||||||
|
DBUS_EXPORT
|
||||||
|
int dbus_watch_get_socket (DBusWatch *watch);
|
||||||
|
DBUS_EXPORT
|
||||||
|
unsigned int dbus_watch_get_flags (DBusWatch *watch);
|
||||||
|
DBUS_EXPORT
|
||||||
|
void* dbus_watch_get_data (DBusWatch *watch);
|
||||||
|
DBUS_EXPORT
|
||||||
|
void dbus_watch_set_data (DBusWatch *watch,
|
||||||
|
void *data,
|
||||||
|
DBusFreeFunction free_data_function);
|
||||||
|
DBUS_EXPORT
|
||||||
|
dbus_bool_t dbus_watch_handle (DBusWatch *watch,
|
||||||
|
unsigned int flags);
|
||||||
|
DBUS_EXPORT
|
||||||
|
dbus_bool_t dbus_watch_get_enabled (DBusWatch *watch);
|
||||||
|
|
||||||
|
/** @} */
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @addtogroup DBusTimeout
|
||||||
|
* @{
|
||||||
|
*/
|
||||||
|
|
||||||
|
DBUS_EXPORT
|
||||||
|
int dbus_timeout_get_interval (DBusTimeout *timeout);
|
||||||
|
DBUS_EXPORT
|
||||||
|
void* dbus_timeout_get_data (DBusTimeout *timeout);
|
||||||
|
DBUS_EXPORT
|
||||||
|
void dbus_timeout_set_data (DBusTimeout *timeout,
|
||||||
|
void *data,
|
||||||
|
DBusFreeFunction free_data_function);
|
||||||
|
DBUS_EXPORT
|
||||||
|
dbus_bool_t dbus_timeout_handle (DBusTimeout *timeout);
|
||||||
|
DBUS_EXPORT
|
||||||
|
dbus_bool_t dbus_timeout_get_enabled (DBusTimeout *timeout);
|
||||||
|
|
||||||
|
/** @} */
|
||||||
|
|
||||||
|
DBUS_END_DECLS
|
||||||
|
|
||||||
|
#endif /* DBUS_CONNECTION_H */
|
90
code/application/source/sf_app/code/source/sf_blue/inc/dbus/dbus-errors.h
Executable file
90
code/application/source/sf_app/code/source/sf_blue/inc/dbus/dbus-errors.h
Executable file
|
@ -0,0 +1,90 @@
|
||||||
|
/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
|
||||||
|
/* dbus-errors.h Error reporting
|
||||||
|
*
|
||||||
|
* Copyright (C) 2002 Red Hat Inc.
|
||||||
|
* Copyright (C) 2003 CodeFactory AB
|
||||||
|
*
|
||||||
|
* Licensed under the Academic Free License version 2.1
|
||||||
|
*
|
||||||
|
* This program is free software; you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation; either version 2 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 General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program; if not, write to the Free Software
|
||||||
|
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
#if !defined (DBUS_INSIDE_DBUS_H) && !defined (DBUS_COMPILATION)
|
||||||
|
#error "Only <dbus/dbus.h> can be included directly, this file may disappear or change contents."
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef DBUS_ERROR_H
|
||||||
|
#define DBUS_ERROR_H
|
||||||
|
|
||||||
|
#include <dbus/dbus-macros.h>
|
||||||
|
#include <dbus/dbus-types.h>
|
||||||
|
#include <dbus/dbus-protocol.h>
|
||||||
|
|
||||||
|
DBUS_BEGIN_DECLS
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @addtogroup DBusErrors
|
||||||
|
* @{
|
||||||
|
*/
|
||||||
|
|
||||||
|
/** Mostly-opaque type representing an error that occurred */
|
||||||
|
typedef struct DBusError DBusError;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Object representing an exception.
|
||||||
|
*/
|
||||||
|
struct DBusError
|
||||||
|
{
|
||||||
|
const char *name; /**< public error name field */
|
||||||
|
const char *message; /**< public error message field */
|
||||||
|
|
||||||
|
unsigned int dummy1 : 1; /**< placeholder */
|
||||||
|
unsigned int dummy2 : 1; /**< placeholder */
|
||||||
|
unsigned int dummy3 : 1; /**< placeholder */
|
||||||
|
unsigned int dummy4 : 1; /**< placeholder */
|
||||||
|
unsigned int dummy5 : 1; /**< placeholder */
|
||||||
|
|
||||||
|
void *padding1; /**< placeholder */
|
||||||
|
};
|
||||||
|
|
||||||
|
#define DBUS_ERROR_INIT { NULL, NULL, TRUE, 0, 0, 0, 0, NULL }
|
||||||
|
|
||||||
|
DBUS_EXPORT
|
||||||
|
void dbus_error_init (DBusError *error);
|
||||||
|
DBUS_EXPORT
|
||||||
|
void dbus_error_free (DBusError *error);
|
||||||
|
DBUS_EXPORT
|
||||||
|
void dbus_set_error (DBusError *error,
|
||||||
|
const char *name,
|
||||||
|
const char *message,
|
||||||
|
...);
|
||||||
|
DBUS_EXPORT
|
||||||
|
void dbus_set_error_const (DBusError *error,
|
||||||
|
const char *name,
|
||||||
|
const char *message);
|
||||||
|
DBUS_EXPORT
|
||||||
|
void dbus_move_error (DBusError *src,
|
||||||
|
DBusError *dest);
|
||||||
|
DBUS_EXPORT
|
||||||
|
dbus_bool_t dbus_error_has_name (const DBusError *error,
|
||||||
|
const char *name);
|
||||||
|
DBUS_EXPORT
|
||||||
|
dbus_bool_t dbus_error_is_set (const DBusError *error);
|
||||||
|
|
||||||
|
/** @} */
|
||||||
|
|
||||||
|
DBUS_END_DECLS
|
||||||
|
|
||||||
|
#endif /* DBUS_ERROR_H */
|
199
code/application/source/sf_app/code/source/sf_blue/inc/dbus/dbus-macros.h
Executable file
199
code/application/source/sf_app/code/source/sf_blue/inc/dbus/dbus-macros.h
Executable file
|
@ -0,0 +1,199 @@
|
||||||
|
/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
|
||||||
|
/* dbus-macros.h generic macros
|
||||||
|
*
|
||||||
|
* Copyright (C) 2002 Red Hat Inc.
|
||||||
|
*
|
||||||
|
* Licensed under the Academic Free License version 2.1
|
||||||
|
*
|
||||||
|
* This program is free software; you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation; either version 2 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 General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program; if not, write to the Free Software
|
||||||
|
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
#if !defined (DBUS_INSIDE_DBUS_H) && !defined (DBUS_COMPILATION)
|
||||||
|
#error "Only <dbus/dbus.h> can be included directly, this file may disappear or change contents."
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef DBUS_MACROS_H
|
||||||
|
#define DBUS_MACROS_H
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
# define DBUS_BEGIN_DECLS extern "C" {
|
||||||
|
# define DBUS_END_DECLS }
|
||||||
|
#else
|
||||||
|
# define DBUS_BEGIN_DECLS
|
||||||
|
# define DBUS_END_DECLS
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef TRUE
|
||||||
|
# define TRUE 1
|
||||||
|
#endif
|
||||||
|
#ifndef FALSE
|
||||||
|
# define FALSE 0
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef NULL
|
||||||
|
# ifdef __cplusplus
|
||||||
|
# define NULL (0L)
|
||||||
|
# else /* !__cplusplus */
|
||||||
|
# define NULL ((void*) 0)
|
||||||
|
# endif /* !__cplusplus */
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 1)
|
||||||
|
# define DBUS_DEPRECATED __attribute__ ((__deprecated__))
|
||||||
|
#elif defined(_MSC_VER) && (_MSC_VER >= 1300)
|
||||||
|
# define DBUS_DEPRECATED __declspec(deprecated)
|
||||||
|
#else
|
||||||
|
# define DBUS_DEPRECATED
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 8)
|
||||||
|
# define _DBUS_GNUC_EXTENSION __extension__
|
||||||
|
#else
|
||||||
|
# define _DBUS_GNUC_EXTENSION
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ > 4)
|
||||||
|
#define _DBUS_GNUC_PRINTF( format_idx, arg_idx ) \
|
||||||
|
__attribute__((__format__ (__printf__, format_idx, arg_idx)))
|
||||||
|
#define _DBUS_GNUC_NORETURN \
|
||||||
|
__attribute__((__noreturn__))
|
||||||
|
#define _DBUS_GNUC_UNUSED \
|
||||||
|
__attribute__((__unused__))
|
||||||
|
#else /* !__GNUC__ */
|
||||||
|
#define _DBUS_GNUC_PRINTF( format_idx, arg_idx )
|
||||||
|
#define _DBUS_GNUC_NORETURN
|
||||||
|
#define _DBUS_GNUC_UNUSED
|
||||||
|
#endif /* !__GNUC__ */
|
||||||
|
|
||||||
|
#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 96)
|
||||||
|
#define DBUS_MALLOC __attribute__((__malloc__))
|
||||||
|
#else
|
||||||
|
#define DBUS_MALLOC
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if (__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3)
|
||||||
|
#define DBUS_ALLOC_SIZE(x) __attribute__((__alloc_size__(x)))
|
||||||
|
#define DBUS_ALLOC_SIZE2(x,y) __attribute__((__alloc_size__(x,y)))
|
||||||
|
#else
|
||||||
|
#define DBUS_ALLOC_SIZE(x)
|
||||||
|
#define DBUS_ALLOC_SIZE2(x,y)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if (__GNUC__ > 3) || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4)
|
||||||
|
#define _DBUS_GNUC_WARN_UNUSED_RESULT __attribute__((warn_unused_result))
|
||||||
|
#else
|
||||||
|
#define _DBUS_GNUC_WARN_UNUSED_RESULT
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/** @def _DBUS_GNUC_PRINTF
|
||||||
|
* used to tell gcc about printf format strings
|
||||||
|
*/
|
||||||
|
/** @def _DBUS_GNUC_NORETURN
|
||||||
|
* used to tell gcc about functions that never return, such as _dbus_abort()
|
||||||
|
*/
|
||||||
|
/** @def _DBUS_GNUC_WARN_UNUSED_RESULT
|
||||||
|
* used to tell gcc about functions whose result must be used
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* Normally docs are in .c files, but there isn't a .c file for this. */
|
||||||
|
/**
|
||||||
|
* @defgroup DBusMacros Utility macros
|
||||||
|
* @ingroup DBus
|
||||||
|
* @brief #TRUE, #FALSE, #NULL, and so on
|
||||||
|
*
|
||||||
|
* Utility macros.
|
||||||
|
*
|
||||||
|
* @{
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @def DBUS_BEGIN_DECLS
|
||||||
|
*
|
||||||
|
* Macro used prior to declaring functions in the D-Bus header
|
||||||
|
* files. Expands to "extern "C"" when using a C++ compiler,
|
||||||
|
* and expands to nothing when using a C compiler.
|
||||||
|
*
|
||||||
|
* Please don't use this in your own code, consider it
|
||||||
|
* D-Bus internal.
|
||||||
|
*/
|
||||||
|
/**
|
||||||
|
* @def DBUS_END_DECLS
|
||||||
|
*
|
||||||
|
* Macro used after declaring functions in the D-Bus header
|
||||||
|
* files. Expands to "}" when using a C++ compiler,
|
||||||
|
* and expands to nothing when using a C compiler.
|
||||||
|
*
|
||||||
|
* Please don't use this in your own code, consider it
|
||||||
|
* D-Bus internal.
|
||||||
|
*/
|
||||||
|
/**
|
||||||
|
* @def TRUE
|
||||||
|
*
|
||||||
|
* Expands to "1"
|
||||||
|
*/
|
||||||
|
/**
|
||||||
|
* @def FALSE
|
||||||
|
*
|
||||||
|
* Expands to "0"
|
||||||
|
*/
|
||||||
|
/**
|
||||||
|
* @def NULL
|
||||||
|
*
|
||||||
|
* A null pointer, defined appropriately for C or C++.
|
||||||
|
*/
|
||||||
|
/**
|
||||||
|
* @def DBUS_DEPRECATED
|
||||||
|
*
|
||||||
|
* Tells the compiler to warn about a function or type if it's used.
|
||||||
|
* Code marked in this way should also be enclosed in
|
||||||
|
* @code
|
||||||
|
* #ifndef DBUS_DISABLE_DEPRECATED
|
||||||
|
* deprecated stuff here
|
||||||
|
* #endif
|
||||||
|
* @endcode
|
||||||
|
*
|
||||||
|
* Please don't use this in your own code, consider it
|
||||||
|
* D-Bus internal.
|
||||||
|
*/
|
||||||
|
/**
|
||||||
|
* @def _DBUS_GNUC_EXTENSION
|
||||||
|
*
|
||||||
|
* Tells gcc not to warn about extensions to the C standard in the
|
||||||
|
* following expression, even if compiling with -pedantic. Do not use
|
||||||
|
* this macro in your own code; please consider it to be internal to libdbus.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
* @def DBUS_EXPORT
|
||||||
|
*
|
||||||
|
* Declare the following symbol as public. This is currently a noop on
|
||||||
|
* platforms other than Windows.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#if defined(_WIN32)
|
||||||
|
# if defined(DBUS_STATIC_BUILD)
|
||||||
|
# define DBUS_EXPORT
|
||||||
|
# elif defined(dbus_1_EXPORTS)
|
||||||
|
# define DBUS_EXPORT __declspec(dllexport)
|
||||||
|
# else
|
||||||
|
# define DBUS_EXPORT __declspec(dllimport)
|
||||||
|
# endif
|
||||||
|
#else
|
||||||
|
#define DBUS_EXPORT
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/** @} */
|
||||||
|
|
||||||
|
#endif /* DBUS_MACROS_H */
|
73
code/application/source/sf_app/code/source/sf_blue/inc/dbus/dbus-memory.h
Executable file
73
code/application/source/sf_app/code/source/sf_blue/inc/dbus/dbus-memory.h
Executable file
|
@ -0,0 +1,73 @@
|
||||||
|
/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
|
||||||
|
/* dbus-memory.h D-Bus memory handling
|
||||||
|
*
|
||||||
|
* Copyright (C) 2002 Red Hat Inc.
|
||||||
|
*
|
||||||
|
* Licensed under the Academic Free License version 2.1
|
||||||
|
*
|
||||||
|
* This program is free software; you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation; either version 2 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 General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program; if not, write to the Free Software
|
||||||
|
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
#if !defined (DBUS_INSIDE_DBUS_H) && !defined (DBUS_COMPILATION)
|
||||||
|
#error "Only <dbus/dbus.h> can be included directly, this file may disappear or change contents."
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef DBUS_MEMORY_H
|
||||||
|
#define DBUS_MEMORY_H
|
||||||
|
|
||||||
|
#include <dbus/dbus-macros.h>
|
||||||
|
#include <stddef.h>
|
||||||
|
|
||||||
|
DBUS_BEGIN_DECLS
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @addtogroup DBusMemory
|
||||||
|
* @{
|
||||||
|
*/
|
||||||
|
|
||||||
|
DBUS_EXPORT
|
||||||
|
DBUS_MALLOC
|
||||||
|
DBUS_ALLOC_SIZE(1)
|
||||||
|
void* dbus_malloc (size_t bytes);
|
||||||
|
|
||||||
|
DBUS_EXPORT
|
||||||
|
DBUS_MALLOC
|
||||||
|
DBUS_ALLOC_SIZE(1)
|
||||||
|
void* dbus_malloc0 (size_t bytes);
|
||||||
|
|
||||||
|
DBUS_EXPORT
|
||||||
|
DBUS_MALLOC
|
||||||
|
DBUS_ALLOC_SIZE(2)
|
||||||
|
void* dbus_realloc (void *memory,
|
||||||
|
size_t bytes);
|
||||||
|
DBUS_EXPORT
|
||||||
|
void dbus_free (void *memory);
|
||||||
|
|
||||||
|
#define dbus_new(type, count) ((type*)dbus_malloc (sizeof (type) * (count)))
|
||||||
|
#define dbus_new0(type, count) ((type*)dbus_malloc0 (sizeof (type) * (count)))
|
||||||
|
|
||||||
|
DBUS_EXPORT
|
||||||
|
void dbus_free_string_array (char **str_array);
|
||||||
|
|
||||||
|
typedef void (* DBusFreeFunction) (void *memory);
|
||||||
|
|
||||||
|
DBUS_EXPORT
|
||||||
|
void dbus_shutdown (void);
|
||||||
|
|
||||||
|
/** @} */
|
||||||
|
|
||||||
|
DBUS_END_DECLS
|
||||||
|
|
||||||
|
#endif /* DBUS_MEMORY_H */
|
317
code/application/source/sf_app/code/source/sf_blue/inc/dbus/dbus-message.h
Executable file
317
code/application/source/sf_app/code/source/sf_blue/inc/dbus/dbus-message.h
Executable file
|
@ -0,0 +1,317 @@
|
||||||
|
/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
|
||||||
|
/* dbus-message.h DBusMessage object
|
||||||
|
*
|
||||||
|
* Copyright (C) 2002, 2003, 2005 Red Hat Inc.
|
||||||
|
*
|
||||||
|
* Licensed under the Academic Free License version 2.1
|
||||||
|
*
|
||||||
|
* This program is free software; you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation; either version 2 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 General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program; if not, write to the Free Software
|
||||||
|
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
#if !defined (DBUS_INSIDE_DBUS_H) && !defined (DBUS_COMPILATION)
|
||||||
|
#error "Only <dbus/dbus.h> can be included directly, this file may disappear or change contents."
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef DBUS_MESSAGE_H
|
||||||
|
#define DBUS_MESSAGE_H
|
||||||
|
|
||||||
|
#include <dbus/dbus-macros.h>
|
||||||
|
#include <dbus/dbus-types.h>
|
||||||
|
#include <dbus/dbus-arch-deps.h>
|
||||||
|
#include <dbus/dbus-memory.h>
|
||||||
|
#include <dbus/dbus-errors.h>
|
||||||
|
#include <stdarg.h>
|
||||||
|
|
||||||
|
DBUS_BEGIN_DECLS
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @addtogroup DBusMessage
|
||||||
|
* @{
|
||||||
|
*/
|
||||||
|
|
||||||
|
typedef struct DBusMessage DBusMessage;
|
||||||
|
/** Opaque type representing a message iterator. Can be copied by value, and contains no allocated memory so never needs to be freed and can be allocated on the stack. */
|
||||||
|
typedef struct DBusMessageIter DBusMessageIter;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* DBusMessageIter struct; contains no public fields.
|
||||||
|
*/
|
||||||
|
struct DBusMessageIter
|
||||||
|
{
|
||||||
|
void *dummy1; /**< Don't use this */
|
||||||
|
void *dummy2; /**< Don't use this */
|
||||||
|
dbus_uint32_t dummy3; /**< Don't use this */
|
||||||
|
int dummy4; /**< Don't use this */
|
||||||
|
int dummy5; /**< Don't use this */
|
||||||
|
int dummy6; /**< Don't use this */
|
||||||
|
int dummy7; /**< Don't use this */
|
||||||
|
int dummy8; /**< Don't use this */
|
||||||
|
int dummy9; /**< Don't use this */
|
||||||
|
int dummy10; /**< Don't use this */
|
||||||
|
int dummy11; /**< Don't use this */
|
||||||
|
int pad1; /**< Don't use this */
|
||||||
|
int pad2; /**< Don't use this */
|
||||||
|
void *pad3; /**< Don't use this */
|
||||||
|
};
|
||||||
|
|
||||||
|
DBUS_EXPORT
|
||||||
|
DBusMessage* dbus_message_new (int message_type);
|
||||||
|
DBUS_EXPORT
|
||||||
|
DBusMessage* dbus_message_new_method_call (const char *bus_name,
|
||||||
|
const char *path,
|
||||||
|
const char *iface,
|
||||||
|
const char *method);
|
||||||
|
DBUS_EXPORT
|
||||||
|
DBusMessage* dbus_message_new_method_return (DBusMessage *method_call);
|
||||||
|
DBUS_EXPORT
|
||||||
|
DBusMessage* dbus_message_new_signal (const char *path,
|
||||||
|
const char *iface,
|
||||||
|
const char *name);
|
||||||
|
DBUS_EXPORT
|
||||||
|
DBusMessage* dbus_message_new_error (DBusMessage *reply_to,
|
||||||
|
const char *error_name,
|
||||||
|
const char *error_message);
|
||||||
|
DBUS_EXPORT
|
||||||
|
DBusMessage* dbus_message_new_error_printf (DBusMessage *reply_to,
|
||||||
|
const char *error_name,
|
||||||
|
const char *error_format,
|
||||||
|
...);
|
||||||
|
|
||||||
|
DBUS_EXPORT
|
||||||
|
DBusMessage* dbus_message_copy (const DBusMessage *message);
|
||||||
|
|
||||||
|
DBUS_EXPORT
|
||||||
|
DBusMessage* dbus_message_ref (DBusMessage *message);
|
||||||
|
DBUS_EXPORT
|
||||||
|
void dbus_message_unref (DBusMessage *message);
|
||||||
|
DBUS_EXPORT
|
||||||
|
int dbus_message_get_type (DBusMessage *message);
|
||||||
|
DBUS_EXPORT
|
||||||
|
dbus_bool_t dbus_message_set_path (DBusMessage *message,
|
||||||
|
const char *object_path);
|
||||||
|
DBUS_EXPORT
|
||||||
|
const char* dbus_message_get_path (DBusMessage *message);
|
||||||
|
DBUS_EXPORT
|
||||||
|
dbus_bool_t dbus_message_has_path (DBusMessage *message,
|
||||||
|
const char *object_path);
|
||||||
|
DBUS_EXPORT
|
||||||
|
dbus_bool_t dbus_message_set_interface (DBusMessage *message,
|
||||||
|
const char *iface);
|
||||||
|
DBUS_EXPORT
|
||||||
|
const char* dbus_message_get_interface (DBusMessage *message);
|
||||||
|
DBUS_EXPORT
|
||||||
|
dbus_bool_t dbus_message_has_interface (DBusMessage *message,
|
||||||
|
const char *iface);
|
||||||
|
DBUS_EXPORT
|
||||||
|
dbus_bool_t dbus_message_set_member (DBusMessage *message,
|
||||||
|
const char *member);
|
||||||
|
DBUS_EXPORT
|
||||||
|
const char* dbus_message_get_member (DBusMessage *message);
|
||||||
|
DBUS_EXPORT
|
||||||
|
dbus_bool_t dbus_message_has_member (DBusMessage *message,
|
||||||
|
const char *member);
|
||||||
|
DBUS_EXPORT
|
||||||
|
dbus_bool_t dbus_message_set_error_name (DBusMessage *message,
|
||||||
|
const char *name);
|
||||||
|
DBUS_EXPORT
|
||||||
|
const char* dbus_message_get_error_name (DBusMessage *message);
|
||||||
|
DBUS_EXPORT
|
||||||
|
dbus_bool_t dbus_message_set_destination (DBusMessage *message,
|
||||||
|
const char *destination);
|
||||||
|
DBUS_EXPORT
|
||||||
|
const char* dbus_message_get_destination (DBusMessage *message);
|
||||||
|
DBUS_EXPORT
|
||||||
|
dbus_bool_t dbus_message_set_sender (DBusMessage *message,
|
||||||
|
const char *sender);
|
||||||
|
DBUS_EXPORT
|
||||||
|
const char* dbus_message_get_sender (DBusMessage *message);
|
||||||
|
DBUS_EXPORT
|
||||||
|
const char* dbus_message_get_signature (DBusMessage *message);
|
||||||
|
DBUS_EXPORT
|
||||||
|
void dbus_message_set_no_reply (DBusMessage *message,
|
||||||
|
dbus_bool_t no_reply);
|
||||||
|
DBUS_EXPORT
|
||||||
|
dbus_bool_t dbus_message_get_no_reply (DBusMessage *message);
|
||||||
|
DBUS_EXPORT
|
||||||
|
dbus_bool_t dbus_message_is_method_call (DBusMessage *message,
|
||||||
|
const char *iface,
|
||||||
|
const char *method);
|
||||||
|
DBUS_EXPORT
|
||||||
|
dbus_bool_t dbus_message_is_signal (DBusMessage *message,
|
||||||
|
const char *iface,
|
||||||
|
const char *signal_name);
|
||||||
|
DBUS_EXPORT
|
||||||
|
dbus_bool_t dbus_message_is_error (DBusMessage *message,
|
||||||
|
const char *error_name);
|
||||||
|
DBUS_EXPORT
|
||||||
|
dbus_bool_t dbus_message_has_destination (DBusMessage *message,
|
||||||
|
const char *bus_name);
|
||||||
|
DBUS_EXPORT
|
||||||
|
dbus_bool_t dbus_message_has_sender (DBusMessage *message,
|
||||||
|
const char *unique_bus_name);
|
||||||
|
DBUS_EXPORT
|
||||||
|
dbus_bool_t dbus_message_has_signature (DBusMessage *message,
|
||||||
|
const char *signature);
|
||||||
|
DBUS_EXPORT
|
||||||
|
dbus_uint32_t dbus_message_get_serial (DBusMessage *message);
|
||||||
|
DBUS_EXPORT
|
||||||
|
void dbus_message_set_serial (DBusMessage *message,
|
||||||
|
dbus_uint32_t serial);
|
||||||
|
DBUS_EXPORT
|
||||||
|
dbus_bool_t dbus_message_set_reply_serial (DBusMessage *message,
|
||||||
|
dbus_uint32_t reply_serial);
|
||||||
|
DBUS_EXPORT
|
||||||
|
dbus_uint32_t dbus_message_get_reply_serial (DBusMessage *message);
|
||||||
|
|
||||||
|
DBUS_EXPORT
|
||||||
|
void dbus_message_set_auto_start (DBusMessage *message,
|
||||||
|
dbus_bool_t auto_start);
|
||||||
|
DBUS_EXPORT
|
||||||
|
dbus_bool_t dbus_message_get_auto_start (DBusMessage *message);
|
||||||
|
|
||||||
|
DBUS_EXPORT
|
||||||
|
dbus_bool_t dbus_message_get_path_decomposed (DBusMessage *message,
|
||||||
|
char ***path);
|
||||||
|
|
||||||
|
DBUS_EXPORT
|
||||||
|
dbus_bool_t dbus_message_append_args (DBusMessage *message,
|
||||||
|
int first_arg_type,
|
||||||
|
...);
|
||||||
|
DBUS_EXPORT
|
||||||
|
dbus_bool_t dbus_message_append_args_valist (DBusMessage *message,
|
||||||
|
int first_arg_type,
|
||||||
|
va_list var_args);
|
||||||
|
DBUS_EXPORT
|
||||||
|
dbus_bool_t dbus_message_get_args (DBusMessage *message,
|
||||||
|
DBusError *error,
|
||||||
|
int first_arg_type,
|
||||||
|
...);
|
||||||
|
DBUS_EXPORT
|
||||||
|
dbus_bool_t dbus_message_get_args_valist (DBusMessage *message,
|
||||||
|
DBusError *error,
|
||||||
|
int first_arg_type,
|
||||||
|
va_list var_args);
|
||||||
|
|
||||||
|
DBUS_EXPORT
|
||||||
|
dbus_bool_t dbus_message_contains_unix_fds (DBusMessage *message);
|
||||||
|
|
||||||
|
DBUS_EXPORT
|
||||||
|
dbus_bool_t dbus_message_iter_init (DBusMessage *message,
|
||||||
|
DBusMessageIter *iter);
|
||||||
|
DBUS_EXPORT
|
||||||
|
dbus_bool_t dbus_message_iter_has_next (DBusMessageIter *iter);
|
||||||
|
DBUS_EXPORT
|
||||||
|
dbus_bool_t dbus_message_iter_next (DBusMessageIter *iter);
|
||||||
|
DBUS_EXPORT
|
||||||
|
char* dbus_message_iter_get_signature (DBusMessageIter *iter);
|
||||||
|
DBUS_EXPORT
|
||||||
|
int dbus_message_iter_get_arg_type (DBusMessageIter *iter);
|
||||||
|
DBUS_EXPORT
|
||||||
|
int dbus_message_iter_get_element_type (DBusMessageIter *iter);
|
||||||
|
DBUS_EXPORT
|
||||||
|
void dbus_message_iter_recurse (DBusMessageIter *iter,
|
||||||
|
DBusMessageIter *sub);
|
||||||
|
DBUS_EXPORT
|
||||||
|
void dbus_message_iter_get_basic (DBusMessageIter *iter,
|
||||||
|
void *value);
|
||||||
|
#ifndef DBUS_DISABLE_DEPRECATED
|
||||||
|
/* This function returns the wire protocol size of the array in bytes,
|
||||||
|
* you do not want to know that probably
|
||||||
|
*/
|
||||||
|
DBUS_EXPORT
|
||||||
|
DBUS_DEPRECATED int dbus_message_iter_get_array_len (DBusMessageIter *iter);
|
||||||
|
#endif
|
||||||
|
DBUS_EXPORT
|
||||||
|
void dbus_message_iter_get_fixed_array (DBusMessageIter *iter,
|
||||||
|
void *value,
|
||||||
|
int *n_elements);
|
||||||
|
|
||||||
|
|
||||||
|
DBUS_EXPORT
|
||||||
|
void dbus_message_iter_init_append (DBusMessage *message,
|
||||||
|
DBusMessageIter *iter);
|
||||||
|
DBUS_EXPORT
|
||||||
|
dbus_bool_t dbus_message_iter_append_basic (DBusMessageIter *iter,
|
||||||
|
int type,
|
||||||
|
const void *value);
|
||||||
|
DBUS_EXPORT
|
||||||
|
dbus_bool_t dbus_message_iter_append_fixed_array (DBusMessageIter *iter,
|
||||||
|
int element_type,
|
||||||
|
const void *value,
|
||||||
|
int n_elements);
|
||||||
|
DBUS_EXPORT
|
||||||
|
dbus_bool_t dbus_message_iter_open_container (DBusMessageIter *iter,
|
||||||
|
int type,
|
||||||
|
const char *contained_signature,
|
||||||
|
DBusMessageIter *sub);
|
||||||
|
DBUS_EXPORT
|
||||||
|
dbus_bool_t dbus_message_iter_close_container (DBusMessageIter *iter,
|
||||||
|
DBusMessageIter *sub);
|
||||||
|
DBUS_EXPORT
|
||||||
|
void dbus_message_iter_abandon_container (DBusMessageIter *iter,
|
||||||
|
DBusMessageIter *sub);
|
||||||
|
|
||||||
|
DBUS_EXPORT
|
||||||
|
void dbus_message_lock (DBusMessage *message);
|
||||||
|
|
||||||
|
DBUS_EXPORT
|
||||||
|
dbus_bool_t dbus_set_error_from_message (DBusError *error,
|
||||||
|
DBusMessage *message);
|
||||||
|
|
||||||
|
|
||||||
|
DBUS_EXPORT
|
||||||
|
dbus_bool_t dbus_message_allocate_data_slot (dbus_int32_t *slot_p);
|
||||||
|
DBUS_EXPORT
|
||||||
|
void dbus_message_free_data_slot (dbus_int32_t *slot_p);
|
||||||
|
DBUS_EXPORT
|
||||||
|
dbus_bool_t dbus_message_set_data (DBusMessage *message,
|
||||||
|
dbus_int32_t slot,
|
||||||
|
void *data,
|
||||||
|
DBusFreeFunction free_data_func);
|
||||||
|
DBUS_EXPORT
|
||||||
|
void* dbus_message_get_data (DBusMessage *message,
|
||||||
|
dbus_int32_t slot);
|
||||||
|
|
||||||
|
DBUS_EXPORT
|
||||||
|
int dbus_message_type_from_string (const char *type_str);
|
||||||
|
DBUS_EXPORT
|
||||||
|
const char* dbus_message_type_to_string (int type);
|
||||||
|
|
||||||
|
DBUS_EXPORT
|
||||||
|
dbus_bool_t dbus_message_marshal (DBusMessage *msg,
|
||||||
|
char **marshalled_data_p,
|
||||||
|
int *len_p);
|
||||||
|
DBUS_EXPORT
|
||||||
|
DBusMessage* dbus_message_demarshal (const char *str,
|
||||||
|
int len,
|
||||||
|
DBusError *error);
|
||||||
|
|
||||||
|
DBUS_EXPORT
|
||||||
|
int dbus_message_demarshal_bytes_needed (const char *str,
|
||||||
|
int len);
|
||||||
|
|
||||||
|
DBUS_EXPORT
|
||||||
|
void dbus_message_set_allow_interactive_authorization (DBusMessage *message,
|
||||||
|
dbus_bool_t allow);
|
||||||
|
|
||||||
|
DBUS_EXPORT
|
||||||
|
dbus_bool_t dbus_message_get_allow_interactive_authorization (
|
||||||
|
DBusMessage *message);
|
||||||
|
|
||||||
|
/** @} */
|
||||||
|
|
||||||
|
DBUS_END_DECLS
|
||||||
|
|
||||||
|
#endif /* DBUS_MESSAGE_H */
|
56
code/application/source/sf_app/code/source/sf_blue/inc/dbus/dbus-misc.h
Executable file
56
code/application/source/sf_app/code/source/sf_blue/inc/dbus/dbus-misc.h
Executable file
|
@ -0,0 +1,56 @@
|
||||||
|
/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
|
||||||
|
/* dbus-misc.h A few assorted public functions that don't fit elsewhere
|
||||||
|
*
|
||||||
|
* Copyright (C) 2006 Red Hat, Inc.
|
||||||
|
*
|
||||||
|
* Licensed under the Academic Free License version 2.1
|
||||||
|
*
|
||||||
|
* This program is free software; you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation; either version 2 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 General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program; if not, write to the Free Software
|
||||||
|
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
#if !defined (DBUS_INSIDE_DBUS_H) && !defined (DBUS_COMPILATION)
|
||||||
|
#error "Only <dbus/dbus.h> can be included directly, this file may disappear or change contents."
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef DBUS_MISC_H
|
||||||
|
#define DBUS_MISC_H
|
||||||
|
|
||||||
|
#include <dbus/dbus-types.h>
|
||||||
|
#include <dbus/dbus-errors.h>
|
||||||
|
|
||||||
|
DBUS_BEGIN_DECLS
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @addtogroup DBusMisc
|
||||||
|
* @{
|
||||||
|
*/
|
||||||
|
DBUS_EXPORT
|
||||||
|
char* dbus_get_local_machine_id (void);
|
||||||
|
|
||||||
|
DBUS_EXPORT
|
||||||
|
void dbus_get_version (int *major_version_p,
|
||||||
|
int *minor_version_p,
|
||||||
|
int *micro_version_p);
|
||||||
|
|
||||||
|
DBUS_EXPORT
|
||||||
|
dbus_bool_t dbus_setenv (const char *variable,
|
||||||
|
const char *value);
|
||||||
|
|
||||||
|
/** @} */
|
||||||
|
|
||||||
|
DBUS_END_DECLS
|
||||||
|
|
||||||
|
#endif /* DBUS_MISC_H */
|
||||||
|
|
|
@ -0,0 +1,79 @@
|
||||||
|
/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
|
||||||
|
/* dbus-pending-call.h Object representing a call in progress.
|
||||||
|
*
|
||||||
|
* Copyright (C) 2002, 2003 Red Hat Inc.
|
||||||
|
*
|
||||||
|
* Licensed under the Academic Free License version 2.1
|
||||||
|
*
|
||||||
|
* This program is free software; you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation; either version 2 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 General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program; if not, write to the Free Software
|
||||||
|
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
#if !defined (DBUS_INSIDE_DBUS_H) && !defined (DBUS_COMPILATION)
|
||||||
|
#error "Only <dbus/dbus.h> can be included directly, this file may disappear or change contents."
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef DBUS_PENDING_CALL_H
|
||||||
|
#define DBUS_PENDING_CALL_H
|
||||||
|
|
||||||
|
#include <dbus/dbus-macros.h>
|
||||||
|
#include <dbus/dbus-types.h>
|
||||||
|
#include <dbus/dbus-connection.h>
|
||||||
|
|
||||||
|
DBUS_BEGIN_DECLS
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @addtogroup DBusPendingCall
|
||||||
|
* @{
|
||||||
|
*/
|
||||||
|
|
||||||
|
#define DBUS_TIMEOUT_INFINITE ((int) 0x7fffffff)
|
||||||
|
#define DBUS_TIMEOUT_USE_DEFAULT (-1)
|
||||||
|
|
||||||
|
DBUS_EXPORT
|
||||||
|
DBusPendingCall* dbus_pending_call_ref (DBusPendingCall *pending);
|
||||||
|
DBUS_EXPORT
|
||||||
|
void dbus_pending_call_unref (DBusPendingCall *pending);
|
||||||
|
DBUS_EXPORT
|
||||||
|
dbus_bool_t dbus_pending_call_set_notify (DBusPendingCall *pending,
|
||||||
|
DBusPendingCallNotifyFunction function,
|
||||||
|
void *user_data,
|
||||||
|
DBusFreeFunction free_user_data);
|
||||||
|
DBUS_EXPORT
|
||||||
|
void dbus_pending_call_cancel (DBusPendingCall *pending);
|
||||||
|
DBUS_EXPORT
|
||||||
|
dbus_bool_t dbus_pending_call_get_completed (DBusPendingCall *pending);
|
||||||
|
DBUS_EXPORT
|
||||||
|
DBusMessage* dbus_pending_call_steal_reply (DBusPendingCall *pending);
|
||||||
|
DBUS_EXPORT
|
||||||
|
void dbus_pending_call_block (DBusPendingCall *pending);
|
||||||
|
|
||||||
|
DBUS_EXPORT
|
||||||
|
dbus_bool_t dbus_pending_call_allocate_data_slot (dbus_int32_t *slot_p);
|
||||||
|
DBUS_EXPORT
|
||||||
|
void dbus_pending_call_free_data_slot (dbus_int32_t *slot_p);
|
||||||
|
DBUS_EXPORT
|
||||||
|
dbus_bool_t dbus_pending_call_set_data (DBusPendingCall *pending,
|
||||||
|
dbus_int32_t slot,
|
||||||
|
void *data,
|
||||||
|
DBusFreeFunction free_data_func);
|
||||||
|
DBUS_EXPORT
|
||||||
|
void* dbus_pending_call_get_data (DBusPendingCall *pending,
|
||||||
|
dbus_int32_t slot);
|
||||||
|
|
||||||
|
/** @} */
|
||||||
|
|
||||||
|
DBUS_END_DECLS
|
||||||
|
|
||||||
|
#endif /* DBUS_PENDING_CALL_H */
|
479
code/application/source/sf_app/code/source/sf_blue/inc/dbus/dbus-protocol.h
Executable file
479
code/application/source/sf_app/code/source/sf_blue/inc/dbus/dbus-protocol.h
Executable file
|
@ -0,0 +1,479 @@
|
||||||
|
/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
|
||||||
|
/* dbus-protocol.h D-Bus protocol constants
|
||||||
|
*
|
||||||
|
* Copyright (C) 2002, 2003 CodeFactory AB
|
||||||
|
* Copyright (C) 2004, 2005 Red Hat, Inc.
|
||||||
|
*
|
||||||
|
* Licensed under the Academic Free License version 2.1
|
||||||
|
*
|
||||||
|
* This program is free software; you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation; either version 2 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 General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program; if not, write to the Free Software
|
||||||
|
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef DBUS_PROTOCOL_H
|
||||||
|
#define DBUS_PROTOCOL_H
|
||||||
|
|
||||||
|
/* Don't include anything in here from anywhere else. It's
|
||||||
|
* intended for use by any random library.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#if 0
|
||||||
|
} /* avoids confusing emacs indentation */
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* Normally docs are in .c files, but there isn't a .c file for this. */
|
||||||
|
/**
|
||||||
|
* @defgroup DBusProtocol Protocol constants
|
||||||
|
* @ingroup DBus
|
||||||
|
*
|
||||||
|
* @brief Defines constants which are part of the D-Bus protocol
|
||||||
|
*
|
||||||
|
* This header is intended for use by any library, not only libdbus.
|
||||||
|
*
|
||||||
|
* @{
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
/* Message byte order */
|
||||||
|
#define DBUS_LITTLE_ENDIAN ('l') /**< Code marking LSB-first byte order in the wire protocol. */
|
||||||
|
#define DBUS_BIG_ENDIAN ('B') /**< Code marking MSB-first byte order in the wire protocol. */
|
||||||
|
|
||||||
|
/** Protocol version. */
|
||||||
|
#define DBUS_MAJOR_PROTOCOL_VERSION 1
|
||||||
|
|
||||||
|
/** Type code that is never equal to a legitimate type code */
|
||||||
|
#define DBUS_TYPE_INVALID ((int) '\0')
|
||||||
|
/** #DBUS_TYPE_INVALID as a string literal instead of a int literal */
|
||||||
|
#define DBUS_TYPE_INVALID_AS_STRING "\0"
|
||||||
|
|
||||||
|
/* Primitive types */
|
||||||
|
/** Type code marking an 8-bit unsigned integer */
|
||||||
|
#define DBUS_TYPE_BYTE ((int) 'y')
|
||||||
|
/** #DBUS_TYPE_BYTE as a string literal instead of a int literal */
|
||||||
|
#define DBUS_TYPE_BYTE_AS_STRING "y"
|
||||||
|
/** Type code marking a boolean */
|
||||||
|
#define DBUS_TYPE_BOOLEAN ((int) 'b')
|
||||||
|
/** #DBUS_TYPE_BOOLEAN as a string literal instead of a int literal */
|
||||||
|
#define DBUS_TYPE_BOOLEAN_AS_STRING "b"
|
||||||
|
/** Type code marking a 16-bit signed integer */
|
||||||
|
#define DBUS_TYPE_INT16 ((int) 'n')
|
||||||
|
/** #DBUS_TYPE_INT16 as a string literal instead of a int literal */
|
||||||
|
#define DBUS_TYPE_INT16_AS_STRING "n"
|
||||||
|
/** Type code marking a 16-bit unsigned integer */
|
||||||
|
#define DBUS_TYPE_UINT16 ((int) 'q')
|
||||||
|
/** #DBUS_TYPE_UINT16 as a string literal instead of a int literal */
|
||||||
|
#define DBUS_TYPE_UINT16_AS_STRING "q"
|
||||||
|
/** Type code marking a 32-bit signed integer */
|
||||||
|
#define DBUS_TYPE_INT32 ((int) 'i')
|
||||||
|
/** #DBUS_TYPE_INT32 as a string literal instead of a int literal */
|
||||||
|
#define DBUS_TYPE_INT32_AS_STRING "i"
|
||||||
|
/** Type code marking a 32-bit unsigned integer */
|
||||||
|
#define DBUS_TYPE_UINT32 ((int) 'u')
|
||||||
|
/** #DBUS_TYPE_UINT32 as a string literal instead of a int literal */
|
||||||
|
#define DBUS_TYPE_UINT32_AS_STRING "u"
|
||||||
|
/** Type code marking a 64-bit signed integer */
|
||||||
|
#define DBUS_TYPE_INT64 ((int) 'x')
|
||||||
|
/** #DBUS_TYPE_INT64 as a string literal instead of a int literal */
|
||||||
|
#define DBUS_TYPE_INT64_AS_STRING "x"
|
||||||
|
/** Type code marking a 64-bit unsigned integer */
|
||||||
|
#define DBUS_TYPE_UINT64 ((int) 't')
|
||||||
|
/** #DBUS_TYPE_UINT64 as a string literal instead of a int literal */
|
||||||
|
#define DBUS_TYPE_UINT64_AS_STRING "t"
|
||||||
|
/** Type code marking an 8-byte double in IEEE 754 format */
|
||||||
|
#define DBUS_TYPE_DOUBLE ((int) 'd')
|
||||||
|
/** #DBUS_TYPE_DOUBLE as a string literal instead of a int literal */
|
||||||
|
#define DBUS_TYPE_DOUBLE_AS_STRING "d"
|
||||||
|
/** Type code marking a UTF-8 encoded, nul-terminated Unicode string */
|
||||||
|
#define DBUS_TYPE_STRING ((int) 's')
|
||||||
|
/** #DBUS_TYPE_STRING as a string literal instead of a int literal */
|
||||||
|
#define DBUS_TYPE_STRING_AS_STRING "s"
|
||||||
|
/** Type code marking a D-Bus object path */
|
||||||
|
#define DBUS_TYPE_OBJECT_PATH ((int) 'o')
|
||||||
|
/** #DBUS_TYPE_OBJECT_PATH as a string literal instead of a int literal */
|
||||||
|
#define DBUS_TYPE_OBJECT_PATH_AS_STRING "o"
|
||||||
|
/** Type code marking a D-Bus type signature */
|
||||||
|
#define DBUS_TYPE_SIGNATURE ((int) 'g')
|
||||||
|
/** #DBUS_TYPE_SIGNATURE as a string literal instead of a int literal */
|
||||||
|
#define DBUS_TYPE_SIGNATURE_AS_STRING "g"
|
||||||
|
/** Type code marking a unix file descriptor */
|
||||||
|
#define DBUS_TYPE_UNIX_FD ((int) 'h')
|
||||||
|
/** #DBUS_TYPE_UNIX_FD as a string literal instead of a int literal */
|
||||||
|
#define DBUS_TYPE_UNIX_FD_AS_STRING "h"
|
||||||
|
|
||||||
|
/* Compound types */
|
||||||
|
/** Type code marking a D-Bus array type */
|
||||||
|
#define DBUS_TYPE_ARRAY ((int) 'a')
|
||||||
|
/** #DBUS_TYPE_ARRAY as a string literal instead of a int literal */
|
||||||
|
#define DBUS_TYPE_ARRAY_AS_STRING "a"
|
||||||
|
/** Type code marking a D-Bus variant type */
|
||||||
|
#define DBUS_TYPE_VARIANT ((int) 'v')
|
||||||
|
/** #DBUS_TYPE_VARIANT as a string literal instead of a int literal */
|
||||||
|
#define DBUS_TYPE_VARIANT_AS_STRING "v"
|
||||||
|
|
||||||
|
/** STRUCT and DICT_ENTRY are sort of special since their codes can't
|
||||||
|
* appear in a type string, instead
|
||||||
|
* DBUS_STRUCT_BEGIN_CHAR/DBUS_DICT_ENTRY_BEGIN_CHAR have to appear
|
||||||
|
*/
|
||||||
|
/** Type code used to represent a struct; however, this type code does not appear
|
||||||
|
* in type signatures, instead #DBUS_STRUCT_BEGIN_CHAR and #DBUS_STRUCT_END_CHAR will
|
||||||
|
* appear in a signature.
|
||||||
|
*/
|
||||||
|
#define DBUS_TYPE_STRUCT ((int) 'r')
|
||||||
|
/** #DBUS_TYPE_STRUCT as a string literal instead of a int literal */
|
||||||
|
#define DBUS_TYPE_STRUCT_AS_STRING "r"
|
||||||
|
/** Type code used to represent a dict entry; however, this type code does not appear
|
||||||
|
* in type signatures, instead #DBUS_DICT_ENTRY_BEGIN_CHAR and #DBUS_DICT_ENTRY_END_CHAR will
|
||||||
|
* appear in a signature.
|
||||||
|
*/
|
||||||
|
#define DBUS_TYPE_DICT_ENTRY ((int) 'e')
|
||||||
|
/** #DBUS_TYPE_DICT_ENTRY as a string literal instead of a int literal */
|
||||||
|
#define DBUS_TYPE_DICT_ENTRY_AS_STRING "e"
|
||||||
|
|
||||||
|
/** Does not include #DBUS_TYPE_INVALID, #DBUS_STRUCT_BEGIN_CHAR, #DBUS_STRUCT_END_CHAR,
|
||||||
|
* #DBUS_DICT_ENTRY_BEGIN_CHAR, or #DBUS_DICT_ENTRY_END_CHAR - i.e. it is the number of
|
||||||
|
* valid types, not the number of distinct characters that may appear in a type signature.
|
||||||
|
*/
|
||||||
|
#define DBUS_NUMBER_OF_TYPES (16)
|
||||||
|
|
||||||
|
/* characters other than typecodes that appear in type signatures */
|
||||||
|
|
||||||
|
/** Code marking the start of a struct type in a type signature */
|
||||||
|
#define DBUS_STRUCT_BEGIN_CHAR ((int) '(')
|
||||||
|
/** #DBUS_STRUCT_BEGIN_CHAR as a string literal instead of a int literal */
|
||||||
|
#define DBUS_STRUCT_BEGIN_CHAR_AS_STRING "("
|
||||||
|
/** Code marking the end of a struct type in a type signature */
|
||||||
|
#define DBUS_STRUCT_END_CHAR ((int) ')')
|
||||||
|
/** #DBUS_STRUCT_END_CHAR a string literal instead of a int literal */
|
||||||
|
#define DBUS_STRUCT_END_CHAR_AS_STRING ")"
|
||||||
|
/** Code marking the start of a dict entry type in a type signature */
|
||||||
|
#define DBUS_DICT_ENTRY_BEGIN_CHAR ((int) '{')
|
||||||
|
/** #DBUS_DICT_ENTRY_BEGIN_CHAR as a string literal instead of a int literal */
|
||||||
|
#define DBUS_DICT_ENTRY_BEGIN_CHAR_AS_STRING "{"
|
||||||
|
/** Code marking the end of a dict entry type in a type signature */
|
||||||
|
#define DBUS_DICT_ENTRY_END_CHAR ((int) '}')
|
||||||
|
/** #DBUS_DICT_ENTRY_END_CHAR as a string literal instead of a int literal */
|
||||||
|
#define DBUS_DICT_ENTRY_END_CHAR_AS_STRING "}"
|
||||||
|
|
||||||
|
/** Max length in bytes of a bus name, interface, or member (not object
|
||||||
|
* path, paths are unlimited). This is limited because lots of stuff
|
||||||
|
* is O(n) in this number, plus it would be obnoxious to type in a
|
||||||
|
* paragraph-long method name so most likely something like that would
|
||||||
|
* be an exploit.
|
||||||
|
*/
|
||||||
|
#define DBUS_MAXIMUM_NAME_LENGTH 255
|
||||||
|
|
||||||
|
/** This one is 255 so it fits in a byte */
|
||||||
|
#define DBUS_MAXIMUM_SIGNATURE_LENGTH 255
|
||||||
|
|
||||||
|
/** Max length of a match rule string; to keep people from hosing the
|
||||||
|
* daemon with some huge rule
|
||||||
|
*/
|
||||||
|
#define DBUS_MAXIMUM_MATCH_RULE_LENGTH 1024
|
||||||
|
|
||||||
|
/** Max arg number you can match on in a match rule, e.g.
|
||||||
|
* arg0='hello' is OK, arg3489720987='hello' is not
|
||||||
|
*/
|
||||||
|
#define DBUS_MAXIMUM_MATCH_RULE_ARG_NUMBER 63
|
||||||
|
|
||||||
|
/** Max length of a marshaled array in bytes (64M, 2^26) We use signed
|
||||||
|
* int for lengths so must be INT_MAX or less. We need something a
|
||||||
|
* bit smaller than INT_MAX because the array is inside a message with
|
||||||
|
* header info, etc. so an INT_MAX array wouldn't allow the message
|
||||||
|
* overhead. The 64M number is an attempt at a larger number than
|
||||||
|
* we'd reasonably ever use, but small enough that your bus would chew
|
||||||
|
* through it fairly quickly without locking up forever. If you have
|
||||||
|
* data that's likely to be larger than this, you should probably be
|
||||||
|
* sending it in multiple incremental messages anyhow.
|
||||||
|
*/
|
||||||
|
#define DBUS_MAXIMUM_ARRAY_LENGTH (67108864)
|
||||||
|
/** Number of bits you need in an unsigned to store the max array size */
|
||||||
|
#define DBUS_MAXIMUM_ARRAY_LENGTH_BITS 26
|
||||||
|
|
||||||
|
/** The maximum total message size including header and body; similar
|
||||||
|
* rationale to max array size.
|
||||||
|
*/
|
||||||
|
#define DBUS_MAXIMUM_MESSAGE_LENGTH (DBUS_MAXIMUM_ARRAY_LENGTH * 2)
|
||||||
|
/** Number of bits you need in an unsigned to store the max message size */
|
||||||
|
#define DBUS_MAXIMUM_MESSAGE_LENGTH_BITS 27
|
||||||
|
|
||||||
|
/** The maximum total number of unix fds in a message. Similar
|
||||||
|
* rationale as DBUS_MAXIMUM_MESSAGE_LENGTH. However we divide by four
|
||||||
|
* given that one fd is an int and hence at least 32 bits.
|
||||||
|
*/
|
||||||
|
#define DBUS_MAXIMUM_MESSAGE_UNIX_FDS (DBUS_MAXIMUM_MESSAGE_LENGTH/4)
|
||||||
|
/** Number of bits you need in an unsigned to store the max message unix fds */
|
||||||
|
#define DBUS_MAXIMUM_MESSAGE_UNIX_FDS_BITS (DBUS_MAXIMUM_MESSAGE_LENGTH_BITS-2)
|
||||||
|
|
||||||
|
/** Depth of recursion in the type tree. This is automatically limited
|
||||||
|
* to DBUS_MAXIMUM_SIGNATURE_LENGTH since you could only have an array
|
||||||
|
* of array of array of ... that fit in the max signature. But that's
|
||||||
|
* probably a bit too large.
|
||||||
|
*/
|
||||||
|
#define DBUS_MAXIMUM_TYPE_RECURSION_DEPTH 32
|
||||||
|
|
||||||
|
/* Types of message */
|
||||||
|
|
||||||
|
/** This value is never a valid message type, see dbus_message_get_type() */
|
||||||
|
#define DBUS_MESSAGE_TYPE_INVALID 0
|
||||||
|
/** Message type of a method call message, see dbus_message_get_type() */
|
||||||
|
#define DBUS_MESSAGE_TYPE_METHOD_CALL 1
|
||||||
|
/** Message type of a method return message, see dbus_message_get_type() */
|
||||||
|
#define DBUS_MESSAGE_TYPE_METHOD_RETURN 2
|
||||||
|
/** Message type of an error reply message, see dbus_message_get_type() */
|
||||||
|
#define DBUS_MESSAGE_TYPE_ERROR 3
|
||||||
|
/** Message type of a signal message, see dbus_message_get_type() */
|
||||||
|
#define DBUS_MESSAGE_TYPE_SIGNAL 4
|
||||||
|
|
||||||
|
#define DBUS_NUM_MESSAGE_TYPES 5
|
||||||
|
|
||||||
|
/* Header flags */
|
||||||
|
|
||||||
|
/** If set, this flag means that the sender of a message does not care about getting
|
||||||
|
* a reply, so the recipient need not send one. See dbus_message_set_no_reply().
|
||||||
|
*/
|
||||||
|
#define DBUS_HEADER_FLAG_NO_REPLY_EXPECTED 0x1
|
||||||
|
/**
|
||||||
|
* If set, this flag means that even if the message bus knows how to start an owner for
|
||||||
|
* the destination bus name (see dbus_message_set_destination()), it should not
|
||||||
|
* do so. If this flag is not set, the bus may launch a program to process the
|
||||||
|
* message.
|
||||||
|
*/
|
||||||
|
#define DBUS_HEADER_FLAG_NO_AUTO_START 0x2
|
||||||
|
/**
|
||||||
|
* If set on a method call, this flag means that the caller is prepared to
|
||||||
|
* wait for interactive authorization.
|
||||||
|
*/
|
||||||
|
#define DBUS_HEADER_FLAG_ALLOW_INTERACTIVE_AUTHORIZATION 0x4
|
||||||
|
|
||||||
|
/* Header fields */
|
||||||
|
|
||||||
|
/** Not equal to any valid header field code */
|
||||||
|
#define DBUS_HEADER_FIELD_INVALID 0
|
||||||
|
/** Header field code for the path - the path is the object emitting a signal or the object receiving a method call.
|
||||||
|
* See dbus_message_set_path().
|
||||||
|
*/
|
||||||
|
#define DBUS_HEADER_FIELD_PATH 1
|
||||||
|
/** Header field code for the interface containing a member (method or signal).
|
||||||
|
* See dbus_message_set_interface().
|
||||||
|
*/
|
||||||
|
#define DBUS_HEADER_FIELD_INTERFACE 2
|
||||||
|
/** Header field code for a member (method or signal). See dbus_message_set_member(). */
|
||||||
|
#define DBUS_HEADER_FIELD_MEMBER 3
|
||||||
|
/** Header field code for an error name (found in #DBUS_MESSAGE_TYPE_ERROR messages).
|
||||||
|
* See dbus_message_set_error_name().
|
||||||
|
*/
|
||||||
|
#define DBUS_HEADER_FIELD_ERROR_NAME 4
|
||||||
|
/** Header field code for a reply serial, used to match a #DBUS_MESSAGE_TYPE_METHOD_RETURN message with the
|
||||||
|
* message that it's a reply to. See dbus_message_set_reply_serial().
|
||||||
|
*/
|
||||||
|
#define DBUS_HEADER_FIELD_REPLY_SERIAL 5
|
||||||
|
/**
|
||||||
|
* Header field code for the destination bus name of a message. See dbus_message_set_destination().
|
||||||
|
*/
|
||||||
|
#define DBUS_HEADER_FIELD_DESTINATION 6
|
||||||
|
/**
|
||||||
|
* Header field code for the sender of a message; usually initialized by the message bus.
|
||||||
|
* See dbus_message_set_sender().
|
||||||
|
*/
|
||||||
|
#define DBUS_HEADER_FIELD_SENDER 7
|
||||||
|
/**
|
||||||
|
* Header field code for the type signature of a message.
|
||||||
|
*/
|
||||||
|
#define DBUS_HEADER_FIELD_SIGNATURE 8
|
||||||
|
/**
|
||||||
|
* Header field code for the number of unix file descriptors associated
|
||||||
|
* with this message.
|
||||||
|
*/
|
||||||
|
#define DBUS_HEADER_FIELD_UNIX_FDS 9
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Value of the highest-numbered header field code, can be used to determine
|
||||||
|
* the size of an array indexed by header field code. Remember though
|
||||||
|
* that unknown codes must be ignored, so check for that before
|
||||||
|
* indexing the array.
|
||||||
|
*/
|
||||||
|
#define DBUS_HEADER_FIELD_LAST DBUS_HEADER_FIELD_UNIX_FDS
|
||||||
|
|
||||||
|
/** Header format is defined as a signature:
|
||||||
|
* byte byte order
|
||||||
|
* byte message type ID
|
||||||
|
* byte flags
|
||||||
|
* byte protocol version
|
||||||
|
* uint32 body length
|
||||||
|
* uint32 serial
|
||||||
|
* array of struct (byte,variant) (field name, value)
|
||||||
|
*
|
||||||
|
* The length of the header can be computed as the
|
||||||
|
* fixed size of the initial data, plus the length of
|
||||||
|
* the array at the end, plus padding to an 8-boundary.
|
||||||
|
*/
|
||||||
|
#define DBUS_HEADER_SIGNATURE \
|
||||||
|
DBUS_TYPE_BYTE_AS_STRING \
|
||||||
|
DBUS_TYPE_BYTE_AS_STRING \
|
||||||
|
DBUS_TYPE_BYTE_AS_STRING \
|
||||||
|
DBUS_TYPE_BYTE_AS_STRING \
|
||||||
|
DBUS_TYPE_UINT32_AS_STRING \
|
||||||
|
DBUS_TYPE_UINT32_AS_STRING \
|
||||||
|
DBUS_TYPE_ARRAY_AS_STRING \
|
||||||
|
DBUS_STRUCT_BEGIN_CHAR_AS_STRING \
|
||||||
|
DBUS_TYPE_BYTE_AS_STRING \
|
||||||
|
DBUS_TYPE_VARIANT_AS_STRING \
|
||||||
|
DBUS_STRUCT_END_CHAR_AS_STRING
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The smallest header size that can occur. (It won't be valid due to
|
||||||
|
* missing required header fields.) This is 4 bytes, two uint32, an
|
||||||
|
* array length. This isn't any kind of resource limit, just the
|
||||||
|
* necessary/logical outcome of the header signature.
|
||||||
|
*/
|
||||||
|
#define DBUS_MINIMUM_HEADER_SIZE 16
|
||||||
|
|
||||||
|
/* Errors */
|
||||||
|
/* WARNING these get autoconverted to an enum in dbus-glib.h. Thus,
|
||||||
|
* if you change the order it breaks the ABI. Keep them in order.
|
||||||
|
* Also, don't change the formatting since that will break the sed
|
||||||
|
* script.
|
||||||
|
*/
|
||||||
|
/** A generic error; "something went wrong" - see the error message for more. */
|
||||||
|
#define DBUS_ERROR_FAILED "org.freedesktop.DBus.Error.Failed"
|
||||||
|
/** There was not enough memory to complete an operation. */
|
||||||
|
#define DBUS_ERROR_NO_MEMORY "org.freedesktop.DBus.Error.NoMemory"
|
||||||
|
/** The bus doesn't know how to launch a service to supply the bus name you wanted. */
|
||||||
|
#define DBUS_ERROR_SERVICE_UNKNOWN "org.freedesktop.DBus.Error.ServiceUnknown"
|
||||||
|
/** The bus name you referenced doesn't exist (i.e. no application owns it). */
|
||||||
|
#define DBUS_ERROR_NAME_HAS_NO_OWNER "org.freedesktop.DBus.Error.NameHasNoOwner"
|
||||||
|
/** No reply to a message expecting one, usually means a timeout occurred. */
|
||||||
|
#define DBUS_ERROR_NO_REPLY "org.freedesktop.DBus.Error.NoReply"
|
||||||
|
/** Something went wrong reading or writing to a socket, for example. */
|
||||||
|
#define DBUS_ERROR_IO_ERROR "org.freedesktop.DBus.Error.IOError"
|
||||||
|
/** A D-Bus bus address was malformed. */
|
||||||
|
#define DBUS_ERROR_BAD_ADDRESS "org.freedesktop.DBus.Error.BadAddress"
|
||||||
|
/** Requested operation isn't supported (like ENOSYS on UNIX). */
|
||||||
|
#define DBUS_ERROR_NOT_SUPPORTED "org.freedesktop.DBus.Error.NotSupported"
|
||||||
|
/** Some limited resource is exhausted. */
|
||||||
|
#define DBUS_ERROR_LIMITS_EXCEEDED "org.freedesktop.DBus.Error.LimitsExceeded"
|
||||||
|
/** Security restrictions don't allow doing what you're trying to do. */
|
||||||
|
#define DBUS_ERROR_ACCESS_DENIED "org.freedesktop.DBus.Error.AccessDenied"
|
||||||
|
/** Authentication didn't work. */
|
||||||
|
#define DBUS_ERROR_AUTH_FAILED "org.freedesktop.DBus.Error.AuthFailed"
|
||||||
|
/** Unable to connect to server (probably caused by ECONNREFUSED on a socket). */
|
||||||
|
#define DBUS_ERROR_NO_SERVER "org.freedesktop.DBus.Error.NoServer"
|
||||||
|
/** Certain timeout errors, possibly ETIMEDOUT on a socket.
|
||||||
|
* Note that #DBUS_ERROR_NO_REPLY is used for message reply timeouts.
|
||||||
|
* @warning this is confusingly-named given that #DBUS_ERROR_TIMED_OUT also exists. We can't fix
|
||||||
|
* it for compatibility reasons so just be careful.
|
||||||
|
*/
|
||||||
|
#define DBUS_ERROR_TIMEOUT "org.freedesktop.DBus.Error.Timeout"
|
||||||
|
/** No network access (probably ENETUNREACH on a socket). */
|
||||||
|
#define DBUS_ERROR_NO_NETWORK "org.freedesktop.DBus.Error.NoNetwork"
|
||||||
|
/** Can't bind a socket since its address is in use (i.e. EADDRINUSE). */
|
||||||
|
#define DBUS_ERROR_ADDRESS_IN_USE "org.freedesktop.DBus.Error.AddressInUse"
|
||||||
|
/** The connection is disconnected and you're trying to use it. */
|
||||||
|
#define DBUS_ERROR_DISCONNECTED "org.freedesktop.DBus.Error.Disconnected"
|
||||||
|
/** Invalid arguments passed to a method call. */
|
||||||
|
#define DBUS_ERROR_INVALID_ARGS "org.freedesktop.DBus.Error.InvalidArgs"
|
||||||
|
/** Missing file. */
|
||||||
|
#define DBUS_ERROR_FILE_NOT_FOUND "org.freedesktop.DBus.Error.FileNotFound"
|
||||||
|
/** Existing file and the operation you're using does not silently overwrite. */
|
||||||
|
#define DBUS_ERROR_FILE_EXISTS "org.freedesktop.DBus.Error.FileExists"
|
||||||
|
/** Method name you invoked isn't known by the object you invoked it on. */
|
||||||
|
#define DBUS_ERROR_UNKNOWN_METHOD "org.freedesktop.DBus.Error.UnknownMethod"
|
||||||
|
/** Object you invoked a method on isn't known. */
|
||||||
|
#define DBUS_ERROR_UNKNOWN_OBJECT "org.freedesktop.DBus.Error.UnknownObject"
|
||||||
|
/** Interface you invoked a method on isn't known by the object. */
|
||||||
|
#define DBUS_ERROR_UNKNOWN_INTERFACE "org.freedesktop.DBus.Error.UnknownInterface"
|
||||||
|
/** Property you tried to access isn't known by the object. */
|
||||||
|
#define DBUS_ERROR_UNKNOWN_PROPERTY "org.freedesktop.DBus.Error.UnknownProperty"
|
||||||
|
/** Property you tried to set is read-only. */
|
||||||
|
#define DBUS_ERROR_PROPERTY_READ_ONLY "org.freedesktop.DBus.Error.PropertyReadOnly"
|
||||||
|
/** Certain timeout errors, e.g. while starting a service.
|
||||||
|
* @warning this is confusingly-named given that #DBUS_ERROR_TIMEOUT also exists. We can't fix
|
||||||
|
* it for compatibility reasons so just be careful.
|
||||||
|
*/
|
||||||
|
#define DBUS_ERROR_TIMED_OUT "org.freedesktop.DBus.Error.TimedOut"
|
||||||
|
/** Tried to remove or modify a match rule that didn't exist. */
|
||||||
|
#define DBUS_ERROR_MATCH_RULE_NOT_FOUND "org.freedesktop.DBus.Error.MatchRuleNotFound"
|
||||||
|
/** The match rule isn't syntactically valid. */
|
||||||
|
#define DBUS_ERROR_MATCH_RULE_INVALID "org.freedesktop.DBus.Error.MatchRuleInvalid"
|
||||||
|
/** While starting a new process, the exec() call failed. */
|
||||||
|
#define DBUS_ERROR_SPAWN_EXEC_FAILED "org.freedesktop.DBus.Error.Spawn.ExecFailed"
|
||||||
|
/** While starting a new process, the fork() call failed. */
|
||||||
|
#define DBUS_ERROR_SPAWN_FORK_FAILED "org.freedesktop.DBus.Error.Spawn.ForkFailed"
|
||||||
|
/** While starting a new process, the child exited with a status code. */
|
||||||
|
#define DBUS_ERROR_SPAWN_CHILD_EXITED "org.freedesktop.DBus.Error.Spawn.ChildExited"
|
||||||
|
/** While starting a new process, the child exited on a signal. */
|
||||||
|
#define DBUS_ERROR_SPAWN_CHILD_SIGNALED "org.freedesktop.DBus.Error.Spawn.ChildSignaled"
|
||||||
|
/** While starting a new process, something went wrong. */
|
||||||
|
#define DBUS_ERROR_SPAWN_FAILED "org.freedesktop.DBus.Error.Spawn.Failed"
|
||||||
|
/** We failed to setup the environment correctly. */
|
||||||
|
#define DBUS_ERROR_SPAWN_SETUP_FAILED "org.freedesktop.DBus.Error.Spawn.FailedToSetup"
|
||||||
|
/** We failed to setup the config parser correctly. */
|
||||||
|
#define DBUS_ERROR_SPAWN_CONFIG_INVALID "org.freedesktop.DBus.Error.Spawn.ConfigInvalid"
|
||||||
|
/** Bus name was not valid. */
|
||||||
|
#define DBUS_ERROR_SPAWN_SERVICE_INVALID "org.freedesktop.DBus.Error.Spawn.ServiceNotValid"
|
||||||
|
/** Service file not found in system-services directory. */
|
||||||
|
#define DBUS_ERROR_SPAWN_SERVICE_NOT_FOUND "org.freedesktop.DBus.Error.Spawn.ServiceNotFound"
|
||||||
|
/** Permissions are incorrect on the setuid helper. */
|
||||||
|
#define DBUS_ERROR_SPAWN_PERMISSIONS_INVALID "org.freedesktop.DBus.Error.Spawn.PermissionsInvalid"
|
||||||
|
/** Service file invalid (Name, User or Exec missing). */
|
||||||
|
#define DBUS_ERROR_SPAWN_FILE_INVALID "org.freedesktop.DBus.Error.Spawn.FileInvalid"
|
||||||
|
/** Tried to get a UNIX process ID and it wasn't available. */
|
||||||
|
#define DBUS_ERROR_SPAWN_NO_MEMORY "org.freedesktop.DBus.Error.Spawn.NoMemory"
|
||||||
|
/** Tried to get a UNIX process ID and it wasn't available. */
|
||||||
|
#define DBUS_ERROR_UNIX_PROCESS_ID_UNKNOWN "org.freedesktop.DBus.Error.UnixProcessIdUnknown"
|
||||||
|
/** A type signature is not valid. */
|
||||||
|
#define DBUS_ERROR_INVALID_SIGNATURE "org.freedesktop.DBus.Error.InvalidSignature"
|
||||||
|
/** A file contains invalid syntax or is otherwise broken. */
|
||||||
|
#define DBUS_ERROR_INVALID_FILE_CONTENT "org.freedesktop.DBus.Error.InvalidFileContent"
|
||||||
|
/** Asked for SELinux security context and it wasn't available. */
|
||||||
|
#define DBUS_ERROR_SELINUX_SECURITY_CONTEXT_UNKNOWN "org.freedesktop.DBus.Error.SELinuxSecurityContextUnknown"
|
||||||
|
/** Asked for ADT audit data and it wasn't available. */
|
||||||
|
#define DBUS_ERROR_ADT_AUDIT_DATA_UNKNOWN "org.freedesktop.DBus.Error.AdtAuditDataUnknown"
|
||||||
|
/** There's already an object with the requested object path. */
|
||||||
|
#define DBUS_ERROR_OBJECT_PATH_IN_USE "org.freedesktop.DBus.Error.ObjectPathInUse"
|
||||||
|
/** The message meta data does not match the payload. e.g. expected
|
||||||
|
number of file descriptors were not sent over the socket this message was received on. */
|
||||||
|
#define DBUS_ERROR_INCONSISTENT_MESSAGE "org.freedesktop.DBus.Error.InconsistentMessage"
|
||||||
|
/** The message is not allowed without performing interactive authorization,
|
||||||
|
* but could have succeeded if an interactive authorization step was
|
||||||
|
* allowed. */
|
||||||
|
#define DBUS_ERROR_INTERACTIVE_AUTHORIZATION_REQUIRED "org.freedesktop.DBus.Error.InteractiveAuthorizationRequired"
|
||||||
|
|
||||||
|
/* XML introspection format */
|
||||||
|
|
||||||
|
/** XML namespace of the introspection format version 1.0 */
|
||||||
|
#define DBUS_INTROSPECT_1_0_XML_NAMESPACE "http://www.freedesktop.org/standards/dbus"
|
||||||
|
/** XML public identifier of the introspection format version 1.0 */
|
||||||
|
#define DBUS_INTROSPECT_1_0_XML_PUBLIC_IDENTIFIER "-//freedesktop//DTD D-BUS Object Introspection 1.0//EN"
|
||||||
|
/** XML system identifier of the introspection format version 1.0 */
|
||||||
|
#define DBUS_INTROSPECT_1_0_XML_SYSTEM_IDENTIFIER "http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd"
|
||||||
|
/** XML document type declaration of the introspection format version 1.0 */
|
||||||
|
#define DBUS_INTROSPECT_1_0_XML_DOCTYPE_DECL_NODE "<!DOCTYPE node PUBLIC \"" DBUS_INTROSPECT_1_0_XML_PUBLIC_IDENTIFIER "\"\n\"" DBUS_INTROSPECT_1_0_XML_SYSTEM_IDENTIFIER "\">\n"
|
||||||
|
|
||||||
|
/** @} */
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
#if 0
|
||||||
|
{ /* avoids confusing emacs indentation */
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif /* DBUS_PROTOCOL_H */
|
106
code/application/source/sf_app/code/source/sf_blue/inc/dbus/dbus-server.h
Executable file
106
code/application/source/sf_app/code/source/sf_blue/inc/dbus/dbus-server.h
Executable file
|
@ -0,0 +1,106 @@
|
||||||
|
/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
|
||||||
|
/* dbus-server.h DBusServer object
|
||||||
|
*
|
||||||
|
* Copyright (C) 2002, 2003 Red Hat Inc.
|
||||||
|
*
|
||||||
|
* Licensed under the Academic Free License version 2.1
|
||||||
|
*
|
||||||
|
* This program is free software; you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation; either version 2 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 General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program; if not, write to the Free Software
|
||||||
|
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
#if !defined (DBUS_INSIDE_DBUS_H) && !defined (DBUS_COMPILATION)
|
||||||
|
#error "Only <dbus/dbus.h> can be included directly, this file may disappear or change contents."
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef DBUS_SERVER_H
|
||||||
|
#define DBUS_SERVER_H
|
||||||
|
|
||||||
|
#include <dbus/dbus-errors.h>
|
||||||
|
#include <dbus/dbus-message.h>
|
||||||
|
#include <dbus/dbus-connection.h>
|
||||||
|
#include <dbus/dbus-protocol.h>
|
||||||
|
|
||||||
|
DBUS_BEGIN_DECLS
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @addtogroup DBusServer
|
||||||
|
* @{
|
||||||
|
*/
|
||||||
|
|
||||||
|
typedef struct DBusServer DBusServer;
|
||||||
|
|
||||||
|
/** Called when a new connection to the server is available. Must reference and save the new
|
||||||
|
* connection, or close the new connection. Set with dbus_server_set_new_connection_function().
|
||||||
|
*/
|
||||||
|
typedef void (* DBusNewConnectionFunction) (DBusServer *server,
|
||||||
|
DBusConnection *new_connection,
|
||||||
|
void *data);
|
||||||
|
|
||||||
|
DBUS_EXPORT
|
||||||
|
DBusServer* dbus_server_listen (const char *address,
|
||||||
|
DBusError *error);
|
||||||
|
DBUS_EXPORT
|
||||||
|
DBusServer* dbus_server_ref (DBusServer *server);
|
||||||
|
DBUS_EXPORT
|
||||||
|
void dbus_server_unref (DBusServer *server);
|
||||||
|
DBUS_EXPORT
|
||||||
|
void dbus_server_disconnect (DBusServer *server);
|
||||||
|
DBUS_EXPORT
|
||||||
|
dbus_bool_t dbus_server_get_is_connected (DBusServer *server);
|
||||||
|
DBUS_EXPORT
|
||||||
|
char* dbus_server_get_address (DBusServer *server);
|
||||||
|
DBUS_EXPORT
|
||||||
|
char* dbus_server_get_id (DBusServer *server);
|
||||||
|
DBUS_EXPORT
|
||||||
|
void dbus_server_set_new_connection_function (DBusServer *server,
|
||||||
|
DBusNewConnectionFunction function,
|
||||||
|
void *data,
|
||||||
|
DBusFreeFunction free_data_function);
|
||||||
|
DBUS_EXPORT
|
||||||
|
dbus_bool_t dbus_server_set_watch_functions (DBusServer *server,
|
||||||
|
DBusAddWatchFunction add_function,
|
||||||
|
DBusRemoveWatchFunction remove_function,
|
||||||
|
DBusWatchToggledFunction toggled_function,
|
||||||
|
void *data,
|
||||||
|
DBusFreeFunction free_data_function);
|
||||||
|
DBUS_EXPORT
|
||||||
|
dbus_bool_t dbus_server_set_timeout_functions (DBusServer *server,
|
||||||
|
DBusAddTimeoutFunction add_function,
|
||||||
|
DBusRemoveTimeoutFunction remove_function,
|
||||||
|
DBusTimeoutToggledFunction toggled_function,
|
||||||
|
void *data,
|
||||||
|
DBusFreeFunction free_data_function);
|
||||||
|
DBUS_EXPORT
|
||||||
|
dbus_bool_t dbus_server_set_auth_mechanisms (DBusServer *server,
|
||||||
|
const char **mechanisms);
|
||||||
|
|
||||||
|
DBUS_EXPORT
|
||||||
|
dbus_bool_t dbus_server_allocate_data_slot (dbus_int32_t *slot_p);
|
||||||
|
DBUS_EXPORT
|
||||||
|
void dbus_server_free_data_slot (dbus_int32_t *slot_p);
|
||||||
|
DBUS_EXPORT
|
||||||
|
dbus_bool_t dbus_server_set_data (DBusServer *server,
|
||||||
|
int slot,
|
||||||
|
void *data,
|
||||||
|
DBusFreeFunction free_data_func);
|
||||||
|
DBUS_EXPORT
|
||||||
|
void* dbus_server_get_data (DBusServer *server,
|
||||||
|
int slot);
|
||||||
|
|
||||||
|
/** @} */
|
||||||
|
|
||||||
|
DBUS_END_DECLS
|
||||||
|
|
||||||
|
#endif /* DBUS_SERVER_H */
|
131
code/application/source/sf_app/code/source/sf_blue/inc/dbus/dbus-shared.h
Executable file
131
code/application/source/sf_app/code/source/sf_blue/inc/dbus/dbus-shared.h
Executable file
|
@ -0,0 +1,131 @@
|
||||||
|
/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
|
||||||
|
/* dbus-shared.h Stuff used by both dbus/dbus.h low-level and C/C++ binding APIs
|
||||||
|
*
|
||||||
|
* Copyright (C) 2004 Red Hat, Inc.
|
||||||
|
*
|
||||||
|
* Licensed under the Academic Free License version 2.1
|
||||||
|
*
|
||||||
|
* This program is free software; you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation; either version 2 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 General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program; if not, write to the Free Software
|
||||||
|
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef DBUS_SHARED_H
|
||||||
|
#define DBUS_SHARED_H
|
||||||
|
|
||||||
|
/* Don't include anything in here from anywhere else. It's
|
||||||
|
* intended for use by any random library.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#if 0
|
||||||
|
} /* avoids confusing emacs indentation */
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* Normally docs are in .c files, but there isn't a .c file for this. */
|
||||||
|
/**
|
||||||
|
* @defgroup DBusShared Shared constants
|
||||||
|
* @ingroup DBus
|
||||||
|
*
|
||||||
|
* @brief Shared header included by both libdbus and C/C++ bindings such as the GLib bindings.
|
||||||
|
*
|
||||||
|
* Usually a C/C++ binding such as the GLib or Qt binding won't want to include dbus.h in its
|
||||||
|
* public headers. However, a few constants and macros may be useful to include; those are
|
||||||
|
* found here and in dbus-protocol.h
|
||||||
|
*
|
||||||
|
* @{
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Well-known bus types. See dbus_bus_get().
|
||||||
|
*/
|
||||||
|
typedef enum
|
||||||
|
{
|
||||||
|
DBUS_BUS_SESSION, /**< The login session bus */
|
||||||
|
DBUS_BUS_SYSTEM, /**< The systemwide bus */
|
||||||
|
DBUS_BUS_STARTER /**< The bus that started us, if any */
|
||||||
|
} DBusBusType;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Results that a message handler can return.
|
||||||
|
*/
|
||||||
|
typedef enum
|
||||||
|
{
|
||||||
|
DBUS_HANDLER_RESULT_HANDLED, /**< Message has had its effect - no need to run more handlers. */
|
||||||
|
DBUS_HANDLER_RESULT_NOT_YET_HANDLED, /**< Message has not had any effect - see if other handlers want it. */
|
||||||
|
DBUS_HANDLER_RESULT_NEED_MEMORY /**< Need more memory in order to return #DBUS_HANDLER_RESULT_HANDLED or #DBUS_HANDLER_RESULT_NOT_YET_HANDLED. Please try again later with more memory. */
|
||||||
|
} DBusHandlerResult;
|
||||||
|
|
||||||
|
/* Bus names */
|
||||||
|
|
||||||
|
/** The bus name used to talk to the bus itself. */
|
||||||
|
#define DBUS_SERVICE_DBUS "org.freedesktop.DBus"
|
||||||
|
|
||||||
|
/* Paths */
|
||||||
|
/** The object path used to talk to the bus itself. */
|
||||||
|
#define DBUS_PATH_DBUS "/org/freedesktop/DBus"
|
||||||
|
/** The object path used in local/in-process-generated messages. */
|
||||||
|
#define DBUS_PATH_LOCAL "/org/freedesktop/DBus/Local"
|
||||||
|
|
||||||
|
/* Interfaces, these #define don't do much other than
|
||||||
|
* catch typos at compile time
|
||||||
|
*/
|
||||||
|
/** The interface exported by the object with #DBUS_SERVICE_DBUS and #DBUS_PATH_DBUS */
|
||||||
|
#define DBUS_INTERFACE_DBUS "org.freedesktop.DBus"
|
||||||
|
/** The interface supported by introspectable objects */
|
||||||
|
#define DBUS_INTERFACE_INTROSPECTABLE "org.freedesktop.DBus.Introspectable"
|
||||||
|
/** The interface supported by objects with properties */
|
||||||
|
#define DBUS_INTERFACE_PROPERTIES "org.freedesktop.DBus.Properties"
|
||||||
|
/** The interface supported by most dbus peers */
|
||||||
|
#define DBUS_INTERFACE_PEER "org.freedesktop.DBus.Peer"
|
||||||
|
|
||||||
|
/** This is a special interface whose methods can only be invoked
|
||||||
|
* by the local implementation (messages from remote apps aren't
|
||||||
|
* allowed to specify this interface).
|
||||||
|
*/
|
||||||
|
#define DBUS_INTERFACE_LOCAL "org.freedesktop.DBus.Local"
|
||||||
|
|
||||||
|
/* Owner flags */
|
||||||
|
#define DBUS_NAME_FLAG_ALLOW_REPLACEMENT 0x1 /**< Allow another service to become the primary owner if requested */
|
||||||
|
#define DBUS_NAME_FLAG_REPLACE_EXISTING 0x2 /**< Request to replace the current primary owner */
|
||||||
|
#define DBUS_NAME_FLAG_DO_NOT_QUEUE 0x4 /**< If we can not become the primary owner do not place us in the queue */
|
||||||
|
|
||||||
|
/* Replies to request for a name */
|
||||||
|
#define DBUS_REQUEST_NAME_REPLY_PRIMARY_OWNER 1 /**< Service has become the primary owner of the requested name */
|
||||||
|
#define DBUS_REQUEST_NAME_REPLY_IN_QUEUE 2 /**< Service could not become the primary owner and has been placed in the queue */
|
||||||
|
#define DBUS_REQUEST_NAME_REPLY_EXISTS 3 /**< Service is already in the queue */
|
||||||
|
#define DBUS_REQUEST_NAME_REPLY_ALREADY_OWNER 4 /**< Service is already the primary owner */
|
||||||
|
|
||||||
|
/* Replies to releasing a name */
|
||||||
|
#define DBUS_RELEASE_NAME_REPLY_RELEASED 1 /**< Service was released from the given name */
|
||||||
|
#define DBUS_RELEASE_NAME_REPLY_NON_EXISTENT 2 /**< The given name does not exist on the bus */
|
||||||
|
#define DBUS_RELEASE_NAME_REPLY_NOT_OWNER 3 /**< Service is not an owner of the given name */
|
||||||
|
|
||||||
|
/* Replies to service starts */
|
||||||
|
#define DBUS_START_REPLY_SUCCESS 1 /**< Service was auto started */
|
||||||
|
#define DBUS_START_REPLY_ALREADY_RUNNING 2 /**< Service was already running */
|
||||||
|
|
||||||
|
/** @} */
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
#if 0
|
||||||
|
{ /* avoids confusing emacs indentation */
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif /* DBUS_SHARED_H */
|
95
code/application/source/sf_app/code/source/sf_blue/inc/dbus/dbus-signature.h
Executable file
95
code/application/source/sf_app/code/source/sf_blue/inc/dbus/dbus-signature.h
Executable file
|
@ -0,0 +1,95 @@
|
||||||
|
/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
|
||||||
|
/* dbus-signatures.h utility functions for D-Bus types
|
||||||
|
*
|
||||||
|
* Copyright (C) 2005 Red Hat Inc.
|
||||||
|
*
|
||||||
|
* Licensed under the Academic Free License version 2.1
|
||||||
|
*
|
||||||
|
* This program is free software; you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation; either version 2 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 General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program; if not, write to the Free Software
|
||||||
|
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
#if !defined (DBUS_INSIDE_DBUS_H) && !defined (DBUS_COMPILATION)
|
||||||
|
#error "Only <dbus/dbus.h> can be included directly, this file may disappear or change contents."
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef DBUS_SIGNATURES_H
|
||||||
|
#define DBUS_SIGNATURES_H
|
||||||
|
|
||||||
|
#include <dbus/dbus-macros.h>
|
||||||
|
#include <dbus/dbus-types.h>
|
||||||
|
#include <dbus/dbus-errors.h>
|
||||||
|
|
||||||
|
DBUS_BEGIN_DECLS
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @addtogroup DBusSignature
|
||||||
|
* @{
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* DBusSignatureIter struct; contains no public fields
|
||||||
|
*/
|
||||||
|
typedef struct
|
||||||
|
{
|
||||||
|
void *dummy1; /**< Don't use this */
|
||||||
|
void *dummy2; /**< Don't use this */
|
||||||
|
dbus_uint32_t dummy8; /**< Don't use this */
|
||||||
|
int dummy12; /**< Don't use this */
|
||||||
|
int dummy17; /**< Don't use this */
|
||||||
|
} DBusSignatureIter;
|
||||||
|
|
||||||
|
DBUS_EXPORT
|
||||||
|
void dbus_signature_iter_init (DBusSignatureIter *iter,
|
||||||
|
const char *signature);
|
||||||
|
|
||||||
|
DBUS_EXPORT
|
||||||
|
int dbus_signature_iter_get_current_type (const DBusSignatureIter *iter);
|
||||||
|
|
||||||
|
DBUS_EXPORT
|
||||||
|
char * dbus_signature_iter_get_signature (const DBusSignatureIter *iter);
|
||||||
|
|
||||||
|
DBUS_EXPORT
|
||||||
|
int dbus_signature_iter_get_element_type (const DBusSignatureIter *iter);
|
||||||
|
|
||||||
|
DBUS_EXPORT
|
||||||
|
dbus_bool_t dbus_signature_iter_next (DBusSignatureIter *iter);
|
||||||
|
|
||||||
|
DBUS_EXPORT
|
||||||
|
void dbus_signature_iter_recurse (const DBusSignatureIter *iter,
|
||||||
|
DBusSignatureIter *subiter);
|
||||||
|
|
||||||
|
DBUS_EXPORT
|
||||||
|
dbus_bool_t dbus_signature_validate (const char *signature,
|
||||||
|
DBusError *error);
|
||||||
|
|
||||||
|
DBUS_EXPORT
|
||||||
|
dbus_bool_t dbus_signature_validate_single (const char *signature,
|
||||||
|
DBusError *error);
|
||||||
|
|
||||||
|
DBUS_EXPORT
|
||||||
|
dbus_bool_t dbus_type_is_valid (int typecode);
|
||||||
|
|
||||||
|
DBUS_EXPORT
|
||||||
|
dbus_bool_t dbus_type_is_basic (int typecode);
|
||||||
|
DBUS_EXPORT
|
||||||
|
dbus_bool_t dbus_type_is_container (int typecode);
|
||||||
|
DBUS_EXPORT
|
||||||
|
dbus_bool_t dbus_type_is_fixed (int typecode);
|
||||||
|
|
||||||
|
/** @} */
|
||||||
|
|
||||||
|
DBUS_END_DECLS
|
||||||
|
|
||||||
|
#endif /* DBUS_SIGNATURE_H */
|
58
code/application/source/sf_app/code/source/sf_blue/inc/dbus/dbus-syntax.h
Executable file
58
code/application/source/sf_app/code/source/sf_blue/inc/dbus/dbus-syntax.h
Executable file
|
@ -0,0 +1,58 @@
|
||||||
|
/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
|
||||||
|
/* dbus-syntax.h - utility functions for strings with special syntax
|
||||||
|
*
|
||||||
|
* Author: Simon McVittie <simon.mcvittie@collabora.co.uk>
|
||||||
|
* Copyright © 2011 Nokia Corporation
|
||||||
|
*
|
||||||
|
* Licensed under the Academic Free License version 2.1
|
||||||
|
*
|
||||||
|
* This program is free software; you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation; either version 2 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 General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program; if not, write to the Free Software
|
||||||
|
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
#if !defined (DBUS_INSIDE_DBUS_H) && !defined (DBUS_COMPILATION)
|
||||||
|
#error "Only <dbus/dbus.h> can be included directly, this file may disappear or change contents."
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef DBUS_SYNTAX_H
|
||||||
|
#define DBUS_SYNTAX_H
|
||||||
|
|
||||||
|
#include <dbus/dbus-macros.h>
|
||||||
|
#include <dbus/dbus-types.h>
|
||||||
|
#include <dbus/dbus-errors.h>
|
||||||
|
|
||||||
|
DBUS_BEGIN_DECLS
|
||||||
|
|
||||||
|
DBUS_EXPORT
|
||||||
|
dbus_bool_t dbus_validate_path (const char *path,
|
||||||
|
DBusError *error);
|
||||||
|
DBUS_EXPORT
|
||||||
|
dbus_bool_t dbus_validate_interface (const char *name,
|
||||||
|
DBusError *error);
|
||||||
|
DBUS_EXPORT
|
||||||
|
dbus_bool_t dbus_validate_member (const char *name,
|
||||||
|
DBusError *error);
|
||||||
|
DBUS_EXPORT
|
||||||
|
dbus_bool_t dbus_validate_error_name (const char *name,
|
||||||
|
DBusError *error);
|
||||||
|
DBUS_EXPORT
|
||||||
|
dbus_bool_t dbus_validate_bus_name (const char *name,
|
||||||
|
DBusError *error);
|
||||||
|
DBUS_EXPORT
|
||||||
|
dbus_bool_t dbus_validate_utf8 (const char *alleged_utf8,
|
||||||
|
DBusError *error);
|
||||||
|
|
||||||
|
DBUS_END_DECLS
|
||||||
|
|
||||||
|
#endif /* multiple-inclusion guard */
|
189
code/application/source/sf_app/code/source/sf_blue/inc/dbus/dbus-threads.h
Executable file
189
code/application/source/sf_app/code/source/sf_blue/inc/dbus/dbus-threads.h
Executable file
|
@ -0,0 +1,189 @@
|
||||||
|
/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
|
||||||
|
/* dbus-threads.h D-Bus threads handling
|
||||||
|
*
|
||||||
|
* Copyright (C) 2002 Red Hat Inc.
|
||||||
|
*
|
||||||
|
* Licensed under the Academic Free License version 2.1
|
||||||
|
*
|
||||||
|
* This program is free software; you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation; either version 2 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 General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program; if not, write to the Free Software
|
||||||
|
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
#if !defined (DBUS_INSIDE_DBUS_H) && !defined (DBUS_COMPILATION)
|
||||||
|
#error "Only <dbus/dbus.h> can be included directly, this file may disappear or change contents."
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef DBUS_THREADS_H
|
||||||
|
#define DBUS_THREADS_H
|
||||||
|
|
||||||
|
#include <dbus/dbus-macros.h>
|
||||||
|
#include <dbus/dbus-types.h>
|
||||||
|
|
||||||
|
DBUS_BEGIN_DECLS
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @addtogroup DBusThreads
|
||||||
|
* @{
|
||||||
|
*/
|
||||||
|
|
||||||
|
/** An opaque mutex type provided by the #DBusThreadFunctions implementation installed by dbus_threads_init(). */
|
||||||
|
typedef struct DBusMutex DBusMutex;
|
||||||
|
/** An opaque condition variable type provided by the #DBusThreadFunctions implementation installed by dbus_threads_init(). */
|
||||||
|
typedef struct DBusCondVar DBusCondVar;
|
||||||
|
|
||||||
|
/** Deprecated, provide DBusRecursiveMutexNewFunction instead. */
|
||||||
|
typedef DBusMutex* (* DBusMutexNewFunction) (void);
|
||||||
|
/** Deprecated, provide DBusRecursiveMutexFreeFunction instead. */
|
||||||
|
typedef void (* DBusMutexFreeFunction) (DBusMutex *mutex);
|
||||||
|
/** Deprecated, provide DBusRecursiveMutexLockFunction instead. Return value is lock success, but gets ignored in practice. */
|
||||||
|
typedef dbus_bool_t (* DBusMutexLockFunction) (DBusMutex *mutex);
|
||||||
|
/** Deprecated, provide DBusRecursiveMutexUnlockFunction instead. Return value is unlock success, but gets ignored in practice. */
|
||||||
|
typedef dbus_bool_t (* DBusMutexUnlockFunction) (DBusMutex *mutex);
|
||||||
|
|
||||||
|
/** Creates a new recursively-lockable mutex, or returns #NULL if not
|
||||||
|
* enough memory. Can only fail due to lack of memory. Found in
|
||||||
|
* #DBusThreadFunctions. Do not just use PTHREAD_MUTEX_RECURSIVE for
|
||||||
|
* this, because it does not save/restore the recursion count when
|
||||||
|
* waiting on a condition. libdbus requires the Java-style behavior
|
||||||
|
* where the mutex is fully unlocked to wait on a condition.
|
||||||
|
*/
|
||||||
|
typedef DBusMutex* (* DBusRecursiveMutexNewFunction) (void);
|
||||||
|
/** Frees a recursively-lockable mutex. Found in #DBusThreadFunctions.
|
||||||
|
*/
|
||||||
|
typedef void (* DBusRecursiveMutexFreeFunction) (DBusMutex *mutex);
|
||||||
|
/** Locks a recursively-lockable mutex. Found in #DBusThreadFunctions.
|
||||||
|
* Can only fail due to lack of memory.
|
||||||
|
*/
|
||||||
|
typedef void (* DBusRecursiveMutexLockFunction) (DBusMutex *mutex);
|
||||||
|
/** Unlocks a recursively-lockable mutex. Found in #DBusThreadFunctions.
|
||||||
|
* Can only fail due to lack of memory.
|
||||||
|
*/
|
||||||
|
typedef void (* DBusRecursiveMutexUnlockFunction) (DBusMutex *mutex);
|
||||||
|
|
||||||
|
/** Creates a new condition variable. Found in #DBusThreadFunctions.
|
||||||
|
* Can only fail (returning #NULL) due to lack of memory.
|
||||||
|
*/
|
||||||
|
typedef DBusCondVar* (* DBusCondVarNewFunction) (void);
|
||||||
|
/** Frees a condition variable. Found in #DBusThreadFunctions.
|
||||||
|
*/
|
||||||
|
typedef void (* DBusCondVarFreeFunction) (DBusCondVar *cond);
|
||||||
|
|
||||||
|
/** Waits on a condition variable. Found in
|
||||||
|
* #DBusThreadFunctions. Must work with either a recursive or
|
||||||
|
* nonrecursive mutex, whichever the thread implementation
|
||||||
|
* provides. Note that PTHREAD_MUTEX_RECURSIVE does not work with
|
||||||
|
* condition variables (does not save/restore the recursion count) so
|
||||||
|
* don't try using simply pthread_cond_wait() and a
|
||||||
|
* PTHREAD_MUTEX_RECURSIVE to implement this, it won't work right.
|
||||||
|
*
|
||||||
|
* Has no error conditions. Must succeed if it returns.
|
||||||
|
*/
|
||||||
|
typedef void (* DBusCondVarWaitFunction) (DBusCondVar *cond,
|
||||||
|
DBusMutex *mutex);
|
||||||
|
|
||||||
|
/** Waits on a condition variable with a timeout. Found in
|
||||||
|
* #DBusThreadFunctions. Returns #TRUE if the wait did not
|
||||||
|
* time out, and #FALSE if it did.
|
||||||
|
*
|
||||||
|
* Has no error conditions. Must succeed if it returns.
|
||||||
|
*/
|
||||||
|
typedef dbus_bool_t (* DBusCondVarWaitTimeoutFunction) (DBusCondVar *cond,
|
||||||
|
DBusMutex *mutex,
|
||||||
|
int timeout_milliseconds);
|
||||||
|
/** Wakes one waiting thread on a condition variable. Found in #DBusThreadFunctions.
|
||||||
|
*
|
||||||
|
* Has no error conditions. Must succeed if it returns.
|
||||||
|
*/
|
||||||
|
typedef void (* DBusCondVarWakeOneFunction) (DBusCondVar *cond);
|
||||||
|
|
||||||
|
/** Wakes all waiting threads on a condition variable. Found in #DBusThreadFunctions.
|
||||||
|
*
|
||||||
|
* Has no error conditions. Must succeed if it returns.
|
||||||
|
*/
|
||||||
|
typedef void (* DBusCondVarWakeAllFunction) (DBusCondVar *cond);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Flags indicating which functions are present in #DBusThreadFunctions. Used to allow
|
||||||
|
* the library to detect older callers of dbus_threads_init() if new possible functions
|
||||||
|
* are added to #DBusThreadFunctions.
|
||||||
|
*/
|
||||||
|
typedef enum
|
||||||
|
{
|
||||||
|
DBUS_THREAD_FUNCTIONS_MUTEX_NEW_MASK = 1 << 0,
|
||||||
|
DBUS_THREAD_FUNCTIONS_MUTEX_FREE_MASK = 1 << 1,
|
||||||
|
DBUS_THREAD_FUNCTIONS_MUTEX_LOCK_MASK = 1 << 2,
|
||||||
|
DBUS_THREAD_FUNCTIONS_MUTEX_UNLOCK_MASK = 1 << 3,
|
||||||
|
DBUS_THREAD_FUNCTIONS_CONDVAR_NEW_MASK = 1 << 4,
|
||||||
|
DBUS_THREAD_FUNCTIONS_CONDVAR_FREE_MASK = 1 << 5,
|
||||||
|
DBUS_THREAD_FUNCTIONS_CONDVAR_WAIT_MASK = 1 << 6,
|
||||||
|
DBUS_THREAD_FUNCTIONS_CONDVAR_WAIT_TIMEOUT_MASK = 1 << 7,
|
||||||
|
DBUS_THREAD_FUNCTIONS_CONDVAR_WAKE_ONE_MASK = 1 << 8,
|
||||||
|
DBUS_THREAD_FUNCTIONS_CONDVAR_WAKE_ALL_MASK = 1 << 9,
|
||||||
|
DBUS_THREAD_FUNCTIONS_RECURSIVE_MUTEX_NEW_MASK = 1 << 10,
|
||||||
|
DBUS_THREAD_FUNCTIONS_RECURSIVE_MUTEX_FREE_MASK = 1 << 11,
|
||||||
|
DBUS_THREAD_FUNCTIONS_RECURSIVE_MUTEX_LOCK_MASK = 1 << 12,
|
||||||
|
DBUS_THREAD_FUNCTIONS_RECURSIVE_MUTEX_UNLOCK_MASK = 1 << 13,
|
||||||
|
DBUS_THREAD_FUNCTIONS_ALL_MASK = (1 << 14) - 1
|
||||||
|
} DBusThreadFunctionsMask;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Functions that must be implemented to make the D-Bus library
|
||||||
|
* thread-aware.
|
||||||
|
*
|
||||||
|
* If you supply both recursive and non-recursive mutexes,
|
||||||
|
* libdbus will use the non-recursive version for condition variables,
|
||||||
|
* and the recursive version in other contexts.
|
||||||
|
*
|
||||||
|
* The condition variable functions have to work with nonrecursive
|
||||||
|
* mutexes if you provide those, or with recursive mutexes if you
|
||||||
|
* don't.
|
||||||
|
*/
|
||||||
|
typedef struct
|
||||||
|
{
|
||||||
|
unsigned int mask; /**< Mask indicating which functions are present. */
|
||||||
|
|
||||||
|
DBusMutexNewFunction mutex_new; /**< Function to create a mutex; optional and deprecated. */
|
||||||
|
DBusMutexFreeFunction mutex_free; /**< Function to free a mutex; optional and deprecated. */
|
||||||
|
DBusMutexLockFunction mutex_lock; /**< Function to lock a mutex; optional and deprecated. */
|
||||||
|
DBusMutexUnlockFunction mutex_unlock; /**< Function to unlock a mutex; optional and deprecated. */
|
||||||
|
|
||||||
|
DBusCondVarNewFunction condvar_new; /**< Function to create a condition variable */
|
||||||
|
DBusCondVarFreeFunction condvar_free; /**< Function to free a condition variable */
|
||||||
|
DBusCondVarWaitFunction condvar_wait; /**< Function to wait on a condition */
|
||||||
|
DBusCondVarWaitTimeoutFunction condvar_wait_timeout; /**< Function to wait on a condition with a timeout */
|
||||||
|
DBusCondVarWakeOneFunction condvar_wake_one; /**< Function to wake one thread waiting on the condition */
|
||||||
|
DBusCondVarWakeAllFunction condvar_wake_all; /**< Function to wake all threads waiting on the condition */
|
||||||
|
|
||||||
|
DBusRecursiveMutexNewFunction recursive_mutex_new; /**< Function to create a recursive mutex */
|
||||||
|
DBusRecursiveMutexFreeFunction recursive_mutex_free; /**< Function to free a recursive mutex */
|
||||||
|
DBusRecursiveMutexLockFunction recursive_mutex_lock; /**< Function to lock a recursive mutex */
|
||||||
|
DBusRecursiveMutexUnlockFunction recursive_mutex_unlock; /**< Function to unlock a recursive mutex */
|
||||||
|
|
||||||
|
void (* padding1) (void); /**< Reserved for future expansion */
|
||||||
|
void (* padding2) (void); /**< Reserved for future expansion */
|
||||||
|
void (* padding3) (void); /**< Reserved for future expansion */
|
||||||
|
void (* padding4) (void); /**< Reserved for future expansion */
|
||||||
|
|
||||||
|
} DBusThreadFunctions;
|
||||||
|
|
||||||
|
DBUS_EXPORT
|
||||||
|
dbus_bool_t dbus_threads_init (const DBusThreadFunctions *functions);
|
||||||
|
DBUS_EXPORT
|
||||||
|
dbus_bool_t dbus_threads_init_default (void);
|
||||||
|
|
||||||
|
/** @} */
|
||||||
|
|
||||||
|
DBUS_END_DECLS
|
||||||
|
|
||||||
|
#endif /* DBUS_THREADS_H */
|
156
code/application/source/sf_app/code/source/sf_blue/inc/dbus/dbus-types.h
Executable file
156
code/application/source/sf_app/code/source/sf_blue/inc/dbus/dbus-types.h
Executable file
|
@ -0,0 +1,156 @@
|
||||||
|
/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
|
||||||
|
/* dbus-types.h types such as dbus_bool_t
|
||||||
|
*
|
||||||
|
* Copyright (C) 2002 Red Hat Inc.
|
||||||
|
*
|
||||||
|
* Licensed under the Academic Free License version 2.1
|
||||||
|
*
|
||||||
|
* This program is free software; you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation; either version 2 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 General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program; if not, write to the Free Software
|
||||||
|
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
#if !defined (DBUS_INSIDE_DBUS_H) && !defined (DBUS_COMPILATION)
|
||||||
|
#error "Only <dbus/dbus.h> can be included directly, this file may disappear or change contents."
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef DBUS_TYPES_H
|
||||||
|
#define DBUS_TYPES_H
|
||||||
|
|
||||||
|
#include <stddef.h>
|
||||||
|
#include <dbus/dbus-arch-deps.h>
|
||||||
|
|
||||||
|
typedef dbus_uint32_t dbus_unichar_t;
|
||||||
|
/* boolean size must be fixed at 4 bytes due to wire protocol! */
|
||||||
|
typedef dbus_uint32_t dbus_bool_t;
|
||||||
|
|
||||||
|
/* Normally docs are in .c files, but there isn't a .c file for this. */
|
||||||
|
/**
|
||||||
|
* @defgroup DBusTypes Basic types
|
||||||
|
* @ingroup DBus
|
||||||
|
* @brief dbus_bool_t, dbus_int32_t, etc.
|
||||||
|
*
|
||||||
|
* Typedefs for common primitive types.
|
||||||
|
*
|
||||||
|
* @{
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @typedef dbus_bool_t
|
||||||
|
*
|
||||||
|
* A boolean, valid values are #TRUE and #FALSE.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @typedef dbus_uint32_t
|
||||||
|
*
|
||||||
|
* A 32-bit unsigned integer on all platforms.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @typedef dbus_int32_t
|
||||||
|
*
|
||||||
|
* A 32-bit signed integer on all platforms.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @typedef dbus_uint16_t
|
||||||
|
*
|
||||||
|
* A 16-bit unsigned integer on all platforms.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @typedef dbus_int16_t
|
||||||
|
*
|
||||||
|
* A 16-bit signed integer on all platforms.
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @typedef dbus_uint64_t
|
||||||
|
*
|
||||||
|
* A 64-bit unsigned integer.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @typedef dbus_int64_t
|
||||||
|
*
|
||||||
|
* A 64-bit signed integer.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @def DBUS_HAVE_INT64
|
||||||
|
*
|
||||||
|
* Always defined.
|
||||||
|
*
|
||||||
|
* In older libdbus versions, this would be undefined if there was no
|
||||||
|
* 64-bit integer type on that platform. libdbus no longer supports
|
||||||
|
* such platforms.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @def DBUS_INT64_CONSTANT
|
||||||
|
*
|
||||||
|
* Declare a 64-bit signed integer constant. The macro
|
||||||
|
* adds the necessary "LL" or whatever after the integer,
|
||||||
|
* giving a literal such as "325145246765LL"
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @def DBUS_UINT64_CONSTANT
|
||||||
|
*
|
||||||
|
* Declare a 64-bit unsigned integer constant. The macro
|
||||||
|
* adds the necessary "ULL" or whatever after the integer,
|
||||||
|
* giving a literal such as "325145246765ULL"
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* An 8-byte struct you could use to access int64 without having
|
||||||
|
* int64 support. Use #dbus_int64_t or #dbus_uint64_t instead.
|
||||||
|
*/
|
||||||
|
typedef struct
|
||||||
|
{
|
||||||
|
dbus_uint32_t first32; /**< first 32 bits in the 8 bytes (beware endian issues) */
|
||||||
|
dbus_uint32_t second32; /**< second 32 bits in the 8 bytes (beware endian issues) */
|
||||||
|
} DBus8ByteStruct;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A simple value union that lets you access bytes as if they
|
||||||
|
* were various types; useful when dealing with basic types via
|
||||||
|
* void pointers and varargs.
|
||||||
|
*
|
||||||
|
* This union also contains a pointer member (which can be used
|
||||||
|
* to retrieve a string from dbus_message_iter_get_basic(), for
|
||||||
|
* instance), so on future platforms it could conceivably be larger
|
||||||
|
* than 8 bytes.
|
||||||
|
*/
|
||||||
|
typedef union
|
||||||
|
{
|
||||||
|
unsigned char bytes[8]; /**< as 8 individual bytes */
|
||||||
|
dbus_int16_t i16; /**< as int16 */
|
||||||
|
dbus_uint16_t u16; /**< as int16 */
|
||||||
|
dbus_int32_t i32; /**< as int32 */
|
||||||
|
dbus_uint32_t u32; /**< as int32 */
|
||||||
|
dbus_bool_t bool_val; /**< as boolean */
|
||||||
|
dbus_int64_t i64; /**< as int64 */
|
||||||
|
dbus_uint64_t u64; /**< as int64 */
|
||||||
|
DBus8ByteStruct eight; /**< as 8-byte struct */
|
||||||
|
double dbl; /**< as double */
|
||||||
|
unsigned char byt; /**< as byte */
|
||||||
|
char *str; /**< as char* (string, object path or signature) */
|
||||||
|
int fd; /**< as Unix file descriptor */
|
||||||
|
} DBusBasicValue;
|
||||||
|
|
||||||
|
/** @} */
|
||||||
|
|
||||||
|
#endif /* DBUS_TYPES_H */
|
104
code/application/source/sf_app/code/source/sf_blue/inc/dbus/dbus.h
Executable file
104
code/application/source/sf_app/code/source/sf_blue/inc/dbus/dbus.h
Executable file
|
@ -0,0 +1,104 @@
|
||||||
|
/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
|
||||||
|
/* dbus.h Convenience header including all other headers
|
||||||
|
*
|
||||||
|
* Copyright (C) 2002, 2003 Red Hat Inc.
|
||||||
|
*
|
||||||
|
* Licensed under the Academic Free License version 2.1
|
||||||
|
*
|
||||||
|
* This program is free software; you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation; either version 2 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 General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program; if not, write to the Free Software
|
||||||
|
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef DBUS_H
|
||||||
|
#define DBUS_H
|
||||||
|
|
||||||
|
#define DBUS_INSIDE_DBUS_H 1
|
||||||
|
|
||||||
|
#include <dbus/dbus-arch-deps.h>
|
||||||
|
#include <dbus/dbus-address.h>
|
||||||
|
#include <dbus/dbus-bus.h>
|
||||||
|
#include <dbus/dbus-connection.h>
|
||||||
|
#include <dbus/dbus-errors.h>
|
||||||
|
#include <dbus/dbus-macros.h>
|
||||||
|
#include <dbus/dbus-message.h>
|
||||||
|
#include <dbus/dbus-misc.h>
|
||||||
|
#include <dbus/dbus-pending-call.h>
|
||||||
|
#include <dbus/dbus-protocol.h>
|
||||||
|
#include <dbus/dbus-server.h>
|
||||||
|
#include <dbus/dbus-shared.h>
|
||||||
|
#include <dbus/dbus-signature.h>
|
||||||
|
#include <dbus/dbus-syntax.h>
|
||||||
|
#include <dbus/dbus-threads.h>
|
||||||
|
#include <dbus/dbus-types.h>
|
||||||
|
|
||||||
|
#undef DBUS_INSIDE_DBUS_H
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @defgroup DBus D-Bus low-level public API
|
||||||
|
* @brief The low-level public API of the D-Bus library
|
||||||
|
*
|
||||||
|
* libdbus provides a low-level C API intended primarily for use by
|
||||||
|
* bindings to specific object systems and languages. D-Bus is most
|
||||||
|
* convenient when used with the GLib bindings, Python bindings, Qt
|
||||||
|
* bindings, Mono bindings, and so forth. This low-level API has a
|
||||||
|
* lot of complexity useful only for bindings.
|
||||||
|
*
|
||||||
|
* @{
|
||||||
|
*/
|
||||||
|
|
||||||
|
/** @} */
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @mainpage
|
||||||
|
*
|
||||||
|
* This manual documents the <em>low-level</em> D-Bus C API. <b>If you use
|
||||||
|
* this low-level API directly, you're signing up for some pain.</b>
|
||||||
|
*
|
||||||
|
* Caveats aside, you might get started learning the low-level API by reading
|
||||||
|
* about @ref DBusConnection and @ref DBusMessage.
|
||||||
|
*
|
||||||
|
* There are several other places to look for D-Bus information, such
|
||||||
|
* as the tutorial and the specification; those can be found at <a
|
||||||
|
* href="http://www.freedesktop.org/wiki/Software/dbus">the D-Bus
|
||||||
|
* website</a>. If you're interested in a sysadmin or package
|
||||||
|
* maintainer's perspective on the dbus-daemon itself and its
|
||||||
|
* configuration, be sure to check out the man pages as well.
|
||||||
|
*
|
||||||
|
* The low-level API documented in this manual deliberately lacks
|
||||||
|
* most convenience functions - those are left up to higher-level libraries
|
||||||
|
* based on frameworks such as GLib, Qt, Python, Mono, Java,
|
||||||
|
* etc. These higher-level libraries (often called "D-Bus bindings")
|
||||||
|
* have features such as object systems and main loops that allow a
|
||||||
|
* <em>much</em> more convenient API.
|
||||||
|
*
|
||||||
|
* The low-level API also contains plenty of clutter to support
|
||||||
|
* integration with arbitrary object systems, languages, main loops,
|
||||||
|
* and so forth. These features add a lot of noise to the API that you
|
||||||
|
* probably don't care about unless you're coding a binding.
|
||||||
|
*
|
||||||
|
* This manual also contains docs for @ref DBusInternals "D-Bus internals",
|
||||||
|
* so you can use it to get oriented to the D-Bus source code if you're
|
||||||
|
* interested in patching the code. You should also read the
|
||||||
|
* file HACKING which comes with the source code if you plan to contribute to
|
||||||
|
* D-Bus.
|
||||||
|
*
|
||||||
|
* As you read the code, you can identify internal D-Bus functions
|
||||||
|
* because they start with an underscore ('_') character. Also, any
|
||||||
|
* identifier or macro that lacks a DBus, dbus_, or DBUS_ namepace
|
||||||
|
* prefix is internal, with a couple of exceptions such as #NULL,
|
||||||
|
* #TRUE, and #FALSE.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#endif /* DBUS_H */
|
42
code/application/source/sf_app/code/source/sf_blue/inc/glib/glib-object.h
Executable file
42
code/application/source/sf_app/code/source/sf_blue/inc/glib/glib-object.h
Executable file
|
@ -0,0 +1,42 @@
|
||||||
|
/* GObject - GLib Type, Object, Parameter and Signal Library
|
||||||
|
* Copyright (C) 1998, 1999, 2000 Tim Janik and Red Hat, Inc.
|
||||||
|
*
|
||||||
|
* This library 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 of the License, or (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This library 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 this library; if not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
#ifndef __GLIB_GOBJECT_H__
|
||||||
|
#define __GLIB_GOBJECT_H__
|
||||||
|
|
||||||
|
#define __GLIB_GOBJECT_H_INSIDE__
|
||||||
|
|
||||||
|
/* topmost include file for GObject header files */
|
||||||
|
#include <gobject/gbinding.h>
|
||||||
|
#include <gobject/gboxed.h>
|
||||||
|
#include <gobject/genums.h>
|
||||||
|
#include <gobject/gobject.h>
|
||||||
|
#include <gobject/gparam.h>
|
||||||
|
#include <gobject/gparamspecs.h>
|
||||||
|
#include <gobject/gsignal.h>
|
||||||
|
#include <gobject/gsourceclosure.h>
|
||||||
|
#include <gobject/gtype.h>
|
||||||
|
#include <gobject/gtypemodule.h>
|
||||||
|
#include <gobject/gtypeplugin.h>
|
||||||
|
#include <gobject/gvalue.h>
|
||||||
|
#include <gobject/gvaluearray.h>
|
||||||
|
#include <gobject/gvaluetypes.h>
|
||||||
|
|
||||||
|
#include <gobject/gobject-autocleanups.h>
|
||||||
|
|
||||||
|
#undef __GLIB_GOBJECT_H_INSIDE__
|
||||||
|
|
||||||
|
#endif /* __GLIB_GOBJECT_H__ */
|
119
code/application/source/sf_app/code/source/sf_blue/inc/glib/glib-unix.h
Executable file
119
code/application/source/sf_app/code/source/sf_blue/inc/glib/glib-unix.h
Executable file
|
@ -0,0 +1,119 @@
|
||||||
|
/* glib-unix.h - Unix specific integration
|
||||||
|
* Copyright (C) 2011 Red Hat, Inc.
|
||||||
|
*
|
||||||
|
* This library is free software; you can redistribute it and/or
|
||||||
|
* modify it under the terms of the GNU Library General Public
|
||||||
|
* License as published by the Free Software Foundation; either
|
||||||
|
* version 2 of the License, or (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This library 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
|
||||||
|
* Library General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU Library General Public
|
||||||
|
* License along with this library; if not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef __G_UNIX_H__
|
||||||
|
#define __G_UNIX_H__
|
||||||
|
|
||||||
|
/* We need to include the UNIX headers needed to use the APIs below,
|
||||||
|
* but we also take this opportunity to include a wide selection of
|
||||||
|
* other UNIX headers. If one of the headers below is broken on some
|
||||||
|
* system, work around it here (or better, fix the system or tell
|
||||||
|
* people to use a better one).
|
||||||
|
*/
|
||||||
|
#include <unistd.h>
|
||||||
|
#include <errno.h>
|
||||||
|
#include <sys/wait.h>
|
||||||
|
#include <stdlib.h>
|
||||||
|
#include <fcntl.h>
|
||||||
|
|
||||||
|
#include <glib.h>
|
||||||
|
|
||||||
|
#ifndef G_OS_UNIX
|
||||||
|
#error "This header may only be used on UNIX"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
G_BEGIN_DECLS
|
||||||
|
|
||||||
|
/**
|
||||||
|
* G_UNIX_ERROR:
|
||||||
|
*
|
||||||
|
* Error domain for API in the g_unix_ namespace. Note that there is no
|
||||||
|
* exported enumeration mapping %errno. Instead, all functions ensure that
|
||||||
|
* %errno is relevant. The code for all #G_UNIX_ERROR is always 0, and the
|
||||||
|
* error message is always generated via g_strerror().
|
||||||
|
*
|
||||||
|
* It is expected that most code will not look at %errno from these APIs.
|
||||||
|
* Important cases where one would want to differentiate between errors are
|
||||||
|
* already covered by existing cross-platform GLib API, such as e.g. #GFile
|
||||||
|
* wrapping `ENOENT`. However, it is provided for completeness, at least.
|
||||||
|
*/
|
||||||
|
#define G_UNIX_ERROR (g_unix_error_quark())
|
||||||
|
|
||||||
|
GLIB_AVAILABLE_IN_2_30
|
||||||
|
GQuark g_unix_error_quark (void);
|
||||||
|
|
||||||
|
GLIB_AVAILABLE_IN_2_30
|
||||||
|
gboolean g_unix_open_pipe (gint *fds,
|
||||||
|
gint flags,
|
||||||
|
GError **error);
|
||||||
|
|
||||||
|
GLIB_AVAILABLE_IN_2_30
|
||||||
|
gboolean g_unix_set_fd_nonblocking (gint fd,
|
||||||
|
gboolean nonblock,
|
||||||
|
GError **error);
|
||||||
|
|
||||||
|
GLIB_AVAILABLE_IN_2_30
|
||||||
|
GSource *g_unix_signal_source_new (gint signum);
|
||||||
|
|
||||||
|
GLIB_AVAILABLE_IN_2_30
|
||||||
|
guint g_unix_signal_add_full (gint priority,
|
||||||
|
gint signum,
|
||||||
|
GSourceFunc handler,
|
||||||
|
gpointer user_data,
|
||||||
|
GDestroyNotify notify);
|
||||||
|
|
||||||
|
GLIB_AVAILABLE_IN_2_30
|
||||||
|
guint g_unix_signal_add (gint signum,
|
||||||
|
GSourceFunc handler,
|
||||||
|
gpointer user_data);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* GUnixFDSourceFunc:
|
||||||
|
* @fd: the fd that triggered the event
|
||||||
|
* @condition: the IO conditions reported on @fd
|
||||||
|
* @user_data: user data passed to g_unix_fd_add()
|
||||||
|
*
|
||||||
|
* The type of functions to be called when a UNIX fd watch source
|
||||||
|
* triggers.
|
||||||
|
*
|
||||||
|
* Returns: %FALSE if the source should be removed
|
||||||
|
**/
|
||||||
|
typedef gboolean (*GUnixFDSourceFunc) (gint fd,
|
||||||
|
GIOCondition condition,
|
||||||
|
gpointer user_data);
|
||||||
|
|
||||||
|
GLIB_AVAILABLE_IN_2_36
|
||||||
|
GSource *g_unix_fd_source_new (gint fd,
|
||||||
|
GIOCondition condition);
|
||||||
|
|
||||||
|
GLIB_AVAILABLE_IN_2_36
|
||||||
|
guint g_unix_fd_add_full (gint priority,
|
||||||
|
gint fd,
|
||||||
|
GIOCondition condition,
|
||||||
|
GUnixFDSourceFunc function,
|
||||||
|
gpointer user_data,
|
||||||
|
GDestroyNotify notify);
|
||||||
|
|
||||||
|
GLIB_AVAILABLE_IN_2_36
|
||||||
|
guint g_unix_fd_add (gint fd,
|
||||||
|
GIOCondition condition,
|
||||||
|
GUnixFDSourceFunc function,
|
||||||
|
gpointer user_data);
|
||||||
|
|
||||||
|
G_END_DECLS
|
||||||
|
|
||||||
|
#endif /* __G_UNIX_H__ */
|
114
code/application/source/sf_app/code/source/sf_blue/inc/glib/glib.h
Executable file
114
code/application/source/sf_app/code/source/sf_blue/inc/glib/glib.h
Executable file
|
@ -0,0 +1,114 @@
|
||||||
|
/* GLIB - Library of useful routines for C programming
|
||||||
|
* Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald
|
||||||
|
*
|
||||||
|
* This library 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 of the License, or (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This library 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 this library; if not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Modified by the GLib Team and others 1997-2000. See the AUTHORS
|
||||||
|
* file for a list of people on the GLib Team. See the ChangeLog
|
||||||
|
* files for a list of changes. These files are distributed with
|
||||||
|
* GLib at ftp://ftp.gtk.org/pub/gtk/.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef __G_LIB_H__
|
||||||
|
#define __G_LIB_H__
|
||||||
|
|
||||||
|
#define __GLIB_H_INSIDE__
|
||||||
|
|
||||||
|
#include <glib/galloca.h>
|
||||||
|
#include <glib/garray.h>
|
||||||
|
#include <glib/gasyncqueue.h>
|
||||||
|
#include <glib/gatomic.h>
|
||||||
|
#include <glib/gbacktrace.h>
|
||||||
|
#include <glib/gbase64.h>
|
||||||
|
#include <glib/gbitlock.h>
|
||||||
|
#include <glib/gbookmarkfile.h>
|
||||||
|
#include <glib/gbytes.h>
|
||||||
|
#include <glib/gcharset.h>
|
||||||
|
#include <glib/gchecksum.h>
|
||||||
|
#include <glib/gconvert.h>
|
||||||
|
#include <glib/gdataset.h>
|
||||||
|
#include <glib/gdate.h>
|
||||||
|
#include <glib/gdatetime.h>
|
||||||
|
#include <glib/gdir.h>
|
||||||
|
#include <glib/genviron.h>
|
||||||
|
#include <glib/gerror.h>
|
||||||
|
#include <glib/gfileutils.h>
|
||||||
|
#include <glib/ggettext.h>
|
||||||
|
#include <glib/ghash.h>
|
||||||
|
#include <glib/ghmac.h>
|
||||||
|
#include <glib/ghook.h>
|
||||||
|
#include <glib/ghostutils.h>
|
||||||
|
#include <glib/giochannel.h>
|
||||||
|
#include <glib/gkeyfile.h>
|
||||||
|
#include <glib/glist.h>
|
||||||
|
#include <glib/gmacros.h>
|
||||||
|
#include <glib/gmain.h>
|
||||||
|
#include <glib/gmappedfile.h>
|
||||||
|
#include <glib/gmarkup.h>
|
||||||
|
#include <glib/gmem.h>
|
||||||
|
#include <glib/gmessages.h>
|
||||||
|
#include <glib/gnode.h>
|
||||||
|
#include <glib/goption.h>
|
||||||
|
#include <glib/gpattern.h>
|
||||||
|
#include <glib/gpoll.h>
|
||||||
|
#include <glib/gprimes.h>
|
||||||
|
#include <glib/gqsort.h>
|
||||||
|
#include <glib/gquark.h>
|
||||||
|
#include <glib/gqueue.h>
|
||||||
|
#include <glib/grand.h>
|
||||||
|
#include <glib/gregex.h>
|
||||||
|
#include <glib/gscanner.h>
|
||||||
|
#include <glib/gsequence.h>
|
||||||
|
#include <glib/gshell.h>
|
||||||
|
#include <glib/gslice.h>
|
||||||
|
#include <glib/gslist.h>
|
||||||
|
#include <glib/gspawn.h>
|
||||||
|
#include <glib/gstrfuncs.h>
|
||||||
|
#include <glib/gstring.h>
|
||||||
|
#include <glib/gstringchunk.h>
|
||||||
|
#include <glib/gtestutils.h>
|
||||||
|
#include <glib/gthread.h>
|
||||||
|
#include <glib/gthreadpool.h>
|
||||||
|
#include <glib/gtimer.h>
|
||||||
|
#include <glib/gtimezone.h>
|
||||||
|
#include <glib/gtrashstack.h>
|
||||||
|
#include <glib/gtree.h>
|
||||||
|
#include <glib/gtypes.h>
|
||||||
|
#include <glib/gunicode.h>
|
||||||
|
#include <glib/gurifuncs.h>
|
||||||
|
#include <glib/gutils.h>
|
||||||
|
#include <glib/gvarianttype.h>
|
||||||
|
#include <glib/gvariant.h>
|
||||||
|
#include <glib/gversion.h>
|
||||||
|
#include <glib/gversionmacros.h>
|
||||||
|
#ifdef G_PLATFORM_WIN32
|
||||||
|
#include <glib/gwin32.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef G_DISABLE_DEPRECATED
|
||||||
|
#include <glib/deprecated/gallocator.h>
|
||||||
|
#include <glib/deprecated/gcache.h>
|
||||||
|
#include <glib/deprecated/gcompletion.h>
|
||||||
|
#include <glib/deprecated/gmain.h>
|
||||||
|
#include <glib/deprecated/grel.h>
|
||||||
|
#include <glib/deprecated/gthread.h>
|
||||||
|
#endif /* G_DISABLE_DEPRECATED */
|
||||||
|
|
||||||
|
#include <glib/glib-autocleanups.h>
|
||||||
|
|
||||||
|
#undef __GLIB_H_INSIDE__
|
||||||
|
|
||||||
|
#endif /* __G_LIB_H__ */
|
|
@ -0,0 +1,88 @@
|
||||||
|
/*
|
||||||
|
* This library 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 of the licence, or (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This library 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 this library; if not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef __G_ALLOCATOR_H__
|
||||||
|
#define __G_ALLOCATOR_H__
|
||||||
|
|
||||||
|
#if !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION)
|
||||||
|
#error "Only <glib.h> can be included directly."
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include <glib/gtypes.h>
|
||||||
|
|
||||||
|
G_BEGIN_DECLS
|
||||||
|
|
||||||
|
typedef struct _GAllocator GAllocator;
|
||||||
|
typedef struct _GMemChunk GMemChunk;
|
||||||
|
|
||||||
|
#define G_ALLOC_ONLY 1
|
||||||
|
#define G_ALLOC_AND_FREE 2
|
||||||
|
#define G_ALLOCATOR_LIST 1
|
||||||
|
#define G_ALLOCATOR_SLIST 2
|
||||||
|
#define G_ALLOCATOR_NODE 3
|
||||||
|
|
||||||
|
#define g_chunk_new(type, chunk) ((type *) g_mem_chunk_alloc (chunk))
|
||||||
|
#define g_chunk_new0(type, chunk) ((type *) g_mem_chunk_alloc0 (chunk))
|
||||||
|
#define g_chunk_free(mem, mem_chunk) (g_mem_chunk_free (mem_chunk, mem))
|
||||||
|
#define g_mem_chunk_create(type, x, y) (g_mem_chunk_new (NULL, sizeof (type), 0, 0))
|
||||||
|
|
||||||
|
|
||||||
|
GLIB_DEPRECATED
|
||||||
|
GMemChunk * g_mem_chunk_new (const gchar *name,
|
||||||
|
gint atom_size,
|
||||||
|
gsize area_size,
|
||||||
|
gint type);
|
||||||
|
GLIB_DEPRECATED
|
||||||
|
void g_mem_chunk_destroy (GMemChunk *mem_chunk);
|
||||||
|
GLIB_DEPRECATED
|
||||||
|
gpointer g_mem_chunk_alloc (GMemChunk *mem_chunk);
|
||||||
|
GLIB_DEPRECATED
|
||||||
|
gpointer g_mem_chunk_alloc0 (GMemChunk *mem_chunk);
|
||||||
|
GLIB_DEPRECATED
|
||||||
|
void g_mem_chunk_free (GMemChunk *mem_chunk,
|
||||||
|
gpointer mem);
|
||||||
|
GLIB_DEPRECATED
|
||||||
|
void g_mem_chunk_clean (GMemChunk *mem_chunk);
|
||||||
|
GLIB_DEPRECATED
|
||||||
|
void g_mem_chunk_reset (GMemChunk *mem_chunk);
|
||||||
|
GLIB_DEPRECATED
|
||||||
|
void g_mem_chunk_print (GMemChunk *mem_chunk);
|
||||||
|
GLIB_DEPRECATED
|
||||||
|
void g_mem_chunk_info (void);
|
||||||
|
GLIB_DEPRECATED
|
||||||
|
void g_blow_chunks (void);
|
||||||
|
|
||||||
|
|
||||||
|
GLIB_DEPRECATED
|
||||||
|
GAllocator * g_allocator_new (const gchar *name,
|
||||||
|
guint n_preallocs);
|
||||||
|
GLIB_DEPRECATED
|
||||||
|
void g_allocator_free (GAllocator *allocator);
|
||||||
|
GLIB_DEPRECATED
|
||||||
|
void g_list_push_allocator (GAllocator *allocator);
|
||||||
|
GLIB_DEPRECATED
|
||||||
|
void g_list_pop_allocator (void);
|
||||||
|
GLIB_DEPRECATED
|
||||||
|
void g_slist_push_allocator (GAllocator *allocator);
|
||||||
|
GLIB_DEPRECATED
|
||||||
|
void g_slist_pop_allocator (void);
|
||||||
|
GLIB_DEPRECATED
|
||||||
|
void g_node_push_allocator (GAllocator *allocator);
|
||||||
|
GLIB_DEPRECATED
|
||||||
|
void g_node_pop_allocator (void);
|
||||||
|
|
||||||
|
G_END_DECLS
|
||||||
|
|
||||||
|
#endif /* __G_ALLOCATOR_H__ */
|
|
@ -0,0 +1,75 @@
|
||||||
|
/* GLIB - Library of useful routines for C programming
|
||||||
|
* Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald
|
||||||
|
*
|
||||||
|
* This library 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 of the License, or (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This library 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 this library; if not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Modified by the GLib Team and others 1997-2000. See the AUTHORS
|
||||||
|
* file for a list of people on the GLib Team. See the ChangeLog
|
||||||
|
* files for a list of changes. These files are distributed with
|
||||||
|
* GLib at ftp://ftp.gtk.org/pub/gtk/.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef __G_CACHE_H__
|
||||||
|
#define __G_CACHE_H__
|
||||||
|
|
||||||
|
#if !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION)
|
||||||
|
#error "Only <glib.h> can be included directly."
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include <glib/glist.h>
|
||||||
|
|
||||||
|
G_BEGIN_DECLS
|
||||||
|
|
||||||
|
#ifndef G_DISABLE_DEPRECATED
|
||||||
|
|
||||||
|
typedef struct _GCache GCache;
|
||||||
|
|
||||||
|
typedef gpointer (*GCacheNewFunc) (gpointer key);
|
||||||
|
typedef gpointer (*GCacheDupFunc) (gpointer value);
|
||||||
|
typedef void (*GCacheDestroyFunc) (gpointer value);
|
||||||
|
|
||||||
|
/* Caches
|
||||||
|
*/
|
||||||
|
GLIB_DEPRECATED
|
||||||
|
GCache* g_cache_new (GCacheNewFunc value_new_func,
|
||||||
|
GCacheDestroyFunc value_destroy_func,
|
||||||
|
GCacheDupFunc key_dup_func,
|
||||||
|
GCacheDestroyFunc key_destroy_func,
|
||||||
|
GHashFunc hash_key_func,
|
||||||
|
GHashFunc hash_value_func,
|
||||||
|
GEqualFunc key_equal_func);
|
||||||
|
GLIB_DEPRECATED
|
||||||
|
void g_cache_destroy (GCache *cache);
|
||||||
|
GLIB_DEPRECATED
|
||||||
|
gpointer g_cache_insert (GCache *cache,
|
||||||
|
gpointer key);
|
||||||
|
GLIB_DEPRECATED
|
||||||
|
void g_cache_remove (GCache *cache,
|
||||||
|
gconstpointer value);
|
||||||
|
GLIB_DEPRECATED
|
||||||
|
void g_cache_key_foreach (GCache *cache,
|
||||||
|
GHFunc func,
|
||||||
|
gpointer user_data);
|
||||||
|
GLIB_DEPRECATED
|
||||||
|
void g_cache_value_foreach (GCache *cache,
|
||||||
|
GHFunc func,
|
||||||
|
gpointer user_data);
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
G_END_DECLS
|
||||||
|
|
||||||
|
#endif /* __G_CACHE_H__ */
|
|
@ -0,0 +1,83 @@
|
||||||
|
/* GLIB - Library of useful routines for C programming
|
||||||
|
* Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald
|
||||||
|
*
|
||||||
|
* This library 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 of the License, or (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This library 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 this library; if not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Modified by the GLib Team and others 1997-2000. See the AUTHORS
|
||||||
|
* file for a list of people on the GLib Team. See the ChangeLog
|
||||||
|
* files for a list of changes. These files are distributed with
|
||||||
|
* GLib at ftp://ftp.gtk.org/pub/gtk/.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef __G_COMPLETION_H__
|
||||||
|
#define __G_COMPLETION_H__
|
||||||
|
|
||||||
|
#if !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION)
|
||||||
|
#error "Only <glib.h> can be included directly."
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include <glib/glist.h>
|
||||||
|
|
||||||
|
G_BEGIN_DECLS
|
||||||
|
|
||||||
|
typedef struct _GCompletion GCompletion;
|
||||||
|
|
||||||
|
typedef gchar* (*GCompletionFunc) (gpointer);
|
||||||
|
|
||||||
|
/* GCompletion
|
||||||
|
*/
|
||||||
|
|
||||||
|
typedef gint (*GCompletionStrncmpFunc) (const gchar *s1,
|
||||||
|
const gchar *s2,
|
||||||
|
gsize n);
|
||||||
|
|
||||||
|
struct _GCompletion
|
||||||
|
{
|
||||||
|
GList* items;
|
||||||
|
GCompletionFunc func;
|
||||||
|
|
||||||
|
gchar* prefix;
|
||||||
|
GList* cache;
|
||||||
|
GCompletionStrncmpFunc strncmp_func;
|
||||||
|
};
|
||||||
|
|
||||||
|
GLIB_DEPRECATED_IN_2_26
|
||||||
|
GCompletion* g_completion_new (GCompletionFunc func);
|
||||||
|
GLIB_DEPRECATED_IN_2_26
|
||||||
|
void g_completion_add_items (GCompletion* cmp,
|
||||||
|
GList* items);
|
||||||
|
GLIB_DEPRECATED_IN_2_26
|
||||||
|
void g_completion_remove_items (GCompletion* cmp,
|
||||||
|
GList* items);
|
||||||
|
GLIB_DEPRECATED_IN_2_26
|
||||||
|
void g_completion_clear_items (GCompletion* cmp);
|
||||||
|
GLIB_DEPRECATED_IN_2_26
|
||||||
|
GList* g_completion_complete (GCompletion* cmp,
|
||||||
|
const gchar* prefix,
|
||||||
|
gchar** new_prefix);
|
||||||
|
GLIB_DEPRECATED_IN_2_26
|
||||||
|
GList* g_completion_complete_utf8 (GCompletion *cmp,
|
||||||
|
const gchar* prefix,
|
||||||
|
gchar** new_prefix);
|
||||||
|
GLIB_DEPRECATED_IN_2_26
|
||||||
|
void g_completion_set_compare (GCompletion *cmp,
|
||||||
|
GCompletionStrncmpFunc strncmp_func);
|
||||||
|
GLIB_DEPRECATED_IN_2_26
|
||||||
|
void g_completion_free (GCompletion* cmp);
|
||||||
|
|
||||||
|
G_END_DECLS
|
||||||
|
|
||||||
|
#endif /* __G_COMPLETION_H__ */
|
|
@ -0,0 +1,139 @@
|
||||||
|
/* GLIB - Library of useful routines for C programming
|
||||||
|
* Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald
|
||||||
|
*
|
||||||
|
* This library 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 of the License, or (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This library 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 this library; if not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Modified by the GLib Team and others 1997-2000. See the AUTHORS
|
||||||
|
* file for a list of people on the GLib Team. See the ChangeLog
|
||||||
|
* files for a list of changes. These files are distributed with
|
||||||
|
* GLib at ftp://ftp.gtk.org/pub/gtk/.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef __G_DEPRECATED_MAIN_H__
|
||||||
|
#define __G_DEPRECATED_MAIN_H__
|
||||||
|
|
||||||
|
#if !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION)
|
||||||
|
#error "Only <glib.h> can be included directly."
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include <glib/gmain.h>
|
||||||
|
|
||||||
|
G_BEGIN_DECLS
|
||||||
|
|
||||||
|
#ifndef G_DISABLE_DEPRECATED
|
||||||
|
|
||||||
|
/* ============== Compat main loop stuff ================== */
|
||||||
|
|
||||||
|
/**
|
||||||
|
* g_main_new:
|
||||||
|
* @is_running: set to %TRUE to indicate that the loop is running. This
|
||||||
|
* is not very important since calling g_main_run() will set this
|
||||||
|
* to %TRUE anyway.
|
||||||
|
*
|
||||||
|
* Creates a new #GMainLoop for th default main context.
|
||||||
|
*
|
||||||
|
* Returns: a new #GMainLoop
|
||||||
|
*
|
||||||
|
* Deprecated: 2.2: Use g_main_loop_new() instead
|
||||||
|
*/
|
||||||
|
#define g_main_new(is_running) g_main_loop_new (NULL, is_running)
|
||||||
|
|
||||||
|
/**
|
||||||
|
* g_main_run:
|
||||||
|
* @loop: a #GMainLoop
|
||||||
|
*
|
||||||
|
* Runs a main loop until it stops running.
|
||||||
|
*
|
||||||
|
* Deprecated: 2.2: Use g_main_loop_run() instead
|
||||||
|
*/
|
||||||
|
#define g_main_run(loop) g_main_loop_run(loop)
|
||||||
|
|
||||||
|
/**
|
||||||
|
* g_main_quit:
|
||||||
|
* @loop: a #GMainLoop
|
||||||
|
*
|
||||||
|
* Stops the #GMainLoop.
|
||||||
|
* If g_main_run() was called to run the #GMainLoop, it will now return.
|
||||||
|
*
|
||||||
|
* Deprecated: 2.2: Use g_main_loop_quit() instead
|
||||||
|
*/
|
||||||
|
#define g_main_quit(loop) g_main_loop_quit(loop)
|
||||||
|
|
||||||
|
/**
|
||||||
|
* g_main_destroy:
|
||||||
|
* @loop: a #GMainLoop
|
||||||
|
*
|
||||||
|
* Frees the memory allocated for the #GMainLoop.
|
||||||
|
*
|
||||||
|
* Deprecated: 2.2: Use g_main_loop_unref() instead
|
||||||
|
*/
|
||||||
|
#define g_main_destroy(loop) g_main_loop_unref(loop)
|
||||||
|
|
||||||
|
/**
|
||||||
|
* g_main_is_running:
|
||||||
|
* @loop: a #GMainLoop
|
||||||
|
*
|
||||||
|
* Checks if the main loop is running.
|
||||||
|
*
|
||||||
|
* Returns: %TRUE if the main loop is running
|
||||||
|
*
|
||||||
|
* Deprecated: 2.2: Use g_main_loop_is_running() instead
|
||||||
|
*/
|
||||||
|
#define g_main_is_running(loop) g_main_loop_is_running(loop)
|
||||||
|
|
||||||
|
/**
|
||||||
|
* g_main_iteration:
|
||||||
|
* @may_block: set to %TRUE if it should block (i.e. wait) until an event
|
||||||
|
* source becomes ready. It will return after an event source has been
|
||||||
|
* processed. If set to %FALSE it will return immediately if no event
|
||||||
|
* source is ready to be processed.
|
||||||
|
*
|
||||||
|
* Runs a single iteration for the default #GMainContext.
|
||||||
|
*
|
||||||
|
* Returns: %TRUE if more events are pending.
|
||||||
|
*
|
||||||
|
* Deprecated: 2.2: Use g_main_context_iteration() instead.
|
||||||
|
*/
|
||||||
|
#define g_main_iteration(may_block) g_main_context_iteration (NULL, may_block)
|
||||||
|
|
||||||
|
/**
|
||||||
|
* g_main_pending:
|
||||||
|
*
|
||||||
|
* Checks if any events are pending for the default #GMainContext
|
||||||
|
* (i.e. ready to be processed).
|
||||||
|
*
|
||||||
|
* Returns: %TRUE if any events are pending.
|
||||||
|
*
|
||||||
|
* Deprected: 2.2: Use g_main_context_pending() instead.
|
||||||
|
*/
|
||||||
|
#define g_main_pending() g_main_context_pending (NULL)
|
||||||
|
|
||||||
|
/**
|
||||||
|
* g_main_set_poll_func:
|
||||||
|
* @func: the function to call to poll all file descriptors
|
||||||
|
*
|
||||||
|
* Sets the function to use for the handle polling of file descriptors
|
||||||
|
* for the default main context.
|
||||||
|
*
|
||||||
|
* Deprecated: 2.2: Use g_main_context_set_poll_func() again
|
||||||
|
*/
|
||||||
|
#define g_main_set_poll_func(func) g_main_context_set_poll_func (NULL, func)
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
G_END_DECLS
|
||||||
|
|
||||||
|
#endif /* __G_DEPRECATED_MAIN_H__ */
|
|
@ -0,0 +1,105 @@
|
||||||
|
/* GLIB - Library of useful routines for C programming
|
||||||
|
* Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald
|
||||||
|
*
|
||||||
|
* This library 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 of the License, or (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This library 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 this library; if not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Modified by the GLib Team and others 1997-2000. See the AUTHORS
|
||||||
|
* file for a list of people on the GLib Team. See the ChangeLog
|
||||||
|
* files for a list of changes. These files are distributed with
|
||||||
|
* GLib at ftp://ftp.gtk.org/pub/gtk/.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef __G_REL_H__
|
||||||
|
#define __G_REL_H__
|
||||||
|
|
||||||
|
#if !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION)
|
||||||
|
#error "Only <glib.h> can be included directly."
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include <glib/gtypes.h>
|
||||||
|
|
||||||
|
G_BEGIN_DECLS
|
||||||
|
|
||||||
|
typedef struct _GRelation GRelation;
|
||||||
|
typedef struct _GTuples GTuples;
|
||||||
|
|
||||||
|
struct _GTuples
|
||||||
|
{
|
||||||
|
guint len;
|
||||||
|
};
|
||||||
|
|
||||||
|
/* GRelation
|
||||||
|
*
|
||||||
|
* Indexed Relations. Imagine a really simple table in a
|
||||||
|
* database. Relations are not ordered. This data type is meant for
|
||||||
|
* maintaining a N-way mapping.
|
||||||
|
*
|
||||||
|
* g_relation_new() creates a relation with FIELDS fields
|
||||||
|
*
|
||||||
|
* g_relation_destroy() frees all resources
|
||||||
|
* g_tuples_destroy() frees the result of g_relation_select()
|
||||||
|
*
|
||||||
|
* g_relation_index() indexes relation FIELD with the provided
|
||||||
|
* equality and hash functions. this must be done before any
|
||||||
|
* calls to insert are made.
|
||||||
|
*
|
||||||
|
* g_relation_insert() inserts a new tuple. you are expected to
|
||||||
|
* provide the right number of fields.
|
||||||
|
*
|
||||||
|
* g_relation_delete() deletes all relations with KEY in FIELD
|
||||||
|
* g_relation_select() returns ...
|
||||||
|
* g_relation_count() counts ...
|
||||||
|
*/
|
||||||
|
|
||||||
|
GLIB_DEPRECATED_IN_2_26
|
||||||
|
GRelation* g_relation_new (gint fields);
|
||||||
|
GLIB_DEPRECATED_IN_2_26
|
||||||
|
void g_relation_destroy (GRelation *relation);
|
||||||
|
GLIB_DEPRECATED_IN_2_26
|
||||||
|
void g_relation_index (GRelation *relation,
|
||||||
|
gint field,
|
||||||
|
GHashFunc hash_func,
|
||||||
|
GEqualFunc key_equal_func);
|
||||||
|
GLIB_DEPRECATED_IN_2_26
|
||||||
|
void g_relation_insert (GRelation *relation,
|
||||||
|
...);
|
||||||
|
GLIB_DEPRECATED_IN_2_26
|
||||||
|
gint g_relation_delete (GRelation *relation,
|
||||||
|
gconstpointer key,
|
||||||
|
gint field);
|
||||||
|
GLIB_DEPRECATED_IN_2_26
|
||||||
|
GTuples* g_relation_select (GRelation *relation,
|
||||||
|
gconstpointer key,
|
||||||
|
gint field);
|
||||||
|
GLIB_DEPRECATED_IN_2_26
|
||||||
|
gint g_relation_count (GRelation *relation,
|
||||||
|
gconstpointer key,
|
||||||
|
gint field);
|
||||||
|
GLIB_DEPRECATED_IN_2_26
|
||||||
|
gboolean g_relation_exists (GRelation *relation,
|
||||||
|
...);
|
||||||
|
GLIB_DEPRECATED_IN_2_26
|
||||||
|
void g_relation_print (GRelation *relation);
|
||||||
|
GLIB_DEPRECATED_IN_2_26
|
||||||
|
void g_tuples_destroy (GTuples *tuples);
|
||||||
|
GLIB_DEPRECATED_IN_2_26
|
||||||
|
gpointer g_tuples_index (GTuples *tuples,
|
||||||
|
gint index_,
|
||||||
|
gint field);
|
||||||
|
|
||||||
|
G_END_DECLS
|
||||||
|
|
||||||
|
#endif /* __G_REL_H__ */
|
|
@ -0,0 +1,293 @@
|
||||||
|
/* GLIB - Library of useful routines for C programming
|
||||||
|
* Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald
|
||||||
|
*
|
||||||
|
* This library 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 of the License, or (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This library 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 this library; if not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Modified by the GLib Team and others 1997-2000. See the AUTHORS
|
||||||
|
* file for a list of people on the GLib Team. See the ChangeLog
|
||||||
|
* files for a list of changes. These files are distributed with
|
||||||
|
* GLib at ftp://ftp.gtk.org/pub/gtk/.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef __G_DEPRECATED_THREAD_H__
|
||||||
|
#define __G_DEPRECATED_THREAD_H__
|
||||||
|
|
||||||
|
#if !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION)
|
||||||
|
#error "Only <glib.h> can be included directly."
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include <glib/gthread.h>
|
||||||
|
|
||||||
|
G_BEGIN_DECLS
|
||||||
|
|
||||||
|
#ifndef G_DISABLE_DEPRECATED
|
||||||
|
|
||||||
|
typedef enum
|
||||||
|
{
|
||||||
|
G_THREAD_PRIORITY_LOW,
|
||||||
|
G_THREAD_PRIORITY_NORMAL,
|
||||||
|
G_THREAD_PRIORITY_HIGH,
|
||||||
|
G_THREAD_PRIORITY_URGENT
|
||||||
|
} GThreadPriority;
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
struct _GThread
|
||||||
|
{
|
||||||
|
/*< private >*/
|
||||||
|
GThreadFunc func;
|
||||||
|
gpointer data;
|
||||||
|
gboolean joinable;
|
||||||
|
GThreadPriority priority;
|
||||||
|
};
|
||||||
|
|
||||||
|
#ifndef G_DISABLE_DEPRECATED
|
||||||
|
|
||||||
|
typedef struct _GThreadFunctions GThreadFunctions;
|
||||||
|
struct _GThreadFunctions
|
||||||
|
{
|
||||||
|
GMutex* (*mutex_new) (void);
|
||||||
|
void (*mutex_lock) (GMutex *mutex);
|
||||||
|
gboolean (*mutex_trylock) (GMutex *mutex);
|
||||||
|
void (*mutex_unlock) (GMutex *mutex);
|
||||||
|
void (*mutex_free) (GMutex *mutex);
|
||||||
|
GCond* (*cond_new) (void);
|
||||||
|
void (*cond_signal) (GCond *cond);
|
||||||
|
void (*cond_broadcast) (GCond *cond);
|
||||||
|
void (*cond_wait) (GCond *cond,
|
||||||
|
GMutex *mutex);
|
||||||
|
gboolean (*cond_timed_wait) (GCond *cond,
|
||||||
|
GMutex *mutex,
|
||||||
|
GTimeVal *end_time);
|
||||||
|
void (*cond_free) (GCond *cond);
|
||||||
|
GPrivate* (*private_new) (GDestroyNotify destructor);
|
||||||
|
gpointer (*private_get) (GPrivate *private_key);
|
||||||
|
void (*private_set) (GPrivate *private_key,
|
||||||
|
gpointer data);
|
||||||
|
void (*thread_create) (GThreadFunc func,
|
||||||
|
gpointer data,
|
||||||
|
gulong stack_size,
|
||||||
|
gboolean joinable,
|
||||||
|
gboolean bound,
|
||||||
|
GThreadPriority priority,
|
||||||
|
gpointer thread,
|
||||||
|
GError **error);
|
||||||
|
void (*thread_yield) (void);
|
||||||
|
void (*thread_join) (gpointer thread);
|
||||||
|
void (*thread_exit) (void);
|
||||||
|
void (*thread_set_priority)(gpointer thread,
|
||||||
|
GThreadPriority priority);
|
||||||
|
void (*thread_self) (gpointer thread);
|
||||||
|
gboolean (*thread_equal) (gpointer thread1,
|
||||||
|
gpointer thread2);
|
||||||
|
};
|
||||||
|
|
||||||
|
GLIB_VAR GThreadFunctions g_thread_functions_for_glib_use;
|
||||||
|
GLIB_VAR gboolean g_thread_use_default_impl;
|
||||||
|
|
||||||
|
GLIB_VAR guint64 (*g_thread_gettime) (void);
|
||||||
|
|
||||||
|
GLIB_DEPRECATED_IN_2_32_FOR(g_thread_new)
|
||||||
|
GThread *g_thread_create (GThreadFunc func,
|
||||||
|
gpointer data,
|
||||||
|
gboolean joinable,
|
||||||
|
GError **error);
|
||||||
|
|
||||||
|
GLIB_DEPRECATED_IN_2_32_FOR(g_thread_new)
|
||||||
|
GThread *g_thread_create_full (GThreadFunc func,
|
||||||
|
gpointer data,
|
||||||
|
gulong stack_size,
|
||||||
|
gboolean joinable,
|
||||||
|
gboolean bound,
|
||||||
|
GThreadPriority priority,
|
||||||
|
GError **error);
|
||||||
|
|
||||||
|
GLIB_DEPRECATED_IN_2_32
|
||||||
|
void g_thread_set_priority (GThread *thread,
|
||||||
|
GThreadPriority priority);
|
||||||
|
|
||||||
|
GLIB_DEPRECATED_IN_2_32
|
||||||
|
void g_thread_foreach (GFunc thread_func,
|
||||||
|
gpointer user_data);
|
||||||
|
|
||||||
|
#ifndef G_OS_WIN32
|
||||||
|
#include <sys/types.h>
|
||||||
|
#include <pthread.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define g_static_mutex_get_mutex g_static_mutex_get_mutex_impl
|
||||||
|
#define G_STATIC_MUTEX_INIT { NULL }
|
||||||
|
typedef struct
|
||||||
|
{
|
||||||
|
GMutex *mutex;
|
||||||
|
#ifndef G_OS_WIN32
|
||||||
|
/* only for ABI compatibility reasons */
|
||||||
|
pthread_mutex_t unused;
|
||||||
|
#endif
|
||||||
|
} GStaticMutex;
|
||||||
|
|
||||||
|
#define g_static_mutex_lock(mutex) \
|
||||||
|
g_mutex_lock (g_static_mutex_get_mutex (mutex))
|
||||||
|
#define g_static_mutex_trylock(mutex) \
|
||||||
|
g_mutex_trylock (g_static_mutex_get_mutex (mutex))
|
||||||
|
#define g_static_mutex_unlock(mutex) \
|
||||||
|
g_mutex_unlock (g_static_mutex_get_mutex (mutex))
|
||||||
|
|
||||||
|
GLIB_DEPRECATED_IN_2_32_FOR(g_mutex_init)
|
||||||
|
void g_static_mutex_init (GStaticMutex *mutex);
|
||||||
|
GLIB_DEPRECATED_IN_2_32_FOR(g_mutex_clear)
|
||||||
|
void g_static_mutex_free (GStaticMutex *mutex);
|
||||||
|
GLIB_DEPRECATED_IN_2_32_FOR(GMutex)
|
||||||
|
GMutex *g_static_mutex_get_mutex_impl (GStaticMutex *mutex);
|
||||||
|
|
||||||
|
typedef struct _GStaticRecMutex GStaticRecMutex;
|
||||||
|
struct _GStaticRecMutex
|
||||||
|
{
|
||||||
|
/*< private >*/
|
||||||
|
GStaticMutex mutex;
|
||||||
|
guint depth;
|
||||||
|
|
||||||
|
/* ABI compat only */
|
||||||
|
union {
|
||||||
|
#ifdef G_OS_WIN32
|
||||||
|
void *owner;
|
||||||
|
#else
|
||||||
|
pthread_t owner;
|
||||||
|
#endif
|
||||||
|
gdouble dummy;
|
||||||
|
} unused;
|
||||||
|
};
|
||||||
|
|
||||||
|
#define G_STATIC_REC_MUTEX_INIT { G_STATIC_MUTEX_INIT }
|
||||||
|
GLIB_DEPRECATED_IN_2_32_FOR(g_rec_mutex_init)
|
||||||
|
void g_static_rec_mutex_init (GStaticRecMutex *mutex);
|
||||||
|
|
||||||
|
GLIB_DEPRECATED_IN_2_32_FOR(g_rec_mutex_lock)
|
||||||
|
void g_static_rec_mutex_lock (GStaticRecMutex *mutex);
|
||||||
|
|
||||||
|
GLIB_DEPRECATED_IN_2_32_FOR(g_rec_mutex_try_lock)
|
||||||
|
gboolean g_static_rec_mutex_trylock (GStaticRecMutex *mutex);
|
||||||
|
|
||||||
|
GLIB_DEPRECATED_IN_2_32_FOR(g_rec_mutex_unlock)
|
||||||
|
void g_static_rec_mutex_unlock (GStaticRecMutex *mutex);
|
||||||
|
|
||||||
|
GLIB_DEPRECATED_IN_2_32
|
||||||
|
void g_static_rec_mutex_lock_full (GStaticRecMutex *mutex,
|
||||||
|
guint depth);
|
||||||
|
|
||||||
|
GLIB_DEPRECATED_IN_2_32
|
||||||
|
guint g_static_rec_mutex_unlock_full (GStaticRecMutex *mutex);
|
||||||
|
|
||||||
|
GLIB_DEPRECATED_IN_2_32_FOR(g_rec_mutex_free)
|
||||||
|
void g_static_rec_mutex_free (GStaticRecMutex *mutex);
|
||||||
|
|
||||||
|
typedef struct _GStaticRWLock GStaticRWLock;
|
||||||
|
struct _GStaticRWLock
|
||||||
|
{
|
||||||
|
/*< private >*/
|
||||||
|
GStaticMutex mutex;
|
||||||
|
GCond *read_cond;
|
||||||
|
GCond *write_cond;
|
||||||
|
guint read_counter;
|
||||||
|
gboolean have_writer;
|
||||||
|
guint want_to_read;
|
||||||
|
guint want_to_write;
|
||||||
|
};
|
||||||
|
|
||||||
|
#define G_STATIC_RW_LOCK_INIT { G_STATIC_MUTEX_INIT, NULL, NULL, 0, FALSE, 0, 0 }
|
||||||
|
|
||||||
|
GLIB_DEPRECATED_IN_2_32_FOR(g_rw_lock_init)
|
||||||
|
void g_static_rw_lock_init (GStaticRWLock *lock);
|
||||||
|
|
||||||
|
GLIB_DEPRECATED_IN_2_32_FOR(g_rw_lock_reader_lock)
|
||||||
|
void g_static_rw_lock_reader_lock (GStaticRWLock *lock);
|
||||||
|
|
||||||
|
GLIB_DEPRECATED_IN_2_32_FOR(g_rw_lock_reader_trylock)
|
||||||
|
gboolean g_static_rw_lock_reader_trylock (GStaticRWLock *lock);
|
||||||
|
|
||||||
|
GLIB_DEPRECATED_IN_2_32_FOR(g_rw_lock_reader_unlock)
|
||||||
|
void g_static_rw_lock_reader_unlock (GStaticRWLock *lock);
|
||||||
|
|
||||||
|
GLIB_DEPRECATED_IN_2_32_FOR(g_rw_lock_writer_lock)
|
||||||
|
void g_static_rw_lock_writer_lock (GStaticRWLock *lock);
|
||||||
|
|
||||||
|
GLIB_DEPRECATED_IN_2_32_FOR(g_rw_lock_writer_trylock)
|
||||||
|
gboolean g_static_rw_lock_writer_trylock (GStaticRWLock *lock);
|
||||||
|
|
||||||
|
GLIB_DEPRECATED_IN_2_32_FOR(g_rw_lock_writer_unlock)
|
||||||
|
void g_static_rw_lock_writer_unlock (GStaticRWLock *lock);
|
||||||
|
|
||||||
|
GLIB_DEPRECATED_IN_2_32_FOR(g_rw_lock_free)
|
||||||
|
void g_static_rw_lock_free (GStaticRWLock *lock);
|
||||||
|
|
||||||
|
GLIB_DEPRECATED_IN_2_32
|
||||||
|
GPrivate * g_private_new (GDestroyNotify notify);
|
||||||
|
|
||||||
|
typedef struct _GStaticPrivate GStaticPrivate;
|
||||||
|
struct _GStaticPrivate
|
||||||
|
{
|
||||||
|
/*< private >*/
|
||||||
|
guint index;
|
||||||
|
};
|
||||||
|
|
||||||
|
#define G_STATIC_PRIVATE_INIT { 0 }
|
||||||
|
GLIB_DEPRECATED_IN_2_32
|
||||||
|
void g_static_private_init (GStaticPrivate *private_key);
|
||||||
|
|
||||||
|
GLIB_DEPRECATED_IN_2_32_FOR(g_private_get)
|
||||||
|
gpointer g_static_private_get (GStaticPrivate *private_key);
|
||||||
|
|
||||||
|
GLIB_DEPRECATED_IN_2_32_FOR(g_private_set)
|
||||||
|
void g_static_private_set (GStaticPrivate *private_key,
|
||||||
|
gpointer data,
|
||||||
|
GDestroyNotify notify);
|
||||||
|
|
||||||
|
GLIB_DEPRECATED_IN_2_32
|
||||||
|
void g_static_private_free (GStaticPrivate *private_key);
|
||||||
|
|
||||||
|
GLIB_DEPRECATED_IN_2_32
|
||||||
|
gboolean g_once_init_enter_impl (volatile gsize *location);
|
||||||
|
|
||||||
|
GLIB_DEPRECATED_IN_2_32
|
||||||
|
void g_thread_init (gpointer vtable);
|
||||||
|
GLIB_DEPRECATED_IN_2_32
|
||||||
|
void g_thread_init_with_errorcheck_mutexes (gpointer vtable);
|
||||||
|
|
||||||
|
GLIB_DEPRECATED_IN_2_32
|
||||||
|
gboolean g_thread_get_initialized (void);
|
||||||
|
|
||||||
|
GLIB_VAR gboolean g_threads_got_initialized;
|
||||||
|
|
||||||
|
#define g_thread_supported() (1)
|
||||||
|
|
||||||
|
GLIB_DEPRECATED_IN_2_32
|
||||||
|
GMutex * g_mutex_new (void);
|
||||||
|
GLIB_DEPRECATED_IN_2_32
|
||||||
|
void g_mutex_free (GMutex *mutex);
|
||||||
|
GLIB_DEPRECATED_IN_2_32
|
||||||
|
GCond * g_cond_new (void);
|
||||||
|
GLIB_DEPRECATED_IN_2_32
|
||||||
|
void g_cond_free (GCond *cond);
|
||||||
|
GLIB_DEPRECATED_IN_2_32
|
||||||
|
gboolean g_cond_timed_wait (GCond *cond,
|
||||||
|
GMutex *mutex,
|
||||||
|
GTimeVal *timeval);
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
G_END_DECLS
|
||||||
|
|
||||||
|
#endif /* __G_DEPRECATED_THREAD_H__ */
|
103
code/application/source/sf_app/code/source/sf_blue/inc/glib/glib/galloca.h
Executable file
103
code/application/source/sf_app/code/source/sf_blue/inc/glib/glib/galloca.h
Executable file
|
@ -0,0 +1,103 @@
|
||||||
|
/* GLIB - Library of useful routines for C programming
|
||||||
|
* Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald
|
||||||
|
*
|
||||||
|
* This library 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 of the License, or (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This library 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 this library; if not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Modified by the GLib Team and others 1997-2000. See the AUTHORS
|
||||||
|
* file for a list of people on the GLib Team. See the ChangeLog
|
||||||
|
* files for a list of changes. These files are distributed with
|
||||||
|
* GLib at ftp://ftp.gtk.org/pub/gtk/.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef __G_ALLOCA_H__
|
||||||
|
#define __G_ALLOCA_H__
|
||||||
|
|
||||||
|
#if !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION)
|
||||||
|
#error "Only <glib.h> can be included directly."
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include <glib/gtypes.h>
|
||||||
|
|
||||||
|
#if defined(__BIONIC__) && defined (GLIB_HAVE_ALLOCA_H)
|
||||||
|
# include <alloca.h>
|
||||||
|
#elif defined(__GNUC__)
|
||||||
|
/* GCC does the right thing */
|
||||||
|
# undef alloca
|
||||||
|
# define alloca(size) __builtin_alloca (size)
|
||||||
|
#elif defined (GLIB_HAVE_ALLOCA_H)
|
||||||
|
/* a native and working alloca.h is there */
|
||||||
|
# include <alloca.h>
|
||||||
|
#else /* !__GNUC__ && !GLIB_HAVE_ALLOCA_H */
|
||||||
|
# if defined(_MSC_VER) || defined(__DMC__)
|
||||||
|
# include <malloc.h>
|
||||||
|
# define alloca _alloca
|
||||||
|
# else /* !_MSC_VER && !__DMC__ */
|
||||||
|
# ifdef _AIX
|
||||||
|
# pragma alloca
|
||||||
|
# else /* !_AIX */
|
||||||
|
# ifndef alloca /* predefined by HP cc +Olibcalls */
|
||||||
|
G_BEGIN_DECLS
|
||||||
|
char *alloca ();
|
||||||
|
G_END_DECLS
|
||||||
|
# endif /* !alloca */
|
||||||
|
# endif /* !_AIX */
|
||||||
|
# endif /* !_MSC_VER && !__DMC__ */
|
||||||
|
#endif /* !__GNUC__ && !GLIB_HAVE_ALLOCA_H */
|
||||||
|
|
||||||
|
/**
|
||||||
|
* g_alloca:
|
||||||
|
* @size: number of bytes to allocate.
|
||||||
|
*
|
||||||
|
* Allocates @size bytes on the stack; these bytes will be freed when the current
|
||||||
|
* stack frame is cleaned up. This macro essentially just wraps the alloca()
|
||||||
|
* function present on most UNIX variants.
|
||||||
|
* Thus it provides the same advantages and pitfalls as alloca():
|
||||||
|
*
|
||||||
|
* - alloca() is very fast, as on most systems it's implemented by just adjusting
|
||||||
|
* the stack pointer register.
|
||||||
|
*
|
||||||
|
* - It doesn't cause any memory fragmentation, within its scope, separate alloca()
|
||||||
|
* blocks just build up and are released together at function end.
|
||||||
|
*
|
||||||
|
* - Allocation sizes have to fit into the current stack frame. For instance in a
|
||||||
|
* threaded environment on Linux, the per-thread stack size is limited to 2 Megabytes,
|
||||||
|
* so be sparse with alloca() uses.
|
||||||
|
*
|
||||||
|
* - Allocation failure due to insufficient stack space is not indicated with a %NULL
|
||||||
|
* return like e.g. with malloc(). Instead, most systems probably handle it the same
|
||||||
|
* way as out of stack space situations from infinite function recursion, i.e.
|
||||||
|
* with a segmentation fault.
|
||||||
|
*
|
||||||
|
* - Special care has to be taken when mixing alloca() with GNU C variable sized arrays.
|
||||||
|
* Stack space allocated with alloca() in the same scope as a variable sized array
|
||||||
|
* will be freed together with the variable sized array upon exit of that scope, and
|
||||||
|
* not upon exit of the enclosing function scope.
|
||||||
|
*
|
||||||
|
* Returns: space for @size bytes, allocated on the stack
|
||||||
|
*/
|
||||||
|
#define g_alloca(size) alloca (size)
|
||||||
|
/**
|
||||||
|
* g_newa:
|
||||||
|
* @struct_type: Type of memory chunks to be allocated
|
||||||
|
* @n_structs: Number of chunks to be allocated
|
||||||
|
*
|
||||||
|
* Wraps g_alloca() in a more typesafe manner.
|
||||||
|
*
|
||||||
|
* Returns: Pointer to stack space for @n_structs chunks of type @struct_type
|
||||||
|
*/
|
||||||
|
#define g_newa(struct_type, n_structs) ((struct_type*) g_alloca (sizeof (struct_type) * (gsize) (n_structs)))
|
||||||
|
|
||||||
|
#endif /* __G_ALLOCA_H__ */
|
238
code/application/source/sf_app/code/source/sf_blue/inc/glib/glib/garray.h
Executable file
238
code/application/source/sf_app/code/source/sf_blue/inc/glib/glib/garray.h
Executable file
|
@ -0,0 +1,238 @@
|
||||||
|
/* GLIB - Library of useful routines for C programming
|
||||||
|
* Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald
|
||||||
|
*
|
||||||
|
* This library 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 of the License, or (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This library 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 this library; if not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Modified by the GLib Team and others 1997-2000. See the AUTHORS
|
||||||
|
* file for a list of people on the GLib Team. See the ChangeLog
|
||||||
|
* files for a list of changes. These files are distributed with
|
||||||
|
* GLib at ftp://ftp.gtk.org/pub/gtk/.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef __G_ARRAY_H__
|
||||||
|
#define __G_ARRAY_H__
|
||||||
|
|
||||||
|
#if !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION)
|
||||||
|
#error "Only <glib.h> can be included directly."
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include <glib/gtypes.h>
|
||||||
|
|
||||||
|
G_BEGIN_DECLS
|
||||||
|
|
||||||
|
typedef struct _GBytes GBytes;
|
||||||
|
typedef struct _GArray GArray;
|
||||||
|
typedef struct _GByteArray GByteArray;
|
||||||
|
typedef struct _GPtrArray GPtrArray;
|
||||||
|
|
||||||
|
struct _GArray
|
||||||
|
{
|
||||||
|
gchar *data;
|
||||||
|
guint len;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct _GByteArray
|
||||||
|
{
|
||||||
|
guint8 *data;
|
||||||
|
guint len;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct _GPtrArray
|
||||||
|
{
|
||||||
|
gpointer *pdata;
|
||||||
|
guint len;
|
||||||
|
};
|
||||||
|
|
||||||
|
/* Resizable arrays. remove fills any cleared spot and shortens the
|
||||||
|
* array, while preserving the order. remove_fast will distort the
|
||||||
|
* order by moving the last element to the position of the removed.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#define g_array_append_val(a,v) g_array_append_vals (a, &(v), 1)
|
||||||
|
#define g_array_prepend_val(a,v) g_array_prepend_vals (a, &(v), 1)
|
||||||
|
#define g_array_insert_val(a,i,v) g_array_insert_vals (a, i, &(v), 1)
|
||||||
|
#define g_array_index(a,t,i) (((t*) (void *) (a)->data) [(i)])
|
||||||
|
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GArray* g_array_new (gboolean zero_terminated,
|
||||||
|
gboolean clear_,
|
||||||
|
guint element_size);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GArray* g_array_sized_new (gboolean zero_terminated,
|
||||||
|
gboolean clear_,
|
||||||
|
guint element_size,
|
||||||
|
guint reserved_size);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gchar* g_array_free (GArray *array,
|
||||||
|
gboolean free_segment);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GArray *g_array_ref (GArray *array);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_array_unref (GArray *array);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
guint g_array_get_element_size (GArray *array);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GArray* g_array_append_vals (GArray *array,
|
||||||
|
gconstpointer data,
|
||||||
|
guint len);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GArray* g_array_prepend_vals (GArray *array,
|
||||||
|
gconstpointer data,
|
||||||
|
guint len);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GArray* g_array_insert_vals (GArray *array,
|
||||||
|
guint index_,
|
||||||
|
gconstpointer data,
|
||||||
|
guint len);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GArray* g_array_set_size (GArray *array,
|
||||||
|
guint length);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GArray* g_array_remove_index (GArray *array,
|
||||||
|
guint index_);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GArray* g_array_remove_index_fast (GArray *array,
|
||||||
|
guint index_);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GArray* g_array_remove_range (GArray *array,
|
||||||
|
guint index_,
|
||||||
|
guint length);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_array_sort (GArray *array,
|
||||||
|
GCompareFunc compare_func);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_array_sort_with_data (GArray *array,
|
||||||
|
GCompareDataFunc compare_func,
|
||||||
|
gpointer user_data);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_array_set_clear_func (GArray *array,
|
||||||
|
GDestroyNotify clear_func);
|
||||||
|
|
||||||
|
/* Resizable pointer array. This interface is much less complicated
|
||||||
|
* than the above. Add appends a pointer. Remove fills any cleared
|
||||||
|
* spot and shortens the array. remove_fast will again distort order.
|
||||||
|
*/
|
||||||
|
#define g_ptr_array_index(array,index_) ((array)->pdata)[index_]
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GPtrArray* g_ptr_array_new (void);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GPtrArray* g_ptr_array_new_with_free_func (GDestroyNotify element_free_func);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GPtrArray* g_ptr_array_sized_new (guint reserved_size);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GPtrArray* g_ptr_array_new_full (guint reserved_size,
|
||||||
|
GDestroyNotify element_free_func);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gpointer* g_ptr_array_free (GPtrArray *array,
|
||||||
|
gboolean free_seg);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GPtrArray* g_ptr_array_ref (GPtrArray *array);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_ptr_array_unref (GPtrArray *array);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_ptr_array_set_free_func (GPtrArray *array,
|
||||||
|
GDestroyNotify element_free_func);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_ptr_array_set_size (GPtrArray *array,
|
||||||
|
gint length);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gpointer g_ptr_array_remove_index (GPtrArray *array,
|
||||||
|
guint index_);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gpointer g_ptr_array_remove_index_fast (GPtrArray *array,
|
||||||
|
guint index_);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gboolean g_ptr_array_remove (GPtrArray *array,
|
||||||
|
gpointer data);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gboolean g_ptr_array_remove_fast (GPtrArray *array,
|
||||||
|
gpointer data);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GPtrArray *g_ptr_array_remove_range (GPtrArray *array,
|
||||||
|
guint index_,
|
||||||
|
guint length);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_ptr_array_add (GPtrArray *array,
|
||||||
|
gpointer data);
|
||||||
|
GLIB_AVAILABLE_IN_2_40
|
||||||
|
void g_ptr_array_insert (GPtrArray *array,
|
||||||
|
gint index_,
|
||||||
|
gpointer data);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_ptr_array_sort (GPtrArray *array,
|
||||||
|
GCompareFunc compare_func);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_ptr_array_sort_with_data (GPtrArray *array,
|
||||||
|
GCompareDataFunc compare_func,
|
||||||
|
gpointer user_data);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_ptr_array_foreach (GPtrArray *array,
|
||||||
|
GFunc func,
|
||||||
|
gpointer user_data);
|
||||||
|
|
||||||
|
|
||||||
|
/* Byte arrays, an array of guint8. Implemented as a GArray,
|
||||||
|
* but type-safe.
|
||||||
|
*/
|
||||||
|
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GByteArray* g_byte_array_new (void);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GByteArray* g_byte_array_new_take (guint8 *data,
|
||||||
|
gsize len);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GByteArray* g_byte_array_sized_new (guint reserved_size);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
guint8* g_byte_array_free (GByteArray *array,
|
||||||
|
gboolean free_segment);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GBytes* g_byte_array_free_to_bytes (GByteArray *array);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GByteArray *g_byte_array_ref (GByteArray *array);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_byte_array_unref (GByteArray *array);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GByteArray* g_byte_array_append (GByteArray *array,
|
||||||
|
const guint8 *data,
|
||||||
|
guint len);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GByteArray* g_byte_array_prepend (GByteArray *array,
|
||||||
|
const guint8 *data,
|
||||||
|
guint len);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GByteArray* g_byte_array_set_size (GByteArray *array,
|
||||||
|
guint length);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GByteArray* g_byte_array_remove_index (GByteArray *array,
|
||||||
|
guint index_);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GByteArray* g_byte_array_remove_index_fast (GByteArray *array,
|
||||||
|
guint index_);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GByteArray* g_byte_array_remove_range (GByteArray *array,
|
||||||
|
guint index_,
|
||||||
|
guint length);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_byte_array_sort (GByteArray *array,
|
||||||
|
GCompareFunc compare_func);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_byte_array_sort_with_data (GByteArray *array,
|
||||||
|
GCompareDataFunc compare_func,
|
||||||
|
gpointer user_data);
|
||||||
|
|
||||||
|
G_END_DECLS
|
||||||
|
|
||||||
|
#endif /* __G_ARRAY_H__ */
|
122
code/application/source/sf_app/code/source/sf_blue/inc/glib/glib/gasyncqueue.h
Executable file
122
code/application/source/sf_app/code/source/sf_blue/inc/glib/glib/gasyncqueue.h
Executable file
|
@ -0,0 +1,122 @@
|
||||||
|
/* GLIB - Library of useful routines for C programming
|
||||||
|
* Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald
|
||||||
|
*
|
||||||
|
* This library 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 of the License, or (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This library 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 this library; if not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Modified by the GLib Team and others 1997-2000. See the AUTHORS
|
||||||
|
* file for a list of people on the GLib Team. See the ChangeLog
|
||||||
|
* files for a list of changes. These files are distributed with
|
||||||
|
* GLib at ftp://ftp.gtk.org/pub/gtk/.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef __G_ASYNCQUEUE_H__
|
||||||
|
#define __G_ASYNCQUEUE_H__
|
||||||
|
|
||||||
|
#if !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION)
|
||||||
|
#error "Only <glib.h> can be included directly."
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include <glib/gthread.h>
|
||||||
|
|
||||||
|
G_BEGIN_DECLS
|
||||||
|
|
||||||
|
typedef struct _GAsyncQueue GAsyncQueue;
|
||||||
|
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GAsyncQueue *g_async_queue_new (void);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GAsyncQueue *g_async_queue_new_full (GDestroyNotify item_free_func);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_async_queue_lock (GAsyncQueue *queue);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_async_queue_unlock (GAsyncQueue *queue);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GAsyncQueue *g_async_queue_ref (GAsyncQueue *queue);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_async_queue_unref (GAsyncQueue *queue);
|
||||||
|
|
||||||
|
GLIB_DEPRECATED_FOR(g_async_queue_ref)
|
||||||
|
void g_async_queue_ref_unlocked (GAsyncQueue *queue);
|
||||||
|
|
||||||
|
GLIB_DEPRECATED_FOR(g_async_queue_unref)
|
||||||
|
void g_async_queue_unref_and_unlock (GAsyncQueue *queue);
|
||||||
|
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_async_queue_push (GAsyncQueue *queue,
|
||||||
|
gpointer data);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_async_queue_push_unlocked (GAsyncQueue *queue,
|
||||||
|
gpointer data);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_async_queue_push_sorted (GAsyncQueue *queue,
|
||||||
|
gpointer data,
|
||||||
|
GCompareDataFunc func,
|
||||||
|
gpointer user_data);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_async_queue_push_sorted_unlocked (GAsyncQueue *queue,
|
||||||
|
gpointer data,
|
||||||
|
GCompareDataFunc func,
|
||||||
|
gpointer user_data);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gpointer g_async_queue_pop (GAsyncQueue *queue);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gpointer g_async_queue_pop_unlocked (GAsyncQueue *queue);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gpointer g_async_queue_try_pop (GAsyncQueue *queue);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gpointer g_async_queue_try_pop_unlocked (GAsyncQueue *queue);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gpointer g_async_queue_timeout_pop (GAsyncQueue *queue,
|
||||||
|
guint64 timeout);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gpointer g_async_queue_timeout_pop_unlocked (GAsyncQueue *queue,
|
||||||
|
guint64 timeout);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gint g_async_queue_length (GAsyncQueue *queue);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gint g_async_queue_length_unlocked (GAsyncQueue *queue);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_async_queue_sort (GAsyncQueue *queue,
|
||||||
|
GCompareDataFunc func,
|
||||||
|
gpointer user_data);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_async_queue_sort_unlocked (GAsyncQueue *queue,
|
||||||
|
GCompareDataFunc func,
|
||||||
|
gpointer user_data);
|
||||||
|
|
||||||
|
GLIB_AVAILABLE_IN_2_46
|
||||||
|
gboolean g_async_queue_remove (GAsyncQueue *queue,
|
||||||
|
gpointer item);
|
||||||
|
GLIB_AVAILABLE_IN_2_46
|
||||||
|
gboolean g_async_queue_remove_unlocked (GAsyncQueue *queue,
|
||||||
|
gpointer item);
|
||||||
|
GLIB_AVAILABLE_IN_2_46
|
||||||
|
void g_async_queue_push_front (GAsyncQueue *queue,
|
||||||
|
gpointer item);
|
||||||
|
GLIB_AVAILABLE_IN_2_46
|
||||||
|
void g_async_queue_push_front_unlocked (GAsyncQueue *queue,
|
||||||
|
gpointer item);
|
||||||
|
|
||||||
|
GLIB_DEPRECATED_FOR(g_async_queue_timeout_pop)
|
||||||
|
gpointer g_async_queue_timed_pop (GAsyncQueue *queue,
|
||||||
|
GTimeVal *end_time);
|
||||||
|
GLIB_DEPRECATED_FOR(g_async_queue_timeout_pop_unlocked)
|
||||||
|
gpointer g_async_queue_timed_pop_unlocked (GAsyncQueue *queue,
|
||||||
|
GTimeVal *end_time);
|
||||||
|
|
||||||
|
G_END_DECLS
|
||||||
|
|
||||||
|
#endif /* __G_ASYNCQUEUE_H__ */
|
281
code/application/source/sf_app/code/source/sf_blue/inc/glib/glib/gatomic.h
Executable file
281
code/application/source/sf_app/code/source/sf_blue/inc/glib/glib/gatomic.h
Executable file
|
@ -0,0 +1,281 @@
|
||||||
|
/*
|
||||||
|
* Copyright © 2011 Ryan Lortie
|
||||||
|
*
|
||||||
|
* This library 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 of the
|
||||||
|
* licence, or (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This library 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 this library; if not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*
|
||||||
|
* Author: Ryan Lortie <desrt@desrt.ca>
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef __G_ATOMIC_H__
|
||||||
|
#define __G_ATOMIC_H__
|
||||||
|
|
||||||
|
#if !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION)
|
||||||
|
#error "Only <glib.h> can be included directly."
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include <glib/gtypes.h>
|
||||||
|
|
||||||
|
G_BEGIN_DECLS
|
||||||
|
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gint g_atomic_int_get (const volatile gint *atomic);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_atomic_int_set (volatile gint *atomic,
|
||||||
|
gint newval);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_atomic_int_inc (volatile gint *atomic);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gboolean g_atomic_int_dec_and_test (volatile gint *atomic);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gboolean g_atomic_int_compare_and_exchange (volatile gint *atomic,
|
||||||
|
gint oldval,
|
||||||
|
gint newval);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gint g_atomic_int_add (volatile gint *atomic,
|
||||||
|
gint val);
|
||||||
|
GLIB_AVAILABLE_IN_2_30
|
||||||
|
guint g_atomic_int_and (volatile guint *atomic,
|
||||||
|
guint val);
|
||||||
|
GLIB_AVAILABLE_IN_2_30
|
||||||
|
guint g_atomic_int_or (volatile guint *atomic,
|
||||||
|
guint val);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
guint g_atomic_int_xor (volatile guint *atomic,
|
||||||
|
guint val);
|
||||||
|
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gpointer g_atomic_pointer_get (const volatile void *atomic);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_atomic_pointer_set (volatile void *atomic,
|
||||||
|
gpointer newval);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gboolean g_atomic_pointer_compare_and_exchange (volatile void *atomic,
|
||||||
|
gpointer oldval,
|
||||||
|
gpointer newval);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gssize g_atomic_pointer_add (volatile void *atomic,
|
||||||
|
gssize val);
|
||||||
|
GLIB_AVAILABLE_IN_2_30
|
||||||
|
gsize g_atomic_pointer_and (volatile void *atomic,
|
||||||
|
gsize val);
|
||||||
|
GLIB_AVAILABLE_IN_2_30
|
||||||
|
gsize g_atomic_pointer_or (volatile void *atomic,
|
||||||
|
gsize val);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gsize g_atomic_pointer_xor (volatile void *atomic,
|
||||||
|
gsize val);
|
||||||
|
|
||||||
|
GLIB_DEPRECATED_IN_2_30_FOR(g_atomic_int_add)
|
||||||
|
gint g_atomic_int_exchange_and_add (volatile gint *atomic,
|
||||||
|
gint val);
|
||||||
|
|
||||||
|
G_END_DECLS
|
||||||
|
|
||||||
|
#if defined(G_ATOMIC_LOCK_FREE) && defined(__GCC_HAVE_SYNC_COMPARE_AND_SWAP_4)
|
||||||
|
|
||||||
|
/* We prefer the new C11-style atomic extension of GCC if available */
|
||||||
|
#if defined(__ATOMIC_SEQ_CST) && !defined(__clang__)
|
||||||
|
|
||||||
|
#define g_atomic_int_get(atomic) \
|
||||||
|
(G_GNUC_EXTENSION ({ \
|
||||||
|
G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gint)); \
|
||||||
|
(void) (0 ? *(atomic) ^ *(atomic) : 0); \
|
||||||
|
(gint) __atomic_load_4 ((atomic), __ATOMIC_SEQ_CST); \
|
||||||
|
}))
|
||||||
|
#define g_atomic_int_set(atomic, newval) \
|
||||||
|
(G_GNUC_EXTENSION ({ \
|
||||||
|
G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gint)); \
|
||||||
|
(void) (0 ? *(atomic) ^ (newval) : 0); \
|
||||||
|
__atomic_store_4 ((atomic), (newval), __ATOMIC_SEQ_CST); \
|
||||||
|
}))
|
||||||
|
|
||||||
|
#if GLIB_SIZEOF_VOID_P == 8
|
||||||
|
|
||||||
|
#define g_atomic_pointer_get(atomic) \
|
||||||
|
(G_GNUC_EXTENSION ({ \
|
||||||
|
G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gpointer)); \
|
||||||
|
(gpointer) __atomic_load_8 ((atomic), __ATOMIC_SEQ_CST); \
|
||||||
|
}))
|
||||||
|
#define g_atomic_pointer_set(atomic, newval) \
|
||||||
|
(G_GNUC_EXTENSION ({ \
|
||||||
|
G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gpointer)); \
|
||||||
|
(void) (0 ? (gpointer) *(atomic) : 0); \
|
||||||
|
__atomic_store_8 ((atomic), (gsize) (newval), __ATOMIC_SEQ_CST); \
|
||||||
|
}))
|
||||||
|
|
||||||
|
#else /* GLIB_SIZEOF_VOID_P == 8 */
|
||||||
|
|
||||||
|
#define g_atomic_pointer_get(atomic) \
|
||||||
|
(G_GNUC_EXTENSION ({ \
|
||||||
|
G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gpointer)); \
|
||||||
|
(gpointer) __atomic_load_4 ((atomic), __ATOMIC_SEQ_CST); \
|
||||||
|
}))
|
||||||
|
#define g_atomic_pointer_set(atomic, newval) \
|
||||||
|
(G_GNUC_EXTENSION ({ \
|
||||||
|
G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gpointer)); \
|
||||||
|
(void) (0 ? (gpointer) *(atomic) : 0); \
|
||||||
|
__atomic_store_4 ((atomic), (gsize) (newval), __ATOMIC_SEQ_CST); \
|
||||||
|
}))
|
||||||
|
|
||||||
|
#endif /* GLIB_SIZEOF_VOID_P == 8 */
|
||||||
|
|
||||||
|
#else /* defined(__ATOMIC_SEQ_CST) */
|
||||||
|
|
||||||
|
#define g_atomic_int_get(atomic) \
|
||||||
|
(G_GNUC_EXTENSION ({ \
|
||||||
|
G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gint)); \
|
||||||
|
(void) (0 ? *(atomic) ^ *(atomic) : 0); \
|
||||||
|
__sync_synchronize (); \
|
||||||
|
(gint) *(atomic); \
|
||||||
|
}))
|
||||||
|
#define g_atomic_int_set(atomic, newval) \
|
||||||
|
(G_GNUC_EXTENSION ({ \
|
||||||
|
G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gint)); \
|
||||||
|
(void) (0 ? *(atomic) ^ (newval) : 0); \
|
||||||
|
*(atomic) = (newval); \
|
||||||
|
__sync_synchronize (); \
|
||||||
|
}))
|
||||||
|
#define g_atomic_pointer_get(atomic) \
|
||||||
|
(G_GNUC_EXTENSION ({ \
|
||||||
|
G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gpointer)); \
|
||||||
|
__sync_synchronize (); \
|
||||||
|
(gpointer) *(atomic); \
|
||||||
|
}))
|
||||||
|
#define g_atomic_pointer_set(atomic, newval) \
|
||||||
|
(G_GNUC_EXTENSION ({ \
|
||||||
|
G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gpointer)); \
|
||||||
|
(void) (0 ? (gpointer) *(atomic) : 0); \
|
||||||
|
*(atomic) = (__typeof__ (*(atomic))) (gsize) (newval); \
|
||||||
|
__sync_synchronize (); \
|
||||||
|
}))
|
||||||
|
|
||||||
|
#endif /* !defined(__ATOMIC_SEQ_CST) */
|
||||||
|
|
||||||
|
#define g_atomic_int_inc(atomic) \
|
||||||
|
(G_GNUC_EXTENSION ({ \
|
||||||
|
G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gint)); \
|
||||||
|
(void) (0 ? *(atomic) ^ *(atomic) : 0); \
|
||||||
|
(void) __sync_fetch_and_add ((atomic), 1); \
|
||||||
|
}))
|
||||||
|
#define g_atomic_int_dec_and_test(atomic) \
|
||||||
|
(G_GNUC_EXTENSION ({ \
|
||||||
|
G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gint)); \
|
||||||
|
(void) (0 ? *(atomic) ^ *(atomic) : 0); \
|
||||||
|
__sync_fetch_and_sub ((atomic), 1) == 1; \
|
||||||
|
}))
|
||||||
|
#define g_atomic_int_compare_and_exchange(atomic, oldval, newval) \
|
||||||
|
(G_GNUC_EXTENSION ({ \
|
||||||
|
G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gint)); \
|
||||||
|
(void) (0 ? *(atomic) ^ (newval) ^ (oldval) : 0); \
|
||||||
|
(gboolean) __sync_bool_compare_and_swap ((atomic), (oldval), (newval)); \
|
||||||
|
}))
|
||||||
|
#define g_atomic_int_add(atomic, val) \
|
||||||
|
(G_GNUC_EXTENSION ({ \
|
||||||
|
G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gint)); \
|
||||||
|
(void) (0 ? *(atomic) ^ (val) : 0); \
|
||||||
|
(gint) __sync_fetch_and_add ((atomic), (val)); \
|
||||||
|
}))
|
||||||
|
#define g_atomic_int_and(atomic, val) \
|
||||||
|
(G_GNUC_EXTENSION ({ \
|
||||||
|
G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gint)); \
|
||||||
|
(void) (0 ? *(atomic) ^ (val) : 0); \
|
||||||
|
(guint) __sync_fetch_and_and ((atomic), (val)); \
|
||||||
|
}))
|
||||||
|
#define g_atomic_int_or(atomic, val) \
|
||||||
|
(G_GNUC_EXTENSION ({ \
|
||||||
|
G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gint)); \
|
||||||
|
(void) (0 ? *(atomic) ^ (val) : 0); \
|
||||||
|
(guint) __sync_fetch_and_or ((atomic), (val)); \
|
||||||
|
}))
|
||||||
|
#define g_atomic_int_xor(atomic, val) \
|
||||||
|
(G_GNUC_EXTENSION ({ \
|
||||||
|
G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gint)); \
|
||||||
|
(void) (0 ? *(atomic) ^ (val) : 0); \
|
||||||
|
(guint) __sync_fetch_and_xor ((atomic), (val)); \
|
||||||
|
}))
|
||||||
|
|
||||||
|
#define g_atomic_pointer_compare_and_exchange(atomic, oldval, newval) \
|
||||||
|
(G_GNUC_EXTENSION ({ \
|
||||||
|
G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gpointer)); \
|
||||||
|
(void) (0 ? (gpointer) *(atomic) : 0); \
|
||||||
|
(gboolean) __sync_bool_compare_and_swap ((atomic), (oldval), (newval)); \
|
||||||
|
}))
|
||||||
|
#define g_atomic_pointer_add(atomic, val) \
|
||||||
|
(G_GNUC_EXTENSION ({ \
|
||||||
|
G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gpointer)); \
|
||||||
|
(void) (0 ? (gpointer) *(atomic) : 0); \
|
||||||
|
(void) (0 ? (val) ^ (val) : 0); \
|
||||||
|
(gssize) __sync_fetch_and_add ((atomic), (val)); \
|
||||||
|
}))
|
||||||
|
#define g_atomic_pointer_and(atomic, val) \
|
||||||
|
(G_GNUC_EXTENSION ({ \
|
||||||
|
G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gpointer)); \
|
||||||
|
(void) (0 ? (gpointer) *(atomic) : 0); \
|
||||||
|
(void) (0 ? (val) ^ (val) : 0); \
|
||||||
|
(gsize) __sync_fetch_and_and ((atomic), (val)); \
|
||||||
|
}))
|
||||||
|
#define g_atomic_pointer_or(atomic, val) \
|
||||||
|
(G_GNUC_EXTENSION ({ \
|
||||||
|
G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gpointer)); \
|
||||||
|
(void) (0 ? (gpointer) *(atomic) : 0); \
|
||||||
|
(void) (0 ? (val) ^ (val) : 0); \
|
||||||
|
(gsize) __sync_fetch_and_or ((atomic), (val)); \
|
||||||
|
}))
|
||||||
|
#define g_atomic_pointer_xor(atomic, val) \
|
||||||
|
(G_GNUC_EXTENSION ({ \
|
||||||
|
G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gpointer)); \
|
||||||
|
(void) (0 ? (gpointer) *(atomic) : 0); \
|
||||||
|
(void) (0 ? (val) ^ (val) : 0); \
|
||||||
|
(gsize) __sync_fetch_and_xor ((atomic), (val)); \
|
||||||
|
}))
|
||||||
|
|
||||||
|
#else /* defined(G_ATOMIC_LOCK_FREE) && defined(__GCC_HAVE_SYNC_COMPARE_AND_SWAP_4) */
|
||||||
|
|
||||||
|
#define g_atomic_int_get(atomic) \
|
||||||
|
(g_atomic_int_get ((gint *) (atomic)))
|
||||||
|
#define g_atomic_int_set(atomic, newval) \
|
||||||
|
(g_atomic_int_set ((gint *) (atomic), (gint) (newval)))
|
||||||
|
#define g_atomic_int_compare_and_exchange(atomic, oldval, newval) \
|
||||||
|
(g_atomic_int_compare_and_exchange ((gint *) (atomic), (oldval), (newval)))
|
||||||
|
#define g_atomic_int_add(atomic, val) \
|
||||||
|
(g_atomic_int_add ((gint *) (atomic), (val)))
|
||||||
|
#define g_atomic_int_and(atomic, val) \
|
||||||
|
(g_atomic_int_and ((guint *) (atomic), (val)))
|
||||||
|
#define g_atomic_int_or(atomic, val) \
|
||||||
|
(g_atomic_int_or ((guint *) (atomic), (val)))
|
||||||
|
#define g_atomic_int_xor(atomic, val) \
|
||||||
|
(g_atomic_int_xor ((guint *) (atomic), (val)))
|
||||||
|
#define g_atomic_int_inc(atomic) \
|
||||||
|
(g_atomic_int_inc ((gint *) (atomic)))
|
||||||
|
#define g_atomic_int_dec_and_test(atomic) \
|
||||||
|
(g_atomic_int_dec_and_test ((gint *) (atomic)))
|
||||||
|
|
||||||
|
#define g_atomic_pointer_get(atomic) \
|
||||||
|
(g_atomic_pointer_get (atomic))
|
||||||
|
#define g_atomic_pointer_set(atomic, newval) \
|
||||||
|
(g_atomic_pointer_set ((atomic), (gpointer) (newval)))
|
||||||
|
#define g_atomic_pointer_compare_and_exchange(atomic, oldval, newval) \
|
||||||
|
(g_atomic_pointer_compare_and_exchange ((atomic), (gpointer) (oldval), (gpointer) (newval)))
|
||||||
|
#define g_atomic_pointer_add(atomic, val) \
|
||||||
|
(g_atomic_pointer_add ((atomic), (gssize) (val)))
|
||||||
|
#define g_atomic_pointer_and(atomic, val) \
|
||||||
|
(g_atomic_pointer_and ((atomic), (gsize) (val)))
|
||||||
|
#define g_atomic_pointer_or(atomic, val) \
|
||||||
|
(g_atomic_pointer_or ((atomic), (gsize) (val)))
|
||||||
|
#define g_atomic_pointer_xor(atomic, val) \
|
||||||
|
(g_atomic_pointer_xor ((atomic), (gsize) (val)))
|
||||||
|
|
||||||
|
#endif /* defined(__GNUC__) && defined(G_ATOMIC_OP_USE_GCC_BUILTINS) */
|
||||||
|
|
||||||
|
#endif /* __G_ATOMIC_H__ */
|
|
@ -0,0 +1,66 @@
|
||||||
|
/* GLIB - Library of useful routines for C programming
|
||||||
|
* Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald
|
||||||
|
*
|
||||||
|
* This library 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 of the License, or (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This library 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 this library; if not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Modified by the GLib Team and others 1997-2000. See the AUTHORS
|
||||||
|
* file for a list of people on the GLib Team. See the ChangeLog
|
||||||
|
* files for a list of changes. These files are distributed with
|
||||||
|
* GLib at ftp://ftp.gtk.org/pub/gtk/.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef __G_BACKTRACE_H__
|
||||||
|
#define __G_BACKTRACE_H__
|
||||||
|
|
||||||
|
#if !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION)
|
||||||
|
#error "Only <glib.h> can be included directly."
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include <glib/gtypes.h>
|
||||||
|
#include <signal.h>
|
||||||
|
|
||||||
|
G_BEGIN_DECLS
|
||||||
|
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_on_error_query (const gchar *prg_name);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_on_error_stack_trace (const gchar *prg_name);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* G_BREAKPOINT:
|
||||||
|
*
|
||||||
|
* Inserts a breakpoint instruction into the code.
|
||||||
|
*
|
||||||
|
* On x86 and alpha systems this is implemented as a soft interrupt
|
||||||
|
* and on other architectures it raises a `SIGTRAP` signal.
|
||||||
|
*/
|
||||||
|
#if (defined (__i386__) || defined (__x86_64__)) && defined (__GNUC__) && __GNUC__ >= 2
|
||||||
|
# define G_BREAKPOINT() G_STMT_START{ __asm__ __volatile__ ("int $03"); }G_STMT_END
|
||||||
|
#elif (defined (_MSC_VER) || defined (__DMC__)) && defined (_M_IX86)
|
||||||
|
# define G_BREAKPOINT() G_STMT_START{ __asm int 3h }G_STMT_END
|
||||||
|
#elif defined (_MSC_VER)
|
||||||
|
# define G_BREAKPOINT() G_STMT_START{ __debugbreak(); }G_STMT_END
|
||||||
|
#elif defined (__alpha__) && !defined(__osf__) && defined (__GNUC__) && __GNUC__ >= 2
|
||||||
|
# define G_BREAKPOINT() G_STMT_START{ __asm__ __volatile__ ("bpt"); }G_STMT_END
|
||||||
|
#elif defined (__APPLE__)
|
||||||
|
# define G_BREAKPOINT() G_STMT_START{ __builtin_trap(); }G_STMT_END
|
||||||
|
#else /* !__i386__ && !__alpha__ */
|
||||||
|
# define G_BREAKPOINT() G_STMT_START{ raise (SIGTRAP); }G_STMT_END
|
||||||
|
#endif /* __i386__ */
|
||||||
|
|
||||||
|
G_END_DECLS
|
||||||
|
|
||||||
|
#endif /* __G_BACKTRACE_H__ */
|
61
code/application/source/sf_app/code/source/sf_blue/inc/glib/glib/gbase64.h
Executable file
61
code/application/source/sf_app/code/source/sf_blue/inc/glib/glib/gbase64.h
Executable file
|
@ -0,0 +1,61 @@
|
||||||
|
/* gbase64.h - Base64 coding functions
|
||||||
|
*
|
||||||
|
* Copyright (C) 2005 Alexander Larsson <alexl@redhat.com>
|
||||||
|
*
|
||||||
|
* This library is free software; you can redistribute it and/or
|
||||||
|
* modify it under the terms of the GNU Library General Public
|
||||||
|
* License as published by the Free Software Foundation; either
|
||||||
|
* version 2 of the License, or (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This library 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
|
||||||
|
* Library General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU Library General Public
|
||||||
|
* License along with this library; if not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef __G_BASE64_H__
|
||||||
|
#define __G_BASE64_H__
|
||||||
|
|
||||||
|
#if !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION)
|
||||||
|
#error "Only <glib.h> can be included directly."
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include <glib/gtypes.h>
|
||||||
|
|
||||||
|
G_BEGIN_DECLS
|
||||||
|
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gsize g_base64_encode_step (const guchar *in,
|
||||||
|
gsize len,
|
||||||
|
gboolean break_lines,
|
||||||
|
gchar *out,
|
||||||
|
gint *state,
|
||||||
|
gint *save);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gsize g_base64_encode_close (gboolean break_lines,
|
||||||
|
gchar *out,
|
||||||
|
gint *state,
|
||||||
|
gint *save);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gchar* g_base64_encode (const guchar *data,
|
||||||
|
gsize len) G_GNUC_MALLOC;
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gsize g_base64_decode_step (const gchar *in,
|
||||||
|
gsize len,
|
||||||
|
guchar *out,
|
||||||
|
gint *state,
|
||||||
|
guint *save);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
guchar *g_base64_decode (const gchar *text,
|
||||||
|
gsize *out_len) G_GNUC_MALLOC;
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
guchar *g_base64_decode_inplace (gchar *text,
|
||||||
|
gsize *out_len);
|
||||||
|
|
||||||
|
|
||||||
|
G_END_DECLS
|
||||||
|
|
||||||
|
#endif /* __G_BASE64_H__ */
|
76
code/application/source/sf_app/code/source/sf_blue/inc/glib/glib/gbitlock.h
Executable file
76
code/application/source/sf_app/code/source/sf_blue/inc/glib/glib/gbitlock.h
Executable file
|
@ -0,0 +1,76 @@
|
||||||
|
/*
|
||||||
|
* Copyright © 2008 Ryan Lortie
|
||||||
|
* Copyright © 2010 Codethink Limited
|
||||||
|
*
|
||||||
|
* This library 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 of the licence, or (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This library 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 this library; if not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*
|
||||||
|
* Author: Ryan Lortie <desrt@desrt.ca>
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef __G_BITLOCK_H__
|
||||||
|
#define __G_BITLOCK_H__
|
||||||
|
|
||||||
|
#include <glib/gtypes.h>
|
||||||
|
|
||||||
|
#if !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION)
|
||||||
|
#error "Only <glib.h> can be included directly."
|
||||||
|
#endif
|
||||||
|
|
||||||
|
G_BEGIN_DECLS
|
||||||
|
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_bit_lock (volatile gint *address,
|
||||||
|
gint lock_bit);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gboolean g_bit_trylock (volatile gint *address,
|
||||||
|
gint lock_bit);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_bit_unlock (volatile gint *address,
|
||||||
|
gint lock_bit);
|
||||||
|
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_pointer_bit_lock (volatile void *address,
|
||||||
|
gint lock_bit);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gboolean g_pointer_bit_trylock (volatile void *address,
|
||||||
|
gint lock_bit);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_pointer_bit_unlock (volatile void *address,
|
||||||
|
gint lock_bit);
|
||||||
|
|
||||||
|
#ifdef __GNUC__
|
||||||
|
|
||||||
|
#define g_pointer_bit_lock(address, lock_bit) \
|
||||||
|
(G_GNUC_EXTENSION ({ \
|
||||||
|
G_STATIC_ASSERT (sizeof *(address) == sizeof (gpointer)); \
|
||||||
|
g_pointer_bit_lock ((address), (lock_bit)); \
|
||||||
|
}))
|
||||||
|
|
||||||
|
#define g_pointer_bit_trylock(address, lock_bit) \
|
||||||
|
(G_GNUC_EXTENSION ({ \
|
||||||
|
G_STATIC_ASSERT (sizeof *(address) == sizeof (gpointer)); \
|
||||||
|
g_pointer_bit_trylock ((address), (lock_bit)); \
|
||||||
|
}))
|
||||||
|
|
||||||
|
#define g_pointer_bit_unlock(address, lock_bit) \
|
||||||
|
(G_GNUC_EXTENSION ({ \
|
||||||
|
G_STATIC_ASSERT (sizeof *(address) == sizeof (gpointer)); \
|
||||||
|
g_pointer_bit_unlock ((address), (lock_bit)); \
|
||||||
|
}))
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
G_END_DECLS
|
||||||
|
|
||||||
|
#endif /* __G_BITLOCK_H_ */
|
255
code/application/source/sf_app/code/source/sf_blue/inc/glib/glib/gbookmarkfile.h
Executable file
255
code/application/source/sf_app/code/source/sf_blue/inc/glib/glib/gbookmarkfile.h
Executable file
|
@ -0,0 +1,255 @@
|
||||||
|
/* gbookmarkfile.h: parsing and building desktop bookmarks
|
||||||
|
*
|
||||||
|
* Copyright (C) 2005-2006 Emmanuele Bassi
|
||||||
|
*
|
||||||
|
* This library is free software; you can redistribute it and/or
|
||||||
|
* modify it under the terms of the GNU Library General Public
|
||||||
|
* License as published by the Free Software Foundation; either
|
||||||
|
* version 2 of the License, or (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This library 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
|
||||||
|
* Library General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU Library General Public
|
||||||
|
* License along with this library; if not, write to the
|
||||||
|
* Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef __G_BOOKMARK_FILE_H__
|
||||||
|
#define __G_BOOKMARK_FILE_H__
|
||||||
|
|
||||||
|
#if !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION)
|
||||||
|
#error "Only <glib.h> can be included directly."
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include <glib/gerror.h>
|
||||||
|
#include <time.h>
|
||||||
|
|
||||||
|
G_BEGIN_DECLS
|
||||||
|
|
||||||
|
/**
|
||||||
|
* G_BOOKMARK_FILE_ERROR:
|
||||||
|
*
|
||||||
|
* Error domain for bookmark file parsing.
|
||||||
|
* Errors in this domain will be from the #GBookmarkFileError
|
||||||
|
* enumeration. See #GError for information on error domains.
|
||||||
|
*/
|
||||||
|
#define G_BOOKMARK_FILE_ERROR (g_bookmark_file_error_quark ())
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* GBookmarkFileError:
|
||||||
|
* @G_BOOKMARK_FILE_ERROR_INVALID_URI: URI was ill-formed
|
||||||
|
* @G_BOOKMARK_FILE_ERROR_INVALID_VALUE: a requested field was not found
|
||||||
|
* @G_BOOKMARK_FILE_ERROR_APP_NOT_REGISTERED: a requested application did
|
||||||
|
* not register a bookmark
|
||||||
|
* @G_BOOKMARK_FILE_ERROR_URI_NOT_FOUND: a requested URI was not found
|
||||||
|
* @G_BOOKMARK_FILE_ERROR_READ: document was ill formed
|
||||||
|
* @G_BOOKMARK_FILE_ERROR_UNKNOWN_ENCODING: the text being parsed was
|
||||||
|
* in an unknown encoding
|
||||||
|
* @G_BOOKMARK_FILE_ERROR_WRITE: an error occurred while writing
|
||||||
|
* @G_BOOKMARK_FILE_ERROR_FILE_NOT_FOUND: requested file was not found
|
||||||
|
*
|
||||||
|
* Error codes returned by bookmark file parsing.
|
||||||
|
*/
|
||||||
|
typedef enum
|
||||||
|
{
|
||||||
|
G_BOOKMARK_FILE_ERROR_INVALID_URI,
|
||||||
|
G_BOOKMARK_FILE_ERROR_INVALID_VALUE,
|
||||||
|
G_BOOKMARK_FILE_ERROR_APP_NOT_REGISTERED,
|
||||||
|
G_BOOKMARK_FILE_ERROR_URI_NOT_FOUND,
|
||||||
|
G_BOOKMARK_FILE_ERROR_READ,
|
||||||
|
G_BOOKMARK_FILE_ERROR_UNKNOWN_ENCODING,
|
||||||
|
G_BOOKMARK_FILE_ERROR_WRITE,
|
||||||
|
G_BOOKMARK_FILE_ERROR_FILE_NOT_FOUND
|
||||||
|
} GBookmarkFileError;
|
||||||
|
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GQuark g_bookmark_file_error_quark (void);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* GBookmarkFile:
|
||||||
|
*
|
||||||
|
* The `GBookmarkFile` structure contains only
|
||||||
|
* private data and should not be directly accessed.
|
||||||
|
*/
|
||||||
|
typedef struct _GBookmarkFile GBookmarkFile;
|
||||||
|
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GBookmarkFile *g_bookmark_file_new (void);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_bookmark_file_free (GBookmarkFile *bookmark);
|
||||||
|
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gboolean g_bookmark_file_load_from_file (GBookmarkFile *bookmark,
|
||||||
|
const gchar *filename,
|
||||||
|
GError **error);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gboolean g_bookmark_file_load_from_data (GBookmarkFile *bookmark,
|
||||||
|
const gchar *data,
|
||||||
|
gsize length,
|
||||||
|
GError **error);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gboolean g_bookmark_file_load_from_data_dirs (GBookmarkFile *bookmark,
|
||||||
|
const gchar *file,
|
||||||
|
gchar **full_path,
|
||||||
|
GError **error);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gchar * g_bookmark_file_to_data (GBookmarkFile *bookmark,
|
||||||
|
gsize *length,
|
||||||
|
GError **error) G_GNUC_MALLOC;
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gboolean g_bookmark_file_to_file (GBookmarkFile *bookmark,
|
||||||
|
const gchar *filename,
|
||||||
|
GError **error);
|
||||||
|
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_bookmark_file_set_title (GBookmarkFile *bookmark,
|
||||||
|
const gchar *uri,
|
||||||
|
const gchar *title);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gchar * g_bookmark_file_get_title (GBookmarkFile *bookmark,
|
||||||
|
const gchar *uri,
|
||||||
|
GError **error) G_GNUC_MALLOC;
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_bookmark_file_set_description (GBookmarkFile *bookmark,
|
||||||
|
const gchar *uri,
|
||||||
|
const gchar *description);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gchar * g_bookmark_file_get_description (GBookmarkFile *bookmark,
|
||||||
|
const gchar *uri,
|
||||||
|
GError **error) G_GNUC_MALLOC;
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_bookmark_file_set_mime_type (GBookmarkFile *bookmark,
|
||||||
|
const gchar *uri,
|
||||||
|
const gchar *mime_type);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gchar * g_bookmark_file_get_mime_type (GBookmarkFile *bookmark,
|
||||||
|
const gchar *uri,
|
||||||
|
GError **error) G_GNUC_MALLOC;
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_bookmark_file_set_groups (GBookmarkFile *bookmark,
|
||||||
|
const gchar *uri,
|
||||||
|
const gchar **groups,
|
||||||
|
gsize length);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_bookmark_file_add_group (GBookmarkFile *bookmark,
|
||||||
|
const gchar *uri,
|
||||||
|
const gchar *group);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gboolean g_bookmark_file_has_group (GBookmarkFile *bookmark,
|
||||||
|
const gchar *uri,
|
||||||
|
const gchar *group,
|
||||||
|
GError **error);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gchar ** g_bookmark_file_get_groups (GBookmarkFile *bookmark,
|
||||||
|
const gchar *uri,
|
||||||
|
gsize *length,
|
||||||
|
GError **error) G_GNUC_MALLOC;
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_bookmark_file_add_application (GBookmarkFile *bookmark,
|
||||||
|
const gchar *uri,
|
||||||
|
const gchar *name,
|
||||||
|
const gchar *exec);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gboolean g_bookmark_file_has_application (GBookmarkFile *bookmark,
|
||||||
|
const gchar *uri,
|
||||||
|
const gchar *name,
|
||||||
|
GError **error);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gchar ** g_bookmark_file_get_applications (GBookmarkFile *bookmark,
|
||||||
|
const gchar *uri,
|
||||||
|
gsize *length,
|
||||||
|
GError **error) G_GNUC_MALLOC;
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gboolean g_bookmark_file_set_app_info (GBookmarkFile *bookmark,
|
||||||
|
const gchar *uri,
|
||||||
|
const gchar *name,
|
||||||
|
const gchar *exec,
|
||||||
|
gint count,
|
||||||
|
time_t stamp,
|
||||||
|
GError **error);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gboolean g_bookmark_file_get_app_info (GBookmarkFile *bookmark,
|
||||||
|
const gchar *uri,
|
||||||
|
const gchar *name,
|
||||||
|
gchar **exec,
|
||||||
|
guint *count,
|
||||||
|
time_t *stamp,
|
||||||
|
GError **error);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_bookmark_file_set_is_private (GBookmarkFile *bookmark,
|
||||||
|
const gchar *uri,
|
||||||
|
gboolean is_private);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gboolean g_bookmark_file_get_is_private (GBookmarkFile *bookmark,
|
||||||
|
const gchar *uri,
|
||||||
|
GError **error);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_bookmark_file_set_icon (GBookmarkFile *bookmark,
|
||||||
|
const gchar *uri,
|
||||||
|
const gchar *href,
|
||||||
|
const gchar *mime_type);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gboolean g_bookmark_file_get_icon (GBookmarkFile *bookmark,
|
||||||
|
const gchar *uri,
|
||||||
|
gchar **href,
|
||||||
|
gchar **mime_type,
|
||||||
|
GError **error);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_bookmark_file_set_added (GBookmarkFile *bookmark,
|
||||||
|
const gchar *uri,
|
||||||
|
time_t added);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
time_t g_bookmark_file_get_added (GBookmarkFile *bookmark,
|
||||||
|
const gchar *uri,
|
||||||
|
GError **error);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_bookmark_file_set_modified (GBookmarkFile *bookmark,
|
||||||
|
const gchar *uri,
|
||||||
|
time_t modified);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
time_t g_bookmark_file_get_modified (GBookmarkFile *bookmark,
|
||||||
|
const gchar *uri,
|
||||||
|
GError **error);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_bookmark_file_set_visited (GBookmarkFile *bookmark,
|
||||||
|
const gchar *uri,
|
||||||
|
time_t visited);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
time_t g_bookmark_file_get_visited (GBookmarkFile *bookmark,
|
||||||
|
const gchar *uri,
|
||||||
|
GError **error);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gboolean g_bookmark_file_has_item (GBookmarkFile *bookmark,
|
||||||
|
const gchar *uri);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gint g_bookmark_file_get_size (GBookmarkFile *bookmark);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gchar ** g_bookmark_file_get_uris (GBookmarkFile *bookmark,
|
||||||
|
gsize *length) G_GNUC_MALLOC;
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gboolean g_bookmark_file_remove_group (GBookmarkFile *bookmark,
|
||||||
|
const gchar *uri,
|
||||||
|
const gchar *group,
|
||||||
|
GError **error);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gboolean g_bookmark_file_remove_application (GBookmarkFile *bookmark,
|
||||||
|
const gchar *uri,
|
||||||
|
const gchar *name,
|
||||||
|
GError **error);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gboolean g_bookmark_file_remove_item (GBookmarkFile *bookmark,
|
||||||
|
const gchar *uri,
|
||||||
|
GError **error);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gboolean g_bookmark_file_move_item (GBookmarkFile *bookmark,
|
||||||
|
const gchar *old_uri,
|
||||||
|
const gchar *new_uri,
|
||||||
|
GError **error);
|
||||||
|
|
||||||
|
G_END_DECLS
|
||||||
|
|
||||||
|
#endif /* __G_BOOKMARK_FILE_H__ */
|
90
code/application/source/sf_app/code/source/sf_blue/inc/glib/glib/gbytes.h
Executable file
90
code/application/source/sf_app/code/source/sf_blue/inc/glib/glib/gbytes.h
Executable file
|
@ -0,0 +1,90 @@
|
||||||
|
/*
|
||||||
|
* Copyright © 2009, 2010 Codethink Limited
|
||||||
|
* Copyright © 2011 Collabora Ltd.
|
||||||
|
*
|
||||||
|
* This library 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 of the licence, or (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This library 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 this library; if not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*
|
||||||
|
* Author: Ryan Lortie <desrt@desrt.ca>
|
||||||
|
* Stef Walter <stefw@collabora.co.uk>
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef __G_BYTES_H__
|
||||||
|
#define __G_BYTES_H__
|
||||||
|
|
||||||
|
#if !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION)
|
||||||
|
#error "Only <glib.h> can be included directly."
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include <glib/gtypes.h>
|
||||||
|
#include <glib/garray.h>
|
||||||
|
|
||||||
|
G_BEGIN_DECLS
|
||||||
|
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GBytes * g_bytes_new (gconstpointer data,
|
||||||
|
gsize size);
|
||||||
|
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GBytes * g_bytes_new_take (gpointer data,
|
||||||
|
gsize size);
|
||||||
|
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GBytes * g_bytes_new_static (gconstpointer data,
|
||||||
|
gsize size);
|
||||||
|
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GBytes * g_bytes_new_with_free_func (gconstpointer data,
|
||||||
|
gsize size,
|
||||||
|
GDestroyNotify free_func,
|
||||||
|
gpointer user_data);
|
||||||
|
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GBytes * g_bytes_new_from_bytes (GBytes *bytes,
|
||||||
|
gsize offset,
|
||||||
|
gsize length);
|
||||||
|
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gconstpointer g_bytes_get_data (GBytes *bytes,
|
||||||
|
gsize *size);
|
||||||
|
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gsize g_bytes_get_size (GBytes *bytes);
|
||||||
|
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GBytes * g_bytes_ref (GBytes *bytes);
|
||||||
|
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_bytes_unref (GBytes *bytes);
|
||||||
|
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gpointer g_bytes_unref_to_data (GBytes *bytes,
|
||||||
|
gsize *size);
|
||||||
|
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GByteArray * g_bytes_unref_to_array (GBytes *bytes);
|
||||||
|
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
guint g_bytes_hash (gconstpointer bytes);
|
||||||
|
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gboolean g_bytes_equal (gconstpointer bytes1,
|
||||||
|
gconstpointer bytes2);
|
||||||
|
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gint g_bytes_compare (gconstpointer bytes1,
|
||||||
|
gconstpointer bytes2);
|
||||||
|
|
||||||
|
G_END_DECLS
|
||||||
|
|
||||||
|
#endif /* __G_BYTES_H__ */
|
43
code/application/source/sf_app/code/source/sf_blue/inc/glib/glib/gcharset.h
Executable file
43
code/application/source/sf_app/code/source/sf_blue/inc/glib/glib/gcharset.h
Executable file
|
@ -0,0 +1,43 @@
|
||||||
|
/* gcharset.h - Charset functions
|
||||||
|
*
|
||||||
|
* Copyright (C) 2011 Red Hat, Inc.
|
||||||
|
*
|
||||||
|
* The GLib Library 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 of the
|
||||||
|
* License, or (at your option) any later version.
|
||||||
|
*
|
||||||
|
* The GLib Library 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 the Gnome Library; see the file COPYING.LIB. If not,
|
||||||
|
* see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef __G_CHARSET_H__
|
||||||
|
#define __G_CHARSET_H__
|
||||||
|
|
||||||
|
#if !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION)
|
||||||
|
#error "Only <glib.h> can be included directly."
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include <glib/gtypes.h>
|
||||||
|
|
||||||
|
G_BEGIN_DECLS
|
||||||
|
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gboolean g_get_charset (const char **charset);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gchar * g_get_codeset (void);
|
||||||
|
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
const gchar * const * g_get_language_names (void);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gchar ** g_get_locale_variants (const gchar *locale);
|
||||||
|
|
||||||
|
G_END_DECLS
|
||||||
|
|
||||||
|
#endif /* __G_CHARSET_H__ */
|
101
code/application/source/sf_app/code/source/sf_blue/inc/glib/glib/gchecksum.h
Executable file
101
code/application/source/sf_app/code/source/sf_blue/inc/glib/glib/gchecksum.h
Executable file
|
@ -0,0 +1,101 @@
|
||||||
|
/* gchecksum.h - data hashing functions
|
||||||
|
*
|
||||||
|
* Copyright (C) 2007 Emmanuele Bassi <ebassi@gnome.org>
|
||||||
|
*
|
||||||
|
* This library is free software; you can redistribute it and/or
|
||||||
|
* modify it under the terms of the GNU Library General Public
|
||||||
|
* License as published by the Free Software Foundation; either
|
||||||
|
* version 2 of the License, or (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This library 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
|
||||||
|
* Library General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU Library General Public
|
||||||
|
* License along with this library; if not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef __G_CHECKSUM_H__
|
||||||
|
#define __G_CHECKSUM_H__
|
||||||
|
|
||||||
|
#if !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION)
|
||||||
|
#error "Only <glib.h> can be included directly."
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include <glib/gtypes.h>
|
||||||
|
#include <glib/gbytes.h>
|
||||||
|
|
||||||
|
G_BEGIN_DECLS
|
||||||
|
|
||||||
|
/**
|
||||||
|
* GChecksumType:
|
||||||
|
* @G_CHECKSUM_MD5: Use the MD5 hashing algorithm
|
||||||
|
* @G_CHECKSUM_SHA1: Use the SHA-1 hashing algorithm
|
||||||
|
* @G_CHECKSUM_SHA256: Use the SHA-256 hashing algorithm
|
||||||
|
* @G_CHECKSUM_SHA512: Use the SHA-512 hashing algorithm (Since: 2.36)
|
||||||
|
*
|
||||||
|
* The hashing algorithm to be used by #GChecksum when performing the
|
||||||
|
* digest of some data.
|
||||||
|
*
|
||||||
|
* Note that the #GChecksumType enumeration may be extended at a later
|
||||||
|
* date to include new hashing algorithm types.
|
||||||
|
*
|
||||||
|
* Since: 2.16
|
||||||
|
*/
|
||||||
|
typedef enum {
|
||||||
|
G_CHECKSUM_MD5,
|
||||||
|
G_CHECKSUM_SHA1,
|
||||||
|
G_CHECKSUM_SHA256,
|
||||||
|
G_CHECKSUM_SHA512
|
||||||
|
} GChecksumType;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* GChecksum:
|
||||||
|
*
|
||||||
|
* An opaque structure representing a checksumming operation.
|
||||||
|
* To create a new GChecksum, use g_checksum_new(). To free
|
||||||
|
* a GChecksum, use g_checksum_free().
|
||||||
|
*
|
||||||
|
* Since: 2.16
|
||||||
|
*/
|
||||||
|
typedef struct _GChecksum GChecksum;
|
||||||
|
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gssize g_checksum_type_get_length (GChecksumType checksum_type);
|
||||||
|
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GChecksum * g_checksum_new (GChecksumType checksum_type);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_checksum_reset (GChecksum *checksum);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GChecksum * g_checksum_copy (const GChecksum *checksum);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_checksum_free (GChecksum *checksum);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_checksum_update (GChecksum *checksum,
|
||||||
|
const guchar *data,
|
||||||
|
gssize length);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
const gchar * g_checksum_get_string (GChecksum *checksum);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_checksum_get_digest (GChecksum *checksum,
|
||||||
|
guint8 *buffer,
|
||||||
|
gsize *digest_len);
|
||||||
|
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gchar *g_compute_checksum_for_data (GChecksumType checksum_type,
|
||||||
|
const guchar *data,
|
||||||
|
gsize length);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gchar *g_compute_checksum_for_string (GChecksumType checksum_type,
|
||||||
|
const gchar *str,
|
||||||
|
gssize length);
|
||||||
|
|
||||||
|
GLIB_AVAILABLE_IN_2_34
|
||||||
|
gchar *g_compute_checksum_for_bytes (GChecksumType checksum_type,
|
||||||
|
GBytes *data);
|
||||||
|
|
||||||
|
G_END_DECLS
|
||||||
|
|
||||||
|
#endif /* __G_CHECKSUM_H__ */
|
201
code/application/source/sf_app/code/source/sf_blue/inc/glib/glib/gconvert.h
Executable file
201
code/application/source/sf_app/code/source/sf_blue/inc/glib/glib/gconvert.h
Executable file
|
@ -0,0 +1,201 @@
|
||||||
|
/* GLIB - Library of useful routines for C programming
|
||||||
|
* Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald
|
||||||
|
*
|
||||||
|
* This library 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 of the License, or (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This library 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 this library; if not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Modified by the GLib Team and others 1997-2000. See the AUTHORS
|
||||||
|
* file for a list of people on the GLib Team. See the ChangeLog
|
||||||
|
* files for a list of changes. These files are distributed with
|
||||||
|
* GLib at ftp://ftp.gtk.org/pub/gtk/.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef __G_CONVERT_H__
|
||||||
|
#define __G_CONVERT_H__
|
||||||
|
|
||||||
|
#if !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION)
|
||||||
|
#error "Only <glib.h> can be included directly."
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include <glib/gerror.h>
|
||||||
|
|
||||||
|
G_BEGIN_DECLS
|
||||||
|
|
||||||
|
/**
|
||||||
|
* GConvertError:
|
||||||
|
* @G_CONVERT_ERROR_NO_CONVERSION: Conversion between the requested character
|
||||||
|
* sets is not supported.
|
||||||
|
* @G_CONVERT_ERROR_ILLEGAL_SEQUENCE: Invalid byte sequence in conversion input.
|
||||||
|
* @G_CONVERT_ERROR_FAILED: Conversion failed for some reason.
|
||||||
|
* @G_CONVERT_ERROR_PARTIAL_INPUT: Partial character sequence at end of input.
|
||||||
|
* @G_CONVERT_ERROR_BAD_URI: URI is invalid.
|
||||||
|
* @G_CONVERT_ERROR_NOT_ABSOLUTE_PATH: Pathname is not an absolute path.
|
||||||
|
* @G_CONVERT_ERROR_NO_MEMORY: No memory available. Since: 2.40
|
||||||
|
*
|
||||||
|
* Error codes returned by character set conversion routines.
|
||||||
|
*/
|
||||||
|
typedef enum
|
||||||
|
{
|
||||||
|
G_CONVERT_ERROR_NO_CONVERSION,
|
||||||
|
G_CONVERT_ERROR_ILLEGAL_SEQUENCE,
|
||||||
|
G_CONVERT_ERROR_FAILED,
|
||||||
|
G_CONVERT_ERROR_PARTIAL_INPUT,
|
||||||
|
G_CONVERT_ERROR_BAD_URI,
|
||||||
|
G_CONVERT_ERROR_NOT_ABSOLUTE_PATH,
|
||||||
|
G_CONVERT_ERROR_NO_MEMORY
|
||||||
|
} GConvertError;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* G_CONVERT_ERROR:
|
||||||
|
*
|
||||||
|
* Error domain for character set conversions. Errors in this domain will
|
||||||
|
* be from the #GConvertError enumeration. See #GError for information on
|
||||||
|
* error domains.
|
||||||
|
*/
|
||||||
|
#define G_CONVERT_ERROR g_convert_error_quark()
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GQuark g_convert_error_quark (void);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* GIConv:
|
||||||
|
*
|
||||||
|
* The GIConv struct wraps an iconv() conversion descriptor. It contains
|
||||||
|
* private data and should only be accessed using the following functions.
|
||||||
|
*/
|
||||||
|
typedef struct _GIConv *GIConv;
|
||||||
|
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GIConv g_iconv_open (const gchar *to_codeset,
|
||||||
|
const gchar *from_codeset);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gsize g_iconv (GIConv converter,
|
||||||
|
gchar **inbuf,
|
||||||
|
gsize *inbytes_left,
|
||||||
|
gchar **outbuf,
|
||||||
|
gsize *outbytes_left);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gint g_iconv_close (GIConv converter);
|
||||||
|
|
||||||
|
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gchar* g_convert (const gchar *str,
|
||||||
|
gssize len,
|
||||||
|
const gchar *to_codeset,
|
||||||
|
const gchar *from_codeset,
|
||||||
|
gsize *bytes_read,
|
||||||
|
gsize *bytes_written,
|
||||||
|
GError **error) G_GNUC_MALLOC;
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gchar* g_convert_with_iconv (const gchar *str,
|
||||||
|
gssize len,
|
||||||
|
GIConv converter,
|
||||||
|
gsize *bytes_read,
|
||||||
|
gsize *bytes_written,
|
||||||
|
GError **error) G_GNUC_MALLOC;
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gchar* g_convert_with_fallback (const gchar *str,
|
||||||
|
gssize len,
|
||||||
|
const gchar *to_codeset,
|
||||||
|
const gchar *from_codeset,
|
||||||
|
const gchar *fallback,
|
||||||
|
gsize *bytes_read,
|
||||||
|
gsize *bytes_written,
|
||||||
|
GError **error) G_GNUC_MALLOC;
|
||||||
|
|
||||||
|
|
||||||
|
/* Convert between libc's idea of strings and UTF-8.
|
||||||
|
*/
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gchar* g_locale_to_utf8 (const gchar *opsysstring,
|
||||||
|
gssize len,
|
||||||
|
gsize *bytes_read,
|
||||||
|
gsize *bytes_written,
|
||||||
|
GError **error) G_GNUC_MALLOC;
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gchar* g_locale_from_utf8 (const gchar *utf8string,
|
||||||
|
gssize len,
|
||||||
|
gsize *bytes_read,
|
||||||
|
gsize *bytes_written,
|
||||||
|
GError **error) G_GNUC_MALLOC;
|
||||||
|
|
||||||
|
/* Convert between the operating system (or C runtime)
|
||||||
|
* representation of file names and UTF-8.
|
||||||
|
*/
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gchar* g_filename_to_utf8 (const gchar *opsysstring,
|
||||||
|
gssize len,
|
||||||
|
gsize *bytes_read,
|
||||||
|
gsize *bytes_written,
|
||||||
|
GError **error) G_GNUC_MALLOC;
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gchar* g_filename_from_utf8 (const gchar *utf8string,
|
||||||
|
gssize len,
|
||||||
|
gsize *bytes_read,
|
||||||
|
gsize *bytes_written,
|
||||||
|
GError **error) G_GNUC_MALLOC;
|
||||||
|
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gchar *g_filename_from_uri (const gchar *uri,
|
||||||
|
gchar **hostname,
|
||||||
|
GError **error) G_GNUC_MALLOC;
|
||||||
|
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gchar *g_filename_to_uri (const gchar *filename,
|
||||||
|
const gchar *hostname,
|
||||||
|
GError **error) G_GNUC_MALLOC;
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gchar *g_filename_display_name (const gchar *filename) G_GNUC_MALLOC;
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gboolean g_get_filename_charsets (const gchar ***charsets);
|
||||||
|
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gchar *g_filename_display_basename (const gchar *filename) G_GNUC_MALLOC;
|
||||||
|
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gchar **g_uri_list_extract_uris (const gchar *uri_list) G_GNUC_MALLOC;
|
||||||
|
|
||||||
|
#ifndef __GTK_DOC_IGNORE__
|
||||||
|
#ifdef G_OS_WIN32
|
||||||
|
#define g_filename_to_utf8 g_filename_to_utf8_utf8
|
||||||
|
#define g_filename_from_utf8 g_filename_from_utf8_utf8
|
||||||
|
#define g_filename_from_uri g_filename_from_uri_utf8
|
||||||
|
#define g_filename_to_uri g_filename_to_uri_utf8
|
||||||
|
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gchar* g_filename_to_utf8_utf8 (const gchar *opsysstring,
|
||||||
|
gssize len,
|
||||||
|
gsize *bytes_read,
|
||||||
|
gsize *bytes_written,
|
||||||
|
GError **error) G_GNUC_MALLOC;
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gchar* g_filename_from_utf8_utf8 (const gchar *utf8string,
|
||||||
|
gssize len,
|
||||||
|
gsize *bytes_read,
|
||||||
|
gsize *bytes_written,
|
||||||
|
GError **error) G_GNUC_MALLOC;
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gchar *g_filename_from_uri_utf8 (const gchar *uri,
|
||||||
|
gchar **hostname,
|
||||||
|
GError **error) G_GNUC_MALLOC;
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gchar *g_filename_to_uri_utf8 (const gchar *filename,
|
||||||
|
const gchar *hostname,
|
||||||
|
GError **error) G_GNUC_MALLOC;
|
||||||
|
#endif
|
||||||
|
#endif /* __GTK_DOC_IGNORE__ */
|
||||||
|
|
||||||
|
G_END_DECLS
|
||||||
|
|
||||||
|
#endif /* __G_CONVERT_H__ */
|
150
code/application/source/sf_app/code/source/sf_blue/inc/glib/glib/gdataset.h
Executable file
150
code/application/source/sf_app/code/source/sf_blue/inc/glib/glib/gdataset.h
Executable file
|
@ -0,0 +1,150 @@
|
||||||
|
/* GLIB - Library of useful routines for C programming
|
||||||
|
* Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald
|
||||||
|
*
|
||||||
|
* This library 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 of the License, or (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This library 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 this library; if not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Modified by the GLib Team and others 1997-2000. See the AUTHORS
|
||||||
|
* file for a list of people on the GLib Team. See the ChangeLog
|
||||||
|
* files for a list of changes. These files are distributed with
|
||||||
|
* GLib at ftp://ftp.gtk.org/pub/gtk/.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef __G_DATASET_H__
|
||||||
|
#define __G_DATASET_H__
|
||||||
|
|
||||||
|
#if !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION)
|
||||||
|
#error "Only <glib.h> can be included directly."
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include <glib/gquark.h>
|
||||||
|
|
||||||
|
G_BEGIN_DECLS
|
||||||
|
|
||||||
|
typedef struct _GData GData;
|
||||||
|
|
||||||
|
typedef void (*GDataForeachFunc) (GQuark key_id,
|
||||||
|
gpointer data,
|
||||||
|
gpointer user_data);
|
||||||
|
|
||||||
|
/* Keyed Data List
|
||||||
|
*/
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_datalist_init (GData **datalist);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_datalist_clear (GData **datalist);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gpointer g_datalist_id_get_data (GData **datalist,
|
||||||
|
GQuark key_id);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_datalist_id_set_data_full (GData **datalist,
|
||||||
|
GQuark key_id,
|
||||||
|
gpointer data,
|
||||||
|
GDestroyNotify destroy_func);
|
||||||
|
|
||||||
|
typedef gpointer (*GDuplicateFunc) (gpointer data, gpointer user_data);
|
||||||
|
|
||||||
|
GLIB_AVAILABLE_IN_2_34
|
||||||
|
gpointer g_datalist_id_dup_data (GData **datalist,
|
||||||
|
GQuark key_id,
|
||||||
|
GDuplicateFunc dup_func,
|
||||||
|
gpointer user_data);
|
||||||
|
GLIB_AVAILABLE_IN_2_34
|
||||||
|
gboolean g_datalist_id_replace_data (GData **datalist,
|
||||||
|
GQuark key_id,
|
||||||
|
gpointer oldval,
|
||||||
|
gpointer newval,
|
||||||
|
GDestroyNotify destroy,
|
||||||
|
GDestroyNotify *old_destroy);
|
||||||
|
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gpointer g_datalist_id_remove_no_notify (GData **datalist,
|
||||||
|
GQuark key_id);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_datalist_foreach (GData **datalist,
|
||||||
|
GDataForeachFunc func,
|
||||||
|
gpointer user_data);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* G_DATALIST_FLAGS_MASK:
|
||||||
|
*
|
||||||
|
* A bitmask that restricts the possible flags passed to
|
||||||
|
* g_datalist_set_flags(). Passing a flags value where
|
||||||
|
* flags & ~G_DATALIST_FLAGS_MASK != 0 is an error.
|
||||||
|
*/
|
||||||
|
#define G_DATALIST_FLAGS_MASK 0x3
|
||||||
|
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_datalist_set_flags (GData **datalist,
|
||||||
|
guint flags);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_datalist_unset_flags (GData **datalist,
|
||||||
|
guint flags);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
guint g_datalist_get_flags (GData **datalist);
|
||||||
|
|
||||||
|
#define g_datalist_id_set_data(dl, q, d) \
|
||||||
|
g_datalist_id_set_data_full ((dl), (q), (d), NULL)
|
||||||
|
#define g_datalist_id_remove_data(dl, q) \
|
||||||
|
g_datalist_id_set_data ((dl), (q), NULL)
|
||||||
|
#define g_datalist_set_data_full(dl, k, d, f) \
|
||||||
|
g_datalist_id_set_data_full ((dl), g_quark_from_string (k), (d), (f))
|
||||||
|
#define g_datalist_remove_no_notify(dl, k) \
|
||||||
|
g_datalist_id_remove_no_notify ((dl), g_quark_try_string (k))
|
||||||
|
#define g_datalist_set_data(dl, k, d) \
|
||||||
|
g_datalist_set_data_full ((dl), (k), (d), NULL)
|
||||||
|
#define g_datalist_remove_data(dl, k) \
|
||||||
|
g_datalist_id_set_data ((dl), g_quark_try_string (k), NULL)
|
||||||
|
|
||||||
|
/* Location Associated Keyed Data
|
||||||
|
*/
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_dataset_destroy (gconstpointer dataset_location);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gpointer g_dataset_id_get_data (gconstpointer dataset_location,
|
||||||
|
GQuark key_id);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gpointer g_datalist_get_data (GData **datalist,
|
||||||
|
const gchar *key);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_dataset_id_set_data_full (gconstpointer dataset_location,
|
||||||
|
GQuark key_id,
|
||||||
|
gpointer data,
|
||||||
|
GDestroyNotify destroy_func);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gpointer g_dataset_id_remove_no_notify (gconstpointer dataset_location,
|
||||||
|
GQuark key_id);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_dataset_foreach (gconstpointer dataset_location,
|
||||||
|
GDataForeachFunc func,
|
||||||
|
gpointer user_data);
|
||||||
|
#define g_dataset_id_set_data(l, k, d) \
|
||||||
|
g_dataset_id_set_data_full ((l), (k), (d), NULL)
|
||||||
|
#define g_dataset_id_remove_data(l, k) \
|
||||||
|
g_dataset_id_set_data ((l), (k), NULL)
|
||||||
|
#define g_dataset_get_data(l, k) \
|
||||||
|
(g_dataset_id_get_data ((l), g_quark_try_string (k)))
|
||||||
|
#define g_dataset_set_data_full(l, k, d, f) \
|
||||||
|
g_dataset_id_set_data_full ((l), g_quark_from_string (k), (d), (f))
|
||||||
|
#define g_dataset_remove_no_notify(l, k) \
|
||||||
|
g_dataset_id_remove_no_notify ((l), g_quark_try_string (k))
|
||||||
|
#define g_dataset_set_data(l, k, d) \
|
||||||
|
g_dataset_set_data_full ((l), (k), (d), NULL)
|
||||||
|
#define g_dataset_remove_data(l, k) \
|
||||||
|
g_dataset_id_set_data ((l), g_quark_try_string (k), NULL)
|
||||||
|
|
||||||
|
G_END_DECLS
|
||||||
|
|
||||||
|
#endif /* __G_DATASET_H__ */
|
309
code/application/source/sf_app/code/source/sf_blue/inc/glib/glib/gdate.h
Executable file
309
code/application/source/sf_app/code/source/sf_blue/inc/glib/glib/gdate.h
Executable file
|
@ -0,0 +1,309 @@
|
||||||
|
/* GLIB - Library of useful routines for C programming
|
||||||
|
* Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald
|
||||||
|
*
|
||||||
|
* This library 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 of the License, or (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This library 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 this library; if not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Modified by the GLib Team and others 1997-2000. See the AUTHORS
|
||||||
|
* file for a list of people on the GLib Team. See the ChangeLog
|
||||||
|
* files for a list of changes. These files are distributed with
|
||||||
|
* GLib at ftp://ftp.gtk.org/pub/gtk/.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef __G_DATE_H__
|
||||||
|
#define __G_DATE_H__
|
||||||
|
|
||||||
|
#if !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION)
|
||||||
|
#error "Only <glib.h> can be included directly."
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include <time.h>
|
||||||
|
|
||||||
|
#include <glib/gtypes.h>
|
||||||
|
#include <glib/gquark.h>
|
||||||
|
|
||||||
|
G_BEGIN_DECLS
|
||||||
|
|
||||||
|
/* GDate
|
||||||
|
*
|
||||||
|
* Date calculations (not time for now, to be resolved). These are a
|
||||||
|
* mutant combination of Steffen Beyer's DateCalc routines
|
||||||
|
* (http://www.perl.com/CPAN/authors/id/STBEY/) and Jon Trowbridge's
|
||||||
|
* date routines (written for in-house software). Written by Havoc
|
||||||
|
* Pennington <hp@pobox.com>
|
||||||
|
*/
|
||||||
|
|
||||||
|
typedef gint32 GTime;
|
||||||
|
typedef guint16 GDateYear;
|
||||||
|
typedef guint8 GDateDay; /* day of the month */
|
||||||
|
typedef struct _GDate GDate;
|
||||||
|
|
||||||
|
/* enum used to specify order of appearance in parsed date strings */
|
||||||
|
typedef enum
|
||||||
|
{
|
||||||
|
G_DATE_DAY = 0,
|
||||||
|
G_DATE_MONTH = 1,
|
||||||
|
G_DATE_YEAR = 2
|
||||||
|
} GDateDMY;
|
||||||
|
|
||||||
|
/* actual week and month values */
|
||||||
|
typedef enum
|
||||||
|
{
|
||||||
|
G_DATE_BAD_WEEKDAY = 0,
|
||||||
|
G_DATE_MONDAY = 1,
|
||||||
|
G_DATE_TUESDAY = 2,
|
||||||
|
G_DATE_WEDNESDAY = 3,
|
||||||
|
G_DATE_THURSDAY = 4,
|
||||||
|
G_DATE_FRIDAY = 5,
|
||||||
|
G_DATE_SATURDAY = 6,
|
||||||
|
G_DATE_SUNDAY = 7
|
||||||
|
} GDateWeekday;
|
||||||
|
typedef enum
|
||||||
|
{
|
||||||
|
G_DATE_BAD_MONTH = 0,
|
||||||
|
G_DATE_JANUARY = 1,
|
||||||
|
G_DATE_FEBRUARY = 2,
|
||||||
|
G_DATE_MARCH = 3,
|
||||||
|
G_DATE_APRIL = 4,
|
||||||
|
G_DATE_MAY = 5,
|
||||||
|
G_DATE_JUNE = 6,
|
||||||
|
G_DATE_JULY = 7,
|
||||||
|
G_DATE_AUGUST = 8,
|
||||||
|
G_DATE_SEPTEMBER = 9,
|
||||||
|
G_DATE_OCTOBER = 10,
|
||||||
|
G_DATE_NOVEMBER = 11,
|
||||||
|
G_DATE_DECEMBER = 12
|
||||||
|
} GDateMonth;
|
||||||
|
|
||||||
|
#define G_DATE_BAD_JULIAN 0U
|
||||||
|
#define G_DATE_BAD_DAY 0U
|
||||||
|
#define G_DATE_BAD_YEAR 0U
|
||||||
|
|
||||||
|
/* Note: directly manipulating structs is generally a bad idea, but
|
||||||
|
* in this case it's an *incredibly* bad idea, because all or part
|
||||||
|
* of this struct can be invalid at any given time. Use the functions,
|
||||||
|
* or you will get hosed, I promise.
|
||||||
|
*/
|
||||||
|
struct _GDate
|
||||||
|
{
|
||||||
|
guint julian_days : 32; /* julian days representation - we use a
|
||||||
|
* bitfield hoping that 64 bit platforms
|
||||||
|
* will pack this whole struct in one big
|
||||||
|
* int
|
||||||
|
*/
|
||||||
|
|
||||||
|
guint julian : 1; /* julian is valid */
|
||||||
|
guint dmy : 1; /* dmy is valid */
|
||||||
|
|
||||||
|
/* DMY representation */
|
||||||
|
guint day : 6;
|
||||||
|
guint month : 4;
|
||||||
|
guint year : 16;
|
||||||
|
};
|
||||||
|
|
||||||
|
/* g_date_new() returns an invalid date, you then have to _set() stuff
|
||||||
|
* to get a usable object. You can also allocate a GDate statically,
|
||||||
|
* then call g_date_clear() to initialize.
|
||||||
|
*/
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GDate* g_date_new (void);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GDate* g_date_new_dmy (GDateDay day,
|
||||||
|
GDateMonth month,
|
||||||
|
GDateYear year);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GDate* g_date_new_julian (guint32 julian_day);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_date_free (GDate *date);
|
||||||
|
|
||||||
|
/* check g_date_valid() after doing an operation that might fail, like
|
||||||
|
* _parse. Almost all g_date operations are undefined on invalid
|
||||||
|
* dates (the exceptions are the mutators, since you need those to
|
||||||
|
* return to validity).
|
||||||
|
*/
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gboolean g_date_valid (const GDate *date);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gboolean g_date_valid_day (GDateDay day) G_GNUC_CONST;
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gboolean g_date_valid_month (GDateMonth month) G_GNUC_CONST;
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gboolean g_date_valid_year (GDateYear year) G_GNUC_CONST;
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gboolean g_date_valid_weekday (GDateWeekday weekday) G_GNUC_CONST;
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gboolean g_date_valid_julian (guint32 julian_date) G_GNUC_CONST;
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gboolean g_date_valid_dmy (GDateDay day,
|
||||||
|
GDateMonth month,
|
||||||
|
GDateYear year) G_GNUC_CONST;
|
||||||
|
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GDateWeekday g_date_get_weekday (const GDate *date);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GDateMonth g_date_get_month (const GDate *date);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GDateYear g_date_get_year (const GDate *date);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GDateDay g_date_get_day (const GDate *date);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
guint32 g_date_get_julian (const GDate *date);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
guint g_date_get_day_of_year (const GDate *date);
|
||||||
|
/* First monday/sunday is the start of week 1; if we haven't reached
|
||||||
|
* that day, return 0. These are not ISO weeks of the year; that
|
||||||
|
* routine needs to be added.
|
||||||
|
* these functions return the number of weeks, starting on the
|
||||||
|
* corrsponding day
|
||||||
|
*/
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
guint g_date_get_monday_week_of_year (const GDate *date);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
guint g_date_get_sunday_week_of_year (const GDate *date);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
guint g_date_get_iso8601_week_of_year (const GDate *date);
|
||||||
|
|
||||||
|
/* If you create a static date struct you need to clear it to get it
|
||||||
|
* in a sane state before use. You can clear a whole array at
|
||||||
|
* once with the ndates argument.
|
||||||
|
*/
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_date_clear (GDate *date,
|
||||||
|
guint n_dates);
|
||||||
|
|
||||||
|
/* The parse routine is meant for dates typed in by a user, so it
|
||||||
|
* permits many formats but tries to catch common typos. If your data
|
||||||
|
* needs to be strictly validated, it is not an appropriate function.
|
||||||
|
*/
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_date_set_parse (GDate *date,
|
||||||
|
const gchar *str);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_date_set_time_t (GDate *date,
|
||||||
|
time_t timet);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_date_set_time_val (GDate *date,
|
||||||
|
GTimeVal *timeval);
|
||||||
|
#ifndef G_DISABLE_DEPRECATED
|
||||||
|
GLIB_DEPRECATED_FOR(g_date_set_time_t)
|
||||||
|
void g_date_set_time (GDate *date,
|
||||||
|
GTime time_);
|
||||||
|
#endif
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_date_set_month (GDate *date,
|
||||||
|
GDateMonth month);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_date_set_day (GDate *date,
|
||||||
|
GDateDay day);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_date_set_year (GDate *date,
|
||||||
|
GDateYear year);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_date_set_dmy (GDate *date,
|
||||||
|
GDateDay day,
|
||||||
|
GDateMonth month,
|
||||||
|
GDateYear y);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_date_set_julian (GDate *date,
|
||||||
|
guint32 julian_date);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gboolean g_date_is_first_of_month (const GDate *date);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gboolean g_date_is_last_of_month (const GDate *date);
|
||||||
|
|
||||||
|
/* To go forward by some number of weeks just go forward weeks*7 days */
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_date_add_days (GDate *date,
|
||||||
|
guint n_days);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_date_subtract_days (GDate *date,
|
||||||
|
guint n_days);
|
||||||
|
|
||||||
|
/* If you add/sub months while day > 28, the day might change */
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_date_add_months (GDate *date,
|
||||||
|
guint n_months);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_date_subtract_months (GDate *date,
|
||||||
|
guint n_months);
|
||||||
|
|
||||||
|
/* If it's feb 29, changing years can move you to the 28th */
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_date_add_years (GDate *date,
|
||||||
|
guint n_years);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_date_subtract_years (GDate *date,
|
||||||
|
guint n_years);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gboolean g_date_is_leap_year (GDateYear year) G_GNUC_CONST;
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
guint8 g_date_get_days_in_month (GDateMonth month,
|
||||||
|
GDateYear year) G_GNUC_CONST;
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
guint8 g_date_get_monday_weeks_in_year (GDateYear year) G_GNUC_CONST;
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
guint8 g_date_get_sunday_weeks_in_year (GDateYear year) G_GNUC_CONST;
|
||||||
|
|
||||||
|
/* Returns the number of days between the two dates. If date2 comes
|
||||||
|
before date1, a negative value is return. */
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gint g_date_days_between (const GDate *date1,
|
||||||
|
const GDate *date2);
|
||||||
|
|
||||||
|
/* qsort-friendly (with a cast...) */
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gint g_date_compare (const GDate *lhs,
|
||||||
|
const GDate *rhs);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_date_to_struct_tm (const GDate *date,
|
||||||
|
struct tm *tm);
|
||||||
|
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_date_clamp (GDate *date,
|
||||||
|
const GDate *min_date,
|
||||||
|
const GDate *max_date);
|
||||||
|
|
||||||
|
/* Swap date1 and date2's values if date1 > date2. */
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_date_order (GDate *date1, GDate *date2);
|
||||||
|
|
||||||
|
/* Just like strftime() except you can only use date-related formats.
|
||||||
|
* Using a time format is undefined.
|
||||||
|
*/
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gsize g_date_strftime (gchar *s,
|
||||||
|
gsize slen,
|
||||||
|
const gchar *format,
|
||||||
|
const GDate *date);
|
||||||
|
|
||||||
|
#ifndef G_DISABLE_DEPRECATED
|
||||||
|
|
||||||
|
#define g_date_weekday g_date_get_weekday
|
||||||
|
#define g_date_month g_date_get_month
|
||||||
|
#define g_date_year g_date_get_year
|
||||||
|
#define g_date_day g_date_get_day
|
||||||
|
#define g_date_julian g_date_get_julian
|
||||||
|
#define g_date_day_of_year g_date_get_day_of_year
|
||||||
|
#define g_date_monday_week_of_year g_date_get_monday_week_of_year
|
||||||
|
#define g_date_sunday_week_of_year g_date_get_sunday_week_of_year
|
||||||
|
#define g_date_days_in_month g_date_get_days_in_month
|
||||||
|
#define g_date_monday_weeks_in_year g_date_get_monday_weeks_in_year
|
||||||
|
#define g_date_sunday_weeks_in_year g_date_get_sunday_weeks_in_year
|
||||||
|
|
||||||
|
#endif /* G_DISABLE_DEPRECATED */
|
||||||
|
|
||||||
|
G_END_DECLS
|
||||||
|
|
||||||
|
#endif /* __G_DATE_H__ */
|
264
code/application/source/sf_app/code/source/sf_blue/inc/glib/glib/gdatetime.h
Executable file
264
code/application/source/sf_app/code/source/sf_blue/inc/glib/glib/gdatetime.h
Executable file
|
@ -0,0 +1,264 @@
|
||||||
|
/*
|
||||||
|
* Copyright (C) 2009-2010 Christian Hergert <chris@dronelabs.com>
|
||||||
|
* Copyright © 2010 Codethink Limited
|
||||||
|
*
|
||||||
|
* This library 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
|
||||||
|
* licence, or (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This 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 this library; if not, write to the Free Software
|
||||||
|
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301
|
||||||
|
* USA.
|
||||||
|
*
|
||||||
|
* Authors: Christian Hergert <chris@dronelabs.com>
|
||||||
|
* Thiago Santos <thiago.sousa.santos@collabora.co.uk>
|
||||||
|
* Emmanuele Bassi <ebassi@linux.intel.com>
|
||||||
|
* Ryan Lortie <desrt@desrt.ca>
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef __G_DATE_TIME_H__
|
||||||
|
#define __G_DATE_TIME_H__
|
||||||
|
|
||||||
|
#if !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION)
|
||||||
|
#error "Only <glib.h> can be included directly."
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include <glib/gtimezone.h>
|
||||||
|
|
||||||
|
G_BEGIN_DECLS
|
||||||
|
|
||||||
|
/**
|
||||||
|
* G_TIME_SPAN_DAY:
|
||||||
|
*
|
||||||
|
* Evaluates to a time span of one day.
|
||||||
|
*
|
||||||
|
* Since: 2.26
|
||||||
|
*/
|
||||||
|
#define G_TIME_SPAN_DAY (G_GINT64_CONSTANT (86400000000))
|
||||||
|
|
||||||
|
/**
|
||||||
|
* G_TIME_SPAN_HOUR:
|
||||||
|
*
|
||||||
|
* Evaluates to a time span of one hour.
|
||||||
|
*
|
||||||
|
* Since: 2.26
|
||||||
|
*/
|
||||||
|
#define G_TIME_SPAN_HOUR (G_GINT64_CONSTANT (3600000000))
|
||||||
|
|
||||||
|
/**
|
||||||
|
* G_TIME_SPAN_MINUTE:
|
||||||
|
*
|
||||||
|
* Evaluates to a time span of one minute.
|
||||||
|
*
|
||||||
|
* Since: 2.26
|
||||||
|
*/
|
||||||
|
#define G_TIME_SPAN_MINUTE (G_GINT64_CONSTANT (60000000))
|
||||||
|
|
||||||
|
/**
|
||||||
|
* G_TIME_SPAN_SECOND:
|
||||||
|
*
|
||||||
|
* Evaluates to a time span of one second.
|
||||||
|
*
|
||||||
|
* Since: 2.26
|
||||||
|
*/
|
||||||
|
#define G_TIME_SPAN_SECOND (G_GINT64_CONSTANT (1000000))
|
||||||
|
|
||||||
|
/**
|
||||||
|
* G_TIME_SPAN_MILLISECOND:
|
||||||
|
*
|
||||||
|
* Evaluates to a time span of one millisecond.
|
||||||
|
*
|
||||||
|
* Since: 2.26
|
||||||
|
*/
|
||||||
|
#define G_TIME_SPAN_MILLISECOND (G_GINT64_CONSTANT (1000))
|
||||||
|
|
||||||
|
/**
|
||||||
|
* GTimeSpan:
|
||||||
|
*
|
||||||
|
* A value representing an interval of time, in microseconds.
|
||||||
|
*
|
||||||
|
* Since: 2.26
|
||||||
|
*/
|
||||||
|
typedef gint64 GTimeSpan;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* GDateTime:
|
||||||
|
*
|
||||||
|
* `GDateTime` is an opaque structure whose members
|
||||||
|
* cannot be accessed directly.
|
||||||
|
*
|
||||||
|
* Since: 2.26
|
||||||
|
*/
|
||||||
|
typedef struct _GDateTime GDateTime;
|
||||||
|
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_date_time_unref (GDateTime *datetime);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GDateTime * g_date_time_ref (GDateTime *datetime);
|
||||||
|
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GDateTime * g_date_time_new_now (GTimeZone *tz);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GDateTime * g_date_time_new_now_local (void);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GDateTime * g_date_time_new_now_utc (void);
|
||||||
|
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GDateTime * g_date_time_new_from_unix_local (gint64 t);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GDateTime * g_date_time_new_from_unix_utc (gint64 t);
|
||||||
|
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GDateTime * g_date_time_new_from_timeval_local (const GTimeVal *tv);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GDateTime * g_date_time_new_from_timeval_utc (const GTimeVal *tv);
|
||||||
|
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GDateTime * g_date_time_new (GTimeZone *tz,
|
||||||
|
gint year,
|
||||||
|
gint month,
|
||||||
|
gint day,
|
||||||
|
gint hour,
|
||||||
|
gint minute,
|
||||||
|
gdouble seconds);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GDateTime * g_date_time_new_local (gint year,
|
||||||
|
gint month,
|
||||||
|
gint day,
|
||||||
|
gint hour,
|
||||||
|
gint minute,
|
||||||
|
gdouble seconds);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GDateTime * g_date_time_new_utc (gint year,
|
||||||
|
gint month,
|
||||||
|
gint day,
|
||||||
|
gint hour,
|
||||||
|
gint minute,
|
||||||
|
gdouble seconds);
|
||||||
|
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
G_GNUC_WARN_UNUSED_RESULT
|
||||||
|
GDateTime * g_date_time_add (GDateTime *datetime,
|
||||||
|
GTimeSpan timespan);
|
||||||
|
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
G_GNUC_WARN_UNUSED_RESULT
|
||||||
|
GDateTime * g_date_time_add_years (GDateTime *datetime,
|
||||||
|
gint years);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
G_GNUC_WARN_UNUSED_RESULT
|
||||||
|
GDateTime * g_date_time_add_months (GDateTime *datetime,
|
||||||
|
gint months);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
G_GNUC_WARN_UNUSED_RESULT
|
||||||
|
GDateTime * g_date_time_add_weeks (GDateTime *datetime,
|
||||||
|
gint weeks);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
G_GNUC_WARN_UNUSED_RESULT
|
||||||
|
GDateTime * g_date_time_add_days (GDateTime *datetime,
|
||||||
|
gint days);
|
||||||
|
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
G_GNUC_WARN_UNUSED_RESULT
|
||||||
|
GDateTime * g_date_time_add_hours (GDateTime *datetime,
|
||||||
|
gint hours);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
G_GNUC_WARN_UNUSED_RESULT
|
||||||
|
GDateTime * g_date_time_add_minutes (GDateTime *datetime,
|
||||||
|
gint minutes);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
G_GNUC_WARN_UNUSED_RESULT
|
||||||
|
GDateTime * g_date_time_add_seconds (GDateTime *datetime,
|
||||||
|
gdouble seconds);
|
||||||
|
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
G_GNUC_WARN_UNUSED_RESULT
|
||||||
|
GDateTime * g_date_time_add_full (GDateTime *datetime,
|
||||||
|
gint years,
|
||||||
|
gint months,
|
||||||
|
gint days,
|
||||||
|
gint hours,
|
||||||
|
gint minutes,
|
||||||
|
gdouble seconds);
|
||||||
|
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gint g_date_time_compare (gconstpointer dt1,
|
||||||
|
gconstpointer dt2);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GTimeSpan g_date_time_difference (GDateTime *end,
|
||||||
|
GDateTime *begin);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
guint g_date_time_hash (gconstpointer datetime);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gboolean g_date_time_equal (gconstpointer dt1,
|
||||||
|
gconstpointer dt2);
|
||||||
|
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_date_time_get_ymd (GDateTime *datetime,
|
||||||
|
gint *year,
|
||||||
|
gint *month,
|
||||||
|
gint *day);
|
||||||
|
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gint g_date_time_get_year (GDateTime *datetime);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gint g_date_time_get_month (GDateTime *datetime);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gint g_date_time_get_day_of_month (GDateTime *datetime);
|
||||||
|
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gint g_date_time_get_week_numbering_year (GDateTime *datetime);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gint g_date_time_get_week_of_year (GDateTime *datetime);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gint g_date_time_get_day_of_week (GDateTime *datetime);
|
||||||
|
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gint g_date_time_get_day_of_year (GDateTime *datetime);
|
||||||
|
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gint g_date_time_get_hour (GDateTime *datetime);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gint g_date_time_get_minute (GDateTime *datetime);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gint g_date_time_get_second (GDateTime *datetime);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gint g_date_time_get_microsecond (GDateTime *datetime);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gdouble g_date_time_get_seconds (GDateTime *datetime);
|
||||||
|
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gint64 g_date_time_to_unix (GDateTime *datetime);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gboolean g_date_time_to_timeval (GDateTime *datetime,
|
||||||
|
GTimeVal *tv);
|
||||||
|
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GTimeSpan g_date_time_get_utc_offset (GDateTime *datetime);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
const gchar * g_date_time_get_timezone_abbreviation (GDateTime *datetime);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gboolean g_date_time_is_daylight_savings (GDateTime *datetime);
|
||||||
|
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GDateTime * g_date_time_to_timezone (GDateTime *datetime,
|
||||||
|
GTimeZone *tz);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GDateTime * g_date_time_to_local (GDateTime *datetime);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GDateTime * g_date_time_to_utc (GDateTime *datetime);
|
||||||
|
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gchar * g_date_time_format (GDateTime *datetime,
|
||||||
|
const gchar *format) G_GNUC_MALLOC;
|
||||||
|
|
||||||
|
G_END_DECLS
|
||||||
|
|
||||||
|
#endif /* __G_DATE_TIME_H__ */
|
66
code/application/source/sf_app/code/source/sf_blue/inc/glib/glib/gdir.h
Executable file
66
code/application/source/sf_app/code/source/sf_blue/inc/glib/glib/gdir.h
Executable file
|
@ -0,0 +1,66 @@
|
||||||
|
/* GLIB - Library of useful routines for C programming
|
||||||
|
* Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald
|
||||||
|
*
|
||||||
|
* gdir.c: Simplified wrapper around the DIRENT functions.
|
||||||
|
*
|
||||||
|
* Copyright 2001 Hans Breuer
|
||||||
|
*
|
||||||
|
* This library 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 of the License, or (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This library 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 this library; if not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef __G_DIR_H__
|
||||||
|
#define __G_DIR_H__
|
||||||
|
|
||||||
|
#if !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION)
|
||||||
|
#error "Only <glib.h> can be included directly."
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include <glib/gerror.h>
|
||||||
|
|
||||||
|
#ifdef G_OS_UNIX
|
||||||
|
#include <dirent.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
|
G_BEGIN_DECLS
|
||||||
|
|
||||||
|
typedef struct _GDir GDir;
|
||||||
|
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GDir * g_dir_open (const gchar *path,
|
||||||
|
guint flags,
|
||||||
|
GError **error);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
const gchar * g_dir_read_name (GDir *dir);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_dir_rewind (GDir *dir);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_dir_close (GDir *dir);
|
||||||
|
|
||||||
|
#ifndef __GTK_DOC_IGNORE__
|
||||||
|
#ifdef G_OS_WIN32
|
||||||
|
#define g_dir_open g_dir_open_utf8
|
||||||
|
#define g_dir_read_name g_dir_read_name_utf8
|
||||||
|
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GDir *g_dir_open_utf8 (const gchar *path,
|
||||||
|
guint flags,
|
||||||
|
GError **error);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
const gchar *g_dir_read_name_utf8 (GDir *dir);
|
||||||
|
#endif /* G_OS_WIN32 */
|
||||||
|
#endif /* __GTK_DOC_IGNORE__ */
|
||||||
|
|
||||||
|
G_END_DECLS
|
||||||
|
|
||||||
|
#endif /* __G_DIR_H__ */
|
79
code/application/source/sf_app/code/source/sf_blue/inc/glib/glib/genviron.h
Executable file
79
code/application/source/sf_app/code/source/sf_blue/inc/glib/glib/genviron.h
Executable file
|
@ -0,0 +1,79 @@
|
||||||
|
/* GLIB - Library of useful routines for C programming
|
||||||
|
* Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald
|
||||||
|
*
|
||||||
|
* This library 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 of the License, or (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This library 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 this library; if not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Modified by the GLib Team and others 1997-2000. See the AUTHORS
|
||||||
|
* file for a list of people on the GLib Team. See the ChangeLog
|
||||||
|
* files for a list of changes. These files are distributed with
|
||||||
|
* GLib at ftp://ftp.gtk.org/pub/gtk/.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef __G_ENVIRON_H__
|
||||||
|
#define __G_ENVIRON_H__
|
||||||
|
|
||||||
|
#if !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION)
|
||||||
|
#error "Only <glib.h> can be included directly."
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include <glib/gtypes.h>
|
||||||
|
|
||||||
|
G_BEGIN_DECLS
|
||||||
|
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
const gchar * g_getenv (const gchar *variable);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gboolean g_setenv (const gchar *variable,
|
||||||
|
const gchar *value,
|
||||||
|
gboolean overwrite);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_unsetenv (const gchar *variable);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gchar ** g_listenv (void);
|
||||||
|
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gchar ** g_get_environ (void);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
const gchar * g_environ_getenv (gchar **envp,
|
||||||
|
const gchar *variable);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gchar ** g_environ_setenv (gchar **envp,
|
||||||
|
const gchar *variable,
|
||||||
|
const gchar *value,
|
||||||
|
gboolean overwrite) G_GNUC_WARN_UNUSED_RESULT;
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gchar ** g_environ_unsetenv (gchar **envp,
|
||||||
|
const gchar *variable) G_GNUC_WARN_UNUSED_RESULT;
|
||||||
|
|
||||||
|
#ifndef __GTK_DOC_IGNORE__
|
||||||
|
#ifdef G_OS_WIN32
|
||||||
|
#define g_getenv g_getenv_utf8
|
||||||
|
#define g_setenv g_setenv_utf8
|
||||||
|
#define g_unsetenv g_unsetenv_utf8
|
||||||
|
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
const gchar *g_getenv_utf8 (const gchar *variable);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gboolean g_setenv_utf8 (const gchar *variable,
|
||||||
|
const gchar *value,
|
||||||
|
gboolean overwrite);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_unsetenv_utf8 (const gchar *variable);
|
||||||
|
#endif
|
||||||
|
#endif /* __GTK_DOC_IGNORE__ */
|
||||||
|
G_END_DECLS
|
||||||
|
|
||||||
|
#endif /* __G_ENVIRON_H__ */
|
118
code/application/source/sf_app/code/source/sf_blue/inc/glib/glib/gerror.h
Executable file
118
code/application/source/sf_app/code/source/sf_blue/inc/glib/glib/gerror.h
Executable file
|
@ -0,0 +1,118 @@
|
||||||
|
/* gerror.h - Error reporting system
|
||||||
|
*
|
||||||
|
* Copyright 2000 Red Hat, Inc.
|
||||||
|
*
|
||||||
|
* The Gnome Library 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 of the
|
||||||
|
* License, or (at your option) any later version.
|
||||||
|
*
|
||||||
|
* The Gnome Library 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 the Gnome Library; see the file COPYING.LIB. If not,
|
||||||
|
* see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef __G_ERROR_H__
|
||||||
|
#define __G_ERROR_H__
|
||||||
|
|
||||||
|
#if !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION)
|
||||||
|
#error "Only <glib.h> can be included directly."
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include <stdarg.h>
|
||||||
|
|
||||||
|
#include <glib/gquark.h>
|
||||||
|
|
||||||
|
G_BEGIN_DECLS
|
||||||
|
|
||||||
|
/**
|
||||||
|
* GError:
|
||||||
|
* @domain: error domain, e.g. #G_FILE_ERROR
|
||||||
|
* @code: error code, e.g. %G_FILE_ERROR_NOENT
|
||||||
|
* @message: human-readable informative error message
|
||||||
|
*
|
||||||
|
* The `GError` structure contains information about
|
||||||
|
* an error that has occurred.
|
||||||
|
*/
|
||||||
|
typedef struct _GError GError;
|
||||||
|
|
||||||
|
struct _GError
|
||||||
|
{
|
||||||
|
GQuark domain;
|
||||||
|
gint code;
|
||||||
|
gchar *message;
|
||||||
|
};
|
||||||
|
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GError* g_error_new (GQuark domain,
|
||||||
|
gint code,
|
||||||
|
const gchar *format,
|
||||||
|
...) G_GNUC_PRINTF (3, 4);
|
||||||
|
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GError* g_error_new_literal (GQuark domain,
|
||||||
|
gint code,
|
||||||
|
const gchar *message);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GError* g_error_new_valist (GQuark domain,
|
||||||
|
gint code,
|
||||||
|
const gchar *format,
|
||||||
|
va_list args) G_GNUC_PRINTF(3, 0);
|
||||||
|
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_error_free (GError *error);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GError* g_error_copy (const GError *error);
|
||||||
|
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gboolean g_error_matches (const GError *error,
|
||||||
|
GQuark domain,
|
||||||
|
gint code);
|
||||||
|
|
||||||
|
/* if (err) *err = g_error_new(domain, code, format, ...), also has
|
||||||
|
* some sanity checks.
|
||||||
|
*/
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_set_error (GError **err,
|
||||||
|
GQuark domain,
|
||||||
|
gint code,
|
||||||
|
const gchar *format,
|
||||||
|
...) G_GNUC_PRINTF (4, 5);
|
||||||
|
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_set_error_literal (GError **err,
|
||||||
|
GQuark domain,
|
||||||
|
gint code,
|
||||||
|
const gchar *message);
|
||||||
|
|
||||||
|
/* if (dest) *dest = src; also has some sanity checks.
|
||||||
|
*/
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_propagate_error (GError **dest,
|
||||||
|
GError *src);
|
||||||
|
|
||||||
|
/* if (err && *err) { g_error_free(*err); *err = NULL; } */
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_clear_error (GError **err);
|
||||||
|
|
||||||
|
/* if (err) prefix the formatted string to the ->message */
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_prefix_error (GError **err,
|
||||||
|
const gchar *format,
|
||||||
|
...) G_GNUC_PRINTF (2, 3);
|
||||||
|
|
||||||
|
/* g_propagate_error then g_error_prefix on dest */
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_propagate_prefixed_error (GError **dest,
|
||||||
|
GError *src,
|
||||||
|
const gchar *format,
|
||||||
|
...) G_GNUC_PRINTF (3, 4);
|
||||||
|
|
||||||
|
G_END_DECLS
|
||||||
|
|
||||||
|
#endif /* __G_ERROR_H__ */
|
209
code/application/source/sf_app/code/source/sf_blue/inc/glib/glib/gfileutils.h
Executable file
209
code/application/source/sf_app/code/source/sf_blue/inc/glib/glib/gfileutils.h
Executable file
|
@ -0,0 +1,209 @@
|
||||||
|
/* gfileutils.h - File utility functions
|
||||||
|
*
|
||||||
|
* Copyright 2000 Red Hat, Inc.
|
||||||
|
*
|
||||||
|
* GLib 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 of the
|
||||||
|
* License, or (at your option) any later version.
|
||||||
|
*
|
||||||
|
* GLib 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 GLib; see the file COPYING.LIB. If not,
|
||||||
|
* see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef __G_FILEUTILS_H__
|
||||||
|
#define __G_FILEUTILS_H__
|
||||||
|
|
||||||
|
#if !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION)
|
||||||
|
#error "Only <glib.h> can be included directly."
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include <glib/gerror.h>
|
||||||
|
|
||||||
|
G_BEGIN_DECLS
|
||||||
|
|
||||||
|
#define G_FILE_ERROR g_file_error_quark ()
|
||||||
|
|
||||||
|
typedef enum
|
||||||
|
{
|
||||||
|
G_FILE_ERROR_EXIST,
|
||||||
|
G_FILE_ERROR_ISDIR,
|
||||||
|
G_FILE_ERROR_ACCES,
|
||||||
|
G_FILE_ERROR_NAMETOOLONG,
|
||||||
|
G_FILE_ERROR_NOENT,
|
||||||
|
G_FILE_ERROR_NOTDIR,
|
||||||
|
G_FILE_ERROR_NXIO,
|
||||||
|
G_FILE_ERROR_NODEV,
|
||||||
|
G_FILE_ERROR_ROFS,
|
||||||
|
G_FILE_ERROR_TXTBSY,
|
||||||
|
G_FILE_ERROR_FAULT,
|
||||||
|
G_FILE_ERROR_LOOP,
|
||||||
|
G_FILE_ERROR_NOSPC,
|
||||||
|
G_FILE_ERROR_NOMEM,
|
||||||
|
G_FILE_ERROR_MFILE,
|
||||||
|
G_FILE_ERROR_NFILE,
|
||||||
|
G_FILE_ERROR_BADF,
|
||||||
|
G_FILE_ERROR_INVAL,
|
||||||
|
G_FILE_ERROR_PIPE,
|
||||||
|
G_FILE_ERROR_AGAIN,
|
||||||
|
G_FILE_ERROR_INTR,
|
||||||
|
G_FILE_ERROR_IO,
|
||||||
|
G_FILE_ERROR_PERM,
|
||||||
|
G_FILE_ERROR_NOSYS,
|
||||||
|
G_FILE_ERROR_FAILED
|
||||||
|
} GFileError;
|
||||||
|
|
||||||
|
/* For backward-compat reasons, these are synced to an old
|
||||||
|
* anonymous enum in libgnome. But don't use that enum
|
||||||
|
* in new code.
|
||||||
|
*/
|
||||||
|
typedef enum
|
||||||
|
{
|
||||||
|
G_FILE_TEST_IS_REGULAR = 1 << 0,
|
||||||
|
G_FILE_TEST_IS_SYMLINK = 1 << 1,
|
||||||
|
G_FILE_TEST_IS_DIR = 1 << 2,
|
||||||
|
G_FILE_TEST_IS_EXECUTABLE = 1 << 3,
|
||||||
|
G_FILE_TEST_EXISTS = 1 << 4
|
||||||
|
} GFileTest;
|
||||||
|
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GQuark g_file_error_quark (void);
|
||||||
|
/* So other code can generate a GFileError */
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GFileError g_file_error_from_errno (gint err_no);
|
||||||
|
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gboolean g_file_test (const gchar *filename,
|
||||||
|
GFileTest test);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gboolean g_file_get_contents (const gchar *filename,
|
||||||
|
gchar **contents,
|
||||||
|
gsize *length,
|
||||||
|
GError **error);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gboolean g_file_set_contents (const gchar *filename,
|
||||||
|
const gchar *contents,
|
||||||
|
gssize length,
|
||||||
|
GError **error);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gchar *g_file_read_link (const gchar *filename,
|
||||||
|
GError **error);
|
||||||
|
|
||||||
|
/* Wrapper / workalike for mkdtemp() */
|
||||||
|
GLIB_AVAILABLE_IN_2_30
|
||||||
|
gchar *g_mkdtemp (gchar *tmpl);
|
||||||
|
GLIB_AVAILABLE_IN_2_30
|
||||||
|
gchar *g_mkdtemp_full (gchar *tmpl,
|
||||||
|
gint mode);
|
||||||
|
|
||||||
|
/* Wrapper / workalike for mkstemp() */
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gint g_mkstemp (gchar *tmpl);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gint g_mkstemp_full (gchar *tmpl,
|
||||||
|
gint flags,
|
||||||
|
gint mode);
|
||||||
|
|
||||||
|
/* Wrappers for g_mkstemp and g_mkdtemp() */
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gint g_file_open_tmp (const gchar *tmpl,
|
||||||
|
gchar **name_used,
|
||||||
|
GError **error);
|
||||||
|
GLIB_AVAILABLE_IN_2_30
|
||||||
|
gchar *g_dir_make_tmp (const gchar *tmpl,
|
||||||
|
GError **error);
|
||||||
|
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gchar *g_build_path (const gchar *separator,
|
||||||
|
const gchar *first_element,
|
||||||
|
...) G_GNUC_MALLOC G_GNUC_NULL_TERMINATED;
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gchar *g_build_pathv (const gchar *separator,
|
||||||
|
gchar **args) G_GNUC_MALLOC;
|
||||||
|
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gchar *g_build_filename (const gchar *first_element,
|
||||||
|
...) G_GNUC_MALLOC G_GNUC_NULL_TERMINATED;
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gchar *g_build_filenamev (gchar **args) G_GNUC_MALLOC;
|
||||||
|
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gint g_mkdir_with_parents (const gchar *pathname,
|
||||||
|
gint mode);
|
||||||
|
|
||||||
|
#ifdef G_OS_WIN32
|
||||||
|
|
||||||
|
/* On Win32, the canonical directory separator is the backslash, and
|
||||||
|
* the search path separator is the semicolon. Note that also the
|
||||||
|
* (forward) slash works as directory separator.
|
||||||
|
*/
|
||||||
|
#define G_DIR_SEPARATOR '\\'
|
||||||
|
#define G_DIR_SEPARATOR_S "\\"
|
||||||
|
#define G_IS_DIR_SEPARATOR(c) ((c) == G_DIR_SEPARATOR || (c) == '/')
|
||||||
|
#define G_SEARCHPATH_SEPARATOR ';'
|
||||||
|
#define G_SEARCHPATH_SEPARATOR_S ";"
|
||||||
|
|
||||||
|
#else /* !G_OS_WIN32 */
|
||||||
|
|
||||||
|
#define G_DIR_SEPARATOR '/'
|
||||||
|
#define G_DIR_SEPARATOR_S "/"
|
||||||
|
#define G_IS_DIR_SEPARATOR(c) ((c) == G_DIR_SEPARATOR)
|
||||||
|
#define G_SEARCHPATH_SEPARATOR ':'
|
||||||
|
#define G_SEARCHPATH_SEPARATOR_S ":"
|
||||||
|
|
||||||
|
#endif /* !G_OS_WIN32 */
|
||||||
|
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gboolean g_path_is_absolute (const gchar *file_name);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
const gchar *g_path_skip_root (const gchar *file_name);
|
||||||
|
|
||||||
|
GLIB_DEPRECATED_FOR(g_path_get_basename)
|
||||||
|
const gchar *g_basename (const gchar *file_name);
|
||||||
|
#ifndef G_DISABLE_DEPRECATED
|
||||||
|
#define g_dirname g_path_get_dirname
|
||||||
|
#endif
|
||||||
|
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gchar *g_get_current_dir (void);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gchar *g_path_get_basename (const gchar *file_name) G_GNUC_MALLOC;
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gchar *g_path_get_dirname (const gchar *file_name) G_GNUC_MALLOC;
|
||||||
|
|
||||||
|
#ifndef __GTK_DOC_IGNORE__
|
||||||
|
#ifdef G_OS_WIN32
|
||||||
|
#define g_file_test g_file_test_utf8
|
||||||
|
#define g_file_get_contents g_file_get_contents_utf8
|
||||||
|
#define g_mkstemp g_mkstemp_utf8
|
||||||
|
#define g_file_open_tmp g_file_open_tmp_utf8
|
||||||
|
#define g_get_current_dir g_get_current_dir_utf8
|
||||||
|
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gboolean g_file_test_utf8 (const gchar *filename,
|
||||||
|
GFileTest test);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gboolean g_file_get_contents_utf8 (const gchar *filename,
|
||||||
|
gchar **contents,
|
||||||
|
gsize *length,
|
||||||
|
GError **error);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gint g_mkstemp_utf8 (gchar *tmpl);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gint g_file_open_tmp_utf8 (const gchar *tmpl,
|
||||||
|
gchar **name_used,
|
||||||
|
GError **error);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gchar *g_get_current_dir_utf8 (void);
|
||||||
|
#endif /* G_OS_WIN32 */
|
||||||
|
#endif /* __GTK_DOC_IGNORE__ */
|
||||||
|
|
||||||
|
G_END_DECLS
|
||||||
|
|
||||||
|
#endif /* __G_FILEUTILS_H__ */
|
63
code/application/source/sf_app/code/source/sf_blue/inc/glib/glib/ggettext.h
Executable file
63
code/application/source/sf_app/code/source/sf_blue/inc/glib/glib/ggettext.h
Executable file
|
@ -0,0 +1,63 @@
|
||||||
|
/* GLIB - Library of useful routines for C programming
|
||||||
|
* Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald
|
||||||
|
*
|
||||||
|
* This library 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 of the License, or (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This library 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 this library; if not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Modified by the GLib Team and others 1997-2000. See the AUTHORS
|
||||||
|
* file for a list of people on the GLib Team. See the ChangeLog
|
||||||
|
* files for a list of changes. These files are distributed with
|
||||||
|
* GLib at ftp://ftp.gtk.org/pub/gtk/.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef __G_GETTEXT_H__
|
||||||
|
#define __G_GETTEXT_H__
|
||||||
|
|
||||||
|
#if !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION)
|
||||||
|
#error "Only <glib.h> can be included directly."
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include <glib/gtypes.h>
|
||||||
|
|
||||||
|
G_BEGIN_DECLS
|
||||||
|
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
const gchar *g_strip_context (const gchar *msgid,
|
||||||
|
const gchar *msgval) G_GNUC_FORMAT(1);
|
||||||
|
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
const gchar *g_dgettext (const gchar *domain,
|
||||||
|
const gchar *msgid) G_GNUC_FORMAT(2);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
const gchar *g_dcgettext (const gchar *domain,
|
||||||
|
const gchar *msgid,
|
||||||
|
gint category) G_GNUC_FORMAT(2);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
const gchar *g_dngettext (const gchar *domain,
|
||||||
|
const gchar *msgid,
|
||||||
|
const gchar *msgid_plural,
|
||||||
|
gulong n) G_GNUC_FORMAT(3);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
const gchar *g_dpgettext (const gchar *domain,
|
||||||
|
const gchar *msgctxtid,
|
||||||
|
gsize msgidoffset) G_GNUC_FORMAT(2);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
const gchar *g_dpgettext2 (const gchar *domain,
|
||||||
|
const gchar *context,
|
||||||
|
const gchar *msgid) G_GNUC_FORMAT(3);
|
||||||
|
|
||||||
|
G_END_DECLS
|
||||||
|
|
||||||
|
#endif /* __G_GETTEXT_H__ */
|
185
code/application/source/sf_app/code/source/sf_blue/inc/glib/glib/ghash.h
Executable file
185
code/application/source/sf_app/code/source/sf_blue/inc/glib/glib/ghash.h
Executable file
|
@ -0,0 +1,185 @@
|
||||||
|
/* GLIB - Library of useful routines for C programming
|
||||||
|
* Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald
|
||||||
|
*
|
||||||
|
* This library 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 of the License, or (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This library 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 this library; if not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Modified by the GLib Team and others 1997-2000. See the AUTHORS
|
||||||
|
* file for a list of people on the GLib Team. See the ChangeLog
|
||||||
|
* files for a list of changes. These files are distributed with
|
||||||
|
* GLib at ftp://ftp.gtk.org/pub/gtk/.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef __G_HASH_H__
|
||||||
|
#define __G_HASH_H__
|
||||||
|
|
||||||
|
#if !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION)
|
||||||
|
#error "Only <glib.h> can be included directly."
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include <glib/gtypes.h>
|
||||||
|
#include <glib/glist.h>
|
||||||
|
|
||||||
|
G_BEGIN_DECLS
|
||||||
|
|
||||||
|
typedef struct _GHashTable GHashTable;
|
||||||
|
|
||||||
|
typedef gboolean (*GHRFunc) (gpointer key,
|
||||||
|
gpointer value,
|
||||||
|
gpointer user_data);
|
||||||
|
|
||||||
|
typedef struct _GHashTableIter GHashTableIter;
|
||||||
|
|
||||||
|
struct _GHashTableIter
|
||||||
|
{
|
||||||
|
/*< private >*/
|
||||||
|
gpointer dummy1;
|
||||||
|
gpointer dummy2;
|
||||||
|
gpointer dummy3;
|
||||||
|
int dummy4;
|
||||||
|
gboolean dummy5;
|
||||||
|
gpointer dummy6;
|
||||||
|
};
|
||||||
|
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GHashTable* g_hash_table_new (GHashFunc hash_func,
|
||||||
|
GEqualFunc key_equal_func);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GHashTable* g_hash_table_new_full (GHashFunc hash_func,
|
||||||
|
GEqualFunc key_equal_func,
|
||||||
|
GDestroyNotify key_destroy_func,
|
||||||
|
GDestroyNotify value_destroy_func);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_hash_table_destroy (GHashTable *hash_table);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gboolean g_hash_table_insert (GHashTable *hash_table,
|
||||||
|
gpointer key,
|
||||||
|
gpointer value);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gboolean g_hash_table_replace (GHashTable *hash_table,
|
||||||
|
gpointer key,
|
||||||
|
gpointer value);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gboolean g_hash_table_add (GHashTable *hash_table,
|
||||||
|
gpointer key);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gboolean g_hash_table_remove (GHashTable *hash_table,
|
||||||
|
gconstpointer key);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_hash_table_remove_all (GHashTable *hash_table);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gboolean g_hash_table_steal (GHashTable *hash_table,
|
||||||
|
gconstpointer key);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_hash_table_steal_all (GHashTable *hash_table);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gpointer g_hash_table_lookup (GHashTable *hash_table,
|
||||||
|
gconstpointer key);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gboolean g_hash_table_contains (GHashTable *hash_table,
|
||||||
|
gconstpointer key);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gboolean g_hash_table_lookup_extended (GHashTable *hash_table,
|
||||||
|
gconstpointer lookup_key,
|
||||||
|
gpointer *orig_key,
|
||||||
|
gpointer *value);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_hash_table_foreach (GHashTable *hash_table,
|
||||||
|
GHFunc func,
|
||||||
|
gpointer user_data);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gpointer g_hash_table_find (GHashTable *hash_table,
|
||||||
|
GHRFunc predicate,
|
||||||
|
gpointer user_data);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
guint g_hash_table_foreach_remove (GHashTable *hash_table,
|
||||||
|
GHRFunc func,
|
||||||
|
gpointer user_data);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
guint g_hash_table_foreach_steal (GHashTable *hash_table,
|
||||||
|
GHRFunc func,
|
||||||
|
gpointer user_data);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
guint g_hash_table_size (GHashTable *hash_table);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GList * g_hash_table_get_keys (GHashTable *hash_table);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GList * g_hash_table_get_values (GHashTable *hash_table);
|
||||||
|
GLIB_AVAILABLE_IN_2_40
|
||||||
|
gpointer * g_hash_table_get_keys_as_array (GHashTable *hash_table,
|
||||||
|
guint *length);
|
||||||
|
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_hash_table_iter_init (GHashTableIter *iter,
|
||||||
|
GHashTable *hash_table);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gboolean g_hash_table_iter_next (GHashTableIter *iter,
|
||||||
|
gpointer *key,
|
||||||
|
gpointer *value);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GHashTable* g_hash_table_iter_get_hash_table (GHashTableIter *iter);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_hash_table_iter_remove (GHashTableIter *iter);
|
||||||
|
GLIB_AVAILABLE_IN_2_30
|
||||||
|
void g_hash_table_iter_replace (GHashTableIter *iter,
|
||||||
|
gpointer value);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_hash_table_iter_steal (GHashTableIter *iter);
|
||||||
|
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GHashTable* g_hash_table_ref (GHashTable *hash_table);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_hash_table_unref (GHashTable *hash_table);
|
||||||
|
|
||||||
|
#ifndef G_DISABLE_DEPRECATED
|
||||||
|
#define g_hash_table_freeze(hash_table) ((void)0)
|
||||||
|
#define g_hash_table_thaw(hash_table) ((void)0)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* Hash Functions
|
||||||
|
*/
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gboolean g_str_equal (gconstpointer v1,
|
||||||
|
gconstpointer v2);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
guint g_str_hash (gconstpointer v);
|
||||||
|
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gboolean g_int_equal (gconstpointer v1,
|
||||||
|
gconstpointer v2);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
guint g_int_hash (gconstpointer v);
|
||||||
|
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gboolean g_int64_equal (gconstpointer v1,
|
||||||
|
gconstpointer v2);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
guint g_int64_hash (gconstpointer v);
|
||||||
|
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gboolean g_double_equal (gconstpointer v1,
|
||||||
|
gconstpointer v2);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
guint g_double_hash (gconstpointer v);
|
||||||
|
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
guint g_direct_hash (gconstpointer v) G_GNUC_CONST;
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gboolean g_direct_equal (gconstpointer v1,
|
||||||
|
gconstpointer v2) G_GNUC_CONST;
|
||||||
|
|
||||||
|
G_END_DECLS
|
||||||
|
|
||||||
|
#endif /* __G_HASH_H__ */
|
83
code/application/source/sf_app/code/source/sf_blue/inc/glib/glib/ghmac.h
Executable file
83
code/application/source/sf_app/code/source/sf_blue/inc/glib/glib/ghmac.h
Executable file
|
@ -0,0 +1,83 @@
|
||||||
|
/* ghmac.h - secure data hashing
|
||||||
|
*
|
||||||
|
* Copyright (C) 2011 Stef Walter <stefw@collabora.co.uk>
|
||||||
|
*
|
||||||
|
* This library is free software; you can redistribute it and/or
|
||||||
|
* modify it under the terms of the GNU Library General Public
|
||||||
|
* License as published by the Free Software Foundation; either
|
||||||
|
* version 2 of the License, or (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This library 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
|
||||||
|
* Library General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU Library General Public
|
||||||
|
* License along with this library; if not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef __G_HMAC_H__
|
||||||
|
#define __G_HMAC_H__
|
||||||
|
|
||||||
|
#if !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION)
|
||||||
|
#error "Only <glib.h> can be included directly."
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include <glib/gtypes.h>
|
||||||
|
#include "gchecksum.h"
|
||||||
|
|
||||||
|
G_BEGIN_DECLS
|
||||||
|
|
||||||
|
/**
|
||||||
|
* GHmac:
|
||||||
|
*
|
||||||
|
* An opaque structure representing a HMAC operation.
|
||||||
|
* To create a new GHmac, use g_hmac_new(). To free
|
||||||
|
* a GHmac, use g_hmac_unref().
|
||||||
|
*
|
||||||
|
* Since: 2.30
|
||||||
|
*/
|
||||||
|
typedef struct _GHmac GHmac;
|
||||||
|
|
||||||
|
GLIB_AVAILABLE_IN_2_30
|
||||||
|
GHmac * g_hmac_new (GChecksumType digest_type,
|
||||||
|
const guchar *key,
|
||||||
|
gsize key_len);
|
||||||
|
GLIB_AVAILABLE_IN_2_30
|
||||||
|
GHmac * g_hmac_copy (const GHmac *hmac);
|
||||||
|
GLIB_AVAILABLE_IN_2_30
|
||||||
|
GHmac * g_hmac_ref (GHmac *hmac);
|
||||||
|
GLIB_AVAILABLE_IN_2_30
|
||||||
|
void g_hmac_unref (GHmac *hmac);
|
||||||
|
GLIB_AVAILABLE_IN_2_30
|
||||||
|
void g_hmac_update (GHmac *hmac,
|
||||||
|
const guchar *data,
|
||||||
|
gssize length);
|
||||||
|
GLIB_AVAILABLE_IN_2_30
|
||||||
|
const gchar * g_hmac_get_string (GHmac *hmac);
|
||||||
|
GLIB_AVAILABLE_IN_2_30
|
||||||
|
void g_hmac_get_digest (GHmac *hmac,
|
||||||
|
guint8 *buffer,
|
||||||
|
gsize *digest_len);
|
||||||
|
|
||||||
|
GLIB_AVAILABLE_IN_2_30
|
||||||
|
gchar *g_compute_hmac_for_data (GChecksumType digest_type,
|
||||||
|
const guchar *key,
|
||||||
|
gsize key_len,
|
||||||
|
const guchar *data,
|
||||||
|
gsize length);
|
||||||
|
GLIB_AVAILABLE_IN_2_30
|
||||||
|
gchar *g_compute_hmac_for_string (GChecksumType digest_type,
|
||||||
|
const guchar *key,
|
||||||
|
gsize key_len,
|
||||||
|
const gchar *str,
|
||||||
|
gssize length);
|
||||||
|
GLIB_AVAILABLE_IN_2_50
|
||||||
|
gchar *g_compute_hmac_for_bytes (GChecksumType digest_type,
|
||||||
|
GBytes *key,
|
||||||
|
GBytes *data);
|
||||||
|
|
||||||
|
|
||||||
|
G_END_DECLS
|
||||||
|
|
||||||
|
#endif /* __G_CHECKSUM_H__ */
|
202
code/application/source/sf_app/code/source/sf_blue/inc/glib/glib/ghook.h
Executable file
202
code/application/source/sf_app/code/source/sf_blue/inc/glib/glib/ghook.h
Executable file
|
@ -0,0 +1,202 @@
|
||||||
|
/* GLIB - Library of useful routines for C programming
|
||||||
|
* Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald
|
||||||
|
*
|
||||||
|
* This library 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 of the License, or (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This library 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 this library; if not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Modified by the GLib Team and others 1997-2000. See the AUTHORS
|
||||||
|
* file for a list of people on the GLib Team. See the ChangeLog
|
||||||
|
* files for a list of changes. These files are distributed with
|
||||||
|
* GLib at ftp://ftp.gtk.org/pub/gtk/.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef __G_HOOK_H__
|
||||||
|
#define __G_HOOK_H__
|
||||||
|
|
||||||
|
#if !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION)
|
||||||
|
#error "Only <glib.h> can be included directly."
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include <glib/gmem.h>
|
||||||
|
|
||||||
|
G_BEGIN_DECLS
|
||||||
|
|
||||||
|
|
||||||
|
/* --- typedefs --- */
|
||||||
|
typedef struct _GHook GHook;
|
||||||
|
typedef struct _GHookList GHookList;
|
||||||
|
|
||||||
|
typedef gint (*GHookCompareFunc) (GHook *new_hook,
|
||||||
|
GHook *sibling);
|
||||||
|
typedef gboolean (*GHookFindFunc) (GHook *hook,
|
||||||
|
gpointer data);
|
||||||
|
typedef void (*GHookMarshaller) (GHook *hook,
|
||||||
|
gpointer marshal_data);
|
||||||
|
typedef gboolean (*GHookCheckMarshaller) (GHook *hook,
|
||||||
|
gpointer marshal_data);
|
||||||
|
typedef void (*GHookFunc) (gpointer data);
|
||||||
|
typedef gboolean (*GHookCheckFunc) (gpointer data);
|
||||||
|
typedef void (*GHookFinalizeFunc) (GHookList *hook_list,
|
||||||
|
GHook *hook);
|
||||||
|
typedef enum
|
||||||
|
{
|
||||||
|
G_HOOK_FLAG_ACTIVE = 1 << 0,
|
||||||
|
G_HOOK_FLAG_IN_CALL = 1 << 1,
|
||||||
|
G_HOOK_FLAG_MASK = 0x0f
|
||||||
|
} GHookFlagMask;
|
||||||
|
#define G_HOOK_FLAG_USER_SHIFT (4)
|
||||||
|
|
||||||
|
|
||||||
|
/* --- structures --- */
|
||||||
|
struct _GHookList
|
||||||
|
{
|
||||||
|
gulong seq_id;
|
||||||
|
guint hook_size : 16;
|
||||||
|
guint is_setup : 1;
|
||||||
|
GHook *hooks;
|
||||||
|
gpointer dummy3;
|
||||||
|
GHookFinalizeFunc finalize_hook;
|
||||||
|
gpointer dummy[2];
|
||||||
|
};
|
||||||
|
struct _GHook
|
||||||
|
{
|
||||||
|
gpointer data;
|
||||||
|
GHook *next;
|
||||||
|
GHook *prev;
|
||||||
|
guint ref_count;
|
||||||
|
gulong hook_id;
|
||||||
|
guint flags;
|
||||||
|
gpointer func;
|
||||||
|
GDestroyNotify destroy;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
/* --- macros --- */
|
||||||
|
#define G_HOOK(hook) ((GHook*) (hook))
|
||||||
|
#define G_HOOK_FLAGS(hook) (G_HOOK (hook)->flags)
|
||||||
|
#define G_HOOK_ACTIVE(hook) ((G_HOOK_FLAGS (hook) & \
|
||||||
|
G_HOOK_FLAG_ACTIVE) != 0)
|
||||||
|
#define G_HOOK_IN_CALL(hook) ((G_HOOK_FLAGS (hook) & \
|
||||||
|
G_HOOK_FLAG_IN_CALL) != 0)
|
||||||
|
#define G_HOOK_IS_VALID(hook) (G_HOOK (hook)->hook_id != 0 && \
|
||||||
|
(G_HOOK_FLAGS (hook) & \
|
||||||
|
G_HOOK_FLAG_ACTIVE))
|
||||||
|
#define G_HOOK_IS_UNLINKED(hook) (G_HOOK (hook)->next == NULL && \
|
||||||
|
G_HOOK (hook)->prev == NULL && \
|
||||||
|
G_HOOK (hook)->hook_id == 0 && \
|
||||||
|
G_HOOK (hook)->ref_count == 0)
|
||||||
|
|
||||||
|
|
||||||
|
/* --- prototypes --- */
|
||||||
|
/* callback maintenance functions */
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_hook_list_init (GHookList *hook_list,
|
||||||
|
guint hook_size);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_hook_list_clear (GHookList *hook_list);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GHook* g_hook_alloc (GHookList *hook_list);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_hook_free (GHookList *hook_list,
|
||||||
|
GHook *hook);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GHook * g_hook_ref (GHookList *hook_list,
|
||||||
|
GHook *hook);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_hook_unref (GHookList *hook_list,
|
||||||
|
GHook *hook);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gboolean g_hook_destroy (GHookList *hook_list,
|
||||||
|
gulong hook_id);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_hook_destroy_link (GHookList *hook_list,
|
||||||
|
GHook *hook);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_hook_prepend (GHookList *hook_list,
|
||||||
|
GHook *hook);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_hook_insert_before (GHookList *hook_list,
|
||||||
|
GHook *sibling,
|
||||||
|
GHook *hook);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_hook_insert_sorted (GHookList *hook_list,
|
||||||
|
GHook *hook,
|
||||||
|
GHookCompareFunc func);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GHook* g_hook_get (GHookList *hook_list,
|
||||||
|
gulong hook_id);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GHook* g_hook_find (GHookList *hook_list,
|
||||||
|
gboolean need_valids,
|
||||||
|
GHookFindFunc func,
|
||||||
|
gpointer data);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GHook* g_hook_find_data (GHookList *hook_list,
|
||||||
|
gboolean need_valids,
|
||||||
|
gpointer data);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GHook* g_hook_find_func (GHookList *hook_list,
|
||||||
|
gboolean need_valids,
|
||||||
|
gpointer func);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GHook* g_hook_find_func_data (GHookList *hook_list,
|
||||||
|
gboolean need_valids,
|
||||||
|
gpointer func,
|
||||||
|
gpointer data);
|
||||||
|
/* return the first valid hook, and increment its reference count */
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GHook* g_hook_first_valid (GHookList *hook_list,
|
||||||
|
gboolean may_be_in_call);
|
||||||
|
/* return the next valid hook with incremented reference count, and
|
||||||
|
* decrement the reference count of the original hook
|
||||||
|
*/
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GHook* g_hook_next_valid (GHookList *hook_list,
|
||||||
|
GHook *hook,
|
||||||
|
gboolean may_be_in_call);
|
||||||
|
/* GHookCompareFunc implementation to insert hooks sorted by their id */
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gint g_hook_compare_ids (GHook *new_hook,
|
||||||
|
GHook *sibling);
|
||||||
|
/* convenience macros */
|
||||||
|
#define g_hook_append( hook_list, hook ) \
|
||||||
|
g_hook_insert_before ((hook_list), NULL, (hook))
|
||||||
|
/* invoke all valid hooks with the (*GHookFunc) signature.
|
||||||
|
*/
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_hook_list_invoke (GHookList *hook_list,
|
||||||
|
gboolean may_recurse);
|
||||||
|
/* invoke all valid hooks with the (*GHookCheckFunc) signature,
|
||||||
|
* and destroy the hook if FALSE is returned.
|
||||||
|
*/
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_hook_list_invoke_check (GHookList *hook_list,
|
||||||
|
gboolean may_recurse);
|
||||||
|
/* invoke a marshaller on all valid hooks.
|
||||||
|
*/
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_hook_list_marshal (GHookList *hook_list,
|
||||||
|
gboolean may_recurse,
|
||||||
|
GHookMarshaller marshaller,
|
||||||
|
gpointer marshal_data);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_hook_list_marshal_check (GHookList *hook_list,
|
||||||
|
gboolean may_recurse,
|
||||||
|
GHookCheckMarshaller marshaller,
|
||||||
|
gpointer marshal_data);
|
||||||
|
|
||||||
|
G_END_DECLS
|
||||||
|
|
||||||
|
#endif /* __G_HOOK_H__ */
|
|
@ -0,0 +1,43 @@
|
||||||
|
/* GLIB - Library of useful routines for C programming
|
||||||
|
* Copyright (C) 2008 Red Hat, Inc.
|
||||||
|
*
|
||||||
|
* This library 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 of the License, or (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This library 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 this library; if not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef __G_HOST_UTILS_H__
|
||||||
|
#define __G_HOST_UTILS_H__
|
||||||
|
|
||||||
|
#if !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION)
|
||||||
|
#error "Only <glib.h> can be included directly."
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include <glib/gtypes.h>
|
||||||
|
|
||||||
|
G_BEGIN_DECLS
|
||||||
|
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gboolean g_hostname_is_non_ascii (const gchar *hostname);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gboolean g_hostname_is_ascii_encoded (const gchar *hostname);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gboolean g_hostname_is_ip_address (const gchar *hostname);
|
||||||
|
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gchar *g_hostname_to_ascii (const gchar *hostname);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gchar *g_hostname_to_unicode (const gchar *hostname);
|
||||||
|
|
||||||
|
G_END_DECLS
|
||||||
|
|
||||||
|
#endif /* __G_HOST_UTILS_H__ */
|
36
code/application/source/sf_app/code/source/sf_blue/inc/glib/glib/gi18n-lib.h
Executable file
36
code/application/source/sf_app/code/source/sf_blue/inc/glib/glib/gi18n-lib.h
Executable file
|
@ -0,0 +1,36 @@
|
||||||
|
/* GLIB - Library of useful routines for C programming
|
||||||
|
* Copyright (C) 1995-1997, 2002 Peter Mattis, Red Hat, Inc.
|
||||||
|
*
|
||||||
|
* This library 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 of the License, or (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This library 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 this library; if not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef __G_I18N_LIB_H__
|
||||||
|
#define __G_I18N_LIB_H__
|
||||||
|
|
||||||
|
#include <glib.h>
|
||||||
|
|
||||||
|
#include <libintl.h>
|
||||||
|
#include <string.h>
|
||||||
|
|
||||||
|
#ifndef GETTEXT_PACKAGE
|
||||||
|
#error You must define GETTEXT_PACKAGE before including gi18n-lib.h. Did you forget to include config.h?
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define _(String) ((char *) g_dgettext (GETTEXT_PACKAGE, String))
|
||||||
|
#define Q_(String) g_dpgettext (GETTEXT_PACKAGE, String, 0)
|
||||||
|
#define N_(String) (String)
|
||||||
|
#define C_(Context,String) g_dpgettext (GETTEXT_PACKAGE, Context "\004" String, strlen (Context) + 1)
|
||||||
|
#define NC_(Context, String) (String)
|
||||||
|
|
||||||
|
#endif /* __G_I18N_LIB_H__ */
|
32
code/application/source/sf_app/code/source/sf_blue/inc/glib/glib/gi18n.h
Executable file
32
code/application/source/sf_app/code/source/sf_blue/inc/glib/glib/gi18n.h
Executable file
|
@ -0,0 +1,32 @@
|
||||||
|
/* GLIB - Library of useful routines for C programming
|
||||||
|
* Copyright (C) 1995-1997, 2002 Peter Mattis, Red Hat, Inc.
|
||||||
|
*
|
||||||
|
* This library 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 of the License, or (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This library 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 this library; if not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef __G_I18N_H__
|
||||||
|
#define __G_I18N_H__
|
||||||
|
|
||||||
|
#include <glib.h>
|
||||||
|
|
||||||
|
#include <libintl.h>
|
||||||
|
#include <string.h>
|
||||||
|
|
||||||
|
#define _(String) gettext (String)
|
||||||
|
#define Q_(String) g_dpgettext (NULL, String, 0)
|
||||||
|
#define N_(String) (String)
|
||||||
|
#define C_(Context,String) g_dpgettext (NULL, Context "\004" String, strlen (Context) + 1)
|
||||||
|
#define NC_(Context, String) (String)
|
||||||
|
|
||||||
|
#endif /* __G_I18N_H__ */
|
415
code/application/source/sf_app/code/source/sf_blue/inc/glib/glib/giochannel.h
Executable file
415
code/application/source/sf_app/code/source/sf_blue/inc/glib/glib/giochannel.h
Executable file
|
@ -0,0 +1,415 @@
|
||||||
|
/* GLIB - Library of useful routines for C programming
|
||||||
|
* Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald
|
||||||
|
*
|
||||||
|
* This library 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 of the License, or (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This library 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 this library; if not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Modified by the GLib Team and others 1997-2000. See the AUTHORS
|
||||||
|
* file for a list of people on the GLib Team. See the ChangeLog
|
||||||
|
* files for a list of changes. These files are distributed with
|
||||||
|
* GLib at ftp://ftp.gtk.org/pub/gtk/.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef __G_IOCHANNEL_H__
|
||||||
|
#define __G_IOCHANNEL_H__
|
||||||
|
|
||||||
|
#if !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION)
|
||||||
|
#error "Only <glib.h> can be included directly."
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include <glib/gconvert.h>
|
||||||
|
#include <glib/gmain.h>
|
||||||
|
#include <glib/gstring.h>
|
||||||
|
|
||||||
|
G_BEGIN_DECLS
|
||||||
|
|
||||||
|
/* GIOChannel
|
||||||
|
*/
|
||||||
|
|
||||||
|
typedef struct _GIOChannel GIOChannel;
|
||||||
|
typedef struct _GIOFuncs GIOFuncs;
|
||||||
|
|
||||||
|
typedef enum
|
||||||
|
{
|
||||||
|
G_IO_ERROR_NONE,
|
||||||
|
G_IO_ERROR_AGAIN,
|
||||||
|
G_IO_ERROR_INVAL,
|
||||||
|
G_IO_ERROR_UNKNOWN
|
||||||
|
} GIOError;
|
||||||
|
|
||||||
|
#define G_IO_CHANNEL_ERROR g_io_channel_error_quark()
|
||||||
|
|
||||||
|
typedef enum
|
||||||
|
{
|
||||||
|
/* Derived from errno */
|
||||||
|
G_IO_CHANNEL_ERROR_FBIG,
|
||||||
|
G_IO_CHANNEL_ERROR_INVAL,
|
||||||
|
G_IO_CHANNEL_ERROR_IO,
|
||||||
|
G_IO_CHANNEL_ERROR_ISDIR,
|
||||||
|
G_IO_CHANNEL_ERROR_NOSPC,
|
||||||
|
G_IO_CHANNEL_ERROR_NXIO,
|
||||||
|
G_IO_CHANNEL_ERROR_OVERFLOW,
|
||||||
|
G_IO_CHANNEL_ERROR_PIPE,
|
||||||
|
/* Other */
|
||||||
|
G_IO_CHANNEL_ERROR_FAILED
|
||||||
|
} GIOChannelError;
|
||||||
|
|
||||||
|
typedef enum
|
||||||
|
{
|
||||||
|
G_IO_STATUS_ERROR,
|
||||||
|
G_IO_STATUS_NORMAL,
|
||||||
|
G_IO_STATUS_EOF,
|
||||||
|
G_IO_STATUS_AGAIN
|
||||||
|
} GIOStatus;
|
||||||
|
|
||||||
|
typedef enum
|
||||||
|
{
|
||||||
|
G_SEEK_CUR,
|
||||||
|
G_SEEK_SET,
|
||||||
|
G_SEEK_END
|
||||||
|
} GSeekType;
|
||||||
|
|
||||||
|
typedef enum
|
||||||
|
{
|
||||||
|
G_IO_FLAG_APPEND = 1 << 0,
|
||||||
|
G_IO_FLAG_NONBLOCK = 1 << 1,
|
||||||
|
G_IO_FLAG_IS_READABLE = 1 << 2, /* Read only flag */
|
||||||
|
G_IO_FLAG_IS_WRITABLE = 1 << 3, /* Read only flag */
|
||||||
|
G_IO_FLAG_IS_WRITEABLE = 1 << 3, /* Misspelling in 2.29.10 and earlier */
|
||||||
|
G_IO_FLAG_IS_SEEKABLE = 1 << 4, /* Read only flag */
|
||||||
|
G_IO_FLAG_MASK = (1 << 5) - 1,
|
||||||
|
G_IO_FLAG_GET_MASK = G_IO_FLAG_MASK,
|
||||||
|
G_IO_FLAG_SET_MASK = G_IO_FLAG_APPEND | G_IO_FLAG_NONBLOCK
|
||||||
|
} GIOFlags;
|
||||||
|
|
||||||
|
struct _GIOChannel
|
||||||
|
{
|
||||||
|
/*< private >*/
|
||||||
|
gint ref_count;
|
||||||
|
GIOFuncs *funcs;
|
||||||
|
|
||||||
|
gchar *encoding;
|
||||||
|
GIConv read_cd;
|
||||||
|
GIConv write_cd;
|
||||||
|
gchar *line_term; /* String which indicates the end of a line of text */
|
||||||
|
guint line_term_len; /* So we can have null in the line term */
|
||||||
|
|
||||||
|
gsize buf_size;
|
||||||
|
GString *read_buf; /* Raw data from the channel */
|
||||||
|
GString *encoded_read_buf; /* Channel data converted to UTF-8 */
|
||||||
|
GString *write_buf; /* Data ready to be written to the file */
|
||||||
|
gchar partial_write_buf[6]; /* UTF-8 partial characters, null terminated */
|
||||||
|
|
||||||
|
/* Group the flags together, immediately after partial_write_buf, to save memory */
|
||||||
|
|
||||||
|
guint use_buffer : 1; /* The encoding uses the buffers */
|
||||||
|
guint do_encode : 1; /* The encoding uses the GIConv coverters */
|
||||||
|
guint close_on_unref : 1; /* Close the channel on final unref */
|
||||||
|
guint is_readable : 1; /* Cached GIOFlag */
|
||||||
|
guint is_writeable : 1; /* ditto */
|
||||||
|
guint is_seekable : 1; /* ditto */
|
||||||
|
|
||||||
|
gpointer reserved1;
|
||||||
|
gpointer reserved2;
|
||||||
|
};
|
||||||
|
|
||||||
|
typedef gboolean (*GIOFunc) (GIOChannel *source,
|
||||||
|
GIOCondition condition,
|
||||||
|
gpointer data);
|
||||||
|
struct _GIOFuncs
|
||||||
|
{
|
||||||
|
GIOStatus (*io_read) (GIOChannel *channel,
|
||||||
|
gchar *buf,
|
||||||
|
gsize count,
|
||||||
|
gsize *bytes_read,
|
||||||
|
GError **err);
|
||||||
|
GIOStatus (*io_write) (GIOChannel *channel,
|
||||||
|
const gchar *buf,
|
||||||
|
gsize count,
|
||||||
|
gsize *bytes_written,
|
||||||
|
GError **err);
|
||||||
|
GIOStatus (*io_seek) (GIOChannel *channel,
|
||||||
|
gint64 offset,
|
||||||
|
GSeekType type,
|
||||||
|
GError **err);
|
||||||
|
GIOStatus (*io_close) (GIOChannel *channel,
|
||||||
|
GError **err);
|
||||||
|
GSource* (*io_create_watch) (GIOChannel *channel,
|
||||||
|
GIOCondition condition);
|
||||||
|
void (*io_free) (GIOChannel *channel);
|
||||||
|
GIOStatus (*io_set_flags) (GIOChannel *channel,
|
||||||
|
GIOFlags flags,
|
||||||
|
GError **err);
|
||||||
|
GIOFlags (*io_get_flags) (GIOChannel *channel);
|
||||||
|
};
|
||||||
|
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_io_channel_init (GIOChannel *channel);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GIOChannel *g_io_channel_ref (GIOChannel *channel);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_io_channel_unref (GIOChannel *channel);
|
||||||
|
|
||||||
|
GLIB_DEPRECATED_FOR(g_io_channel_read_chars)
|
||||||
|
GIOError g_io_channel_read (GIOChannel *channel,
|
||||||
|
gchar *buf,
|
||||||
|
gsize count,
|
||||||
|
gsize *bytes_read);
|
||||||
|
|
||||||
|
GLIB_DEPRECATED_FOR(g_io_channel_write_chars)
|
||||||
|
GIOError g_io_channel_write (GIOChannel *channel,
|
||||||
|
const gchar *buf,
|
||||||
|
gsize count,
|
||||||
|
gsize *bytes_written);
|
||||||
|
|
||||||
|
GLIB_DEPRECATED_FOR(g_io_channel_seek_position)
|
||||||
|
GIOError g_io_channel_seek (GIOChannel *channel,
|
||||||
|
gint64 offset,
|
||||||
|
GSeekType type);
|
||||||
|
|
||||||
|
GLIB_DEPRECATED_FOR(g_io_channel_shutdown)
|
||||||
|
void g_io_channel_close (GIOChannel *channel);
|
||||||
|
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GIOStatus g_io_channel_shutdown (GIOChannel *channel,
|
||||||
|
gboolean flush,
|
||||||
|
GError **err);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
guint g_io_add_watch_full (GIOChannel *channel,
|
||||||
|
gint priority,
|
||||||
|
GIOCondition condition,
|
||||||
|
GIOFunc func,
|
||||||
|
gpointer user_data,
|
||||||
|
GDestroyNotify notify);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GSource * g_io_create_watch (GIOChannel *channel,
|
||||||
|
GIOCondition condition);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
guint g_io_add_watch (GIOChannel *channel,
|
||||||
|
GIOCondition condition,
|
||||||
|
GIOFunc func,
|
||||||
|
gpointer user_data);
|
||||||
|
|
||||||
|
/* character encoding conversion involved functions.
|
||||||
|
*/
|
||||||
|
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_io_channel_set_buffer_size (GIOChannel *channel,
|
||||||
|
gsize size);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gsize g_io_channel_get_buffer_size (GIOChannel *channel);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GIOCondition g_io_channel_get_buffer_condition (GIOChannel *channel);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GIOStatus g_io_channel_set_flags (GIOChannel *channel,
|
||||||
|
GIOFlags flags,
|
||||||
|
GError **error);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GIOFlags g_io_channel_get_flags (GIOChannel *channel);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_io_channel_set_line_term (GIOChannel *channel,
|
||||||
|
const gchar *line_term,
|
||||||
|
gint length);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
const gchar * g_io_channel_get_line_term (GIOChannel *channel,
|
||||||
|
gint *length);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_io_channel_set_buffered (GIOChannel *channel,
|
||||||
|
gboolean buffered);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gboolean g_io_channel_get_buffered (GIOChannel *channel);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GIOStatus g_io_channel_set_encoding (GIOChannel *channel,
|
||||||
|
const gchar *encoding,
|
||||||
|
GError **error);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
const gchar * g_io_channel_get_encoding (GIOChannel *channel);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_io_channel_set_close_on_unref (GIOChannel *channel,
|
||||||
|
gboolean do_close);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gboolean g_io_channel_get_close_on_unref (GIOChannel *channel);
|
||||||
|
|
||||||
|
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GIOStatus g_io_channel_flush (GIOChannel *channel,
|
||||||
|
GError **error);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GIOStatus g_io_channel_read_line (GIOChannel *channel,
|
||||||
|
gchar **str_return,
|
||||||
|
gsize *length,
|
||||||
|
gsize *terminator_pos,
|
||||||
|
GError **error);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GIOStatus g_io_channel_read_line_string (GIOChannel *channel,
|
||||||
|
GString *buffer,
|
||||||
|
gsize *terminator_pos,
|
||||||
|
GError **error);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GIOStatus g_io_channel_read_to_end (GIOChannel *channel,
|
||||||
|
gchar **str_return,
|
||||||
|
gsize *length,
|
||||||
|
GError **error);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GIOStatus g_io_channel_read_chars (GIOChannel *channel,
|
||||||
|
gchar *buf,
|
||||||
|
gsize count,
|
||||||
|
gsize *bytes_read,
|
||||||
|
GError **error);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GIOStatus g_io_channel_read_unichar (GIOChannel *channel,
|
||||||
|
gunichar *thechar,
|
||||||
|
GError **error);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GIOStatus g_io_channel_write_chars (GIOChannel *channel,
|
||||||
|
const gchar *buf,
|
||||||
|
gssize count,
|
||||||
|
gsize *bytes_written,
|
||||||
|
GError **error);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GIOStatus g_io_channel_write_unichar (GIOChannel *channel,
|
||||||
|
gunichar thechar,
|
||||||
|
GError **error);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GIOStatus g_io_channel_seek_position (GIOChannel *channel,
|
||||||
|
gint64 offset,
|
||||||
|
GSeekType type,
|
||||||
|
GError **error);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GIOChannel* g_io_channel_new_file (const gchar *filename,
|
||||||
|
const gchar *mode,
|
||||||
|
GError **error);
|
||||||
|
|
||||||
|
/* Error handling */
|
||||||
|
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GQuark g_io_channel_error_quark (void);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GIOChannelError g_io_channel_error_from_errno (gint en);
|
||||||
|
|
||||||
|
/* On Unix, IO channels created with this function for any file
|
||||||
|
* descriptor or socket.
|
||||||
|
*
|
||||||
|
* On Win32, this can be used either for files opened with the MSVCRT
|
||||||
|
* (the Microsoft run-time C library) _open() or _pipe, including file
|
||||||
|
* descriptors 0, 1 and 2 (corresponding to stdin, stdout and stderr),
|
||||||
|
* or for Winsock SOCKETs. If the parameter is a legal file
|
||||||
|
* descriptor, it is assumed to be such, otherwise it should be a
|
||||||
|
* SOCKET. This relies on SOCKETs and file descriptors not
|
||||||
|
* overlapping. If you want to be certain, call either
|
||||||
|
* g_io_channel_win32_new_fd() or g_io_channel_win32_new_socket()
|
||||||
|
* instead as appropriate.
|
||||||
|
*
|
||||||
|
* The term file descriptor as used in the context of Win32 refers to
|
||||||
|
* the emulated Unix-like file descriptors MSVCRT provides. The native
|
||||||
|
* corresponding concept is file HANDLE. There isn't as of yet a way to
|
||||||
|
* get GIOChannels for Win32 file HANDLEs.
|
||||||
|
*/
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GIOChannel* g_io_channel_unix_new (int fd);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gint g_io_channel_unix_get_fd (GIOChannel *channel);
|
||||||
|
|
||||||
|
|
||||||
|
/* Hook for GClosure / GSource integration. Don't touch */
|
||||||
|
GLIB_VAR GSourceFuncs g_io_watch_funcs;
|
||||||
|
|
||||||
|
#ifdef G_OS_WIN32
|
||||||
|
|
||||||
|
/* You can use this "pseudo file descriptor" in a GPollFD to add
|
||||||
|
* polling for Windows messages. GTK applications should not do that.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#define G_WIN32_MSG_HANDLE 19981206
|
||||||
|
|
||||||
|
/* Use this to get a GPollFD from a GIOChannel, so that you can call
|
||||||
|
* g_io_channel_win32_poll(). After calling this you should only use
|
||||||
|
* g_io_channel_read() to read from the GIOChannel, i.e. never read()
|
||||||
|
* from the underlying file descriptor. For SOCKETs, it is possible to call
|
||||||
|
* recv().
|
||||||
|
*/
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_io_channel_win32_make_pollfd (GIOChannel *channel,
|
||||||
|
GIOCondition condition,
|
||||||
|
GPollFD *fd);
|
||||||
|
|
||||||
|
/* This can be used to wait a until at least one of the channels is readable.
|
||||||
|
* On Unix you would do a select() on the file descriptors of the channels.
|
||||||
|
*/
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gint g_io_channel_win32_poll (GPollFD *fds,
|
||||||
|
gint n_fds,
|
||||||
|
gint timeout_);
|
||||||
|
|
||||||
|
/* Create an IO channel for Windows messages for window handle hwnd. */
|
||||||
|
#if GLIB_SIZEOF_VOID_P == 8
|
||||||
|
/* We use gsize here so that it is still an integer type and not a
|
||||||
|
* pointer, like the guint in the traditional prototype. We can't use
|
||||||
|
* intptr_t as that is not portable enough.
|
||||||
|
*/
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GIOChannel *g_io_channel_win32_new_messages (gsize hwnd);
|
||||||
|
#else
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GIOChannel *g_io_channel_win32_new_messages (guint hwnd);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* Create an IO channel for C runtime (emulated Unix-like) file
|
||||||
|
* descriptors. After calling g_io_add_watch() on a IO channel
|
||||||
|
* returned by this function, you shouldn't call read() on the file
|
||||||
|
* descriptor. This is because adding polling for a file descriptor is
|
||||||
|
* implemented on Win32 by starting a thread that sits blocked in a
|
||||||
|
* read() from the file descriptor most of the time. All reads from
|
||||||
|
* the file descriptor should be done by this internal GLib
|
||||||
|
* thread. Your code should call only g_io_channel_read_chars().
|
||||||
|
*/
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GIOChannel* g_io_channel_win32_new_fd (gint fd);
|
||||||
|
|
||||||
|
/* Get the C runtime file descriptor of a channel. */
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gint g_io_channel_win32_get_fd (GIOChannel *channel);
|
||||||
|
|
||||||
|
/* Create an IO channel for a winsock socket. The parameter should be
|
||||||
|
* a SOCKET. Contrary to IO channels for file descriptors (on *Win32),
|
||||||
|
* you can use normal recv() or recvfrom() on sockets even if GLib
|
||||||
|
* is polling them.
|
||||||
|
*/
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GIOChannel *g_io_channel_win32_new_socket (gint socket);
|
||||||
|
|
||||||
|
GLIB_DEPRECATED_FOR(g_io_channel_win32_new_socket)
|
||||||
|
GIOChannel *g_io_channel_win32_new_stream_socket (gint socket);
|
||||||
|
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_io_channel_win32_set_debug (GIOChannel *channel,
|
||||||
|
gboolean flag);
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef __GTK_DOC_IGNORE__
|
||||||
|
#ifdef G_OS_WIN32
|
||||||
|
#define g_io_channel_new_file g_io_channel_new_file_utf8
|
||||||
|
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GIOChannel *g_io_channel_new_file_utf8 (const gchar *filename,
|
||||||
|
const gchar *mode,
|
||||||
|
GError **error);
|
||||||
|
#endif
|
||||||
|
#endif /* __GTK_DOC_IGNORE__ */
|
||||||
|
|
||||||
|
G_END_DECLS
|
||||||
|
|
||||||
|
#endif /* __G_IOCHANNEL_H__ */
|
326
code/application/source/sf_app/code/source/sf_blue/inc/glib/glib/gkeyfile.h
Executable file
326
code/application/source/sf_app/code/source/sf_blue/inc/glib/glib/gkeyfile.h
Executable file
|
@ -0,0 +1,326 @@
|
||||||
|
/* gkeyfile.h - desktop entry file parser
|
||||||
|
*
|
||||||
|
* Copyright 2004 Red Hat, Inc.
|
||||||
|
*
|
||||||
|
* Ray Strode <halfline@hawaii.rr.com>
|
||||||
|
*
|
||||||
|
* GLib 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 of the
|
||||||
|
* License, or (at your option) any later version.
|
||||||
|
*
|
||||||
|
* GLib 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 GLib; see the file COPYING.LIB. If not,
|
||||||
|
* see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef __G_KEY_FILE_H__
|
||||||
|
#define __G_KEY_FILE_H__
|
||||||
|
|
||||||
|
#if !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION)
|
||||||
|
#error "Only <glib.h> can be included directly."
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include <glib/gbytes.h>
|
||||||
|
#include <glib/gerror.h>
|
||||||
|
|
||||||
|
G_BEGIN_DECLS
|
||||||
|
|
||||||
|
typedef enum
|
||||||
|
{
|
||||||
|
G_KEY_FILE_ERROR_UNKNOWN_ENCODING,
|
||||||
|
G_KEY_FILE_ERROR_PARSE,
|
||||||
|
G_KEY_FILE_ERROR_NOT_FOUND,
|
||||||
|
G_KEY_FILE_ERROR_KEY_NOT_FOUND,
|
||||||
|
G_KEY_FILE_ERROR_GROUP_NOT_FOUND,
|
||||||
|
G_KEY_FILE_ERROR_INVALID_VALUE
|
||||||
|
} GKeyFileError;
|
||||||
|
|
||||||
|
#define G_KEY_FILE_ERROR g_key_file_error_quark()
|
||||||
|
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GQuark g_key_file_error_quark (void);
|
||||||
|
|
||||||
|
typedef struct _GKeyFile GKeyFile;
|
||||||
|
|
||||||
|
typedef enum
|
||||||
|
{
|
||||||
|
G_KEY_FILE_NONE = 0,
|
||||||
|
G_KEY_FILE_KEEP_COMMENTS = 1 << 0,
|
||||||
|
G_KEY_FILE_KEEP_TRANSLATIONS = 1 << 1
|
||||||
|
} GKeyFileFlags;
|
||||||
|
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GKeyFile *g_key_file_new (void);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GKeyFile *g_key_file_ref (GKeyFile *key_file);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_key_file_unref (GKeyFile *key_file);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_key_file_free (GKeyFile *key_file);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_key_file_set_list_separator (GKeyFile *key_file,
|
||||||
|
gchar separator);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gboolean g_key_file_load_from_file (GKeyFile *key_file,
|
||||||
|
const gchar *file,
|
||||||
|
GKeyFileFlags flags,
|
||||||
|
GError **error);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gboolean g_key_file_load_from_data (GKeyFile *key_file,
|
||||||
|
const gchar *data,
|
||||||
|
gsize length,
|
||||||
|
GKeyFileFlags flags,
|
||||||
|
GError **error);
|
||||||
|
GLIB_AVAILABLE_IN_2_50
|
||||||
|
gboolean g_key_file_load_from_bytes (GKeyFile *key_file,
|
||||||
|
GBytes *bytes,
|
||||||
|
GKeyFileFlags flags,
|
||||||
|
GError **error);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gboolean g_key_file_load_from_dirs (GKeyFile *key_file,
|
||||||
|
const gchar *file,
|
||||||
|
const gchar **search_dirs,
|
||||||
|
gchar **full_path,
|
||||||
|
GKeyFileFlags flags,
|
||||||
|
GError **error);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gboolean g_key_file_load_from_data_dirs (GKeyFile *key_file,
|
||||||
|
const gchar *file,
|
||||||
|
gchar **full_path,
|
||||||
|
GKeyFileFlags flags,
|
||||||
|
GError **error);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gchar *g_key_file_to_data (GKeyFile *key_file,
|
||||||
|
gsize *length,
|
||||||
|
GError **error) G_GNUC_MALLOC;
|
||||||
|
GLIB_AVAILABLE_IN_2_40
|
||||||
|
gboolean g_key_file_save_to_file (GKeyFile *key_file,
|
||||||
|
const gchar *filename,
|
||||||
|
GError **error);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gchar *g_key_file_get_start_group (GKeyFile *key_file) G_GNUC_MALLOC;
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gchar **g_key_file_get_groups (GKeyFile *key_file,
|
||||||
|
gsize *length) G_GNUC_MALLOC;
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gchar **g_key_file_get_keys (GKeyFile *key_file,
|
||||||
|
const gchar *group_name,
|
||||||
|
gsize *length,
|
||||||
|
GError **error) G_GNUC_MALLOC;
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gboolean g_key_file_has_group (GKeyFile *key_file,
|
||||||
|
const gchar *group_name);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gboolean g_key_file_has_key (GKeyFile *key_file,
|
||||||
|
const gchar *group_name,
|
||||||
|
const gchar *key,
|
||||||
|
GError **error);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gchar *g_key_file_get_value (GKeyFile *key_file,
|
||||||
|
const gchar *group_name,
|
||||||
|
const gchar *key,
|
||||||
|
GError **error) G_GNUC_MALLOC;
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_key_file_set_value (GKeyFile *key_file,
|
||||||
|
const gchar *group_name,
|
||||||
|
const gchar *key,
|
||||||
|
const gchar *value);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gchar *g_key_file_get_string (GKeyFile *key_file,
|
||||||
|
const gchar *group_name,
|
||||||
|
const gchar *key,
|
||||||
|
GError **error) G_GNUC_MALLOC;
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_key_file_set_string (GKeyFile *key_file,
|
||||||
|
const gchar *group_name,
|
||||||
|
const gchar *key,
|
||||||
|
const gchar *string);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gchar *g_key_file_get_locale_string (GKeyFile *key_file,
|
||||||
|
const gchar *group_name,
|
||||||
|
const gchar *key,
|
||||||
|
const gchar *locale,
|
||||||
|
GError **error) G_GNUC_MALLOC;
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_key_file_set_locale_string (GKeyFile *key_file,
|
||||||
|
const gchar *group_name,
|
||||||
|
const gchar *key,
|
||||||
|
const gchar *locale,
|
||||||
|
const gchar *string);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gboolean g_key_file_get_boolean (GKeyFile *key_file,
|
||||||
|
const gchar *group_name,
|
||||||
|
const gchar *key,
|
||||||
|
GError **error);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_key_file_set_boolean (GKeyFile *key_file,
|
||||||
|
const gchar *group_name,
|
||||||
|
const gchar *key,
|
||||||
|
gboolean value);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gint g_key_file_get_integer (GKeyFile *key_file,
|
||||||
|
const gchar *group_name,
|
||||||
|
const gchar *key,
|
||||||
|
GError **error);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_key_file_set_integer (GKeyFile *key_file,
|
||||||
|
const gchar *group_name,
|
||||||
|
const gchar *key,
|
||||||
|
gint value);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gint64 g_key_file_get_int64 (GKeyFile *key_file,
|
||||||
|
const gchar *group_name,
|
||||||
|
const gchar *key,
|
||||||
|
GError **error);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_key_file_set_int64 (GKeyFile *key_file,
|
||||||
|
const gchar *group_name,
|
||||||
|
const gchar *key,
|
||||||
|
gint64 value);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
guint64 g_key_file_get_uint64 (GKeyFile *key_file,
|
||||||
|
const gchar *group_name,
|
||||||
|
const gchar *key,
|
||||||
|
GError **error);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_key_file_set_uint64 (GKeyFile *key_file,
|
||||||
|
const gchar *group_name,
|
||||||
|
const gchar *key,
|
||||||
|
guint64 value);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gdouble g_key_file_get_double (GKeyFile *key_file,
|
||||||
|
const gchar *group_name,
|
||||||
|
const gchar *key,
|
||||||
|
GError **error);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_key_file_set_double (GKeyFile *key_file,
|
||||||
|
const gchar *group_name,
|
||||||
|
const gchar *key,
|
||||||
|
gdouble value);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gchar **g_key_file_get_string_list (GKeyFile *key_file,
|
||||||
|
const gchar *group_name,
|
||||||
|
const gchar *key,
|
||||||
|
gsize *length,
|
||||||
|
GError **error) G_GNUC_MALLOC;
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_key_file_set_string_list (GKeyFile *key_file,
|
||||||
|
const gchar *group_name,
|
||||||
|
const gchar *key,
|
||||||
|
const gchar * const list[],
|
||||||
|
gsize length);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gchar **g_key_file_get_locale_string_list (GKeyFile *key_file,
|
||||||
|
const gchar *group_name,
|
||||||
|
const gchar *key,
|
||||||
|
const gchar *locale,
|
||||||
|
gsize *length,
|
||||||
|
GError **error) G_GNUC_MALLOC;
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_key_file_set_locale_string_list (GKeyFile *key_file,
|
||||||
|
const gchar *group_name,
|
||||||
|
const gchar *key,
|
||||||
|
const gchar *locale,
|
||||||
|
const gchar * const list[],
|
||||||
|
gsize length);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gboolean *g_key_file_get_boolean_list (GKeyFile *key_file,
|
||||||
|
const gchar *group_name,
|
||||||
|
const gchar *key,
|
||||||
|
gsize *length,
|
||||||
|
GError **error) G_GNUC_MALLOC;
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_key_file_set_boolean_list (GKeyFile *key_file,
|
||||||
|
const gchar *group_name,
|
||||||
|
const gchar *key,
|
||||||
|
gboolean list[],
|
||||||
|
gsize length);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gint *g_key_file_get_integer_list (GKeyFile *key_file,
|
||||||
|
const gchar *group_name,
|
||||||
|
const gchar *key,
|
||||||
|
gsize *length,
|
||||||
|
GError **error) G_GNUC_MALLOC;
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_key_file_set_double_list (GKeyFile *key_file,
|
||||||
|
const gchar *group_name,
|
||||||
|
const gchar *key,
|
||||||
|
gdouble list[],
|
||||||
|
gsize length);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gdouble *g_key_file_get_double_list (GKeyFile *key_file,
|
||||||
|
const gchar *group_name,
|
||||||
|
const gchar *key,
|
||||||
|
gsize *length,
|
||||||
|
GError **error) G_GNUC_MALLOC;
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_key_file_set_integer_list (GKeyFile *key_file,
|
||||||
|
const gchar *group_name,
|
||||||
|
const gchar *key,
|
||||||
|
gint list[],
|
||||||
|
gsize length);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gboolean g_key_file_set_comment (GKeyFile *key_file,
|
||||||
|
const gchar *group_name,
|
||||||
|
const gchar *key,
|
||||||
|
const gchar *comment,
|
||||||
|
GError **error);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gchar *g_key_file_get_comment (GKeyFile *key_file,
|
||||||
|
const gchar *group_name,
|
||||||
|
const gchar *key,
|
||||||
|
GError **error) G_GNUC_MALLOC;
|
||||||
|
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gboolean g_key_file_remove_comment (GKeyFile *key_file,
|
||||||
|
const gchar *group_name,
|
||||||
|
const gchar *key,
|
||||||
|
GError **error);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gboolean g_key_file_remove_key (GKeyFile *key_file,
|
||||||
|
const gchar *group_name,
|
||||||
|
const gchar *key,
|
||||||
|
GError **error);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gboolean g_key_file_remove_group (GKeyFile *key_file,
|
||||||
|
const gchar *group_name,
|
||||||
|
GError **error);
|
||||||
|
|
||||||
|
/* Defines for handling freedesktop.org Desktop files */
|
||||||
|
#define G_KEY_FILE_DESKTOP_GROUP "Desktop Entry"
|
||||||
|
|
||||||
|
#define G_KEY_FILE_DESKTOP_KEY_TYPE "Type"
|
||||||
|
#define G_KEY_FILE_DESKTOP_KEY_VERSION "Version"
|
||||||
|
#define G_KEY_FILE_DESKTOP_KEY_NAME "Name"
|
||||||
|
#define G_KEY_FILE_DESKTOP_KEY_GENERIC_NAME "GenericName"
|
||||||
|
#define G_KEY_FILE_DESKTOP_KEY_NO_DISPLAY "NoDisplay"
|
||||||
|
#define G_KEY_FILE_DESKTOP_KEY_COMMENT "Comment"
|
||||||
|
#define G_KEY_FILE_DESKTOP_KEY_ICON "Icon"
|
||||||
|
#define G_KEY_FILE_DESKTOP_KEY_HIDDEN "Hidden"
|
||||||
|
#define G_KEY_FILE_DESKTOP_KEY_ONLY_SHOW_IN "OnlyShowIn"
|
||||||
|
#define G_KEY_FILE_DESKTOP_KEY_NOT_SHOW_IN "NotShowIn"
|
||||||
|
#define G_KEY_FILE_DESKTOP_KEY_TRY_EXEC "TryExec"
|
||||||
|
#define G_KEY_FILE_DESKTOP_KEY_EXEC "Exec"
|
||||||
|
#define G_KEY_FILE_DESKTOP_KEY_PATH "Path"
|
||||||
|
#define G_KEY_FILE_DESKTOP_KEY_TERMINAL "Terminal"
|
||||||
|
#define G_KEY_FILE_DESKTOP_KEY_MIME_TYPE "MimeType"
|
||||||
|
#define G_KEY_FILE_DESKTOP_KEY_CATEGORIES "Categories"
|
||||||
|
#define G_KEY_FILE_DESKTOP_KEY_STARTUP_NOTIFY "StartupNotify"
|
||||||
|
#define G_KEY_FILE_DESKTOP_KEY_STARTUP_WM_CLASS "StartupWMClass"
|
||||||
|
#define G_KEY_FILE_DESKTOP_KEY_URL "URL"
|
||||||
|
#define G_KEY_FILE_DESKTOP_KEY_DBUS_ACTIVATABLE "DBusActivatable"
|
||||||
|
#define G_KEY_FILE_DESKTOP_KEY_ACTIONS "Actions"
|
||||||
|
|
||||||
|
#define G_KEY_FILE_DESKTOP_TYPE_APPLICATION "Application"
|
||||||
|
#define G_KEY_FILE_DESKTOP_TYPE_LINK "Link"
|
||||||
|
#define G_KEY_FILE_DESKTOP_TYPE_DIRECTORY "Directory"
|
||||||
|
|
||||||
|
G_END_DECLS
|
||||||
|
|
||||||
|
#endif /* __G_KEY_FILE_H__ */
|
|
@ -0,0 +1,89 @@
|
||||||
|
/*
|
||||||
|
* Copyright © 2015 Canonical Limited
|
||||||
|
*
|
||||||
|
* This library 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 of the licence, or (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This library 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 this library; if not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*
|
||||||
|
* Author: Ryan Lortie <desrt@desrt.ca>
|
||||||
|
*/
|
||||||
|
|
||||||
|
#if !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION)
|
||||||
|
#error "Only <glib.h> can be included directly."
|
||||||
|
#endif
|
||||||
|
|
||||||
|
static inline void
|
||||||
|
g_autoptr_cleanup_generic_gfree (void *p)
|
||||||
|
{
|
||||||
|
void **pp = (void**)p;
|
||||||
|
g_free (*pp);
|
||||||
|
}
|
||||||
|
|
||||||
|
static inline void
|
||||||
|
g_autoptr_cleanup_gstring_free (GString *string)
|
||||||
|
{
|
||||||
|
if (string)
|
||||||
|
g_string_free (string, TRUE);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* If adding a cleanup here, please also add a test case to
|
||||||
|
* glib/tests/autoptr.c
|
||||||
|
*/
|
||||||
|
G_DEFINE_AUTOPTR_CLEANUP_FUNC(GAsyncQueue, g_async_queue_unref)
|
||||||
|
G_DEFINE_AUTOPTR_CLEANUP_FUNC(GBookmarkFile, g_bookmark_file_free)
|
||||||
|
G_DEFINE_AUTOPTR_CLEANUP_FUNC(GBytes, g_bytes_unref)
|
||||||
|
G_DEFINE_AUTOPTR_CLEANUP_FUNC(GChecksum, g_checksum_free)
|
||||||
|
G_DEFINE_AUTOPTR_CLEANUP_FUNC(GDateTime, g_date_time_unref)
|
||||||
|
G_DEFINE_AUTOPTR_CLEANUP_FUNC(GDir, g_dir_close)
|
||||||
|
G_DEFINE_AUTOPTR_CLEANUP_FUNC(GError, g_error_free)
|
||||||
|
G_DEFINE_AUTOPTR_CLEANUP_FUNC(GHashTable, g_hash_table_unref)
|
||||||
|
G_DEFINE_AUTOPTR_CLEANUP_FUNC(GHmac, g_hmac_unref)
|
||||||
|
G_DEFINE_AUTOPTR_CLEANUP_FUNC(GIOChannel, g_io_channel_unref)
|
||||||
|
G_DEFINE_AUTOPTR_CLEANUP_FUNC(GKeyFile, g_key_file_unref)
|
||||||
|
G_DEFINE_AUTOPTR_CLEANUP_FUNC(GList, g_list_free)
|
||||||
|
G_DEFINE_AUTOPTR_CLEANUP_FUNC(GArray, g_array_unref)
|
||||||
|
G_DEFINE_AUTOPTR_CLEANUP_FUNC(GPtrArray, g_ptr_array_unref)
|
||||||
|
G_DEFINE_AUTOPTR_CLEANUP_FUNC(GByteArray, g_byte_array_unref)
|
||||||
|
G_DEFINE_AUTOPTR_CLEANUP_FUNC(GMainContext, g_main_context_unref)
|
||||||
|
G_DEFINE_AUTOPTR_CLEANUP_FUNC(GMainLoop, g_main_loop_unref)
|
||||||
|
G_DEFINE_AUTOPTR_CLEANUP_FUNC(GSource, g_source_unref)
|
||||||
|
G_DEFINE_AUTOPTR_CLEANUP_FUNC(GMappedFile, g_mapped_file_unref)
|
||||||
|
G_DEFINE_AUTOPTR_CLEANUP_FUNC(GMarkupParseContext, g_markup_parse_context_unref)
|
||||||
|
G_DEFINE_AUTOPTR_CLEANUP_FUNC(GNode, g_node_destroy)
|
||||||
|
G_DEFINE_AUTOPTR_CLEANUP_FUNC(GOptionContext, g_option_context_free)
|
||||||
|
G_DEFINE_AUTOPTR_CLEANUP_FUNC(GOptionGroup, g_option_group_unref)
|
||||||
|
G_DEFINE_AUTOPTR_CLEANUP_FUNC(GPatternSpec, g_pattern_spec_free)
|
||||||
|
G_DEFINE_AUTOPTR_CLEANUP_FUNC(GQueue, g_queue_free)
|
||||||
|
G_DEFINE_AUTO_CLEANUP_CLEAR_FUNC(GQueue, g_queue_clear)
|
||||||
|
G_DEFINE_AUTOPTR_CLEANUP_FUNC(GRand, g_rand_free)
|
||||||
|
G_DEFINE_AUTOPTR_CLEANUP_FUNC(GRegex, g_regex_unref)
|
||||||
|
G_DEFINE_AUTOPTR_CLEANUP_FUNC(GMatchInfo, g_match_info_unref)
|
||||||
|
G_DEFINE_AUTOPTR_CLEANUP_FUNC(GScanner, g_scanner_destroy)
|
||||||
|
G_DEFINE_AUTOPTR_CLEANUP_FUNC(GSequence, g_sequence_free)
|
||||||
|
G_DEFINE_AUTOPTR_CLEANUP_FUNC(GSList, g_slist_free)
|
||||||
|
G_DEFINE_AUTOPTR_CLEANUP_FUNC(GString, g_autoptr_cleanup_gstring_free)
|
||||||
|
G_DEFINE_AUTOPTR_CLEANUP_FUNC(GStringChunk, g_string_chunk_free)
|
||||||
|
G_DEFINE_AUTOPTR_CLEANUP_FUNC(GThread, g_thread_unref)
|
||||||
|
G_DEFINE_AUTO_CLEANUP_CLEAR_FUNC(GMutex, g_mutex_clear)
|
||||||
|
G_DEFINE_AUTOPTR_CLEANUP_FUNC(GMutexLocker, g_mutex_locker_free)
|
||||||
|
G_DEFINE_AUTO_CLEANUP_CLEAR_FUNC(GCond, g_cond_clear)
|
||||||
|
G_DEFINE_AUTOPTR_CLEANUP_FUNC(GTimer, g_timer_destroy)
|
||||||
|
G_DEFINE_AUTOPTR_CLEANUP_FUNC(GTimeZone, g_time_zone_unref)
|
||||||
|
G_DEFINE_AUTOPTR_CLEANUP_FUNC(GTree, g_tree_unref)
|
||||||
|
G_DEFINE_AUTOPTR_CLEANUP_FUNC(GVariant, g_variant_unref)
|
||||||
|
G_DEFINE_AUTOPTR_CLEANUP_FUNC(GVariantBuilder, g_variant_builder_unref)
|
||||||
|
G_DEFINE_AUTO_CLEANUP_CLEAR_FUNC(GVariantBuilder, g_variant_builder_clear)
|
||||||
|
G_DEFINE_AUTOPTR_CLEANUP_FUNC(GVariantIter, g_variant_iter_free)
|
||||||
|
G_DEFINE_AUTOPTR_CLEANUP_FUNC(GVariantDict, g_variant_dict_unref)
|
||||||
|
G_DEFINE_AUTO_CLEANUP_CLEAR_FUNC(GVariantDict, g_variant_dict_clear)
|
||||||
|
G_DEFINE_AUTOPTR_CLEANUP_FUNC(GVariantType, g_variant_type_free)
|
||||||
|
G_DEFINE_AUTO_CLEANUP_FREE_FUNC(GStrv, g_strfreev, NULL)
|
152
code/application/source/sf_app/code/source/sf_blue/inc/glib/glib/glist.h
Executable file
152
code/application/source/sf_app/code/source/sf_blue/inc/glib/glib/glist.h
Executable file
|
@ -0,0 +1,152 @@
|
||||||
|
/* GLIB - Library of useful routines for C programming
|
||||||
|
* Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald
|
||||||
|
*
|
||||||
|
* This library 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 of the License, or (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This library 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 this library; if not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Modified by the GLib Team and others 1997-2000. See the AUTHORS
|
||||||
|
* file for a list of people on the GLib Team. See the ChangeLog
|
||||||
|
* files for a list of changes. These files are distributed with
|
||||||
|
* GLib at ftp://ftp.gtk.org/pub/gtk/.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef __G_LIST_H__
|
||||||
|
#define __G_LIST_H__
|
||||||
|
|
||||||
|
#if !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION)
|
||||||
|
#error "Only <glib.h> can be included directly."
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include <glib/gmem.h>
|
||||||
|
#include <glib/gnode.h>
|
||||||
|
|
||||||
|
G_BEGIN_DECLS
|
||||||
|
|
||||||
|
typedef struct _GList GList;
|
||||||
|
|
||||||
|
struct _GList
|
||||||
|
{
|
||||||
|
gpointer data;
|
||||||
|
GList *next;
|
||||||
|
GList *prev;
|
||||||
|
};
|
||||||
|
|
||||||
|
/* Doubly linked lists
|
||||||
|
*/
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GList* g_list_alloc (void) G_GNUC_WARN_UNUSED_RESULT;
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_list_free (GList *list);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_list_free_1 (GList *list);
|
||||||
|
#define g_list_free1 g_list_free_1
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_list_free_full (GList *list,
|
||||||
|
GDestroyNotify free_func);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GList* g_list_append (GList *list,
|
||||||
|
gpointer data) G_GNUC_WARN_UNUSED_RESULT;
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GList* g_list_prepend (GList *list,
|
||||||
|
gpointer data) G_GNUC_WARN_UNUSED_RESULT;
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GList* g_list_insert (GList *list,
|
||||||
|
gpointer data,
|
||||||
|
gint position) G_GNUC_WARN_UNUSED_RESULT;
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GList* g_list_insert_sorted (GList *list,
|
||||||
|
gpointer data,
|
||||||
|
GCompareFunc func) G_GNUC_WARN_UNUSED_RESULT;
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GList* g_list_insert_sorted_with_data (GList *list,
|
||||||
|
gpointer data,
|
||||||
|
GCompareDataFunc func,
|
||||||
|
gpointer user_data) G_GNUC_WARN_UNUSED_RESULT;
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GList* g_list_insert_before (GList *list,
|
||||||
|
GList *sibling,
|
||||||
|
gpointer data) G_GNUC_WARN_UNUSED_RESULT;
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GList* g_list_concat (GList *list1,
|
||||||
|
GList *list2) G_GNUC_WARN_UNUSED_RESULT;
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GList* g_list_remove (GList *list,
|
||||||
|
gconstpointer data) G_GNUC_WARN_UNUSED_RESULT;
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GList* g_list_remove_all (GList *list,
|
||||||
|
gconstpointer data) G_GNUC_WARN_UNUSED_RESULT;
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GList* g_list_remove_link (GList *list,
|
||||||
|
GList *llink) G_GNUC_WARN_UNUSED_RESULT;
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GList* g_list_delete_link (GList *list,
|
||||||
|
GList *link_) G_GNUC_WARN_UNUSED_RESULT;
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GList* g_list_reverse (GList *list) G_GNUC_WARN_UNUSED_RESULT;
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GList* g_list_copy (GList *list) G_GNUC_WARN_UNUSED_RESULT;
|
||||||
|
|
||||||
|
GLIB_AVAILABLE_IN_2_34
|
||||||
|
GList* g_list_copy_deep (GList *list,
|
||||||
|
GCopyFunc func,
|
||||||
|
gpointer user_data) G_GNUC_WARN_UNUSED_RESULT;
|
||||||
|
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GList* g_list_nth (GList *list,
|
||||||
|
guint n);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GList* g_list_nth_prev (GList *list,
|
||||||
|
guint n);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GList* g_list_find (GList *list,
|
||||||
|
gconstpointer data);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GList* g_list_find_custom (GList *list,
|
||||||
|
gconstpointer data,
|
||||||
|
GCompareFunc func);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gint g_list_position (GList *list,
|
||||||
|
GList *llink);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gint g_list_index (GList *list,
|
||||||
|
gconstpointer data);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GList* g_list_last (GList *list);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GList* g_list_first (GList *list);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
guint g_list_length (GList *list);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_list_foreach (GList *list,
|
||||||
|
GFunc func,
|
||||||
|
gpointer user_data);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GList* g_list_sort (GList *list,
|
||||||
|
GCompareFunc compare_func) G_GNUC_WARN_UNUSED_RESULT;
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GList* g_list_sort_with_data (GList *list,
|
||||||
|
GCompareDataFunc compare_func,
|
||||||
|
gpointer user_data) G_GNUC_WARN_UNUSED_RESULT;
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gpointer g_list_nth_data (GList *list,
|
||||||
|
guint n);
|
||||||
|
|
||||||
|
|
||||||
|
#define g_list_previous(list) ((list) ? (((GList *)(list))->prev) : NULL)
|
||||||
|
#define g_list_next(list) ((list) ? (((GList *)(list))->next) : NULL)
|
||||||
|
|
||||||
|
G_END_DECLS
|
||||||
|
|
||||||
|
#endif /* __G_LIST_H__ */
|
470
code/application/source/sf_app/code/source/sf_blue/inc/glib/glib/gmacros.h
Executable file
470
code/application/source/sf_app/code/source/sf_blue/inc/glib/glib/gmacros.h
Executable file
|
@ -0,0 +1,470 @@
|
||||||
|
/* GLIB - Library of useful routines for C programming
|
||||||
|
* Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald
|
||||||
|
*
|
||||||
|
* This library 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 of the License, or (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This library 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 this library; if not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Modified by the GLib Team and others 1997-2000. See the AUTHORS
|
||||||
|
* file for a list of people on the GLib Team. See the ChangeLog
|
||||||
|
* files for a list of changes. These files are distributed with
|
||||||
|
* GLib at ftp://ftp.gtk.org/pub/gtk/.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* This file must not include any other glib header file and must thus
|
||||||
|
* not refer to variables from glibconfig.h
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef __G_MACROS_H__
|
||||||
|
#define __G_MACROS_H__
|
||||||
|
|
||||||
|
#if !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION)
|
||||||
|
#error "Only <glib.h> can be included directly."
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* We include stddef.h to get the system's definition of NULL
|
||||||
|
*/
|
||||||
|
#include <stddef.h>
|
||||||
|
|
||||||
|
#define G_GNUC_CHECK_VERSION(major, minor) \
|
||||||
|
(defined(__GNUC__) && \
|
||||||
|
((__GNUC__ > (major)) || \
|
||||||
|
((__GNUC__ == (major)) && \
|
||||||
|
(__GNUC_MINOR__ >= (minor)))))
|
||||||
|
|
||||||
|
/* Here we provide G_GNUC_EXTENSION as an alias for __extension__,
|
||||||
|
* where this is valid. This allows for warningless compilation of
|
||||||
|
* "long long" types even in the presence of '-ansi -pedantic'.
|
||||||
|
*/
|
||||||
|
#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 8)
|
||||||
|
#define G_GNUC_EXTENSION __extension__
|
||||||
|
#else
|
||||||
|
#define G_GNUC_EXTENSION
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* Every compiler that we target supports inlining, but some of them may
|
||||||
|
* complain about it if we don't say "__inline". If we have C99, or if
|
||||||
|
* we are using C++, then we can use "inline" directly. Unfortunately
|
||||||
|
* Visual Studio does not support __STDC_VERSION__, so we need to check
|
||||||
|
* whether we are on Visual Studio 2013 or earlier to see that we need to
|
||||||
|
* say "__inline" in C mode.
|
||||||
|
* Otherwise, we say "__inline" to avoid the warning.
|
||||||
|
*/
|
||||||
|
#define G_CAN_INLINE
|
||||||
|
#ifndef __cplusplus
|
||||||
|
# ifdef _MSC_VER
|
||||||
|
# if (_MSC_VER < 1900)
|
||||||
|
# define G_INLINE_DEFINE_NEEDED
|
||||||
|
# endif
|
||||||
|
# elif !defined(__STDC_VERSION__) || (__STDC_VERSION__ < 199900)
|
||||||
|
# define G_INLINE_DEFINE_NEEDED
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef G_INLINE_DEFINE_NEEDED
|
||||||
|
# undef inline
|
||||||
|
# define inline __inline
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#undef G_INLINE_DEFINE_NEEDED
|
||||||
|
|
||||||
|
/* For historical reasons we need to continue to support those who
|
||||||
|
* define G_IMPLEMENT_INLINES to mean "don't implement this here".
|
||||||
|
*/
|
||||||
|
#ifdef G_IMPLEMENT_INLINES
|
||||||
|
# define G_INLINE_FUNC extern
|
||||||
|
# undef G_CAN_INLINE
|
||||||
|
#else
|
||||||
|
# define G_INLINE_FUNC static inline
|
||||||
|
#endif /* G_IMPLEMENT_INLINES */
|
||||||
|
|
||||||
|
/* Provide macros to feature the GCC function attribute.
|
||||||
|
*/
|
||||||
|
#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 96)
|
||||||
|
#define G_GNUC_PURE __attribute__((__pure__))
|
||||||
|
#define G_GNUC_MALLOC __attribute__((__malloc__))
|
||||||
|
#else
|
||||||
|
#define G_GNUC_PURE
|
||||||
|
#define G_GNUC_MALLOC
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if __GNUC__ >= 4
|
||||||
|
#define G_GNUC_NULL_TERMINATED __attribute__((__sentinel__))
|
||||||
|
#else
|
||||||
|
#define G_GNUC_NULL_TERMINATED
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* Clang feature detection: http://clang.llvm.org/docs/LanguageExtensions.html */
|
||||||
|
#ifndef __has_attribute
|
||||||
|
#define __has_attribute(x) 0
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef __has_feature
|
||||||
|
#define __has_feature(x) 0
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef __has_builtin
|
||||||
|
#define __has_builtin(x) 0
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if (!defined(__clang__) && ((__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3))) || \
|
||||||
|
(defined(__clang__) && __has_attribute(__alloc_size__))
|
||||||
|
#define G_GNUC_ALLOC_SIZE(x) __attribute__((__alloc_size__(x)))
|
||||||
|
#define G_GNUC_ALLOC_SIZE2(x,y) __attribute__((__alloc_size__(x,y)))
|
||||||
|
#else
|
||||||
|
#define G_GNUC_ALLOC_SIZE(x)
|
||||||
|
#define G_GNUC_ALLOC_SIZE2(x,y)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ > 4)
|
||||||
|
#define G_GNUC_PRINTF( format_idx, arg_idx ) \
|
||||||
|
__attribute__((__format__ (__printf__, format_idx, arg_idx)))
|
||||||
|
#define G_GNUC_SCANF( format_idx, arg_idx ) \
|
||||||
|
__attribute__((__format__ (__scanf__, format_idx, arg_idx)))
|
||||||
|
#define G_GNUC_FORMAT( arg_idx ) \
|
||||||
|
__attribute__((__format_arg__ (arg_idx)))
|
||||||
|
#define G_GNUC_NORETURN \
|
||||||
|
__attribute__((__noreturn__))
|
||||||
|
#define G_GNUC_CONST \
|
||||||
|
__attribute__((__const__))
|
||||||
|
#define G_GNUC_UNUSED \
|
||||||
|
__attribute__((__unused__))
|
||||||
|
#define G_GNUC_NO_INSTRUMENT \
|
||||||
|
__attribute__((__no_instrument_function__))
|
||||||
|
#else /* !__GNUC__ */
|
||||||
|
#define G_GNUC_PRINTF( format_idx, arg_idx )
|
||||||
|
#define G_GNUC_SCANF( format_idx, arg_idx )
|
||||||
|
#define G_GNUC_FORMAT( arg_idx )
|
||||||
|
#define G_GNUC_NORETURN
|
||||||
|
#define G_GNUC_CONST
|
||||||
|
#define G_GNUC_UNUSED
|
||||||
|
#define G_GNUC_NO_INSTRUMENT
|
||||||
|
#endif /* !__GNUC__ */
|
||||||
|
|
||||||
|
#if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 1)
|
||||||
|
#define G_GNUC_DEPRECATED __attribute__((__deprecated__))
|
||||||
|
#else
|
||||||
|
#define G_GNUC_DEPRECATED
|
||||||
|
#endif /* __GNUC__ */
|
||||||
|
|
||||||
|
#if __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 5)
|
||||||
|
#define G_GNUC_DEPRECATED_FOR(f) \
|
||||||
|
__attribute__((deprecated("Use " #f " instead")))
|
||||||
|
#else
|
||||||
|
#define G_GNUC_DEPRECATED_FOR(f) G_GNUC_DEPRECATED
|
||||||
|
#endif /* __GNUC__ */
|
||||||
|
|
||||||
|
#if __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6)
|
||||||
|
#define G_GNUC_BEGIN_IGNORE_DEPRECATIONS \
|
||||||
|
_Pragma ("GCC diagnostic push") \
|
||||||
|
_Pragma ("GCC diagnostic ignored \"-Wdeprecated-declarations\"")
|
||||||
|
#define G_GNUC_END_IGNORE_DEPRECATIONS \
|
||||||
|
_Pragma ("GCC diagnostic pop")
|
||||||
|
#elif defined (_MSC_VER) && (_MSC_VER >= 1500)
|
||||||
|
#define G_GNUC_BEGIN_IGNORE_DEPRECATIONS \
|
||||||
|
__pragma (warning (push)) \
|
||||||
|
__pragma (warning (disable : 4996))
|
||||||
|
#define G_GNUC_END_IGNORE_DEPRECATIONS \
|
||||||
|
__pragma (warning (pop))
|
||||||
|
#elif defined (__clang__)
|
||||||
|
#define G_GNUC_BEGIN_IGNORE_DEPRECATIONS \
|
||||||
|
_Pragma("clang diagnostic push") \
|
||||||
|
_Pragma("clang diagnostic ignored \"-Wdeprecated-declarations\"")
|
||||||
|
#define G_GNUC_END_IGNORE_DEPRECATIONS \
|
||||||
|
_Pragma("clang diagnostic pop")
|
||||||
|
#else
|
||||||
|
#define G_GNUC_BEGIN_IGNORE_DEPRECATIONS
|
||||||
|
#define G_GNUC_END_IGNORE_DEPRECATIONS
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 3)
|
||||||
|
#define G_GNUC_MAY_ALIAS __attribute__((may_alias))
|
||||||
|
#else
|
||||||
|
#define G_GNUC_MAY_ALIAS
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4)
|
||||||
|
#define G_GNUC_WARN_UNUSED_RESULT __attribute__((warn_unused_result))
|
||||||
|
#else
|
||||||
|
#define G_GNUC_WARN_UNUSED_RESULT
|
||||||
|
#endif /* __GNUC__ */
|
||||||
|
|
||||||
|
#ifndef G_DISABLE_DEPRECATED
|
||||||
|
/* Wrap the gcc __PRETTY_FUNCTION__ and __FUNCTION__ variables with
|
||||||
|
* macros, so we can refer to them as strings unconditionally.
|
||||||
|
* usage not-recommended since gcc-3.0
|
||||||
|
*/
|
||||||
|
#if defined (__GNUC__) && (__GNUC__ < 3)
|
||||||
|
#define G_GNUC_FUNCTION __FUNCTION__
|
||||||
|
#define G_GNUC_PRETTY_FUNCTION __PRETTY_FUNCTION__
|
||||||
|
#else /* !__GNUC__ */
|
||||||
|
#define G_GNUC_FUNCTION ""
|
||||||
|
#define G_GNUC_PRETTY_FUNCTION ""
|
||||||
|
#endif /* !__GNUC__ */
|
||||||
|
#endif /* !G_DISABLE_DEPRECATED */
|
||||||
|
|
||||||
|
#if __has_feature(attribute_analyzer_noreturn) && defined(__clang_analyzer__)
|
||||||
|
#define G_ANALYZER_ANALYZING 1
|
||||||
|
#define G_ANALYZER_NORETURN __attribute__((analyzer_noreturn))
|
||||||
|
#else
|
||||||
|
#define G_ANALYZER_ANALYZING 0
|
||||||
|
#define G_ANALYZER_NORETURN
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define G_STRINGIFY(macro_or_string) G_STRINGIFY_ARG (macro_or_string)
|
||||||
|
#define G_STRINGIFY_ARG(contents) #contents
|
||||||
|
|
||||||
|
#ifndef __GI_SCANNER__ /* The static assert macro really confuses the introspection parser */
|
||||||
|
#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
|
||||||
|
#define G_PASTE(identifier1,identifier2) G_PASTE_ARGS (identifier1, identifier2)
|
||||||
|
#ifdef __COUNTER__
|
||||||
|
#define G_STATIC_ASSERT(expr) typedef char G_PASTE (_GStaticAssertCompileTimeAssertion_, __COUNTER__)[(expr) ? 1 : -1] G_GNUC_UNUSED
|
||||||
|
#else
|
||||||
|
#define G_STATIC_ASSERT(expr) typedef char G_PASTE (_GStaticAssertCompileTimeAssertion_, __LINE__)[(expr) ? 1 : -1] G_GNUC_UNUSED
|
||||||
|
#endif
|
||||||
|
#define G_STATIC_ASSERT_EXPR(expr) ((void) sizeof (char[(expr) ? 1 : -1]))
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* Provide a string identifying the current code position */
|
||||||
|
#if defined(__GNUC__) && (__GNUC__ < 3) && !defined(__cplusplus)
|
||||||
|
#define G_STRLOC __FILE__ ":" G_STRINGIFY (__LINE__) ":" __PRETTY_FUNCTION__ "()"
|
||||||
|
#else
|
||||||
|
#define G_STRLOC __FILE__ ":" G_STRINGIFY (__LINE__)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* Provide a string identifying the current function, non-concatenatable */
|
||||||
|
#if defined (__GNUC__) && defined (__cplusplus)
|
||||||
|
#define G_STRFUNC ((const char*) (__PRETTY_FUNCTION__))
|
||||||
|
#elif defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
|
||||||
|
#define G_STRFUNC ((const char*) (__func__))
|
||||||
|
#elif defined (__GNUC__) || (defined(_MSC_VER) && (_MSC_VER > 1300))
|
||||||
|
#define G_STRFUNC ((const char*) (__FUNCTION__))
|
||||||
|
#else
|
||||||
|
#define G_STRFUNC ((const char*) ("???"))
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* Guard C code in headers, while including them from C++ */
|
||||||
|
#ifdef __cplusplus
|
||||||
|
#define G_BEGIN_DECLS extern "C" {
|
||||||
|
#define G_END_DECLS }
|
||||||
|
#else
|
||||||
|
#define G_BEGIN_DECLS
|
||||||
|
#define G_END_DECLS
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* Provide definitions for some commonly used macros.
|
||||||
|
* Some of them are only provided if they haven't already
|
||||||
|
* been defined. It is assumed that if they are already
|
||||||
|
* defined then the current definition is correct.
|
||||||
|
*/
|
||||||
|
#ifndef NULL
|
||||||
|
# ifdef __cplusplus
|
||||||
|
# define NULL (0L)
|
||||||
|
# else /* !__cplusplus */
|
||||||
|
# define NULL ((void*) 0)
|
||||||
|
# endif /* !__cplusplus */
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef FALSE
|
||||||
|
#define FALSE (0)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef TRUE
|
||||||
|
#define TRUE (!FALSE)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#undef MAX
|
||||||
|
#define MAX(a, b) (((a) > (b)) ? (a) : (b))
|
||||||
|
|
||||||
|
#undef MIN
|
||||||
|
#define MIN(a, b) (((a) < (b)) ? (a) : (b))
|
||||||
|
|
||||||
|
#undef ABS
|
||||||
|
#define ABS(a) (((a) < 0) ? -(a) : (a))
|
||||||
|
|
||||||
|
#undef CLAMP
|
||||||
|
#define CLAMP(x, low, high) (((x) > (high)) ? (high) : (((x) < (low)) ? (low) : (x)))
|
||||||
|
|
||||||
|
/* Count the number of elements in an array. The array must be defined
|
||||||
|
* as such; using this with a dynamically allocated array will give
|
||||||
|
* incorrect results.
|
||||||
|
*/
|
||||||
|
#define G_N_ELEMENTS(arr) (sizeof (arr) / sizeof ((arr)[0]))
|
||||||
|
|
||||||
|
/* Macros by analogy to GINT_TO_POINTER, GPOINTER_TO_INT
|
||||||
|
*/
|
||||||
|
#define GPOINTER_TO_SIZE(p) ((gsize) (p))
|
||||||
|
#define GSIZE_TO_POINTER(s) ((gpointer) (gsize) (s))
|
||||||
|
|
||||||
|
/* Provide convenience macros for handling structure
|
||||||
|
* fields through their offsets.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#if (defined(__GNUC__) && __GNUC__ >= 4) || defined (_MSC_VER)
|
||||||
|
#define G_STRUCT_OFFSET(struct_type, member) \
|
||||||
|
((glong) offsetof (struct_type, member))
|
||||||
|
#else
|
||||||
|
#define G_STRUCT_OFFSET(struct_type, member) \
|
||||||
|
((glong) ((guint8*) &((struct_type*) 0)->member))
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define G_STRUCT_MEMBER_P(struct_p, struct_offset) \
|
||||||
|
((gpointer) ((guint8*) (struct_p) + (glong) (struct_offset)))
|
||||||
|
#define G_STRUCT_MEMBER(member_type, struct_p, struct_offset) \
|
||||||
|
(*(member_type*) G_STRUCT_MEMBER_P ((struct_p), (struct_offset)))
|
||||||
|
|
||||||
|
/* Provide simple macro statement wrappers:
|
||||||
|
* G_STMT_START { statements; } G_STMT_END;
|
||||||
|
* This can be used as a single statement, like:
|
||||||
|
* if (x) G_STMT_START { ... } G_STMT_END; else ...
|
||||||
|
* This intentionally does not use compiler extensions like GCC's '({...})' to
|
||||||
|
* avoid portability issue or side effects when compiled with different compilers.
|
||||||
|
* MSVC complains about "while(0)": C4127: "Conditional expression is constant",
|
||||||
|
* so we use __pragma to avoid the warning since the use here is intentional.
|
||||||
|
*/
|
||||||
|
#if !(defined (G_STMT_START) && defined (G_STMT_END))
|
||||||
|
#define G_STMT_START do
|
||||||
|
#if defined (_MSC_VER) && (_MSC_VER >= 1500)
|
||||||
|
#define G_STMT_END \
|
||||||
|
__pragma(warning(push)) \
|
||||||
|
__pragma(warning(disable:4127)) \
|
||||||
|
while(0) \
|
||||||
|
__pragma(warning(pop))
|
||||||
|
#else
|
||||||
|
#define G_STMT_END while (0)
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* Deprecated -- do not use. */
|
||||||
|
#ifndef G_DISABLE_DEPRECATED
|
||||||
|
#ifdef G_DISABLE_CONST_RETURNS
|
||||||
|
#define G_CONST_RETURN
|
||||||
|
#else
|
||||||
|
#define G_CONST_RETURN const
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/*
|
||||||
|
* The G_LIKELY and G_UNLIKELY macros let the programmer give hints to
|
||||||
|
* the compiler about the expected result of an expression. Some compilers
|
||||||
|
* can use this information for optimizations.
|
||||||
|
*
|
||||||
|
* The _G_BOOLEAN_EXPR macro is intended to trigger a gcc warning when
|
||||||
|
* putting assignments in g_return_if_fail ().
|
||||||
|
*/
|
||||||
|
#if defined(__GNUC__) && (__GNUC__ > 2) && defined(__OPTIMIZE__)
|
||||||
|
#define _G_BOOLEAN_EXPR(expr) \
|
||||||
|
G_GNUC_EXTENSION ({ \
|
||||||
|
int _g_boolean_var_; \
|
||||||
|
if (expr) \
|
||||||
|
_g_boolean_var_ = 1; \
|
||||||
|
else \
|
||||||
|
_g_boolean_var_ = 0; \
|
||||||
|
_g_boolean_var_; \
|
||||||
|
})
|
||||||
|
#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR((expr)), 1))
|
||||||
|
#define G_UNLIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR((expr)), 0))
|
||||||
|
#else
|
||||||
|
#define G_LIKELY(expr) (expr)
|
||||||
|
#define G_UNLIKELY(expr) (expr)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 1)
|
||||||
|
#define G_DEPRECATED __attribute__((__deprecated__))
|
||||||
|
#elif defined(_MSC_VER) && (_MSC_VER >= 1300)
|
||||||
|
#define G_DEPRECATED __declspec(deprecated)
|
||||||
|
#else
|
||||||
|
#define G_DEPRECATED
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 5)
|
||||||
|
#define G_DEPRECATED_FOR(f) __attribute__((__deprecated__("Use '" #f "' instead")))
|
||||||
|
#elif defined(_MSC_FULL_VER) && (_MSC_FULL_VER > 140050320)
|
||||||
|
#define G_DEPRECATED_FOR(f) __declspec(deprecated("is deprecated. Use '" #f "' instead"))
|
||||||
|
#else
|
||||||
|
#define G_DEPRECATED_FOR(f) G_DEPRECATED
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 5)
|
||||||
|
#define G_UNAVAILABLE(maj,min) __attribute__((deprecated("Not available before " #maj "." #min)))
|
||||||
|
#elif defined(_MSC_FULL_VER) && (_MSC_FULL_VER > 140050320)
|
||||||
|
#define G_UNAVAILABLE(maj,min) __declspec(deprecated("is not available before " #maj "." #min))
|
||||||
|
#else
|
||||||
|
#define G_UNAVAILABLE(maj,min) G_DEPRECATED
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef _GLIB_EXTERN
|
||||||
|
#define _GLIB_EXTERN extern
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* These macros are used to mark deprecated functions in GLib headers,
|
||||||
|
* and thus have to be exposed in installed headers. But please
|
||||||
|
* do *not* use them in other projects. Instead, use G_DEPRECATED
|
||||||
|
* or define your own wrappers around it.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifdef GLIB_DISABLE_DEPRECATION_WARNINGS
|
||||||
|
#define GLIB_DEPRECATED _GLIB_EXTERN
|
||||||
|
#define GLIB_DEPRECATED_FOR(f) _GLIB_EXTERN
|
||||||
|
#define GLIB_UNAVAILABLE(maj,min) _GLIB_EXTERN
|
||||||
|
#else
|
||||||
|
#define GLIB_DEPRECATED G_DEPRECATED _GLIB_EXTERN
|
||||||
|
#define GLIB_DEPRECATED_FOR(f) G_DEPRECATED_FOR(f) _GLIB_EXTERN
|
||||||
|
#define GLIB_UNAVAILABLE(maj,min) G_UNAVAILABLE(maj,min) _GLIB_EXTERN
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef __GNUC__
|
||||||
|
|
||||||
|
/* these macros are private */
|
||||||
|
#define _GLIB_AUTOPTR_FUNC_NAME(TypeName) glib_autoptr_cleanup_##TypeName
|
||||||
|
#define _GLIB_AUTOPTR_TYPENAME(TypeName) TypeName##_autoptr
|
||||||
|
#define _GLIB_AUTO_FUNC_NAME(TypeName) glib_auto_cleanup_##TypeName
|
||||||
|
#define _GLIB_CLEANUP(func) __attribute__((cleanup(func)))
|
||||||
|
#define _GLIB_DEFINE_AUTOPTR_CHAINUP(ModuleObjName, ParentName) \
|
||||||
|
typedef ModuleObjName *_GLIB_AUTOPTR_TYPENAME(ModuleObjName); \
|
||||||
|
static inline void _GLIB_AUTOPTR_FUNC_NAME(ModuleObjName) (ModuleObjName **_ptr) { \
|
||||||
|
_GLIB_AUTOPTR_FUNC_NAME(ParentName) ((ParentName **) _ptr); } \
|
||||||
|
|
||||||
|
|
||||||
|
/* these macros are API */
|
||||||
|
#define G_DEFINE_AUTOPTR_CLEANUP_FUNC(TypeName, func) \
|
||||||
|
typedef TypeName *_GLIB_AUTOPTR_TYPENAME(TypeName); \
|
||||||
|
G_GNUC_BEGIN_IGNORE_DEPRECATIONS \
|
||||||
|
static inline void _GLIB_AUTOPTR_FUNC_NAME(TypeName) (TypeName **_ptr) { if (*_ptr) (func) (*_ptr); } \
|
||||||
|
G_GNUC_END_IGNORE_DEPRECATIONS
|
||||||
|
#define G_DEFINE_AUTO_CLEANUP_CLEAR_FUNC(TypeName, func) \
|
||||||
|
G_GNUC_BEGIN_IGNORE_DEPRECATIONS \
|
||||||
|
static inline void _GLIB_AUTO_FUNC_NAME(TypeName) (TypeName *_ptr) { (func) (_ptr); } \
|
||||||
|
G_GNUC_END_IGNORE_DEPRECATIONS
|
||||||
|
#define G_DEFINE_AUTO_CLEANUP_FREE_FUNC(TypeName, func, none) \
|
||||||
|
G_GNUC_BEGIN_IGNORE_DEPRECATIONS \
|
||||||
|
static inline void _GLIB_AUTO_FUNC_NAME(TypeName) (TypeName *_ptr) { if (*_ptr != none) (func) (*_ptr); } \
|
||||||
|
G_GNUC_END_IGNORE_DEPRECATIONS
|
||||||
|
#define g_autoptr(TypeName) _GLIB_CLEANUP(_GLIB_AUTOPTR_FUNC_NAME(TypeName)) _GLIB_AUTOPTR_TYPENAME(TypeName)
|
||||||
|
#define g_auto(TypeName) _GLIB_CLEANUP(_GLIB_AUTO_FUNC_NAME(TypeName)) TypeName
|
||||||
|
#define g_autofree _GLIB_CLEANUP(g_autoptr_cleanup_generic_gfree)
|
||||||
|
|
||||||
|
#else /* not GNU C */
|
||||||
|
/* this (dummy) macro is private */
|
||||||
|
#define _GLIB_DEFINE_AUTOPTR_CHAINUP(ModuleObjName, ParentName)
|
||||||
|
|
||||||
|
/* these (dummy) macros are API */
|
||||||
|
#define G_DEFINE_AUTOPTR_CLEANUP_FUNC(TypeName, func)
|
||||||
|
#define G_DEFINE_AUTO_CLEANUP_CLEAR_FUNC(TypeName, func)
|
||||||
|
#define G_DEFINE_AUTO_CLEANUP_FREE_FUNC(TypeName, func, none)
|
||||||
|
|
||||||
|
/* no declaration of g_auto() or g_autoptr() here */
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif /* __G_MACROS_H__ */
|
627
code/application/source/sf_app/code/source/sf_blue/inc/glib/glib/gmain.h
Executable file
627
code/application/source/sf_app/code/source/sf_blue/inc/glib/glib/gmain.h
Executable file
|
@ -0,0 +1,627 @@
|
||||||
|
/* gmain.h - the GLib Main loop
|
||||||
|
* Copyright (C) 1998-2000 Red Hat, Inc.
|
||||||
|
*
|
||||||
|
* This library is free software; you can redistribute it and/or
|
||||||
|
* modify it under the terms of the GNU Library General Public
|
||||||
|
* License as published by the Free Software Foundation; either
|
||||||
|
* version 2 of the License, or (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This library 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
|
||||||
|
* Library General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU Library General Public
|
||||||
|
* License along with this library; if not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef __G_MAIN_H__
|
||||||
|
#define __G_MAIN_H__
|
||||||
|
|
||||||
|
#if !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION)
|
||||||
|
#error "Only <glib.h> can be included directly."
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include <glib/gpoll.h>
|
||||||
|
#include <glib/gslist.h>
|
||||||
|
#include <glib/gthread.h>
|
||||||
|
|
||||||
|
G_BEGIN_DECLS
|
||||||
|
|
||||||
|
typedef enum /*< flags >*/
|
||||||
|
{
|
||||||
|
G_IO_IN GLIB_SYSDEF_POLLIN,
|
||||||
|
G_IO_OUT GLIB_SYSDEF_POLLOUT,
|
||||||
|
G_IO_PRI GLIB_SYSDEF_POLLPRI,
|
||||||
|
G_IO_ERR GLIB_SYSDEF_POLLERR,
|
||||||
|
G_IO_HUP GLIB_SYSDEF_POLLHUP,
|
||||||
|
G_IO_NVAL GLIB_SYSDEF_POLLNVAL
|
||||||
|
} GIOCondition;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* GMainContext:
|
||||||
|
*
|
||||||
|
* The `GMainContext` struct is an opaque data
|
||||||
|
* type representing a set of sources to be handled in a main loop.
|
||||||
|
*/
|
||||||
|
typedef struct _GMainContext GMainContext;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* GMainLoop:
|
||||||
|
*
|
||||||
|
* The `GMainLoop` struct is an opaque data type
|
||||||
|
* representing the main event loop of a GLib or GTK+ application.
|
||||||
|
*/
|
||||||
|
typedef struct _GMainLoop GMainLoop;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* GSource:
|
||||||
|
*
|
||||||
|
* The `GSource` struct is an opaque data type
|
||||||
|
* representing an event source.
|
||||||
|
*/
|
||||||
|
typedef struct _GSource GSource;
|
||||||
|
typedef struct _GSourcePrivate GSourcePrivate;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* GSourceCallbackFuncs:
|
||||||
|
* @ref: Called when a reference is added to the callback object
|
||||||
|
* @unref: Called when a reference to the callback object is dropped
|
||||||
|
* @get: Called to extract the callback function and data from the
|
||||||
|
* callback object.
|
||||||
|
|
||||||
|
* The `GSourceCallbackFuncs` struct contains
|
||||||
|
* functions for managing callback objects.
|
||||||
|
*/
|
||||||
|
typedef struct _GSourceCallbackFuncs GSourceCallbackFuncs;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* GSourceFuncs:
|
||||||
|
* @prepare: Called before all the file descriptors are polled. If the
|
||||||
|
* source can determine that it is ready here (without waiting for the
|
||||||
|
* results of the poll() call) it should return %TRUE. It can also return
|
||||||
|
* a @timeout_ value which should be the maximum timeout (in milliseconds)
|
||||||
|
* which should be passed to the poll() call. The actual timeout used will
|
||||||
|
* be -1 if all sources returned -1, or it will be the minimum of all
|
||||||
|
* the @timeout_ values returned which were >= 0. Since 2.36 this may
|
||||||
|
* be %NULL, in which case the effect is as if the function always returns
|
||||||
|
* %FALSE with a timeout of -1. If @prepare returns a
|
||||||
|
* timeout and the source also has a 'ready time' set then the
|
||||||
|
* nearer of the two will be used.
|
||||||
|
* @check: Called after all the file descriptors are polled. The source
|
||||||
|
* should return %TRUE if it is ready to be dispatched. Note that some
|
||||||
|
* time may have passed since the previous prepare function was called,
|
||||||
|
* so the source should be checked again here. Since 2.36 this may
|
||||||
|
* be %NULL, in which case the effect is as if the function always returns
|
||||||
|
* %FALSE.
|
||||||
|
* @dispatch: Called to dispatch the event source, after it has returned
|
||||||
|
* %TRUE in either its @prepare or its @check function. The @dispatch
|
||||||
|
* function is passed in a callback function and data. The callback
|
||||||
|
* function may be %NULL if the source was never connected to a callback
|
||||||
|
* using g_source_set_callback(). The @dispatch function should call the
|
||||||
|
* callback function with @user_data and whatever additional parameters
|
||||||
|
* are needed for this type of event source. The return value of the
|
||||||
|
* @dispatch function should be #G_SOURCE_REMOVE if the source should be
|
||||||
|
* removed or #G_SOURCE_CONTINUE to keep it.
|
||||||
|
* @finalize: Called when the source is finalized.
|
||||||
|
*
|
||||||
|
* The `GSourceFuncs` struct contains a table of
|
||||||
|
* functions used to handle event sources in a generic manner.
|
||||||
|
*
|
||||||
|
* For idle sources, the prepare and check functions always return %TRUE
|
||||||
|
* to indicate that the source is always ready to be processed. The prepare
|
||||||
|
* function also returns a timeout value of 0 to ensure that the poll() call
|
||||||
|
* doesn't block (since that would be time wasted which could have been spent
|
||||||
|
* running the idle function).
|
||||||
|
*
|
||||||
|
* For timeout sources, the prepare and check functions both return %TRUE
|
||||||
|
* if the timeout interval has expired. The prepare function also returns
|
||||||
|
* a timeout value to ensure that the poll() call doesn't block too long
|
||||||
|
* and miss the next timeout.
|
||||||
|
*
|
||||||
|
* For file descriptor sources, the prepare function typically returns %FALSE,
|
||||||
|
* since it must wait until poll() has been called before it knows whether
|
||||||
|
* any events need to be processed. It sets the returned timeout to -1 to
|
||||||
|
* indicate that it doesn't mind how long the poll() call blocks. In the
|
||||||
|
* check function, it tests the results of the poll() call to see if the
|
||||||
|
* required condition has been met, and returns %TRUE if so.
|
||||||
|
*/
|
||||||
|
typedef struct _GSourceFuncs GSourceFuncs;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* GPid:
|
||||||
|
*
|
||||||
|
* A type which is used to hold a process identification.
|
||||||
|
*
|
||||||
|
* On UNIX, processes are identified by a process id (an integer),
|
||||||
|
* while Windows uses process handles (which are pointers).
|
||||||
|
*
|
||||||
|
* GPid is used in GLib only for descendant processes spawned with
|
||||||
|
* the g_spawn functions.
|
||||||
|
*/
|
||||||
|
/* defined in glibconfig.h */
|
||||||
|
|
||||||
|
/**
|
||||||
|
* G_PID_FORMAT:
|
||||||
|
*
|
||||||
|
* A format specifier that can be used in printf()-style format strings
|
||||||
|
* when printing a #GPid.
|
||||||
|
*
|
||||||
|
* Since: 2.50
|
||||||
|
*/
|
||||||
|
/* defined in glibconfig.h */
|
||||||
|
|
||||||
|
/**
|
||||||
|
* GSourceFunc:
|
||||||
|
* @user_data: data passed to the function, set when the source was
|
||||||
|
* created with one of the above functions
|
||||||
|
*
|
||||||
|
* Specifies the type of function passed to g_timeout_add(),
|
||||||
|
* g_timeout_add_full(), g_idle_add(), and g_idle_add_full().
|
||||||
|
*
|
||||||
|
* Returns: %FALSE if the source should be removed. #G_SOURCE_CONTINUE and
|
||||||
|
* #G_SOURCE_REMOVE are more memorable names for the return value.
|
||||||
|
*/
|
||||||
|
typedef gboolean (*GSourceFunc) (gpointer user_data);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* GChildWatchFunc:
|
||||||
|
* @pid: the process id of the child process
|
||||||
|
* @status: Status information about the child process, encoded
|
||||||
|
* in a platform-specific manner
|
||||||
|
* @user_data: user data passed to g_child_watch_add()
|
||||||
|
*
|
||||||
|
* Prototype of a #GChildWatchSource callback, called when a child
|
||||||
|
* process has exited. To interpret @status, see the documentation
|
||||||
|
* for g_spawn_check_exit_status().
|
||||||
|
*/
|
||||||
|
typedef void (*GChildWatchFunc) (GPid pid,
|
||||||
|
gint status,
|
||||||
|
gpointer user_data);
|
||||||
|
struct _GSource
|
||||||
|
{
|
||||||
|
/*< private >*/
|
||||||
|
gpointer callback_data;
|
||||||
|
GSourceCallbackFuncs *callback_funcs;
|
||||||
|
|
||||||
|
const GSourceFuncs *source_funcs;
|
||||||
|
guint ref_count;
|
||||||
|
|
||||||
|
GMainContext *context;
|
||||||
|
|
||||||
|
gint priority;
|
||||||
|
guint flags;
|
||||||
|
guint source_id;
|
||||||
|
|
||||||
|
GSList *poll_fds;
|
||||||
|
|
||||||
|
GSource *prev;
|
||||||
|
GSource *next;
|
||||||
|
|
||||||
|
char *name;
|
||||||
|
|
||||||
|
GSourcePrivate *priv;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct _GSourceCallbackFuncs
|
||||||
|
{
|
||||||
|
void (*ref) (gpointer cb_data);
|
||||||
|
void (*unref) (gpointer cb_data);
|
||||||
|
void (*get) (gpointer cb_data,
|
||||||
|
GSource *source,
|
||||||
|
GSourceFunc *func,
|
||||||
|
gpointer *data);
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* GSourceDummyMarshal:
|
||||||
|
*
|
||||||
|
* This is just a placeholder for #GClosureMarshal,
|
||||||
|
* which cannot be used here for dependency reasons.
|
||||||
|
*/
|
||||||
|
typedef void (*GSourceDummyMarshal) (void);
|
||||||
|
|
||||||
|
struct _GSourceFuncs
|
||||||
|
{
|
||||||
|
gboolean (*prepare) (GSource *source,
|
||||||
|
gint *timeout_);
|
||||||
|
gboolean (*check) (GSource *source);
|
||||||
|
gboolean (*dispatch) (GSource *source,
|
||||||
|
GSourceFunc callback,
|
||||||
|
gpointer user_data);
|
||||||
|
void (*finalize) (GSource *source); /* Can be NULL */
|
||||||
|
|
||||||
|
/*< private >*/
|
||||||
|
/* For use by g_source_set_closure */
|
||||||
|
GSourceFunc closure_callback;
|
||||||
|
GSourceDummyMarshal closure_marshal; /* Really is of type GClosureMarshal */
|
||||||
|
};
|
||||||
|
|
||||||
|
/* Standard priorities */
|
||||||
|
|
||||||
|
/**
|
||||||
|
* G_PRIORITY_HIGH:
|
||||||
|
*
|
||||||
|
* Use this for high priority event sources.
|
||||||
|
*
|
||||||
|
* It is not used within GLib or GTK+.
|
||||||
|
*/
|
||||||
|
#define G_PRIORITY_HIGH -100
|
||||||
|
|
||||||
|
/**
|
||||||
|
* G_PRIORITY_DEFAULT:
|
||||||
|
*
|
||||||
|
* Use this for default priority event sources.
|
||||||
|
*
|
||||||
|
* In GLib this priority is used when adding timeout functions
|
||||||
|
* with g_timeout_add(). In GDK this priority is used for events
|
||||||
|
* from the X server.
|
||||||
|
*/
|
||||||
|
#define G_PRIORITY_DEFAULT 0
|
||||||
|
|
||||||
|
/**
|
||||||
|
* G_PRIORITY_HIGH_IDLE:
|
||||||
|
*
|
||||||
|
* Use this for high priority idle functions.
|
||||||
|
*
|
||||||
|
* GTK+ uses #G_PRIORITY_HIGH_IDLE + 10 for resizing operations,
|
||||||
|
* and #G_PRIORITY_HIGH_IDLE + 20 for redrawing operations. (This is
|
||||||
|
* done to ensure that any pending resizes are processed before any
|
||||||
|
* pending redraws, so that widgets are not redrawn twice unnecessarily.)
|
||||||
|
*/
|
||||||
|
#define G_PRIORITY_HIGH_IDLE 100
|
||||||
|
|
||||||
|
/**
|
||||||
|
* G_PRIORITY_DEFAULT_IDLE:
|
||||||
|
*
|
||||||
|
* Use this for default priority idle functions.
|
||||||
|
*
|
||||||
|
* In GLib this priority is used when adding idle functions with
|
||||||
|
* g_idle_add().
|
||||||
|
*/
|
||||||
|
#define G_PRIORITY_DEFAULT_IDLE 200
|
||||||
|
|
||||||
|
/**
|
||||||
|
* G_PRIORITY_LOW:
|
||||||
|
*
|
||||||
|
* Use this for very low priority background tasks.
|
||||||
|
*
|
||||||
|
* It is not used within GLib or GTK+.
|
||||||
|
*/
|
||||||
|
#define G_PRIORITY_LOW 300
|
||||||
|
|
||||||
|
/**
|
||||||
|
* G_SOURCE_REMOVE:
|
||||||
|
*
|
||||||
|
* Use this macro as the return value of a #GSourceFunc to remove
|
||||||
|
* the #GSource from the main loop.
|
||||||
|
*
|
||||||
|
* Since: 2.32
|
||||||
|
*/
|
||||||
|
#define G_SOURCE_REMOVE FALSE
|
||||||
|
|
||||||
|
/**
|
||||||
|
* G_SOURCE_CONTINUE:
|
||||||
|
*
|
||||||
|
* Use this macro as the return value of a #GSourceFunc to leave
|
||||||
|
* the #GSource in the main loop.
|
||||||
|
*
|
||||||
|
* Since: 2.32
|
||||||
|
*/
|
||||||
|
#define G_SOURCE_CONTINUE TRUE
|
||||||
|
|
||||||
|
/* GMainContext: */
|
||||||
|
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GMainContext *g_main_context_new (void);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GMainContext *g_main_context_ref (GMainContext *context);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_main_context_unref (GMainContext *context);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GMainContext *g_main_context_default (void);
|
||||||
|
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gboolean g_main_context_iteration (GMainContext *context,
|
||||||
|
gboolean may_block);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gboolean g_main_context_pending (GMainContext *context);
|
||||||
|
|
||||||
|
/* For implementation of legacy interfaces
|
||||||
|
*/
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GSource *g_main_context_find_source_by_id (GMainContext *context,
|
||||||
|
guint source_id);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GSource *g_main_context_find_source_by_user_data (GMainContext *context,
|
||||||
|
gpointer user_data);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GSource *g_main_context_find_source_by_funcs_user_data (GMainContext *context,
|
||||||
|
GSourceFuncs *funcs,
|
||||||
|
gpointer user_data);
|
||||||
|
|
||||||
|
/* Low level functions for implementing custom main loops.
|
||||||
|
*/
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_main_context_wakeup (GMainContext *context);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gboolean g_main_context_acquire (GMainContext *context);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_main_context_release (GMainContext *context);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gboolean g_main_context_is_owner (GMainContext *context);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gboolean g_main_context_wait (GMainContext *context,
|
||||||
|
GCond *cond,
|
||||||
|
GMutex *mutex);
|
||||||
|
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gboolean g_main_context_prepare (GMainContext *context,
|
||||||
|
gint *priority);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gint g_main_context_query (GMainContext *context,
|
||||||
|
gint max_priority,
|
||||||
|
gint *timeout_,
|
||||||
|
GPollFD *fds,
|
||||||
|
gint n_fds);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gint g_main_context_check (GMainContext *context,
|
||||||
|
gint max_priority,
|
||||||
|
GPollFD *fds,
|
||||||
|
gint n_fds);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_main_context_dispatch (GMainContext *context);
|
||||||
|
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_main_context_set_poll_func (GMainContext *context,
|
||||||
|
GPollFunc func);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GPollFunc g_main_context_get_poll_func (GMainContext *context);
|
||||||
|
|
||||||
|
/* Low level functions for use by source implementations
|
||||||
|
*/
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_main_context_add_poll (GMainContext *context,
|
||||||
|
GPollFD *fd,
|
||||||
|
gint priority);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_main_context_remove_poll (GMainContext *context,
|
||||||
|
GPollFD *fd);
|
||||||
|
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gint g_main_depth (void);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GSource *g_main_current_source (void);
|
||||||
|
|
||||||
|
/* GMainContexts for other threads
|
||||||
|
*/
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_main_context_push_thread_default (GMainContext *context);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_main_context_pop_thread_default (GMainContext *context);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GMainContext *g_main_context_get_thread_default (void);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GMainContext *g_main_context_ref_thread_default (void);
|
||||||
|
|
||||||
|
/* GMainLoop: */
|
||||||
|
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GMainLoop *g_main_loop_new (GMainContext *context,
|
||||||
|
gboolean is_running);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_main_loop_run (GMainLoop *loop);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_main_loop_quit (GMainLoop *loop);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GMainLoop *g_main_loop_ref (GMainLoop *loop);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_main_loop_unref (GMainLoop *loop);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gboolean g_main_loop_is_running (GMainLoop *loop);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GMainContext *g_main_loop_get_context (GMainLoop *loop);
|
||||||
|
|
||||||
|
/* GSource: */
|
||||||
|
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GSource *g_source_new (GSourceFuncs *source_funcs,
|
||||||
|
guint struct_size);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GSource *g_source_ref (GSource *source);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_source_unref (GSource *source);
|
||||||
|
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
guint g_source_attach (GSource *source,
|
||||||
|
GMainContext *context);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_source_destroy (GSource *source);
|
||||||
|
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_source_set_priority (GSource *source,
|
||||||
|
gint priority);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gint g_source_get_priority (GSource *source);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_source_set_can_recurse (GSource *source,
|
||||||
|
gboolean can_recurse);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gboolean g_source_get_can_recurse (GSource *source);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
guint g_source_get_id (GSource *source);
|
||||||
|
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GMainContext *g_source_get_context (GSource *source);
|
||||||
|
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_source_set_callback (GSource *source,
|
||||||
|
GSourceFunc func,
|
||||||
|
gpointer data,
|
||||||
|
GDestroyNotify notify);
|
||||||
|
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_source_set_funcs (GSource *source,
|
||||||
|
GSourceFuncs *funcs);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gboolean g_source_is_destroyed (GSource *source);
|
||||||
|
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_source_set_name (GSource *source,
|
||||||
|
const char *name);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
const char * g_source_get_name (GSource *source);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_source_set_name_by_id (guint tag,
|
||||||
|
const char *name);
|
||||||
|
|
||||||
|
GLIB_AVAILABLE_IN_2_36
|
||||||
|
void g_source_set_ready_time (GSource *source,
|
||||||
|
gint64 ready_time);
|
||||||
|
GLIB_AVAILABLE_IN_2_36
|
||||||
|
gint64 g_source_get_ready_time (GSource *source);
|
||||||
|
|
||||||
|
#ifdef G_OS_UNIX
|
||||||
|
GLIB_AVAILABLE_IN_2_36
|
||||||
|
gpointer g_source_add_unix_fd (GSource *source,
|
||||||
|
gint fd,
|
||||||
|
GIOCondition events);
|
||||||
|
GLIB_AVAILABLE_IN_2_36
|
||||||
|
void g_source_modify_unix_fd (GSource *source,
|
||||||
|
gpointer tag,
|
||||||
|
GIOCondition new_events);
|
||||||
|
GLIB_AVAILABLE_IN_2_36
|
||||||
|
void g_source_remove_unix_fd (GSource *source,
|
||||||
|
gpointer tag);
|
||||||
|
GLIB_AVAILABLE_IN_2_36
|
||||||
|
GIOCondition g_source_query_unix_fd (GSource *source,
|
||||||
|
gpointer tag);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* Used to implement g_source_connect_closure and internally*/
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_source_set_callback_indirect (GSource *source,
|
||||||
|
gpointer callback_data,
|
||||||
|
GSourceCallbackFuncs *callback_funcs);
|
||||||
|
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_source_add_poll (GSource *source,
|
||||||
|
GPollFD *fd);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_source_remove_poll (GSource *source,
|
||||||
|
GPollFD *fd);
|
||||||
|
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_source_add_child_source (GSource *source,
|
||||||
|
GSource *child_source);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_source_remove_child_source (GSource *source,
|
||||||
|
GSource *child_source);
|
||||||
|
|
||||||
|
GLIB_DEPRECATED_IN_2_28_FOR(g_source_get_time)
|
||||||
|
void g_source_get_current_time (GSource *source,
|
||||||
|
GTimeVal *timeval);
|
||||||
|
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gint64 g_source_get_time (GSource *source);
|
||||||
|
|
||||||
|
/* void g_source_connect_closure (GSource *source,
|
||||||
|
GClosure *closure);
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* Specific source types
|
||||||
|
*/
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GSource *g_idle_source_new (void);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GSource *g_child_watch_source_new (GPid pid);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GSource *g_timeout_source_new (guint interval);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GSource *g_timeout_source_new_seconds (guint interval);
|
||||||
|
|
||||||
|
/* Miscellaneous functions
|
||||||
|
*/
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_get_current_time (GTimeVal *result);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gint64 g_get_monotonic_time (void);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gint64 g_get_real_time (void);
|
||||||
|
|
||||||
|
|
||||||
|
/* Source manipulation by ID */
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gboolean g_source_remove (guint tag);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gboolean g_source_remove_by_user_data (gpointer user_data);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gboolean g_source_remove_by_funcs_user_data (GSourceFuncs *funcs,
|
||||||
|
gpointer user_data);
|
||||||
|
|
||||||
|
/* Idles, child watchers and timeouts */
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
guint g_timeout_add_full (gint priority,
|
||||||
|
guint interval,
|
||||||
|
GSourceFunc function,
|
||||||
|
gpointer data,
|
||||||
|
GDestroyNotify notify);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
guint g_timeout_add (guint interval,
|
||||||
|
GSourceFunc function,
|
||||||
|
gpointer data);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
guint g_timeout_add_seconds_full (gint priority,
|
||||||
|
guint interval,
|
||||||
|
GSourceFunc function,
|
||||||
|
gpointer data,
|
||||||
|
GDestroyNotify notify);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
guint g_timeout_add_seconds (guint interval,
|
||||||
|
GSourceFunc function,
|
||||||
|
gpointer data);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
guint g_child_watch_add_full (gint priority,
|
||||||
|
GPid pid,
|
||||||
|
GChildWatchFunc function,
|
||||||
|
gpointer data,
|
||||||
|
GDestroyNotify notify);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
guint g_child_watch_add (GPid pid,
|
||||||
|
GChildWatchFunc function,
|
||||||
|
gpointer data);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
guint g_idle_add (GSourceFunc function,
|
||||||
|
gpointer data);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
guint g_idle_add_full (gint priority,
|
||||||
|
GSourceFunc function,
|
||||||
|
gpointer data,
|
||||||
|
GDestroyNotify notify);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gboolean g_idle_remove_by_data (gpointer data);
|
||||||
|
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_main_context_invoke_full (GMainContext *context,
|
||||||
|
gint priority,
|
||||||
|
GSourceFunc function,
|
||||||
|
gpointer data,
|
||||||
|
GDestroyNotify notify);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_main_context_invoke (GMainContext *context,
|
||||||
|
GSourceFunc function,
|
||||||
|
gpointer data);
|
||||||
|
|
||||||
|
/* Hook for GClosure / GSource integration. Don't touch */
|
||||||
|
GLIB_VAR GSourceFuncs g_timeout_funcs;
|
||||||
|
GLIB_VAR GSourceFuncs g_child_watch_funcs;
|
||||||
|
GLIB_VAR GSourceFuncs g_idle_funcs;
|
||||||
|
#ifdef G_OS_UNIX
|
||||||
|
GLIB_VAR GSourceFuncs g_unix_signal_funcs;
|
||||||
|
GLIB_VAR GSourceFuncs g_unix_fd_source_funcs;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
G_END_DECLS
|
||||||
|
|
||||||
|
#endif /* __G_MAIN_H__ */
|
|
@ -0,0 +1,58 @@
|
||||||
|
/* GLIB - Library of useful routines for C programming
|
||||||
|
* gmappedfile.h: Simplified wrapper around the mmap function
|
||||||
|
*
|
||||||
|
* Copyright 2005 Matthias Clasen
|
||||||
|
*
|
||||||
|
* This library 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 of the License, or (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This library 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 this library; if not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef __G_MAPPED_FILE_H__
|
||||||
|
#define __G_MAPPED_FILE_H__
|
||||||
|
|
||||||
|
#if !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION)
|
||||||
|
#error "Only <glib.h> can be included directly."
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include <glib/gbytes.h>
|
||||||
|
#include <glib/gerror.h>
|
||||||
|
|
||||||
|
G_BEGIN_DECLS
|
||||||
|
|
||||||
|
typedef struct _GMappedFile GMappedFile;
|
||||||
|
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GMappedFile *g_mapped_file_new (const gchar *filename,
|
||||||
|
gboolean writable,
|
||||||
|
GError **error) G_GNUC_MALLOC;
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GMappedFile *g_mapped_file_new_from_fd (gint fd,
|
||||||
|
gboolean writable,
|
||||||
|
GError **error) G_GNUC_MALLOC;
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gsize g_mapped_file_get_length (GMappedFile *file);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gchar *g_mapped_file_get_contents (GMappedFile *file);
|
||||||
|
GLIB_AVAILABLE_IN_2_34
|
||||||
|
GBytes * g_mapped_file_get_bytes (GMappedFile *file);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GMappedFile *g_mapped_file_ref (GMappedFile *file);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_mapped_file_unref (GMappedFile *file);
|
||||||
|
|
||||||
|
GLIB_DEPRECATED_FOR(g_mapped_file_unref)
|
||||||
|
void g_mapped_file_free (GMappedFile *file);
|
||||||
|
|
||||||
|
G_END_DECLS
|
||||||
|
|
||||||
|
#endif /* __G_MAPPED_FILE_H__ */
|
262
code/application/source/sf_app/code/source/sf_blue/inc/glib/glib/gmarkup.h
Executable file
262
code/application/source/sf_app/code/source/sf_blue/inc/glib/glib/gmarkup.h
Executable file
|
@ -0,0 +1,262 @@
|
||||||
|
/* gmarkup.h - Simple XML-like string parser/writer
|
||||||
|
*
|
||||||
|
* Copyright 2000 Red Hat, Inc.
|
||||||
|
*
|
||||||
|
* GLib 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 of the
|
||||||
|
* License, or (at your option) any later version.
|
||||||
|
*
|
||||||
|
* GLib 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 GLib; see the file COPYING.LIB. If not,
|
||||||
|
* see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef __G_MARKUP_H__
|
||||||
|
#define __G_MARKUP_H__
|
||||||
|
|
||||||
|
#if !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION)
|
||||||
|
#error "Only <glib.h> can be included directly."
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include <stdarg.h>
|
||||||
|
|
||||||
|
#include <glib/gerror.h>
|
||||||
|
#include <glib/gslist.h>
|
||||||
|
|
||||||
|
G_BEGIN_DECLS
|
||||||
|
|
||||||
|
/**
|
||||||
|
* GMarkupError:
|
||||||
|
* @G_MARKUP_ERROR_BAD_UTF8: text being parsed was not valid UTF-8
|
||||||
|
* @G_MARKUP_ERROR_EMPTY: document contained nothing, or only whitespace
|
||||||
|
* @G_MARKUP_ERROR_PARSE: document was ill-formed
|
||||||
|
* @G_MARKUP_ERROR_UNKNOWN_ELEMENT: error should be set by #GMarkupParser
|
||||||
|
* functions; element wasn't known
|
||||||
|
* @G_MARKUP_ERROR_UNKNOWN_ATTRIBUTE: error should be set by #GMarkupParser
|
||||||
|
* functions; attribute wasn't known
|
||||||
|
* @G_MARKUP_ERROR_INVALID_CONTENT: error should be set by #GMarkupParser
|
||||||
|
* functions; content was invalid
|
||||||
|
* @G_MARKUP_ERROR_MISSING_ATTRIBUTE: error should be set by #GMarkupParser
|
||||||
|
* functions; a required attribute was missing
|
||||||
|
*
|
||||||
|
* Error codes returned by markup parsing.
|
||||||
|
*/
|
||||||
|
typedef enum
|
||||||
|
{
|
||||||
|
G_MARKUP_ERROR_BAD_UTF8,
|
||||||
|
G_MARKUP_ERROR_EMPTY,
|
||||||
|
G_MARKUP_ERROR_PARSE,
|
||||||
|
/* The following are primarily intended for specific GMarkupParser
|
||||||
|
* implementations to set.
|
||||||
|
*/
|
||||||
|
G_MARKUP_ERROR_UNKNOWN_ELEMENT,
|
||||||
|
G_MARKUP_ERROR_UNKNOWN_ATTRIBUTE,
|
||||||
|
G_MARKUP_ERROR_INVALID_CONTENT,
|
||||||
|
G_MARKUP_ERROR_MISSING_ATTRIBUTE
|
||||||
|
} GMarkupError;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* G_MARKUP_ERROR:
|
||||||
|
*
|
||||||
|
* Error domain for markup parsing.
|
||||||
|
* Errors in this domain will be from the #GMarkupError enumeration.
|
||||||
|
* See #GError for information on error domains.
|
||||||
|
*/
|
||||||
|
#define G_MARKUP_ERROR g_markup_error_quark ()
|
||||||
|
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GQuark g_markup_error_quark (void);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* GMarkupParseFlags:
|
||||||
|
* @G_MARKUP_DO_NOT_USE_THIS_UNSUPPORTED_FLAG: flag you should not use
|
||||||
|
* @G_MARKUP_TREAT_CDATA_AS_TEXT: When this flag is set, CDATA marked
|
||||||
|
* sections are not passed literally to the @passthrough function of
|
||||||
|
* the parser. Instead, the content of the section (without the
|
||||||
|
* `<![CDATA[` and `]]>`) is
|
||||||
|
* passed to the @text function. This flag was added in GLib 2.12
|
||||||
|
* @G_MARKUP_PREFIX_ERROR_POSITION: Normally errors caught by GMarkup
|
||||||
|
* itself have line/column information prefixed to them to let the
|
||||||
|
* caller know the location of the error. When this flag is set the
|
||||||
|
* location information is also prefixed to errors generated by the
|
||||||
|
* #GMarkupParser implementation functions
|
||||||
|
* @G_MARKUP_IGNORE_QUALIFIED: Ignore (don't report) qualified
|
||||||
|
* attributes and tags, along with their contents. A qualified
|
||||||
|
* attribute or tag is one that contains ':' in its name (ie: is in
|
||||||
|
* another namespace). Since: 2.40.
|
||||||
|
*
|
||||||
|
* Flags that affect the behaviour of the parser.
|
||||||
|
*/
|
||||||
|
typedef enum
|
||||||
|
{
|
||||||
|
G_MARKUP_DO_NOT_USE_THIS_UNSUPPORTED_FLAG = 1 << 0,
|
||||||
|
G_MARKUP_TREAT_CDATA_AS_TEXT = 1 << 1,
|
||||||
|
G_MARKUP_PREFIX_ERROR_POSITION = 1 << 2,
|
||||||
|
G_MARKUP_IGNORE_QUALIFIED = 1 << 3
|
||||||
|
} GMarkupParseFlags;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* GMarkupParseContext:
|
||||||
|
*
|
||||||
|
* A parse context is used to parse a stream of bytes that
|
||||||
|
* you expect to contain marked-up text.
|
||||||
|
*
|
||||||
|
* See g_markup_parse_context_new(), #GMarkupParser, and so
|
||||||
|
* on for more details.
|
||||||
|
*/
|
||||||
|
typedef struct _GMarkupParseContext GMarkupParseContext;
|
||||||
|
typedef struct _GMarkupParser GMarkupParser;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* GMarkupParser:
|
||||||
|
* @start_element: Callback to invoke when the opening tag of an element
|
||||||
|
* is seen. The callback's @attribute_names and @attribute_values parameters
|
||||||
|
* are %NULL-terminated.
|
||||||
|
* @end_element: Callback to invoke when the closing tag of an element
|
||||||
|
* is seen. Note that this is also called for empty tags like
|
||||||
|
* `<empty/>`.
|
||||||
|
* @text: Callback to invoke when some text is seen (text is always
|
||||||
|
* inside an element). Note that the text of an element may be spread
|
||||||
|
* over multiple calls of this function. If the
|
||||||
|
* %G_MARKUP_TREAT_CDATA_AS_TEXT flag is set, this function is also
|
||||||
|
* called for the content of CDATA marked sections.
|
||||||
|
* @passthrough: Callback to invoke for comments, processing instructions
|
||||||
|
* and doctype declarations; if you're re-writing the parsed document,
|
||||||
|
* write the passthrough text back out in the same position. If the
|
||||||
|
* %G_MARKUP_TREAT_CDATA_AS_TEXT flag is not set, this function is also
|
||||||
|
* called for CDATA marked sections.
|
||||||
|
* @error: Callback to invoke when an error occurs.
|
||||||
|
*
|
||||||
|
* Any of the fields in #GMarkupParser can be %NULL, in which case they
|
||||||
|
* will be ignored. Except for the @error function, any of these callbacks
|
||||||
|
* can set an error; in particular the %G_MARKUP_ERROR_UNKNOWN_ELEMENT,
|
||||||
|
* %G_MARKUP_ERROR_UNKNOWN_ATTRIBUTE, and %G_MARKUP_ERROR_INVALID_CONTENT
|
||||||
|
* errors are intended to be set from these callbacks. If you set an error
|
||||||
|
* from a callback, g_markup_parse_context_parse() will report that error
|
||||||
|
* back to its caller.
|
||||||
|
*/
|
||||||
|
struct _GMarkupParser
|
||||||
|
{
|
||||||
|
/* Called for open tags <foo bar="baz"> */
|
||||||
|
void (*start_element) (GMarkupParseContext *context,
|
||||||
|
const gchar *element_name,
|
||||||
|
const gchar **attribute_names,
|
||||||
|
const gchar **attribute_values,
|
||||||
|
gpointer user_data,
|
||||||
|
GError **error);
|
||||||
|
|
||||||
|
/* Called for close tags </foo> */
|
||||||
|
void (*end_element) (GMarkupParseContext *context,
|
||||||
|
const gchar *element_name,
|
||||||
|
gpointer user_data,
|
||||||
|
GError **error);
|
||||||
|
|
||||||
|
/* Called for character data */
|
||||||
|
/* text is not nul-terminated */
|
||||||
|
void (*text) (GMarkupParseContext *context,
|
||||||
|
const gchar *text,
|
||||||
|
gsize text_len,
|
||||||
|
gpointer user_data,
|
||||||
|
GError **error);
|
||||||
|
|
||||||
|
/* Called for strings that should be re-saved verbatim in this same
|
||||||
|
* position, but are not otherwise interpretable. At the moment
|
||||||
|
* this includes comments and processing instructions.
|
||||||
|
*/
|
||||||
|
/* text is not nul-terminated. */
|
||||||
|
void (*passthrough) (GMarkupParseContext *context,
|
||||||
|
const gchar *passthrough_text,
|
||||||
|
gsize text_len,
|
||||||
|
gpointer user_data,
|
||||||
|
GError **error);
|
||||||
|
|
||||||
|
/* Called on error, including one set by other
|
||||||
|
* methods in the vtable. The GError should not be freed.
|
||||||
|
*/
|
||||||
|
void (*error) (GMarkupParseContext *context,
|
||||||
|
GError *error,
|
||||||
|
gpointer user_data);
|
||||||
|
};
|
||||||
|
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GMarkupParseContext *g_markup_parse_context_new (const GMarkupParser *parser,
|
||||||
|
GMarkupParseFlags flags,
|
||||||
|
gpointer user_data,
|
||||||
|
GDestroyNotify user_data_dnotify);
|
||||||
|
GLIB_AVAILABLE_IN_2_36
|
||||||
|
GMarkupParseContext *g_markup_parse_context_ref (GMarkupParseContext *context);
|
||||||
|
GLIB_AVAILABLE_IN_2_36
|
||||||
|
void g_markup_parse_context_unref (GMarkupParseContext *context);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_markup_parse_context_free (GMarkupParseContext *context);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gboolean g_markup_parse_context_parse (GMarkupParseContext *context,
|
||||||
|
const gchar *text,
|
||||||
|
gssize text_len,
|
||||||
|
GError **error);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_markup_parse_context_push (GMarkupParseContext *context,
|
||||||
|
const GMarkupParser *parser,
|
||||||
|
gpointer user_data);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gpointer g_markup_parse_context_pop (GMarkupParseContext *context);
|
||||||
|
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gboolean g_markup_parse_context_end_parse (GMarkupParseContext *context,
|
||||||
|
GError **error);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
const gchar * g_markup_parse_context_get_element (GMarkupParseContext *context);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
const GSList * g_markup_parse_context_get_element_stack (GMarkupParseContext *context);
|
||||||
|
|
||||||
|
/* For user-constructed error messages, has no precise semantics */
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_markup_parse_context_get_position (GMarkupParseContext *context,
|
||||||
|
gint *line_number,
|
||||||
|
gint *char_number);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gpointer g_markup_parse_context_get_user_data (GMarkupParseContext *context);
|
||||||
|
|
||||||
|
/* useful when saving */
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gchar* g_markup_escape_text (const gchar *text,
|
||||||
|
gssize length);
|
||||||
|
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gchar *g_markup_printf_escaped (const char *format,
|
||||||
|
...) G_GNUC_PRINTF (1, 2);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gchar *g_markup_vprintf_escaped (const char *format,
|
||||||
|
va_list args) G_GNUC_PRINTF(1, 0);
|
||||||
|
|
||||||
|
typedef enum
|
||||||
|
{
|
||||||
|
G_MARKUP_COLLECT_INVALID,
|
||||||
|
G_MARKUP_COLLECT_STRING,
|
||||||
|
G_MARKUP_COLLECT_STRDUP,
|
||||||
|
G_MARKUP_COLLECT_BOOLEAN,
|
||||||
|
G_MARKUP_COLLECT_TRISTATE,
|
||||||
|
|
||||||
|
G_MARKUP_COLLECT_OPTIONAL = (1 << 16)
|
||||||
|
} GMarkupCollectType;
|
||||||
|
|
||||||
|
|
||||||
|
/* useful from start_element */
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gboolean g_markup_collect_attributes (const gchar *element_name,
|
||||||
|
const gchar **attribute_names,
|
||||||
|
const gchar **attribute_values,
|
||||||
|
GError **error,
|
||||||
|
GMarkupCollectType first_type,
|
||||||
|
const gchar *first_attr,
|
||||||
|
...);
|
||||||
|
|
||||||
|
G_END_DECLS
|
||||||
|
|
||||||
|
#endif /* __G_MARKUP_H__ */
|
371
code/application/source/sf_app/code/source/sf_blue/inc/glib/glib/gmem.h
Executable file
371
code/application/source/sf_app/code/source/sf_blue/inc/glib/glib/gmem.h
Executable file
|
@ -0,0 +1,371 @@
|
||||||
|
/* GLIB - Library of useful routines for C programming
|
||||||
|
* Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald
|
||||||
|
*
|
||||||
|
* This library 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 of the License, or (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This library 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 this library; if not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Modified by the GLib Team and others 1997-2000. See the AUTHORS
|
||||||
|
* file for a list of people on the GLib Team. See the ChangeLog
|
||||||
|
* files for a list of changes. These files are distributed with
|
||||||
|
* GLib at ftp://ftp.gtk.org/pub/gtk/.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef __G_MEM_H__
|
||||||
|
#define __G_MEM_H__
|
||||||
|
|
||||||
|
#if !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION)
|
||||||
|
#error "Only <glib.h> can be included directly."
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include <glib/gutils.h>
|
||||||
|
|
||||||
|
G_BEGIN_DECLS
|
||||||
|
|
||||||
|
/**
|
||||||
|
* GMemVTable:
|
||||||
|
* @malloc: function to use for allocating memory.
|
||||||
|
* @realloc: function to use for reallocating memory.
|
||||||
|
* @free: function to use to free memory.
|
||||||
|
* @calloc: function to use for allocating zero-filled memory.
|
||||||
|
* @try_malloc: function to use for allocating memory without a default error handler.
|
||||||
|
* @try_realloc: function to use for reallocating memory without a default error handler.
|
||||||
|
*
|
||||||
|
* A set of functions used to perform memory allocation. The same #GMemVTable must
|
||||||
|
* be used for all allocations in the same program; a call to g_mem_set_vtable(),
|
||||||
|
* if it exists, should be prior to any use of GLib.
|
||||||
|
*
|
||||||
|
* This functions related to this has been deprecated in 2.46, and no longer work.
|
||||||
|
*/
|
||||||
|
typedef struct _GMemVTable GMemVTable;
|
||||||
|
|
||||||
|
|
||||||
|
#if GLIB_SIZEOF_VOID_P > GLIB_SIZEOF_LONG
|
||||||
|
/**
|
||||||
|
* G_MEM_ALIGN:
|
||||||
|
*
|
||||||
|
* Indicates the number of bytes to which memory will be aligned on the
|
||||||
|
* current platform.
|
||||||
|
*/
|
||||||
|
# define G_MEM_ALIGN GLIB_SIZEOF_VOID_P
|
||||||
|
#else /* GLIB_SIZEOF_VOID_P <= GLIB_SIZEOF_LONG */
|
||||||
|
# define G_MEM_ALIGN GLIB_SIZEOF_LONG
|
||||||
|
#endif /* GLIB_SIZEOF_VOID_P <= GLIB_SIZEOF_LONG */
|
||||||
|
|
||||||
|
|
||||||
|
/* Memory allocation functions
|
||||||
|
*/
|
||||||
|
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_free (gpointer mem);
|
||||||
|
|
||||||
|
GLIB_AVAILABLE_IN_2_34
|
||||||
|
void g_clear_pointer (gpointer *pp,
|
||||||
|
GDestroyNotify destroy);
|
||||||
|
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gpointer g_malloc (gsize n_bytes) G_GNUC_MALLOC G_GNUC_ALLOC_SIZE(1);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gpointer g_malloc0 (gsize n_bytes) G_GNUC_MALLOC G_GNUC_ALLOC_SIZE(1);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gpointer g_realloc (gpointer mem,
|
||||||
|
gsize n_bytes) G_GNUC_WARN_UNUSED_RESULT;
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gpointer g_try_malloc (gsize n_bytes) G_GNUC_MALLOC G_GNUC_ALLOC_SIZE(1);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gpointer g_try_malloc0 (gsize n_bytes) G_GNUC_MALLOC G_GNUC_ALLOC_SIZE(1);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gpointer g_try_realloc (gpointer mem,
|
||||||
|
gsize n_bytes) G_GNUC_WARN_UNUSED_RESULT;
|
||||||
|
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gpointer g_malloc_n (gsize n_blocks,
|
||||||
|
gsize n_block_bytes) G_GNUC_MALLOC G_GNUC_ALLOC_SIZE2(1,2);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gpointer g_malloc0_n (gsize n_blocks,
|
||||||
|
gsize n_block_bytes) G_GNUC_MALLOC G_GNUC_ALLOC_SIZE2(1,2);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gpointer g_realloc_n (gpointer mem,
|
||||||
|
gsize n_blocks,
|
||||||
|
gsize n_block_bytes) G_GNUC_WARN_UNUSED_RESULT;
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gpointer g_try_malloc_n (gsize n_blocks,
|
||||||
|
gsize n_block_bytes) G_GNUC_MALLOC G_GNUC_ALLOC_SIZE2(1,2);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gpointer g_try_malloc0_n (gsize n_blocks,
|
||||||
|
gsize n_block_bytes) G_GNUC_MALLOC G_GNUC_ALLOC_SIZE2(1,2);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gpointer g_try_realloc_n (gpointer mem,
|
||||||
|
gsize n_blocks,
|
||||||
|
gsize n_block_bytes) G_GNUC_WARN_UNUSED_RESULT;
|
||||||
|
|
||||||
|
#define g_clear_pointer(pp, destroy) \
|
||||||
|
G_STMT_START { \
|
||||||
|
G_STATIC_ASSERT (sizeof *(pp) == sizeof (gpointer)); \
|
||||||
|
/* Only one access, please */ \
|
||||||
|
gpointer *_pp = (gpointer *) (pp); \
|
||||||
|
gpointer _p; \
|
||||||
|
/* This assignment is needed to avoid a gcc warning */ \
|
||||||
|
GDestroyNotify _destroy = (GDestroyNotify) (destroy); \
|
||||||
|
\
|
||||||
|
_p = *_pp; \
|
||||||
|
if (_p) \
|
||||||
|
{ \
|
||||||
|
*_pp = NULL; \
|
||||||
|
_destroy (_p); \
|
||||||
|
} \
|
||||||
|
} G_STMT_END
|
||||||
|
|
||||||
|
/**
|
||||||
|
* g_steal_pointer:
|
||||||
|
* @pp: (not nullable): a pointer to a pointer
|
||||||
|
*
|
||||||
|
* Sets @pp to %NULL, returning the value that was there before.
|
||||||
|
*
|
||||||
|
* Conceptually, this transfers the ownership of the pointer from the
|
||||||
|
* referenced variable to the "caller" of the macro (ie: "steals" the
|
||||||
|
* reference).
|
||||||
|
*
|
||||||
|
* The return value will be properly typed, according to the type of
|
||||||
|
* @pp.
|
||||||
|
*
|
||||||
|
* This can be very useful when combined with g_autoptr() to prevent the
|
||||||
|
* return value of a function from being automatically freed. Consider
|
||||||
|
* the following example (which only works on GCC and clang):
|
||||||
|
*
|
||||||
|
* |[
|
||||||
|
* GObject *
|
||||||
|
* create_object (void)
|
||||||
|
* {
|
||||||
|
* g_autoptr(GObject) obj = g_object_new (G_TYPE_OBJECT, NULL);
|
||||||
|
*
|
||||||
|
* if (early_error_case)
|
||||||
|
* return NULL;
|
||||||
|
*
|
||||||
|
* return g_steal_pointer (&obj);
|
||||||
|
* }
|
||||||
|
* ]|
|
||||||
|
*
|
||||||
|
* It can also be used in similar ways for 'out' parameters and is
|
||||||
|
* particularly useful for dealing with optional out parameters:
|
||||||
|
*
|
||||||
|
* |[
|
||||||
|
* gboolean
|
||||||
|
* get_object (GObject **obj_out)
|
||||||
|
* {
|
||||||
|
* g_autoptr(GObject) obj = g_object_new (G_TYPE_OBJECT, NULL);
|
||||||
|
*
|
||||||
|
* if (early_error_case)
|
||||||
|
* return FALSE;
|
||||||
|
*
|
||||||
|
* if (obj_out)
|
||||||
|
* *obj_out = g_steal_pointer (&obj);
|
||||||
|
*
|
||||||
|
* return TRUE;
|
||||||
|
* }
|
||||||
|
* ]|
|
||||||
|
*
|
||||||
|
* In the above example, the object will be automatically freed in the
|
||||||
|
* early error case and also in the case that %NULL was given for
|
||||||
|
* @obj_out.
|
||||||
|
*
|
||||||
|
* Since: 2.44
|
||||||
|
*/
|
||||||
|
static inline gpointer
|
||||||
|
g_steal_pointer (gpointer pp)
|
||||||
|
{
|
||||||
|
gpointer *ptr = (gpointer *) pp;
|
||||||
|
gpointer ref;
|
||||||
|
|
||||||
|
ref = *ptr;
|
||||||
|
*ptr = NULL;
|
||||||
|
|
||||||
|
return ref;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* type safety */
|
||||||
|
#define g_steal_pointer(pp) \
|
||||||
|
(0 ? (*(pp)) : (g_steal_pointer) (pp))
|
||||||
|
|
||||||
|
/* Optimise: avoid the call to the (slower) _n function if we can
|
||||||
|
* determine at compile-time that no overflow happens.
|
||||||
|
*/
|
||||||
|
#if defined (__GNUC__) && (__GNUC__ >= 2) && defined (__OPTIMIZE__)
|
||||||
|
# define _G_NEW(struct_type, n_structs, func) \
|
||||||
|
(struct_type *) (G_GNUC_EXTENSION ({ \
|
||||||
|
gsize __n = (gsize) (n_structs); \
|
||||||
|
gsize __s = sizeof (struct_type); \
|
||||||
|
gpointer __p; \
|
||||||
|
if (__s == 1) \
|
||||||
|
__p = g_##func (__n); \
|
||||||
|
else if (__builtin_constant_p (__n) && \
|
||||||
|
(__s == 0 || __n <= G_MAXSIZE / __s)) \
|
||||||
|
__p = g_##func (__n * __s); \
|
||||||
|
else \
|
||||||
|
__p = g_##func##_n (__n, __s); \
|
||||||
|
__p; \
|
||||||
|
}))
|
||||||
|
# define _G_RENEW(struct_type, mem, n_structs, func) \
|
||||||
|
(struct_type *) (G_GNUC_EXTENSION ({ \
|
||||||
|
gsize __n = (gsize) (n_structs); \
|
||||||
|
gsize __s = sizeof (struct_type); \
|
||||||
|
gpointer __p = (gpointer) (mem); \
|
||||||
|
if (__s == 1) \
|
||||||
|
__p = g_##func (__p, __n); \
|
||||||
|
else if (__builtin_constant_p (__n) && \
|
||||||
|
(__s == 0 || __n <= G_MAXSIZE / __s)) \
|
||||||
|
__p = g_##func (__p, __n * __s); \
|
||||||
|
else \
|
||||||
|
__p = g_##func##_n (__p, __n, __s); \
|
||||||
|
__p; \
|
||||||
|
}))
|
||||||
|
|
||||||
|
#else
|
||||||
|
|
||||||
|
/* Unoptimised version: always call the _n() function. */
|
||||||
|
|
||||||
|
#define _G_NEW(struct_type, n_structs, func) \
|
||||||
|
((struct_type *) g_##func##_n ((n_structs), sizeof (struct_type)))
|
||||||
|
#define _G_RENEW(struct_type, mem, n_structs, func) \
|
||||||
|
((struct_type *) g_##func##_n (mem, (n_structs), sizeof (struct_type)))
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/**
|
||||||
|
* g_new:
|
||||||
|
* @struct_type: the type of the elements to allocate
|
||||||
|
* @n_structs: the number of elements to allocate
|
||||||
|
*
|
||||||
|
* Allocates @n_structs elements of type @struct_type.
|
||||||
|
* The returned pointer is cast to a pointer to the given type.
|
||||||
|
* If @n_structs is 0 it returns %NULL.
|
||||||
|
* Care is taken to avoid overflow when calculating the size of the allocated block.
|
||||||
|
*
|
||||||
|
* Since the returned pointer is already casted to the right type,
|
||||||
|
* it is normally unnecessary to cast it explicitly, and doing
|
||||||
|
* so might hide memory allocation errors.
|
||||||
|
*
|
||||||
|
* Returns: a pointer to the allocated memory, cast to a pointer to @struct_type
|
||||||
|
*/
|
||||||
|
#define g_new(struct_type, n_structs) _G_NEW (struct_type, n_structs, malloc)
|
||||||
|
/**
|
||||||
|
* g_new0:
|
||||||
|
* @struct_type: the type of the elements to allocate.
|
||||||
|
* @n_structs: the number of elements to allocate.
|
||||||
|
*
|
||||||
|
* Allocates @n_structs elements of type @struct_type, initialized to 0's.
|
||||||
|
* The returned pointer is cast to a pointer to the given type.
|
||||||
|
* If @n_structs is 0 it returns %NULL.
|
||||||
|
* Care is taken to avoid overflow when calculating the size of the allocated block.
|
||||||
|
*
|
||||||
|
* Since the returned pointer is already casted to the right type,
|
||||||
|
* it is normally unnecessary to cast it explicitly, and doing
|
||||||
|
* so might hide memory allocation errors.
|
||||||
|
*
|
||||||
|
* Returns: a pointer to the allocated memory, cast to a pointer to @struct_type.
|
||||||
|
*/
|
||||||
|
#define g_new0(struct_type, n_structs) _G_NEW (struct_type, n_structs, malloc0)
|
||||||
|
/**
|
||||||
|
* g_renew:
|
||||||
|
* @struct_type: the type of the elements to allocate
|
||||||
|
* @mem: the currently allocated memory
|
||||||
|
* @n_structs: the number of elements to allocate
|
||||||
|
*
|
||||||
|
* Reallocates the memory pointed to by @mem, so that it now has space for
|
||||||
|
* @n_structs elements of type @struct_type. It returns the new address of
|
||||||
|
* the memory, which may have been moved.
|
||||||
|
* Care is taken to avoid overflow when calculating the size of the allocated block.
|
||||||
|
*
|
||||||
|
* Returns: a pointer to the new allocated memory, cast to a pointer to @struct_type
|
||||||
|
*/
|
||||||
|
#define g_renew(struct_type, mem, n_structs) _G_RENEW (struct_type, mem, n_structs, realloc)
|
||||||
|
/**
|
||||||
|
* g_try_new:
|
||||||
|
* @struct_type: the type of the elements to allocate
|
||||||
|
* @n_structs: the number of elements to allocate
|
||||||
|
*
|
||||||
|
* Attempts to allocate @n_structs elements of type @struct_type, and returns
|
||||||
|
* %NULL on failure. Contrast with g_new(), which aborts the program on failure.
|
||||||
|
* The returned pointer is cast to a pointer to the given type.
|
||||||
|
* The function returns %NULL when @n_structs is 0 of if an overflow occurs.
|
||||||
|
*
|
||||||
|
* Since: 2.8
|
||||||
|
* Returns: a pointer to the allocated memory, cast to a pointer to @struct_type
|
||||||
|
*/
|
||||||
|
#define g_try_new(struct_type, n_structs) _G_NEW (struct_type, n_structs, try_malloc)
|
||||||
|
/**
|
||||||
|
* g_try_new0:
|
||||||
|
* @struct_type: the type of the elements to allocate
|
||||||
|
* @n_structs: the number of elements to allocate
|
||||||
|
*
|
||||||
|
* Attempts to allocate @n_structs elements of type @struct_type, initialized
|
||||||
|
* to 0's, and returns %NULL on failure. Contrast with g_new0(), which aborts
|
||||||
|
* the program on failure.
|
||||||
|
* The returned pointer is cast to a pointer to the given type.
|
||||||
|
* The function returns %NULL when @n_structs is 0 or if an overflow occurs.
|
||||||
|
*
|
||||||
|
* Since: 2.8
|
||||||
|
* Returns: a pointer to the allocated memory, cast to a pointer to @struct_type
|
||||||
|
*/
|
||||||
|
#define g_try_new0(struct_type, n_structs) _G_NEW (struct_type, n_structs, try_malloc0)
|
||||||
|
/**
|
||||||
|
* g_try_renew:
|
||||||
|
* @struct_type: the type of the elements to allocate
|
||||||
|
* @mem: the currently allocated memory
|
||||||
|
* @n_structs: the number of elements to allocate
|
||||||
|
*
|
||||||
|
* Attempts to reallocate the memory pointed to by @mem, so that it now has
|
||||||
|
* space for @n_structs elements of type @struct_type, and returns %NULL on
|
||||||
|
* failure. Contrast with g_renew(), which aborts the program on failure.
|
||||||
|
* It returns the new address of the memory, which may have been moved.
|
||||||
|
* The function returns %NULL if an overflow occurs.
|
||||||
|
*
|
||||||
|
* Since: 2.8
|
||||||
|
* Returns: a pointer to the new allocated memory, cast to a pointer to @struct_type
|
||||||
|
*/
|
||||||
|
#define g_try_renew(struct_type, mem, n_structs) _G_RENEW (struct_type, mem, n_structs, try_realloc)
|
||||||
|
|
||||||
|
|
||||||
|
/* Memory allocation virtualization for debugging purposes
|
||||||
|
* g_mem_set_vtable() has to be the very first GLib function called
|
||||||
|
* if being used
|
||||||
|
*/
|
||||||
|
struct _GMemVTable {
|
||||||
|
gpointer (*malloc) (gsize n_bytes);
|
||||||
|
gpointer (*realloc) (gpointer mem,
|
||||||
|
gsize n_bytes);
|
||||||
|
void (*free) (gpointer mem);
|
||||||
|
/* optional; set to NULL if not used ! */
|
||||||
|
gpointer (*calloc) (gsize n_blocks,
|
||||||
|
gsize n_block_bytes);
|
||||||
|
gpointer (*try_malloc) (gsize n_bytes);
|
||||||
|
gpointer (*try_realloc) (gpointer mem,
|
||||||
|
gsize n_bytes);
|
||||||
|
};
|
||||||
|
GLIB_DEPRECATED_IN_2_46
|
||||||
|
void g_mem_set_vtable (GMemVTable *vtable);
|
||||||
|
GLIB_DEPRECATED_IN_2_46
|
||||||
|
gboolean g_mem_is_system_malloc (void);
|
||||||
|
|
||||||
|
GLIB_VAR gboolean g_mem_gc_friendly;
|
||||||
|
|
||||||
|
/* Memory profiler and checker, has to be enabled via g_mem_set_vtable()
|
||||||
|
*/
|
||||||
|
GLIB_VAR GMemVTable *glib_mem_profiler_table;
|
||||||
|
GLIB_DEPRECATED_IN_2_46
|
||||||
|
void g_mem_profile (void);
|
||||||
|
|
||||||
|
G_END_DECLS
|
||||||
|
|
||||||
|
#endif /* __G_MEM_H__ */
|
616
code/application/source/sf_app/code/source/sf_blue/inc/glib/glib/gmessages.h
Executable file
616
code/application/source/sf_app/code/source/sf_blue/inc/glib/glib/gmessages.h
Executable file
|
@ -0,0 +1,616 @@
|
||||||
|
/* GLIB - Library of useful routines for C programming
|
||||||
|
* Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald
|
||||||
|
*
|
||||||
|
* This library 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 of the License, or (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This library 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 this library; if not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Modified by the GLib Team and others 1997-2000. See the AUTHORS
|
||||||
|
* file for a list of people on the GLib Team. See the ChangeLog
|
||||||
|
* files for a list of changes. These files are distributed with
|
||||||
|
* GLib at ftp://ftp.gtk.org/pub/gtk/.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef __G_MESSAGES_H__
|
||||||
|
#define __G_MESSAGES_H__
|
||||||
|
|
||||||
|
#if !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION)
|
||||||
|
#error "Only <glib.h> can be included directly."
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include <stdarg.h>
|
||||||
|
#include <glib/gtypes.h>
|
||||||
|
#include <glib/gmacros.h>
|
||||||
|
#include <glib/gvariant.h>
|
||||||
|
|
||||||
|
G_BEGIN_DECLS
|
||||||
|
|
||||||
|
/* calculate a string size, guaranteed to fit format + args.
|
||||||
|
*/
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gsize g_printf_string_upper_bound (const gchar* format,
|
||||||
|
va_list args) G_GNUC_PRINTF(1, 0);
|
||||||
|
|
||||||
|
/* Log level shift offset for user defined
|
||||||
|
* log levels (0-7 are used by GLib).
|
||||||
|
*/
|
||||||
|
#define G_LOG_LEVEL_USER_SHIFT (8)
|
||||||
|
|
||||||
|
/* Glib log levels and flags.
|
||||||
|
*/
|
||||||
|
typedef enum
|
||||||
|
{
|
||||||
|
/* log flags */
|
||||||
|
G_LOG_FLAG_RECURSION = 1 << 0,
|
||||||
|
G_LOG_FLAG_FATAL = 1 << 1,
|
||||||
|
|
||||||
|
/* GLib log levels */
|
||||||
|
G_LOG_LEVEL_ERROR = 1 << 2, /* always fatal */
|
||||||
|
G_LOG_LEVEL_CRITICAL = 1 << 3,
|
||||||
|
G_LOG_LEVEL_WARNING = 1 << 4,
|
||||||
|
G_LOG_LEVEL_MESSAGE = 1 << 5,
|
||||||
|
G_LOG_LEVEL_INFO = 1 << 6,
|
||||||
|
G_LOG_LEVEL_DEBUG = 1 << 7,
|
||||||
|
|
||||||
|
G_LOG_LEVEL_MASK = ~(G_LOG_FLAG_RECURSION | G_LOG_FLAG_FATAL)
|
||||||
|
} GLogLevelFlags;
|
||||||
|
|
||||||
|
/* GLib log levels that are considered fatal by default */
|
||||||
|
#define G_LOG_FATAL_MASK (G_LOG_FLAG_RECURSION | G_LOG_LEVEL_ERROR)
|
||||||
|
|
||||||
|
typedef void (*GLogFunc) (const gchar *log_domain,
|
||||||
|
GLogLevelFlags log_level,
|
||||||
|
const gchar *message,
|
||||||
|
gpointer user_data);
|
||||||
|
|
||||||
|
/* Logging mechanism
|
||||||
|
*/
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
guint g_log_set_handler (const gchar *log_domain,
|
||||||
|
GLogLevelFlags log_levels,
|
||||||
|
GLogFunc log_func,
|
||||||
|
gpointer user_data);
|
||||||
|
GLIB_AVAILABLE_IN_2_46
|
||||||
|
guint g_log_set_handler_full (const gchar *log_domain,
|
||||||
|
GLogLevelFlags log_levels,
|
||||||
|
GLogFunc log_func,
|
||||||
|
gpointer user_data,
|
||||||
|
GDestroyNotify destroy);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_log_remove_handler (const gchar *log_domain,
|
||||||
|
guint handler_id);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_log_default_handler (const gchar *log_domain,
|
||||||
|
GLogLevelFlags log_level,
|
||||||
|
const gchar *message,
|
||||||
|
gpointer unused_data);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GLogFunc g_log_set_default_handler (GLogFunc log_func,
|
||||||
|
gpointer user_data);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_log (const gchar *log_domain,
|
||||||
|
GLogLevelFlags log_level,
|
||||||
|
const gchar *format,
|
||||||
|
...) G_GNUC_PRINTF (3, 4);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_logv (const gchar *log_domain,
|
||||||
|
GLogLevelFlags log_level,
|
||||||
|
const gchar *format,
|
||||||
|
va_list args) G_GNUC_PRINTF(3, 0);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GLogLevelFlags g_log_set_fatal_mask (const gchar *log_domain,
|
||||||
|
GLogLevelFlags fatal_mask);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GLogLevelFlags g_log_set_always_fatal (GLogLevelFlags fatal_mask);
|
||||||
|
|
||||||
|
/* Structured logging mechanism. */
|
||||||
|
|
||||||
|
/**
|
||||||
|
* GLogWriterOutput:
|
||||||
|
* @G_LOG_WRITER_HANDLED: Log writer has handled the log entry.
|
||||||
|
* @G_LOG_WRITER_UNHANDLED: Log writer could not handle the log entry.
|
||||||
|
*
|
||||||
|
* Return values from #GLogWriterFuncs to indicate whether the given log entry
|
||||||
|
* was successfully handled by the writer, or whether there was an error in
|
||||||
|
* handling it (and hence a fallback writer should be used).
|
||||||
|
*
|
||||||
|
* If a #GLogWriterFunc ignores a log entry, it should return
|
||||||
|
* %G_LOG_WRITER_HANDLED.
|
||||||
|
*
|
||||||
|
* Since: 2.50
|
||||||
|
*/
|
||||||
|
typedef enum
|
||||||
|
{
|
||||||
|
G_LOG_WRITER_HANDLED = 1,
|
||||||
|
G_LOG_WRITER_UNHANDLED = 0,
|
||||||
|
} GLogWriterOutput;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* GLogField:
|
||||||
|
* @key: field name (UTF-8 string)
|
||||||
|
* @value: field value (arbitrary bytes)
|
||||||
|
* @length: length of @value, in bytes, or -1 if it is nul-terminated
|
||||||
|
*
|
||||||
|
* Structure representing a single field in a structured log entry. See
|
||||||
|
* g_log_structured() for details.
|
||||||
|
*
|
||||||
|
* Log fields may contain arbitrary values, including binary with embedded nul
|
||||||
|
* bytes. If the field contains a string, the string must be UTF-8 encoded and
|
||||||
|
* have a trailing nul byte. Otherwise, @length must be set to a non-negative
|
||||||
|
* value.
|
||||||
|
*
|
||||||
|
* Since: 2.50
|
||||||
|
*/
|
||||||
|
typedef struct _GLogField GLogField;
|
||||||
|
struct _GLogField
|
||||||
|
{
|
||||||
|
const gchar *key;
|
||||||
|
gconstpointer value;
|
||||||
|
gssize length;
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* GLogWriterFunc:
|
||||||
|
* @log_level: log level of the message
|
||||||
|
* @fields: (array length=n_fields): fields forming the message
|
||||||
|
* @n_fields: number of @fields
|
||||||
|
* @user_data: user data passed to g_log_set_writer_func()
|
||||||
|
*
|
||||||
|
* Writer function for log entries. A log entry is a collection of one or more
|
||||||
|
* #GLogFields, using the standard [field names from journal
|
||||||
|
* specification](https://www.freedesktop.org/software/systemd/man/systemd.journal-fields.html).
|
||||||
|
* See g_log_structured() for more information.
|
||||||
|
*
|
||||||
|
* Writer functions must ignore fields which they do not recognise, unless they
|
||||||
|
* can write arbitrary binary output, as field values may be arbitrary binary.
|
||||||
|
*
|
||||||
|
* @log_level is guaranteed to be included in @fields as the `PRIORITY` field,
|
||||||
|
* but is provided separately for convenience of deciding whether or where to
|
||||||
|
* output the log entry.
|
||||||
|
*
|
||||||
|
* Returns: %G_LOG_WRITER_HANDLED if the log entry was handled successfully;
|
||||||
|
* %G_LOG_WRITER_UNHANDLED otherwise
|
||||||
|
* Since: 2.50
|
||||||
|
*/
|
||||||
|
typedef GLogWriterOutput (*GLogWriterFunc) (GLogLevelFlags log_level,
|
||||||
|
const GLogField *fields,
|
||||||
|
gsize n_fields,
|
||||||
|
gpointer user_data);
|
||||||
|
|
||||||
|
GLIB_AVAILABLE_IN_2_50
|
||||||
|
void g_log_structured (const gchar *log_domain,
|
||||||
|
GLogLevelFlags log_level,
|
||||||
|
...);
|
||||||
|
GLIB_AVAILABLE_IN_2_50
|
||||||
|
void g_log_structured_array (GLogLevelFlags log_level,
|
||||||
|
const GLogField *fields,
|
||||||
|
gsize n_fields);
|
||||||
|
|
||||||
|
GLIB_AVAILABLE_IN_2_50
|
||||||
|
void g_log_variant (const gchar *log_domain,
|
||||||
|
GLogLevelFlags log_level,
|
||||||
|
GVariant *fields);
|
||||||
|
|
||||||
|
GLIB_AVAILABLE_IN_2_50
|
||||||
|
void g_log_set_writer_func (GLogWriterFunc func,
|
||||||
|
gpointer user_data,
|
||||||
|
GDestroyNotify user_data_free);
|
||||||
|
|
||||||
|
GLIB_AVAILABLE_IN_2_50
|
||||||
|
gboolean g_log_writer_supports_color (gint output_fd);
|
||||||
|
GLIB_AVAILABLE_IN_2_50
|
||||||
|
gboolean g_log_writer_is_journald (gint output_fd);
|
||||||
|
|
||||||
|
GLIB_AVAILABLE_IN_2_50
|
||||||
|
gchar *g_log_writer_format_fields (GLogLevelFlags log_level,
|
||||||
|
const GLogField *fields,
|
||||||
|
gsize n_fields,
|
||||||
|
gboolean use_color);
|
||||||
|
|
||||||
|
GLIB_AVAILABLE_IN_2_50
|
||||||
|
GLogWriterOutput g_log_writer_journald (GLogLevelFlags log_level,
|
||||||
|
const GLogField *fields,
|
||||||
|
gsize n_fields,
|
||||||
|
gpointer user_data);
|
||||||
|
GLIB_AVAILABLE_IN_2_50
|
||||||
|
GLogWriterOutput g_log_writer_standard_streams (GLogLevelFlags log_level,
|
||||||
|
const GLogField *fields,
|
||||||
|
gsize n_fields,
|
||||||
|
gpointer user_data);
|
||||||
|
GLIB_AVAILABLE_IN_2_50
|
||||||
|
GLogWriterOutput g_log_writer_default (GLogLevelFlags log_level,
|
||||||
|
const GLogField *fields,
|
||||||
|
gsize n_fields,
|
||||||
|
gpointer user_data);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* G_DEBUG_HERE:
|
||||||
|
*
|
||||||
|
* A convenience form of g_log_structured(), recommended to be added to
|
||||||
|
* functions when debugging. It prints the current monotonic time and the code
|
||||||
|
* location using %G_STRLOC.
|
||||||
|
*
|
||||||
|
* Since: 2.50
|
||||||
|
*/
|
||||||
|
#define G_DEBUG_HERE() \
|
||||||
|
g_log_structured (G_LOG_DOMAIN, G_LOG_LEVEL_DEBUG, \
|
||||||
|
"CODE_FILE", __FILE__, \
|
||||||
|
"CODE_LINE", G_STRINGIFY (__LINE__), \
|
||||||
|
"CODE_FUNC", G_STRFUNC, \
|
||||||
|
"MESSAGE", "%" G_GINT64_FORMAT ": %s", \
|
||||||
|
g_get_monotonic_time (), G_STRLOC)
|
||||||
|
|
||||||
|
/* internal */
|
||||||
|
void _g_log_fallback_handler (const gchar *log_domain,
|
||||||
|
GLogLevelFlags log_level,
|
||||||
|
const gchar *message,
|
||||||
|
gpointer unused_data);
|
||||||
|
|
||||||
|
/* Internal functions, used to implement the following macros */
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_return_if_fail_warning (const char *log_domain,
|
||||||
|
const char *pretty_function,
|
||||||
|
const char *expression) G_ANALYZER_NORETURN;
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_warn_message (const char *domain,
|
||||||
|
const char *file,
|
||||||
|
int line,
|
||||||
|
const char *func,
|
||||||
|
const char *warnexpr) G_ANALYZER_NORETURN;
|
||||||
|
GLIB_DEPRECATED
|
||||||
|
void g_assert_warning (const char *log_domain,
|
||||||
|
const char *file,
|
||||||
|
const int line,
|
||||||
|
const char *pretty_function,
|
||||||
|
const char *expression) G_GNUC_NORETURN;
|
||||||
|
|
||||||
|
|
||||||
|
#ifndef G_LOG_DOMAIN
|
||||||
|
#define G_LOG_DOMAIN ((gchar*) 0)
|
||||||
|
#endif /* G_LOG_DOMAIN */
|
||||||
|
|
||||||
|
#if defined(G_HAVE_ISO_VARARGS) && !G_ANALYZER_ANALYZING
|
||||||
|
#ifdef G_LOG_USE_STRUCTURED
|
||||||
|
#define g_error(...) G_STMT_START { \
|
||||||
|
g_log_structured (G_LOG_DOMAIN, G_LOG_LEVEL_ERROR, \
|
||||||
|
"CODE_FILE", __FILE__, \
|
||||||
|
"CODE_LINE", G_STRINGIFY (__LINE__), \
|
||||||
|
"CODE_FUNC", G_STRFUNC, \
|
||||||
|
"MESSAGE", __VA_ARGS__); \
|
||||||
|
for (;;) ; \
|
||||||
|
} G_STMT_END
|
||||||
|
#define g_message(...) g_log_structured (G_LOG_DOMAIN, G_LOG_LEVEL_MESSAGE, \
|
||||||
|
"CODE_FILE", __FILE__, \
|
||||||
|
"CODE_LINE", G_STRINGIFY (__LINE__), \
|
||||||
|
"CODE_FUNC", G_STRFUNC, \
|
||||||
|
"MESSAGE", __VA_ARGS__)
|
||||||
|
#define g_critical(...) g_log_structured (G_LOG_DOMAIN, G_LOG_LEVEL_CRITICAL, \
|
||||||
|
"CODE_FILE", __FILE__, \
|
||||||
|
"CODE_LINE", G_STRINGIFY (__LINE__), \
|
||||||
|
"CODE_FUNC", G_STRFUNC, \
|
||||||
|
"MESSAGE", __VA_ARGS__)
|
||||||
|
#define g_warning(...) g_log_structured (G_LOG_DOMAIN, G_LOG_LEVEL_WARNING, \
|
||||||
|
"CODE_FILE", __FILE__, \
|
||||||
|
"CODE_LINE", G_STRINGIFY (__LINE__), \
|
||||||
|
"CODE_FUNC", G_STRFUNC, \
|
||||||
|
"MESSAGE", __VA_ARGS__)
|
||||||
|
#define g_info(...) g_log_structured (G_LOG_DOMAIN, G_LOG_LEVEL_INFO, \
|
||||||
|
"CODE_FILE", __FILE__, \
|
||||||
|
"CODE_LINE", G_STRINGIFY (__LINE__), \
|
||||||
|
"CODE_FUNC", G_STRFUNC, \
|
||||||
|
"MESSAGE", __VA_ARGS__)
|
||||||
|
#define g_debug(...) g_log_structured (G_LOG_DOMAIN, G_LOG_LEVEL_DEBUG, \
|
||||||
|
"CODE_FILE", __FILE__, \
|
||||||
|
"CODE_LINE", G_STRINGIFY (__LINE__), \
|
||||||
|
"CODE_FUNC", G_STRFUNC, \
|
||||||
|
"MESSAGE", __VA_ARGS__)
|
||||||
|
#else
|
||||||
|
/* for(;;) ; so that GCC knows that control doesn't go past g_error().
|
||||||
|
* Put space before ending semicolon to avoid C++ build warnings.
|
||||||
|
*/
|
||||||
|
#define g_error(...) G_STMT_START { \
|
||||||
|
g_log (G_LOG_DOMAIN, \
|
||||||
|
G_LOG_LEVEL_ERROR, \
|
||||||
|
__VA_ARGS__); \
|
||||||
|
for (;;) ; \
|
||||||
|
} G_STMT_END
|
||||||
|
#define g_message(...) g_log (G_LOG_DOMAIN, \
|
||||||
|
G_LOG_LEVEL_MESSAGE, \
|
||||||
|
__VA_ARGS__)
|
||||||
|
#define g_critical(...) g_log (G_LOG_DOMAIN, \
|
||||||
|
G_LOG_LEVEL_CRITICAL, \
|
||||||
|
__VA_ARGS__)
|
||||||
|
#define g_warning(...) g_log (G_LOG_DOMAIN, \
|
||||||
|
G_LOG_LEVEL_WARNING, \
|
||||||
|
__VA_ARGS__)
|
||||||
|
#define g_info(...) g_log (G_LOG_DOMAIN, \
|
||||||
|
G_LOG_LEVEL_INFO, \
|
||||||
|
__VA_ARGS__)
|
||||||
|
#define g_debug(...) g_log (G_LOG_DOMAIN, \
|
||||||
|
G_LOG_LEVEL_DEBUG, \
|
||||||
|
__VA_ARGS__)
|
||||||
|
#endif
|
||||||
|
#elif defined(G_HAVE_GNUC_VARARGS) && !G_ANALYZER_ANALYZING
|
||||||
|
#ifdef G_LOG_USE_STRUCTURED
|
||||||
|
#define g_error(format...) G_STMT_START { \
|
||||||
|
g_log_structured (G_LOG_DOMAIN, G_LOG_LEVEL_ERROR, \
|
||||||
|
"CODE_FILE", __FILE__, \
|
||||||
|
"CODE_LINE", G_STRINGIFY (__LINE__), \
|
||||||
|
"CODE_FUNC", G_STRFUNC, \
|
||||||
|
"MESSAGE", format); \
|
||||||
|
for (;;) ; \
|
||||||
|
} G_STMT_END
|
||||||
|
#define g_message(format...) g_log_structured (G_LOG_DOMAIN, G_LOG_LEVEL_MESSAGE, \
|
||||||
|
"CODE_FILE", __FILE__, \
|
||||||
|
"CODE_LINE", G_STRINGIFY (__LINE__), \
|
||||||
|
"CODE_FUNC", G_STRFUNC, \
|
||||||
|
"MESSAGE", format)
|
||||||
|
#define g_critical(format...) g_log_structured (G_LOG_DOMAIN, G_LOG_LEVEL_CRITICAL, \
|
||||||
|
"CODE_FILE", __FILE__, \
|
||||||
|
"CODE_LINE", G_STRINGIFY (__LINE__), \
|
||||||
|
"CODE_FUNC", G_STRFUNC, \
|
||||||
|
"MESSAGE", format)
|
||||||
|
#define g_warning(format...) g_log_structured (G_LOG_DOMAIN, G_LOG_LEVEL_WARNING, \
|
||||||
|
"CODE_FILE", __FILE__, \
|
||||||
|
"CODE_LINE", G_STRINGIFY (__LINE__), \
|
||||||
|
"CODE_FUNC", G_STRFUNC, \
|
||||||
|
"MESSAGE", format)
|
||||||
|
#define g_info(format...) g_log_structured (G_LOG_DOMAIN, G_LOG_LEVEL_INFO, \
|
||||||
|
"CODE_FILE", __FILE__, \
|
||||||
|
"CODE_LINE", G_STRINGIFY (__LINE__), \
|
||||||
|
"CODE_FUNC", G_STRFUNC, \
|
||||||
|
"MESSAGE", format)
|
||||||
|
#define g_debug(format...) g_log_structured (G_LOG_DOMAIN, G_LOG_LEVEL_DEBUG, \
|
||||||
|
"CODE_FILE", __FILE__, \
|
||||||
|
"CODE_LINE", G_STRINGIFY (__LINE__), \
|
||||||
|
"CODE_FUNC", G_STRFUNC, \
|
||||||
|
"MESSAGE", format)
|
||||||
|
#else
|
||||||
|
#define g_error(format...) G_STMT_START { \
|
||||||
|
g_log (G_LOG_DOMAIN, \
|
||||||
|
G_LOG_LEVEL_ERROR, \
|
||||||
|
format); \
|
||||||
|
for (;;) ; \
|
||||||
|
} G_STMT_END
|
||||||
|
|
||||||
|
#define g_message(format...) g_log (G_LOG_DOMAIN, \
|
||||||
|
G_LOG_LEVEL_MESSAGE, \
|
||||||
|
format)
|
||||||
|
#define g_critical(format...) g_log (G_LOG_DOMAIN, \
|
||||||
|
G_LOG_LEVEL_CRITICAL, \
|
||||||
|
format)
|
||||||
|
#define g_warning(format...) g_log (G_LOG_DOMAIN, \
|
||||||
|
G_LOG_LEVEL_WARNING, \
|
||||||
|
format)
|
||||||
|
#define g_info(format...) g_log (G_LOG_DOMAIN, \
|
||||||
|
G_LOG_LEVEL_INFO, \
|
||||||
|
format)
|
||||||
|
#define g_debug(format...) g_log (G_LOG_DOMAIN, \
|
||||||
|
G_LOG_LEVEL_DEBUG, \
|
||||||
|
format)
|
||||||
|
#endif
|
||||||
|
#else /* no varargs macros */
|
||||||
|
static void g_error (const gchar *format, ...) G_GNUC_NORETURN G_ANALYZER_NORETURN;
|
||||||
|
static void g_critical (const gchar *format, ...) G_ANALYZER_NORETURN;
|
||||||
|
|
||||||
|
static void
|
||||||
|
g_error (const gchar *format,
|
||||||
|
...)
|
||||||
|
{
|
||||||
|
va_list args;
|
||||||
|
va_start (args, format);
|
||||||
|
g_logv (G_LOG_DOMAIN, G_LOG_LEVEL_ERROR, format, args);
|
||||||
|
va_end (args);
|
||||||
|
|
||||||
|
for(;;) ;
|
||||||
|
}
|
||||||
|
static void
|
||||||
|
g_message (const gchar *format,
|
||||||
|
...)
|
||||||
|
{
|
||||||
|
va_list args;
|
||||||
|
va_start (args, format);
|
||||||
|
g_logv (G_LOG_DOMAIN, G_LOG_LEVEL_MESSAGE, format, args);
|
||||||
|
va_end (args);
|
||||||
|
}
|
||||||
|
static void
|
||||||
|
g_critical (const gchar *format,
|
||||||
|
...)
|
||||||
|
{
|
||||||
|
va_list args;
|
||||||
|
va_start (args, format);
|
||||||
|
g_logv (G_LOG_DOMAIN, G_LOG_LEVEL_CRITICAL, format, args);
|
||||||
|
va_end (args);
|
||||||
|
}
|
||||||
|
static void
|
||||||
|
g_warning (const gchar *format,
|
||||||
|
...)
|
||||||
|
{
|
||||||
|
va_list args;
|
||||||
|
va_start (args, format);
|
||||||
|
g_logv (G_LOG_DOMAIN, G_LOG_LEVEL_WARNING, format, args);
|
||||||
|
va_end (args);
|
||||||
|
}
|
||||||
|
static void
|
||||||
|
g_info (const gchar *format,
|
||||||
|
...)
|
||||||
|
{
|
||||||
|
va_list args;
|
||||||
|
va_start (args, format);
|
||||||
|
g_logv (G_LOG_DOMAIN, G_LOG_LEVEL_INFO, format, args);
|
||||||
|
va_end (args);
|
||||||
|
}
|
||||||
|
static void
|
||||||
|
g_debug (const gchar *format,
|
||||||
|
...)
|
||||||
|
{
|
||||||
|
va_list args;
|
||||||
|
va_start (args, format);
|
||||||
|
g_logv (G_LOG_DOMAIN, G_LOG_LEVEL_DEBUG, format, args);
|
||||||
|
va_end (args);
|
||||||
|
}
|
||||||
|
#endif /* !__GNUC__ */
|
||||||
|
|
||||||
|
/**
|
||||||
|
* GPrintFunc:
|
||||||
|
* @string: the message to output
|
||||||
|
*
|
||||||
|
* Specifies the type of the print handler functions.
|
||||||
|
* These are called with the complete formatted string to output.
|
||||||
|
*/
|
||||||
|
typedef void (*GPrintFunc) (const gchar *string);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_print (const gchar *format,
|
||||||
|
...) G_GNUC_PRINTF (1, 2);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GPrintFunc g_set_print_handler (GPrintFunc func);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_printerr (const gchar *format,
|
||||||
|
...) G_GNUC_PRINTF (1, 2);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GPrintFunc g_set_printerr_handler (GPrintFunc func);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* g_warn_if_reached:
|
||||||
|
*
|
||||||
|
* Logs a warning.
|
||||||
|
*
|
||||||
|
* Since: 2.16
|
||||||
|
*/
|
||||||
|
#define g_warn_if_reached() \
|
||||||
|
do { \
|
||||||
|
g_warn_message (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, NULL); \
|
||||||
|
} while (0)
|
||||||
|
|
||||||
|
/**
|
||||||
|
* g_warn_if_fail:
|
||||||
|
* @expr: the expression to check
|
||||||
|
*
|
||||||
|
* Logs a warning if the expression is not true.
|
||||||
|
*
|
||||||
|
* Since: 2.16
|
||||||
|
*/
|
||||||
|
#define g_warn_if_fail(expr) \
|
||||||
|
do { \
|
||||||
|
if G_LIKELY (expr) ; \
|
||||||
|
else g_warn_message (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, #expr); \
|
||||||
|
} while (0)
|
||||||
|
|
||||||
|
#ifdef G_DISABLE_CHECKS
|
||||||
|
|
||||||
|
/**
|
||||||
|
* g_return_if_fail:
|
||||||
|
* @expr: the expression to check
|
||||||
|
*
|
||||||
|
* Verifies that the expression @expr, usually representing a precondition,
|
||||||
|
* evaluates to %TRUE. If the function returns a value, use
|
||||||
|
* g_return_val_if_fail() instead.
|
||||||
|
*
|
||||||
|
* If @expr evaluates to %FALSE, the current function should be considered to
|
||||||
|
* have undefined behaviour (a programmer error). The only correct solution
|
||||||
|
* to such an error is to change the module that is calling the current
|
||||||
|
* function, so that it avoids this incorrect call.
|
||||||
|
*
|
||||||
|
* To make this undefined behaviour visible, if @expr evaluates to %FALSE,
|
||||||
|
* the result is usually that a critical message is logged and the current
|
||||||
|
* function returns.
|
||||||
|
*
|
||||||
|
* If G_DISABLE_CHECKS is defined then the check is not performed. You
|
||||||
|
* should therefore not depend on any side effects of @expr.
|
||||||
|
*/
|
||||||
|
#define g_return_if_fail(expr) G_STMT_START{ (void)0; }G_STMT_END
|
||||||
|
|
||||||
|
/**
|
||||||
|
* g_return_val_if_fail:
|
||||||
|
* @expr: the expression to check
|
||||||
|
* @val: the value to return from the current function
|
||||||
|
* if the expression is not true
|
||||||
|
*
|
||||||
|
* Verifies that the expression @expr, usually representing a precondition,
|
||||||
|
* evaluates to %TRUE. If the function does not return a value, use
|
||||||
|
* g_return_if_fail() instead.
|
||||||
|
*
|
||||||
|
* If @expr evaluates to %FALSE, the current function should be considered to
|
||||||
|
* have undefined behaviour (a programmer error). The only correct solution
|
||||||
|
* to such an error is to change the module that is calling the current
|
||||||
|
* function, so that it avoids this incorrect call.
|
||||||
|
*
|
||||||
|
* To make this undefined behaviour visible, if @expr evaluates to %FALSE,
|
||||||
|
* the result is usually that a critical message is logged and @val is
|
||||||
|
* returned from the current function.
|
||||||
|
*
|
||||||
|
* If G_DISABLE_CHECKS is defined then the check is not performed. You
|
||||||
|
* should therefore not depend on any side effects of @expr.
|
||||||
|
*/
|
||||||
|
#define g_return_val_if_fail(expr,val) G_STMT_START{ (void)0; }G_STMT_END
|
||||||
|
|
||||||
|
/**
|
||||||
|
* g_return_if_reached:
|
||||||
|
*
|
||||||
|
* Logs a critical message and returns from the current function.
|
||||||
|
* This can only be used in functions which do not return a value.
|
||||||
|
*/
|
||||||
|
#define g_return_if_reached() G_STMT_START{ return; }G_STMT_END
|
||||||
|
|
||||||
|
/**
|
||||||
|
* g_return_val_if_reached:
|
||||||
|
* @val: the value to return from the current function
|
||||||
|
*
|
||||||
|
* Logs a critical message and returns @val.
|
||||||
|
*/
|
||||||
|
#define g_return_val_if_reached(val) G_STMT_START{ return (val); }G_STMT_END
|
||||||
|
|
||||||
|
#else /* !G_DISABLE_CHECKS */
|
||||||
|
|
||||||
|
#define g_return_if_fail(expr) G_STMT_START{ \
|
||||||
|
if G_LIKELY(expr) { } else \
|
||||||
|
{ \
|
||||||
|
g_return_if_fail_warning (G_LOG_DOMAIN, \
|
||||||
|
G_STRFUNC, \
|
||||||
|
#expr); \
|
||||||
|
return; \
|
||||||
|
}; }G_STMT_END
|
||||||
|
|
||||||
|
#define g_return_val_if_fail(expr,val) G_STMT_START{ \
|
||||||
|
if G_LIKELY(expr) { } else \
|
||||||
|
{ \
|
||||||
|
g_return_if_fail_warning (G_LOG_DOMAIN, \
|
||||||
|
G_STRFUNC, \
|
||||||
|
#expr); \
|
||||||
|
return (val); \
|
||||||
|
}; }G_STMT_END
|
||||||
|
|
||||||
|
#define g_return_if_reached() G_STMT_START{ \
|
||||||
|
g_log (G_LOG_DOMAIN, \
|
||||||
|
G_LOG_LEVEL_CRITICAL, \
|
||||||
|
"file %s: line %d (%s): should not be reached", \
|
||||||
|
__FILE__, \
|
||||||
|
__LINE__, \
|
||||||
|
G_STRFUNC); \
|
||||||
|
return; }G_STMT_END
|
||||||
|
|
||||||
|
#define g_return_val_if_reached(val) G_STMT_START{ \
|
||||||
|
g_log (G_LOG_DOMAIN, \
|
||||||
|
G_LOG_LEVEL_CRITICAL, \
|
||||||
|
"file %s: line %d (%s): should not be reached", \
|
||||||
|
__FILE__, \
|
||||||
|
__LINE__, \
|
||||||
|
G_STRFUNC); \
|
||||||
|
return (val); }G_STMT_END
|
||||||
|
|
||||||
|
#endif /* !G_DISABLE_CHECKS */
|
||||||
|
|
||||||
|
G_END_DECLS
|
||||||
|
|
||||||
|
#endif /* __G_MESSAGES_H__ */
|
322
code/application/source/sf_app/code/source/sf_blue/inc/glib/glib/gnode.h
Executable file
322
code/application/source/sf_app/code/source/sf_blue/inc/glib/glib/gnode.h
Executable file
|
@ -0,0 +1,322 @@
|
||||||
|
/* GLIB - Library of useful routines for C programming
|
||||||
|
* Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald
|
||||||
|
*
|
||||||
|
* This library 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 of the License, or (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This library 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 this library; if not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Modified by the GLib Team and others 1997-2000. See the AUTHORS
|
||||||
|
* file for a list of people on the GLib Team. See the ChangeLog
|
||||||
|
* files for a list of changes. These files are distributed with
|
||||||
|
* GLib at ftp://ftp.gtk.org/pub/gtk/.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef __G_NODE_H__
|
||||||
|
#define __G_NODE_H__
|
||||||
|
|
||||||
|
#if !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION)
|
||||||
|
#error "Only <glib.h> can be included directly."
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include <glib/gmem.h>
|
||||||
|
|
||||||
|
G_BEGIN_DECLS
|
||||||
|
|
||||||
|
typedef struct _GNode GNode;
|
||||||
|
|
||||||
|
/* Tree traverse flags */
|
||||||
|
typedef enum
|
||||||
|
{
|
||||||
|
G_TRAVERSE_LEAVES = 1 << 0,
|
||||||
|
G_TRAVERSE_NON_LEAVES = 1 << 1,
|
||||||
|
G_TRAVERSE_ALL = G_TRAVERSE_LEAVES | G_TRAVERSE_NON_LEAVES,
|
||||||
|
G_TRAVERSE_MASK = 0x03,
|
||||||
|
G_TRAVERSE_LEAFS = G_TRAVERSE_LEAVES,
|
||||||
|
G_TRAVERSE_NON_LEAFS = G_TRAVERSE_NON_LEAVES
|
||||||
|
} GTraverseFlags;
|
||||||
|
|
||||||
|
/* Tree traverse orders */
|
||||||
|
typedef enum
|
||||||
|
{
|
||||||
|
G_IN_ORDER,
|
||||||
|
G_PRE_ORDER,
|
||||||
|
G_POST_ORDER,
|
||||||
|
G_LEVEL_ORDER
|
||||||
|
} GTraverseType;
|
||||||
|
|
||||||
|
typedef gboolean (*GNodeTraverseFunc) (GNode *node,
|
||||||
|
gpointer data);
|
||||||
|
typedef void (*GNodeForeachFunc) (GNode *node,
|
||||||
|
gpointer data);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* GCopyFunc:
|
||||||
|
* @src: (not nullable): A pointer to the data which should be copied
|
||||||
|
* @data: Additional data
|
||||||
|
*
|
||||||
|
* A function of this signature is used to copy the node data
|
||||||
|
* when doing a deep-copy of a tree.
|
||||||
|
*
|
||||||
|
* Returns: (not nullable): A pointer to the copy
|
||||||
|
*
|
||||||
|
* Since: 2.4
|
||||||
|
*/
|
||||||
|
typedef gpointer (*GCopyFunc) (gconstpointer src,
|
||||||
|
gpointer data);
|
||||||
|
|
||||||
|
/* N-way tree implementation
|
||||||
|
*/
|
||||||
|
struct _GNode
|
||||||
|
{
|
||||||
|
gpointer data;
|
||||||
|
GNode *next;
|
||||||
|
GNode *prev;
|
||||||
|
GNode *parent;
|
||||||
|
GNode *children;
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* G_NODE_IS_ROOT:
|
||||||
|
* @node: a #GNode
|
||||||
|
*
|
||||||
|
* Returns %TRUE if a #GNode is the root of a tree.
|
||||||
|
*
|
||||||
|
* Returns: %TRUE if the #GNode is the root of a tree
|
||||||
|
* (i.e. it has no parent or siblings)
|
||||||
|
*/
|
||||||
|
#define G_NODE_IS_ROOT(node) (((GNode*) (node))->parent == NULL && \
|
||||||
|
((GNode*) (node))->prev == NULL && \
|
||||||
|
((GNode*) (node))->next == NULL)
|
||||||
|
|
||||||
|
/**
|
||||||
|
* G_NODE_IS_LEAF:
|
||||||
|
* @node: a #GNode
|
||||||
|
*
|
||||||
|
* Returns %TRUE if a #GNode is a leaf node.
|
||||||
|
*
|
||||||
|
* Returns: %TRUE if the #GNode is a leaf node
|
||||||
|
* (i.e. it has no children)
|
||||||
|
*/
|
||||||
|
#define G_NODE_IS_LEAF(node) (((GNode*) (node))->children == NULL)
|
||||||
|
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GNode* g_node_new (gpointer data);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_node_destroy (GNode *root);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_node_unlink (GNode *node);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GNode* g_node_copy_deep (GNode *node,
|
||||||
|
GCopyFunc copy_func,
|
||||||
|
gpointer data);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GNode* g_node_copy (GNode *node);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GNode* g_node_insert (GNode *parent,
|
||||||
|
gint position,
|
||||||
|
GNode *node);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GNode* g_node_insert_before (GNode *parent,
|
||||||
|
GNode *sibling,
|
||||||
|
GNode *node);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GNode* g_node_insert_after (GNode *parent,
|
||||||
|
GNode *sibling,
|
||||||
|
GNode *node);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GNode* g_node_prepend (GNode *parent,
|
||||||
|
GNode *node);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
guint g_node_n_nodes (GNode *root,
|
||||||
|
GTraverseFlags flags);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GNode* g_node_get_root (GNode *node);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gboolean g_node_is_ancestor (GNode *node,
|
||||||
|
GNode *descendant);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
guint g_node_depth (GNode *node);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GNode* g_node_find (GNode *root,
|
||||||
|
GTraverseType order,
|
||||||
|
GTraverseFlags flags,
|
||||||
|
gpointer data);
|
||||||
|
|
||||||
|
/* convenience macros */
|
||||||
|
/**
|
||||||
|
* g_node_append:
|
||||||
|
* @parent: the #GNode to place the new #GNode under
|
||||||
|
* @node: the #GNode to insert
|
||||||
|
*
|
||||||
|
* Inserts a #GNode as the last child of the given parent.
|
||||||
|
*
|
||||||
|
* Returns: the inserted #GNode
|
||||||
|
*/
|
||||||
|
#define g_node_append(parent, node) \
|
||||||
|
g_node_insert_before ((parent), NULL, (node))
|
||||||
|
|
||||||
|
/**
|
||||||
|
* g_node_insert_data:
|
||||||
|
* @parent: the #GNode to place the new #GNode under
|
||||||
|
* @position: the position to place the new #GNode at. If position is -1,
|
||||||
|
* the new #GNode is inserted as the last child of @parent
|
||||||
|
* @data: the data for the new #GNode
|
||||||
|
*
|
||||||
|
* Inserts a new #GNode at the given position.
|
||||||
|
*
|
||||||
|
* Returns: the new #GNode
|
||||||
|
*/
|
||||||
|
#define g_node_insert_data(parent, position, data) \
|
||||||
|
g_node_insert ((parent), (position), g_node_new (data))
|
||||||
|
|
||||||
|
/**
|
||||||
|
* g_node_insert_data_after:
|
||||||
|
* @parent: the #GNode to place the new #GNode under
|
||||||
|
* @sibling: the sibling #GNode to place the new #GNode after
|
||||||
|
* @data: the data for the new #GNode
|
||||||
|
*
|
||||||
|
* Inserts a new #GNode after the given sibling.
|
||||||
|
*
|
||||||
|
* Returns: the new #GNode
|
||||||
|
*/
|
||||||
|
|
||||||
|
#define g_node_insert_data_after(parent, sibling, data) \
|
||||||
|
g_node_insert_after ((parent), (sibling), g_node_new (data))
|
||||||
|
/**
|
||||||
|
* g_node_insert_data_before:
|
||||||
|
* @parent: the #GNode to place the new #GNode under
|
||||||
|
* @sibling: the sibling #GNode to place the new #GNode before
|
||||||
|
* @data: the data for the new #GNode
|
||||||
|
*
|
||||||
|
* Inserts a new #GNode before the given sibling.
|
||||||
|
*
|
||||||
|
* Returns: the new #GNode
|
||||||
|
*/
|
||||||
|
#define g_node_insert_data_before(parent, sibling, data) \
|
||||||
|
g_node_insert_before ((parent), (sibling), g_node_new (data))
|
||||||
|
|
||||||
|
/**
|
||||||
|
* g_node_prepend_data:
|
||||||
|
* @parent: the #GNode to place the new #GNode under
|
||||||
|
* @data: the data for the new #GNode
|
||||||
|
*
|
||||||
|
* Inserts a new #GNode as the first child of the given parent.
|
||||||
|
*
|
||||||
|
* Returns: the new #GNode
|
||||||
|
*/
|
||||||
|
#define g_node_prepend_data(parent, data) \
|
||||||
|
g_node_prepend ((parent), g_node_new (data))
|
||||||
|
|
||||||
|
/**
|
||||||
|
* g_node_append_data:
|
||||||
|
* @parent: the #GNode to place the new #GNode under
|
||||||
|
* @data: the data for the new #GNode
|
||||||
|
*
|
||||||
|
* Inserts a new #GNode as the last child of the given parent.
|
||||||
|
*
|
||||||
|
* Returns: the new #GNode
|
||||||
|
*/
|
||||||
|
#define g_node_append_data(parent, data) \
|
||||||
|
g_node_insert_before ((parent), NULL, g_node_new (data))
|
||||||
|
|
||||||
|
/* traversal function, assumes that 'node' is root
|
||||||
|
* (only traverses 'node' and its subtree).
|
||||||
|
* this function is just a high level interface to
|
||||||
|
* low level traversal functions, optimized for speed.
|
||||||
|
*/
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_node_traverse (GNode *root,
|
||||||
|
GTraverseType order,
|
||||||
|
GTraverseFlags flags,
|
||||||
|
gint max_depth,
|
||||||
|
GNodeTraverseFunc func,
|
||||||
|
gpointer data);
|
||||||
|
|
||||||
|
/* return the maximum tree height starting with 'node', this is an expensive
|
||||||
|
* operation, since we need to visit all nodes. this could be shortened by
|
||||||
|
* adding 'guint height' to struct _GNode, but then again, this is not very
|
||||||
|
* often needed, and would make g_node_insert() more time consuming.
|
||||||
|
*/
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
guint g_node_max_height (GNode *root);
|
||||||
|
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_node_children_foreach (GNode *node,
|
||||||
|
GTraverseFlags flags,
|
||||||
|
GNodeForeachFunc func,
|
||||||
|
gpointer data);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_node_reverse_children (GNode *node);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
guint g_node_n_children (GNode *node);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GNode* g_node_nth_child (GNode *node,
|
||||||
|
guint n);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GNode* g_node_last_child (GNode *node);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GNode* g_node_find_child (GNode *node,
|
||||||
|
GTraverseFlags flags,
|
||||||
|
gpointer data);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gint g_node_child_position (GNode *node,
|
||||||
|
GNode *child);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gint g_node_child_index (GNode *node,
|
||||||
|
gpointer data);
|
||||||
|
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GNode* g_node_first_sibling (GNode *node);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GNode* g_node_last_sibling (GNode *node);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* g_node_prev_sibling:
|
||||||
|
* @node: a #GNode
|
||||||
|
*
|
||||||
|
* Gets the previous sibling of a #GNode.
|
||||||
|
*
|
||||||
|
* Returns: the previous sibling of @node, or %NULL if @node is the first
|
||||||
|
* node or %NULL
|
||||||
|
*/
|
||||||
|
#define g_node_prev_sibling(node) ((node) ? \
|
||||||
|
((GNode*) (node))->prev : NULL)
|
||||||
|
|
||||||
|
/**
|
||||||
|
* g_node_next_sibling:
|
||||||
|
* @node: a #GNode
|
||||||
|
*
|
||||||
|
* Gets the next sibling of a #GNode.
|
||||||
|
*
|
||||||
|
* Returns: the next sibling of @node, or %NULL if @node is the last node
|
||||||
|
* or %NULL
|
||||||
|
*/
|
||||||
|
#define g_node_next_sibling(node) ((node) ? \
|
||||||
|
((GNode*) (node))->next : NULL)
|
||||||
|
|
||||||
|
/**
|
||||||
|
* g_node_first_child:
|
||||||
|
* @node: a #GNode
|
||||||
|
*
|
||||||
|
* Gets the first child of a #GNode.
|
||||||
|
*
|
||||||
|
* Returns: the first child of @node, or %NULL if @node is %NULL
|
||||||
|
* or has no children
|
||||||
|
*/
|
||||||
|
#define g_node_first_child(node) ((node) ? \
|
||||||
|
((GNode*) (node))->children : NULL)
|
||||||
|
|
||||||
|
G_END_DECLS
|
||||||
|
|
||||||
|
#endif /* __G_NODE_H__ */
|
387
code/application/source/sf_app/code/source/sf_blue/inc/glib/glib/goption.h
Executable file
387
code/application/source/sf_app/code/source/sf_blue/inc/glib/glib/goption.h
Executable file
|
@ -0,0 +1,387 @@
|
||||||
|
/* goption.h - Option parser
|
||||||
|
*
|
||||||
|
* Copyright (C) 2004 Anders Carlsson <andersca@gnome.org>
|
||||||
|
*
|
||||||
|
* This library is free software; you can redistribute it and/or
|
||||||
|
* modify it under the terms of the GNU Library General Public
|
||||||
|
* License as published by the Free Software Foundation; either
|
||||||
|
* version 2 of the License, or (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This library 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
|
||||||
|
* Library General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU Library General Public
|
||||||
|
* License along with this library; if not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef __G_OPTION_H__
|
||||||
|
#define __G_OPTION_H__
|
||||||
|
|
||||||
|
#if !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION)
|
||||||
|
#error "Only <glib.h> can be included directly."
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include <glib/gerror.h>
|
||||||
|
#include <glib/gquark.h>
|
||||||
|
|
||||||
|
G_BEGIN_DECLS
|
||||||
|
|
||||||
|
/**
|
||||||
|
* GOptionContext:
|
||||||
|
*
|
||||||
|
* A `GOptionContext` struct defines which options
|
||||||
|
* are accepted by the commandline option parser. The struct has only private
|
||||||
|
* fields and should not be directly accessed.
|
||||||
|
*/
|
||||||
|
typedef struct _GOptionContext GOptionContext;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* GOptionGroup:
|
||||||
|
*
|
||||||
|
* A `GOptionGroup` struct defines the options in a single
|
||||||
|
* group. The struct has only private fields and should not be directly accessed.
|
||||||
|
*
|
||||||
|
* All options in a group share the same translation function. Libraries which
|
||||||
|
* need to parse commandline options are expected to provide a function for
|
||||||
|
* getting a `GOptionGroup` holding their options, which
|
||||||
|
* the application can then add to its #GOptionContext.
|
||||||
|
*/
|
||||||
|
typedef struct _GOptionGroup GOptionGroup;
|
||||||
|
typedef struct _GOptionEntry GOptionEntry;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* GOptionFlags:
|
||||||
|
* @G_OPTION_FLAG_NONE: No flags. Since: 2.42.
|
||||||
|
* @G_OPTION_FLAG_HIDDEN: The option doesn't appear in `--help` output.
|
||||||
|
* @G_OPTION_FLAG_IN_MAIN: The option appears in the main section of the
|
||||||
|
* `--help` output, even if it is defined in a group.
|
||||||
|
* @G_OPTION_FLAG_REVERSE: For options of the %G_OPTION_ARG_NONE kind, this
|
||||||
|
* flag indicates that the sense of the option is reversed.
|
||||||
|
* @G_OPTION_FLAG_NO_ARG: For options of the %G_OPTION_ARG_CALLBACK kind,
|
||||||
|
* this flag indicates that the callback does not take any argument
|
||||||
|
* (like a %G_OPTION_ARG_NONE option). Since 2.8
|
||||||
|
* @G_OPTION_FLAG_FILENAME: For options of the %G_OPTION_ARG_CALLBACK
|
||||||
|
* kind, this flag indicates that the argument should be passed to the
|
||||||
|
* callback in the GLib filename encoding rather than UTF-8. Since 2.8
|
||||||
|
* @G_OPTION_FLAG_OPTIONAL_ARG: For options of the %G_OPTION_ARG_CALLBACK
|
||||||
|
* kind, this flag indicates that the argument supply is optional.
|
||||||
|
* If no argument is given then data of %GOptionParseFunc will be
|
||||||
|
* set to NULL. Since 2.8
|
||||||
|
* @G_OPTION_FLAG_NOALIAS: This flag turns off the automatic conflict
|
||||||
|
* resolution which prefixes long option names with `groupname-` if
|
||||||
|
* there is a conflict. This option should only be used in situations
|
||||||
|
* where aliasing is necessary to model some legacy commandline interface.
|
||||||
|
* It is not safe to use this option, unless all option groups are under
|
||||||
|
* your direct control. Since 2.8.
|
||||||
|
*
|
||||||
|
* Flags which modify individual options.
|
||||||
|
*/
|
||||||
|
typedef enum
|
||||||
|
{
|
||||||
|
G_OPTION_FLAG_NONE = 0,
|
||||||
|
G_OPTION_FLAG_HIDDEN = 1 << 0,
|
||||||
|
G_OPTION_FLAG_IN_MAIN = 1 << 1,
|
||||||
|
G_OPTION_FLAG_REVERSE = 1 << 2,
|
||||||
|
G_OPTION_FLAG_NO_ARG = 1 << 3,
|
||||||
|
G_OPTION_FLAG_FILENAME = 1 << 4,
|
||||||
|
G_OPTION_FLAG_OPTIONAL_ARG = 1 << 5,
|
||||||
|
G_OPTION_FLAG_NOALIAS = 1 << 6
|
||||||
|
} GOptionFlags;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* GOptionArg:
|
||||||
|
* @G_OPTION_ARG_NONE: No extra argument. This is useful for simple flags.
|
||||||
|
* @G_OPTION_ARG_STRING: The option takes a string argument.
|
||||||
|
* @G_OPTION_ARG_INT: The option takes an integer argument.
|
||||||
|
* @G_OPTION_ARG_CALLBACK: The option provides a callback (of type
|
||||||
|
* #GOptionArgFunc) to parse the extra argument.
|
||||||
|
* @G_OPTION_ARG_FILENAME: The option takes a filename as argument.
|
||||||
|
* @G_OPTION_ARG_STRING_ARRAY: The option takes a string argument, multiple
|
||||||
|
* uses of the option are collected into an array of strings.
|
||||||
|
* @G_OPTION_ARG_FILENAME_ARRAY: The option takes a filename as argument,
|
||||||
|
* multiple uses of the option are collected into an array of strings.
|
||||||
|
* @G_OPTION_ARG_DOUBLE: The option takes a double argument. The argument
|
||||||
|
* can be formatted either for the user's locale or for the "C" locale.
|
||||||
|
* Since 2.12
|
||||||
|
* @G_OPTION_ARG_INT64: The option takes a 64-bit integer. Like
|
||||||
|
* %G_OPTION_ARG_INT but for larger numbers. The number can be in
|
||||||
|
* decimal base, or in hexadecimal (when prefixed with `0x`, for
|
||||||
|
* example, `0xffffffff`). Since 2.12
|
||||||
|
*
|
||||||
|
* The #GOptionArg enum values determine which type of extra argument the
|
||||||
|
* options expect to find. If an option expects an extra argument, it can
|
||||||
|
* be specified in several ways; with a short option: `-x arg`, with a long
|
||||||
|
* option: `--name arg` or combined in a single argument: `--name=arg`.
|
||||||
|
*/
|
||||||
|
typedef enum
|
||||||
|
{
|
||||||
|
G_OPTION_ARG_NONE,
|
||||||
|
G_OPTION_ARG_STRING,
|
||||||
|
G_OPTION_ARG_INT,
|
||||||
|
G_OPTION_ARG_CALLBACK,
|
||||||
|
G_OPTION_ARG_FILENAME,
|
||||||
|
G_OPTION_ARG_STRING_ARRAY,
|
||||||
|
G_OPTION_ARG_FILENAME_ARRAY,
|
||||||
|
G_OPTION_ARG_DOUBLE,
|
||||||
|
G_OPTION_ARG_INT64
|
||||||
|
} GOptionArg;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* GOptionArgFunc:
|
||||||
|
* @option_name: The name of the option being parsed. This will be either a
|
||||||
|
* single dash followed by a single letter (for a short name) or two dashes
|
||||||
|
* followed by a long option name.
|
||||||
|
* @value: The value to be parsed.
|
||||||
|
* @data: User data added to the #GOptionGroup containing the option when it
|
||||||
|
* was created with g_option_group_new()
|
||||||
|
* @error: A return location for errors. The error code %G_OPTION_ERROR_FAILED
|
||||||
|
* is intended to be used for errors in #GOptionArgFunc callbacks.
|
||||||
|
*
|
||||||
|
* The type of function to be passed as callback for %G_OPTION_ARG_CALLBACK
|
||||||
|
* options.
|
||||||
|
*
|
||||||
|
* Returns: %TRUE if the option was successfully parsed, %FALSE if an error
|
||||||
|
* occurred, in which case @error should be set with g_set_error()
|
||||||
|
*/
|
||||||
|
typedef gboolean (*GOptionArgFunc) (const gchar *option_name,
|
||||||
|
const gchar *value,
|
||||||
|
gpointer data,
|
||||||
|
GError **error);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* GOptionParseFunc:
|
||||||
|
* @context: The active #GOptionContext
|
||||||
|
* @group: The group to which the function belongs
|
||||||
|
* @data: User data added to the #GOptionGroup containing the option when it
|
||||||
|
* was created with g_option_group_new()
|
||||||
|
* @error: A return location for error details
|
||||||
|
*
|
||||||
|
* The type of function that can be called before and after parsing.
|
||||||
|
*
|
||||||
|
* Returns: %TRUE if the function completed successfully, %FALSE if an error
|
||||||
|
* occurred, in which case @error should be set with g_set_error()
|
||||||
|
*/
|
||||||
|
typedef gboolean (*GOptionParseFunc) (GOptionContext *context,
|
||||||
|
GOptionGroup *group,
|
||||||
|
gpointer data,
|
||||||
|
GError **error);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* GOptionErrorFunc:
|
||||||
|
* @context: The active #GOptionContext
|
||||||
|
* @group: The group to which the function belongs
|
||||||
|
* @data: User data added to the #GOptionGroup containing the option when it
|
||||||
|
* was created with g_option_group_new()
|
||||||
|
* @error: The #GError containing details about the parse error
|
||||||
|
*
|
||||||
|
* The type of function to be used as callback when a parse error occurs.
|
||||||
|
*/
|
||||||
|
typedef void (*GOptionErrorFunc) (GOptionContext *context,
|
||||||
|
GOptionGroup *group,
|
||||||
|
gpointer data,
|
||||||
|
GError **error);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* G_OPTION_ERROR:
|
||||||
|
*
|
||||||
|
* Error domain for option parsing. Errors in this domain will
|
||||||
|
* be from the #GOptionError enumeration. See #GError for information on
|
||||||
|
* error domains.
|
||||||
|
*/
|
||||||
|
#define G_OPTION_ERROR (g_option_error_quark ())
|
||||||
|
|
||||||
|
/**
|
||||||
|
* GOptionError:
|
||||||
|
* @G_OPTION_ERROR_UNKNOWN_OPTION: An option was not known to the parser.
|
||||||
|
* This error will only be reported, if the parser hasn't been instructed
|
||||||
|
* to ignore unknown options, see g_option_context_set_ignore_unknown_options().
|
||||||
|
* @G_OPTION_ERROR_BAD_VALUE: A value couldn't be parsed.
|
||||||
|
* @G_OPTION_ERROR_FAILED: A #GOptionArgFunc callback failed.
|
||||||
|
*
|
||||||
|
* Error codes returned by option parsing.
|
||||||
|
*/
|
||||||
|
typedef enum
|
||||||
|
{
|
||||||
|
G_OPTION_ERROR_UNKNOWN_OPTION,
|
||||||
|
G_OPTION_ERROR_BAD_VALUE,
|
||||||
|
G_OPTION_ERROR_FAILED
|
||||||
|
} GOptionError;
|
||||||
|
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GQuark g_option_error_quark (void);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* GOptionEntry:
|
||||||
|
* @long_name: The long name of an option can be used to specify it
|
||||||
|
* in a commandline as `--long_name`. Every option must have a
|
||||||
|
* long name. To resolve conflicts if multiple option groups contain
|
||||||
|
* the same long name, it is also possible to specify the option as
|
||||||
|
* `--groupname-long_name`.
|
||||||
|
* @short_name: If an option has a short name, it can be specified
|
||||||
|
* `-short_name` in a commandline. @short_name must be a printable
|
||||||
|
* ASCII character different from '-', or zero if the option has no
|
||||||
|
* short name.
|
||||||
|
* @flags: Flags from #GOptionFlags
|
||||||
|
* @arg: The type of the option, as a #GOptionArg
|
||||||
|
* @arg_data: If the @arg type is %G_OPTION_ARG_CALLBACK, then @arg_data
|
||||||
|
* must point to a #GOptionArgFunc callback function, which will be
|
||||||
|
* called to handle the extra argument. Otherwise, @arg_data is a
|
||||||
|
* pointer to a location to store the value, the required type of
|
||||||
|
* the location depends on the @arg type:
|
||||||
|
* - %G_OPTION_ARG_NONE: %gboolean
|
||||||
|
* - %G_OPTION_ARG_STRING: %gchar*
|
||||||
|
* - %G_OPTION_ARG_INT: %gint
|
||||||
|
* - %G_OPTION_ARG_FILENAME: %gchar*
|
||||||
|
* - %G_OPTION_ARG_STRING_ARRAY: %gchar**
|
||||||
|
* - %G_OPTION_ARG_FILENAME_ARRAY: %gchar**
|
||||||
|
* - %G_OPTION_ARG_DOUBLE: %gdouble
|
||||||
|
* If @arg type is %G_OPTION_ARG_STRING or %G_OPTION_ARG_FILENAME,
|
||||||
|
* the location will contain a newly allocated string if the option
|
||||||
|
* was given. That string needs to be freed by the callee using g_free().
|
||||||
|
* Likewise if @arg type is %G_OPTION_ARG_STRING_ARRAY or
|
||||||
|
* %G_OPTION_ARG_FILENAME_ARRAY, the data should be freed using g_strfreev().
|
||||||
|
* @description: the description for the option in `--help`
|
||||||
|
* output. The @description is translated using the @translate_func
|
||||||
|
* of the group, see g_option_group_set_translation_domain().
|
||||||
|
* @arg_description: The placeholder to use for the extra argument parsed
|
||||||
|
* by the option in `--help` output. The @arg_description is translated
|
||||||
|
* using the @translate_func of the group, see
|
||||||
|
* g_option_group_set_translation_domain().
|
||||||
|
*
|
||||||
|
* A GOptionEntry struct defines a single option. To have an effect, they
|
||||||
|
* must be added to a #GOptionGroup with g_option_context_add_main_entries()
|
||||||
|
* or g_option_group_add_entries().
|
||||||
|
*/
|
||||||
|
struct _GOptionEntry
|
||||||
|
{
|
||||||
|
const gchar *long_name;
|
||||||
|
gchar short_name;
|
||||||
|
gint flags;
|
||||||
|
|
||||||
|
GOptionArg arg;
|
||||||
|
gpointer arg_data;
|
||||||
|
|
||||||
|
const gchar *description;
|
||||||
|
const gchar *arg_description;
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* G_OPTION_REMAINING:
|
||||||
|
*
|
||||||
|
* If a long option in the main group has this name, it is not treated as a
|
||||||
|
* regular option. Instead it collects all non-option arguments which would
|
||||||
|
* otherwise be left in `argv`. The option must be of type
|
||||||
|
* %G_OPTION_ARG_CALLBACK, %G_OPTION_ARG_STRING_ARRAY
|
||||||
|
* or %G_OPTION_ARG_FILENAME_ARRAY.
|
||||||
|
*
|
||||||
|
*
|
||||||
|
* Using #G_OPTION_REMAINING instead of simply scanning `argv`
|
||||||
|
* for leftover arguments has the advantage that GOption takes care of
|
||||||
|
* necessary encoding conversions for strings or filenames.
|
||||||
|
*
|
||||||
|
* Since: 2.6
|
||||||
|
*/
|
||||||
|
#define G_OPTION_REMAINING ""
|
||||||
|
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GOptionContext *g_option_context_new (const gchar *parameter_string);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_option_context_set_summary (GOptionContext *context,
|
||||||
|
const gchar *summary);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
const gchar * g_option_context_get_summary (GOptionContext *context);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_option_context_set_description (GOptionContext *context,
|
||||||
|
const gchar *description);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
const gchar * g_option_context_get_description (GOptionContext *context);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_option_context_free (GOptionContext *context);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_option_context_set_help_enabled (GOptionContext *context,
|
||||||
|
gboolean help_enabled);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gboolean g_option_context_get_help_enabled (GOptionContext *context);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_option_context_set_ignore_unknown_options (GOptionContext *context,
|
||||||
|
gboolean ignore_unknown);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gboolean g_option_context_get_ignore_unknown_options (GOptionContext *context);
|
||||||
|
|
||||||
|
GLIB_AVAILABLE_IN_2_44
|
||||||
|
void g_option_context_set_strict_posix (GOptionContext *context,
|
||||||
|
gboolean strict_posix);
|
||||||
|
GLIB_AVAILABLE_IN_2_44
|
||||||
|
gboolean g_option_context_get_strict_posix (GOptionContext *context);
|
||||||
|
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_option_context_add_main_entries (GOptionContext *context,
|
||||||
|
const GOptionEntry *entries,
|
||||||
|
const gchar *translation_domain);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gboolean g_option_context_parse (GOptionContext *context,
|
||||||
|
gint *argc,
|
||||||
|
gchar ***argv,
|
||||||
|
GError **error);
|
||||||
|
GLIB_AVAILABLE_IN_2_40
|
||||||
|
gboolean g_option_context_parse_strv (GOptionContext *context,
|
||||||
|
gchar ***arguments,
|
||||||
|
GError **error);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_option_context_set_translate_func (GOptionContext *context,
|
||||||
|
GTranslateFunc func,
|
||||||
|
gpointer data,
|
||||||
|
GDestroyNotify destroy_notify);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_option_context_set_translation_domain (GOptionContext *context,
|
||||||
|
const gchar *domain);
|
||||||
|
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_option_context_add_group (GOptionContext *context,
|
||||||
|
GOptionGroup *group);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_option_context_set_main_group (GOptionContext *context,
|
||||||
|
GOptionGroup *group);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GOptionGroup *g_option_context_get_main_group (GOptionContext *context);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gchar *g_option_context_get_help (GOptionContext *context,
|
||||||
|
gboolean main_help,
|
||||||
|
GOptionGroup *group);
|
||||||
|
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GOptionGroup *g_option_group_new (const gchar *name,
|
||||||
|
const gchar *description,
|
||||||
|
const gchar *help_description,
|
||||||
|
gpointer user_data,
|
||||||
|
GDestroyNotify destroy);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_option_group_set_parse_hooks (GOptionGroup *group,
|
||||||
|
GOptionParseFunc pre_parse_func,
|
||||||
|
GOptionParseFunc post_parse_func);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_option_group_set_error_hook (GOptionGroup *group,
|
||||||
|
GOptionErrorFunc error_func);
|
||||||
|
GLIB_DEPRECATED_IN_2_44
|
||||||
|
void g_option_group_free (GOptionGroup *group);
|
||||||
|
GLIB_AVAILABLE_IN_2_44
|
||||||
|
GOptionGroup *g_option_group_ref (GOptionGroup *group);
|
||||||
|
GLIB_AVAILABLE_IN_2_44
|
||||||
|
void g_option_group_unref (GOptionGroup *group);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_option_group_add_entries (GOptionGroup *group,
|
||||||
|
const GOptionEntry *entries);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_option_group_set_translate_func (GOptionGroup *group,
|
||||||
|
GTranslateFunc func,
|
||||||
|
gpointer data,
|
||||||
|
GDestroyNotify destroy_notify);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_option_group_set_translation_domain (GOptionGroup *group,
|
||||||
|
const gchar *domain);
|
||||||
|
|
||||||
|
G_END_DECLS
|
||||||
|
|
||||||
|
#endif /* __G_OPTION_H__ */
|
53
code/application/source/sf_app/code/source/sf_blue/inc/glib/glib/gpattern.h
Executable file
53
code/application/source/sf_app/code/source/sf_blue/inc/glib/glib/gpattern.h
Executable file
|
@ -0,0 +1,53 @@
|
||||||
|
/* GLIB - Library of useful routines for C programming
|
||||||
|
* Copyright (C) 1995-1997, 1999 Peter Mattis, Red Hat, Inc.
|
||||||
|
*
|
||||||
|
* This library 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 of the License, or (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This library 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 this library; if not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef __G_PATTERN_H__
|
||||||
|
#define __G_PATTERN_H__
|
||||||
|
|
||||||
|
#if !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION)
|
||||||
|
#error "Only <glib.h> can be included directly."
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include <glib/gtypes.h>
|
||||||
|
|
||||||
|
G_BEGIN_DECLS
|
||||||
|
|
||||||
|
|
||||||
|
typedef struct _GPatternSpec GPatternSpec;
|
||||||
|
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GPatternSpec* g_pattern_spec_new (const gchar *pattern);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_pattern_spec_free (GPatternSpec *pspec);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gboolean g_pattern_spec_equal (GPatternSpec *pspec1,
|
||||||
|
GPatternSpec *pspec2);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gboolean g_pattern_match (GPatternSpec *pspec,
|
||||||
|
guint string_length,
|
||||||
|
const gchar *string,
|
||||||
|
const gchar *string_reversed);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gboolean g_pattern_match_string (GPatternSpec *pspec,
|
||||||
|
const gchar *string);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gboolean g_pattern_match_simple (const gchar *pattern,
|
||||||
|
const gchar *string);
|
||||||
|
|
||||||
|
G_END_DECLS
|
||||||
|
|
||||||
|
#endif /* __G_PATTERN_H__ */
|
120
code/application/source/sf_app/code/source/sf_blue/inc/glib/glib/gpoll.h
Executable file
120
code/application/source/sf_app/code/source/sf_blue/inc/glib/glib/gpoll.h
Executable file
|
@ -0,0 +1,120 @@
|
||||||
|
/* gpoll.h - poll(2) support
|
||||||
|
* Copyright (C) 2008 Red Hat, Inc.
|
||||||
|
*
|
||||||
|
* This library is free software; you can redistribute it and/or
|
||||||
|
* modify it under the terms of the GNU Library General Public
|
||||||
|
* License as published by the Free Software Foundation; either
|
||||||
|
* version 2 of the License, or (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This library 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
|
||||||
|
* Library General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU Library General Public
|
||||||
|
* License along with this library; if not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef __G_POLL_H__
|
||||||
|
#define __G_POLL_H__
|
||||||
|
|
||||||
|
#if !defined (__GLIB_H_INSIDE__) && !defined (__G_MAIN_H__) && !defined (GLIB_COMPILATION)
|
||||||
|
#error "Only <glib.h> can be included directly."
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include <glibconfig.h>
|
||||||
|
#include <glib/gtypes.h>
|
||||||
|
|
||||||
|
G_BEGIN_DECLS
|
||||||
|
|
||||||
|
/* Any definitions using GPollFD or GPollFunc are primarily
|
||||||
|
* for Unix and not guaranteed to be the compatible on all
|
||||||
|
* operating systems on which GLib runs. Right now, the
|
||||||
|
* GLib does use these functions on Win32 as well, but interprets
|
||||||
|
* them in a fairly different way than on Unix. If you use
|
||||||
|
* these definitions, you are should be prepared to recode
|
||||||
|
* for different operating systems.
|
||||||
|
*
|
||||||
|
* Note that on systems with a working poll(2), that function is used
|
||||||
|
* in place of g_poll(). Thus g_poll() must have the same signature as
|
||||||
|
* poll(), meaning GPollFD must have the same layout as struct pollfd.
|
||||||
|
*
|
||||||
|
* On Win32, the fd in a GPollFD should be Win32 HANDLE (*not* a file
|
||||||
|
* descriptor as provided by the C runtime) that can be used by
|
||||||
|
* MsgWaitForMultipleObjects. This does *not* include file handles
|
||||||
|
* from CreateFile, SOCKETs, nor pipe handles. (But you can use
|
||||||
|
* WSAEventSelect to signal events when a SOCKET is readable).
|
||||||
|
*
|
||||||
|
* On Win32, fd can also be the special value G_WIN32_MSG_HANDLE to
|
||||||
|
* indicate polling for messages.
|
||||||
|
*
|
||||||
|
* But note that G_WIN32_MSG_HANDLE GPollFDs should not be used by GDK
|
||||||
|
* (GTK) programs, as GDK itself wants to read messages and convert them
|
||||||
|
* to GDK events.
|
||||||
|
*
|
||||||
|
* So, unless you really know what you are doing, it's best not to try
|
||||||
|
* to use the main loop polling stuff for your own needs on
|
||||||
|
* Windows.
|
||||||
|
*/
|
||||||
|
typedef struct _GPollFD GPollFD;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* GPollFunc:
|
||||||
|
* @ufds: an array of #GPollFD elements
|
||||||
|
* @nfsd: the number of elements in @ufds
|
||||||
|
* @timeout_: the maximum time to wait for an event of the file descriptors.
|
||||||
|
* A negative value indicates an infinite timeout.
|
||||||
|
*
|
||||||
|
* Specifies the type of function passed to g_main_context_set_poll_func().
|
||||||
|
* The semantics of the function should match those of the poll() system call.
|
||||||
|
*
|
||||||
|
* Returns: the number of #GPollFD elements which have events or errors
|
||||||
|
* reported, or -1 if an error occurred.
|
||||||
|
*/
|
||||||
|
typedef gint (*GPollFunc) (GPollFD *ufds,
|
||||||
|
guint nfsd,
|
||||||
|
gint timeout_);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* GPollFD:
|
||||||
|
* @fd: the file descriptor to poll (or a HANDLE on Win32)
|
||||||
|
* @events: a bitwise combination from #GIOCondition, specifying which
|
||||||
|
* events should be polled for. Typically for reading from a file
|
||||||
|
* descriptor you would use %G_IO_IN | %G_IO_HUP | %G_IO_ERR, and
|
||||||
|
* for writing you would use %G_IO_OUT | %G_IO_ERR.
|
||||||
|
* @revents: a bitwise combination of flags from #GIOCondition, returned
|
||||||
|
* from the poll() function to indicate which events occurred.
|
||||||
|
*
|
||||||
|
* Represents a file descriptor, which events to poll for, and which events
|
||||||
|
* occurred.
|
||||||
|
*/
|
||||||
|
struct _GPollFD
|
||||||
|
{
|
||||||
|
#if defined (G_OS_WIN32) && GLIB_SIZEOF_VOID_P == 8
|
||||||
|
#ifndef __GTK_DOC_IGNORE__
|
||||||
|
gint64 fd;
|
||||||
|
#endif
|
||||||
|
#else
|
||||||
|
gint fd;
|
||||||
|
#endif
|
||||||
|
gushort events;
|
||||||
|
gushort revents;
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* G_POLLFD_FORMAT:
|
||||||
|
*
|
||||||
|
* A format specifier that can be used in printf()-style format strings
|
||||||
|
* when printing the @fd member of a #GPollFD.
|
||||||
|
*/
|
||||||
|
/* defined in glibconfig.h */
|
||||||
|
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gint
|
||||||
|
g_poll (GPollFD *fds,
|
||||||
|
guint nfds,
|
||||||
|
gint timeout);
|
||||||
|
|
||||||
|
G_END_DECLS
|
||||||
|
|
||||||
|
#endif /* __G_POLL_H__ */
|
50
code/application/source/sf_app/code/source/sf_blue/inc/glib/glib/gprimes.h
Executable file
50
code/application/source/sf_app/code/source/sf_blue/inc/glib/glib/gprimes.h
Executable file
|
@ -0,0 +1,50 @@
|
||||||
|
/* GLIB - Library of useful routines for C programming
|
||||||
|
* Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald
|
||||||
|
*
|
||||||
|
* This library 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 of the License, or (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This library 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 this library; if not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Modified by the GLib Team and others 1997-2000. See the AUTHORS
|
||||||
|
* file for a list of people on the GLib Team. See the ChangeLog
|
||||||
|
* files for a list of changes. These files are distributed with
|
||||||
|
* GLib at ftp://ftp.gtk.org/pub/gtk/.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef __G_PRIMES_H__
|
||||||
|
#define __G_PRIMES_H__
|
||||||
|
|
||||||
|
#if !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION)
|
||||||
|
#error "Only <glib.h> can be included directly."
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include <glib/gtypes.h>
|
||||||
|
|
||||||
|
G_BEGIN_DECLS
|
||||||
|
|
||||||
|
/* Prime numbers.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* This function returns prime numbers spaced by approximately 1.5-2.0
|
||||||
|
* and is for use in resizing data structures which prefer
|
||||||
|
* prime-valued sizes. The closest spaced prime function returns the
|
||||||
|
* next largest prime, or the highest it knows about which is about
|
||||||
|
* MAXINT/4.
|
||||||
|
*/
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
guint g_spaced_primes_closest (guint num) G_GNUC_CONST;
|
||||||
|
|
||||||
|
G_END_DECLS
|
||||||
|
|
||||||
|
#endif /* __G_PRIMES_H__ */
|
57
code/application/source/sf_app/code/source/sf_blue/inc/glib/glib/gprintf.h
Executable file
57
code/application/source/sf_app/code/source/sf_blue/inc/glib/glib/gprintf.h
Executable file
|
@ -0,0 +1,57 @@
|
||||||
|
/* GLIB - Library of useful routines for C programming
|
||||||
|
* Copyright (C) 1995-1997, 2002 Peter Mattis, Red Hat, Inc.
|
||||||
|
*
|
||||||
|
* This library 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 of the License, or (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This library 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 this library; if not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef __G_PRINTF_H__
|
||||||
|
#define __G_PRINTF_H__
|
||||||
|
|
||||||
|
#include <glib.h>
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <stdarg.h>
|
||||||
|
|
||||||
|
G_BEGIN_DECLS
|
||||||
|
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gint g_printf (gchar const *format,
|
||||||
|
...) G_GNUC_PRINTF (1, 2);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gint g_fprintf (FILE *file,
|
||||||
|
gchar const *format,
|
||||||
|
...) G_GNUC_PRINTF (2, 3);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gint g_sprintf (gchar *string,
|
||||||
|
gchar const *format,
|
||||||
|
...) G_GNUC_PRINTF (2, 3);
|
||||||
|
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gint g_vprintf (gchar const *format,
|
||||||
|
va_list args) G_GNUC_PRINTF(1, 0);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gint g_vfprintf (FILE *file,
|
||||||
|
gchar const *format,
|
||||||
|
va_list args) G_GNUC_PRINTF(2, 0);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gint g_vsprintf (gchar *string,
|
||||||
|
gchar const *format,
|
||||||
|
va_list args) G_GNUC_PRINTF(2, 0);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gint g_vasprintf (gchar **string,
|
||||||
|
gchar const *format,
|
||||||
|
va_list args) G_GNUC_PRINTF(2, 0);
|
||||||
|
|
||||||
|
G_END_DECLS
|
||||||
|
|
||||||
|
#endif /* __G_PRINTF_H__ */
|
45
code/application/source/sf_app/code/source/sf_blue/inc/glib/glib/gqsort.h
Executable file
45
code/application/source/sf_app/code/source/sf_blue/inc/glib/glib/gqsort.h
Executable file
|
@ -0,0 +1,45 @@
|
||||||
|
/* GLIB - Library of useful routines for C programming
|
||||||
|
* Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald
|
||||||
|
*
|
||||||
|
* This library 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 of the License, or (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This library 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 this library; if not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Modified by the GLib Team and others 1997-2000. See the AUTHORS
|
||||||
|
* file for a list of people on the GLib Team. See the ChangeLog
|
||||||
|
* files for a list of changes. These files are distributed with
|
||||||
|
* GLib at ftp://ftp.gtk.org/pub/gtk/.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef __G_QSORT_H__
|
||||||
|
#define __G_QSORT_H__
|
||||||
|
|
||||||
|
#if !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION)
|
||||||
|
#error "Only <glib.h> can be included directly."
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include <glib/gtypes.h>
|
||||||
|
|
||||||
|
G_BEGIN_DECLS
|
||||||
|
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_qsort_with_data (gconstpointer pbase,
|
||||||
|
gint total_elems,
|
||||||
|
gsize size,
|
||||||
|
GCompareDataFunc compare_func,
|
||||||
|
gpointer user_data);
|
||||||
|
|
||||||
|
G_END_DECLS
|
||||||
|
|
||||||
|
#endif /* __G_QSORT_H__ */
|
68
code/application/source/sf_app/code/source/sf_blue/inc/glib/glib/gquark.h
Executable file
68
code/application/source/sf_app/code/source/sf_blue/inc/glib/glib/gquark.h
Executable file
|
@ -0,0 +1,68 @@
|
||||||
|
/* GLIB - Library of useful routines for C programming
|
||||||
|
* Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald
|
||||||
|
*
|
||||||
|
* This library 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 of the License, or (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This library 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 this library; if not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Modified by the GLib Team and others 1997-2000. See the AUTHORS
|
||||||
|
* file for a list of people on the GLib Team. See the ChangeLog
|
||||||
|
* files for a list of changes. These files are distributed with
|
||||||
|
* GLib at ftp://ftp.gtk.org/pub/gtk/.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef __G_QUARK_H__
|
||||||
|
#define __G_QUARK_H__
|
||||||
|
|
||||||
|
#if !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION)
|
||||||
|
#error "Only <glib.h> can be included directly."
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include <glib/gtypes.h>
|
||||||
|
|
||||||
|
G_BEGIN_DECLS
|
||||||
|
|
||||||
|
typedef guint32 GQuark;
|
||||||
|
|
||||||
|
/* Quarks (string<->id association)
|
||||||
|
*/
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GQuark g_quark_try_string (const gchar *string);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GQuark g_quark_from_static_string (const gchar *string);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GQuark g_quark_from_string (const gchar *string);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
const gchar * g_quark_to_string (GQuark quark) G_GNUC_CONST;
|
||||||
|
|
||||||
|
#define G_DEFINE_QUARK(QN, q_n) \
|
||||||
|
GQuark \
|
||||||
|
q_n##_quark (void) \
|
||||||
|
{ \
|
||||||
|
static GQuark q; \
|
||||||
|
\
|
||||||
|
if G_UNLIKELY (q == 0) \
|
||||||
|
q = g_quark_from_static_string (#QN); \
|
||||||
|
\
|
||||||
|
return q; \
|
||||||
|
}
|
||||||
|
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
const gchar * g_intern_string (const gchar *string);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
const gchar * g_intern_static_string (const gchar *string);
|
||||||
|
|
||||||
|
G_END_DECLS
|
||||||
|
|
||||||
|
#endif /* __G_QUARK_H__ */
|
190
code/application/source/sf_app/code/source/sf_blue/inc/glib/glib/gqueue.h
Executable file
190
code/application/source/sf_app/code/source/sf_blue/inc/glib/glib/gqueue.h
Executable file
|
@ -0,0 +1,190 @@
|
||||||
|
/* GLIB - Library of useful routines for C programming
|
||||||
|
* Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald
|
||||||
|
*
|
||||||
|
* This library 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 of the License, or (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This library 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 this library; if not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Modified by the GLib Team and others 1997-2000. See the AUTHORS
|
||||||
|
* file for a list of people on the GLib Team. See the ChangeLog
|
||||||
|
* files for a list of changes. These files are distributed with
|
||||||
|
* GLib at ftp://ftp.gtk.org/pub/gtk/.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef __G_QUEUE_H__
|
||||||
|
#define __G_QUEUE_H__
|
||||||
|
|
||||||
|
#if !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION)
|
||||||
|
#error "Only <glib.h> can be included directly."
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include <glib/glist.h>
|
||||||
|
|
||||||
|
G_BEGIN_DECLS
|
||||||
|
|
||||||
|
typedef struct _GQueue GQueue;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* GQueue:
|
||||||
|
* @head: a pointer to the first element of the queue
|
||||||
|
* @tail: a pointer to the last element of the queue
|
||||||
|
* @length: the number of elements in the queue
|
||||||
|
*
|
||||||
|
* Contains the public fields of a
|
||||||
|
* [Queue][glib-Double-ended-Queues].
|
||||||
|
*/
|
||||||
|
struct _GQueue
|
||||||
|
{
|
||||||
|
GList *head;
|
||||||
|
GList *tail;
|
||||||
|
guint length;
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* G_QUEUE_INIT:
|
||||||
|
*
|
||||||
|
* A statically-allocated #GQueue must be initialized with this
|
||||||
|
* macro before it can be used. This macro can be used to initialize
|
||||||
|
* a variable, but it cannot be assigned to a variable. In that case
|
||||||
|
* you have to use g_queue_init().
|
||||||
|
*
|
||||||
|
* |[
|
||||||
|
* GQueue my_queue = G_QUEUE_INIT;
|
||||||
|
* ]|
|
||||||
|
*
|
||||||
|
* Since: 2.14
|
||||||
|
*/
|
||||||
|
#define G_QUEUE_INIT { NULL, NULL, 0 }
|
||||||
|
|
||||||
|
/* Queues
|
||||||
|
*/
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GQueue* g_queue_new (void);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_queue_free (GQueue *queue);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_queue_free_full (GQueue *queue,
|
||||||
|
GDestroyNotify free_func);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_queue_init (GQueue *queue);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_queue_clear (GQueue *queue);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gboolean g_queue_is_empty (GQueue *queue);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
guint g_queue_get_length (GQueue *queue);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_queue_reverse (GQueue *queue);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GQueue * g_queue_copy (GQueue *queue);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_queue_foreach (GQueue *queue,
|
||||||
|
GFunc func,
|
||||||
|
gpointer user_data);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GList * g_queue_find (GQueue *queue,
|
||||||
|
gconstpointer data);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GList * g_queue_find_custom (GQueue *queue,
|
||||||
|
gconstpointer data,
|
||||||
|
GCompareFunc func);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_queue_sort (GQueue *queue,
|
||||||
|
GCompareDataFunc compare_func,
|
||||||
|
gpointer user_data);
|
||||||
|
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_queue_push_head (GQueue *queue,
|
||||||
|
gpointer data);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_queue_push_tail (GQueue *queue,
|
||||||
|
gpointer data);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_queue_push_nth (GQueue *queue,
|
||||||
|
gpointer data,
|
||||||
|
gint n);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gpointer g_queue_pop_head (GQueue *queue);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gpointer g_queue_pop_tail (GQueue *queue);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gpointer g_queue_pop_nth (GQueue *queue,
|
||||||
|
guint n);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gpointer g_queue_peek_head (GQueue *queue);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gpointer g_queue_peek_tail (GQueue *queue);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gpointer g_queue_peek_nth (GQueue *queue,
|
||||||
|
guint n);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gint g_queue_index (GQueue *queue,
|
||||||
|
gconstpointer data);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gboolean g_queue_remove (GQueue *queue,
|
||||||
|
gconstpointer data);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
guint g_queue_remove_all (GQueue *queue,
|
||||||
|
gconstpointer data);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_queue_insert_before (GQueue *queue,
|
||||||
|
GList *sibling,
|
||||||
|
gpointer data);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_queue_insert_after (GQueue *queue,
|
||||||
|
GList *sibling,
|
||||||
|
gpointer data);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_queue_insert_sorted (GQueue *queue,
|
||||||
|
gpointer data,
|
||||||
|
GCompareDataFunc func,
|
||||||
|
gpointer user_data);
|
||||||
|
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_queue_push_head_link (GQueue *queue,
|
||||||
|
GList *link_);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_queue_push_tail_link (GQueue *queue,
|
||||||
|
GList *link_);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_queue_push_nth_link (GQueue *queue,
|
||||||
|
gint n,
|
||||||
|
GList *link_);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GList* g_queue_pop_head_link (GQueue *queue);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GList* g_queue_pop_tail_link (GQueue *queue);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GList* g_queue_pop_nth_link (GQueue *queue,
|
||||||
|
guint n);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GList* g_queue_peek_head_link (GQueue *queue);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GList* g_queue_peek_tail_link (GQueue *queue);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GList* g_queue_peek_nth_link (GQueue *queue,
|
||||||
|
guint n);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gint g_queue_link_index (GQueue *queue,
|
||||||
|
GList *link_);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_queue_unlink (GQueue *queue,
|
||||||
|
GList *link_);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_queue_delete_link (GQueue *queue,
|
||||||
|
GList *link_);
|
||||||
|
|
||||||
|
G_END_DECLS
|
||||||
|
|
||||||
|
#endif /* __G_QUEUE_H__ */
|
99
code/application/source/sf_app/code/source/sf_blue/inc/glib/glib/grand.h
Executable file
99
code/application/source/sf_app/code/source/sf_blue/inc/glib/glib/grand.h
Executable file
|
@ -0,0 +1,99 @@
|
||||||
|
/* GLIB - Library of useful routines for C programming
|
||||||
|
* Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald
|
||||||
|
*
|
||||||
|
* This library 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 of the License, or (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This library 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 this library; if not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Modified by the GLib Team and others 1997-2000. See the AUTHORS
|
||||||
|
* file for a list of people on the GLib Team. See the ChangeLog
|
||||||
|
* files for a list of changes. These files are distributed with
|
||||||
|
* GLib at ftp://ftp.gtk.org/pub/gtk/.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef __G_RAND_H__
|
||||||
|
#define __G_RAND_H__
|
||||||
|
|
||||||
|
#if !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION)
|
||||||
|
#error "Only <glib.h> can be included directly."
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include <glib/gtypes.h>
|
||||||
|
|
||||||
|
G_BEGIN_DECLS
|
||||||
|
|
||||||
|
typedef struct _GRand GRand;
|
||||||
|
|
||||||
|
/* GRand - a good and fast random number generator: Mersenne Twister
|
||||||
|
* see http://www.math.sci.hiroshima-u.ac.jp/~m-mat/MT/emt.html for more info.
|
||||||
|
* The range functions return a value in the intervall [begin, end).
|
||||||
|
* int -> [0..2^32-1]
|
||||||
|
* int_range -> [begin..end-1]
|
||||||
|
* double -> [0..1)
|
||||||
|
* double_range -> [begin..end)
|
||||||
|
*/
|
||||||
|
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GRand* g_rand_new_with_seed (guint32 seed);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GRand* g_rand_new_with_seed_array (const guint32 *seed,
|
||||||
|
guint seed_length);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GRand* g_rand_new (void);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_rand_free (GRand *rand_);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GRand* g_rand_copy (GRand *rand_);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_rand_set_seed (GRand *rand_,
|
||||||
|
guint32 seed);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_rand_set_seed_array (GRand *rand_,
|
||||||
|
const guint32 *seed,
|
||||||
|
guint seed_length);
|
||||||
|
|
||||||
|
#define g_rand_boolean(rand_) ((g_rand_int (rand_) & (1 << 15)) != 0)
|
||||||
|
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
guint32 g_rand_int (GRand *rand_);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gint32 g_rand_int_range (GRand *rand_,
|
||||||
|
gint32 begin,
|
||||||
|
gint32 end);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gdouble g_rand_double (GRand *rand_);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gdouble g_rand_double_range (GRand *rand_,
|
||||||
|
gdouble begin,
|
||||||
|
gdouble end);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_random_set_seed (guint32 seed);
|
||||||
|
|
||||||
|
#define g_random_boolean() ((g_random_int () & (1 << 15)) != 0)
|
||||||
|
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
guint32 g_random_int (void);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gint32 g_random_int_range (gint32 begin,
|
||||||
|
gint32 end);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gdouble g_random_double (void);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gdouble g_random_double_range (gdouble begin,
|
||||||
|
gdouble end);
|
||||||
|
|
||||||
|
|
||||||
|
G_END_DECLS
|
||||||
|
|
||||||
|
#endif /* __G_RAND_H__ */
|
610
code/application/source/sf_app/code/source/sf_blue/inc/glib/glib/gregex.h
Executable file
610
code/application/source/sf_app/code/source/sf_blue/inc/glib/glib/gregex.h
Executable file
|
@ -0,0 +1,610 @@
|
||||||
|
/* GRegex -- regular expression API wrapper around PCRE.
|
||||||
|
*
|
||||||
|
* Copyright (C) 1999, 2000 Scott Wimer
|
||||||
|
* Copyright (C) 2004, Matthias Clasen <mclasen@redhat.com>
|
||||||
|
* Copyright (C) 2005 - 2007, Marco Barisione <marco@barisione.org>
|
||||||
|
*
|
||||||
|
* This library 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 library 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 this library; if not, write to the Free Software
|
||||||
|
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef __G_REGEX_H__
|
||||||
|
#define __G_REGEX_H__
|
||||||
|
|
||||||
|
#if !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION)
|
||||||
|
#error "Only <glib.h> can be included directly."
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include <glib/gerror.h>
|
||||||
|
#include <glib/gstring.h>
|
||||||
|
|
||||||
|
G_BEGIN_DECLS
|
||||||
|
|
||||||
|
/**
|
||||||
|
* GRegexError:
|
||||||
|
* @G_REGEX_ERROR_COMPILE: Compilation of the regular expression failed.
|
||||||
|
* @G_REGEX_ERROR_OPTIMIZE: Optimization of the regular expression failed.
|
||||||
|
* @G_REGEX_ERROR_REPLACE: Replacement failed due to an ill-formed replacement
|
||||||
|
* string.
|
||||||
|
* @G_REGEX_ERROR_MATCH: The match process failed.
|
||||||
|
* @G_REGEX_ERROR_INTERNAL: Internal error of the regular expression engine.
|
||||||
|
* Since 2.16
|
||||||
|
* @G_REGEX_ERROR_STRAY_BACKSLASH: "\\" at end of pattern. Since 2.16
|
||||||
|
* @G_REGEX_ERROR_MISSING_CONTROL_CHAR: "\\c" at end of pattern. Since 2.16
|
||||||
|
* @G_REGEX_ERROR_UNRECOGNIZED_ESCAPE: Unrecognized character follows "\\".
|
||||||
|
* Since 2.16
|
||||||
|
* @G_REGEX_ERROR_QUANTIFIERS_OUT_OF_ORDER: Numbers out of order in "{}"
|
||||||
|
* quantifier. Since 2.16
|
||||||
|
* @G_REGEX_ERROR_QUANTIFIER_TOO_BIG: Number too big in "{}" quantifier.
|
||||||
|
* Since 2.16
|
||||||
|
* @G_REGEX_ERROR_UNTERMINATED_CHARACTER_CLASS: Missing terminating "]" for
|
||||||
|
* character class. Since 2.16
|
||||||
|
* @G_REGEX_ERROR_INVALID_ESCAPE_IN_CHARACTER_CLASS: Invalid escape sequence
|
||||||
|
* in character class. Since 2.16
|
||||||
|
* @G_REGEX_ERROR_RANGE_OUT_OF_ORDER: Range out of order in character class.
|
||||||
|
* Since 2.16
|
||||||
|
* @G_REGEX_ERROR_NOTHING_TO_REPEAT: Nothing to repeat. Since 2.16
|
||||||
|
* @G_REGEX_ERROR_UNRECOGNIZED_CHARACTER: Unrecognized character after "(?",
|
||||||
|
* "(?<" or "(?P". Since 2.16
|
||||||
|
* @G_REGEX_ERROR_POSIX_NAMED_CLASS_OUTSIDE_CLASS: POSIX named classes are
|
||||||
|
* supported only within a class. Since 2.16
|
||||||
|
* @G_REGEX_ERROR_UNMATCHED_PARENTHESIS: Missing terminating ")" or ")"
|
||||||
|
* without opening "(". Since 2.16
|
||||||
|
* @G_REGEX_ERROR_INEXISTENT_SUBPATTERN_REFERENCE: Reference to non-existent
|
||||||
|
* subpattern. Since 2.16
|
||||||
|
* @G_REGEX_ERROR_UNTERMINATED_COMMENT: Missing terminating ")" after comment.
|
||||||
|
* Since 2.16
|
||||||
|
* @G_REGEX_ERROR_EXPRESSION_TOO_LARGE: Regular expression too large.
|
||||||
|
* Since 2.16
|
||||||
|
* @G_REGEX_ERROR_MEMORY_ERROR: Failed to get memory. Since 2.16
|
||||||
|
* @G_REGEX_ERROR_VARIABLE_LENGTH_LOOKBEHIND: Lookbehind assertion is not
|
||||||
|
* fixed length. Since 2.16
|
||||||
|
* @G_REGEX_ERROR_MALFORMED_CONDITION: Malformed number or name after "(?(".
|
||||||
|
* Since 2.16
|
||||||
|
* @G_REGEX_ERROR_TOO_MANY_CONDITIONAL_BRANCHES: Conditional group contains
|
||||||
|
* more than two branches. Since 2.16
|
||||||
|
* @G_REGEX_ERROR_ASSERTION_EXPECTED: Assertion expected after "(?(".
|
||||||
|
* Since 2.16
|
||||||
|
* @G_REGEX_ERROR_UNKNOWN_POSIX_CLASS_NAME: Unknown POSIX class name.
|
||||||
|
* Since 2.16
|
||||||
|
* @G_REGEX_ERROR_POSIX_COLLATING_ELEMENTS_NOT_SUPPORTED: POSIX collating
|
||||||
|
* elements are not supported. Since 2.16
|
||||||
|
* @G_REGEX_ERROR_HEX_CODE_TOO_LARGE: Character value in "\\x{...}" sequence
|
||||||
|
* is too large. Since 2.16
|
||||||
|
* @G_REGEX_ERROR_INVALID_CONDITION: Invalid condition "(?(0)". Since 2.16
|
||||||
|
* @G_REGEX_ERROR_SINGLE_BYTE_MATCH_IN_LOOKBEHIND: \\C not allowed in
|
||||||
|
* lookbehind assertion. Since 2.16
|
||||||
|
* @G_REGEX_ERROR_INFINITE_LOOP: Recursive call could loop indefinitely.
|
||||||
|
* Since 2.16
|
||||||
|
* @G_REGEX_ERROR_MISSING_SUBPATTERN_NAME_TERMINATOR: Missing terminator
|
||||||
|
* in subpattern name. Since 2.16
|
||||||
|
* @G_REGEX_ERROR_DUPLICATE_SUBPATTERN_NAME: Two named subpatterns have
|
||||||
|
* the same name. Since 2.16
|
||||||
|
* @G_REGEX_ERROR_MALFORMED_PROPERTY: Malformed "\\P" or "\\p" sequence.
|
||||||
|
* Since 2.16
|
||||||
|
* @G_REGEX_ERROR_UNKNOWN_PROPERTY: Unknown property name after "\\P" or
|
||||||
|
* "\\p". Since 2.16
|
||||||
|
* @G_REGEX_ERROR_SUBPATTERN_NAME_TOO_LONG: Subpattern name is too long
|
||||||
|
* (maximum 32 characters). Since 2.16
|
||||||
|
* @G_REGEX_ERROR_TOO_MANY_SUBPATTERNS: Too many named subpatterns (maximum
|
||||||
|
* 10,000). Since 2.16
|
||||||
|
* @G_REGEX_ERROR_INVALID_OCTAL_VALUE: Octal value is greater than "\\377".
|
||||||
|
* Since 2.16
|
||||||
|
* @G_REGEX_ERROR_TOO_MANY_BRANCHES_IN_DEFINE: "DEFINE" group contains more
|
||||||
|
* than one branch. Since 2.16
|
||||||
|
* @G_REGEX_ERROR_DEFINE_REPETION: Repeating a "DEFINE" group is not allowed.
|
||||||
|
* This error is never raised. Since: 2.16 Deprecated: 2.34
|
||||||
|
* @G_REGEX_ERROR_INCONSISTENT_NEWLINE_OPTIONS: Inconsistent newline options.
|
||||||
|
* Since 2.16
|
||||||
|
* @G_REGEX_ERROR_MISSING_BACK_REFERENCE: "\\g" is not followed by a braced,
|
||||||
|
* angle-bracketed, or quoted name or number, or by a plain number. Since: 2.16
|
||||||
|
* @G_REGEX_ERROR_INVALID_RELATIVE_REFERENCE: relative reference must not be zero. Since: 2.34
|
||||||
|
* @G_REGEX_ERROR_BACKTRACKING_CONTROL_VERB_ARGUMENT_FORBIDDEN: the backtracing
|
||||||
|
* control verb used does not allow an argument. Since: 2.34
|
||||||
|
* @G_REGEX_ERROR_UNKNOWN_BACKTRACKING_CONTROL_VERB: unknown backtracing
|
||||||
|
* control verb. Since: 2.34
|
||||||
|
* @G_REGEX_ERROR_NUMBER_TOO_BIG: number is too big in escape sequence. Since: 2.34
|
||||||
|
* @G_REGEX_ERROR_MISSING_SUBPATTERN_NAME: Missing subpattern name. Since: 2.34
|
||||||
|
* @G_REGEX_ERROR_MISSING_DIGIT: Missing digit. Since 2.34
|
||||||
|
* @G_REGEX_ERROR_INVALID_DATA_CHARACTER: In JavaScript compatibility mode,
|
||||||
|
* "[" is an invalid data character. Since: 2.34
|
||||||
|
* @G_REGEX_ERROR_EXTRA_SUBPATTERN_NAME: different names for subpatterns of the
|
||||||
|
* same number are not allowed. Since: 2.34
|
||||||
|
* @G_REGEX_ERROR_BACKTRACKING_CONTROL_VERB_ARGUMENT_REQUIRED: the backtracing control
|
||||||
|
* verb requires an argument. Since: 2.34
|
||||||
|
* @G_REGEX_ERROR_INVALID_CONTROL_CHAR: "\\c" must be followed by an ASCII
|
||||||
|
* character. Since: 2.34
|
||||||
|
* @G_REGEX_ERROR_MISSING_NAME: "\\k" is not followed by a braced, angle-bracketed, or
|
||||||
|
* quoted name. Since: 2.34
|
||||||
|
* @G_REGEX_ERROR_NOT_SUPPORTED_IN_CLASS: "\\N" is not supported in a class. Since: 2.34
|
||||||
|
* @G_REGEX_ERROR_TOO_MANY_FORWARD_REFERENCES: too many forward references. Since: 2.34
|
||||||
|
* @G_REGEX_ERROR_NAME_TOO_LONG: the name is too long in "(*MARK)", "(*PRUNE)",
|
||||||
|
* "(*SKIP)", or "(*THEN)". Since: 2.34
|
||||||
|
* @G_REGEX_ERROR_CHARACTER_VALUE_TOO_LARGE: the character value in the \\u sequence is
|
||||||
|
* too large. Since: 2.34
|
||||||
|
*
|
||||||
|
* Error codes returned by regular expressions functions.
|
||||||
|
*
|
||||||
|
* Since: 2.14
|
||||||
|
*/
|
||||||
|
typedef enum
|
||||||
|
{
|
||||||
|
G_REGEX_ERROR_COMPILE,
|
||||||
|
G_REGEX_ERROR_OPTIMIZE,
|
||||||
|
G_REGEX_ERROR_REPLACE,
|
||||||
|
G_REGEX_ERROR_MATCH,
|
||||||
|
G_REGEX_ERROR_INTERNAL,
|
||||||
|
|
||||||
|
/* These are the error codes from PCRE + 100 */
|
||||||
|
G_REGEX_ERROR_STRAY_BACKSLASH = 101,
|
||||||
|
G_REGEX_ERROR_MISSING_CONTROL_CHAR = 102,
|
||||||
|
G_REGEX_ERROR_UNRECOGNIZED_ESCAPE = 103,
|
||||||
|
G_REGEX_ERROR_QUANTIFIERS_OUT_OF_ORDER = 104,
|
||||||
|
G_REGEX_ERROR_QUANTIFIER_TOO_BIG = 105,
|
||||||
|
G_REGEX_ERROR_UNTERMINATED_CHARACTER_CLASS = 106,
|
||||||
|
G_REGEX_ERROR_INVALID_ESCAPE_IN_CHARACTER_CLASS = 107,
|
||||||
|
G_REGEX_ERROR_RANGE_OUT_OF_ORDER = 108,
|
||||||
|
G_REGEX_ERROR_NOTHING_TO_REPEAT = 109,
|
||||||
|
G_REGEX_ERROR_UNRECOGNIZED_CHARACTER = 112,
|
||||||
|
G_REGEX_ERROR_POSIX_NAMED_CLASS_OUTSIDE_CLASS = 113,
|
||||||
|
G_REGEX_ERROR_UNMATCHED_PARENTHESIS = 114,
|
||||||
|
G_REGEX_ERROR_INEXISTENT_SUBPATTERN_REFERENCE = 115,
|
||||||
|
G_REGEX_ERROR_UNTERMINATED_COMMENT = 118,
|
||||||
|
G_REGEX_ERROR_EXPRESSION_TOO_LARGE = 120,
|
||||||
|
G_REGEX_ERROR_MEMORY_ERROR = 121,
|
||||||
|
G_REGEX_ERROR_VARIABLE_LENGTH_LOOKBEHIND = 125,
|
||||||
|
G_REGEX_ERROR_MALFORMED_CONDITION = 126,
|
||||||
|
G_REGEX_ERROR_TOO_MANY_CONDITIONAL_BRANCHES = 127,
|
||||||
|
G_REGEX_ERROR_ASSERTION_EXPECTED = 128,
|
||||||
|
G_REGEX_ERROR_UNKNOWN_POSIX_CLASS_NAME = 130,
|
||||||
|
G_REGEX_ERROR_POSIX_COLLATING_ELEMENTS_NOT_SUPPORTED = 131,
|
||||||
|
G_REGEX_ERROR_HEX_CODE_TOO_LARGE = 134,
|
||||||
|
G_REGEX_ERROR_INVALID_CONDITION = 135,
|
||||||
|
G_REGEX_ERROR_SINGLE_BYTE_MATCH_IN_LOOKBEHIND = 136,
|
||||||
|
G_REGEX_ERROR_INFINITE_LOOP = 140,
|
||||||
|
G_REGEX_ERROR_MISSING_SUBPATTERN_NAME_TERMINATOR = 142,
|
||||||
|
G_REGEX_ERROR_DUPLICATE_SUBPATTERN_NAME = 143,
|
||||||
|
G_REGEX_ERROR_MALFORMED_PROPERTY = 146,
|
||||||
|
G_REGEX_ERROR_UNKNOWN_PROPERTY = 147,
|
||||||
|
G_REGEX_ERROR_SUBPATTERN_NAME_TOO_LONG = 148,
|
||||||
|
G_REGEX_ERROR_TOO_MANY_SUBPATTERNS = 149,
|
||||||
|
G_REGEX_ERROR_INVALID_OCTAL_VALUE = 151,
|
||||||
|
G_REGEX_ERROR_TOO_MANY_BRANCHES_IN_DEFINE = 154,
|
||||||
|
G_REGEX_ERROR_DEFINE_REPETION = 155,
|
||||||
|
G_REGEX_ERROR_INCONSISTENT_NEWLINE_OPTIONS = 156,
|
||||||
|
G_REGEX_ERROR_MISSING_BACK_REFERENCE = 157,
|
||||||
|
G_REGEX_ERROR_INVALID_RELATIVE_REFERENCE = 158,
|
||||||
|
G_REGEX_ERROR_BACKTRACKING_CONTROL_VERB_ARGUMENT_FORBIDDEN = 159,
|
||||||
|
G_REGEX_ERROR_UNKNOWN_BACKTRACKING_CONTROL_VERB = 160,
|
||||||
|
G_REGEX_ERROR_NUMBER_TOO_BIG = 161,
|
||||||
|
G_REGEX_ERROR_MISSING_SUBPATTERN_NAME = 162,
|
||||||
|
G_REGEX_ERROR_MISSING_DIGIT = 163,
|
||||||
|
G_REGEX_ERROR_INVALID_DATA_CHARACTER = 164,
|
||||||
|
G_REGEX_ERROR_EXTRA_SUBPATTERN_NAME = 165,
|
||||||
|
G_REGEX_ERROR_BACKTRACKING_CONTROL_VERB_ARGUMENT_REQUIRED = 166,
|
||||||
|
G_REGEX_ERROR_INVALID_CONTROL_CHAR = 168,
|
||||||
|
G_REGEX_ERROR_MISSING_NAME = 169,
|
||||||
|
G_REGEX_ERROR_NOT_SUPPORTED_IN_CLASS = 171,
|
||||||
|
G_REGEX_ERROR_TOO_MANY_FORWARD_REFERENCES = 172,
|
||||||
|
G_REGEX_ERROR_NAME_TOO_LONG = 175,
|
||||||
|
G_REGEX_ERROR_CHARACTER_VALUE_TOO_LARGE = 176
|
||||||
|
} GRegexError;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* G_REGEX_ERROR:
|
||||||
|
*
|
||||||
|
* Error domain for regular expressions. Errors in this domain will be
|
||||||
|
* from the #GRegexError enumeration. See #GError for information on
|
||||||
|
* error domains.
|
||||||
|
*
|
||||||
|
* Since: 2.14
|
||||||
|
*/
|
||||||
|
#define G_REGEX_ERROR g_regex_error_quark ()
|
||||||
|
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GQuark g_regex_error_quark (void);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* GRegexCompileFlags:
|
||||||
|
* @G_REGEX_CASELESS: Letters in the pattern match both upper- and
|
||||||
|
* lowercase letters. This option can be changed within a pattern
|
||||||
|
* by a "(?i)" option setting.
|
||||||
|
* @G_REGEX_MULTILINE: By default, GRegex treats the strings as consisting
|
||||||
|
* of a single line of characters (even if it actually contains
|
||||||
|
* newlines). The "start of line" metacharacter ("^") matches only
|
||||||
|
* at the start of the string, while the "end of line" metacharacter
|
||||||
|
* ("$") matches only at the end of the string, or before a terminating
|
||||||
|
* newline (unless #G_REGEX_DOLLAR_ENDONLY is set). When
|
||||||
|
* #G_REGEX_MULTILINE is set, the "start of line" and "end of line"
|
||||||
|
* constructs match immediately following or immediately before any
|
||||||
|
* newline in the string, respectively, as well as at the very start
|
||||||
|
* and end. This can be changed within a pattern by a "(?m)" option
|
||||||
|
* setting.
|
||||||
|
* @G_REGEX_DOTALL: A dot metacharater (".") in the pattern matches all
|
||||||
|
* characters, including newlines. Without it, newlines are excluded.
|
||||||
|
* This option can be changed within a pattern by a ("?s") option setting.
|
||||||
|
* @G_REGEX_EXTENDED: Whitespace data characters in the pattern are
|
||||||
|
* totally ignored except when escaped or inside a character class.
|
||||||
|
* Whitespace does not include the VT character (code 11). In addition,
|
||||||
|
* characters between an unescaped "#" outside a character class and
|
||||||
|
* the next newline character, inclusive, are also ignored. This can
|
||||||
|
* be changed within a pattern by a "(?x)" option setting.
|
||||||
|
* @G_REGEX_ANCHORED: The pattern is forced to be "anchored", that is,
|
||||||
|
* it is constrained to match only at the first matching point in the
|
||||||
|
* string that is being searched. This effect can also be achieved by
|
||||||
|
* appropriate constructs in the pattern itself such as the "^"
|
||||||
|
* metacharater.
|
||||||
|
* @G_REGEX_DOLLAR_ENDONLY: A dollar metacharacter ("$") in the pattern
|
||||||
|
* matches only at the end of the string. Without this option, a
|
||||||
|
* dollar also matches immediately before the final character if
|
||||||
|
* it is a newline (but not before any other newlines). This option
|
||||||
|
* is ignored if #G_REGEX_MULTILINE is set.
|
||||||
|
* @G_REGEX_UNGREEDY: Inverts the "greediness" of the quantifiers so that
|
||||||
|
* they are not greedy by default, but become greedy if followed by "?".
|
||||||
|
* It can also be set by a "(?U)" option setting within the pattern.
|
||||||
|
* @G_REGEX_RAW: Usually strings must be valid UTF-8 strings, using this
|
||||||
|
* flag they are considered as a raw sequence of bytes.
|
||||||
|
* @G_REGEX_NO_AUTO_CAPTURE: Disables the use of numbered capturing
|
||||||
|
* parentheses in the pattern. Any opening parenthesis that is not
|
||||||
|
* followed by "?" behaves as if it were followed by "?:" but named
|
||||||
|
* parentheses can still be used for capturing (and they acquire numbers
|
||||||
|
* in the usual way).
|
||||||
|
* @G_REGEX_OPTIMIZE: Optimize the regular expression. If the pattern will
|
||||||
|
* be used many times, then it may be worth the effort to optimize it
|
||||||
|
* to improve the speed of matches.
|
||||||
|
* @G_REGEX_FIRSTLINE: Limits an unanchored pattern to match before (or at) the
|
||||||
|
* first newline. Since: 2.34
|
||||||
|
* @G_REGEX_DUPNAMES: Names used to identify capturing subpatterns need not
|
||||||
|
* be unique. This can be helpful for certain types of pattern when it
|
||||||
|
* is known that only one instance of the named subpattern can ever be
|
||||||
|
* matched.
|
||||||
|
* @G_REGEX_NEWLINE_CR: Usually any newline character or character sequence is
|
||||||
|
* recognized. If this option is set, the only recognized newline character
|
||||||
|
* is '\r'.
|
||||||
|
* @G_REGEX_NEWLINE_LF: Usually any newline character or character sequence is
|
||||||
|
* recognized. If this option is set, the only recognized newline character
|
||||||
|
* is '\n'.
|
||||||
|
* @G_REGEX_NEWLINE_CRLF: Usually any newline character or character sequence is
|
||||||
|
* recognized. If this option is set, the only recognized newline character
|
||||||
|
* sequence is '\r\n'.
|
||||||
|
* @G_REGEX_NEWLINE_ANYCRLF: Usually any newline character or character sequence
|
||||||
|
* is recognized. If this option is set, the only recognized newline character
|
||||||
|
* sequences are '\r', '\n', and '\r\n'. Since: 2.34
|
||||||
|
* @G_REGEX_BSR_ANYCRLF: Usually any newline character or character sequence
|
||||||
|
* is recognised. If this option is set, then "\R" only recognizes the newline
|
||||||
|
* characters '\r', '\n' and '\r\n'. Since: 2.34
|
||||||
|
* @G_REGEX_JAVASCRIPT_COMPAT: Changes behaviour so that it is compatible with
|
||||||
|
* JavaScript rather than PCRE. Since: 2.34
|
||||||
|
*
|
||||||
|
* Flags specifying compile-time options.
|
||||||
|
*
|
||||||
|
* Since: 2.14
|
||||||
|
*/
|
||||||
|
/* Remember to update G_REGEX_COMPILE_MASK in gregex.c after
|
||||||
|
* adding a new flag.
|
||||||
|
*/
|
||||||
|
typedef enum
|
||||||
|
{
|
||||||
|
G_REGEX_CASELESS = 1 << 0,
|
||||||
|
G_REGEX_MULTILINE = 1 << 1,
|
||||||
|
G_REGEX_DOTALL = 1 << 2,
|
||||||
|
G_REGEX_EXTENDED = 1 << 3,
|
||||||
|
G_REGEX_ANCHORED = 1 << 4,
|
||||||
|
G_REGEX_DOLLAR_ENDONLY = 1 << 5,
|
||||||
|
G_REGEX_UNGREEDY = 1 << 9,
|
||||||
|
G_REGEX_RAW = 1 << 11,
|
||||||
|
G_REGEX_NO_AUTO_CAPTURE = 1 << 12,
|
||||||
|
G_REGEX_OPTIMIZE = 1 << 13,
|
||||||
|
G_REGEX_FIRSTLINE = 1 << 18,
|
||||||
|
G_REGEX_DUPNAMES = 1 << 19,
|
||||||
|
G_REGEX_NEWLINE_CR = 1 << 20,
|
||||||
|
G_REGEX_NEWLINE_LF = 1 << 21,
|
||||||
|
G_REGEX_NEWLINE_CRLF = G_REGEX_NEWLINE_CR | G_REGEX_NEWLINE_LF,
|
||||||
|
G_REGEX_NEWLINE_ANYCRLF = G_REGEX_NEWLINE_CR | 1 << 22,
|
||||||
|
G_REGEX_BSR_ANYCRLF = 1 << 23,
|
||||||
|
G_REGEX_JAVASCRIPT_COMPAT = 1 << 25
|
||||||
|
} GRegexCompileFlags;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* GRegexMatchFlags:
|
||||||
|
* @G_REGEX_MATCH_ANCHORED: The pattern is forced to be "anchored", that is,
|
||||||
|
* it is constrained to match only at the first matching point in the
|
||||||
|
* string that is being searched. This effect can also be achieved by
|
||||||
|
* appropriate constructs in the pattern itself such as the "^"
|
||||||
|
* metacharater.
|
||||||
|
* @G_REGEX_MATCH_NOTBOL: Specifies that first character of the string is
|
||||||
|
* not the beginning of a line, so the circumflex metacharacter should
|
||||||
|
* not match before it. Setting this without #G_REGEX_MULTILINE (at
|
||||||
|
* compile time) causes circumflex never to match. This option affects
|
||||||
|
* only the behaviour of the circumflex metacharacter, it does not
|
||||||
|
* affect "\A".
|
||||||
|
* @G_REGEX_MATCH_NOTEOL: Specifies that the end of the subject string is
|
||||||
|
* not the end of a line, so the dollar metacharacter should not match
|
||||||
|
* it nor (except in multiline mode) a newline immediately before it.
|
||||||
|
* Setting this without #G_REGEX_MULTILINE (at compile time) causes
|
||||||
|
* dollar never to match. This option affects only the behaviour of
|
||||||
|
* the dollar metacharacter, it does not affect "\Z" or "\z".
|
||||||
|
* @G_REGEX_MATCH_NOTEMPTY: An empty string is not considered to be a valid
|
||||||
|
* match if this option is set. If there are alternatives in the pattern,
|
||||||
|
* they are tried. If all the alternatives match the empty string, the
|
||||||
|
* entire match fails. For example, if the pattern "a?b?" is applied to
|
||||||
|
* a string not beginning with "a" or "b", it matches the empty string
|
||||||
|
* at the start of the string. With this flag set, this match is not
|
||||||
|
* valid, so GRegex searches further into the string for occurrences
|
||||||
|
* of "a" or "b".
|
||||||
|
* @G_REGEX_MATCH_PARTIAL: Turns on the partial matching feature, for more
|
||||||
|
* documentation on partial matching see g_match_info_is_partial_match().
|
||||||
|
* @G_REGEX_MATCH_NEWLINE_CR: Overrides the newline definition set when
|
||||||
|
* creating a new #GRegex, setting the '\r' character as line terminator.
|
||||||
|
* @G_REGEX_MATCH_NEWLINE_LF: Overrides the newline definition set when
|
||||||
|
* creating a new #GRegex, setting the '\n' character as line terminator.
|
||||||
|
* @G_REGEX_MATCH_NEWLINE_CRLF: Overrides the newline definition set when
|
||||||
|
* creating a new #GRegex, setting the '\r\n' characters sequence as line terminator.
|
||||||
|
* @G_REGEX_MATCH_NEWLINE_ANY: Overrides the newline definition set when
|
||||||
|
* creating a new #GRegex, any Unicode newline sequence
|
||||||
|
* is recognised as a newline. These are '\r', '\n' and '\rn', and the
|
||||||
|
* single characters U+000B LINE TABULATION, U+000C FORM FEED (FF),
|
||||||
|
* U+0085 NEXT LINE (NEL), U+2028 LINE SEPARATOR and
|
||||||
|
* U+2029 PARAGRAPH SEPARATOR.
|
||||||
|
* @G_REGEX_MATCH_NEWLINE_ANYCRLF: Overrides the newline definition set when
|
||||||
|
* creating a new #GRegex; any '\r', '\n', or '\r\n' character sequence
|
||||||
|
* is recognized as a newline. Since: 2.34
|
||||||
|
* @G_REGEX_MATCH_BSR_ANYCRLF: Overrides the newline definition for "\R" set when
|
||||||
|
* creating a new #GRegex; only '\r', '\n', or '\r\n' character sequences
|
||||||
|
* are recognized as a newline by "\R". Since: 2.34
|
||||||
|
* @G_REGEX_MATCH_BSR_ANY: Overrides the newline definition for "\R" set when
|
||||||
|
* creating a new #GRegex; any Unicode newline character or character sequence
|
||||||
|
* are recognized as a newline by "\R". These are '\r', '\n' and '\rn', and the
|
||||||
|
* single characters U+000B LINE TABULATION, U+000C FORM FEED (FF),
|
||||||
|
* U+0085 NEXT LINE (NEL), U+2028 LINE SEPARATOR and
|
||||||
|
* U+2029 PARAGRAPH SEPARATOR. Since: 2.34
|
||||||
|
* @G_REGEX_MATCH_PARTIAL_SOFT: An alias for #G_REGEX_MATCH_PARTIAL. Since: 2.34
|
||||||
|
* @G_REGEX_MATCH_PARTIAL_HARD: Turns on the partial matching feature. In contrast to
|
||||||
|
* to #G_REGEX_MATCH_PARTIAL_SOFT, this stops matching as soon as a partial match
|
||||||
|
* is found, without continuing to search for a possible complete match. See
|
||||||
|
* g_match_info_is_partial_match() for more information. Since: 2.34
|
||||||
|
* @G_REGEX_MATCH_NOTEMPTY_ATSTART: Like #G_REGEX_MATCH_NOTEMPTY, but only applied to
|
||||||
|
* the start of the matched string. For anchored
|
||||||
|
* patterns this can only happen for pattern containing "\K". Since: 2.34
|
||||||
|
*
|
||||||
|
* Flags specifying match-time options.
|
||||||
|
*
|
||||||
|
* Since: 2.14
|
||||||
|
*/
|
||||||
|
/* Remember to update G_REGEX_MATCH_MASK in gregex.c after
|
||||||
|
* adding a new flag. */
|
||||||
|
typedef enum
|
||||||
|
{
|
||||||
|
G_REGEX_MATCH_ANCHORED = 1 << 4,
|
||||||
|
G_REGEX_MATCH_NOTBOL = 1 << 7,
|
||||||
|
G_REGEX_MATCH_NOTEOL = 1 << 8,
|
||||||
|
G_REGEX_MATCH_NOTEMPTY = 1 << 10,
|
||||||
|
G_REGEX_MATCH_PARTIAL = 1 << 15,
|
||||||
|
G_REGEX_MATCH_NEWLINE_CR = 1 << 20,
|
||||||
|
G_REGEX_MATCH_NEWLINE_LF = 1 << 21,
|
||||||
|
G_REGEX_MATCH_NEWLINE_CRLF = G_REGEX_MATCH_NEWLINE_CR | G_REGEX_MATCH_NEWLINE_LF,
|
||||||
|
G_REGEX_MATCH_NEWLINE_ANY = 1 << 22,
|
||||||
|
G_REGEX_MATCH_NEWLINE_ANYCRLF = G_REGEX_MATCH_NEWLINE_CR | G_REGEX_MATCH_NEWLINE_ANY,
|
||||||
|
G_REGEX_MATCH_BSR_ANYCRLF = 1 << 23,
|
||||||
|
G_REGEX_MATCH_BSR_ANY = 1 << 24,
|
||||||
|
G_REGEX_MATCH_PARTIAL_SOFT = G_REGEX_MATCH_PARTIAL,
|
||||||
|
G_REGEX_MATCH_PARTIAL_HARD = 1 << 27,
|
||||||
|
G_REGEX_MATCH_NOTEMPTY_ATSTART = 1 << 28
|
||||||
|
} GRegexMatchFlags;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* GRegex:
|
||||||
|
*
|
||||||
|
* A GRegex is the "compiled" form of a regular expression pattern.
|
||||||
|
* This structure is opaque and its fields cannot be accessed directly.
|
||||||
|
*
|
||||||
|
* Since: 2.14
|
||||||
|
*/
|
||||||
|
typedef struct _GRegex GRegex;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* GMatchInfo:
|
||||||
|
*
|
||||||
|
* A GMatchInfo is an opaque struct used to return information about
|
||||||
|
* matches.
|
||||||
|
*/
|
||||||
|
typedef struct _GMatchInfo GMatchInfo;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* GRegexEvalCallback:
|
||||||
|
* @match_info: the #GMatchInfo generated by the match.
|
||||||
|
* Use g_match_info_get_regex() and g_match_info_get_string() if you
|
||||||
|
* need the #GRegex or the matched string.
|
||||||
|
* @result: a #GString containing the new string
|
||||||
|
* @user_data: user data passed to g_regex_replace_eval()
|
||||||
|
*
|
||||||
|
* Specifies the type of the function passed to g_regex_replace_eval().
|
||||||
|
* It is called for each occurrence of the pattern in the string passed
|
||||||
|
* to g_regex_replace_eval(), and it should append the replacement to
|
||||||
|
* @result.
|
||||||
|
*
|
||||||
|
* Returns: %FALSE to continue the replacement process, %TRUE to stop it
|
||||||
|
*
|
||||||
|
* Since: 2.14
|
||||||
|
*/
|
||||||
|
typedef gboolean (*GRegexEvalCallback) (const GMatchInfo *match_info,
|
||||||
|
GString *result,
|
||||||
|
gpointer user_data);
|
||||||
|
|
||||||
|
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GRegex *g_regex_new (const gchar *pattern,
|
||||||
|
GRegexCompileFlags compile_options,
|
||||||
|
GRegexMatchFlags match_options,
|
||||||
|
GError **error);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GRegex *g_regex_ref (GRegex *regex);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_regex_unref (GRegex *regex);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
const gchar *g_regex_get_pattern (const GRegex *regex);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gint g_regex_get_max_backref (const GRegex *regex);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gint g_regex_get_capture_count (const GRegex *regex);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gboolean g_regex_get_has_cr_or_lf (const GRegex *regex);
|
||||||
|
GLIB_AVAILABLE_IN_2_38
|
||||||
|
gint g_regex_get_max_lookbehind (const GRegex *regex);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gint g_regex_get_string_number (const GRegex *regex,
|
||||||
|
const gchar *name);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gchar *g_regex_escape_string (const gchar *string,
|
||||||
|
gint length);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gchar *g_regex_escape_nul (const gchar *string,
|
||||||
|
gint length);
|
||||||
|
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GRegexCompileFlags g_regex_get_compile_flags (const GRegex *regex);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GRegexMatchFlags g_regex_get_match_flags (const GRegex *regex);
|
||||||
|
|
||||||
|
/* Matching. */
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gboolean g_regex_match_simple (const gchar *pattern,
|
||||||
|
const gchar *string,
|
||||||
|
GRegexCompileFlags compile_options,
|
||||||
|
GRegexMatchFlags match_options);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gboolean g_regex_match (const GRegex *regex,
|
||||||
|
const gchar *string,
|
||||||
|
GRegexMatchFlags match_options,
|
||||||
|
GMatchInfo **match_info);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gboolean g_regex_match_full (const GRegex *regex,
|
||||||
|
const gchar *string,
|
||||||
|
gssize string_len,
|
||||||
|
gint start_position,
|
||||||
|
GRegexMatchFlags match_options,
|
||||||
|
GMatchInfo **match_info,
|
||||||
|
GError **error);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gboolean g_regex_match_all (const GRegex *regex,
|
||||||
|
const gchar *string,
|
||||||
|
GRegexMatchFlags match_options,
|
||||||
|
GMatchInfo **match_info);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gboolean g_regex_match_all_full (const GRegex *regex,
|
||||||
|
const gchar *string,
|
||||||
|
gssize string_len,
|
||||||
|
gint start_position,
|
||||||
|
GRegexMatchFlags match_options,
|
||||||
|
GMatchInfo **match_info,
|
||||||
|
GError **error);
|
||||||
|
|
||||||
|
/* String splitting. */
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gchar **g_regex_split_simple (const gchar *pattern,
|
||||||
|
const gchar *string,
|
||||||
|
GRegexCompileFlags compile_options,
|
||||||
|
GRegexMatchFlags match_options);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gchar **g_regex_split (const GRegex *regex,
|
||||||
|
const gchar *string,
|
||||||
|
GRegexMatchFlags match_options);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gchar **g_regex_split_full (const GRegex *regex,
|
||||||
|
const gchar *string,
|
||||||
|
gssize string_len,
|
||||||
|
gint start_position,
|
||||||
|
GRegexMatchFlags match_options,
|
||||||
|
gint max_tokens,
|
||||||
|
GError **error);
|
||||||
|
|
||||||
|
/* String replacement. */
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gchar *g_regex_replace (const GRegex *regex,
|
||||||
|
const gchar *string,
|
||||||
|
gssize string_len,
|
||||||
|
gint start_position,
|
||||||
|
const gchar *replacement,
|
||||||
|
GRegexMatchFlags match_options,
|
||||||
|
GError **error);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gchar *g_regex_replace_literal (const GRegex *regex,
|
||||||
|
const gchar *string,
|
||||||
|
gssize string_len,
|
||||||
|
gint start_position,
|
||||||
|
const gchar *replacement,
|
||||||
|
GRegexMatchFlags match_options,
|
||||||
|
GError **error);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gchar *g_regex_replace_eval (const GRegex *regex,
|
||||||
|
const gchar *string,
|
||||||
|
gssize string_len,
|
||||||
|
gint start_position,
|
||||||
|
GRegexMatchFlags match_options,
|
||||||
|
GRegexEvalCallback eval,
|
||||||
|
gpointer user_data,
|
||||||
|
GError **error);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gboolean g_regex_check_replacement (const gchar *replacement,
|
||||||
|
gboolean *has_references,
|
||||||
|
GError **error);
|
||||||
|
|
||||||
|
/* Match info */
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GRegex *g_match_info_get_regex (const GMatchInfo *match_info);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
const gchar *g_match_info_get_string (const GMatchInfo *match_info);
|
||||||
|
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GMatchInfo *g_match_info_ref (GMatchInfo *match_info);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_match_info_unref (GMatchInfo *match_info);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_match_info_free (GMatchInfo *match_info);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gboolean g_match_info_next (GMatchInfo *match_info,
|
||||||
|
GError **error);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gboolean g_match_info_matches (const GMatchInfo *match_info);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gint g_match_info_get_match_count (const GMatchInfo *match_info);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gboolean g_match_info_is_partial_match (const GMatchInfo *match_info);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gchar *g_match_info_expand_references(const GMatchInfo *match_info,
|
||||||
|
const gchar *string_to_expand,
|
||||||
|
GError **error);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gchar *g_match_info_fetch (const GMatchInfo *match_info,
|
||||||
|
gint match_num);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gboolean g_match_info_fetch_pos (const GMatchInfo *match_info,
|
||||||
|
gint match_num,
|
||||||
|
gint *start_pos,
|
||||||
|
gint *end_pos);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gchar *g_match_info_fetch_named (const GMatchInfo *match_info,
|
||||||
|
const gchar *name);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gboolean g_match_info_fetch_named_pos (const GMatchInfo *match_info,
|
||||||
|
const gchar *name,
|
||||||
|
gint *start_pos,
|
||||||
|
gint *end_pos);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gchar **g_match_info_fetch_all (const GMatchInfo *match_info);
|
||||||
|
|
||||||
|
G_END_DECLS
|
||||||
|
|
||||||
|
#endif /* __G_REGEX_H__ */
|
303
code/application/source/sf_app/code/source/sf_blue/inc/glib/glib/gscanner.h
Executable file
303
code/application/source/sf_app/code/source/sf_blue/inc/glib/glib/gscanner.h
Executable file
|
@ -0,0 +1,303 @@
|
||||||
|
/* GLIB - Library of useful routines for C programming
|
||||||
|
* Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald
|
||||||
|
*
|
||||||
|
* This library 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 of the License, or (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This library 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 this library; if not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Modified by the GLib Team and others 1997-2000. See the AUTHORS
|
||||||
|
* file for a list of people on the GLib Team. See the ChangeLog
|
||||||
|
* files for a list of changes. These files are distributed with
|
||||||
|
* GLib at ftp://ftp.gtk.org/pub/gtk/.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef __G_SCANNER_H__
|
||||||
|
#define __G_SCANNER_H__
|
||||||
|
|
||||||
|
#if !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION)
|
||||||
|
#error "Only <glib.h> can be included directly."
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include <glib/gdataset.h>
|
||||||
|
#include <glib/ghash.h>
|
||||||
|
|
||||||
|
G_BEGIN_DECLS
|
||||||
|
|
||||||
|
typedef struct _GScanner GScanner;
|
||||||
|
typedef struct _GScannerConfig GScannerConfig;
|
||||||
|
typedef union _GTokenValue GTokenValue;
|
||||||
|
|
||||||
|
typedef void (*GScannerMsgFunc) (GScanner *scanner,
|
||||||
|
gchar *message,
|
||||||
|
gboolean error);
|
||||||
|
|
||||||
|
/* GScanner: Flexible lexical scanner for general purpose.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* Character sets */
|
||||||
|
#define G_CSET_A_2_Z "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
|
||||||
|
#define G_CSET_a_2_z "abcdefghijklmnopqrstuvwxyz"
|
||||||
|
#define G_CSET_DIGITS "0123456789"
|
||||||
|
#define G_CSET_LATINC "\300\301\302\303\304\305\306"\
|
||||||
|
"\307\310\311\312\313\314\315\316\317\320"\
|
||||||
|
"\321\322\323\324\325\326"\
|
||||||
|
"\330\331\332\333\334\335\336"
|
||||||
|
#define G_CSET_LATINS "\337\340\341\342\343\344\345\346"\
|
||||||
|
"\347\350\351\352\353\354\355\356\357\360"\
|
||||||
|
"\361\362\363\364\365\366"\
|
||||||
|
"\370\371\372\373\374\375\376\377"
|
||||||
|
|
||||||
|
/* Error types */
|
||||||
|
typedef enum
|
||||||
|
{
|
||||||
|
G_ERR_UNKNOWN,
|
||||||
|
G_ERR_UNEXP_EOF,
|
||||||
|
G_ERR_UNEXP_EOF_IN_STRING,
|
||||||
|
G_ERR_UNEXP_EOF_IN_COMMENT,
|
||||||
|
G_ERR_NON_DIGIT_IN_CONST,
|
||||||
|
G_ERR_DIGIT_RADIX,
|
||||||
|
G_ERR_FLOAT_RADIX,
|
||||||
|
G_ERR_FLOAT_MALFORMED
|
||||||
|
} GErrorType;
|
||||||
|
|
||||||
|
/* Token types */
|
||||||
|
typedef enum
|
||||||
|
{
|
||||||
|
G_TOKEN_EOF = 0,
|
||||||
|
|
||||||
|
G_TOKEN_LEFT_PAREN = '(',
|
||||||
|
G_TOKEN_RIGHT_PAREN = ')',
|
||||||
|
G_TOKEN_LEFT_CURLY = '{',
|
||||||
|
G_TOKEN_RIGHT_CURLY = '}',
|
||||||
|
G_TOKEN_LEFT_BRACE = '[',
|
||||||
|
G_TOKEN_RIGHT_BRACE = ']',
|
||||||
|
G_TOKEN_EQUAL_SIGN = '=',
|
||||||
|
G_TOKEN_COMMA = ',',
|
||||||
|
|
||||||
|
G_TOKEN_NONE = 256,
|
||||||
|
|
||||||
|
G_TOKEN_ERROR,
|
||||||
|
|
||||||
|
G_TOKEN_CHAR,
|
||||||
|
G_TOKEN_BINARY,
|
||||||
|
G_TOKEN_OCTAL,
|
||||||
|
G_TOKEN_INT,
|
||||||
|
G_TOKEN_HEX,
|
||||||
|
G_TOKEN_FLOAT,
|
||||||
|
G_TOKEN_STRING,
|
||||||
|
|
||||||
|
G_TOKEN_SYMBOL,
|
||||||
|
G_TOKEN_IDENTIFIER,
|
||||||
|
G_TOKEN_IDENTIFIER_NULL,
|
||||||
|
|
||||||
|
G_TOKEN_COMMENT_SINGLE,
|
||||||
|
G_TOKEN_COMMENT_MULTI,
|
||||||
|
|
||||||
|
/*< private >*/
|
||||||
|
G_TOKEN_LAST
|
||||||
|
} GTokenType;
|
||||||
|
|
||||||
|
union _GTokenValue
|
||||||
|
{
|
||||||
|
gpointer v_symbol;
|
||||||
|
gchar *v_identifier;
|
||||||
|
gulong v_binary;
|
||||||
|
gulong v_octal;
|
||||||
|
gulong v_int;
|
||||||
|
guint64 v_int64;
|
||||||
|
gdouble v_float;
|
||||||
|
gulong v_hex;
|
||||||
|
gchar *v_string;
|
||||||
|
gchar *v_comment;
|
||||||
|
guchar v_char;
|
||||||
|
guint v_error;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct _GScannerConfig
|
||||||
|
{
|
||||||
|
/* Character sets
|
||||||
|
*/
|
||||||
|
gchar *cset_skip_characters; /* default: " \t\n" */
|
||||||
|
gchar *cset_identifier_first;
|
||||||
|
gchar *cset_identifier_nth;
|
||||||
|
gchar *cpair_comment_single; /* default: "#\n" */
|
||||||
|
|
||||||
|
/* Should symbol lookup work case sensitive?
|
||||||
|
*/
|
||||||
|
guint case_sensitive : 1;
|
||||||
|
|
||||||
|
/* Boolean values to be adjusted "on the fly"
|
||||||
|
* to configure scanning behaviour.
|
||||||
|
*/
|
||||||
|
guint skip_comment_multi : 1; /* C like comment */
|
||||||
|
guint skip_comment_single : 1; /* single line comment */
|
||||||
|
guint scan_comment_multi : 1; /* scan multi line comments? */
|
||||||
|
guint scan_identifier : 1;
|
||||||
|
guint scan_identifier_1char : 1;
|
||||||
|
guint scan_identifier_NULL : 1;
|
||||||
|
guint scan_symbols : 1;
|
||||||
|
guint scan_binary : 1;
|
||||||
|
guint scan_octal : 1;
|
||||||
|
guint scan_float : 1;
|
||||||
|
guint scan_hex : 1; /* '0x0ff0' */
|
||||||
|
guint scan_hex_dollar : 1; /* '$0ff0' */
|
||||||
|
guint scan_string_sq : 1; /* string: 'anything' */
|
||||||
|
guint scan_string_dq : 1; /* string: "\\-escapes!\n" */
|
||||||
|
guint numbers_2_int : 1; /* bin, octal, hex => int */
|
||||||
|
guint int_2_float : 1; /* int => G_TOKEN_FLOAT? */
|
||||||
|
guint identifier_2_string : 1;
|
||||||
|
guint char_2_token : 1; /* return G_TOKEN_CHAR? */
|
||||||
|
guint symbol_2_token : 1;
|
||||||
|
guint scope_0_fallback : 1; /* try scope 0 on lookups? */
|
||||||
|
guint store_int64 : 1; /* use value.v_int64 rather than v_int */
|
||||||
|
|
||||||
|
/*< private >*/
|
||||||
|
guint padding_dummy;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct _GScanner
|
||||||
|
{
|
||||||
|
/* unused fields */
|
||||||
|
gpointer user_data;
|
||||||
|
guint max_parse_errors;
|
||||||
|
|
||||||
|
/* g_scanner_error() increments this field */
|
||||||
|
guint parse_errors;
|
||||||
|
|
||||||
|
/* name of input stream, featured by the default message handler */
|
||||||
|
const gchar *input_name;
|
||||||
|
|
||||||
|
/* quarked data */
|
||||||
|
GData *qdata;
|
||||||
|
|
||||||
|
/* link into the scanner configuration */
|
||||||
|
GScannerConfig *config;
|
||||||
|
|
||||||
|
/* fields filled in after g_scanner_get_next_token() */
|
||||||
|
GTokenType token;
|
||||||
|
GTokenValue value;
|
||||||
|
guint line;
|
||||||
|
guint position;
|
||||||
|
|
||||||
|
/* fields filled in after g_scanner_peek_next_token() */
|
||||||
|
GTokenType next_token;
|
||||||
|
GTokenValue next_value;
|
||||||
|
guint next_line;
|
||||||
|
guint next_position;
|
||||||
|
|
||||||
|
/*< private >*/
|
||||||
|
/* to be considered private */
|
||||||
|
GHashTable *symbol_table;
|
||||||
|
gint input_fd;
|
||||||
|
const gchar *text;
|
||||||
|
const gchar *text_end;
|
||||||
|
gchar *buffer;
|
||||||
|
guint scope_id;
|
||||||
|
|
||||||
|
/*< public >*/
|
||||||
|
/* handler function for _warn and _error */
|
||||||
|
GScannerMsgFunc msg_handler;
|
||||||
|
};
|
||||||
|
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GScanner* g_scanner_new (const GScannerConfig *config_templ);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_scanner_destroy (GScanner *scanner);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_scanner_input_file (GScanner *scanner,
|
||||||
|
gint input_fd);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_scanner_sync_file_offset (GScanner *scanner);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_scanner_input_text (GScanner *scanner,
|
||||||
|
const gchar *text,
|
||||||
|
guint text_len);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GTokenType g_scanner_get_next_token (GScanner *scanner);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GTokenType g_scanner_peek_next_token (GScanner *scanner);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GTokenType g_scanner_cur_token (GScanner *scanner);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GTokenValue g_scanner_cur_value (GScanner *scanner);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
guint g_scanner_cur_line (GScanner *scanner);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
guint g_scanner_cur_position (GScanner *scanner);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gboolean g_scanner_eof (GScanner *scanner);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
guint g_scanner_set_scope (GScanner *scanner,
|
||||||
|
guint scope_id);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_scanner_scope_add_symbol (GScanner *scanner,
|
||||||
|
guint scope_id,
|
||||||
|
const gchar *symbol,
|
||||||
|
gpointer value);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_scanner_scope_remove_symbol (GScanner *scanner,
|
||||||
|
guint scope_id,
|
||||||
|
const gchar *symbol);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gpointer g_scanner_scope_lookup_symbol (GScanner *scanner,
|
||||||
|
guint scope_id,
|
||||||
|
const gchar *symbol);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_scanner_scope_foreach_symbol (GScanner *scanner,
|
||||||
|
guint scope_id,
|
||||||
|
GHFunc func,
|
||||||
|
gpointer user_data);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gpointer g_scanner_lookup_symbol (GScanner *scanner,
|
||||||
|
const gchar *symbol);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_scanner_unexp_token (GScanner *scanner,
|
||||||
|
GTokenType expected_token,
|
||||||
|
const gchar *identifier_spec,
|
||||||
|
const gchar *symbol_spec,
|
||||||
|
const gchar *symbol_name,
|
||||||
|
const gchar *message,
|
||||||
|
gint is_error);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_scanner_error (GScanner *scanner,
|
||||||
|
const gchar *format,
|
||||||
|
...) G_GNUC_PRINTF (2,3);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_scanner_warn (GScanner *scanner,
|
||||||
|
const gchar *format,
|
||||||
|
...) G_GNUC_PRINTF (2,3);
|
||||||
|
|
||||||
|
#ifndef G_DISABLE_DEPRECATED
|
||||||
|
|
||||||
|
/* keep downward source compatibility */
|
||||||
|
#define g_scanner_add_symbol( scanner, symbol, value ) G_STMT_START { \
|
||||||
|
g_scanner_scope_add_symbol ((scanner), 0, (symbol), (value)); \
|
||||||
|
} G_STMT_END
|
||||||
|
#define g_scanner_remove_symbol( scanner, symbol ) G_STMT_START { \
|
||||||
|
g_scanner_scope_remove_symbol ((scanner), 0, (symbol)); \
|
||||||
|
} G_STMT_END
|
||||||
|
#define g_scanner_foreach_symbol( scanner, func, data ) G_STMT_START { \
|
||||||
|
g_scanner_scope_foreach_symbol ((scanner), 0, (func), (data)); \
|
||||||
|
} G_STMT_END
|
||||||
|
|
||||||
|
/* The following two functions are deprecated and will be removed in
|
||||||
|
* the next major release. They do no good. */
|
||||||
|
#define g_scanner_freeze_symbol_table(scanner) ((void)0)
|
||||||
|
#define g_scanner_thaw_symbol_table(scanner) ((void)0)
|
||||||
|
|
||||||
|
#endif /* G_DISABLE_DEPRECATED */
|
||||||
|
|
||||||
|
G_END_DECLS
|
||||||
|
|
||||||
|
#endif /* __G_SCANNER_H__ */
|
173
code/application/source/sf_app/code/source/sf_blue/inc/glib/glib/gsequence.h
Executable file
173
code/application/source/sf_app/code/source/sf_blue/inc/glib/glib/gsequence.h
Executable file
|
@ -0,0 +1,173 @@
|
||||||
|
/* GLIB - Library of useful routines for C programming
|
||||||
|
* Copyright (C) 2002, 2003, 2004, 2005, 2006, 2007
|
||||||
|
* Soeren Sandmann (sandmann@daimi.au.dk)
|
||||||
|
*
|
||||||
|
* This library 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 of the License, or (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This library 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 this library; if not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef __G_SEQUENCE_H__
|
||||||
|
#define __G_SEQUENCE_H__
|
||||||
|
|
||||||
|
#if !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION)
|
||||||
|
#error "Only <glib.h> can be included directly."
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include <glib/gtypes.h>
|
||||||
|
|
||||||
|
G_BEGIN_DECLS
|
||||||
|
|
||||||
|
typedef struct _GSequence GSequence;
|
||||||
|
typedef struct _GSequenceNode GSequenceIter;
|
||||||
|
|
||||||
|
typedef gint (* GSequenceIterCompareFunc) (GSequenceIter *a,
|
||||||
|
GSequenceIter *b,
|
||||||
|
gpointer data);
|
||||||
|
|
||||||
|
|
||||||
|
/* GSequence */
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GSequence * g_sequence_new (GDestroyNotify data_destroy);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_sequence_free (GSequence *seq);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gint g_sequence_get_length (GSequence *seq);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_sequence_foreach (GSequence *seq,
|
||||||
|
GFunc func,
|
||||||
|
gpointer user_data);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_sequence_foreach_range (GSequenceIter *begin,
|
||||||
|
GSequenceIter *end,
|
||||||
|
GFunc func,
|
||||||
|
gpointer user_data);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_sequence_sort (GSequence *seq,
|
||||||
|
GCompareDataFunc cmp_func,
|
||||||
|
gpointer cmp_data);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_sequence_sort_iter (GSequence *seq,
|
||||||
|
GSequenceIterCompareFunc cmp_func,
|
||||||
|
gpointer cmp_data);
|
||||||
|
GLIB_AVAILABLE_IN_2_48
|
||||||
|
gboolean g_sequence_is_empty (GSequence *seq);
|
||||||
|
|
||||||
|
|
||||||
|
/* Getting iters */
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GSequenceIter *g_sequence_get_begin_iter (GSequence *seq);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GSequenceIter *g_sequence_get_end_iter (GSequence *seq);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GSequenceIter *g_sequence_get_iter_at_pos (GSequence *seq,
|
||||||
|
gint pos);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GSequenceIter *g_sequence_append (GSequence *seq,
|
||||||
|
gpointer data);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GSequenceIter *g_sequence_prepend (GSequence *seq,
|
||||||
|
gpointer data);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GSequenceIter *g_sequence_insert_before (GSequenceIter *iter,
|
||||||
|
gpointer data);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_sequence_move (GSequenceIter *src,
|
||||||
|
GSequenceIter *dest);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_sequence_swap (GSequenceIter *a,
|
||||||
|
GSequenceIter *b);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GSequenceIter *g_sequence_insert_sorted (GSequence *seq,
|
||||||
|
gpointer data,
|
||||||
|
GCompareDataFunc cmp_func,
|
||||||
|
gpointer cmp_data);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GSequenceIter *g_sequence_insert_sorted_iter (GSequence *seq,
|
||||||
|
gpointer data,
|
||||||
|
GSequenceIterCompareFunc iter_cmp,
|
||||||
|
gpointer cmp_data);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_sequence_sort_changed (GSequenceIter *iter,
|
||||||
|
GCompareDataFunc cmp_func,
|
||||||
|
gpointer cmp_data);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_sequence_sort_changed_iter (GSequenceIter *iter,
|
||||||
|
GSequenceIterCompareFunc iter_cmp,
|
||||||
|
gpointer cmp_data);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_sequence_remove (GSequenceIter *iter);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_sequence_remove_range (GSequenceIter *begin,
|
||||||
|
GSequenceIter *end);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_sequence_move_range (GSequenceIter *dest,
|
||||||
|
GSequenceIter *begin,
|
||||||
|
GSequenceIter *end);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GSequenceIter *g_sequence_search (GSequence *seq,
|
||||||
|
gpointer data,
|
||||||
|
GCompareDataFunc cmp_func,
|
||||||
|
gpointer cmp_data);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GSequenceIter *g_sequence_search_iter (GSequence *seq,
|
||||||
|
gpointer data,
|
||||||
|
GSequenceIterCompareFunc iter_cmp,
|
||||||
|
gpointer cmp_data);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GSequenceIter *g_sequence_lookup (GSequence *seq,
|
||||||
|
gpointer data,
|
||||||
|
GCompareDataFunc cmp_func,
|
||||||
|
gpointer cmp_data);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GSequenceIter *g_sequence_lookup_iter (GSequence *seq,
|
||||||
|
gpointer data,
|
||||||
|
GSequenceIterCompareFunc iter_cmp,
|
||||||
|
gpointer cmp_data);
|
||||||
|
|
||||||
|
|
||||||
|
/* Dereferencing */
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gpointer g_sequence_get (GSequenceIter *iter);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_sequence_set (GSequenceIter *iter,
|
||||||
|
gpointer data);
|
||||||
|
|
||||||
|
/* Operations on GSequenceIter * */
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gboolean g_sequence_iter_is_begin (GSequenceIter *iter);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gboolean g_sequence_iter_is_end (GSequenceIter *iter);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GSequenceIter *g_sequence_iter_next (GSequenceIter *iter);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GSequenceIter *g_sequence_iter_prev (GSequenceIter *iter);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gint g_sequence_iter_get_position (GSequenceIter *iter);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GSequenceIter *g_sequence_iter_move (GSequenceIter *iter,
|
||||||
|
gint delta);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GSequence * g_sequence_iter_get_sequence (GSequenceIter *iter);
|
||||||
|
|
||||||
|
|
||||||
|
/* Search */
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gint g_sequence_iter_compare (GSequenceIter *a,
|
||||||
|
GSequenceIter *b);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GSequenceIter *g_sequence_range_get_midpoint (GSequenceIter *begin,
|
||||||
|
GSequenceIter *end);
|
||||||
|
|
||||||
|
G_END_DECLS
|
||||||
|
|
||||||
|
#endif /* __G_SEQUENCE_H__ */
|
59
code/application/source/sf_app/code/source/sf_blue/inc/glib/glib/gshell.h
Executable file
59
code/application/source/sf_app/code/source/sf_blue/inc/glib/glib/gshell.h
Executable file
|
@ -0,0 +1,59 @@
|
||||||
|
/* gshell.h - Shell-related utilities
|
||||||
|
*
|
||||||
|
* Copyright 2000 Red Hat, Inc.
|
||||||
|
*
|
||||||
|
* GLib 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 of the
|
||||||
|
* License, or (at your option) any later version.
|
||||||
|
*
|
||||||
|
* GLib 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 GLib; see the file COPYING.LIB. If not, write
|
||||||
|
* to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||||
|
* Boston, MA 02111-1307, USA.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef __G_SHELL_H__
|
||||||
|
#define __G_SHELL_H__
|
||||||
|
|
||||||
|
#if !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION)
|
||||||
|
#error "Only <glib.h> can be included directly."
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include <glib/gerror.h>
|
||||||
|
|
||||||
|
G_BEGIN_DECLS
|
||||||
|
|
||||||
|
#define G_SHELL_ERROR g_shell_error_quark ()
|
||||||
|
|
||||||
|
typedef enum
|
||||||
|
{
|
||||||
|
/* mismatched or otherwise mangled quoting */
|
||||||
|
G_SHELL_ERROR_BAD_QUOTING,
|
||||||
|
/* string to be parsed was empty */
|
||||||
|
G_SHELL_ERROR_EMPTY_STRING,
|
||||||
|
G_SHELL_ERROR_FAILED
|
||||||
|
} GShellError;
|
||||||
|
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GQuark g_shell_error_quark (void);
|
||||||
|
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gchar* g_shell_quote (const gchar *unquoted_string);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gchar* g_shell_unquote (const gchar *quoted_string,
|
||||||
|
GError **error);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gboolean g_shell_parse_argv (const gchar *command_line,
|
||||||
|
gint *argcp,
|
||||||
|
gchar ***argvp,
|
||||||
|
GError **error);
|
||||||
|
|
||||||
|
G_END_DECLS
|
||||||
|
|
||||||
|
#endif /* __G_SHELL_H__ */
|
99
code/application/source/sf_app/code/source/sf_blue/inc/glib/glib/gslice.h
Executable file
99
code/application/source/sf_app/code/source/sf_blue/inc/glib/glib/gslice.h
Executable file
|
@ -0,0 +1,99 @@
|
||||||
|
/* GLIB sliced memory - fast threaded memory chunk allocator
|
||||||
|
* Copyright (C) 2005 Tim Janik
|
||||||
|
*
|
||||||
|
* This library 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 of the License, or (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This library 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 this library; if not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef __G_SLICE_H__
|
||||||
|
#define __G_SLICE_H__
|
||||||
|
|
||||||
|
#if !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION)
|
||||||
|
#error "Only <glib.h> can be included directly."
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include <glib/gtypes.h>
|
||||||
|
|
||||||
|
G_BEGIN_DECLS
|
||||||
|
|
||||||
|
/* slices - fast allocation/release of small memory blocks
|
||||||
|
*/
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gpointer g_slice_alloc (gsize block_size) G_GNUC_MALLOC G_GNUC_ALLOC_SIZE(1);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gpointer g_slice_alloc0 (gsize block_size) G_GNUC_MALLOC G_GNUC_ALLOC_SIZE(1);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gpointer g_slice_copy (gsize block_size,
|
||||||
|
gconstpointer mem_block) G_GNUC_MALLOC G_GNUC_ALLOC_SIZE(1);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_slice_free1 (gsize block_size,
|
||||||
|
gpointer mem_block);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_slice_free_chain_with_offset (gsize block_size,
|
||||||
|
gpointer mem_chain,
|
||||||
|
gsize next_offset);
|
||||||
|
#define g_slice_new(type) ((type*) g_slice_alloc (sizeof (type)))
|
||||||
|
#define g_slice_new0(type) ((type*) g_slice_alloc0 (sizeof (type)))
|
||||||
|
/* MemoryBlockType *
|
||||||
|
* g_slice_dup (MemoryBlockType,
|
||||||
|
* MemoryBlockType *mem_block);
|
||||||
|
* g_slice_free (MemoryBlockType,
|
||||||
|
* MemoryBlockType *mem_block);
|
||||||
|
* g_slice_free_chain (MemoryBlockType,
|
||||||
|
* MemoryBlockType *first_chain_block,
|
||||||
|
* memory_block_next_field);
|
||||||
|
* pseudo prototypes for the macro
|
||||||
|
* definitions following below.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* we go through extra hoops to ensure type safety */
|
||||||
|
#define g_slice_dup(type, mem) \
|
||||||
|
(1 ? (type*) g_slice_copy (sizeof (type), (mem)) \
|
||||||
|
: ((void) ((type*) 0 == (mem)), (type*) 0))
|
||||||
|
#define g_slice_free(type, mem) \
|
||||||
|
G_STMT_START { \
|
||||||
|
if (1) g_slice_free1 (sizeof (type), (mem)); \
|
||||||
|
else (void) ((type*) 0 == (mem)); \
|
||||||
|
} G_STMT_END
|
||||||
|
#define g_slice_free_chain(type, mem_chain, next) \
|
||||||
|
G_STMT_START { \
|
||||||
|
if (1) g_slice_free_chain_with_offset (sizeof (type), \
|
||||||
|
(mem_chain), G_STRUCT_OFFSET (type, next)); \
|
||||||
|
else (void) ((type*) 0 == (mem_chain)); \
|
||||||
|
} G_STMT_END
|
||||||
|
|
||||||
|
/* --- internal debugging API --- */
|
||||||
|
typedef enum {
|
||||||
|
G_SLICE_CONFIG_ALWAYS_MALLOC = 1,
|
||||||
|
G_SLICE_CONFIG_BYPASS_MAGAZINES,
|
||||||
|
G_SLICE_CONFIG_WORKING_SET_MSECS,
|
||||||
|
G_SLICE_CONFIG_COLOR_INCREMENT,
|
||||||
|
G_SLICE_CONFIG_CHUNK_SIZES,
|
||||||
|
G_SLICE_CONFIG_CONTENTION_COUNTER
|
||||||
|
} GSliceConfig;
|
||||||
|
|
||||||
|
GLIB_DEPRECATED_IN_2_34
|
||||||
|
void g_slice_set_config (GSliceConfig ckey, gint64 value);
|
||||||
|
GLIB_DEPRECATED_IN_2_34
|
||||||
|
gint64 g_slice_get_config (GSliceConfig ckey);
|
||||||
|
GLIB_DEPRECATED_IN_2_34
|
||||||
|
gint64* g_slice_get_config_state (GSliceConfig ckey, gint64 address, guint *n_values);
|
||||||
|
|
||||||
|
#ifdef G_ENABLE_DEBUG
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_slice_debug_tree_statistics (void);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
G_END_DECLS
|
||||||
|
|
||||||
|
#endif /* __G_SLICE_H__ */
|
143
code/application/source/sf_app/code/source/sf_blue/inc/glib/glib/gslist.h
Executable file
143
code/application/source/sf_app/code/source/sf_blue/inc/glib/glib/gslist.h
Executable file
|
@ -0,0 +1,143 @@
|
||||||
|
/* GLIB - Library of useful routines for C programming
|
||||||
|
* Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald
|
||||||
|
*
|
||||||
|
* This library 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 of the License, or (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This library 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 this library; if not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Modified by the GLib Team and others 1997-2000. See the AUTHORS
|
||||||
|
* file for a list of people on the GLib Team. See the ChangeLog
|
||||||
|
* files for a list of changes. These files are distributed with
|
||||||
|
* GLib at ftp://ftp.gtk.org/pub/gtk/.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef __G_SLIST_H__
|
||||||
|
#define __G_SLIST_H__
|
||||||
|
|
||||||
|
#if !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION)
|
||||||
|
#error "Only <glib.h> can be included directly."
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include <glib/gmem.h>
|
||||||
|
#include <glib/gnode.h>
|
||||||
|
|
||||||
|
G_BEGIN_DECLS
|
||||||
|
|
||||||
|
typedef struct _GSList GSList;
|
||||||
|
|
||||||
|
struct _GSList
|
||||||
|
{
|
||||||
|
gpointer data;
|
||||||
|
GSList *next;
|
||||||
|
};
|
||||||
|
|
||||||
|
/* Singly linked lists
|
||||||
|
*/
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GSList* g_slist_alloc (void) G_GNUC_WARN_UNUSED_RESULT;
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_slist_free (GSList *list);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_slist_free_1 (GSList *list);
|
||||||
|
#define g_slist_free1 g_slist_free_1
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_slist_free_full (GSList *list,
|
||||||
|
GDestroyNotify free_func);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GSList* g_slist_append (GSList *list,
|
||||||
|
gpointer data) G_GNUC_WARN_UNUSED_RESULT;
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GSList* g_slist_prepend (GSList *list,
|
||||||
|
gpointer data) G_GNUC_WARN_UNUSED_RESULT;
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GSList* g_slist_insert (GSList *list,
|
||||||
|
gpointer data,
|
||||||
|
gint position) G_GNUC_WARN_UNUSED_RESULT;
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GSList* g_slist_insert_sorted (GSList *list,
|
||||||
|
gpointer data,
|
||||||
|
GCompareFunc func) G_GNUC_WARN_UNUSED_RESULT;
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GSList* g_slist_insert_sorted_with_data (GSList *list,
|
||||||
|
gpointer data,
|
||||||
|
GCompareDataFunc func,
|
||||||
|
gpointer user_data) G_GNUC_WARN_UNUSED_RESULT;
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GSList* g_slist_insert_before (GSList *slist,
|
||||||
|
GSList *sibling,
|
||||||
|
gpointer data) G_GNUC_WARN_UNUSED_RESULT;
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GSList* g_slist_concat (GSList *list1,
|
||||||
|
GSList *list2) G_GNUC_WARN_UNUSED_RESULT;
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GSList* g_slist_remove (GSList *list,
|
||||||
|
gconstpointer data) G_GNUC_WARN_UNUSED_RESULT;
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GSList* g_slist_remove_all (GSList *list,
|
||||||
|
gconstpointer data) G_GNUC_WARN_UNUSED_RESULT;
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GSList* g_slist_remove_link (GSList *list,
|
||||||
|
GSList *link_) G_GNUC_WARN_UNUSED_RESULT;
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GSList* g_slist_delete_link (GSList *list,
|
||||||
|
GSList *link_) G_GNUC_WARN_UNUSED_RESULT;
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GSList* g_slist_reverse (GSList *list) G_GNUC_WARN_UNUSED_RESULT;
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GSList* g_slist_copy (GSList *list) G_GNUC_WARN_UNUSED_RESULT;
|
||||||
|
|
||||||
|
GLIB_AVAILABLE_IN_2_34
|
||||||
|
GSList* g_slist_copy_deep (GSList *list,
|
||||||
|
GCopyFunc func,
|
||||||
|
gpointer user_data) G_GNUC_WARN_UNUSED_RESULT;
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GSList* g_slist_nth (GSList *list,
|
||||||
|
guint n);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GSList* g_slist_find (GSList *list,
|
||||||
|
gconstpointer data);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GSList* g_slist_find_custom (GSList *list,
|
||||||
|
gconstpointer data,
|
||||||
|
GCompareFunc func);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gint g_slist_position (GSList *list,
|
||||||
|
GSList *llink);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gint g_slist_index (GSList *list,
|
||||||
|
gconstpointer data);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GSList* g_slist_last (GSList *list);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
guint g_slist_length (GSList *list);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_slist_foreach (GSList *list,
|
||||||
|
GFunc func,
|
||||||
|
gpointer user_data);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GSList* g_slist_sort (GSList *list,
|
||||||
|
GCompareFunc compare_func) G_GNUC_WARN_UNUSED_RESULT;
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GSList* g_slist_sort_with_data (GSList *list,
|
||||||
|
GCompareDataFunc compare_func,
|
||||||
|
gpointer user_data) G_GNUC_WARN_UNUSED_RESULT;
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gpointer g_slist_nth_data (GSList *list,
|
||||||
|
guint n);
|
||||||
|
|
||||||
|
#define g_slist_next(slist) ((slist) ? (((GSList *)(slist))->next) : NULL)
|
||||||
|
|
||||||
|
G_END_DECLS
|
||||||
|
|
||||||
|
#endif /* __G_SLIST_H__ */
|
309
code/application/source/sf_app/code/source/sf_blue/inc/glib/glib/gspawn.h
Executable file
309
code/application/source/sf_app/code/source/sf_blue/inc/glib/glib/gspawn.h
Executable file
|
@ -0,0 +1,309 @@
|
||||||
|
/* gspawn.h - Process launching
|
||||||
|
*
|
||||||
|
* Copyright 2000 Red Hat, Inc.
|
||||||
|
*
|
||||||
|
* GLib 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 of the
|
||||||
|
* License, or (at your option) any later version.
|
||||||
|
*
|
||||||
|
* GLib 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 GLib; see the file COPYING.LIB. If not, write
|
||||||
|
* to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||||
|
* Boston, MA 02111-1307, USA.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef __G_SPAWN_H__
|
||||||
|
#define __G_SPAWN_H__
|
||||||
|
|
||||||
|
#if !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION)
|
||||||
|
#error "Only <glib.h> can be included directly."
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include <glib/gerror.h>
|
||||||
|
|
||||||
|
G_BEGIN_DECLS
|
||||||
|
|
||||||
|
|
||||||
|
/* I'm not sure I remember our proposed naming convention here. */
|
||||||
|
/**
|
||||||
|
* G_SPAWN_ERROR:
|
||||||
|
*
|
||||||
|
* Error domain for spawning processes. Errors in this domain will
|
||||||
|
* be from the #GSpawnError enumeration. See #GError for information on
|
||||||
|
* error domains.
|
||||||
|
*/
|
||||||
|
#define G_SPAWN_ERROR g_spawn_error_quark ()
|
||||||
|
|
||||||
|
/**
|
||||||
|
* GSpawnError:
|
||||||
|
* @G_SPAWN_ERROR_FORK: Fork failed due to lack of memory.
|
||||||
|
* @G_SPAWN_ERROR_READ: Read or select on pipes failed.
|
||||||
|
* @G_SPAWN_ERROR_CHDIR: Changing to working directory failed.
|
||||||
|
* @G_SPAWN_ERROR_ACCES: execv() returned `EACCES`
|
||||||
|
* @G_SPAWN_ERROR_PERM: execv() returned `EPERM`
|
||||||
|
* @G_SPAWN_ERROR_TOO_BIG: execv() returned `E2BIG`
|
||||||
|
* @G_SPAWN_ERROR_2BIG: deprecated alias for %G_SPAWN_ERROR_TOO_BIG
|
||||||
|
* @G_SPAWN_ERROR_NOEXEC: execv() returned `ENOEXEC`
|
||||||
|
* @G_SPAWN_ERROR_NAMETOOLONG: execv() returned `ENAMETOOLONG`
|
||||||
|
* @G_SPAWN_ERROR_NOENT: execv() returned `ENOENT`
|
||||||
|
* @G_SPAWN_ERROR_NOMEM: execv() returned `ENOMEM`
|
||||||
|
* @G_SPAWN_ERROR_NOTDIR: execv() returned `ENOTDIR`
|
||||||
|
* @G_SPAWN_ERROR_LOOP: execv() returned `ELOOP`
|
||||||
|
* @G_SPAWN_ERROR_TXTBUSY: execv() returned `ETXTBUSY`
|
||||||
|
* @G_SPAWN_ERROR_IO: execv() returned `EIO`
|
||||||
|
* @G_SPAWN_ERROR_NFILE: execv() returned `ENFILE`
|
||||||
|
* @G_SPAWN_ERROR_MFILE: execv() returned `EMFILE`
|
||||||
|
* @G_SPAWN_ERROR_INVAL: execv() returned `EINVAL`
|
||||||
|
* @G_SPAWN_ERROR_ISDIR: execv() returned `EISDIR`
|
||||||
|
* @G_SPAWN_ERROR_LIBBAD: execv() returned `ELIBBAD`
|
||||||
|
* @G_SPAWN_ERROR_FAILED: Some other fatal failure,
|
||||||
|
* `error->message` should explain.
|
||||||
|
*
|
||||||
|
* Error codes returned by spawning processes.
|
||||||
|
*/
|
||||||
|
typedef enum
|
||||||
|
{
|
||||||
|
G_SPAWN_ERROR_FORK, /* fork failed due to lack of memory */
|
||||||
|
G_SPAWN_ERROR_READ, /* read or select on pipes failed */
|
||||||
|
G_SPAWN_ERROR_CHDIR, /* changing to working dir failed */
|
||||||
|
G_SPAWN_ERROR_ACCES, /* execv() returned EACCES */
|
||||||
|
G_SPAWN_ERROR_PERM, /* execv() returned EPERM */
|
||||||
|
G_SPAWN_ERROR_TOO_BIG,/* execv() returned E2BIG */
|
||||||
|
#ifndef G_DISABLE_DEPRECATED
|
||||||
|
G_SPAWN_ERROR_2BIG = G_SPAWN_ERROR_TOO_BIG,
|
||||||
|
#endif
|
||||||
|
G_SPAWN_ERROR_NOEXEC, /* execv() returned ENOEXEC */
|
||||||
|
G_SPAWN_ERROR_NAMETOOLONG, /* "" "" ENAMETOOLONG */
|
||||||
|
G_SPAWN_ERROR_NOENT, /* "" "" ENOENT */
|
||||||
|
G_SPAWN_ERROR_NOMEM, /* "" "" ENOMEM */
|
||||||
|
G_SPAWN_ERROR_NOTDIR, /* "" "" ENOTDIR */
|
||||||
|
G_SPAWN_ERROR_LOOP, /* "" "" ELOOP */
|
||||||
|
G_SPAWN_ERROR_TXTBUSY, /* "" "" ETXTBUSY */
|
||||||
|
G_SPAWN_ERROR_IO, /* "" "" EIO */
|
||||||
|
G_SPAWN_ERROR_NFILE, /* "" "" ENFILE */
|
||||||
|
G_SPAWN_ERROR_MFILE, /* "" "" EMFLE */
|
||||||
|
G_SPAWN_ERROR_INVAL, /* "" "" EINVAL */
|
||||||
|
G_SPAWN_ERROR_ISDIR, /* "" "" EISDIR */
|
||||||
|
G_SPAWN_ERROR_LIBBAD, /* "" "" ELIBBAD */
|
||||||
|
G_SPAWN_ERROR_FAILED /* other fatal failure, error->message
|
||||||
|
* should explain
|
||||||
|
*/
|
||||||
|
} GSpawnError;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* G_SPAWN_EXIT_ERROR:
|
||||||
|
*
|
||||||
|
* Error domain used by g_spawn_check_exit_status(). The code
|
||||||
|
* will be the program exit code.
|
||||||
|
*/
|
||||||
|
#define G_SPAWN_EXIT_ERROR g_spawn_exit_error_quark ()
|
||||||
|
|
||||||
|
/**
|
||||||
|
* GSpawnChildSetupFunc:
|
||||||
|
* @user_data: user data to pass to the function.
|
||||||
|
*
|
||||||
|
* Specifies the type of the setup function passed to g_spawn_async(),
|
||||||
|
* g_spawn_sync() and g_spawn_async_with_pipes(), which can, in very
|
||||||
|
* limited ways, be used to affect the child's execution.
|
||||||
|
*
|
||||||
|
* On POSIX platforms, the function is called in the child after GLib
|
||||||
|
* has performed all the setup it plans to perform, but before calling
|
||||||
|
* exec(). Actions taken in this function will only affect the child,
|
||||||
|
* not the parent.
|
||||||
|
*
|
||||||
|
* On Windows, the function is called in the parent. Its usefulness on
|
||||||
|
* Windows is thus questionable. In many cases executing the child setup
|
||||||
|
* function in the parent can have ill effects, and you should be very
|
||||||
|
* careful when porting software to Windows that uses child setup
|
||||||
|
* functions.
|
||||||
|
*
|
||||||
|
* However, even on POSIX, you are extremely limited in what you can
|
||||||
|
* safely do from a #GSpawnChildSetupFunc, because any mutexes that were
|
||||||
|
* held by other threads in the parent process at the time of the fork()
|
||||||
|
* will still be locked in the child process, and they will never be
|
||||||
|
* unlocked (since the threads that held them don't exist in the child).
|
||||||
|
* POSIX allows only async-signal-safe functions (see signal(7)) to be
|
||||||
|
* called in the child between fork() and exec(), which drastically limits
|
||||||
|
* the usefulness of child setup functions.
|
||||||
|
*
|
||||||
|
* In particular, it is not safe to call any function which may
|
||||||
|
* call malloc(), which includes POSIX functions such as setenv().
|
||||||
|
* If you need to set up the child environment differently from
|
||||||
|
* the parent, you should use g_get_environ(), g_environ_setenv(),
|
||||||
|
* and g_environ_unsetenv(), and then pass the complete environment
|
||||||
|
* list to the `g_spawn...` function.
|
||||||
|
*/
|
||||||
|
typedef void (* GSpawnChildSetupFunc) (gpointer user_data);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* GSpawnFlags:
|
||||||
|
* @G_SPAWN_DEFAULT: no flags, default behaviour
|
||||||
|
* @G_SPAWN_LEAVE_DESCRIPTORS_OPEN: the parent's open file descriptors will
|
||||||
|
* be inherited by the child; otherwise all descriptors except stdin,
|
||||||
|
* stdout and stderr will be closed before calling exec() in the child.
|
||||||
|
* @G_SPAWN_DO_NOT_REAP_CHILD: the child will not be automatically reaped;
|
||||||
|
* you must use g_child_watch_add() yourself (or call waitpid() or handle
|
||||||
|
* `SIGCHLD` yourself), or the child will become a zombie.
|
||||||
|
* @G_SPAWN_SEARCH_PATH: `argv[0]` need not be an absolute path, it will be
|
||||||
|
* looked for in the user's `PATH`.
|
||||||
|
* @G_SPAWN_STDOUT_TO_DEV_NULL: the child's standard output will be discarded,
|
||||||
|
* instead of going to the same location as the parent's standard output.
|
||||||
|
* @G_SPAWN_STDERR_TO_DEV_NULL: the child's standard error will be discarded.
|
||||||
|
* @G_SPAWN_CHILD_INHERITS_STDIN: the child will inherit the parent's standard
|
||||||
|
* input (by default, the child's standard input is attached to `/dev/null`).
|
||||||
|
* @G_SPAWN_FILE_AND_ARGV_ZERO: the first element of `argv` is the file to
|
||||||
|
* execute, while the remaining elements are the actual argument vector
|
||||||
|
* to pass to the file. Normally g_spawn_async_with_pipes() uses `argv[0]`
|
||||||
|
* as the file to execute, and passes all of `argv` to the child.
|
||||||
|
* @G_SPAWN_SEARCH_PATH_FROM_ENVP: if `argv[0]` is not an abolute path,
|
||||||
|
* it will be looked for in the `PATH` from the passed child environment.
|
||||||
|
* Since: 2.34
|
||||||
|
* @G_SPAWN_CLOEXEC_PIPES: create all pipes with the `O_CLOEXEC` flag set.
|
||||||
|
* Since: 2.40
|
||||||
|
*
|
||||||
|
* Flags passed to g_spawn_sync(), g_spawn_async() and g_spawn_async_with_pipes().
|
||||||
|
*/
|
||||||
|
typedef enum
|
||||||
|
{
|
||||||
|
G_SPAWN_DEFAULT = 0,
|
||||||
|
G_SPAWN_LEAVE_DESCRIPTORS_OPEN = 1 << 0,
|
||||||
|
G_SPAWN_DO_NOT_REAP_CHILD = 1 << 1,
|
||||||
|
/* look for argv[0] in the path i.e. use execvp() */
|
||||||
|
G_SPAWN_SEARCH_PATH = 1 << 2,
|
||||||
|
/* Dump output to /dev/null */
|
||||||
|
G_SPAWN_STDOUT_TO_DEV_NULL = 1 << 3,
|
||||||
|
G_SPAWN_STDERR_TO_DEV_NULL = 1 << 4,
|
||||||
|
G_SPAWN_CHILD_INHERITS_STDIN = 1 << 5,
|
||||||
|
G_SPAWN_FILE_AND_ARGV_ZERO = 1 << 6,
|
||||||
|
G_SPAWN_SEARCH_PATH_FROM_ENVP = 1 << 7,
|
||||||
|
G_SPAWN_CLOEXEC_PIPES = 1 << 8
|
||||||
|
} GSpawnFlags;
|
||||||
|
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GQuark g_spawn_error_quark (void);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GQuark g_spawn_exit_error_quark (void);
|
||||||
|
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gboolean g_spawn_async (const gchar *working_directory,
|
||||||
|
gchar **argv,
|
||||||
|
gchar **envp,
|
||||||
|
GSpawnFlags flags,
|
||||||
|
GSpawnChildSetupFunc child_setup,
|
||||||
|
gpointer user_data,
|
||||||
|
GPid *child_pid,
|
||||||
|
GError **error);
|
||||||
|
|
||||||
|
|
||||||
|
/* Opens pipes for non-NULL standard_output, standard_input, standard_error,
|
||||||
|
* and returns the parent's end of the pipes.
|
||||||
|
*/
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gboolean g_spawn_async_with_pipes (const gchar *working_directory,
|
||||||
|
gchar **argv,
|
||||||
|
gchar **envp,
|
||||||
|
GSpawnFlags flags,
|
||||||
|
GSpawnChildSetupFunc child_setup,
|
||||||
|
gpointer user_data,
|
||||||
|
GPid *child_pid,
|
||||||
|
gint *standard_input,
|
||||||
|
gint *standard_output,
|
||||||
|
gint *standard_error,
|
||||||
|
GError **error);
|
||||||
|
|
||||||
|
|
||||||
|
/* If standard_output or standard_error are non-NULL, the full
|
||||||
|
* standard output or error of the command will be placed there.
|
||||||
|
*/
|
||||||
|
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gboolean g_spawn_sync (const gchar *working_directory,
|
||||||
|
gchar **argv,
|
||||||
|
gchar **envp,
|
||||||
|
GSpawnFlags flags,
|
||||||
|
GSpawnChildSetupFunc child_setup,
|
||||||
|
gpointer user_data,
|
||||||
|
gchar **standard_output,
|
||||||
|
gchar **standard_error,
|
||||||
|
gint *exit_status,
|
||||||
|
GError **error);
|
||||||
|
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gboolean g_spawn_command_line_sync (const gchar *command_line,
|
||||||
|
gchar **standard_output,
|
||||||
|
gchar **standard_error,
|
||||||
|
gint *exit_status,
|
||||||
|
GError **error);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gboolean g_spawn_command_line_async (const gchar *command_line,
|
||||||
|
GError **error);
|
||||||
|
|
||||||
|
GLIB_AVAILABLE_IN_2_34
|
||||||
|
gboolean g_spawn_check_exit_status (gint exit_status,
|
||||||
|
GError **error);
|
||||||
|
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_spawn_close_pid (GPid pid);
|
||||||
|
|
||||||
|
#ifndef __GTK_DOC_IGNORE__
|
||||||
|
#ifdef G_OS_WIN32
|
||||||
|
#define g_spawn_async g_spawn_async_utf8
|
||||||
|
#define g_spawn_async_with_pipes g_spawn_async_with_pipes_utf8
|
||||||
|
#define g_spawn_sync g_spawn_sync_utf8
|
||||||
|
#define g_spawn_command_line_sync g_spawn_command_line_sync_utf8
|
||||||
|
#define g_spawn_command_line_async g_spawn_command_line_async_utf8
|
||||||
|
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gboolean g_spawn_async_utf8 (const gchar *working_directory,
|
||||||
|
gchar **argv,
|
||||||
|
gchar **envp,
|
||||||
|
GSpawnFlags flags,
|
||||||
|
GSpawnChildSetupFunc child_setup,
|
||||||
|
gpointer user_data,
|
||||||
|
GPid *child_pid,
|
||||||
|
GError **error);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gboolean g_spawn_async_with_pipes_utf8 (const gchar *working_directory,
|
||||||
|
gchar **argv,
|
||||||
|
gchar **envp,
|
||||||
|
GSpawnFlags flags,
|
||||||
|
GSpawnChildSetupFunc child_setup,
|
||||||
|
gpointer user_data,
|
||||||
|
GPid *child_pid,
|
||||||
|
gint *standard_input,
|
||||||
|
gint *standard_output,
|
||||||
|
gint *standard_error,
|
||||||
|
GError **error);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gboolean g_spawn_sync_utf8 (const gchar *working_directory,
|
||||||
|
gchar **argv,
|
||||||
|
gchar **envp,
|
||||||
|
GSpawnFlags flags,
|
||||||
|
GSpawnChildSetupFunc child_setup,
|
||||||
|
gpointer user_data,
|
||||||
|
gchar **standard_output,
|
||||||
|
gchar **standard_error,
|
||||||
|
gint *exit_status,
|
||||||
|
GError **error);
|
||||||
|
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gboolean g_spawn_command_line_sync_utf8 (const gchar *command_line,
|
||||||
|
gchar **standard_output,
|
||||||
|
gchar **standard_error,
|
||||||
|
gint *exit_status,
|
||||||
|
GError **error);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gboolean g_spawn_command_line_async_utf8 (const gchar *command_line,
|
||||||
|
GError **error);
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
G_END_DECLS
|
||||||
|
|
||||||
|
#endif /* __G_SPAWN_H__ */
|
171
code/application/source/sf_app/code/source/sf_blue/inc/glib/glib/gstdio.h
Executable file
171
code/application/source/sf_app/code/source/sf_blue/inc/glib/glib/gstdio.h
Executable file
|
@ -0,0 +1,171 @@
|
||||||
|
/* gstdio.h - GFilename wrappers for C library functions
|
||||||
|
*
|
||||||
|
* Copyright 2004 Tor Lillqvist
|
||||||
|
*
|
||||||
|
* GLib 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 of the
|
||||||
|
* License, or (at your option) any later version.
|
||||||
|
*
|
||||||
|
* GLib 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 GLib; see the file COPYING.LIB. If not,
|
||||||
|
* see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef __G_STDIO_H__
|
||||||
|
#define __G_STDIO_H__
|
||||||
|
|
||||||
|
#include <glib/gprintf.h>
|
||||||
|
|
||||||
|
#include <sys/stat.h>
|
||||||
|
|
||||||
|
G_BEGIN_DECLS
|
||||||
|
|
||||||
|
#if (defined (__MINGW64_VERSION_MAJOR) || defined (_MSC_VER)) && !defined(_WIN64)
|
||||||
|
|
||||||
|
/* Make it clear that we mean the struct with 32-bit st_size and
|
||||||
|
* 32-bit st_*time fields as that is how the 32-bit GLib DLL normally
|
||||||
|
* has been compiled. If you get a compiler warning when calling
|
||||||
|
* g_stat(), do take it seriously and make sure that the type of
|
||||||
|
* struct stat the code in GLib fills in matches the struct the type
|
||||||
|
* of struct stat you pass to g_stat(). To avoid hassle, to get file
|
||||||
|
* attributes just use the GIO API instead which doesn't use struct
|
||||||
|
* stat.
|
||||||
|
*
|
||||||
|
* Sure, it would be nicer to use a struct with 64-bit st_size and
|
||||||
|
* 64-bit st_*time fields, but changing that now would break ABI. And
|
||||||
|
* in MinGW, a plain "struct stat" is the one with 32-bit st_size and
|
||||||
|
* st_*time fields.
|
||||||
|
*/
|
||||||
|
|
||||||
|
typedef struct _stat32 GStatBuf;
|
||||||
|
|
||||||
|
#else
|
||||||
|
|
||||||
|
typedef struct stat GStatBuf;
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined(G_OS_UNIX) && !defined(G_STDIO_NO_WRAP_ON_UNIX)
|
||||||
|
|
||||||
|
/* Just pass on to the system functions, so there's no potential for data
|
||||||
|
* format mismatches, especially with large file interfaces.
|
||||||
|
* A few functions can't be handled in this way, since they are not defined
|
||||||
|
* in a portable system header that we could include here.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef __GTK_DOC_IGNORE__
|
||||||
|
#define g_chmod chmod
|
||||||
|
#define g_open open
|
||||||
|
#define g_creat creat
|
||||||
|
#define g_rename rename
|
||||||
|
#define g_mkdir mkdir
|
||||||
|
#define g_stat stat
|
||||||
|
#define g_lstat lstat
|
||||||
|
#define g_remove remove
|
||||||
|
#define g_fopen fopen
|
||||||
|
#define g_freopen freopen
|
||||||
|
#define g_utime utime
|
||||||
|
#endif
|
||||||
|
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
int g_access (const gchar *filename,
|
||||||
|
int mode);
|
||||||
|
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
int g_chdir (const gchar *path);
|
||||||
|
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
int g_unlink (const gchar *filename);
|
||||||
|
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
int g_rmdir (const gchar *filename);
|
||||||
|
|
||||||
|
#else /* ! G_OS_UNIX */
|
||||||
|
|
||||||
|
/* Wrappers for C library functions that take pathname arguments. On
|
||||||
|
* Unix, the pathname is a file name as it literally is in the file
|
||||||
|
* system. On well-maintained systems with consistent users who know
|
||||||
|
* what they are doing and no exchange of files with others this would
|
||||||
|
* be a well-defined encoding, preferably UTF-8. On Windows, the
|
||||||
|
* pathname is always in UTF-8, even if that is not the on-disk
|
||||||
|
* encoding, and not the encoding accepted by the C library or Win32
|
||||||
|
* API.
|
||||||
|
*/
|
||||||
|
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
int g_access (const gchar *filename,
|
||||||
|
int mode);
|
||||||
|
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
int g_chmod (const gchar *filename,
|
||||||
|
int mode);
|
||||||
|
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
int g_open (const gchar *filename,
|
||||||
|
int flags,
|
||||||
|
int mode);
|
||||||
|
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
int g_creat (const gchar *filename,
|
||||||
|
int mode);
|
||||||
|
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
int g_rename (const gchar *oldfilename,
|
||||||
|
const gchar *newfilename);
|
||||||
|
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
int g_mkdir (const gchar *filename,
|
||||||
|
int mode);
|
||||||
|
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
int g_chdir (const gchar *path);
|
||||||
|
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
int g_stat (const gchar *filename,
|
||||||
|
GStatBuf *buf);
|
||||||
|
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
int g_lstat (const gchar *filename,
|
||||||
|
GStatBuf *buf);
|
||||||
|
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
int g_unlink (const gchar *filename);
|
||||||
|
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
int g_remove (const gchar *filename);
|
||||||
|
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
int g_rmdir (const gchar *filename);
|
||||||
|
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
FILE *g_fopen (const gchar *filename,
|
||||||
|
const gchar *mode);
|
||||||
|
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
FILE *g_freopen (const gchar *filename,
|
||||||
|
const gchar *mode,
|
||||||
|
FILE *stream);
|
||||||
|
|
||||||
|
struct utimbuf; /* Don't need the real definition of struct utimbuf when just
|
||||||
|
* including this header.
|
||||||
|
*/
|
||||||
|
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
int g_utime (const gchar *filename,
|
||||||
|
struct utimbuf *utb);
|
||||||
|
|
||||||
|
#endif /* G_OS_UNIX */
|
||||||
|
|
||||||
|
GLIB_AVAILABLE_IN_2_36
|
||||||
|
gboolean g_close (gint fd,
|
||||||
|
GError **error);
|
||||||
|
|
||||||
|
G_END_DECLS
|
||||||
|
|
||||||
|
#endif /* __G_STDIO_H__ */
|
311
code/application/source/sf_app/code/source/sf_blue/inc/glib/glib/gstrfuncs.h
Executable file
311
code/application/source/sf_app/code/source/sf_blue/inc/glib/glib/gstrfuncs.h
Executable file
|
@ -0,0 +1,311 @@
|
||||||
|
/* GLIB - Library of useful routines for C programming
|
||||||
|
* Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald
|
||||||
|
*
|
||||||
|
* This library 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 of the License, or (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This library 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 this library; if not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Modified by the GLib Team and others 1997-2000. See the AUTHORS
|
||||||
|
* file for a list of people on the GLib Team. See the ChangeLog
|
||||||
|
* files for a list of changes. These files are distributed with
|
||||||
|
* GLib at ftp://ftp.gtk.org/pub/gtk/.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef __G_STRFUNCS_H__
|
||||||
|
#define __G_STRFUNCS_H__
|
||||||
|
|
||||||
|
#if !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION)
|
||||||
|
#error "Only <glib.h> can be included directly."
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include <stdarg.h>
|
||||||
|
#include <glib/gmacros.h>
|
||||||
|
#include <glib/gtypes.h>
|
||||||
|
|
||||||
|
G_BEGIN_DECLS
|
||||||
|
|
||||||
|
/* Functions like the ones in <ctype.h> that are not affected by locale. */
|
||||||
|
typedef enum {
|
||||||
|
G_ASCII_ALNUM = 1 << 0,
|
||||||
|
G_ASCII_ALPHA = 1 << 1,
|
||||||
|
G_ASCII_CNTRL = 1 << 2,
|
||||||
|
G_ASCII_DIGIT = 1 << 3,
|
||||||
|
G_ASCII_GRAPH = 1 << 4,
|
||||||
|
G_ASCII_LOWER = 1 << 5,
|
||||||
|
G_ASCII_PRINT = 1 << 6,
|
||||||
|
G_ASCII_PUNCT = 1 << 7,
|
||||||
|
G_ASCII_SPACE = 1 << 8,
|
||||||
|
G_ASCII_UPPER = 1 << 9,
|
||||||
|
G_ASCII_XDIGIT = 1 << 10
|
||||||
|
} GAsciiType;
|
||||||
|
|
||||||
|
GLIB_VAR const guint16 * const g_ascii_table;
|
||||||
|
|
||||||
|
#define g_ascii_isalnum(c) \
|
||||||
|
((g_ascii_table[(guchar) (c)] & G_ASCII_ALNUM) != 0)
|
||||||
|
|
||||||
|
#define g_ascii_isalpha(c) \
|
||||||
|
((g_ascii_table[(guchar) (c)] & G_ASCII_ALPHA) != 0)
|
||||||
|
|
||||||
|
#define g_ascii_iscntrl(c) \
|
||||||
|
((g_ascii_table[(guchar) (c)] & G_ASCII_CNTRL) != 0)
|
||||||
|
|
||||||
|
#define g_ascii_isdigit(c) \
|
||||||
|
((g_ascii_table[(guchar) (c)] & G_ASCII_DIGIT) != 0)
|
||||||
|
|
||||||
|
#define g_ascii_isgraph(c) \
|
||||||
|
((g_ascii_table[(guchar) (c)] & G_ASCII_GRAPH) != 0)
|
||||||
|
|
||||||
|
#define g_ascii_islower(c) \
|
||||||
|
((g_ascii_table[(guchar) (c)] & G_ASCII_LOWER) != 0)
|
||||||
|
|
||||||
|
#define g_ascii_isprint(c) \
|
||||||
|
((g_ascii_table[(guchar) (c)] & G_ASCII_PRINT) != 0)
|
||||||
|
|
||||||
|
#define g_ascii_ispunct(c) \
|
||||||
|
((g_ascii_table[(guchar) (c)] & G_ASCII_PUNCT) != 0)
|
||||||
|
|
||||||
|
#define g_ascii_isspace(c) \
|
||||||
|
((g_ascii_table[(guchar) (c)] & G_ASCII_SPACE) != 0)
|
||||||
|
|
||||||
|
#define g_ascii_isupper(c) \
|
||||||
|
((g_ascii_table[(guchar) (c)] & G_ASCII_UPPER) != 0)
|
||||||
|
|
||||||
|
#define g_ascii_isxdigit(c) \
|
||||||
|
((g_ascii_table[(guchar) (c)] & G_ASCII_XDIGIT) != 0)
|
||||||
|
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gchar g_ascii_tolower (gchar c) G_GNUC_CONST;
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gchar g_ascii_toupper (gchar c) G_GNUC_CONST;
|
||||||
|
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gint g_ascii_digit_value (gchar c) G_GNUC_CONST;
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gint g_ascii_xdigit_value (gchar c) G_GNUC_CONST;
|
||||||
|
|
||||||
|
/* String utility functions that modify a string argument or
|
||||||
|
* return a constant string that must not be freed.
|
||||||
|
*/
|
||||||
|
#define G_STR_DELIMITERS "_-|> <."
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gchar* g_strdelimit (gchar *string,
|
||||||
|
const gchar *delimiters,
|
||||||
|
gchar new_delimiter);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gchar* g_strcanon (gchar *string,
|
||||||
|
const gchar *valid_chars,
|
||||||
|
gchar substitutor);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
const gchar * g_strerror (gint errnum) G_GNUC_CONST;
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
const gchar * g_strsignal (gint signum) G_GNUC_CONST;
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gchar * g_strreverse (gchar *string);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gsize g_strlcpy (gchar *dest,
|
||||||
|
const gchar *src,
|
||||||
|
gsize dest_size);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gsize g_strlcat (gchar *dest,
|
||||||
|
const gchar *src,
|
||||||
|
gsize dest_size);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gchar * g_strstr_len (const gchar *haystack,
|
||||||
|
gssize haystack_len,
|
||||||
|
const gchar *needle);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gchar * g_strrstr (const gchar *haystack,
|
||||||
|
const gchar *needle);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gchar * g_strrstr_len (const gchar *haystack,
|
||||||
|
gssize haystack_len,
|
||||||
|
const gchar *needle);
|
||||||
|
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gboolean g_str_has_suffix (const gchar *str,
|
||||||
|
const gchar *suffix);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gboolean g_str_has_prefix (const gchar *str,
|
||||||
|
const gchar *prefix);
|
||||||
|
|
||||||
|
/* String to/from double conversion functions */
|
||||||
|
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gdouble g_strtod (const gchar *nptr,
|
||||||
|
gchar **endptr);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gdouble g_ascii_strtod (const gchar *nptr,
|
||||||
|
gchar **endptr);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
guint64 g_ascii_strtoull (const gchar *nptr,
|
||||||
|
gchar **endptr,
|
||||||
|
guint base);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gint64 g_ascii_strtoll (const gchar *nptr,
|
||||||
|
gchar **endptr,
|
||||||
|
guint base);
|
||||||
|
/* 29 bytes should enough for all possible values that
|
||||||
|
* g_ascii_dtostr can produce.
|
||||||
|
* Then add 10 for good measure */
|
||||||
|
#define G_ASCII_DTOSTR_BUF_SIZE (29 + 10)
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gchar * g_ascii_dtostr (gchar *buffer,
|
||||||
|
gint buf_len,
|
||||||
|
gdouble d);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gchar * g_ascii_formatd (gchar *buffer,
|
||||||
|
gint buf_len,
|
||||||
|
const gchar *format,
|
||||||
|
gdouble d);
|
||||||
|
|
||||||
|
/* removes leading spaces */
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gchar* g_strchug (gchar *string);
|
||||||
|
/* removes trailing spaces */
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gchar* g_strchomp (gchar *string);
|
||||||
|
/* removes leading & trailing spaces */
|
||||||
|
#define g_strstrip( string ) g_strchomp (g_strchug (string))
|
||||||
|
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gint g_ascii_strcasecmp (const gchar *s1,
|
||||||
|
const gchar *s2);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gint g_ascii_strncasecmp (const gchar *s1,
|
||||||
|
const gchar *s2,
|
||||||
|
gsize n);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gchar* g_ascii_strdown (const gchar *str,
|
||||||
|
gssize len) G_GNUC_MALLOC;
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gchar* g_ascii_strup (const gchar *str,
|
||||||
|
gssize len) G_GNUC_MALLOC;
|
||||||
|
|
||||||
|
GLIB_AVAILABLE_IN_2_40
|
||||||
|
gboolean g_str_is_ascii (const gchar *str);
|
||||||
|
|
||||||
|
GLIB_DEPRECATED
|
||||||
|
gint g_strcasecmp (const gchar *s1,
|
||||||
|
const gchar *s2);
|
||||||
|
GLIB_DEPRECATED
|
||||||
|
gint g_strncasecmp (const gchar *s1,
|
||||||
|
const gchar *s2,
|
||||||
|
guint n);
|
||||||
|
GLIB_DEPRECATED
|
||||||
|
gchar* g_strdown (gchar *string);
|
||||||
|
GLIB_DEPRECATED
|
||||||
|
gchar* g_strup (gchar *string);
|
||||||
|
|
||||||
|
|
||||||
|
/* String utility functions that return a newly allocated string which
|
||||||
|
* ought to be freed with g_free from the caller at some point.
|
||||||
|
*/
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gchar* g_strdup (const gchar *str) G_GNUC_MALLOC;
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gchar* g_strdup_printf (const gchar *format,
|
||||||
|
...) G_GNUC_PRINTF (1, 2) G_GNUC_MALLOC;
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gchar* g_strdup_vprintf (const gchar *format,
|
||||||
|
va_list args) G_GNUC_PRINTF(1, 0) G_GNUC_MALLOC;
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gchar* g_strndup (const gchar *str,
|
||||||
|
gsize n) G_GNUC_MALLOC;
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gchar* g_strnfill (gsize length,
|
||||||
|
gchar fill_char) G_GNUC_MALLOC;
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gchar* g_strconcat (const gchar *string1,
|
||||||
|
...) G_GNUC_MALLOC G_GNUC_NULL_TERMINATED;
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gchar* g_strjoin (const gchar *separator,
|
||||||
|
...) G_GNUC_MALLOC G_GNUC_NULL_TERMINATED;
|
||||||
|
|
||||||
|
/* Make a copy of a string interpreting C string -style escape
|
||||||
|
* sequences. Inverse of g_strescape. The recognized sequences are \b
|
||||||
|
* \f \n \r \t \\ \" and the octal format.
|
||||||
|
*/
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gchar* g_strcompress (const gchar *source) G_GNUC_MALLOC;
|
||||||
|
|
||||||
|
/* Copy a string escaping nonprintable characters like in C strings.
|
||||||
|
* Inverse of g_strcompress. The exceptions parameter, if non-NULL, points
|
||||||
|
* to a string containing characters that are not to be escaped.
|
||||||
|
*
|
||||||
|
* Deprecated API: gchar* g_strescape (const gchar *source);
|
||||||
|
* Luckily this function wasn't used much, using NULL as second parameter
|
||||||
|
* provides mostly identical semantics.
|
||||||
|
*/
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gchar* g_strescape (const gchar *source,
|
||||||
|
const gchar *exceptions) G_GNUC_MALLOC;
|
||||||
|
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gpointer g_memdup (gconstpointer mem,
|
||||||
|
guint byte_size) G_GNUC_MALLOC G_GNUC_ALLOC_SIZE(2);
|
||||||
|
|
||||||
|
/* NULL terminated string arrays.
|
||||||
|
* g_strsplit(), g_strsplit_set() split up string into max_tokens tokens
|
||||||
|
* at delim and return a newly allocated string array.
|
||||||
|
* g_strjoinv() concatenates all of str_array's strings, sliding in an
|
||||||
|
* optional separator, the returned string is newly allocated.
|
||||||
|
* g_strfreev() frees the array itself and all of its strings.
|
||||||
|
* g_strdupv() copies a NULL-terminated array of strings
|
||||||
|
* g_strv_length() returns the length of a NULL-terminated array of strings
|
||||||
|
*/
|
||||||
|
typedef gchar** GStrv;
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gchar** g_strsplit (const gchar *string,
|
||||||
|
const gchar *delimiter,
|
||||||
|
gint max_tokens) G_GNUC_MALLOC;
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gchar ** g_strsplit_set (const gchar *string,
|
||||||
|
const gchar *delimiters,
|
||||||
|
gint max_tokens) G_GNUC_MALLOC;
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gchar* g_strjoinv (const gchar *separator,
|
||||||
|
gchar **str_array) G_GNUC_MALLOC;
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_strfreev (gchar **str_array);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gchar** g_strdupv (gchar **str_array) G_GNUC_MALLOC;
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
guint g_strv_length (gchar **str_array);
|
||||||
|
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gchar* g_stpcpy (gchar *dest,
|
||||||
|
const char *src);
|
||||||
|
|
||||||
|
GLIB_AVAILABLE_IN_2_40
|
||||||
|
gchar * g_str_to_ascii (const gchar *str,
|
||||||
|
const gchar *from_locale);
|
||||||
|
|
||||||
|
GLIB_AVAILABLE_IN_2_40
|
||||||
|
gchar ** g_str_tokenize_and_fold (const gchar *string,
|
||||||
|
const gchar *translit_locale,
|
||||||
|
gchar ***ascii_alternates);
|
||||||
|
|
||||||
|
GLIB_AVAILABLE_IN_2_40
|
||||||
|
gboolean g_str_match_string (const gchar *search_term,
|
||||||
|
const gchar *potential_hit,
|
||||||
|
gboolean accept_alternates);
|
||||||
|
|
||||||
|
GLIB_AVAILABLE_IN_2_44
|
||||||
|
gboolean g_strv_contains (const gchar * const *strv,
|
||||||
|
const gchar *str);
|
||||||
|
|
||||||
|
G_END_DECLS
|
||||||
|
|
||||||
|
#endif /* __G_STRFUNCS_H__ */
|
189
code/application/source/sf_app/code/source/sf_blue/inc/glib/glib/gstring.h
Executable file
189
code/application/source/sf_app/code/source/sf_blue/inc/glib/glib/gstring.h
Executable file
|
@ -0,0 +1,189 @@
|
||||||
|
/* GLIB - Library of useful routines for C programming
|
||||||
|
* Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald
|
||||||
|
*
|
||||||
|
* This library 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 of the License, or (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This library 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 this library; if not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Modified by the GLib Team and others 1997-2000. See the AUTHORS
|
||||||
|
* file for a list of people on the GLib Team. See the ChangeLog
|
||||||
|
* files for a list of changes. These files are distributed with
|
||||||
|
* GLib at ftp://ftp.gtk.org/pub/gtk/.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef __G_STRING_H__
|
||||||
|
#define __G_STRING_H__
|
||||||
|
|
||||||
|
#if !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION)
|
||||||
|
#error "Only <glib.h> can be included directly."
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include <glib/gtypes.h>
|
||||||
|
#include <glib/gunicode.h>
|
||||||
|
#include <glib/gbytes.h>
|
||||||
|
#include <glib/gutils.h> /* for G_CAN_INLINE */
|
||||||
|
|
||||||
|
G_BEGIN_DECLS
|
||||||
|
|
||||||
|
typedef struct _GString GString;
|
||||||
|
|
||||||
|
struct _GString
|
||||||
|
{
|
||||||
|
gchar *str;
|
||||||
|
gsize len;
|
||||||
|
gsize allocated_len;
|
||||||
|
};
|
||||||
|
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GString* g_string_new (const gchar *init);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GString* g_string_new_len (const gchar *init,
|
||||||
|
gssize len);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GString* g_string_sized_new (gsize dfl_size);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gchar* g_string_free (GString *string,
|
||||||
|
gboolean free_segment);
|
||||||
|
GLIB_AVAILABLE_IN_2_34
|
||||||
|
GBytes* g_string_free_to_bytes (GString *string);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gboolean g_string_equal (const GString *v,
|
||||||
|
const GString *v2);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
guint g_string_hash (const GString *str);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GString* g_string_assign (GString *string,
|
||||||
|
const gchar *rval);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GString* g_string_truncate (GString *string,
|
||||||
|
gsize len);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GString* g_string_set_size (GString *string,
|
||||||
|
gsize len);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GString* g_string_insert_len (GString *string,
|
||||||
|
gssize pos,
|
||||||
|
const gchar *val,
|
||||||
|
gssize len);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GString* g_string_append (GString *string,
|
||||||
|
const gchar *val);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GString* g_string_append_len (GString *string,
|
||||||
|
const gchar *val,
|
||||||
|
gssize len);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GString* g_string_append_c (GString *string,
|
||||||
|
gchar c);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GString* g_string_append_unichar (GString *string,
|
||||||
|
gunichar wc);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GString* g_string_prepend (GString *string,
|
||||||
|
const gchar *val);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GString* g_string_prepend_c (GString *string,
|
||||||
|
gchar c);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GString* g_string_prepend_unichar (GString *string,
|
||||||
|
gunichar wc);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GString* g_string_prepend_len (GString *string,
|
||||||
|
const gchar *val,
|
||||||
|
gssize len);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GString* g_string_insert (GString *string,
|
||||||
|
gssize pos,
|
||||||
|
const gchar *val);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GString* g_string_insert_c (GString *string,
|
||||||
|
gssize pos,
|
||||||
|
gchar c);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GString* g_string_insert_unichar (GString *string,
|
||||||
|
gssize pos,
|
||||||
|
gunichar wc);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GString* g_string_overwrite (GString *string,
|
||||||
|
gsize pos,
|
||||||
|
const gchar *val);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GString* g_string_overwrite_len (GString *string,
|
||||||
|
gsize pos,
|
||||||
|
const gchar *val,
|
||||||
|
gssize len);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GString* g_string_erase (GString *string,
|
||||||
|
gssize pos,
|
||||||
|
gssize len);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GString* g_string_ascii_down (GString *string);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GString* g_string_ascii_up (GString *string);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_string_vprintf (GString *string,
|
||||||
|
const gchar *format,
|
||||||
|
va_list args)
|
||||||
|
G_GNUC_PRINTF(2, 0);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_string_printf (GString *string,
|
||||||
|
const gchar *format,
|
||||||
|
...) G_GNUC_PRINTF (2, 3);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_string_append_vprintf (GString *string,
|
||||||
|
const gchar *format,
|
||||||
|
va_list args)
|
||||||
|
G_GNUC_PRINTF(2, 0);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_string_append_printf (GString *string,
|
||||||
|
const gchar *format,
|
||||||
|
...) G_GNUC_PRINTF (2, 3);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GString* g_string_append_uri_escaped (GString *string,
|
||||||
|
const gchar *unescaped,
|
||||||
|
const gchar *reserved_chars_allowed,
|
||||||
|
gboolean allow_utf8);
|
||||||
|
|
||||||
|
/* -- optimize g_strig_append_c --- */
|
||||||
|
#ifdef G_CAN_INLINE
|
||||||
|
static inline GString*
|
||||||
|
g_string_append_c_inline (GString *gstring,
|
||||||
|
gchar c)
|
||||||
|
{
|
||||||
|
if (gstring->len + 1 < gstring->allocated_len)
|
||||||
|
{
|
||||||
|
gstring->str[gstring->len++] = c;
|
||||||
|
gstring->str[gstring->len] = 0;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
g_string_insert_c (gstring, -1, c);
|
||||||
|
return gstring;
|
||||||
|
}
|
||||||
|
#define g_string_append_c(gstr,c) g_string_append_c_inline (gstr, c)
|
||||||
|
#endif /* G_CAN_INLINE */
|
||||||
|
|
||||||
|
|
||||||
|
GLIB_DEPRECATED
|
||||||
|
GString *g_string_down (GString *string);
|
||||||
|
GLIB_DEPRECATED
|
||||||
|
GString *g_string_up (GString *string);
|
||||||
|
|
||||||
|
#ifndef G_DISABLE_DEPRECATED
|
||||||
|
#define g_string_sprintf g_string_printf
|
||||||
|
#define g_string_sprintfa g_string_append_printf
|
||||||
|
#endif
|
||||||
|
|
||||||
|
G_END_DECLS
|
||||||
|
|
||||||
|
#endif /* __G_STRING_H__ */
|
|
@ -0,0 +1,57 @@
|
||||||
|
/* GLIB - Library of useful routines for C programming
|
||||||
|
* Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald
|
||||||
|
*
|
||||||
|
* This library 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 of the License, or (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This library 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 this library; if not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Modified by the GLib Team and others 1997-2000. See the AUTHORS
|
||||||
|
* file for a list of people on the GLib Team. See the ChangeLog
|
||||||
|
* files for a list of changes. These files are distributed with
|
||||||
|
* GLib at ftp://ftp.gtk.org/pub/gtk/.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef __G_STRINGCHUNK_H__
|
||||||
|
#define __G_STRINGCHUNK_H__
|
||||||
|
|
||||||
|
#if !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION)
|
||||||
|
#error "Only <glib.h> can be included directly."
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include <glib/gtypes.h>
|
||||||
|
|
||||||
|
G_BEGIN_DECLS
|
||||||
|
|
||||||
|
typedef struct _GStringChunk GStringChunk;
|
||||||
|
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GStringChunk* g_string_chunk_new (gsize size);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_string_chunk_free (GStringChunk *chunk);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_string_chunk_clear (GStringChunk *chunk);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gchar* g_string_chunk_insert (GStringChunk *chunk,
|
||||||
|
const gchar *string);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gchar* g_string_chunk_insert_len (GStringChunk *chunk,
|
||||||
|
const gchar *string,
|
||||||
|
gssize len);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gchar* g_string_chunk_insert_const (GStringChunk *chunk,
|
||||||
|
const gchar *string);
|
||||||
|
|
||||||
|
G_END_DECLS
|
||||||
|
|
||||||
|
#endif /* __G_STRING_H__ */
|
452
code/application/source/sf_app/code/source/sf_blue/inc/glib/glib/gtestutils.h
Executable file
452
code/application/source/sf_app/code/source/sf_blue/inc/glib/glib/gtestutils.h
Executable file
|
@ -0,0 +1,452 @@
|
||||||
|
/* GLib testing utilities
|
||||||
|
* Copyright (C) 2007 Imendio AB
|
||||||
|
* Authors: Tim Janik
|
||||||
|
*
|
||||||
|
* This library 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 of the License, or (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This library 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 this library; if not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef __G_TEST_UTILS_H__
|
||||||
|
#define __G_TEST_UTILS_H__
|
||||||
|
|
||||||
|
#if !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION)
|
||||||
|
#error "Only <glib.h> can be included directly."
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include <glib/gmessages.h>
|
||||||
|
#include <glib/gstring.h>
|
||||||
|
#include <glib/gerror.h>
|
||||||
|
#include <glib/gslist.h>
|
||||||
|
|
||||||
|
G_BEGIN_DECLS
|
||||||
|
|
||||||
|
typedef struct GTestCase GTestCase;
|
||||||
|
typedef struct GTestSuite GTestSuite;
|
||||||
|
typedef void (*GTestFunc) (void);
|
||||||
|
typedef void (*GTestDataFunc) (gconstpointer user_data);
|
||||||
|
typedef void (*GTestFixtureFunc) (gpointer fixture,
|
||||||
|
gconstpointer user_data);
|
||||||
|
|
||||||
|
/* assertion API */
|
||||||
|
#define g_assert_cmpstr(s1, cmp, s2) G_STMT_START { \
|
||||||
|
const char *__s1 = (s1), *__s2 = (s2); \
|
||||||
|
if (g_strcmp0 (__s1, __s2) cmp 0) ; else \
|
||||||
|
g_assertion_message_cmpstr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, \
|
||||||
|
#s1 " " #cmp " " #s2, __s1, #cmp, __s2); \
|
||||||
|
} G_STMT_END
|
||||||
|
#define g_assert_cmpint(n1, cmp, n2) G_STMT_START { \
|
||||||
|
gint64 __n1 = (n1), __n2 = (n2); \
|
||||||
|
if (__n1 cmp __n2) ; else \
|
||||||
|
g_assertion_message_cmpnum (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, \
|
||||||
|
#n1 " " #cmp " " #n2, __n1, #cmp, __n2, 'i'); \
|
||||||
|
} G_STMT_END
|
||||||
|
#define g_assert_cmpuint(n1, cmp, n2) G_STMT_START { \
|
||||||
|
guint64 __n1 = (n1), __n2 = (n2); \
|
||||||
|
if (__n1 cmp __n2) ; else \
|
||||||
|
g_assertion_message_cmpnum (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, \
|
||||||
|
#n1 " " #cmp " " #n2, __n1, #cmp, __n2, 'i'); \
|
||||||
|
} G_STMT_END
|
||||||
|
#define g_assert_cmphex(n1, cmp, n2) G_STMT_START {\
|
||||||
|
guint64 __n1 = (n1), __n2 = (n2); \
|
||||||
|
if (__n1 cmp __n2) ; else \
|
||||||
|
g_assertion_message_cmpnum (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, \
|
||||||
|
#n1 " " #cmp " " #n2, __n1, #cmp, __n2, 'x'); \
|
||||||
|
} G_STMT_END
|
||||||
|
#define g_assert_cmpfloat(n1,cmp,n2) G_STMT_START { \
|
||||||
|
long double __n1 = (n1), __n2 = (n2); \
|
||||||
|
if (__n1 cmp __n2) ; else \
|
||||||
|
g_assertion_message_cmpnum (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, \
|
||||||
|
#n1 " " #cmp " " #n2, __n1, #cmp, __n2, 'f'); \
|
||||||
|
} G_STMT_END
|
||||||
|
#define g_assert_cmpmem(m1, l1, m2, l2) G_STMT_START {\
|
||||||
|
gconstpointer __m1 = m1, __m2 = m2; \
|
||||||
|
int __l1 = l1, __l2 = l2; \
|
||||||
|
if (__l1 != __l2) \
|
||||||
|
g_assertion_message_cmpnum (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, \
|
||||||
|
#l1 " (len(" #m1 ")) == " #l2 " (len(" #m2 "))", __l1, "==", __l2, 'i'); \
|
||||||
|
else if (memcmp (__m1, __m2, __l1) != 0) \
|
||||||
|
g_assertion_message (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, \
|
||||||
|
"assertion failed (" #m1 " == " #m2 ")"); \
|
||||||
|
} G_STMT_END
|
||||||
|
#define g_assert_no_error(err) G_STMT_START { \
|
||||||
|
if (err) \
|
||||||
|
g_assertion_message_error (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, \
|
||||||
|
#err, err, 0, 0); \
|
||||||
|
} G_STMT_END
|
||||||
|
#define g_assert_error(err, dom, c) G_STMT_START { \
|
||||||
|
if (!err || (err)->domain != dom || (err)->code != c) \
|
||||||
|
g_assertion_message_error (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, \
|
||||||
|
#err, err, dom, c); \
|
||||||
|
} G_STMT_END
|
||||||
|
#define g_assert_true(expr) G_STMT_START { \
|
||||||
|
if G_LIKELY (expr) ; else \
|
||||||
|
g_assertion_message (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, \
|
||||||
|
"'" #expr "' should be TRUE"); \
|
||||||
|
} G_STMT_END
|
||||||
|
#define g_assert_false(expr) G_STMT_START { \
|
||||||
|
if G_LIKELY (!(expr)) ; else \
|
||||||
|
g_assertion_message (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, \
|
||||||
|
"'" #expr "' should be FALSE"); \
|
||||||
|
} G_STMT_END
|
||||||
|
#define g_assert_null(expr) G_STMT_START { if G_LIKELY ((expr) == NULL) ; else \
|
||||||
|
g_assertion_message (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, \
|
||||||
|
"'" #expr "' should be NULL"); \
|
||||||
|
} G_STMT_END
|
||||||
|
#define g_assert_nonnull(expr) G_STMT_START { \
|
||||||
|
if G_LIKELY ((expr) != NULL) ; else \
|
||||||
|
g_assertion_message (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, \
|
||||||
|
"'" #expr "' should not be NULL"); \
|
||||||
|
} G_STMT_END
|
||||||
|
#ifdef G_DISABLE_ASSERT
|
||||||
|
#define g_assert_not_reached() G_STMT_START { (void) 0; } G_STMT_END
|
||||||
|
#define g_assert(expr) G_STMT_START { (void) 0; } G_STMT_END
|
||||||
|
#else /* !G_DISABLE_ASSERT */
|
||||||
|
#define g_assert_not_reached() G_STMT_START { g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, NULL); } G_STMT_END
|
||||||
|
#define g_assert(expr) G_STMT_START { \
|
||||||
|
if G_LIKELY (expr) ; else \
|
||||||
|
g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, \
|
||||||
|
#expr); \
|
||||||
|
} G_STMT_END
|
||||||
|
#endif /* !G_DISABLE_ASSERT */
|
||||||
|
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
int g_strcmp0 (const char *str1,
|
||||||
|
const char *str2);
|
||||||
|
|
||||||
|
/* report performance results */
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_test_minimized_result (double minimized_quantity,
|
||||||
|
const char *format,
|
||||||
|
...) G_GNUC_PRINTF (2, 3);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_test_maximized_result (double maximized_quantity,
|
||||||
|
const char *format,
|
||||||
|
...) G_GNUC_PRINTF (2, 3);
|
||||||
|
|
||||||
|
/* initialize testing framework */
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_test_init (int *argc,
|
||||||
|
char ***argv,
|
||||||
|
...) G_GNUC_NULL_TERMINATED;
|
||||||
|
/* query testing framework config */
|
||||||
|
#define g_test_initialized() (g_test_config_vars->test_initialized)
|
||||||
|
#define g_test_quick() (g_test_config_vars->test_quick)
|
||||||
|
#define g_test_slow() (!g_test_config_vars->test_quick)
|
||||||
|
#define g_test_thorough() (!g_test_config_vars->test_quick)
|
||||||
|
#define g_test_perf() (g_test_config_vars->test_perf)
|
||||||
|
#define g_test_verbose() (g_test_config_vars->test_verbose)
|
||||||
|
#define g_test_quiet() (g_test_config_vars->test_quiet)
|
||||||
|
#define g_test_undefined() (g_test_config_vars->test_undefined)
|
||||||
|
GLIB_AVAILABLE_IN_2_38
|
||||||
|
gboolean g_test_subprocess (void);
|
||||||
|
|
||||||
|
/* run all tests under toplevel suite (path: /) */
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
int g_test_run (void);
|
||||||
|
/* hook up a test functions under test path */
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_test_add_func (const char *testpath,
|
||||||
|
GTestFunc test_func);
|
||||||
|
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_test_add_data_func (const char *testpath,
|
||||||
|
gconstpointer test_data,
|
||||||
|
GTestDataFunc test_func);
|
||||||
|
|
||||||
|
GLIB_AVAILABLE_IN_2_34
|
||||||
|
void g_test_add_data_func_full (const char *testpath,
|
||||||
|
gpointer test_data,
|
||||||
|
GTestDataFunc test_func,
|
||||||
|
GDestroyNotify data_free_func);
|
||||||
|
|
||||||
|
/* tell about failure */
|
||||||
|
GLIB_AVAILABLE_IN_2_30
|
||||||
|
void g_test_fail (void);
|
||||||
|
GLIB_AVAILABLE_IN_2_38
|
||||||
|
void g_test_incomplete (const gchar *msg);
|
||||||
|
GLIB_AVAILABLE_IN_2_38
|
||||||
|
void g_test_skip (const gchar *msg);
|
||||||
|
GLIB_AVAILABLE_IN_2_38
|
||||||
|
gboolean g_test_failed (void);
|
||||||
|
GLIB_AVAILABLE_IN_2_38
|
||||||
|
void g_test_set_nonfatal_assertions (void);
|
||||||
|
|
||||||
|
/* hook up a test with fixture under test path */
|
||||||
|
#define g_test_add(testpath, Fixture, tdata, fsetup, ftest, fteardown) \
|
||||||
|
G_STMT_START { \
|
||||||
|
void (*add_vtable) (const char*, \
|
||||||
|
gsize, \
|
||||||
|
gconstpointer, \
|
||||||
|
void (*) (Fixture*, gconstpointer), \
|
||||||
|
void (*) (Fixture*, gconstpointer), \
|
||||||
|
void (*) (Fixture*, gconstpointer)) = (void (*) (const gchar *, gsize, gconstpointer, void (*) (Fixture*, gconstpointer), void (*) (Fixture*, gconstpointer), void (*) (Fixture*, gconstpointer))) g_test_add_vtable; \
|
||||||
|
add_vtable \
|
||||||
|
(testpath, sizeof (Fixture), tdata, fsetup, ftest, fteardown); \
|
||||||
|
} G_STMT_END
|
||||||
|
|
||||||
|
/* add test messages to the test report */
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_test_message (const char *format,
|
||||||
|
...) G_GNUC_PRINTF (1, 2);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_test_bug_base (const char *uri_pattern);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_test_bug (const char *bug_uri_snippet);
|
||||||
|
/* measure test timings */
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_test_timer_start (void);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
double g_test_timer_elapsed (void); /* elapsed seconds */
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
double g_test_timer_last (void); /* repeat last elapsed() result */
|
||||||
|
|
||||||
|
/* automatically g_free or g_object_unref upon teardown */
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_test_queue_free (gpointer gfree_pointer);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_test_queue_destroy (GDestroyNotify destroy_func,
|
||||||
|
gpointer destroy_data);
|
||||||
|
#define g_test_queue_unref(gobject) g_test_queue_destroy (g_object_unref, gobject)
|
||||||
|
|
||||||
|
typedef enum {
|
||||||
|
G_TEST_TRAP_SILENCE_STDOUT = 1 << 7,
|
||||||
|
G_TEST_TRAP_SILENCE_STDERR = 1 << 8,
|
||||||
|
G_TEST_TRAP_INHERIT_STDIN = 1 << 9
|
||||||
|
} GTestTrapFlags;
|
||||||
|
|
||||||
|
GLIB_DEPRECATED_IN_2_38_FOR (g_test_trap_subprocess)
|
||||||
|
gboolean g_test_trap_fork (guint64 usec_timeout,
|
||||||
|
GTestTrapFlags test_trap_flags);
|
||||||
|
|
||||||
|
typedef enum {
|
||||||
|
G_TEST_SUBPROCESS_INHERIT_STDIN = 1 << 0,
|
||||||
|
G_TEST_SUBPROCESS_INHERIT_STDOUT = 1 << 1,
|
||||||
|
G_TEST_SUBPROCESS_INHERIT_STDERR = 1 << 2
|
||||||
|
} GTestSubprocessFlags;
|
||||||
|
|
||||||
|
GLIB_AVAILABLE_IN_2_38
|
||||||
|
void g_test_trap_subprocess (const char *test_path,
|
||||||
|
guint64 usec_timeout,
|
||||||
|
GTestSubprocessFlags test_flags);
|
||||||
|
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gboolean g_test_trap_has_passed (void);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gboolean g_test_trap_reached_timeout (void);
|
||||||
|
#define g_test_trap_assert_passed() g_test_trap_assertions (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, 0, 0)
|
||||||
|
#define g_test_trap_assert_failed() g_test_trap_assertions (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, 1, 0)
|
||||||
|
#define g_test_trap_assert_stdout(soutpattern) g_test_trap_assertions (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, 2, soutpattern)
|
||||||
|
#define g_test_trap_assert_stdout_unmatched(soutpattern) g_test_trap_assertions (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, 3, soutpattern)
|
||||||
|
#define g_test_trap_assert_stderr(serrpattern) g_test_trap_assertions (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, 4, serrpattern)
|
||||||
|
#define g_test_trap_assert_stderr_unmatched(serrpattern) g_test_trap_assertions (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, 5, serrpattern)
|
||||||
|
|
||||||
|
/* provide seed-able random numbers for tests */
|
||||||
|
#define g_test_rand_bit() (0 != (g_test_rand_int() & (1 << 15)))
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gint32 g_test_rand_int (void);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gint32 g_test_rand_int_range (gint32 begin,
|
||||||
|
gint32 end);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
double g_test_rand_double (void);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
double g_test_rand_double_range (double range_start,
|
||||||
|
double range_end);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* semi-internal API: non-documented symbols with stable ABI. You
|
||||||
|
* should use the non-internal helper macros instead. However, for
|
||||||
|
* compatibility reason, you may use this semi-internal API.
|
||||||
|
*/
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GTestCase* g_test_create_case (const char *test_name,
|
||||||
|
gsize data_size,
|
||||||
|
gconstpointer test_data,
|
||||||
|
GTestFixtureFunc data_setup,
|
||||||
|
GTestFixtureFunc data_test,
|
||||||
|
GTestFixtureFunc data_teardown);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GTestSuite* g_test_create_suite (const char *suite_name);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GTestSuite* g_test_get_root (void);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_test_suite_add (GTestSuite *suite,
|
||||||
|
GTestCase *test_case);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_test_suite_add_suite (GTestSuite *suite,
|
||||||
|
GTestSuite *nestedsuite);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
int g_test_run_suite (GTestSuite *suite);
|
||||||
|
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_test_trap_assertions (const char *domain,
|
||||||
|
const char *file,
|
||||||
|
int line,
|
||||||
|
const char *func,
|
||||||
|
guint64 assertion_flags, /* 0-pass, 1-fail, 2-outpattern, 4-errpattern */
|
||||||
|
const char *pattern);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_assertion_message (const char *domain,
|
||||||
|
const char *file,
|
||||||
|
int line,
|
||||||
|
const char *func,
|
||||||
|
const char *message);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_assertion_message_expr (const char *domain,
|
||||||
|
const char *file,
|
||||||
|
int line,
|
||||||
|
const char *func,
|
||||||
|
const char *expr) G_GNUC_NORETURN;
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_assertion_message_cmpstr (const char *domain,
|
||||||
|
const char *file,
|
||||||
|
int line,
|
||||||
|
const char *func,
|
||||||
|
const char *expr,
|
||||||
|
const char *arg1,
|
||||||
|
const char *cmp,
|
||||||
|
const char *arg2);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_assertion_message_cmpnum (const char *domain,
|
||||||
|
const char *file,
|
||||||
|
int line,
|
||||||
|
const char *func,
|
||||||
|
const char *expr,
|
||||||
|
long double arg1,
|
||||||
|
const char *cmp,
|
||||||
|
long double arg2,
|
||||||
|
char numtype);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_assertion_message_error (const char *domain,
|
||||||
|
const char *file,
|
||||||
|
int line,
|
||||||
|
const char *func,
|
||||||
|
const char *expr,
|
||||||
|
const GError *error,
|
||||||
|
GQuark error_domain,
|
||||||
|
int error_code);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_test_add_vtable (const char *testpath,
|
||||||
|
gsize data_size,
|
||||||
|
gconstpointer test_data,
|
||||||
|
GTestFixtureFunc data_setup,
|
||||||
|
GTestFixtureFunc data_test,
|
||||||
|
GTestFixtureFunc data_teardown);
|
||||||
|
typedef struct {
|
||||||
|
gboolean test_initialized;
|
||||||
|
gboolean test_quick; /* disable thorough tests */
|
||||||
|
gboolean test_perf; /* run performance tests */
|
||||||
|
gboolean test_verbose; /* extra info */
|
||||||
|
gboolean test_quiet; /* reduce output */
|
||||||
|
gboolean test_undefined; /* run tests that are meant to assert */
|
||||||
|
} GTestConfig;
|
||||||
|
GLIB_VAR const GTestConfig * const g_test_config_vars;
|
||||||
|
|
||||||
|
/* internal logging API */
|
||||||
|
typedef enum {
|
||||||
|
G_TEST_LOG_NONE,
|
||||||
|
G_TEST_LOG_ERROR, /* s:msg */
|
||||||
|
G_TEST_LOG_START_BINARY, /* s:binaryname s:seed */
|
||||||
|
G_TEST_LOG_LIST_CASE, /* s:testpath */
|
||||||
|
G_TEST_LOG_SKIP_CASE, /* s:testpath */
|
||||||
|
G_TEST_LOG_START_CASE, /* s:testpath */
|
||||||
|
G_TEST_LOG_STOP_CASE, /* d:status d:nforks d:elapsed */
|
||||||
|
G_TEST_LOG_MIN_RESULT, /* s:blurb d:result */
|
||||||
|
G_TEST_LOG_MAX_RESULT, /* s:blurb d:result */
|
||||||
|
G_TEST_LOG_MESSAGE, /* s:blurb */
|
||||||
|
G_TEST_LOG_START_SUITE,
|
||||||
|
G_TEST_LOG_STOP_SUITE
|
||||||
|
} GTestLogType;
|
||||||
|
|
||||||
|
typedef struct {
|
||||||
|
GTestLogType log_type;
|
||||||
|
guint n_strings;
|
||||||
|
gchar **strings; /* NULL terminated */
|
||||||
|
guint n_nums;
|
||||||
|
long double *nums;
|
||||||
|
} GTestLogMsg;
|
||||||
|
typedef struct {
|
||||||
|
/*< private >*/
|
||||||
|
GString *data;
|
||||||
|
GSList *msgs;
|
||||||
|
} GTestLogBuffer;
|
||||||
|
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
const char* g_test_log_type_name (GTestLogType log_type);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GTestLogBuffer* g_test_log_buffer_new (void);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_test_log_buffer_free (GTestLogBuffer *tbuffer);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_test_log_buffer_push (GTestLogBuffer *tbuffer,
|
||||||
|
guint n_bytes,
|
||||||
|
const guint8 *bytes);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GTestLogMsg* g_test_log_buffer_pop (GTestLogBuffer *tbuffer);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_test_log_msg_free (GTestLogMsg *tmsg);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* GTestLogFatalFunc:
|
||||||
|
* @log_domain: the log domain of the message
|
||||||
|
* @log_level: the log level of the message (including the fatal and recursion flags)
|
||||||
|
* @message: the message to process
|
||||||
|
* @user_data: user data, set in g_test_log_set_fatal_handler()
|
||||||
|
*
|
||||||
|
* Specifies the prototype of fatal log handler functions.
|
||||||
|
*
|
||||||
|
* Returns: %TRUE if the program should abort, %FALSE otherwise
|
||||||
|
*
|
||||||
|
* Since: 2.22
|
||||||
|
*/
|
||||||
|
typedef gboolean (*GTestLogFatalFunc) (const gchar *log_domain,
|
||||||
|
GLogLevelFlags log_level,
|
||||||
|
const gchar *message,
|
||||||
|
gpointer user_data);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void
|
||||||
|
g_test_log_set_fatal_handler (GTestLogFatalFunc log_func,
|
||||||
|
gpointer user_data);
|
||||||
|
|
||||||
|
GLIB_AVAILABLE_IN_2_34
|
||||||
|
void g_test_expect_message (const gchar *log_domain,
|
||||||
|
GLogLevelFlags log_level,
|
||||||
|
const gchar *pattern);
|
||||||
|
GLIB_AVAILABLE_IN_2_34
|
||||||
|
void g_test_assert_expected_messages_internal (const char *domain,
|
||||||
|
const char *file,
|
||||||
|
int line,
|
||||||
|
const char *func);
|
||||||
|
|
||||||
|
typedef enum
|
||||||
|
{
|
||||||
|
G_TEST_DIST,
|
||||||
|
G_TEST_BUILT
|
||||||
|
} GTestFileType;
|
||||||
|
|
||||||
|
GLIB_AVAILABLE_IN_2_38
|
||||||
|
gchar * g_test_build_filename (GTestFileType file_type,
|
||||||
|
const gchar *first_path,
|
||||||
|
...) G_GNUC_NULL_TERMINATED;
|
||||||
|
GLIB_AVAILABLE_IN_2_38
|
||||||
|
const gchar *g_test_get_dir (GTestFileType file_type);
|
||||||
|
GLIB_AVAILABLE_IN_2_38
|
||||||
|
const gchar *g_test_get_filename (GTestFileType file_type,
|
||||||
|
const gchar *first_path,
|
||||||
|
...) G_GNUC_NULL_TERMINATED;
|
||||||
|
|
||||||
|
#define g_test_assert_expected_messages() g_test_assert_expected_messages_internal (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC)
|
||||||
|
|
||||||
|
G_END_DECLS
|
||||||
|
|
||||||
|
#endif /* __G_TEST_UTILS_H__ */
|
341
code/application/source/sf_app/code/source/sf_blue/inc/glib/glib/gthread.h
Executable file
341
code/application/source/sf_app/code/source/sf_blue/inc/glib/glib/gthread.h
Executable file
|
@ -0,0 +1,341 @@
|
||||||
|
/* GLIB - Library of useful routines for C programming
|
||||||
|
* Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald
|
||||||
|
*
|
||||||
|
* This library 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 of the
|
||||||
|
* licence, or (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This library 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 this library; if not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Modified by the GLib Team and others 1997-2000. See the AUTHORS
|
||||||
|
* file for a list of people on the GLib Team. See the ChangeLog
|
||||||
|
* files for a list of changes. These files are distributed with
|
||||||
|
* GLib at ftp://ftp.gtk.org/pub/gtk/.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef __G_THREAD_H__
|
||||||
|
#define __G_THREAD_H__
|
||||||
|
|
||||||
|
#if !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION)
|
||||||
|
#error "Only <glib.h> can be included directly."
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include <glib/gatomic.h>
|
||||||
|
#include <glib/gerror.h>
|
||||||
|
#include <glib/gutils.h>
|
||||||
|
|
||||||
|
G_BEGIN_DECLS
|
||||||
|
|
||||||
|
#define G_THREAD_ERROR g_thread_error_quark ()
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GQuark g_thread_error_quark (void);
|
||||||
|
|
||||||
|
typedef enum
|
||||||
|
{
|
||||||
|
G_THREAD_ERROR_AGAIN /* Resource temporarily unavailable */
|
||||||
|
} GThreadError;
|
||||||
|
|
||||||
|
typedef gpointer (*GThreadFunc) (gpointer data);
|
||||||
|
|
||||||
|
typedef struct _GThread GThread;
|
||||||
|
|
||||||
|
typedef union _GMutex GMutex;
|
||||||
|
typedef struct _GRecMutex GRecMutex;
|
||||||
|
typedef struct _GRWLock GRWLock;
|
||||||
|
typedef struct _GCond GCond;
|
||||||
|
typedef struct _GPrivate GPrivate;
|
||||||
|
typedef struct _GOnce GOnce;
|
||||||
|
|
||||||
|
union _GMutex
|
||||||
|
{
|
||||||
|
/*< private >*/
|
||||||
|
gpointer p;
|
||||||
|
guint i[2];
|
||||||
|
};
|
||||||
|
|
||||||
|
struct _GRWLock
|
||||||
|
{
|
||||||
|
/*< private >*/
|
||||||
|
gpointer p;
|
||||||
|
guint i[2];
|
||||||
|
};
|
||||||
|
|
||||||
|
struct _GCond
|
||||||
|
{
|
||||||
|
/*< private >*/
|
||||||
|
gpointer p;
|
||||||
|
guint i[2];
|
||||||
|
};
|
||||||
|
|
||||||
|
struct _GRecMutex
|
||||||
|
{
|
||||||
|
/*< private >*/
|
||||||
|
gpointer p;
|
||||||
|
guint i[2];
|
||||||
|
};
|
||||||
|
|
||||||
|
#define G_PRIVATE_INIT(notify) { NULL, (notify), { NULL, NULL } }
|
||||||
|
struct _GPrivate
|
||||||
|
{
|
||||||
|
/*< private >*/
|
||||||
|
gpointer p;
|
||||||
|
GDestroyNotify notify;
|
||||||
|
gpointer future[2];
|
||||||
|
};
|
||||||
|
|
||||||
|
typedef enum
|
||||||
|
{
|
||||||
|
G_ONCE_STATUS_NOTCALLED,
|
||||||
|
G_ONCE_STATUS_PROGRESS,
|
||||||
|
G_ONCE_STATUS_READY
|
||||||
|
} GOnceStatus;
|
||||||
|
|
||||||
|
#define G_ONCE_INIT { G_ONCE_STATUS_NOTCALLED, NULL }
|
||||||
|
struct _GOnce
|
||||||
|
{
|
||||||
|
volatile GOnceStatus status;
|
||||||
|
volatile gpointer retval;
|
||||||
|
};
|
||||||
|
|
||||||
|
#define G_LOCK_NAME(name) g__ ## name ## _lock
|
||||||
|
#define G_LOCK_DEFINE_STATIC(name) static G_LOCK_DEFINE (name)
|
||||||
|
#define G_LOCK_DEFINE(name) GMutex G_LOCK_NAME (name)
|
||||||
|
#define G_LOCK_EXTERN(name) extern GMutex G_LOCK_NAME (name)
|
||||||
|
|
||||||
|
#ifdef G_DEBUG_LOCKS
|
||||||
|
# define G_LOCK(name) G_STMT_START{ \
|
||||||
|
g_log (G_LOG_DOMAIN, G_LOG_LEVEL_DEBUG, \
|
||||||
|
"file %s: line %d (%s): locking: %s ", \
|
||||||
|
__FILE__, __LINE__, G_STRFUNC, \
|
||||||
|
#name); \
|
||||||
|
g_mutex_lock (&G_LOCK_NAME (name)); \
|
||||||
|
}G_STMT_END
|
||||||
|
# define G_UNLOCK(name) G_STMT_START{ \
|
||||||
|
g_log (G_LOG_DOMAIN, G_LOG_LEVEL_DEBUG, \
|
||||||
|
"file %s: line %d (%s): unlocking: %s ", \
|
||||||
|
__FILE__, __LINE__, G_STRFUNC, \
|
||||||
|
#name); \
|
||||||
|
g_mutex_unlock (&G_LOCK_NAME (name)); \
|
||||||
|
}G_STMT_END
|
||||||
|
# define G_TRYLOCK(name) \
|
||||||
|
(g_log (G_LOG_DOMAIN, G_LOG_LEVEL_DEBUG, \
|
||||||
|
"file %s: line %d (%s): try locking: %s ", \
|
||||||
|
__FILE__, __LINE__, G_STRFUNC, \
|
||||||
|
#name), g_mutex_trylock (&G_LOCK_NAME (name)))
|
||||||
|
#else /* !G_DEBUG_LOCKS */
|
||||||
|
# define G_LOCK(name) g_mutex_lock (&G_LOCK_NAME (name))
|
||||||
|
# define G_UNLOCK(name) g_mutex_unlock (&G_LOCK_NAME (name))
|
||||||
|
# define G_TRYLOCK(name) g_mutex_trylock (&G_LOCK_NAME (name))
|
||||||
|
#endif /* !G_DEBUG_LOCKS */
|
||||||
|
|
||||||
|
GLIB_AVAILABLE_IN_2_32
|
||||||
|
GThread * g_thread_ref (GThread *thread);
|
||||||
|
GLIB_AVAILABLE_IN_2_32
|
||||||
|
void g_thread_unref (GThread *thread);
|
||||||
|
GLIB_AVAILABLE_IN_2_32
|
||||||
|
GThread * g_thread_new (const gchar *name,
|
||||||
|
GThreadFunc func,
|
||||||
|
gpointer data);
|
||||||
|
GLIB_AVAILABLE_IN_2_32
|
||||||
|
GThread * g_thread_try_new (const gchar *name,
|
||||||
|
GThreadFunc func,
|
||||||
|
gpointer data,
|
||||||
|
GError **error);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GThread * g_thread_self (void);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_thread_exit (gpointer retval);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gpointer g_thread_join (GThread *thread);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_thread_yield (void);
|
||||||
|
|
||||||
|
|
||||||
|
GLIB_AVAILABLE_IN_2_32
|
||||||
|
void g_mutex_init (GMutex *mutex);
|
||||||
|
GLIB_AVAILABLE_IN_2_32
|
||||||
|
void g_mutex_clear (GMutex *mutex);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_mutex_lock (GMutex *mutex);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gboolean g_mutex_trylock (GMutex *mutex);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_mutex_unlock (GMutex *mutex);
|
||||||
|
|
||||||
|
GLIB_AVAILABLE_IN_2_32
|
||||||
|
void g_rw_lock_init (GRWLock *rw_lock);
|
||||||
|
GLIB_AVAILABLE_IN_2_32
|
||||||
|
void g_rw_lock_clear (GRWLock *rw_lock);
|
||||||
|
GLIB_AVAILABLE_IN_2_32
|
||||||
|
void g_rw_lock_writer_lock (GRWLock *rw_lock);
|
||||||
|
GLIB_AVAILABLE_IN_2_32
|
||||||
|
gboolean g_rw_lock_writer_trylock (GRWLock *rw_lock);
|
||||||
|
GLIB_AVAILABLE_IN_2_32
|
||||||
|
void g_rw_lock_writer_unlock (GRWLock *rw_lock);
|
||||||
|
GLIB_AVAILABLE_IN_2_32
|
||||||
|
void g_rw_lock_reader_lock (GRWLock *rw_lock);
|
||||||
|
GLIB_AVAILABLE_IN_2_32
|
||||||
|
gboolean g_rw_lock_reader_trylock (GRWLock *rw_lock);
|
||||||
|
GLIB_AVAILABLE_IN_2_32
|
||||||
|
void g_rw_lock_reader_unlock (GRWLock *rw_lock);
|
||||||
|
|
||||||
|
GLIB_AVAILABLE_IN_2_32
|
||||||
|
void g_rec_mutex_init (GRecMutex *rec_mutex);
|
||||||
|
GLIB_AVAILABLE_IN_2_32
|
||||||
|
void g_rec_mutex_clear (GRecMutex *rec_mutex);
|
||||||
|
GLIB_AVAILABLE_IN_2_32
|
||||||
|
void g_rec_mutex_lock (GRecMutex *rec_mutex);
|
||||||
|
GLIB_AVAILABLE_IN_2_32
|
||||||
|
gboolean g_rec_mutex_trylock (GRecMutex *rec_mutex);
|
||||||
|
GLIB_AVAILABLE_IN_2_32
|
||||||
|
void g_rec_mutex_unlock (GRecMutex *rec_mutex);
|
||||||
|
|
||||||
|
GLIB_AVAILABLE_IN_2_32
|
||||||
|
void g_cond_init (GCond *cond);
|
||||||
|
GLIB_AVAILABLE_IN_2_32
|
||||||
|
void g_cond_clear (GCond *cond);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_cond_wait (GCond *cond,
|
||||||
|
GMutex *mutex);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_cond_signal (GCond *cond);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_cond_broadcast (GCond *cond);
|
||||||
|
GLIB_AVAILABLE_IN_2_32
|
||||||
|
gboolean g_cond_wait_until (GCond *cond,
|
||||||
|
GMutex *mutex,
|
||||||
|
gint64 end_time);
|
||||||
|
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gpointer g_private_get (GPrivate *key);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_private_set (GPrivate *key,
|
||||||
|
gpointer value);
|
||||||
|
GLIB_AVAILABLE_IN_2_32
|
||||||
|
void g_private_replace (GPrivate *key,
|
||||||
|
gpointer value);
|
||||||
|
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gpointer g_once_impl (GOnce *once,
|
||||||
|
GThreadFunc func,
|
||||||
|
gpointer arg);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gboolean g_once_init_enter (volatile void *location);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_once_init_leave (volatile void *location,
|
||||||
|
gsize result);
|
||||||
|
|
||||||
|
#ifdef G_ATOMIC_OP_MEMORY_BARRIER_NEEDED
|
||||||
|
# define g_once(once, func, arg) g_once_impl ((once), (func), (arg))
|
||||||
|
#else /* !G_ATOMIC_OP_MEMORY_BARRIER_NEEDED*/
|
||||||
|
# define g_once(once, func, arg) \
|
||||||
|
(((once)->status == G_ONCE_STATUS_READY) ? \
|
||||||
|
(once)->retval : \
|
||||||
|
g_once_impl ((once), (func), (arg)))
|
||||||
|
#endif /* G_ATOMIC_OP_MEMORY_BARRIER_NEEDED */
|
||||||
|
|
||||||
|
#ifdef __GNUC__
|
||||||
|
# define g_once_init_enter(location) \
|
||||||
|
(G_GNUC_EXTENSION ({ \
|
||||||
|
G_STATIC_ASSERT (sizeof *(location) == sizeof (gpointer)); \
|
||||||
|
(void) (0 ? (gpointer) *(location) : 0); \
|
||||||
|
(!g_atomic_pointer_get (location) && \
|
||||||
|
g_once_init_enter (location)); \
|
||||||
|
}))
|
||||||
|
# define g_once_init_leave(location, result) \
|
||||||
|
(G_GNUC_EXTENSION ({ \
|
||||||
|
G_STATIC_ASSERT (sizeof *(location) == sizeof (gpointer)); \
|
||||||
|
(void) (0 ? *(location) = (result) : 0); \
|
||||||
|
g_once_init_leave ((location), (gsize) (result)); \
|
||||||
|
}))
|
||||||
|
#else
|
||||||
|
# define g_once_init_enter(location) \
|
||||||
|
(g_once_init_enter((location)))
|
||||||
|
# define g_once_init_leave(location, result) \
|
||||||
|
(g_once_init_leave((location), (gsize) (result)))
|
||||||
|
#endif
|
||||||
|
|
||||||
|
GLIB_AVAILABLE_IN_2_36
|
||||||
|
guint g_get_num_processors (void);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* GMutexLocker:
|
||||||
|
*
|
||||||
|
* Opaque type. See g_mutex_locker_new() for details.
|
||||||
|
* Since: 2.44
|
||||||
|
*/
|
||||||
|
typedef void GMutexLocker;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* g_mutex_locker_new:
|
||||||
|
* @mutex: a mutex to lock
|
||||||
|
*
|
||||||
|
* Lock @mutex and return a new #GMutexLocker. Unlock with
|
||||||
|
* g_mutex_locker_free(). Using g_mutex_unlock() on @mutex
|
||||||
|
* while a #GMutexLocker exists can lead to undefined behaviour.
|
||||||
|
*
|
||||||
|
* This is intended to be used with g_autoptr(). Note that g_autoptr()
|
||||||
|
* is only available when using GCC or clang, so the following example
|
||||||
|
* will only work with those compilers:
|
||||||
|
* |[
|
||||||
|
* typedef struct
|
||||||
|
* {
|
||||||
|
* ...
|
||||||
|
* GMutex mutex;
|
||||||
|
* ...
|
||||||
|
* } MyObject;
|
||||||
|
*
|
||||||
|
* static void
|
||||||
|
* my_object_do_stuff (MyObject *self)
|
||||||
|
* {
|
||||||
|
* g_autoptr(GMutexLocker) locker = g_mutex_locker_new (&self->mutex);
|
||||||
|
*
|
||||||
|
* // Code with mutex locked here
|
||||||
|
*
|
||||||
|
* if (cond)
|
||||||
|
* // No need to unlock
|
||||||
|
* return;
|
||||||
|
*
|
||||||
|
* // Optionally early unlock
|
||||||
|
* g_clear_pointer (&locker, g_mutex_locker_free);
|
||||||
|
*
|
||||||
|
* // Code with mutex unlocked here
|
||||||
|
* }
|
||||||
|
* ]|
|
||||||
|
*
|
||||||
|
* Returns: a #GMutexLocker
|
||||||
|
* Since: 2.44
|
||||||
|
*/
|
||||||
|
static inline GMutexLocker *
|
||||||
|
g_mutex_locker_new (GMutex *mutex)
|
||||||
|
{
|
||||||
|
g_mutex_lock (mutex);
|
||||||
|
return (GMutexLocker *) mutex;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* g_mutex_locker_free:
|
||||||
|
* @locker: a GMutexLocker
|
||||||
|
*
|
||||||
|
* Unlock @locker's mutex. See g_mutex_locker_new() for details.
|
||||||
|
*
|
||||||
|
* Since: 2.44
|
||||||
|
*/
|
||||||
|
static inline void
|
||||||
|
g_mutex_locker_free (GMutexLocker *locker)
|
||||||
|
{
|
||||||
|
g_mutex_unlock ((GMutex *) locker);
|
||||||
|
}
|
||||||
|
|
||||||
|
G_END_DECLS
|
||||||
|
|
||||||
|
#endif /* __G_THREAD_H__ */
|
|
@ -0,0 +1,96 @@
|
||||||
|
/* GLIB - Library of useful routines for C programming
|
||||||
|
* Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald
|
||||||
|
*
|
||||||
|
* This library 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 of the License, or (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This library 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 this library; if not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Modified by the GLib Team and others 1997-2000. See the AUTHORS
|
||||||
|
* file for a list of people on the GLib Team. See the ChangeLog
|
||||||
|
* files for a list of changes. These files are distributed with
|
||||||
|
* GLib at ftp://ftp.gtk.org/pub/gtk/.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef __G_THREADPOOL_H__
|
||||||
|
#define __G_THREADPOOL_H__
|
||||||
|
|
||||||
|
#if !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION)
|
||||||
|
#error "Only <glib.h> can be included directly."
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include <glib/gthread.h>
|
||||||
|
|
||||||
|
G_BEGIN_DECLS
|
||||||
|
|
||||||
|
typedef struct _GThreadPool GThreadPool;
|
||||||
|
|
||||||
|
/* Thread Pools
|
||||||
|
*/
|
||||||
|
|
||||||
|
struct _GThreadPool
|
||||||
|
{
|
||||||
|
GFunc func;
|
||||||
|
gpointer user_data;
|
||||||
|
gboolean exclusive;
|
||||||
|
};
|
||||||
|
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GThreadPool * g_thread_pool_new (GFunc func,
|
||||||
|
gpointer user_data,
|
||||||
|
gint max_threads,
|
||||||
|
gboolean exclusive,
|
||||||
|
GError **error);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_thread_pool_free (GThreadPool *pool,
|
||||||
|
gboolean immediate,
|
||||||
|
gboolean wait_);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gboolean g_thread_pool_push (GThreadPool *pool,
|
||||||
|
gpointer data,
|
||||||
|
GError **error);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
guint g_thread_pool_unprocessed (GThreadPool *pool);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_thread_pool_set_sort_function (GThreadPool *pool,
|
||||||
|
GCompareDataFunc func,
|
||||||
|
gpointer user_data);
|
||||||
|
GLIB_AVAILABLE_IN_2_46
|
||||||
|
gboolean g_thread_pool_move_to_front (GThreadPool *pool,
|
||||||
|
gpointer data);
|
||||||
|
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gboolean g_thread_pool_set_max_threads (GThreadPool *pool,
|
||||||
|
gint max_threads,
|
||||||
|
GError **error);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gint g_thread_pool_get_max_threads (GThreadPool *pool);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
guint g_thread_pool_get_num_threads (GThreadPool *pool);
|
||||||
|
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_thread_pool_set_max_unused_threads (gint max_threads);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gint g_thread_pool_get_max_unused_threads (void);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
guint g_thread_pool_get_num_unused_threads (void);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_thread_pool_stop_unused_threads (void);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_thread_pool_set_max_idle_time (guint interval);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
guint g_thread_pool_get_max_idle_time (void);
|
||||||
|
|
||||||
|
G_END_DECLS
|
||||||
|
|
||||||
|
#endif /* __G_THREADPOOL_H__ */
|
74
code/application/source/sf_app/code/source/sf_blue/inc/glib/glib/gtimer.h
Executable file
74
code/application/source/sf_app/code/source/sf_blue/inc/glib/glib/gtimer.h
Executable file
|
@ -0,0 +1,74 @@
|
||||||
|
/* GLIB - Library of useful routines for C programming
|
||||||
|
* Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald
|
||||||
|
*
|
||||||
|
* This library 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 of the License, or (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This library 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 this library; if not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Modified by the GLib Team and others 1997-2000. See the AUTHORS
|
||||||
|
* file for a list of people on the GLib Team. See the ChangeLog
|
||||||
|
* files for a list of changes. These files are distributed with
|
||||||
|
* GLib at ftp://ftp.gtk.org/pub/gtk/.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef __G_TIMER_H__
|
||||||
|
#define __G_TIMER_H__
|
||||||
|
|
||||||
|
#if !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION)
|
||||||
|
#error "Only <glib.h> can be included directly."
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include <glib/gtypes.h>
|
||||||
|
|
||||||
|
G_BEGIN_DECLS
|
||||||
|
|
||||||
|
/* Timer
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* microseconds per second */
|
||||||
|
typedef struct _GTimer GTimer;
|
||||||
|
|
||||||
|
#define G_USEC_PER_SEC 1000000
|
||||||
|
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GTimer* g_timer_new (void);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_timer_destroy (GTimer *timer);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_timer_start (GTimer *timer);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_timer_stop (GTimer *timer);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_timer_reset (GTimer *timer);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_timer_continue (GTimer *timer);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gdouble g_timer_elapsed (GTimer *timer,
|
||||||
|
gulong *microseconds);
|
||||||
|
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_usleep (gulong microseconds);
|
||||||
|
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_time_val_add (GTimeVal *time_,
|
||||||
|
glong microseconds);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gboolean g_time_val_from_iso8601 (const gchar *iso_date,
|
||||||
|
GTimeVal *time_);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gchar* g_time_val_to_iso8601 (GTimeVal *time_) G_GNUC_MALLOC;
|
||||||
|
|
||||||
|
G_END_DECLS
|
||||||
|
|
||||||
|
#endif /* __G_TIMER_H__ */
|
89
code/application/source/sf_app/code/source/sf_blue/inc/glib/glib/gtimezone.h
Executable file
89
code/application/source/sf_app/code/source/sf_blue/inc/glib/glib/gtimezone.h
Executable file
|
@ -0,0 +1,89 @@
|
||||||
|
/*
|
||||||
|
* Copyright © 2010 Codethink Limited
|
||||||
|
*
|
||||||
|
* This library 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 of the
|
||||||
|
* licence, or (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This library 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 this library; if not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*
|
||||||
|
* Author: Ryan Lortie <desrt@desrt.ca>
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef __G_TIME_ZONE_H__
|
||||||
|
#define __G_TIME_ZONE_H__
|
||||||
|
|
||||||
|
#if !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION)
|
||||||
|
#error "Only <glib.h> can be included directly."
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include <glib/gtypes.h>
|
||||||
|
|
||||||
|
G_BEGIN_DECLS
|
||||||
|
|
||||||
|
typedef struct _GTimeZone GTimeZone;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* GTimeType:
|
||||||
|
* @G_TIME_TYPE_STANDARD: the time is in local standard time
|
||||||
|
* @G_TIME_TYPE_DAYLIGHT: the time is in local daylight time
|
||||||
|
* @G_TIME_TYPE_UNIVERSAL: the time is in UTC
|
||||||
|
*
|
||||||
|
* Disambiguates a given time in two ways.
|
||||||
|
*
|
||||||
|
* First, specifies if the given time is in universal or local time.
|
||||||
|
*
|
||||||
|
* Second, if the time is in local time, specifies if it is local
|
||||||
|
* standard time or local daylight time. This is important for the case
|
||||||
|
* where the same local time occurs twice (during daylight savings time
|
||||||
|
* transitions, for example).
|
||||||
|
*/
|
||||||
|
typedef enum
|
||||||
|
{
|
||||||
|
G_TIME_TYPE_STANDARD,
|
||||||
|
G_TIME_TYPE_DAYLIGHT,
|
||||||
|
G_TIME_TYPE_UNIVERSAL
|
||||||
|
} GTimeType;
|
||||||
|
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GTimeZone * g_time_zone_new (const gchar *identifier);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GTimeZone * g_time_zone_new_utc (void);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GTimeZone * g_time_zone_new_local (void);
|
||||||
|
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
GTimeZone * g_time_zone_ref (GTimeZone *tz);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
void g_time_zone_unref (GTimeZone *tz);
|
||||||
|
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gint g_time_zone_find_interval (GTimeZone *tz,
|
||||||
|
GTimeType type,
|
||||||
|
gint64 time_);
|
||||||
|
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gint g_time_zone_adjust_time (GTimeZone *tz,
|
||||||
|
GTimeType type,
|
||||||
|
gint64 *time_);
|
||||||
|
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
const gchar * g_time_zone_get_abbreviation (GTimeZone *tz,
|
||||||
|
gint interval);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gint32 g_time_zone_get_offset (GTimeZone *tz,
|
||||||
|
gint interval);
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
gboolean g_time_zone_is_dst (GTimeZone *tz,
|
||||||
|
gint interval);
|
||||||
|
|
||||||
|
G_END_DECLS
|
||||||
|
|
||||||
|
#endif /* __G_TIME_ZONE_H__ */
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user