Initial common device tree

This commit is contained in:
Astrako 2019-11-17 18:53:04 +01:00
commit 765503ce5e
71 changed files with 22665 additions and 0 deletions

View file

@ -0,0 +1,157 @@
/*
* Copyright (C) 2015, The CyanogenMod Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#ifndef CM_AUDIO_AMPLIFIER_INTERFACE_H
#define CM_AUDIO_AMPLIFIER_INTERFACE_H
#include <stdint.h>
#include <sys/cdefs.h>
#include <sys/types.h>
#include <hardware/audio.h>
#include <hardware/hardware.h>
#include <system/audio.h>
__BEGIN_DECLS
#define AMPLIFIER_HARDWARE_MODULE_ID "audio_amplifier"
#define AMPLIFIER_HARDWARE_INTERFACE "audio_amplifier_hw_if"
#define AMPLIFIER_MODULE_API_VERSION_0_1 HARDWARE_MODULE_API_VERSION(0, 1)
#define AMPLIFIER_DEVICE_API_VERSION_1_0 HARDWARE_DEVICE_API_VERSION(1, 0)
#define AMPLIFIER_DEVICE_API_VERSION_2_0 HARDWARE_DEVICE_API_VERSION(2, 0)
#define AMPLIFIER_DEVICE_API_VERSION_2_1 HARDWARE_DEVICE_API_VERSION(2, 1)
#define AMPLIFIER_DEVICE_API_VERSION_CURRENT AMPLIFIER_DEVICE_API_VERSION_2_1
struct str_parms;
typedef struct amplifier_device {
/**
* Common methods of the amplifier device. This *must* be the first member
* of amplifier_device as users of this structure will cast a hw_device_t
* to amplifier_device pointer in contexts where it's known
* the hw_device_t references a amplifier_device.
*/
struct hw_device_t common;
/**
* Notify amplifier device of current input devices
*
* This function should handle only input devices.
*/
int (*set_input_devices)(struct amplifier_device *device, uint32_t devices);
/**
* Notify amplifier device of current output devices
*
* This function should handle only output devices.
*/
int (*set_output_devices)(struct amplifier_device *device, uint32_t devices);
/**
* Notify amplifier device of output device enable/disable
*
* This function should handle only output devices.
*/
int (*enable_output_devices)(struct amplifier_device *device,
uint32_t devices, bool enable);
/**
* Notify amplifier device of input device enable/disable
*
* This function should handle only input devices.
*/
int (*enable_input_devices)(struct amplifier_device *device,
uint32_t devices, bool enable);
/**
* Notify amplifier device about current audio mode
*/
int (*set_mode)(struct amplifier_device *device, audio_mode_t mode);
/**
* Notify amplifier device that an output stream has started
*/
int (*output_stream_start)(struct amplifier_device *device,
struct audio_stream_out *stream, bool offload);
/**
* Notify amplifier device that an input stream has started
*/
int (*input_stream_start)(struct amplifier_device *device,
struct audio_stream_in *stream);
/**
* Notify amplifier device that an output stream has stopped
*/
int (*output_stream_standby)(struct amplifier_device *device,
struct audio_stream_out *stream);
/**
* Notify amplifier device that an input stream has stopped
*/
int (*input_stream_standby)(struct amplifier_device *device,
struct audio_stream_in *stream);
/**
* set/get audio device parameters.
*/
int (*set_parameters)(struct amplifier_device *device,
struct str_parms *parms);
/**
* set/get output stream parameters.
*/
int (*out_set_parameters)(struct amplifier_device *device,
struct str_parms *parms);
/**
* set/get input stream parameters.
*/
int (*in_set_parameters)(struct amplifier_device *device,
struct str_parms *parms);
} amplifier_device_t;
typedef struct amplifier_module {
/**
* Common methods of the amplifier module. This *must* be the first member
* of amplifier_module as users of this structure will cast a hw_module_t
* to amplifier_module pointer in contexts where it's known
* the hw_module_t references a amplifier_module.
*/
struct hw_module_t common;
} amplifier_module_t;
/** convenience API for opening and closing a supported device */
static inline int amplifier_device_open(const struct hw_module_t *module,
struct amplifier_device **device)
{
return module->methods->open(module, AMPLIFIER_HARDWARE_INTERFACE,
(struct hw_device_t **) device);
}
static inline int amplifier_device_close(struct amplifier_device *device)
{
return device->common.close(&device->common);
}
__END_DECLS
#endif // CM_AUDIO_AMPLIFIER_INTERFACE_H

View file

@ -0,0 +1,275 @@
// This file is autogenerated by hidl-gen. Do not edit manually.
// Source: android.hardware.gnss@1.0
// Root: android.hardware:hardware/interfaces
#ifndef HIDL_GENERATED_ANDROID_HARDWARE_GNSS_V1_0_EXPORTED_CONSTANTS_H_
#define HIDL_GENERATED_ANDROID_HARDWARE_GNSS_V1_0_EXPORTED_CONSTANTS_H_
#ifdef __cplusplus
extern "C" {
#endif
enum {
GNSS_MAX_SVS_COUNT = 64u, // 64
};
enum {
GNSS_CONSTELLATION_UNKNOWN = 0,
GNSS_CONSTELLATION_GPS = 1,
GNSS_CONSTELLATION_SBAS = 2,
GNSS_CONSTELLATION_GLONASS = 3,
GNSS_CONSTELLATION_QZSS = 4,
GNSS_CONSTELLATION_BEIDOU = 5,
GNSS_CONSTELLATION_GALILEO = 6,
};
enum {
GPS_LOCATION_HAS_LAT_LONG = 1, // 0x0001
GPS_LOCATION_HAS_ALTITUDE = 2, // 0x0002
GPS_LOCATION_HAS_SPEED = 4, // 0x0004
GPS_LOCATION_HAS_BEARING = 8, // 0x0008
GPS_LOCATION_HAS_HORIZONTAL_ACCURACY = 16, // 0x0010
GPS_LOCATION_HAS_VERTICAL_ACCURACY = 32, // 0x0020
GPS_LOCATION_HAS_SPEED_ACCURACY = 64, // 0x0040
GPS_LOCATION_HAS_BEARING_ACCURACY = 128, // 0x0080
};
enum {
APN_IP_INVALID = 0,
APN_IP_IPV4 = 1,
APN_IP_IPV6 = 2,
APN_IP_IPV4V6 = 3,
};
enum {
AGPS_TYPE_SUPL = 1,
AGPS_TYPE_C2K = 2,
};
enum {
GNSS_REQUEST_AGNSS_DATA_CONN = 1,
GNSS_RELEASE_AGNSS_DATA_CONN = 2,
GNSS_AGNSS_DATA_CONNECTED = 3,
GNSS_AGNSS_DATA_CONN_DONE = 4,
GNSS_AGNSS_DATA_CONN_FAILED = 5,
};
enum {
AGPS_SETID_TYPE_NONE = 0,
AGPS_SETID_TYPE_IMSI = 1,
AGPS_SETID_TYPE_MSISDM = 2,
};
enum {
AGPS_RIL_NETWORK_TYPE_MOBILE = 0,
AGPS_RIL_NETWORK_TYPE_WIFI = 1,
AGPS_RIL_NETWORK_TYPE_MMS = 2,
AGPS_RIL_NETWORK_TYPE_SUPL = 3,
AGPS_RIL_NETWORK_TYPE_DUN = 4,
AGPS_RIL_NETWORK_TYPE_HIPRI = 5,
AGPS_RIL_NETWORK_TYPE_WIMAX = 6,
};
enum {
AGPS_REF_LOCATION_TYPE_GSM_CELLID = 1,
AGPS_REF_LOCATION_TYPE_UMTS_CELLID = 2,
AGPS_REF_LOCATION_TYPE_LTE_CELLID = 4,
};
enum {
AGPS_RIL_REQUEST_SETID_IMSI = 1u, // (1 << 0L)
AGPS_RIL_REQUEST_SETID_MSISDN = 2u, // (1 << 1L)
};
enum {
GPS_POSITION_MODE_STANDALONE = 0,
GPS_POSITION_MODE_MS_BASED = 1,
GPS_POSITION_MODE_MS_ASSISTED = 2,
};
enum {
GPS_POSITION_RECURRENCE_PERIODIC = 0u, // 0
GPS_POSITION_RECURRENCE_SINGLE = 1u, // 1
};
enum {
GPS_DELETE_EPHEMERIS = 1, // 0x0001
GPS_DELETE_ALMANAC = 2, // 0x0002
GPS_DELETE_POSITION = 4, // 0x0004
GPS_DELETE_TIME = 8, // 0x0008
GPS_DELETE_IONO = 16, // 0x0010
GPS_DELETE_UTC = 32, // 0x0020
GPS_DELETE_HEALTH = 64, // 0x0040
GPS_DELETE_SVDIR = 128, // 0x0080
GPS_DELETE_SVSTEER = 256, // 0x0100
GPS_DELETE_SADATA = 512, // 0x0200
GPS_DELETE_RTI = 1024, // 0x0400
GPS_DELETE_CELLDB_INFO = 32768, // 0x8000
GPS_DELETE_ALL = 65535, // 0xFFFF
};
enum {
FLP_BATCH_WAKEUP_ON_FIFO_FULL = 1, // 0x01
};
enum {
GPS_CAPABILITY_SCHEDULING = 1u, // (1 << 0)
GPS_CAPABILITY_MSB = 2u, // (1 << 1)
GPS_CAPABILITY_MSA = 4u, // (1 << 2)
GPS_CAPABILITY_SINGLE_SHOT = 8u, // (1 << 3)
GPS_CAPABILITY_ON_DEMAND_TIME = 16u, // (1 << 4)
GPS_CAPABILITY_GEOFENCING = 32u, // (1 << 5)
GPS_CAPABILITY_MEASUREMENTS = 64u, // (1 << 6)
GPS_CAPABILITY_NAV_MESSAGES = 128u, // (1 << 7)
};
enum {
GPS_STATUS_NONE = 0,
GPS_STATUS_SESSION_BEGIN = 1,
GPS_STATUS_SESSION_END = 2,
GPS_STATUS_ENGINE_ON = 3,
GPS_STATUS_ENGINE_OFF = 4,
};
enum {
GNSS_SV_FLAGS_NONE = 0,
GNSS_SV_FLAGS_HAS_EPHEMERIS_DATA = 1, // (1 << 0)
GNSS_SV_FLAGS_HAS_ALMANAC_DATA = 2, // (1 << 1)
GNSS_SV_FLAGS_USED_IN_FIX = 4, // (1 << 2)
GNSS_SV_FLAGS_HAS_CARRIER_FREQUENCY = 8, // (1 << 3)
};
enum {
GPS_GEOFENCE_ENTERED = 1, // (1 << 0L)
GPS_GEOFENCE_EXITED = 2, // (1 << 1L)
GPS_GEOFENCE_UNCERTAIN = 4, // (1 << 2L)
};
enum {
GPS_GEOFENCE_UNAVAILABLE = 1, // (1 << 0L)
GPS_GEOFENCE_AVAILABLE = 2, // (1 << 1L)
};
enum {
GPS_GEOFENCE_OPERATION_SUCCESS = 0,
GPS_GEOFENCE_ERROR_TOO_MANY_GEOFENCES = -100, // (-100)
GPS_GEOFENCE_ERROR_ID_EXISTS = -101, // (-101)
GPS_GEOFENCE_ERROR_ID_UNKNOWN = -102, // (-102)
GPS_GEOFENCE_ERROR_INVALID_TRANSITION = -103, // (-103)
GPS_GEOFENCE_ERROR_GENERIC = -149, // (-149)
};
enum {
GPS_MEASUREMENT_SUCCESS = 0,
GPS_MEASUREMENT_ERROR_ALREADY_INIT = -100, // (-100)
GPS_MEASUREMENT_ERROR_GENERIC = -101, // (-101)
};
enum {
GNSS_CLOCK_HAS_LEAP_SECOND = 1, // (1 << 0)
GNSS_CLOCK_HAS_TIME_UNCERTAINTY = 2, // (1 << 1)
GNSS_CLOCK_HAS_FULL_BIAS = 4, // (1 << 2)
GNSS_CLOCK_HAS_BIAS = 8, // (1 << 3)
GNSS_CLOCK_HAS_BIAS_UNCERTAINTY = 16, // (1 << 4)
GNSS_CLOCK_HAS_DRIFT = 32, // (1 << 5)
GNSS_CLOCK_HAS_DRIFT_UNCERTAINTY = 64, // (1 << 6)
};
enum {
GNSS_MEASUREMENT_HAS_SNR = 1u, // (1 << 0)
GNSS_MEASUREMENT_HAS_CARRIER_FREQUENCY = 512u, // (1 << 9)
GNSS_MEASUREMENT_HAS_CARRIER_CYCLES = 1024u, // (1 << 10)
GNSS_MEASUREMENT_HAS_CARRIER_PHASE = 2048u, // (1 << 11)
GNSS_MEASUREMENT_HAS_CARRIER_PHASE_UNCERTAINTY = 4096u, // (1 << 12)
GNSS_MEASUREMENT_HAS_AUTOMATIC_GAIN_CONTROL = 8192u, // (1 << 13)
};
enum {
GNSS_MULTIPATH_INDICATOR_UNKNOWN = 0,
GNSS_MULTIPATH_INDICATOR_PRESENT = 1,
GNSS_MULTIPATH_INDICATIOR_NOT_PRESENT = 2,
};
enum {
GNSS_MEASUREMENT_STATE_UNKNOWN = 0u, // 0
GNSS_MEASUREMENT_STATE_CODE_LOCK = 1u, // (1 << 0)
GNSS_MEASUREMENT_STATE_BIT_SYNC = 2u, // (1 << 1)
GNSS_MEASUREMENT_STATE_SUBFRAME_SYNC = 4u, // (1 << 2)
GNSS_MEASUREMENT_STATE_TOW_DECODED = 8u, // (1 << 3)
GNSS_MEASUREMENT_STATE_MSEC_AMBIGUOUS = 16u, // (1 << 4)
GNSS_MEASUREMENT_STATE_SYMBOL_SYNC = 32u, // (1 << 5)
GNSS_MEASUREMENT_STATE_GLO_STRING_SYNC = 64u, // (1 << 6)
GNSS_MEASUREMENT_STATE_GLO_TOD_DECODED = 128u, // (1 << 7)
GNSS_MEASUREMENT_STATE_BDS_D2_BIT_SYNC = 256u, // (1 << 8)
GNSS_MEASUREMENT_STATE_BDS_D2_SUBFRAME_SYNC = 512u, // (1 << 9)
GNSS_MEASUREMENT_STATE_GAL_E1BC_CODE_LOCK = 1024u, // (1 << 10)
GNSS_MEASUREMENT_STATE_GAL_E1C_2ND_CODE_LOCK = 2048u, // (1 << 11)
GNSS_MEASUREMENT_STATE_GAL_E1B_PAGE_SYNC = 4096u, // (1 << 12)
GNSS_MEASUREMENT_STATE_SBAS_SYNC = 8192u, // (1 << 13)
GNSS_MEASUREMENT_STATE_TOW_KNOWN = 16384u, // (1 << 14)
GNSS_MEASUREMENT_STATE_GLO_TOD_KNOWN = 32768u, // (1 << 15)
};
enum {
GNSS_ADR_STATE_UNKNOWN = 0,
GNSS_ADR_STATE_VALID = 1, // (1 << 0)
GNSS_ADR_STATE_RESET = 2, // (1 << 1)
GNSS_ADR_STATE_CYCLE_SLIP = 4, // (1 << 2)
};
enum {
GPS_NAVIGATION_MESSAGE_SUCCESS = 0,
GPS_NAVIGATION_MESSAGE_ERROR_ALREADY_INIT = -100, // (-100)
GPS_NAVIGATION_MESSAGE_ERROR_GENERIC = -101, // (-101)
};
enum {
GNSS_NAVIGATION_MESSAGE_TYPE_UNKNOWN = 0,
GNSS_NAVIGATION_MESSAGE_TYPE_GNSS_L1CA = 257, // 0x0101
GNSS_NAVIGATION_MESSAGE_TYPE_GNSS_L2CNAV = 258, // 0x0102
GNSS_NAVIGATION_MESSAGE_TYPE_GNSS_L5CNAV = 259, // 0x0103
GNSS_NAVIGATION_MESSAGE_TYPE_GNSS_CNAV2 = 260, // 0x0104
GNSS_NAVIGATION_MESSAGE_TYPE_GLO_L1CA = 769, // 0x0301
GNSS_NAVIGATION_MESSAGE_TYPE_BDS_D1 = 1281, // 0x0501
GNSS_NAVIGATION_MESSAGE_TYPE_BDS_D2 = 1282, // 0x0502
GNSS_NAVIGATION_MESSAGE_TYPE_GAL_I = 1537, // 0x0601
GNSS_NAVIGATION_MESSAGE_TYPE_GAL_F = 1538, // 0x0602
};
typedef enum {
NAV_MESSAGE_STATUS_PARITY_PASSED = 1, // (1 << 0)
NAV_MESSAGE_STATUS_PARITY_REBUILT = 2, // (1 << 1)
NAV_MESSAGE_STATUS_UNKNOWN = 0,
} navigation_message_status;
enum {
GPS_NI_TYPE_VOICE = 1,
GPS_NI_TYPE_UMTS_SUPL = 2,
GPS_NI_TYPE_UMTS_CTRL_PLANE = 3,
};
enum {
GPS_NI_NEED_NOTIFY = 1u, // 0x0001
GPS_NI_NEED_VERIFY = 2u, // 0x0002
GPS_NI_PRIVACY_OVERRIDE = 4u, // 0x0004
};
enum {
GPS_NI_RESPONSE_ACCEPT = 1,
GPS_NI_RESPONSE_DENY = 2,
GPS_NI_RESPONSE_NORESP = 3,
};
enum {
GPS_ENC_NONE = 0,
GPS_ENC_SUPL_GSM_DEFAULT = 1,
GPS_ENC_SUPL_UTF8 = 2,
GPS_ENC_SUPL_UCS2 = 3,
GPS_ENC_UNKNOWN = -1, // (-1)
};
#ifdef __cplusplus
}
#endif
#endif // HIDL_GENERATED_ANDROID_HARDWARE_GNSS_V1_0_EXPORTED_CONSTANTS_H_

