view cdg-hybrid/sap/dcm.pdf @ 78:c632896652ba

mfw/ti1_key.c: properly initialize notified_keys array The code in this ti1_key.c layer needs to call kpd_subscribe() and kpd_define_key_notification() functions in order to register with the KPD driver. The original code passed KPD_NB_PHYSICAL_KEYS in nb_notified_keys - this constant is defined to 24 in kpd_cfg.h on all platforms of interest to us - but it only filled the first 23 slots in the notified_keys array, resulting in stack garbage being passed to KPD API functions. The fix consists of initializing the last missed array slot to KPD_KEY_RECORD, the key ID for the right side button on the D-Sample handset. On our current hw targets this "Record" button exists as the EXTRA button on our Luna keypad board and as the camera button on the Pirelli DP-L10. There is no support whatsoever for this button in current BMI+MFW, we have no plans of doing anything with Pirelli's camera button even if we do get our UI fw running on that phone, and the Mother's dream of building our own FreeCalypso handset with the same button arrangement as D-Sample (including the right side button) is currently very nebulous - but let us nonetheless handle the full set of buttons on the KPD to MFW interface, and let upper layers weed out unsupported buttons.
author Mychaela Falconia <falcon@freecalypso.org>
date Sun, 25 Oct 2020 23:41:01 +0000
parents 35f7a1dc9f7d
children
line wrap: on
line source

;********************************************************************************
;*** File           : dcm.pdf
;*** Creation       : Wed Mar 11 09:57:42 CST 2009
;*** XSLT Processor : Apache Software Foundation / http://xml.apache.org/xalan-j / supports XSLT-Ver: 1
;*** Copyright      : (c) Texas Instruments AG, Berlin Germany 2002
;********************************************************************************
;*** Document Type  : Service Access Point Specification
;*** Document Name  : dcm
;*** Document No.   : 8462.101.03.001
;*** Document Date  : 2003-09-03
;*** Document Status: BEING_PROCESSED
;*** Document Author: STW
;********************************************************************************



PRAGMA 	SRC_FILE_TIME 	"Thu Nov 29 09:39:32 2007"
PRAGMA 	LAST_MODIFIED 	"2003-09-03"
PRAGMA 	ID_AND_VERSION 	"8462.101.03.001"



CONST 	CDCM_APN_MAX_LEN 	100 	; Maximum length of an access point name
CONST 	CDCM_PHONE_NR_LEN 	84 	; Maximum length of a CSD phone number
CONST 	CDCM_PDP_MAX_LEN 	20 	; Maximum length of PDP address
CONST 	CDCM_GATE_MAX_LEN 	20 	; Maximum length of gateway address
CONST 	CDCM_USER_MAX_LEN 	25 	; Maximum length of user name
CONST 	CDCM_PASSWORD_MAX_LEN 	25 	; Maximum length of password
CONST 	CDCM_DNS_MAX_LEN 	20 	; Maximum length of DNS addresses



VALTAB 	VAL_bearer_select
VAL 	1 	DCM_SOCK_BEARER_ANY 	"DCM will decide which connection type to be used"
VAL 	2 	DCM_SOCK_BEARER_GPRS 	"Use a GPRS context as bearer, DCM will decide which GPRS settings to be used"
VAL 	3 	DCM_SOCK_BEARER_GSM 	"Use GSM data connection as bearer DCM will decide which GSM settings to be used"
VAL 	4 	DCM_SOCK_BEARER_USE_PROFILE 	"Use a specific data account for this connection"
VAL 	5 	DCM_SOCK_BEARER_AS_SPECIFIED 	"Use the data account information which is which is delivered within this signal"

VALTAB 	VAL_authtype
VAL 	1 	DCM_SOCK_AUTH_PAP 	"PAP authentification protocol"
VAL 	2 	DCM_SOCK_AUTH_CHAP 	"CHAP authentification protocol !!! NOT SUPPORTED"
VAL 	3 	DCM_SOCK_AUTH_NO 	"No authentication"

VALTAB 	VAL_result
VAL 	0 	DCM_RET_OK 	"The action has been performed successfully."
VAL 	1 	DCM_RET_NOT_READY 	"The command can not be processed now."
VAL 	2 	DCM_RET_ALREADY_ACTIVATED 	"Connection refused because already actuvated."
VAL 	3 	DCM_RET_UNKNOWN_EVENT 	"Unknown receipt event."
VAL 	4 	DCM_RET_INVALID_PARAMETER 	"A parameter is wrong."
VAL 	5 	DCM_RET_CMD_PENDING 	"There is a pending command yet."
VAL 	6 	DCM_RET_PS_CONN_BROKEN 	"Loose of bearer connection."




VAR 	api_instance 	"The api_instance value returned by sock_api_initialize()." 	L


VAR 	bearer_handle 	"Bearer handle" 	S


VAR 	bearer_select 	"Bearer type" 	M

VAL 	@p_dcm - VAL_bearer_select@ 	

VAR 	authtype 	"Authentication type" 	S

