1aea4c1cea20dda7ae7e85fc8924a2d784f70d806Alex Deymo//
2aea4c1cea20dda7ae7e85fc8924a2d784f70d806Alex Deymo// Copyright (C) 2014 The Android Open Source Project
3aea4c1cea20dda7ae7e85fc8924a2d784f70d806Alex Deymo//
4aea4c1cea20dda7ae7e85fc8924a2d784f70d806Alex Deymo// Licensed under the Apache License, Version 2.0 (the "License");
5aea4c1cea20dda7ae7e85fc8924a2d784f70d806Alex Deymo// you may not use this file except in compliance with the License.
6aea4c1cea20dda7ae7e85fc8924a2d784f70d806Alex Deymo// You may obtain a copy of the License at
7aea4c1cea20dda7ae7e85fc8924a2d784f70d806Alex Deymo//
8aea4c1cea20dda7ae7e85fc8924a2d784f70d806Alex Deymo//      http://www.apache.org/licenses/LICENSE-2.0
9aea4c1cea20dda7ae7e85fc8924a2d784f70d806Alex Deymo//
10aea4c1cea20dda7ae7e85fc8924a2d784f70d806Alex Deymo// Unless required by applicable law or agreed to in writing, software
11aea4c1cea20dda7ae7e85fc8924a2d784f70d806Alex Deymo// distributed under the License is distributed on an "AS IS" BASIS,
12aea4c1cea20dda7ae7e85fc8924a2d784f70d806Alex Deymo// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13aea4c1cea20dda7ae7e85fc8924a2d784f70d806Alex Deymo// See the License for the specific language governing permissions and
14aea4c1cea20dda7ae7e85fc8924a2d784f70d806Alex Deymo// limitations under the License.
15aea4c1cea20dda7ae7e85fc8924a2d784f70d806Alex Deymo//
16161c4a132743f15fc4757112b673085c2a7a7f29Alex Deymo
1739910dcd1d68987ccee7c3031dc269233a8490bbAlex Deymo#include "update_engine/payload_consumer/payload_constants.h"
18161c4a132743f15fc4757112b673085c2a7a7f29Alex Deymo
19161c4a132743f15fc4757112b673085c2a7a7f29Alex Deymonamespace chromeos_update_engine {
20161c4a132743f15fc4757112b673085c2a7a7f29Alex Deymo
21cbf09896be9a627cd04dd54ef6875bed88daa3d8Alex Deymoconst uint64_t kChromeOSMajorPayloadVersion = 1;
22cbf09896be9a627cd04dd54ef6875bed88daa3d8Alex Deymoconst uint64_t kBrilloMajorPayloadVersion = 2;
23cbf09896be9a627cd04dd54ef6875bed88daa3d8Alex Deymo
24cbf09896be9a627cd04dd54ef6875bed88daa3d8Alex Deymoconst uint32_t kFullPayloadMinorVersion = 0;
25cbf09896be9a627cd04dd54ef6875bed88daa3d8Alex Deymoconst uint32_t kInPlaceMinorPayloadVersion = 1;
26cbf09896be9a627cd04dd54ef6875bed88daa3d8Alex Deymoconst uint32_t kSourceMinorPayloadVersion = 2;
2782352f97b4621dbf6af8308ff0b0b17b0968b53aSen Jiangconst uint32_t kOpSrcHashMinorPayloadVersion = 3;
2890c57d7d59e350065da2dc973d359c28f613e95cAmin Hassaniconst uint32_t kBrotliBsdiffMinorPayloadVersion = 4;
2990c57d7d59e350065da2dc973d359c28f613e95cAmin Hassaniconst uint32_t kPuffdiffMinorPayloadVersion = 5;
30cbf09896be9a627cd04dd54ef6875bed88daa3d8Alex Deymo
319c89e8499abeac3894718120d12b41301ffa3fc1Sen Jiangconst uint64_t kMaxPayloadHeaderSize = 24;
329c89e8499abeac3894718120d12b41301ffa3fc1Sen Jiang
3370a6ab091beb261a501012bc09955de452dd4736Sen Jiangconst char kLegacyPartitionNameKernel[] = "boot";
3470a6ab091beb261a501012bc09955de452dd4736Sen Jiangconst char kLegacyPartitionNameRoot[] = "system";
3570a6ab091beb261a501012bc09955de452dd4736Sen Jiang
36b8060e435f0edb8efef4891a99fa18f642e01aa2Sen Jiangconst char kDeltaMagic[4] = {'C', 'r', 'A', 'U'};
37161c4a132743f15fc4757112b673085c2a7a7f29Alex Deymo
382d621a3cf2da7ff3b2a178594cb97ada6c4350d3Alex Deymoconst char* InstallOperationTypeName(InstallOperation_Type op_type) {
392d621a3cf2da7ff3b2a178594cb97ada6c4350d3Alex Deymo  switch (op_type) {
402d621a3cf2da7ff3b2a178594cb97ada6c4350d3Alex Deymo    case InstallOperation::BSDIFF:
412d621a3cf2da7ff3b2a178594cb97ada6c4350d3Alex Deymo      return "BSDIFF";
422d621a3cf2da7ff3b2a178594cb97ada6c4350d3Alex Deymo    case InstallOperation::MOVE:
432d621a3cf2da7ff3b2a178594cb97ada6c4350d3Alex Deymo      return "MOVE";
442d621a3cf2da7ff3b2a178594cb97ada6c4350d3Alex Deymo    case InstallOperation::REPLACE:
452d621a3cf2da7ff3b2a178594cb97ada6c4350d3Alex Deymo      return "REPLACE";
462d621a3cf2da7ff3b2a178594cb97ada6c4350d3Alex Deymo    case InstallOperation::REPLACE_BZ:
472d621a3cf2da7ff3b2a178594cb97ada6c4350d3Alex Deymo      return "REPLACE_BZ";
482d621a3cf2da7ff3b2a178594cb97ada6c4350d3Alex Deymo    case InstallOperation::SOURCE_COPY:
492d621a3cf2da7ff3b2a178594cb97ada6c4350d3Alex Deymo      return "SOURCE_COPY";
502d621a3cf2da7ff3b2a178594cb97ada6c4350d3Alex Deymo    case InstallOperation::SOURCE_BSDIFF:
512d621a3cf2da7ff3b2a178594cb97ada6c4350d3Alex Deymo      return "SOURCE_BSDIFF";
522d621a3cf2da7ff3b2a178594cb97ada6c4350d3Alex Deymo    case InstallOperation::ZERO:
532d621a3cf2da7ff3b2a178594cb97ada6c4350d3Alex Deymo      return "ZERO";
542d621a3cf2da7ff3b2a178594cb97ada6c4350d3Alex Deymo    case InstallOperation::DISCARD:
552d621a3cf2da7ff3b2a178594cb97ada6c4350d3Alex Deymo      return "DISCARD";
562d621a3cf2da7ff3b2a178594cb97ada6c4350d3Alex Deymo    case InstallOperation::REPLACE_XZ:
572d621a3cf2da7ff3b2a178594cb97ada6c4350d3Alex Deymo      return "REPLACE_XZ";
585ef5d4561dbc40c128d1e9bbd8e2da525adcf581Amin Hassani    case InstallOperation::PUFFDIFF:
595ef5d4561dbc40c128d1e9bbd8e2da525adcf581Amin Hassani      return "PUFFDIFF";
60efa62d959cf8f225477ab85d8ff42d5150007cf8Amin Hassani    case InstallOperation::BROTLI_BSDIFF:
61efa62d959cf8f225477ab85d8ff42d5150007cf8Amin Hassani      return "BROTLI_BSDIFF";
622d621a3cf2da7ff3b2a178594cb97ada6c4350d3Alex Deymo  }
632d621a3cf2da7ff3b2a178594cb97ada6c4350d3Alex Deymo  return "<unknown_op>";
642d621a3cf2da7ff3b2a178594cb97ada6c4350d3Alex Deymo}
652d621a3cf2da7ff3b2a178594cb97ada6c4350d3Alex Deymo
66161c4a132743f15fc4757112b673085c2a7a7f29Alex Deymo};  // namespace chromeos_update_engine
67