2006
include/hardware/gps.h Normal file

File diff suppressed because it is too large Load diff

437
include/hardware/gralloc.h Normal file
View file

@ -0,0 +1,437 @@
/*
* Copyright (C) 2008 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#ifndef ANDROID_GRALLOC_INTERFACE_H
#define ANDROID_GRALLOC_INTERFACE_H
#include <system/graphics.h>
#include <hardware/hardware.h>
#include <stdint.h>
#include <sys/cdefs.h>
#include <sys/types.h>
#include <cutils/native_handle.h>
#include <hardware/hardware.h>
#include <hardware/fb.h>
__BEGIN_DECLS
/**
* Module versioning information for the Gralloc hardware module, based on
* gralloc_module_t.common.module_api_version.
*
* Version History:
*
* GRALLOC_MODULE_API_VERSION_0_1:
* Initial Gralloc hardware module API.
*
* GRALLOC_MODULE_API_VERSION_0_2:
* Add support for flexible YCbCr format with (*lock_ycbcr)() method.
*
* GRALLOC_MODULE_API_VERSION_0_3:
* Add support for fence passing to/from lock/unlock.
*/
#define GRALLOC_MODULE_API_VERSION_0_1 HARDWARE_MODULE_API_VERSION(0, 1)
#define GRALLOC_MODULE_API_VERSION_0_2 HARDWARE_MODULE_API_VERSION(0, 2)
#define GRALLOC_MODULE_API_VERSION_0_3 HARDWARE_MODULE_API_VERSION(0, 3)
#define GRALLOC_DEVICE_API_VERSION_0_1 HARDWARE_DEVICE_API_VERSION(0, 1)
/**
* The id of this module
*/
#define GRALLOC_HARDWARE_MODULE_ID "gralloc"
/**
* Name of the graphics device to open
*/
#define GRALLOC_HARDWARE_GPU0 "gpu0"
enum {
/* buffer is never read in software */
GRALLOC_USAGE_SW_READ_NEVER = 0x00000000U,
/* buffer is rarely read in software */
GRALLOC_USAGE_SW_READ_RARELY = 0x00000002U,
/* buffer is often read in software */
GRALLOC_USAGE_SW_READ_OFTEN = 0x00000003U,
/* added for VR single buffer only */
#ifdef USES_VR_FRONT_BUFFER
GRALLOC_USAGE_VR_SINGLE_BUFFER_USAGE= 0x00000004U,
#endif
/* mask for the software read values */
GRALLOC_USAGE_SW_READ_MASK = 0x0000000FU,
/* buffer is never written in software */
GRALLOC_USAGE_SW_WRITE_NEVER = 0x00000000U,
/* buffer is rarely written in software */
GRALLOC_USAGE_SW_WRITE_RARELY = 0x00000020U,
/* buffer is often written in software */
GRALLOC_USAGE_SW_WRITE_OFTEN = 0x00000030U,
/* mask for the software write values */
GRALLOC_USAGE_SW_WRITE_MASK = 0x000000F0U,
/* buffer will be used as an OpenGL ES texture */
GRALLOC_USAGE_HW_TEXTURE = 0x00000100U,
/* buffer will be used as an OpenGL ES render target */
GRALLOC_USAGE_HW_RENDER = 0x00000200U,
/* buffer will be used by the 2D hardware blitter */
GRALLOC_USAGE_HW_2D = 0x00000400U,
/* buffer will be used by the HWComposer HAL module */
GRALLOC_USAGE_HW_COMPOSER = 0x00000800U,
/* buffer will be used with the framebuffer device */
GRALLOC_USAGE_HW_FB = 0x00001000U,
/* buffer should be displayed full-screen on an external display when
* possible */
GRALLOC_USAGE_EXTERNAL_DISP = 0x00002000U,
/* Must have a hardware-protected path to external display sink for
* this buffer. If a hardware-protected path is not available, then
* either don't composite only this buffer (preferred) to the
* external sink, or (less desirable) do not route the entire
* composition to the external sink. */
GRALLOC_USAGE_PROTECTED = 0x00004000U,
/* buffer may be used as a cursor */
GRALLOC_USAGE_CURSOR = 0x00008000U,
/* buffer will be used with the HW video encoder */
GRALLOC_USAGE_HW_VIDEO_ENCODER = 0x00010000U,
/* buffer will be written by the HW camera pipeline */
GRALLOC_USAGE_HW_CAMERA_WRITE = 0x00020000U,
/* buffer will be read by the HW camera pipeline */
GRALLOC_USAGE_HW_CAMERA_READ = 0x00040000U,
/* buffer will be used as part of zero-shutter-lag queue */
GRALLOC_USAGE_HW_CAMERA_ZSL = 0x00060000U,
/* mask for the camera access values */
GRALLOC_USAGE_HW_CAMERA_MASK = 0x00060000U,
/* mask for the software usage bit-mask */
GRALLOC_USAGE_HW_MASK = 0x00071F00U,
/* buffer will be used as a RenderScript Allocation */
GRALLOC_USAGE_RENDERSCRIPT = 0x00100000U,
/* Set by the consumer to indicate to the producer that they may attach a
* buffer that they did not detach from the BufferQueue. Will be filtered
* out by GRALLOC_USAGE_ALLOC_MASK, so gralloc modules will not need to
* handle this flag. */
GRALLOC_USAGE_FOREIGN_BUFFERS = 0x00200000U,
/* Mask of all flags which could be passed to a gralloc module for buffer
* allocation. Any flags not in this mask do not need to be handled by
* gralloc modules. */
GRALLOC_USAGE_ALLOC_MASK = ~(GRALLOC_USAGE_FOREIGN_BUFFERS),
/* implementation-specific private usage flags */
GRALLOC_USAGE_PRIVATE_0 = 0x10000000U,
GRALLOC_USAGE_PRIVATE_1 = 0x20000000U,
GRALLOC_USAGE_PRIVATE_2 = 0x40000000U,
GRALLOC_USAGE_PRIVATE_3 = 0x80000000U,
GRALLOC_USAGE_PRIVATE_MASK = 0xF0000000U,
GRALLOC_USAGE_INTERNAL_ONLY = 0x10000000U,
GRALLOC_USAGE_EXTERNAL_FLEXIBLE = 0x20000000U,
GRALLOC_USAGE_EXTERNAL_BLOCK = 0x40000000U,
GRALLOC_USAGE_EXTERNAL_ONLY = 0x80000000U,
GRALLOC_USAGE_EXTERNAL_VIRTUALFB = 0x00400000U,
GRALLOC_USAGE_PROTECTED_DPB = 0x00800000U,
/* buffer will be used by the HW IPs when sysmmu is off */
GRALLOC_USAGE_PHYSICALLY_LINEAR = 0x01000000U,
GRALLOC_USAGE_PRIVATE_NONSECURE = 0x02000000U,
GRALLOC_USAGE_CAMERA_RESERVED = 0x04000000U,
GRALLOC_USAGE_NOZEROED = 0x08000000U,
GRALLOC_USAGE_VIDEO_EXT = 0x10000000U,
GRALLOC_USAGE_GPU_BUFFER = 0x00800000U,
};
/*****************************************************************************/
/**
* Every hardware module must have a data structure named HAL_MODULE_INFO_SYM
* and the fields of this data structure must begin with hw_module_t
* followed by module specific information.
*/
typedef struct gralloc_module_t {
struct hw_module_t common;
/*
* (*registerBuffer)() must be called before a buffer_handle_t that has not
* been created with (*alloc_device_t::alloc)() can be used.
*
* This is intended to be used with buffer_handle_t's that have been
* received in this process through IPC.
*
* This function checks that the handle is indeed a valid one and prepares
* it for use with (*lock)() and (*unlock)().
*
* It is not necessary to call (*registerBuffer)() on a handle created
* with (*alloc_device_t::alloc)().
*
* returns an error if this buffer_handle_t is not valid.
*/
int (*registerBuffer)(struct gralloc_module_t const* module,
buffer_handle_t handle);
/*
* (*unregisterBuffer)() is called once this handle is no longer needed in
* this process. After this call, it is an error to call (*lock)(),
* (*unlock)(), or (*registerBuffer)().
*
* This function doesn't close or free the handle itself; this is done
* by other means, usually through libcutils's native_handle_close() and
* native_handle_free().
*
* It is an error to call (*unregisterBuffer)() on a buffer that wasn't
* explicitly registered first.
*/
int (*unregisterBuffer)(struct gralloc_module_t const* module,
buffer_handle_t handle);
/*
* The (*lock)() method is called before a buffer is accessed for the
* specified usage. This call may block, for instance if the h/w needs
* to finish rendering or if CPU caches need to be synchronized.
*
* The caller promises to modify only pixels in the area specified
* by (l,t,w,h).
*
* The content of the buffer outside of the specified area is NOT modified
* by this call.
*
* If usage specifies GRALLOC_USAGE_SW_*, vaddr is filled with the address
* of the buffer in virtual memory.
*
* Note calling (*lock)() on HAL_PIXEL_FORMAT_YCbCr_*_888 buffers will fail
* and return -EINVAL. These buffers must be locked with (*lock_ycbcr)()
* instead.
*
* THREADING CONSIDERATIONS:
*
* It is legal for several different threads to lock a buffer from
* read access, none of the threads are blocked.
*
* However, locking a buffer simultaneously for write or read/write is
* undefined, but:
* - shall not result in termination of the process
* - shall not block the caller
* It is acceptable to return an error or to leave the buffer's content
* into an indeterminate state.
*
* If the buffer was created with a usage mask incompatible with the
* requested usage flags here, -EINVAL is returned.
*
*/
int (*lock)(struct gralloc_module_t const* module,
buffer_handle_t handle, int usage,
int l, int t, int w, int h,
void** vaddr);
/*
* The (*unlock)() method must be called after all changes to the buffer
* are completed.
*/
int (*unlock)(struct gralloc_module_t const* module,
buffer_handle_t handle);
/* reserved for future use */
int (*perform)(struct gralloc_module_t const* module,
int operation, ... );
/*
* The (*lock_ycbcr)() method is like the (*lock)() method, with the
* difference that it fills a struct ycbcr with a description of the buffer
* layout, and zeroes out the reserved fields.
*
* If the buffer format is not compatible with a flexible YUV format (e.g.
* the buffer layout cannot be represented with the ycbcr struct), it
* will return -EINVAL.
*
* This method must work on buffers with HAL_PIXEL_FORMAT_YCbCr_*_888
* if supported by the device, as well as with any other format that is
* requested by the multimedia codecs when they are configured with a
* flexible-YUV-compatible color-format with android native buffers.
*
* Note that this method may also be called on buffers of other formats,
* including non-YUV formats.
*
* Added in GRALLOC_MODULE_API_VERSION_0_2.
*/
int (*lock_ycbcr)(struct gralloc_module_t const* module,
buffer_handle_t handle, int usage,
int l, int t, int w, int h,
struct android_ycbcr *ycbcr);
/*
* The (*lockAsync)() method is like the (*lock)() method except
* that the buffer's sync fence object is passed into the lock
* call instead of requiring the caller to wait for completion.
*
* The gralloc implementation takes ownership of the fenceFd and
* is responsible for closing it when no longer needed.
*
* Added in GRALLOC_MODULE_API_VERSION_0_3.
*/
int (*lockAsync)(struct gralloc_module_t const* module,
buffer_handle_t handle, int usage,
int l, int t, int w, int h,
void** vaddr, int fenceFd);
/*
* The (*unlockAsync)() method is like the (*unlock)() method
* except that a buffer sync fence object is returned from the
* lock call, representing the completion of any pending work
* performed by the gralloc implementation.
*
* The caller takes ownership of the fenceFd and is responsible
* for closing it when no longer needed.
*
* Added in GRALLOC_MODULE_API_VERSION_0_3.
*/
int (*unlockAsync)(struct gralloc_module_t const* module,
buffer_handle_t handle, int* fenceFd);
/*
* The (*lockAsync_ycbcr)() method is like the (*lock_ycbcr)()
* method except that the buffer's sync fence object is passed
* into the lock call instead of requiring the caller to wait for
* completion.
*
* The gralloc implementation takes ownership of the fenceFd and
* is responsible for closing it when no longer needed.
*
* Added in GRALLOC_MODULE_API_VERSION_0_3.
*/
int (*lockAsync_ycbcr)(struct gralloc_module_t const* module,
buffer_handle_t handle, int usage,
int l, int t, int w, int h,
struct android_ycbcr *ycbcr, int fenceFd);
/* reserved for future use */
void* reserved_proc[3];
} gralloc_module_t;
/*****************************************************************************/
/**
* Every device data structure must begin with hw_device_t
* followed by module specific public methods and attributes.
*/
typedef struct alloc_device_t {
struct hw_device_t common;
/*
* (*alloc)() Allocates a buffer in graphic memory with the requested
* parameters and returns a buffer_handle_t and the stride in pixels to
* allow the implementation to satisfy hardware constraints on the width
* of a pixmap (eg: it may have to be multiple of 8 pixels).
* The CALLER TAKES OWNERSHIP of the buffer_handle_t.
*
* If format is HAL_PIXEL_FORMAT_YCbCr_420_888, the returned stride must be
* 0, since the actual strides are available from the android_ycbcr
* structure.
*
* Returns 0 on success or -errno on error.
*/
int (*alloc)(struct alloc_device_t* dev,
int w, int h, int format, int usage,
buffer_handle_t* handle, int* stride);
/*
* (*free)() Frees a previously allocated buffer.
* Behavior is undefined if the buffer is still mapped in any process,
* but shall not result in termination of the program or security breaches
* (allowing a process to get access to another process' buffers).
* THIS FUNCTION TAKES OWNERSHIP of the buffer_handle_t which becomes
* invalid after the call.
*
* Returns 0 on success or -errno on error.
*/
int (*free)(struct alloc_device_t* dev,
buffer_handle_t handle);
/* This hook is OPTIONAL.
*
* If non NULL it will be caused by SurfaceFlinger on dumpsys
*/
void (*dump)(struct alloc_device_t *dev, char *buff, int buff_len);
void* reserved_proc[7];
} alloc_device_t;
/** convenience API for opening and closing a supported device */
static inline int gralloc_open(const struct hw_module_t* module,
struct alloc_device_t** device) {
return module->methods->open(module,
#ifdef __cplusplus
GRALLOC_HARDWARE_GPU0, reinterpret_cast<struct hw_device_t**>(device));
#else
GRALLOC_HARDWARE_GPU0, TO_HW_DEVICE_T_OPEN(device));
#endif
}
static inline int gralloc_close(struct alloc_device_t* device) {
return device->common.close(&device->common);
}
/**
* map_usage_to_memtrack should be called after allocating a gralloc buffer.
*
* @param usage - it is the flag used when alloc function is called.
*
* This function maps the gralloc usage flags to appropriate memtrack bucket.
* GrallocHAL implementers and users should make an additional ION_IOCTL_TAG
* call using the memtrack tag returned by this function. This will help the
* in-kernel memtack to categorize the memory allocated by different processes
* according to their usage.
*
*/
static inline const char* map_usage_to_memtrack(uint32_t usage) {
usage &= GRALLOC_USAGE_ALLOC_MASK;
if ((usage & GRALLOC_USAGE_HW_CAMERA_WRITE) != 0) {
return "camera";
} else if ((usage & GRALLOC_USAGE_HW_VIDEO_ENCODER) != 0 ||
(usage & GRALLOC_USAGE_EXTERNAL_DISP) != 0) {
return "video";
} else if ((usage & GRALLOC_USAGE_HW_RENDER) != 0 ||
(usage & GRALLOC_USAGE_HW_TEXTURE) != 0) {
return "gl";
} else if ((usage & GRALLOC_USAGE_HW_CAMERA_READ) != 0) {
return "camera";
} else if ((usage & GRALLOC_USAGE_SW_READ_MASK) != 0 ||
(usage & GRALLOC_USAGE_SW_WRITE_MASK) != 0) {
return "cpu";
}
return "graphics";
}
__END_DECLS
#endif // ANDROID_GRALLOC_INTERFACE_H

