1*adcb0a62SAndroid Build Coastguard Worker /* 2*adcb0a62SAndroid Build Coastguard Worker * Copyright (C) 2020 The Android Open Source Project 3*adcb0a62SAndroid Build Coastguard Worker * 4*adcb0a62SAndroid Build Coastguard Worker * Licensed under the Apache License, Version 2.0 (the "License"); 5*adcb0a62SAndroid Build Coastguard Worker * you may not use this file except in compliance with the License. 6*adcb0a62SAndroid Build Coastguard Worker * You may obtain a copy of the License at 7*adcb0a62SAndroid Build Coastguard Worker * 8*adcb0a62SAndroid Build Coastguard Worker * http://www.apache.org/licenses/LICENSE-2.0 9*adcb0a62SAndroid Build Coastguard Worker * 10*adcb0a62SAndroid Build Coastguard Worker * Unless required by applicable law or agreed to in writing, software 11*adcb0a62SAndroid Build Coastguard Worker * distributed under the License is distributed on an "AS IS" BASIS, 12*adcb0a62SAndroid Build Coastguard Worker * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13*adcb0a62SAndroid Build Coastguard Worker * See the License for the specific language governing permissions and 14*adcb0a62SAndroid Build Coastguard Worker * limitations under the License. 15*adcb0a62SAndroid Build Coastguard Worker */ 16*adcb0a62SAndroid Build Coastguard Worker 17*adcb0a62SAndroid Build Coastguard Worker #pragma once 18*adcb0a62SAndroid Build Coastguard Worker 19*adcb0a62SAndroid Build Coastguard Worker #include <stdint.h> 20*adcb0a62SAndroid Build Coastguard Worker 21*adcb0a62SAndroid Build Coastguard Worker enum ZipError : int32_t { 22*adcb0a62SAndroid Build Coastguard Worker kSuccess = 0, 23*adcb0a62SAndroid Build Coastguard Worker 24*adcb0a62SAndroid Build Coastguard Worker kIterationEnd = -1, 25*adcb0a62SAndroid Build Coastguard Worker 26*adcb0a62SAndroid Build Coastguard Worker // We encountered a Zlib error when inflating a stream from this file. 27*adcb0a62SAndroid Build Coastguard Worker // Usually indicates file corruption. 28*adcb0a62SAndroid Build Coastguard Worker kZlibError = -2, 29*adcb0a62SAndroid Build Coastguard Worker 30*adcb0a62SAndroid Build Coastguard Worker // The input file cannot be processed as a zip archive. Usually because 31*adcb0a62SAndroid Build Coastguard Worker // it's too small, too large or does not have a valid signature. 32*adcb0a62SAndroid Build Coastguard Worker kInvalidFile = -3, 33*adcb0a62SAndroid Build Coastguard Worker 34*adcb0a62SAndroid Build Coastguard Worker // An invalid iteration / ziparchive handle was passed in as an input 35*adcb0a62SAndroid Build Coastguard Worker // argument. 36*adcb0a62SAndroid Build Coastguard Worker kInvalidHandle = -4, 37*adcb0a62SAndroid Build Coastguard Worker 38*adcb0a62SAndroid Build Coastguard Worker // The zip archive contained two (or possibly more) entries with the same 39*adcb0a62SAndroid Build Coastguard Worker // name. 40*adcb0a62SAndroid Build Coastguard Worker kDuplicateEntry = -5, 41*adcb0a62SAndroid Build Coastguard Worker 42*adcb0a62SAndroid Build Coastguard Worker // The zip archive contains no entries. 43*adcb0a62SAndroid Build Coastguard Worker kEmptyArchive = -6, 44*adcb0a62SAndroid Build Coastguard Worker 45*adcb0a62SAndroid Build Coastguard Worker // The specified entry was not found in the archive. 46*adcb0a62SAndroid Build Coastguard Worker kEntryNotFound = -7, 47*adcb0a62SAndroid Build Coastguard Worker 48*adcb0a62SAndroid Build Coastguard Worker // The zip archive contained an invalid local file header pointer. 49*adcb0a62SAndroid Build Coastguard Worker kInvalidOffset = -8, 50*adcb0a62SAndroid Build Coastguard Worker 51*adcb0a62SAndroid Build Coastguard Worker // The zip archive contained inconsistent entry information. This could 52*adcb0a62SAndroid Build Coastguard Worker // be because the central directory & local file header did not agree, or 53*adcb0a62SAndroid Build Coastguard Worker // if the actual uncompressed length or crc32 do not match their declared 54*adcb0a62SAndroid Build Coastguard Worker // values. 55*adcb0a62SAndroid Build Coastguard Worker kInconsistentInformation = -9, 56*adcb0a62SAndroid Build Coastguard Worker 57*adcb0a62SAndroid Build Coastguard Worker // An invalid entry name was encountered. 58*adcb0a62SAndroid Build Coastguard Worker kInvalidEntryName = -10, 59*adcb0a62SAndroid Build Coastguard Worker 60*adcb0a62SAndroid Build Coastguard Worker // An I/O related system call (read, lseek, ftruncate, map) failed. 61*adcb0a62SAndroid Build Coastguard Worker kIoError = -11, 62*adcb0a62SAndroid Build Coastguard Worker 63*adcb0a62SAndroid Build Coastguard Worker // We were not able to mmap the central directory or entry contents. 64*adcb0a62SAndroid Build Coastguard Worker kMmapFailed = -12, 65*adcb0a62SAndroid Build Coastguard Worker 66*adcb0a62SAndroid Build Coastguard Worker // An allocation failed. 67*adcb0a62SAndroid Build Coastguard Worker kAllocationFailed = -13, 68*adcb0a62SAndroid Build Coastguard Worker 69*adcb0a62SAndroid Build Coastguard Worker // The compressed or uncompressed size is larger than UINT32_MAX and 70*adcb0a62SAndroid Build Coastguard Worker // doesn't fit into the 32 bits zip entry. 71*adcb0a62SAndroid Build Coastguard Worker kUnsupportedEntrySize = -14, 72*adcb0a62SAndroid Build Coastguard Worker 73*adcb0a62SAndroid Build Coastguard Worker kLastErrorCode = kUnsupportedEntrySize, 74*adcb0a62SAndroid Build Coastguard Worker }; 75