VAL 	@p_dcm - VAL_authtype@ 	

VAR 	profile_number 	"Profile ID for bearer selection" 	S


VAR 	bearer_handle 	"Systemwide bearer handle" 	S


VAR 	app_handle 	"Comm handle of application" 	S


VAR 	bearer_type 	"Used bearer type" 	B


VAR 	apn_valid 	"Flag for apn validation" 	B


VAR 	apn 	"Access Point Name" 	B


VAR 	phone_number_valid 	"Flag for phone number validation" 	B


VAR 	phone_number 	"CSD dial up phone number" 	B


VAR 	user_id_valid 	"Flag for user ID validation" 	B


VAR 	user_id 	"User ID" 	B


VAR 	password_valid 	"Flag for password validation" 	B


VAR 	password 	"Password" 	B


VAR 	cid 	"GPRS context ID" 	S


VAR 	ip_address 	"Used IP address" 	L


VAR 	dns1 	"First domain name server" 	L


VAR 	dns2 	"Second domain name server" 	L


VAR 	gateway 	"Gateway address" 	L


VAR 	auth_type 	"Type of authentication" 	S


VAR 	data_compr 	"Flag for data compression" 	B


VAR 	header_compr 	"Flag for header compression" 	B


VAR 	precedence 	"GPRS precedence class" 	S


VAR 	delay 	"GPRS delay class" 	S


VAR 	reliability 	"GPRS reliability class" 	S


VAR 	peak_throughput 	"GPRS peak throughput" 	S


VAR 	mean_throughput 	"GPRS mean throughput" 	S


VAR 	shareable 	"Flag for sharing requested bearer conn" 	B


VAR 	result 	"Result of the operation" 	M

VAL 	@p_dcm - VAL_result@ 	

VAR 	dcm_err 	"Error value" 	M





COMP 	dcm_info_conn 	 "Connection information"
{
 	bearer_handle 	 ; Systemwide bearer handle
 	app_handle 	 ; Comm handle of application
 	bearer_type 	 ; Used bearer type
 	apn_valid 	 ; Flag for apn validation
 	apn 	[CDCM_APN_MAX_LEN + 1] 	 ; Access Point Name
 	phone_number_valid 	 ; Flag for phone number validation
 	phone_number 	[CDCM_PHONE_NR_LEN + 1] 	 ; CSD dial up phone number
 	user_id_valid 	 ; Flag for user ID validation
 	user_id 	[CDCM_USER_MAX_LEN + 1] 	 ; User ID
 	password_valid 	 ; Flag for password validation
 	password 	[CDCM_PASSWORD_MAX_LEN + 1] 	 ; Password
 	cid 	 ; GPRS context ID
 	ip_address 	 ; Used IP address
 	dns1 	 ; First domain name server
 	dns2 	 ; Second domain name server
 	gateway 	 ; Gateway address
 	auth_type 	 ; Type of authentication
 	data_compr 	 ; Flag for data compression
 	header_compr 	 ; Flag for header compression
 	precedence 	 ; GPRS precedence class
 	delay 	 ; GPRS delay class
 	reliability 	 ; GPRS reliability class
 	peak_throughput 	 ; GPRS peak throughput
 	mean_throughput 	 ; GPRS mean throughput
 	shareable 	 ; Flag for sharing requested bearer conn
}






; DCM_OPEN_CONN_REQ 	0x8000401C
; DCM_OPEN_CONN_CNF 	0x8000001C
; DCM_CLOSE_CONN_REQ 	0x8001401C
; DCM_CLOSE_CONN_CNF 	0x8001001C
; DCM_GET_CURRENT_CONN_REQ 	0x8002401C
; DCM_GET_CURRENT_CONN_CNF 	0x8002001C
; DCM_ERROR_IND 	0x8003001C



PRIM 	DCM_OPEN_CONN_REQ 	0x8000401C
{
 	api_instance 	 ; Api instance
 	bearer_select 	 ; Bearer type
 	profile_number 	 ; profile number
 	dcm_info_conn 	 ; Paramater used for bearer connection
}






PRIM 	DCM_OPEN_CONN_CNF 	0x8000001C
{
 	result 	 ; Result of the operation
 	bearer_handle 	 ; Bearer handle
}






PRIM 	DCM_CLOSE_CONN_REQ 	0x8001401C
{
 	api_instance 	 ; Api instance
 	bearer_handle 	 ; Beare handle
}






PRIM 	DCM_CLOSE_CONN_CNF 	0x8001001C
{
 	result 	 ; Result of the operation
}






PRIM 	DCM_GET_CURRENT_CONN_REQ 	0x8002401C
{
 	api_instance 	 ; Api instance
 	bearer_handle 	 ; Beare handle
}






PRIM 	DCM_GET_CURRENT_CONN_CNF 	0x8002001C
{
 	result 	 ; Result of the operation
 	dcm_info_conn 	 ; Connection information
}






PRIM 	DCM_ERROR_IND 	0x8003001C
{
 	dcm_err 	 ; Error value
 	result 	 ; Result of the operation
}