84
include/samsung_audio.h Normal file
View file

@ -0,0 +1,84 @@
/*
* Copyright (C) 2017 The LineageOS Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#include <telephony/ril.h>
#ifndef SAMSUNG_AUDIO_H
#define SAMSUNG_AUDIO_H
#define MIXER_CARD 0
#define SOUND_CARD 0
/* Playback */
#define SOUND_DEEP_BUFFER_DEVICE 1
#define SOUND_PLAYBACK_DEVICE 0
#define SOUND_PLAYBACK_SCO_DEVICE 3
/* Capture */
#define SOUND_CAPTURE_DEVICE 0
#define SOUND_CAPTURE_SCO_DEVICE 3
/* Voice calls */
#define SOUND_PLAYBACK_VOICE_DEVICE 2
#define SOUND_CAPTURE_VOICE_DEVICE 2
/* Wideband AMR callback */
#ifndef RIL_UNSOL_SNDMGR_WB_AMR_REPORT
#ifdef RIL_UNSOL_WB_AMR_STATE
#define RIL_UNSOL_SNDMGR_WB_AMR_REPORT RIL_UNSOL_WB_AMR_STATE
#else
#define RIL_UNSOL_SNDMGR_WB_AMR_REPORT 0
#endif
#endif
/* Unusupported
#define SOUND_CAPTURE_LOOPBACK_AEC_DEVICE 1
#define SOUND_CAPTURE_HOTWORD_DEVICE 0
*/
/*
* If the device has stereo speakers and the speakers are arranged on
* different sides of the device you can activate this feature by
* setting it to 1.
*/
#define SWAP_SPEAKER_ON_SCREEN_ROTATION 0
/*
* You can that this to 1 if your kernel supports irq affinity for
* fast mode. See /proc/asound/irq_affinity
*/
#define SUPPORTS_IRQ_AFFINITY 0
/*
* The Wolfson/Cirruslogic chips need to shutdown the DAPM route completely
* to be able to load a new firmware. Some of these chips need a delay after
* shutodown to full poweroff the DSPs.
*
* A good value to start with is 10ms:
*
* #define DSP_POWEROFF_DELAY 10 * 1000
*/
/* #define DSP_POWEROFF_DELAY 0 */
/*
* Some device variants (often T-Mobile) have a separate voice processing IC
* (Audience EarSmart xxx).
* This hooks into the voice call session and enables, configures and disables
* this extra firmware so RX/TX streams can be routed by the driver.
*/
/* #define AUDIENCE_EARSMART_IC */
#endif // SAMSUNG_AUDIO_H

