struct v4l2_subdev sd; struct mutex i2c_mutex; enum atomisp_flash_mode mode; int timeout; }; struct lm3556_reg_field { u32 reg_address; u32 lsb; u32 msb; }; /* This defines the register field properties. The LSBs and MSBs come from * the lm3556 datasheet. */ static const struct lm3556_reg_field enable = INIT_FIELD(LM3556_ENABLE_REG, 0, 7), configure = INIT_FIELD(LM3556_CONFIGURATION_REG, 0, 7), torch_current = INIT_FIELD(LM3556_CURRENT_CONTROL_REG, 4, 6), indicator_current = INIT_FIELD(LM3556_FLASH_FEATURES_REG, 6, 7), flash_current = INIT_FIELD(LM3556_CURRENT_CONTROL_REG, 0, 3), flash_timeout = INIT_FIELD(LM3556_FLASH_FEATURES_REG, 0, 2), flags = INIT_FIELD(LM3556_FLAGS_REG, 0, 7); static int set_reg_field(struct v4l2_subdev *sd, const struct lm3556_reg_field *field, u8 value) { int ret; u32 tmp, val = value, bits = (field->msb - field->lsb) + 1,
static krb5_error_code init_context_from_config_file(krb5_context context) { krb5_error_code ret; const char * tmp; char **s; krb5_enctype *tmptypes; INIT_FIELD(context, time, max_skew, 5 * 60, "clockskew"); INIT_FIELD(context, time, kdc_timeout, 30, "kdc_timeout"); INIT_FIELD(context, time, host_timeout, 3, "host_timeout"); INIT_FIELD(context, int, max_retries, 3, "max_retries"); INIT_FIELD(context, string, http_proxy, NULL, "http_proxy"); ret = krb5_config_get_bool_default(context, NULL, FALSE, "libdefaults", "allow_weak_crypto", NULL); if (ret) { krb5_enctype_enable(context, ETYPE_DES_CBC_CRC); krb5_enctype_enable(context, ETYPE_DES_CBC_MD4); krb5_enctype_enable(context, ETYPE_DES_CBC_MD5); krb5_enctype_enable(context, ETYPE_DES_CBC_NONE); krb5_enctype_enable(context, ETYPE_DES_CFB64_NONE); krb5_enctype_enable(context, ETYPE_DES_PCBC_NONE); } ret = set_etypes (context, "default_etypes", &tmptypes); if(ret) return ret; free(context->etypes); context->etypes = tmptypes; ret = set_etypes (context, "default_etypes_des", &tmptypes); if(ret) return ret; free(context->etypes_des); context->etypes_des = tmptypes; ret = set_etypes (context, "default_as_etypes", &tmptypes); if(ret) return ret; free(context->as_etypes); context->as_etypes = tmptypes; ret = set_etypes (context, "default_tgs_etypes", &tmptypes); if(ret) return ret; free(context->tgs_etypes); context->tgs_etypes = tmptypes; ret = set_etypes (context, "permitted_enctypes", &tmptypes); if(ret) return ret; free(context->permitted_enctypes); context->permitted_enctypes = tmptypes; /* default keytab name */ tmp = NULL; if(!issuid()) tmp = getenv("KRB5_KTNAME"); if(tmp != NULL) context->default_keytab = tmp; else INIT_FIELD(context, string, default_keytab, KEYTAB_DEFAULT, "default_keytab_name"); INIT_FIELD(context, string, default_keytab_modify, NULL, "default_keytab_modify_name"); INIT_FIELD(context, string, time_fmt, "%Y-%m-%dT%H:%M:%S", "time_format"); INIT_FIELD(context, string, date_fmt, "%Y-%m-%d", "date_format"); INIT_FIELD(context, bool, log_utc, FALSE, "log_utc"); /* init dns-proxy slime */ tmp = krb5_config_get_string(context, NULL, "libdefaults", "dns_proxy", NULL); if(tmp) roken_gethostby_setup(context->http_proxy, tmp); krb5_free_host_realm (context, context->default_realms); context->default_realms = NULL; { krb5_addresses addresses; char **adr, **a; krb5_set_extra_addresses(context, NULL); adr = krb5_config_get_strings(context, NULL, "libdefaults", "extra_addresses", NULL); memset(&addresses, 0, sizeof(addresses)); for(a = adr; a && *a; a++) { ret = krb5_parse_address(context, *a, &addresses); if (ret == 0) { krb5_add_extra_addresses(context, &addresses); krb5_free_addresses(context, &addresses); } } krb5_config_free_strings(adr); krb5_set_ignore_addresses(context, NULL); adr = krb5_config_get_strings(context, NULL, "libdefaults", "ignore_addresses", NULL); memset(&addresses, 0, sizeof(addresses)); for(a = adr; a && *a; a++) { ret = krb5_parse_address(context, *a, &addresses); if (ret == 0) { krb5_add_ignore_addresses(context, &addresses); krb5_free_addresses(context, &addresses); } } krb5_config_free_strings(adr); } INIT_FIELD(context, bool, scan_interfaces, TRUE, "scan_interfaces"); INIT_FIELD(context, int, fcache_vno, 0, "fcache_version"); /* prefer dns_lookup_kdc over srv_lookup. */ INIT_FIELD(context, bool, srv_lookup, TRUE, "srv_lookup"); INIT_FIELD(context, bool, srv_lookup, context->srv_lookup, "dns_lookup_kdc"); INIT_FIELD(context, int, large_msg_size, 1400, "large_message_size"); INIT_FIELD(context, int, max_msg_size, 1000 * 1024, "maximum_message_size"); INIT_FLAG(context, flags, KRB5_CTX_F_DNS_CANONICALIZE_HOSTNAME, TRUE, "dns_canonicalize_hostname"); INIT_FLAG(context, flags, KRB5_CTX_F_CHECK_PAC, TRUE, "check_pac"); if (context->default_cc_name) free(context->default_cc_name); context->default_cc_name = NULL; context->default_cc_name_set = 0; s = krb5_config_get_strings(context, NULL, "logging", "krb5", NULL); if(s) { char **p; if (context->debug_dest) krb5_closelog(context, context->debug_dest); krb5_initlog(context, "libkrb5", &context->debug_dest); for(p = s; *p; p++) krb5_addlog_dest(context, context->debug_dest, *p); krb5_config_free_strings(s); } tmp = krb5_config_get_string(context, NULL, "libdefaults", "check-rd-req-server", NULL); if (tmp == NULL && !issuid()) tmp = getenv("KRB5_CHECK_RD_REQ_SERVER"); if(tmp) { if (strcasecmp(tmp, "ignore") == 0) context->flags |= KRB5_CTX_F_RD_REQ_IGNORE; } ret = krb5_config_get_bool_default(context, NULL, TRUE, "libdefaults", "fcache_strict_checking", NULL); if (ret) context->flags |= KRB5_CTX_F_FCACHE_STRICT_CHECKING; return 0; }
int timeout; struct timer_list flash_off_delay; u32 intensity; struct camera_flash_platform_data *platform_data; }; struct lm3554_reg_field { u32 reg_address; u32 lsb; u32 msb; }; /* This defines the register field properties. The LSBs and MSBs come from * the lm3554 datasheet. */ static const struct lm3554_reg_field torch_mode = INIT_FIELD(LM3554_TORCH_BRIGHTNESS_REG, 0, 2), torch_current = INIT_FIELD(LM3554_TORCH_BRIGHTNESS_REG, 3, 5), indicator_current = INIT_FIELD(LM3554_TORCH_BRIGHTNESS_REG, 6, 7), flash_mode = INIT_FIELD(LM3554_FLASH_BRIGHTNESS_REG, 0, 2), flash_current = INIT_FIELD(LM3554_FLASH_BRIGHTNESS_REG, 3, 6), strobe_sensitivity = INIT_FIELD(LM3554_FLASH_BRIGHTNESS_REG, 7, 7), flash_timeout = INIT_FIELD(LM3554_FLASH_DURATION_REG, 0, 4), current_limit = INIT_FIELD(LM3554_FLASH_DURATION_REG, 5, 6), flags = INIT_FIELD(LM3554_FLAGS_REG, 0, 7), envm_tx2 = INIT_FIELD(LM3554_CONFIG_REG_1, 5, 5), tx2_polarity = INIT_FIELD(LM3554_CONFIG_REG_1, 6, 6), tx2_shutdown = INIT_FIELD(LM3554_CONFIG_REG_2, 0, 0); static int set_reg_field(struct v4l2_subdev *sd, const struct lm3554_reg_field *field, u8 value)