Lines Matching refs:handle

129 check_handle(settings_handle *handle)
131 if (handle == NULL
132 || handle->magic != SETTINGS_MAGIC)
140 get_parameter(settings_handle *handle, const char *name)
143 for (i = handle->settings.parameter_count; i-- > 0;) {
144 if (!strcmp(handle->settings.parameters[i].name, name))
145 return &handle->settings.parameters[i];
365 parse_settings(settings_handle *handle)
367 char *text = handle->text;
369 memset(&handle->settings, 0, sizeof(struct driver_settings));
375 return parse_parameters(&handle->settings.parameters,
376 &handle->settings.parameter_count, &text, 0);
393 free_settings(settings_handle *handle)
396 for (i = handle->settings.parameter_count; i-- > 0;)
397 free_parameter(&handle->settings.parameters[i]);
399 free(handle->settings.parameters);
400 free(handle->text);
401 free(handle);
408 settings_handle *handle = (settings_handle*)malloc(sizeof(settings_handle));
409 if (handle == NULL)
412 handle->magic = SETTINGS_MAGIC;
413 handle->text = buffer;
417 handle->ref_count = 1;
418 strlcpy(handle->name, driverName, sizeof(handle->name));
420 handle->ref_count = -1;
421 handle->name[0] = 0;
425 if (parse_settings(handle) == B_OK)
426 return handle;
428 free(handle);
450 settings_handle *handle;
456 handle = new_settings(text, driverName);
457 if (handle != NULL) {
459 return handle;
617 settings_handle *handle = NULL;
621 while ((handle = (settings_handle*)list_get_next_item(&sHandles, handle))
623 if (!strcmp(handle->name, name))
624 return handle;
641 settings_handle *handle
643 if (handle == NULL)
647 handle->text = (char*)malloc(settings->size + 1);
648 if (handle->text == NULL) {
649 free(handle);
653 memcpy(handle->text, settings->buffer, settings->size);
654 handle->text[settings->size] = '\0';
657 handle->text = NULL;
659 strlcpy(handle->name, settings->name, sizeof(handle->name));
660 handle->settings.parameters = NULL;
661 handle->settings.parameter_count = 0;
662 handle->magic = 0;
665 if (!strcmp(handle->name, B_SAFEMODE_DRIVER_SETTINGS)) {
668 handle->ref_count = 1;
670 handle->ref_count = 0;
672 list_add_item(&sHandles, handle);
688 settings_handle *handle = (settings_handle *)_handle;
689 if (!check_handle(handle))
695 if (handle->ref_count > 0) {
696 if (--handle->ref_count == 0 && gBootDevice > 0) {
697 // don't unload an handle when /boot is not available
698 list_remove_link(&handle->link);
700 handle = NULL;
705 if (handle != NULL)
706 free_settings(handle);
715 settings_handle *handle;
724 handle = find_driver_settings(driverName);
725 if (handle != NULL && handle->ref_count == 0 && gBootDevice > 0) {
726 // A handle with a zero ref_count should be unloaded if /boot is
728 list_remove_link(&handle->link);
729 free_settings(handle);
730 } else if (handle != NULL) {
731 handle->ref_count++;
734 if (handle->magic != SETTINGS_MAGIC) {
735 handle->magic = SETTINGS_MAGIC;
737 if (parse_settings(handle) != B_OK) {
739 free(handle->text);
740 handle->text = NULL;
741 handle = NULL;
745 return handle;
767 settings_handle *handle = new_settings(text, driverName);
768 if (handle == NULL)
770 return handle;
804 handle = load_driver_settings_from_file(file, driverName);
807 if (handle != NULL)
808 list_add_item(&sHandles, handle);
813 return (void *)handle;
825 Returns a new driver_settings handle that has the parsed contents
841 settings_handle *handle = new_settings(text, NULL);
842 if (handle == NULL)
844 return handle;
856 If the "handle" parameter is not a valid driver settings handle, or
863 settings_handle *handle = (settings_handle *)_handle;
867 if (!check_handle(handle) || !buffer || *_bufferSize == 0)
870 for (i = 0; i < handle->settings.parameter_count; i++) {
871 put_parameter(&buffer, &bufferSize, &handle->settings.parameters[i],
886 Also returns "unknownValue" if the handle passed in was not valid.
892 settings_handle *handle = (settings_handle*)_handle;
896 if (!check_handle(handle))
900 if ((parameter = get_parameter(handle, keyName)) == NULL)
933 settings_handle* handle = (settings_handle*)_handle;
936 if (!check_handle(handle))
940 if ((parameter = get_parameter(handle, keyName)) == NULL)
952 get_driver_settings(void *handle)
954 if (!check_handle((settings_handle*)handle))
957 return &((settings_handle *)handle)->settings;