46
include/samsung_dtbh.h Normal file
View file

@ -0,0 +1,46 @@
/* tools/mkbootimg/samsung_dtbh.h
**
** Copyright 2017, The LineageOS Project
**
** Licensed under the Apache License, Version 2.0 (the "License");
** you may not use this file except in compliance with the License.
** You may obtain a copy of the License at
**
** http://www.apache.org/licenses/LICENSE-2.0
**
** Unless required by applicable law or agreed to in writing, software
** distributed under the License is distributed on an "AS IS" BASIS,
** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
** See the License for the specific language governing permissions and
** limitations under the License.
*/
#ifndef _SAMSUNG_DTBH_H_
#define _SAMSUNG_DTBH_H_
#define DTBH_MAGIC "DTBH"
#define DTBH_VERSION 2
#define DTBH_PLATFORM "android"
#define DTBH_SUBTYPE "samsung"
/* Hardcoded entry */
#define DTBH_PLATFORM_CODE 0x000050a6
#define DTBH_SUBTYPE_CODE 0x217584da
/* DTBH_MAGIC + DTBH_VERSION + DTB counts */
#define DT_HEADER_PHYS_SIZE 12
/* model = "Samsung Galaxy Tab A LTE rev01 board based on Exynos7870";
* model_info-chip = <7870>;
* model_info-platform = "android";
* model_info-subtype = "samsung";
* model_info-hw_rev = <2>;
* model_info-hw_rev_end = <3>;
* compatible = "samsung, Galaxy Tab A LTE 01", "samsung,exynos7870";
*/
/*
* keep the eight uint32_t entries first in this struct so we can memcpy them to the file
*/
#define DT_ENTRY_PHYS_SIZE (sizeof(uint32_t) * 8)
#endif // _SAMSUNG_DTBH_H_

