/*++
THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF
ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO
THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A
PARTICULAR PURPOSE.
Copyright (c) 1995-1999 Microsoft Corporation
-----------------------------------------------------------------------------
@doc EXTERNAL
@module RIL.H - Radio Interface Layer
-----------------------------------------------------------------------------
--*/
#ifndef _RIL_H_
#define _RIL_H_
#include <windows.h>
#ifdef __cplusplus
extern "C" {
#endif
// -----------------------------------------------------------------------------
//
// @doc EXTERNAL
//
// @constants Error Class | Each RIL error falls into a general error class bucket
//
// @comm In RIL, the low order 16 bits are divided into an 8-bit error class and
// an 8-bit error value. Use the RILERRORCLASS macro to obtain the error
// class from a RIL HRESULT.
//
// -----------------------------------------------------------------------------
#define RIL_ERRORCLASS_NONE 0x00 // @constdefine Misc error
#define RIL_ERRORCLASS_PASSWORD 0x01 // @constdefine Unspecified phone failure
#define RIL_ERRORCLASS_SIM 0x02 // @constdefine Problem with the SIM
#define RIL_ERRORCLASS_NETWORKACCESS 0x03 // @constdefine Can't access the network
#define RIL_ERRORCLASS_NETWORK 0x04 // @constdefine Error in the network
#define RIL_ERRORCLASS_MOBILE 0x05 // @constdefine Error in the mobile
#define RIL_ERRORCLASS_NETWORKUNSUPPORTED 0x06 // @constdefine Unsupported by the network
#define RIL_ERRORCLASS_MOBILEUNSUPPORTED 0x07 // @constdefine Unsupported by the mobile
#define RIL_ERRORCLASS_BADPARAM 0x08 // @constdefine An invalid parameter was supplied
#define RIL_ERRORCLASS_STORAGE 0x09 // @constdefine Error relating to storage
#define RIL_ERRORCLASS_SMSC 0x0A // @constdefine Error relates to the SMSC
#define RIL_ERRORCLASS_DESTINATION 0x0B // @constdefine Error in the destination mobile
#define RIL_ERRORCLASS_DESTINATIONUNSUPPORTED 0x0C // @constdefine Unsupported by destination mobile
#define RIL_ERRORCLASS_RADIOUNAVAILABLE 0x0D // @constdefine The Radio Module is Off or a radio module may not be present
#define MAKE_RILERROR(errclass,code) \
((unsigned long) (errclass) << 8) | ((unsigned long)(code))
#define RILERRORCLASS(rilerror) \
((unsigned long) (((rilerror) >> 8) & 0xff))
// -----------------------------------------------------------------------------
//
// @doc EXTERNAL
//
// @constants Error | Error codes
//
// @comm None
//
// -----------------------------------------------------------------------------
#define FACILITY_RIL 0x100
#define RIL_E_PHONEFAILURE (MAKE_HRESULT(SEVERITY_ERROR, FACILITY_RIL, MAKE_RILERROR(RIL_ERRORCLASS_MOBILE,0x01))) // @constdefine Unspecified phone failure
#define RIL_E_NOCONNECTION (MAKE_HRESULT(SEVERITY_ERROR, FACILITY_RIL, MAKE_RILERROR(RIL_ERRORCLASS_MOBILE,0x02))) // @constdefine RIL has no connection to the phone
#define RIL_E_LINKRESERVED (MAKE_HRESULT(SEVERITY_ERROR, FACILITY_RIL, MAKE_RILERROR(RIL_ERRORCLASS_MOBILE,0x03))) // @constdefine RIL's link to the phone is reserved
#define RIL_E_OPNOTALLOWED (MAKE_HRESULT(SEVERITY_ERROR, FACILITY_RIL, MAKE_RILERROR(RIL_ERRORCLASS_MOBILEUNSUPPORTED,0x04))) // @constdefine Attempted operation isn't allowed
#define RIL_E_OPNOTSUPPORTED (MAKE_HRESULT(SEVERITY_ERROR, FACILITY_RIL, MAKE_RILERROR(RIL_ERRORCLASS_MOBILEUNSUPPORTED,0x05))) // @constdefine Attempted operation isn't supported
#define RIL_E_PHSIMPINREQUIRED (MAKE_HRESULT(SEVERITY_ERROR, FACILITY_RIL, MAKE_RILERROR(RIL_ERRORCLASS_PASSWORD,0x06))) // @constdefine PH-SIM PIN is required to perform this operation
#define RIL_E_PHFSIMPINREQUIRED (MAKE_HRESULT(SEVERITY_ERROR, FACILITY_RIL, MAKE_RILERROR(RIL_ERRORCLASS_PASSWORD,0x07))) // @constdefine PH-FSIM PIN is required to perform this operation
#define RIL_E_PHFSIMPUKREQUIRED (MAKE_HRESULT(SEVERITY_ERROR, FACILITY_RIL, MAKE_RILERROR(RIL_ERRORCLASS_PASSWORD,0x08))) // @constdefine PH-FSIM PUK is required to perform this operation
#define RIL_E_SIMNOTINSERTED (MAKE_HRESULT(SEVERITY_ERROR, FACILITY_RIL, MAKE_RILERROR(RIL_ERRORCLASS_SIM,0x09))) // @constdefine SIM isn't inserted into the phone
#define RIL_E_SIMPINREQUIRED (MAKE_HRESULT(SEVERITY_ERROR, FACILITY_RIL, MAKE_RILERROR(RIL_ERRORCLASS_PASSWORD,0x0a))) // @constdefine SIM PIN is required to perform this operation
#define RIL_E_SIMPUKREQUIRED (MAKE_HRESULT(SEVERITY_ERROR, FACILITY_RIL, MAKE_RILERROR(RIL_ERRORCLASS_PASSWORD,0x0b))) // @constdefine SIM PUK is required to perform this operation
#define RIL_E_SIMFAILURE (MAKE_HRESULT(SEVERITY_ERROR, FACILITY_RIL, MAKE_RILERROR(RIL_ERRORCLASS_SIM,0x0c))) // @constdefine SIM failure was detected
#define RIL_E_SIMBUSY (MAKE_HRESULT(SEVERITY_ERROR, FACILITY_RIL, MAKE_RILERROR(RIL_ERRORCLASS_SIM,0x0d))) // @constdefine SIM is busy
#define RIL_E_SIMWRONG (MAKE_HRESULT(SEVERITY_ERROR, FACILITY_RIL, MAKE_RILERROR(RIL_ERRORCLASS_SIM,0x0e))) // @constdefine Inorrect SIM was inserted
#define RIL_E_INCORRECTPASSWORD (MAKE_HRESULT(SEVERITY_ERROR, FACILITY_RIL, MAKE_RILERROR(RIL_ERRORCLASS_PASSWORD,0x0f))) // @constdefine Incorrect password was supplied
#define RIL_E_SIMPIN2REQUIRED (MAKE_HRESULT(SEVERITY_ERROR, FACILITY_RIL, MAKE_RILERROR(RIL_ERRORCLASS_PASSWORD,0x10))) // @constdefine SIM PIN2 is required to perform this operation
#define RIL_E_SIMPUK2REQUIRED (MAKE_HRESULT(SEVERITY_ERROR, FACILITY_RIL, MAKE_RILERROR(RIL_ERRORCLASS_PASSWORD,0x11))) // @constdefine SIM PUK2 is required to perform this operation
#define RIL_E_MEMORYFULL (MAKE_HRESULT(SEVERITY_ERROR, FACILITY_RIL, MAKE_RILERROR(RIL_ERRORCLASS_STORAGE,0x12))) // @constdefine Storage memory is full
#define RIL_E_INVALIDINDEX (MAKE_HRESULT(SEVERITY_ERROR, FACILITY_RIL, MAKE_RILERROR(RIL_ERRORCLASS_STORAGE,0x13))) // @constdefine Invalid storage index was supplied
#define RIL_E_NOTFOUND (MAKE_HRESULT(SEVERITY_ERROR, FACILITY_RIL, MAKE_RILERROR(RIL_ERRORCLASS_STORAGE,0x14))) // @constdefine A requested storage entry was not found
#define RIL_E_MEMORYFAILURE (MAKE_HRESULT(SEVERITY_ERROR, FACILITY_RIL, MAKE_RILERROR(RIL_ERRORCLASS_STORAGE,0x15))) // @constdefine Storage memory failure
#define RIL_E_TEXTSTRINGTOOLONG (MAKE_HRESULT(SEVERITY_ERROR, FACILITY_RIL, MAKE_RILERROR(RIL_ERRORCLASS_BADPARAM,0x16))) // @constdefine Supplied text string is too long
#define RIL_E_INVALIDTEXTSTRING (MAKE_HRESULT(SEVERITY_ERROR, FACILITY_RIL, MAKE_RILERROR(RIL_ERRORCLASS_BADPARAM,0x17))) // @constdefine Supplied text string contains invalid characters
#define RIL_E_DIALSTRINGTOOLONG (MAKE_HRESULT(SEVERITY_ERROR, FACILITY_RIL, MAKE_RILERROR(RIL_ERRORCLASS_BADPARAM,0x18))) // @constdefine Supplied dial string is too long
#define RIL_E_INVALIDDIALSTRING (MAKE_HRESULT(SEVERITY_ERROR, FACILITY_RIL, MAKE_RILERROR(RIL_ERRORCLASS_BADPARAM,0x19))) // @constdefine Supplied dial string contains invalid characters
#define RIL_E_NONETWORKSVC (MAKE_HRESULT(SEVERITY_ERROR, FACILITY_RIL, MAKE_RILERROR(RIL_ERRORCLASS_NETWORKACCESS,0x1a))) // @constdefine Network service isn't available
#define RIL_E_NETWORKTIMEOUT (MAKE_HRESULT(SEVERITY_ERROR, FACILITY_RIL, MAKE_RILERROR(RIL_ERRORCLASS_NETWORK,0x1b))) // @constdefine Network operation timed out
#define RIL_E_EMERGENCYONLY (MAKE_HRESULT(SEVERITY_ERROR, FACILITY_RIL, MAKE_RILERROR(RIL_ERRORCLASS