diff options
| -rw-r--r-- | hcid/hcid.h | 1 | ||||
| -rw-r--r-- | hcid/kword.c | 1 | ||||
| -rw-r--r-- | hcid/main.c | 9 | ||||
| -rw-r--r-- | hcid/parser.y | 6 | 
4 files changed, 16 insertions, 1 deletions
diff --git a/hcid/hcid.h b/hcid/hcid.h index 3beebd49..5523d4b7 100644 --- a/hcid/hcid.h +++ b/hcid/hcid.h @@ -43,6 +43,7 @@  struct device_opts {  	char    *name;  	uint32_t class; +	uint8_t  inqmode;  	uint16_t pkt_type;  	uint16_t scan;  	uint16_t link_mode; diff --git a/hcid/kword.c b/hcid/kword.c index 41800b75..bd2294b2 100644 --- a/hcid/kword.c +++ b/hcid/kword.c @@ -59,6 +59,7 @@ struct kword cfg_keyword[] = {  	{ "pscan",		K_PSCAN		},  	{ "name",		K_NAME		},  	{ "class",		K_CLASS		}, +	{ "inqmode",		K_INQMODE	},  	{ "auth",		K_AUTH		},  	{ "encrypt",		K_ENCRYPT	},  	{ "pin_helper",		K_PINHELP	}, diff --git a/hcid/main.c b/hcid/main.c index c2c6381c..45b8231d 100644 --- a/hcid/main.c +++ b/hcid/main.c @@ -242,6 +242,15 @@ static void configure_device(int hdev)  			CHANGE_LOCAL_NAME_CP_SIZE, (void *) &cp);  	} +	/* Set inquiry mode */ +	if (di.features[3] & LMP_RSSI_INQ) { +		write_inquiry_mode_cp cp; + +		cp.mode = device_opts->inqmode; +		hci_send_cmd(s, OGF_HOST_CTL, OCF_WRITE_INQUIRY_MODE, +			WRITE_INQUIRY_MODE_CP_SIZE, (void *) &cp); +	} +  	exit(0);  } diff --git a/hcid/parser.y b/hcid/parser.y index 136a8571..3534fb2b 100644 --- a/hcid/parser.y +++ b/hcid/parser.y @@ -64,7 +64,7 @@ int yyerror(char *s);  %token K_OPTIONS K_DEVICE  %token K_AUTOINIT K_SECURITY K_PAIRING -%token K_PTYPE K_NAME K_CLASS K_LM K_LP K_AUTH K_ENCRYPT K_ISCAN K_PSCAN +%token K_PTYPE K_NAME K_CLASS K_INQMODE K_LM K_LP K_AUTH K_ENCRYPT K_ISCAN K_PSCAN  %token K_PINHELP K_DBUSPINHELP  %token K_YES K_NO @@ -190,6 +190,10 @@ device_opt:  				parser_device->class = $2;  			} +  | K_INQMODE NUM	{ +				parser_device->inqmode = $2; +			} +    | K_AUTH bool		{  				parser_device->auth = $2;  			}  | 