7481
include/telephony/ril.h Normal file

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,806 @@
/*
* Copyright (C) 2006 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
/*
* ISSUES:
*
*/
/**
* TODO
*
*
*/
#ifndef ANDROID_RIL_CDMA_SMS_H
#define ANDROID_RIL_CDMA_SMS_H 1
#include <stdlib.h>
#ifdef __cplusplus
extern "C" {
#endif
/* Used by RIL_REQUEST_CDMA_SEND_SMS and RIL_UNSOL_RESPONSE_CDMA_NEW_SMS */
#define RIL_CDMA_SMS_ADDRESS_MAX 36
#define RIL_CDMA_SMS_SUBADDRESS_MAX 36
#define RIL_CDMA_SMS_BEARER_DATA_MAX 255
typedef enum {
RIL_CDMA_SMS_DIGIT_MODE_4_BIT = 0, /* DTMF digits */
RIL_CDMA_SMS_DIGIT_MODE_8_BIT = 1,
RIL_CDMA_SMS_DIGIT_MODE_MAX32 = 0x10000000 /* Force constant ENUM size in structures */
} RIL_CDMA_SMS_DigitMode;
typedef enum {
RIL_CDMA_SMS_NUMBER_MODE_NOT_DATA_NETWORK = 0,
RIL_CDMA_SMS_NUMBER_MODE_DATA_NETWORK = 1,
RIL_CDMA_SMS_NUMBER_MODE_MAX32 = 0x10000000 /* Force constant ENUM size in structures */
} RIL_CDMA_SMS_NumberMode;
typedef enum {
RIL_CDMA_SMS_NUMBER_TYPE_UNKNOWN = 0,
RIL_CDMA_SMS_NUMBER_TYPE_INTERNATIONAL_OR_DATA_IP = 1,
/* INTERNATIONAL is used when number mode is not data network address.
* DATA_IP is used when the number mode is data network address
*/
RIL_CDMA_SMS_NUMBER_TYPE_NATIONAL_OR_INTERNET_MAIL = 2,
/* NATIONAL is used when the number mode is not data network address.
* INTERNET_MAIL is used when the number mode is data network address.
* For INTERNET_MAIL, in the address data "digits", each byte contains
* an ASCII character. Examples are "x@y.com,a@b.com - ref TIA/EIA-637A 3.4.3.3
*/
RIL_CDMA_SMS_NUMBER_TYPE_NETWORK = 3,
RIL_CDMA_SMS_NUMBER_TYPE_SUBSCRIBER = 4,
RIL_CDMA_SMS_NUMBER_TYPE_ALPHANUMERIC = 5,
/* GSM SMS: address value is GSM 7-bit chars */
RIL_CDMA_SMS_NUMBER_TYPE_ABBREVIATED = 6,
RIL_CDMA_SMS_NUMBER_TYPE_RESERVED_7 = 7,
RIL_CDMA_SMS_NUMBER_TYPE_MAX32 = 0x10000000 /* Force constant ENUM size in structures */
} RIL_CDMA_SMS_NumberType;
typedef enum {
RIL_CDMA_SMS_NUMBER_PLAN_UNKNOWN = 0,
RIL_CDMA_SMS_NUMBER_PLAN_TELEPHONY = 1, /* CCITT E.164 and E.163, including ISDN plan */
RIL_CDMA_SMS_NUMBER_PLAN_RESERVED_2 = 2,
RIL_CDMA_SMS_NUMBER_PLAN_DATA = 3, /* CCITT X.121 */
RIL_CDMA_SMS_NUMBER_PLAN_TELEX = 4, /* CCITT F.69 */
RIL_CDMA_SMS_NUMBER_PLAN_RESERVED_5 = 5,
RIL_CDMA_SMS_NUMBER_PLAN_RESERVED_6 = 6,
RIL_CDMA_SMS_NUMBER_PLAN_RESERVED_7 = 7,
RIL_CDMA_SMS_NUMBER_PLAN_RESERVED_8 = 8,
RIL_CDMA_SMS_NUMBER_PLAN_PRIVATE = 9,
RIL_CDMA_SMS_NUMBER_PLAN_RESERVED_10 = 10,
RIL_CDMA_SMS_NUMBER_PLAN_RESERVED_11 = 11,
RIL_CDMA_SMS_NUMBER_PLAN_RESERVED_12 = 12,
RIL_CDMA_SMS_NUMBER_PLAN_RESERVED_13 = 13,
RIL_CDMA_SMS_NUMBER_PLAN_RESERVED_14 = 14,
RIL_CDMA_SMS_NUMBER_PLAN_RESERVED_15 = 15,
RIL_CDMA_SMS_NUMBER_PLAN_MAX32 = 0x10000000 /* Force constant ENUM size in structures */
} RIL_CDMA_SMS_NumberPlan;
typedef struct {
RIL_CDMA_SMS_DigitMode digit_mode;
/* Indicates 4-bit or 8-bit */
RIL_CDMA_SMS_NumberMode number_mode;
/* Used only when digitMode is 8-bit */
RIL_CDMA_SMS_NumberType number_type;
/* Used only when digitMode is 8-bit.
* To specify an international address, use the following:
* digitMode = RIL_CDMA_SMS_DIGIT_MODE_8_BIT
* numberMode = RIL_CDMA_SMS_NOT_DATA_NETWORK
* numberType = RIL_CDMA_SMS_NUMBER_TYPE_INTERNATIONAL_OR_DATA_IP
* numberPlan = RIL_CDMA_SMS_NUMBER_PLAN_TELEPHONY
* numberOfDigits = number of digits
* digits = ASCII digits, e.g. '1', '2', '3'3, '4', and '5'
*/
RIL_CDMA_SMS_NumberPlan number_plan;
/* Used only when digitMode is 8-bit */
unsigned char number_of_digits;
unsigned char digits[ RIL_CDMA_SMS_ADDRESS_MAX ];
/* Each byte in this array represnts a 40bit or 8-bit digit of address data */
} RIL_CDMA_SMS_Address;
typedef enum {
RIL_CDMA_SMS_SUBADDRESS_TYPE_NSAP = 0, /* CCITT X.213 or ISO 8348 AD2 */
RIL_CDMA_SMS_SUBADDRESS_TYPE_USER_SPECIFIED = 1, /* e.g. X.25 */
RIL_CDMA_SMS_SUBADDRESS_TYPE_MAX32 = 0x10000000 /* Force constant ENUM size in structures */
} RIL_CDMA_SMS_SubaddressType;
typedef struct {
RIL_CDMA_SMS_SubaddressType subaddressType;
/* 1 means the last byte's lower 4 bits should be ignored */
unsigned char odd;
unsigned char number_of_digits;
/* Each byte respresents a 8-bit digit of subaddress data */
unsigned char digits[ RIL_CDMA_SMS_SUBADDRESS_MAX ];
} RIL_CDMA_SMS_Subaddress;
typedef struct {
int uTeleserviceID;
unsigned char bIsServicePresent;
int uServicecategory;
RIL_CDMA_SMS_Address sAddress;
RIL_CDMA_SMS_Subaddress sSubAddress;
int uBearerDataLen;
unsigned char aBearerData[ RIL_CDMA_SMS_BEARER_DATA_MAX ];
} RIL_CDMA_SMS_Message;
/* Used by RIL_REQUEST_CDMA_SMS_ACKNOWLEDGE */
typedef enum {
RIL_CDMA_SMS_NO_ERROR = 0,
RIL_CDMA_SMS_ERROR = 1,
RIL_CDMA_SMS_ERROR_MAX32 = 0x10000000 /* Force constant ENUM size in structures */
} RIL_CDMA_SMS_ErrorClass;
typedef struct {
RIL_CDMA_SMS_ErrorClass uErrorClass;
int uSMSCauseCode; /* As defined in N.S00005, 6.5.2.125.
Currently, only 35 (resource shortage) and
39 (other terminal problem) are reported. */
} RIL_CDMA_SMS_Ack;
/* Used by RIL_REQUEST_CDMA_SMS_GET_BROADCAST_CONFIG and
RIL_REQUEST_CDMA_SMS_SET_BROADCAST_CONFIG */
typedef struct {
int service_category;
int language;
unsigned char selected;
} RIL_CDMA_BroadcastSmsConfigInfo;
/* Used by RIL_REQUEST_CDMA_WRITE_SMS_TO_RUIM */
typedef struct {
int status; /* Status of message. See TS 27.005 3.1, "<stat>": */
/* 0 = "REC UNREAD" */
/* 1 = "REC READ" */
/* 2 = "STO UNSENT" */
/* 3 = "STO SENT" */
RIL_CDMA_SMS_Message message;
} RIL_CDMA_SMS_WriteArgs;
/* Used by RIL_REQUEST_ENCODE_CDMA_SMS and RIL_REQUEST_DECODE_CDMA_SMS*/
#define RIL_CDMA_SMS_UDH_MAX_SND_SIZE 128
#define RIL_CDMA_SMS_UDH_EO_DATA_SEGMENT_MAX 131 /* 140 - 3 - 6 */
#define RIL_CDMA_SMS_MAX_UD_HEADERS 7
#define RIL_CDMA_SMS_USER_DATA_MAX 229
#define RIL_CDMA_SMS_ADDRESS_MAX 36
#define RIL_CDMA_SMS_UDH_LARGE_PIC_SIZE 128
#define RIL_CDMA_SMS_UDH_SMALL_PIC_SIZE 32
#define RIL_CDMA_SMS_UDH_VAR_PIC_SIZE 134
#define RIL_CDMA_SMS_UDH_ANIM_NUM_BITMAPS 4
#define RIL_CDMA_SMS_UDH_LARGE_BITMAP_SIZE 32
#define RIL_CDMA_SMS_UDH_SMALL_BITMAP_SIZE 8
#define RIL_CDMA_SMS_UDH_OTHER_SIZE 226
#define RIL_CDMA_SMS_IP_ADDRESS_SIZE 4
/* ------------------- */
/* ---- User Data ---- */
/* ------------------- */
typedef enum {
RIL_CDMA_SMS_UDH_CONCAT_8 = 0x00,
RIL_CDMA_SMS_UDH_SPECIAL_SM,
/* 02 - 03 Reserved */
RIL_CDMA_SMS_UDH_PORT_8 = 0x04,
RIL_CDMA_SMS_UDH_PORT_16,
RIL_CDMA_SMS_UDH_SMSC_CONTROL,
RIL_CDMA_SMS_UDH_SOURCE,
RIL_CDMA_SMS_UDH_CONCAT_16,
RIL_CDMA_SMS_UDH_WCMP,
RIL_CDMA_SMS_UDH_TEXT_FORMATING,
RIL_CDMA_SMS_UDH_PRE_DEF_SOUND,
RIL_CDMA_SMS_UDH_USER_DEF_SOUND,
RIL_CDMA_SMS_UDH_PRE_DEF_ANIM,
RIL_CDMA_SMS_UDH_LARGE_ANIM,
RIL_CDMA_SMS_UDH_SMALL_ANIM,
RIL_CDMA_SMS_UDH_LARGE_PICTURE,
RIL_CDMA_SMS_UDH_SMALL_PICTURE,
RIL_CDMA_SMS_UDH_VAR_PICTURE,
RIL_CDMA_SMS_UDH_USER_PROMPT = 0x13,
RIL_CDMA_SMS_UDH_EXTENDED_OBJECT = 0x14,
/* 15 - 1F Reserved for future EMS */
RIL_CDMA_SMS_UDH_RFC822 = 0x20,
/* 21 - 6F Reserved for future use */
/* 70 - 7f Reserved for (U)SIM Toolkit Security Headers */
/* 80 - 9F SME to SME specific use */
/* A0 - BF Reserved for future use */
/* C0 - DF SC specific use */
/* E0 - FF Reserved for future use */
RIL_CDMA_SMS_UDH_OTHER = 0xFFFF, /* For unsupported or proprietary headers */
RIL_CDMA_SMS_UDH_ID_MAX32 = 0x10000000 /* Force constant ENUM size in structures */
} RIL_CDMA_SMS_UdhId;
typedef struct {
/*indicates the reference number for a particular concatenated short message. */
/*it is constant for every short message which makes up a particular concatenated short message*/
unsigned char msg_ref;
/*indicates the total number of short messages within the concatenated short message.
The value shall start at 1 and remain constant for every
short message which makes up the concatenated short message.
if it is 0 then the receiving entity shall ignore the whole Information Element*/
unsigned char total_sm;
/*
* it indicates the sequence number of a particular short message within the concatenated short
* message. The value shall start at 1 and increment by one for every short message sent
* within the concatenated short message. If the value is zero or the value is
* greater than the value in octet 2 then the receiving
* entity shall ignore the whole Information Element.
*/
unsigned char seq_num;
} RIL_CDMA_SMS_UdhConcat8;
/* GW message waiting actions
*/
typedef enum {
RIL_CDMA_SMS_GW_MSG_WAITING_NONE,
RIL_CDMA_SMS_GW_MSG_WAITING_DISCARD,
RIL_CDMA_SMS_GW_MSG_WAITING_STORE,
RIL_CDMA_SMS_GW_MSG_WAITING_NONE_1111,
RIL_CDMA_SMS_GW_MSG_WAITING_MAX32 = 0x10000000 /* Force constant ENUM size in structures */
} RIL_CDMA_SMS_GWMsgWaiting;
/* GW message waiting types
*/
typedef enum {
RIL_CDMA_SMS_GW_MSG_WAITING_VOICEMAIL,
RIL_CDMA_SMS_GW_MSG_WAITING_FAX,
RIL_CDMA_SMS_GW_MSG_WAITING_EMAIL,
RIL_CDMA_SMS_GW_MSG_WAITING_OTHER,
RIL_CDMA_SMS_GW_MSG_WAITING_KIND_MAX32 = 0x10000000 /* Force constant ENUM size in structures */
} RIL_CDMA_SMS_GWMsgWaitingKind;
typedef struct {
RIL_CDMA_SMS_GWMsgWaiting msg_waiting;
RIL_CDMA_SMS_GWMsgWaitingKind msg_waiting_kind;
/*it indicates the number of messages of the type specified in Octet 1 waiting.*/
unsigned char message_count;
} RIL_CDMA_SMS_UdhSpecialSM;
typedef struct {
unsigned char dest_port;
unsigned char orig_port;
} RIL_CDMA_SMS_UdhWap8;
typedef struct {
unsigned short dest_port;
unsigned short orig_port;
} RIL_CDMA_SMS_UdhWap16;
typedef struct {
unsigned short msg_ref;
unsigned char total_sm;
unsigned char seq_num;
} RIL_CDMA_SMS_UdhConcat16;
typedef enum {
RIL_CDMA_SMS_UDH_LEFT_ALIGNMENT = 0,
RIL_CDMA_SMS_UDH_CENTER_ALIGNMENT,
RIL_CDMA_SMS_UDH_RIGHT_ALIGNMENT,
RIL_CDMA_SMS_UDH_DEFAULT_ALIGNMENT,
RIL_CDMA_SMS_UDH_MAX_ALIGNMENT,
RIL_CDMA_SMS_UDH_ALIGNMENT_MAX32 = 0x10000000 /* Force constant ENUM size in structures */
} RIL_CDMA_SMS_UdhAlignment;
typedef enum {
RIL_CDMA_SMS_UDH_FONT_NORMAL = 0,
RIL_CDMA_SMS_UDH_FONT_LARGE,
RIL_CDMA_SMS_UDH_FONT_SMALL,
RIL_CDMA_SMS_UDH_FONT_RESERVED,
RIL_CDMA_SMS_UDH_FONT_MAX,
RIL_CDMA_SMS_UDH_FONT_MAX32 = 0x10000000 /* Force constant ENUM size in structures */
} RIL_CDMA_SMS_UdhFontSize;
typedef enum {
RIL_CDMA_SMS_UDH_TEXT_COLOR_BLACK = 0x0,
RIL_CDMA_SMS_UDH_TEXT_COLOR_DARK_GREY = 0x1,
RIL_CDMA_SMS_UDH_TEXT_COLOR_DARK_RED = 0x2,
RIL_CDMA_SMS_UDH_TEXT_COLOR_DARK_YELLOW = 0x3,
RIL_CDMA_SMS_UDH_TEXT_COLOR_DARK_GREEN = 0x4,
RIL_CDMA_SMS_UDH_TEXT_COLOR_DARK_CYAN = 0x5,
RIL_CDMA_SMS_UDH_TEXT_COLOR_DARK_BLUE = 0x6,
RIL_CDMA_SMS_UDH_TEXT_COLOR_DARK_MAGENTA = 0x7,
RIL_CDMA_SMS_UDH_TEXT_COLOR_GREY = 0x8,
RIL_CDMA_SMS_UDH_TEXT_COLOR_WHITE = 0x9,
RIL_CDMA_SMS_UDH_TEXT_COLOR_BRIGHT_RED = 0xA,
RIL_CDMA_SMS_UDH_TEXT_COLOR_BRIGHT_YELLOW = 0xB,
RIL_CDMA_SMS_UDH_TEXT_COLOR_BRIGHT_GREEN = 0xC,
RIL_CDMA_SMS_UDH_TEXT_COLOR_BRIGHT_CYAN = 0xD,
RIL_CDMA_SMS_UDH_TEXT_COLOR_BRIGHT_BLUE = 0xE,
RIL_CDMA_SMS_UDH_TEXT_COLOR_BRIGHT_MAGENTA = 0xF,
RIL_CDMA_SMS_UDH_TEXT_COLOR_MAX32 = 0x10000000 /* Force constant ENUM size in structures */
} RIL_CDMA_SMS_UdhTextColor;
typedef struct {
unsigned char start_position;
unsigned char text_formatting_length;
RIL_CDMA_SMS_UdhAlignment alignment_type ; /*bit 0 and bit 1*/
RIL_CDMA_SMS_UdhFontSize font_size ; /*bit 3 and bit 2*/
unsigned char style_bold; /*bit 4 */
unsigned char style_italic; /*bit 5 */
unsigned char style_underlined; /*bit 6 */
unsigned char style_strikethrough; /*bit 7 */
/* if FALSE, ignore the following color information */
unsigned char is_color_present;
RIL_CDMA_SMS_UdhTextColor text_color_foreground;
RIL_CDMA_SMS_UdhTextColor text_color_background;
} RIL_CDMA_SMS_UdhTextFormating;
/* Predefined sound
*/
typedef struct {
unsigned char position;
unsigned char snd_number;
} RIL_CDMA_SMS_UdhPreDefSound;
/* User Defined sound
*/
typedef struct {
unsigned char data_length;
unsigned char position;
unsigned char user_def_sound[RIL_CDMA_SMS_UDH_MAX_SND_SIZE];
} RIL_CDMA_SMS_UdhUserDefSound;
/* Large picture
*/
typedef struct {
unsigned char position;
unsigned char data[RIL_CDMA_SMS_UDH_LARGE_PIC_SIZE];
} RIL_CDMA_SMS_UdhLargePictureData;
/* Small picture
*/
typedef struct {
unsigned char position;
unsigned char data[RIL_CDMA_SMS_UDH_SMALL_PIC_SIZE];
} RIL_CDMA_SMS_UdhSmallPictureData;
/* Variable length picture
*/
typedef struct {
unsigned char position;
unsigned char width; /* Number of pixels - Should be a mutliple of 8 */
unsigned char height;
unsigned char data[RIL_CDMA_SMS_UDH_VAR_PIC_SIZE];
} RIL_CDMA_SMS_UdhVarPicture;
/* Predefined animation
*/
typedef struct {
unsigned char position;
unsigned char animation_number;
} RIL_CDMA_SMS_UdhPreDefAnim;
/* Large animation
*/
typedef struct {
unsigned char position;
unsigned char data[RIL_CDMA_SMS_UDH_ANIM_NUM_BITMAPS][RIL_CDMA_SMS_UDH_LARGE_BITMAP_SIZE];
} RIL_CDMA_SMS_UdhLargeAnim;
/* Small animation
*/
typedef struct {
unsigned char position;
unsigned char data[RIL_CDMA_SMS_UDH_ANIM_NUM_BITMAPS][RIL_CDMA_SMS_UDH_SMALL_BITMAP_SIZE];
} RIL_CDMA_SMS_UdhSmallAnim;
/* User Prompt Indicator UDH
*/
typedef struct {
unsigned char number_of_objects;
/* Number of objects of the same kind that follow this header which will
** be stitched together by the applications. For example, 5 small pictures
** are to be stitched together horizontally, or 6 iMelody tones are to be
** connected together with intermediate iMelody header and footer ignored.
** Allowed objects to be stitched:
** - Images (small, large, variable)
** - User defined sounds
*/
} RIL_CDMA_SMS_UdhUserPrompt;
typedef struct {
unsigned char length;
unsigned char data[RIL_CDMA_SMS_UDH_EO_DATA_SEGMENT_MAX];
/* RIL_CDMA_SMS_UDH_EO_VCARD: See http://www.imc.org/pdi/vcard-21.doc for payload */
/* RIL_CDMA_SMS_UDH_EO_VCALENDAR: See http://www.imc.org/pdi/vcal-10.doc */
/* Or: Unsupported/proprietary extended objects */
} RIL_CDMA_SMS_UdhEoContent;
/* Extended Object UDH
*/
/* Extended Object IDs/types
*/
typedef enum {
RIL_CDMA_SMS_UDH_EO_VCARD = 0x09,
RIL_CDMA_SMS_UDH_EO_VCALENDAR = 0x0A,
RIL_CDMA_SMS_UDH_EO_MAX32 = 0x10000000 /* Force constant ENUM size in structures */
} RIL_CDMA_SMS_UdhEoId;
typedef struct {
/* Extended objects are to be used together with 16-bit concatenation
** UDH. The max number of segments supported for E.O. is 8 at least.
*/
RIL_CDMA_SMS_UdhEoContent content;
unsigned char first_segment;
/* The following fields are only present in the first segment of a
** concatenated SMS message.
*/
unsigned char reference;
/* Identify those extended object segments which should be linked together
*/
unsigned short length;
/* Length of the whole extended object data
*/
unsigned char control;
RIL_CDMA_SMS_UdhEoId type;
unsigned short position;
/* Absolute position of the E.O. in the whole text after concatenation,
** starting from 1.
*/
} RIL_CDMA_SMS_UdhEo;
typedef struct {
RIL_CDMA_SMS_UdhId header_id;
unsigned char header_length;
unsigned char data[RIL_CDMA_SMS_UDH_OTHER_SIZE];
} RIL_CDMA_SMS_UdhOther;
typedef struct {
unsigned char header_length;
} RIL_CDMA_SMS_UdhRfc822;
typedef struct {
RIL_CDMA_SMS_UdhId header_id;
union {
RIL_CDMA_SMS_UdhConcat8 concat_8; // 00
RIL_CDMA_SMS_UdhSpecialSM special_sm; // 01
RIL_CDMA_SMS_UdhWap8 wap_8; // 04
RIL_CDMA_SMS_UdhWap16 wap_16; // 05
RIL_CDMA_SMS_UdhConcat16 concat_16; // 08
RIL_CDMA_SMS_UdhTextFormating text_formating; // 0a
RIL_CDMA_SMS_UdhPreDefSound pre_def_sound; // 0b
RIL_CDMA_SMS_UdhUserDefSound user_def_sound; // 0c
RIL_CDMA_SMS_UdhPreDefAnim pre_def_anim; // 0d
RIL_CDMA_SMS_UdhLargeAnim large_anim; // 0e
RIL_CDMA_SMS_UdhSmallAnim small_anim; // 0f
RIL_CDMA_SMS_UdhLargePictureData large_picture; // 10
RIL_CDMA_SMS_UdhSmallPictureData small_picture; // 11
RIL_CDMA_SMS_UdhVarPicture var_picture; // 12
RIL_CDMA_SMS_UdhUserPrompt user_prompt; // 13
RIL_CDMA_SMS_UdhEo eo; // 14
RIL_CDMA_SMS_UdhRfc822 rfc822; // 20
RIL_CDMA_SMS_UdhOther other;
}u;
} RIL_CDMA_SMS_Udh;
/* ----------------------------- */
/* -- User data encoding type -- */
/* ----------------------------- */
typedef enum {
RIL_CDMA_SMS_ENCODING_OCTET = 0, /* 8-bit */
RIL_CDMA_SMS_ENCODING_IS91EP, /* varies */
RIL_CDMA_SMS_ENCODING_ASCII, /* 7-bit */
RIL_CDMA_SMS_ENCODING_IA5, /* 7-bit */
RIL_CDMA_SMS_ENCODING_UNICODE, /* 16-bit */
RIL_CDMA_SMS_ENCODING_SHIFT_JIS, /* 8 or 16-bit */
RIL_CDMA_SMS_ENCODING_KOREAN, /* 8 or 16-bit */
RIL_CDMA_SMS_ENCODING_LATIN_HEBREW, /* 8-bit */
RIL_CDMA_SMS_ENCODING_LATIN, /* 8-bit */
RIL_CDMA_SMS_ENCODING_GSM_7_BIT_DEFAULT, /* 7-bit */
RIL_CDMA_SMS_ENCODING_MAX32 = 0x10000000
} RIL_CDMA_SMS_UserDataEncoding;
/* ------------------------ */
/* -- IS-91 EP data type -- */
/* ------------------------ */
typedef enum {
RIL_CDMA_SMS_IS91EP_VOICE_MAIL = 0x82,
RIL_CDMA_SMS_IS91EP_SHORT_MESSAGE_FULL = 0x83,
RIL_CDMA_SMS_IS91EP_CLI_ORDER = 0x84,
RIL_CDMA_SMS_IS91EP_SHORT_MESSAGE = 0x85,
RIL_CDMA_SMS_IS91EP_MAX32 = 0x10000000
} RIL_CDMA_SMS_IS91EPType;
typedef struct {
/* NOTE: If message_id.udh_present == TRUE:
** 'num_headers' is the number of User Data Headers (UDHs),
** and 'headers' include all those headers.
*/
unsigned char num_headers;
RIL_CDMA_SMS_Udh headers[RIL_CDMA_SMS_MAX_UD_HEADERS];
RIL_CDMA_SMS_UserDataEncoding encoding;
RIL_CDMA_SMS_IS91EPType is91ep_type;
/*----------------------------------------------------------------------
'data_len' indicates the valid number of bytes in the 'data' array.
'padding_bits' (0-7) indicates how many bits in the last byte of 'data'
are invalid bits. This parameter is only used for Mobile-Originated
messages. There is no way for the API to tell how many padding bits
exist in the received message. Instead, the application can find out how
many padding bits exist in the user data when decoding the user data.
'data' has the raw bits of the user data field of the SMS message.
The client software should decode the raw user data according to its
supported encoding types and languages.
EXCEPTION 1: CMT-91 user data raw bits are first translated into BD fields
(e.g. num_messages, callback, etc.) The translated user data field in
VMN and Short Message is in the form of ASCII characters, each occupying
a byte in the resulted 'data'.
EXCEPTION 2: GSM 7-bit Default characters are decoded so that each byte
has one 7-bit GSM character.
'number_of_digits' is the number of digits/characters (7, 8, 16, or
whatever bits) in the raw user data, which can be used by the client
when decoding the user data according to the encoding type and language.
-------------------------------------------------------------------------*/
unsigned char data_len;
unsigned char padding_bits;
unsigned char data[ RIL_CDMA_SMS_USER_DATA_MAX ];
unsigned char number_of_digits;
} RIL_CDMA_SMS_CdmaUserData;
/* -------------------- */
/* ---- Message Id ---- */
/* -------------------- */
typedef enum {
RIL_CDMA_SMS_BD_TYPE_RESERVED_0 = 0,
RIL_CDMA_SMS_BD_TYPE_DELIVER, /* MT only */
RIL_CDMA_SMS_BD_TYPE_SUBMIT, /* MO only */
RIL_CDMA_SMS_BD_TYPE_CANCELLATION, /* MO only */
RIL_CDMA_SMS_BD_TYPE_DELIVERY_ACK, /* MT only */
RIL_CDMA_SMS_BD_TYPE_USER_ACK, /* MT & MO */
RIL_CDMA_SMS_BD_TYPE_READ_ACK, /* MT & MO */
RIL_CDMA_SMS_BD_TYPE_MAX32 = 0x10000000
} RIL_CDMA_SMS_BdMessageType;
typedef unsigned int RIL_CDMA_SMS_MessageNumber;
typedef struct {
RIL_CDMA_SMS_BdMessageType type;
RIL_CDMA_SMS_MessageNumber id_number;
unsigned char udh_present;
/* NOTE: if FEATURE_SMS_UDH is not defined,
** udh_present should be ignored.
*/
} RIL_CDMA_SMS_MessageId;
typedef unsigned char RIL_CDMA_SMS_UserResponse;
/* ------------------- */
/* ---- Timestamp ---- */
/* ------------------- */
typedef struct {
/* If 'year' is between 96 and 99, the actual year is 1900 + 'year';
if 'year' is between 00 and 95, the actual year is 2000 + 'year'.
NOTE: Each field has two BCD digits and byte arrangement is <MSB, ... ,LSB>
*/
unsigned char year; /* 0x00-0x99 */
unsigned char month; /* 0x01-0x12 */
unsigned char day; /* 0x01-0x31 */
unsigned char hour; /* 0x00-0x23 */
unsigned char minute; /* 0x00-0x59 */
unsigned char second; /* 0x00-0x59 */
signed char timezone; /* +/-, [-48,+48] number of 15 minutes - GW only */
} RIL_CDMA_SMS_Timestamp;
/* ------------------ */
/* ---- Priority ---- */
/* ------------------ */
typedef enum {
RIL_CDMA_SMS_PRIORITY_NORMAL = 0,
RIL_CDMA_SMS_PRIORITY_INTERACTIVE,
RIL_CDMA_SMS_PRIORITY_URGENT,
RIL_CDMA_SMS_PRIORITY_EMERGENCY,
RIL_CDMA_SMS_PRIORITY_MAX32 = 0x10000000
} RIL_CDMA_SMS_Priority;
/* ----------------- */
/* ---- Privacy ---- */
/* ----------------- */
typedef enum {
RIL_CDMA_SMS_PRIVACY_NORMAL = 0,
RIL_CDMA_SMS_PRIVACY_RESTRICTED,
RIL_CDMA_SMS_PRIVACY_CONFIDENTIAL,
RIL_CDMA_SMS_PRIVACY_SECRET,
RIL_CDMA_SMS_PRIVACY_MAX32 = 0x10000000
} RIL_CDMA_SMS_Privacy;
/* ---------------------- */
/* ---- Reply option ---- */
/* ---------------------- */
typedef struct {
/* whether user ack is requested
*/
unsigned char user_ack_requested;
/* whether delivery ack is requested.
Should be FALSE for incoming messages.
*/
unsigned char delivery_ack_requested;
/* Message originator requests the receiving phone to send back a READ_ACK
** message automatically when the user reads the received message.
*/
unsigned char read_ack_requested;
} RIL_CDMA_SMS_ReplyOption;
typedef enum {
RIL_CDMA_SMS_ALERT_MODE_DEFAULT = 0,
RIL_CDMA_SMS_ALERT_MODE_LOW_PRIORITY = 1,
RIL_CDMA_SMS_ALERT_MODE_MEDIUM_PRIORITY = 2,
RIL_CDMA_SMS_ALERT_MODE_HIGH_PRIORITY = 3,
/* For pre-IS637A implementations, alert_mode only has values of True/False:
*/
RIL_CDMA_SMS_ALERT_MODE_OFF = 0,
RIL_CDMA_SMS_ALERT_MODE_ON = 1
} RIL_CDMA_SMS_AlertMode;
/* ------------------ */
/* ---- Language ---- */
/* ------------------ */
typedef enum {
RIL_CDMA_SMS_LANGUAGE_UNSPECIFIED = 0,
RIL_CDMA_SMS_LANGUAGE_ENGLISH,
RIL_CDMA_SMS_LANGUAGE_FRENCH,
RIL_CDMA_SMS_LANGUAGE_SPANISH,
RIL_CDMA_SMS_LANGUAGE_JAPANESE,
RIL_CDMA_SMS_LANGUAGE_KOREAN,
RIL_CDMA_SMS_LANGUAGE_CHINESE,
RIL_CDMA_SMS_LANGUAGE_HEBREW,
RIL_CDMA_SMS_LANGUAGE_MAX32 = 0x10000000
} RIL_CDMA_SMS_Language;
/* ---------------------------------- */
/* ---------- Display Mode ---------- */
/* ---------------------------------- */
typedef enum {
RIL_CDMA_SMS_DISPLAY_MODE_IMMEDIATE = 0,
RIL_CDMA_SMS_DISPLAY_MODE_DEFAULT = 1,
RIL_CDMA_SMS_DISPLAY_MODE_USER_INVOKE = 2,
RIL_CDMA_SMS_DISPLAY_MODE_RESERVED = 3
} RIL_CDMA_SMS_DisplayMode;
/* IS-637B parameters/fields
*/
/* ---------------------------------- */
/* ---------- Delivery Status ------- */
/* ---------------------------------- */
typedef enum {
RIL_CDMA_SMS_DELIVERY_STATUS_ACCEPTED = 0, /* ERROR_CLASS_NONE */
RIL_CDMA_SMS_DELIVERY_STATUS_DEPOSITED_TO_INTERNET = 1, /* ERROR_CLASS_NONE */
RIL_CDMA_SMS_DELIVERY_STATUS_DELIVERED = 2, /* ERROR_CLASS_NONE */
RIL_CDMA_SMS_DELIVERY_STATUS_CANCELLED = 3, /* ERROR_CLASS_NONE */
RIL_CDMA_SMS_DELIVERY_STATUS_NETWORK_CONGESTION = 4, /* ERROR_CLASS_TEMP & PERM */
RIL_CDMA_SMS_DELIVERY_STATUS_NETWORK_ERROR = 5, /* ERROR_CLASS_TEMP & PERM */
RIL_CDMA_SMS_DELIVERY_STATUS_CANCEL_FAILED = 6, /* ERROR_CLASS_PERM */
RIL_CDMA_SMS_DELIVERY_STATUS_BLOCKED_DESTINATION = 7, /* ERROR_CLASS_PERM */
RIL_CDMA_SMS_DELIVERY_STATUS_TEXT_TOO_LONG = 8, /* ERROR_CLASS_PERM */
RIL_CDMA_SMS_DELIVERY_STATUS_DUPLICATE_MESSAGE = 9, /* ERROR_CLASS_PERM */
RIL_CDMA_SMS_DELIVERY_STATUS_INVALID_DESTINATION = 10, /* ERROR_CLASS_PERM */
RIL_CDMA_SMS_DELIVERY_STATUS_MESSAGE_EXPIRED = 13, /* ERROR_CLASS_PERM */
RIL_CDMA_SMS_DELIVERY_STATUS_UNKNOWN_ERROR = 0x1F /* ERROR_CLASS_PERM */
/* All the other values are reserved */
} RIL_CDMA_SMS_DeliveryStatusE;
typedef struct {
RIL_CDMA_SMS_ErrorClass error_class;
RIL_CDMA_SMS_DeliveryStatusE status;
} RIL_CDMA_SMS_DeliveryStatus;
typedef struct {
unsigned char address[RIL_CDMA_SMS_IP_ADDRESS_SIZE];
unsigned char is_valid;
} RIL_CDMA_SMS_IpAddress;
/* This special parameter captures any unrecognized/proprietary parameters
*/
typedef struct {
unsigned char input_other_len;
unsigned char desired_other_len; /* used during decoding */
unsigned char * other_data;
} RIL_CDMA_SMS_OtherParm;
typedef struct {
/* the mask indicates which fields are present in this message */
unsigned int mask;
RIL_CDMA_SMS_MessageId message_id;
RIL_CDMA_SMS_CdmaUserData user_data;
RIL_CDMA_SMS_UserResponse user_response;
RIL_CDMA_SMS_Timestamp mc_time;
RIL_CDMA_SMS_Timestamp validity_absolute;
RIL_CDMA_SMS_Timestamp validity_relative;
RIL_CDMA_SMS_Timestamp deferred_absolute;
RIL_CDMA_SMS_Timestamp deferred_relative;
RIL_CDMA_SMS_Priority priority;
RIL_CDMA_SMS_Privacy privacy;
RIL_CDMA_SMS_ReplyOption reply_option;
unsigned char num_messages; /* the actual value; not BCDs */
RIL_CDMA_SMS_AlertMode alert_mode;
/* For pre-IS-637A implementations, alert_mode is either Off or On. */
RIL_CDMA_SMS_Language language;
RIL_CDMA_SMS_Address callback;
RIL_CDMA_SMS_DisplayMode display_mode;
RIL_CDMA_SMS_DeliveryStatus delivery_status;
unsigned int deposit_index;
RIL_CDMA_SMS_IpAddress ip_address;
unsigned char rsn_no_notify;
/* See function comments of wms_ts_decode() and
** wms_ts_decode_cdma_bd_with_other() for details regarding 'other' parameters
*/
RIL_CDMA_SMS_OtherParm other;
} RIL_CDMA_SMS_ClientBd;
typedef struct {
unsigned char length; /* length, in bytes, of the encoded SMS message */
unsigned char * data; /* the encoded SMS message (max 255 bytes) */
} RIL_CDMA_Encoded_SMS;
#ifdef __cplusplus
}
#endif
#endif /*ANDROID_RIL_CDMA_SMS_H*/

