Lines Matching defs:config

89 	struct mfi_config_data *config;
94 * Keep fetching the config in a loop until we have a large enough
97 config = NULL;
100 config = reallocf(config, config_size);
101 if (config == NULL)
103 if (mfi_dcmd_command(fd, opcode, config,
106 free(config);
111 if (config->size > config_size) {
112 config_size = config->size;
116 *configp = config;
121 mfi_config_lookup_array(struct mfi_config_data *config, uint16_t array_ref)
127 p = (char *)config->array;
128 for (i = 0; i < config->array_count; i++) {
132 p += config->array_size;
139 mfi_config_lookup_volume(struct mfi_config_data *config, uint8_t target_id)
145 p = (char *)config->array + config->array_count * config->array_size;
146 for (i = 0; i < config->log_drv_count; i++) {
150 p += config->log_drv_size;
547 struct mfi_config_data *config;
583 config = NULL;
712 * Fetch the current config and build sorted lists of existing
715 if (mfi_config_read(fd, &config) < 0) {
720 p = (char *)config->array;
723 state.array_count = config->array_count;
724 if (config->array_count > 0) {
725 state.arrays = calloc(config->array_count, sizeof(int));
731 for (i = 0; i < config->array_count; i++) {
734 p += config->array_size;
736 qsort(state.arrays, config->array_count, sizeof(int),
740 state.log_drv_count = config->log_drv_count;
741 if (config->log_drv_count) {
742 state.volumes = calloc(config->log_drv_count, sizeof(int));
748 for (i = 0; i < config->log_drv_count; i++) {
751 p += config->log_drv_size;
753 qsort(state.volumes, config->log_drv_count, sizeof(int),
757 free(config);
783 config = calloc(1, config_size);
784 if (config == NULL) {
789 config->size = config_size;
790 config->array_count = narrays;
791 config->array_size = MFI_ARRAY_SIZE; /* XXX: Firmware hardcode */
792 config->log_drv_count = nvolumes;
793 config->log_drv_size = sizeof(struct mfi_ld_config);
794 config->spares_count = 0;
795 config->spares_size = 40; /* XXX: Firmware hardcode */
796 cfg_arrays = (char *)config->array;
797 cfg_volumes = cfg_arrays + config->array_size * narrays;
802 cfg_arrays += config->array_size;
811 cfg_volumes += config->log_drv_size;
816 dump_config(fd, config, NULL);
819 /* Send the new config to the controller. */
820 if (mfi_dcmd_command(fd, MFI_DCMD_CFG_ADD, config, config_size,
829 free(config);
924 struct mfi_config_data *config;
945 config = NULL;
971 if (mfi_config_read(fd, &config) < 0) {
978 config->array_count);
989 p = (char *)config->array;
990 for (i = 0; i < config->array_count; i++) {
998 p += config->array_size;
1006 ld = mfi_config_lookup_volume(config, target_id);
1016 ar = mfi_config_lookup_array(config,
1019 warnx("Missing array; inconsistent config?");
1043 free(config);
1105 /* Display raw data about a config. */
1107 dump_config(int fd, struct mfi_config_data *config, const char *msg_prefix)
1122 msg_prefix, config->array_count, config->log_drv_count,
1123 config->spares_count);
1124 printf(" array size: %u\n", config->array_size);
1125 printf(" volume size: %u\n", config->log_drv_size);
1126 printf(" spare size: %u\n", config->spares_size);
1127 p = (char *)config->array;
1129 for (i = 0; i < config->array_count; i++) {
1152 p += config->array_size;
1155 for (i = 0; i < config->log_drv_count; i++) {
1184 p += config->log_drv_size;
1187 for (i = 0; i < config->spares_count; i++) {
1196 p += config->spares_size;
1204 struct mfi_config_data *config;
1219 /* Get the config from the controller. */
1220 if (mfi_config_read(fd, &config) < 0) {
1222 warn("Failed to get config");
1228 dump_config(fd, config, NULL);
1229 free(config);
1239 struct mfi_config_data *config;
1267 config = malloc(len);
1268 if (config == NULL) {
1273 if (sysctlbyname(buf, config, &len, NULL, 0) < 0) {
1276 free(config);
1280 dump_config(fd, config, NULL);
1281 free(config);