/*
 * Copyright (C) 2025 The Android Open Source Project
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

syntax = "proto2";

package android.memory;

option java_outer_classname = "MemoryEnums";
option java_multiple_files = true;

/**
 * Result of zram writeback attempt.
 *
 * Next tag: 12
 */
enum ZramWritebackResult {
    WRITEBACK_UNSPECIFIED = 0;
    WRITEBACK_NOT_SUPPORTED = 1;
    WRITEBACK_SUCCESS = 2;
    WRITEBACK_BACKOFF_TIME = 3;
    WRITEBACK_CALCULATE_IDLE_FAIL = 4;
    WRITEBACK_MARK_IDLE_FAIL = 5;
    WRITEBACK_TRIGGER_FAIL = 6;
    WRITEBACK_LIMIT = 7;
    WRITEBACK_INVALID_LIMIT = 8;
    WRITEBACK_ACCESS_WRITEBACK_LIMIT_FAIL = 9;
    WRITEBACK_LOAD_STATS_FAIL = 10;
    WRITEBACK_TRY_MARK_IDLE_AGAIN = 11;
}

/**
 * Result of zram recompression attempt.
 *
 * Next tag: 8
 */
enum ZramRecompressionResult {
    RECOMPRESSION_UNSPECIFIED = 0;
    RECOMPRESSION_NOT_SUPPORTED = 1;
    RECOMPRESSION_SUCCESS = 2;
    RECOMPRESSION_BACKOFF_TIME = 3;
    RECOMPRESSION_CALCULATE_IDLE_FAIL = 4;
    RECOMPRESSION_MARK_IDLE_FAIL = 5;
    RECOMPRESSION_TRIGGER_FAIL = 6;
    RECOMPRESSION_TRY_MARK_IDLE_AGAIN = 7;
}

/**
 * Result of zram setup attempt.
 *
 * Next tag: 8
 */
enum ZramSetupResult {
    ZRAM_SETUP_UNSPECIFIED = 0;
    ZRAM_SETUP_SUCCESS = 1;
    ZRAM_SETUP_CHECK_STATUS = 2;
    ZRAM_SETUP_ACTIVATED = 3;
    ZRAM_SETUP_PARSE_SPEC = 4;
    ZRAM_SETUP_UPDATE_DISK_SIZE_FAIL = 5;
    ZRAM_SETUP_SWAP_ON_FAIL = 6;
    ZRAM_SETUP_MK_SWAP_FAIL = 7;
}

/**
 * Result of zram compression algorithm update attempt.
 *
 * Next tag: 3
 */
enum ZramCompAlgorithmSetupResult {
    COMP_ALGORITHM_SETUP_UNSPECIFIED = 0;
    COMP_ALGORITHM_SETUP_SUCCESS = 1;
    COMP_ALGORITHM_SETUP_FAIL = 2;
}

/**
 * Result of zram writeback device setup attempt.
 *
 * Next tag: 12
 */
enum ZramWritebackSetupResult {
    WRITEBACK_SETUP_UNSPECIFIED = 0;
    WRITEBACK_SETUP_SUCCESS = 1;
    WRITEBACK_SETUP_CHECK_STATUS = 2;
    WRITEBACK_SETUP_NOT_SUPPORTED = 3;
    WRITEBACK_SETUP_ACTIVATED = 4;
    WRITEBACK_SETUP_PARSE_SPEC = 5;
    WRITEBACK_SETUP_DEVICE_SIZE_ZERO = 6;
    WRITEBACK_SETUP_SET_ACTUAL_DEVICE_SIZE_FAIL = 7;
    WRITEBACK_SETUP_CREATE_BACKING_FILE_FAIL = 8;
    WRITEBACK_SETUP_CREATE_BACKING_DEVICE_FAIL = 9;
    WRITEBACK_SETUP_SET_WRITEBACK_DEVICE_FAIL = 10;
    WRITEBACK_SETUP_WRITEBACK_LIMIT_ENABLE_FAIL = 11;
}

/**
 * Result of zram recompression setup attempt.
 *
 * Next tag: 6
 */
enum ZramRecompressionSetupResult {
    RECOMPRESSION_SETUP_UNSPECIFIED = 0;
    RECOMPRESSION_SETUP_SUCCESS = 1;
    RECOMPRESSION_SETUP_CHECK_STATUS = 2;
    RECOMPRESSION_SETUP_NOT_SUPPORTED = 3;
    RECOMPRESSION_SETUP_ACTIVATED = 4;
    RECOMPRESSION_SETUP_SET_RECOMP_ALGORITHM_FAIL = 5;
}