View file

@ -0,0 +1,46 @@
/* //device/libs/telephony/ril_commands.h
**
** Copyright 2006, The Android Open Source Project
**
** Licensed under the Apache License, Version 2.0 (the "License");
** you may not use this file except in compliance with the License.
** You may obtain a copy of the License at
**
** http://www.apache.org/licenses/LICENSE-2.0
**
** Unless required by applicable law or agreed to in writing, software
** distributed under the License is distributed on an "AS IS" BASIS,
** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
** See the License for the specific language governing permissions and
** limitations under the License.
*/
{10000, NULL},
{RIL_REQUEST_DIAL_EMERGENCY_CALL, NULL}, // 10001
{RIL_REQUEST_CALL_DEFLECTION, NULL}, // 10002
{RIL_REQUEST_MODIFY_CALL_INITIATE, NULL}, // 10003
{RIL_REQUEST_MODIFY_CALL_CONFIRM, NULL}, // 10004
{RIL_REQUEST_SET_VOICE_DOMAIN_PREF, NULL}, // 10005
{RIL_REQUEST_SAFE_MODE, NULL}, // 10006
{RIL_REQUEST_SET_TRANSMIT_POWER, NULL}, // 10007
{RIL_REQUEST_GET_CELL_BROADCAST_CONFIG, NULL}, // 10008
{RIL_REQUEST_GET_PHONEBOOK_STORAGE_INFO, NULL}, // 10009
{RIL_REQUEST_GET_PHONEBOOK_ENTRY, NULL}, // 10010
{RIL_REQUEST_ACCESS_PHONEBOOK_ENTRY, NULL}, // 10011
{RIL_REQUEST_USIM_PB_CAPA, NULL}, // 10012
{RIL_REQUEST_LOCK_INFO, NULL}, // 10013
{RIL_REQUEST_STK_SIM_INIT_EVENT, NULL}, // 10014
{RIL_REQUEST_SET_PREFERRED_NETWORK_LIST, NULL}, // 10015
{RIL_REQUEST_GET_PREFERRED_NETWORK_LIST, NULL}, // 10016
{RIL_REQUEST_CHANGE_SIM_PERSO, NULL}, // 10017
{RIL_REQUEST_ENTER_SIM_PERSO, NULL}, // 10018
{RIL_REQUEST_SEND_ENCODED_USSD, NULL}, // 10019
{RIL_REQUEST_CDMA_SEND_SMS_EXPECT_MORE, NULL}, // 10020
{RIL_REQUEST_HANGUP_VT, NULL}, // 10021
{RIL_REQUEST_HOLD, NULL}, // 10022
{RIL_REQUEST_SET_SIM_POWER, NULL}, // 10023
{RIL_REQUEST_UICC_GBA_AUTHENTICATE_BOOTSTRAP, NULL}, // 10025
{RIL_REQUEST_UICC_GBA_AUTHENTICATE_NAF, NULL}, // 10026
{RIL_REQUEST_GET_INCOMING_COMMUNICATION_BARRING, NULL}, // 10027
{RIL_REQUEST_SET_INCOMING_COMMUNICATION_BARRING, NULL}, // 10028
{RIL_REQUEST_QUERY_CNAP, NULL}, // 10029
{RIL_REQUEST_SET_TRANSFER_CALL, NULL}, // 10030

View file

@ -0,0 +1,48 @@
/*
* Copyright (C) 2014 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#ifndef ANDROID_RIL_MSIM_H
#define ANDROID_RIL_MSIM_H 1
#ifdef __cplusplus
extern "C" {
#endif
typedef enum {
RIL_UICC_SUBSCRIPTION_DEACTIVATE = 0,
RIL_UICC_SUBSCRIPTION_ACTIVATE = 1
} RIL_UiccSubActStatus;
typedef enum {
RIL_SUBSCRIPTION_1 = 0,
RIL_SUBSCRIPTION_2 = 1,
RIL_SUBSCRIPTION_3 = 2
} RIL_SubscriptionType;
typedef struct {
int slot; /* 0, 1, ... etc. */
int app_index; /* array subscriptor from applications[RIL_CARD_MAX_APPS] in
RIL_REQUEST_GET_SIM_STATUS */
RIL_SubscriptionType sub_type; /* Indicates subscription 1 or subscription 2 */
RIL_UiccSubActStatus act_status;
} RIL_SelectUiccSub;
#ifdef __cplusplus
}
#endif
#endif /*ANDROID_RIL_MSIM_H*/

View file

@ -0,0 +1,88 @@
/*
* Copyright (C) 2014 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#ifndef ANDROID_RIL_NV_ITEMS_H
#define ANDROID_RIL_NV_ITEMS_H 1
#include <stdlib.h>
#ifdef __cplusplus
extern "C" {
#endif
/* Must match the values in RadioNVItems.java in frameworks/opt/telephony. */
typedef enum {
// CDMA radio and account information (items 1-10)
RIL_NV_CDMA_MEID = 1, // CDMA MEID (hex)
RIL_NV_CDMA_MIN = 2, // CDMA MIN (MSID)
RIL_NV_CDMA_MDN = 3, // CDMA MDN
RIL_NV_CDMA_ACCOLC = 4, // CDMA access overload control
// Carrier device provisioning (items 11-30)
RIL_NV_DEVICE_MSL = 11, // device MSL
RIL_NV_RTN_RECONDITIONED_STATUS = 12, // RTN reconditioned status
RIL_NV_RTN_ACTIVATION_DATE = 13, // RTN activation date
RIL_NV_RTN_LIFE_TIMER = 14, // RTN life timer
RIL_NV_RTN_LIFE_CALLS = 15, // RTN life calls
RIL_NV_RTN_LIFE_DATA_TX = 16, // RTN life data TX
RIL_NV_RTN_LIFE_DATA_RX = 17, // RTN life data RX
RIL_NV_OMADM_HFA_LEVEL = 18, // HFA in progress
// Mobile IP profile information (items 31-50)
RIL_NV_MIP_PROFILE_NAI = 31, // NAI realm
RIL_NV_MIP_PROFILE_HOME_ADDRESS = 32, // MIP home address
RIL_NV_MIP_PROFILE_AAA_AUTH = 33, // AAA auth
RIL_NV_MIP_PROFILE_HA_AUTH = 34, // HA auth
RIL_NV_MIP_PROFILE_PRI_HA_ADDR = 35, // primary HA address
RIL_NV_MIP_PROFILE_SEC_HA_ADDR = 36, // secondary HA address
RIL_NV_MIP_PROFILE_REV_TUN_PREF = 37, // reverse TUN preference
RIL_NV_MIP_PROFILE_HA_SPI = 38, // HA SPI
RIL_NV_MIP_PROFILE_AAA_SPI = 39, // AAA SPI
RIL_NV_MIP_PROFILE_MN_HA_SS = 40, // HA shared secret
RIL_NV_MIP_PROFILE_MN_AAA_SS = 41, // AAA shared secret
// CDMA network and band config (items 51-70)
RIL_NV_CDMA_PRL_VERSION = 51, // CDMA PRL version
RIL_NV_CDMA_BC10 = 52, // CDMA band class 10
RIL_NV_CDMA_BC14 = 53, // CDMA band class 14
RIL_NV_CDMA_SO68 = 54, // CDMA SO68
RIL_NV_CDMA_SO73_COP0 = 55, // CDMA SO73 COP0
RIL_NV_CDMA_SO73_COP1TO7 = 56, // CDMA SO73 COP1-7
RIL_NV_CDMA_1X_ADVANCED_ENABLED = 57, // CDMA 1X Advanced enabled
RIL_NV_CDMA_EHRPD_ENABLED = 58, // CDMA eHRPD enabled
RIL_NV_CDMA_EHRPD_FORCED = 59, // CDMA eHRPD forced
// LTE network and band config (items 71-90)
RIL_NV_LTE_BAND_ENABLE_25 = 71, // LTE band 25 enable
RIL_NV_LTE_BAND_ENABLE_26 = 72, // LTE band 26 enable
RIL_NV_LTE_BAND_ENABLE_41 = 73, // LTE band 41 enable
RIL_NV_LTE_SCAN_PRIORITY_25 = 74, // LTE band 25 scan priority
RIL_NV_LTE_SCAN_PRIORITY_26 = 75, // LTE band 26 scan priority
RIL_NV_LTE_SCAN_PRIORITY_41 = 76, // LTE band 41 scan priority
RIL_NV_LTE_HIDDEN_BAND_PRIORITY_25 = 77, // LTE hidden band 25 priority
RIL_NV_LTE_HIDDEN_BAND_PRIORITY_26 = 78, // LTE hidden band 26 priority
RIL_NV_LTE_HIDDEN_BAND_PRIORITY_41 = 79, // LTE hidden band 41 priority
} RIL_NV_Item;
#ifdef __cplusplus
}
#endif
#endif /* ANDROID_RIL_NV_ITEMS_H */

View file

@ -0,0 +1,85 @@
/* //device/libs/telephony/ril_unsol_commands.h
**
** Copyright 2006, The Android Open Source Project
**
** Licensed under the Apache License, Version 2.0 (the "License");
** you may not use this file except in compliance with the License.
** You may obtain a copy of the License at
**
** http://www.apache.org/licenses/LICENSE-2.0
**
** Unless required by applicable law or agreed to in writing, software
** distributed under the License is distributed on an "AS IS" BASIS,
** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
** See the License for the specific language governing permissions and
** limitations under the License.
*/
{SAMSUNG_UNSOL_RESPONSE_BASE, NULL, WAKE_PARTIAL}, // 11000
{RIL_UNSOL_RELEASE_COMPLETE_MESSAGE, NULL, WAKE_PARTIAL}, // 11001
{RIL_UNSOL_STK_SEND_SMS_RESULT, NULL, WAKE_PARTIAL}, // 11002
{RIL_UNSOL_STK_CALL_CONTROL_RESULT, NULL, WAKE_PARTIAL}, // 11003
{11004, NULL, WAKE_PARTIAL},
{11005, NULL, WAKE_PARTIAL},
{11006, NULL, WAKE_PARTIAL},
{11007, NULL, WAKE_PARTIAL},
{RIL_UNSOL_DEVICE_READY_NOTI, NULL, WAKE_PARTIAL}, // 11008
{RIL_UNSOL_GPS_NOTI, NULL, WAKE_PARTIAL}, // 11009
{RIL_UNSOL_AM, NULL, WAKE_PARTIAL}, // 11010
{RIL_UNSOL_DUN_PIN_CONTROL_SIGNAL, NULL, WAKE_PARTIAL}, // 11011
{RIL_UNSOL_DATA_SUSPEND_RESUME, NULL, WAKE_PARTIAL}, // 11012
{RIL_UNSOL_SAP, NULL, WAKE_PARTIAL}, // 11013
{11014, NULL, WAKE_PARTIAL},
{11015, NULL, WAKE_PARTIAL},
{11016, NULL, WAKE_PARTIAL},
{RIL_UNSOL_WB_AMR_STATE, NULL, WAKE_PARTIAL},
{11018, NULL, WAKE_PARTIAL},
{11019, NULL, WAKE_PARTIAL},
{RIL_UNSOL_UART, NULL, WAKE_PARTIAL},
{RIL_UNSOL_SIM_PB_READY, NULL, WAKE_PARTIAL},
{11022, NULL, WAKE_PARTIAL},
{11023, NULL, WAKE_PARTIAL},
{RIL_UNSOL_VE, NULL, WAKE_PARTIAL}, // 11024
{11025, NULL, WAKE_PARTIAL},
{RIL_UNSOL_FACTORY_AM, NULL, WAKE_PARTIAL}, // 11026
{RIL_UNSOL_IMS_REGISTRATION_STATE_CHANGED, NULL, WAKE_PARTIAL}, // 11027
{RIL_UNSOL_MODIFY_CALL, NULL, WAKE_PARTIAL}, // 11028
{11029, NULL, WAKE_PARTIAL},
{RIL_UNSOL_CS_FALLBACK, NULL, WAKE_PARTIAL}, // 11030
{11031, NULL, WAKE_PARTIAL},
{RIL_UNSOL_VOICE_SYSTEM_ID, NULL, WAKE_PARTIAL}, // 11032
{11033, NULL, WAKE_PARTIAL},
{RIL_UNSOL_IMS_RETRYOVER, NULL, WAKE_PARTIAL}, // 11034
{RIL_UNSOL_PB_INIT_COMPLETE, NULL, WAKE_PARTIAL}, // 11035
{11036, NULL, WAKE_PARTIAL},
{RIL_UNSOL_HYSTERESIS_DCN, NULL, WAKE_PARTIAL}, // 11037
{RIL_UNSOL_CP_POSITION, NULL, WAKE_PARTIAL}, // 11038
{11039, NULL, WAKE_PARTIAL},
{11040, NULL, WAKE_PARTIAL},
{11041, NULL, WAKE_PARTIAL},
{11042, NULL, WAKE_PARTIAL},
{RIL_UNSOL_HOME_NETWORK_NOTI, NULL, WAKE_PARTIAL}, // 11043
{11044, NULL, WAKE_PARTIAL},
{11045, NULL, WAKE_PARTIAL},
{11046, NULL, WAKE_PARTIAL},
{11047, NULL, WAKE_PARTIAL},
{11048, NULL, WAKE_PARTIAL},
{11049, NULL, WAKE_PARTIAL},
{11050, NULL, WAKE_PARTIAL},
{11051, NULL, WAKE_PARTIAL},
{11052, NULL, WAKE_PARTIAL},
{11053, NULL, WAKE_PARTIAL},
{RIL_UNSOL_STK_CALL_STATUS, NULL, WAKE_PARTIAL}, // 11054
{11055, NULL, WAKE_PARTIAL},
{RIL_UNSOL_MODEM_CAP, NULL, WAKE_PARTIAL}, // 11056
{RIL_UNSOL_SIM_SWAP_STATE_CHANGED, NULL, WAKE_PARTIAL}, // 11057
{11058, NULL, WAKE_PARTIAL},
{11059, NULL, WAKE_PARTIAL},
{RIL_UNSOL_DUN, NULL, WAKE_PARTIAL}, // 11060
{RIL_UNSOL_IMS_PREFERENCE_CHANGED, NULL, WAKE_PARTIAL}, // 11061
{RIL_UNSOL_SIM_APPLICATION_REFRESH, NULL, WAKE_PARTIAL}, // 11062
{RIL_UNSOL_UICC_APPLICATION_STATUS, NULL, WAKE_PARTIAL}, // 11063
{RIL_UNSOL_VOICE_RADIO_BEARER_HO_STATUS, NULL, WAKE_PARTIAL}, // 11064
{RIL_UNSOL_CLM_NOTI, NULL, WAKE_PARTIAL},
{RIL_UNSOL_SIM_ICCID_NOTI, NULL, WAKE_PARTIAL},
{RIL_UNSOL_SNDMGR_WB_AMR_REPORT, NULL, WAKE_PARTIAL}, // 20017
{RIL_UNSOL_SNDMGR_CLOCK_CTRL, NULL, WAKE_PARTIAL}, // 20022