1081c7142b29ccd6e1744b26e097b6a4d7c12f2bdJesse Wilson/* 2081c7142b29ccd6e1744b26e097b6a4d7c12f2bdJesse Wilson * Copyright (C) 2011 The Android Open Source Project 3081c7142b29ccd6e1744b26e097b6a4d7c12f2bdJesse Wilson * 4081c7142b29ccd6e1744b26e097b6a4d7c12f2bdJesse Wilson * Licensed under the Apache License, Version 2.0 (the "License"); 5081c7142b29ccd6e1744b26e097b6a4d7c12f2bdJesse Wilson * you may not use this file except in compliance with the License. 6081c7142b29ccd6e1744b26e097b6a4d7c12f2bdJesse Wilson * You may obtain a copy of the License at 7081c7142b29ccd6e1744b26e097b6a4d7c12f2bdJesse Wilson * 8081c7142b29ccd6e1744b26e097b6a4d7c12f2bdJesse Wilson * http://www.apache.org/licenses/LICENSE-2.0 9081c7142b29ccd6e1744b26e097b6a4d7c12f2bdJesse Wilson * 10081c7142b29ccd6e1744b26e097b6a4d7c12f2bdJesse Wilson * Unless required by applicable law or agreed to in writing, software 11081c7142b29ccd6e1744b26e097b6a4d7c12f2bdJesse Wilson * distributed under the License is distributed on an "AS IS" BASIS, 12081c7142b29ccd6e1744b26e097b6a4d7c12f2bdJesse Wilson * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13081c7142b29ccd6e1744b26e097b6a4d7c12f2bdJesse Wilson * See the License for the specific language governing permissions and 14081c7142b29ccd6e1744b26e097b6a4d7c12f2bdJesse Wilson * limitations under the License. 15081c7142b29ccd6e1744b26e097b6a4d7c12f2bdJesse Wilson */ 16081c7142b29ccd6e1744b26e097b6a4d7c12f2bdJesse Wilson 17081c7142b29ccd6e1744b26e097b6a4d7c12f2bdJesse Wilsonpackage com.android.dx.dex; 18081c7142b29ccd6e1744b26e097b6a4d7c12f2bdJesse Wilson 19081c7142b29ccd6e1744b26e097b6a4d7c12f2bdJesse Wilsonpublic final class SizeOf { 20081c7142b29ccd6e1744b26e097b6a4d7c12f2bdJesse Wilson private SizeOf() {} 21081c7142b29ccd6e1744b26e097b6a4d7c12f2bdJesse Wilson 22081c7142b29ccd6e1744b26e097b6a4d7c12f2bdJesse Wilson public static final int UBYTE = 1; 23081c7142b29ccd6e1744b26e097b6a4d7c12f2bdJesse Wilson public static final int USHORT = 2; 24081c7142b29ccd6e1744b26e097b6a4d7c12f2bdJesse Wilson public static final int UINT = 4; 25081c7142b29ccd6e1744b26e097b6a4d7c12f2bdJesse Wilson 26081c7142b29ccd6e1744b26e097b6a4d7c12f2bdJesse Wilson public static final int SIGNATURE = UBYTE * 20; 27081c7142b29ccd6e1744b26e097b6a4d7c12f2bdJesse Wilson 28081c7142b29ccd6e1744b26e097b6a4d7c12f2bdJesse Wilson /** 29081c7142b29ccd6e1744b26e097b6a4d7c12f2bdJesse Wilson * magic ubyte[8] 30081c7142b29ccd6e1744b26e097b6a4d7c12f2bdJesse Wilson * checksum uint 31081c7142b29ccd6e1744b26e097b6a4d7c12f2bdJesse Wilson * signature ubyte[20] 32081c7142b29ccd6e1744b26e097b6a4d7c12f2bdJesse Wilson * file_size uint 33081c7142b29ccd6e1744b26e097b6a4d7c12f2bdJesse Wilson * header_size uint 34081c7142b29ccd6e1744b26e097b6a4d7c12f2bdJesse Wilson * endian_tag uint 35081c7142b29ccd6e1744b26e097b6a4d7c12f2bdJesse Wilson * link_size uint 36081c7142b29ccd6e1744b26e097b6a4d7c12f2bdJesse Wilson * link_off uint 37081c7142b29ccd6e1744b26e097b6a4d7c12f2bdJesse Wilson * map_off uint 38081c7142b29ccd6e1744b26e097b6a4d7c12f2bdJesse Wilson * string_ids_size uint 39081c7142b29ccd6e1744b26e097b6a4d7c12f2bdJesse Wilson * string_ids_off uint 40081c7142b29ccd6e1744b26e097b6a4d7c12f2bdJesse Wilson * type_ids_size uint 41081c7142b29ccd6e1744b26e097b6a4d7c12f2bdJesse Wilson * type_ids_off uint 42081c7142b29ccd6e1744b26e097b6a4d7c12f2bdJesse Wilson * proto_ids_size uint 43081c7142b29ccd6e1744b26e097b6a4d7c12f2bdJesse Wilson * proto_ids_off uint 44081c7142b29ccd6e1744b26e097b6a4d7c12f2bdJesse Wilson * field_ids_size uint 45081c7142b29ccd6e1744b26e097b6a4d7c12f2bdJesse Wilson * field_ids_off uint 46081c7142b29ccd6e1744b26e097b6a4d7c12f2bdJesse Wilson * method_ids_size uint 47081c7142b29ccd6e1744b26e097b6a4d7c12f2bdJesse Wilson * method_ids_off uint 48081c7142b29ccd6e1744b26e097b6a4d7c12f2bdJesse Wilson * class_defs_size uint 49081c7142b29ccd6e1744b26e097b6a4d7c12f2bdJesse Wilson * class_defs_off uint 50081c7142b29ccd6e1744b26e097b6a4d7c12f2bdJesse Wilson * data_size uint 51081c7142b29ccd6e1744b26e097b6a4d7c12f2bdJesse Wilson * data_off uint 52081c7142b29ccd6e1744b26e097b6a4d7c12f2bdJesse Wilson */ 53081c7142b29ccd6e1744b26e097b6a4d7c12f2bdJesse Wilson public static final int HEADER_ITEM = (8 * UBYTE) + UINT + SIGNATURE + (20 * UINT); // 0x70 54081c7142b29ccd6e1744b26e097b6a4d7c12f2bdJesse Wilson 55081c7142b29ccd6e1744b26e097b6a4d7c12f2bdJesse Wilson /** 56081c7142b29ccd6e1744b26e097b6a4d7c12f2bdJesse Wilson * string_data_off uint 57081c7142b29ccd6e1744b26e097b6a4d7c12f2bdJesse Wilson */ 58081c7142b29ccd6e1744b26e097b6a4d7c12f2bdJesse Wilson public static final int STRING_ID_ITEM = UINT; 59081c7142b29ccd6e1744b26e097b6a4d7c12f2bdJesse Wilson 60081c7142b29ccd6e1744b26e097b6a4d7c12f2bdJesse Wilson /** 61081c7142b29ccd6e1744b26e097b6a4d7c12f2bdJesse Wilson * descriptor_idx uint 62081c7142b29ccd6e1744b26e097b6a4d7c12f2bdJesse Wilson */ 63081c7142b29ccd6e1744b26e097b6a4d7c12f2bdJesse Wilson public static final int TYPE_ID_ITEM = UINT; 64081c7142b29ccd6e1744b26e097b6a4d7c12f2bdJesse Wilson 65081c7142b29ccd6e1744b26e097b6a4d7c12f2bdJesse Wilson /** 66081c7142b29ccd6e1744b26e097b6a4d7c12f2bdJesse Wilson * type_idx ushort 67081c7142b29ccd6e1744b26e097b6a4d7c12f2bdJesse Wilson */ 68081c7142b29ccd6e1744b26e097b6a4d7c12f2bdJesse Wilson public static final int TYPE_ITEM = USHORT; 69081c7142b29ccd6e1744b26e097b6a4d7c12f2bdJesse Wilson 70081c7142b29ccd6e1744b26e097b6a4d7c12f2bdJesse Wilson /** 71081c7142b29ccd6e1744b26e097b6a4d7c12f2bdJesse Wilson * shorty_idx uint 72081c7142b29ccd6e1744b26e097b6a4d7c12f2bdJesse Wilson * return_type_idx uint 73081c7142b29ccd6e1744b26e097b6a4d7c12f2bdJesse Wilson * return_type_idx uint 74081c7142b29ccd6e1744b26e097b6a4d7c12f2bdJesse Wilson */ 75081c7142b29ccd6e1744b26e097b6a4d7c12f2bdJesse Wilson public static final int PROTO_ID_ITEM = UINT + UINT + UINT; 76081c7142b29ccd6e1744b26e097b6a4d7c12f2bdJesse Wilson 77081c7142b29ccd6e1744b26e097b6a4d7c12f2bdJesse Wilson /** 78081c7142b29ccd6e1744b26e097b6a4d7c12f2bdJesse Wilson * class_idx ushort 79081c7142b29ccd6e1744b26e097b6a4d7c12f2bdJesse Wilson * type_idx/proto_idx ushort 80081c7142b29ccd6e1744b26e097b6a4d7c12f2bdJesse Wilson * name_idx uint 81081c7142b29ccd6e1744b26e097b6a4d7c12f2bdJesse Wilson */ 82081c7142b29ccd6e1744b26e097b6a4d7c12f2bdJesse Wilson public static final int MEMBER_ID_ITEM = USHORT + USHORT + UINT; 83081c7142b29ccd6e1744b26e097b6a4d7c12f2bdJesse Wilson 84081c7142b29ccd6e1744b26e097b6a4d7c12f2bdJesse Wilson /** 85081c7142b29ccd6e1744b26e097b6a4d7c12f2bdJesse Wilson * class_idx uint 86081c7142b29ccd6e1744b26e097b6a4d7c12f2bdJesse Wilson * access_flags uint 87081c7142b29ccd6e1744b26e097b6a4d7c12f2bdJesse Wilson * superclass_idx uint 88081c7142b29ccd6e1744b26e097b6a4d7c12f2bdJesse Wilson * interfaces_off uint 89081c7142b29ccd6e1744b26e097b6a4d7c12f2bdJesse Wilson * source_file_idx uint 90081c7142b29ccd6e1744b26e097b6a4d7c12f2bdJesse Wilson * annotations_off uint 91081c7142b29ccd6e1744b26e097b6a4d7c12f2bdJesse Wilson * class_data_off uint 92081c7142b29ccd6e1744b26e097b6a4d7c12f2bdJesse Wilson * static_values_off uint 93081c7142b29ccd6e1744b26e097b6a4d7c12f2bdJesse Wilson */ 94081c7142b29ccd6e1744b26e097b6a4d7c12f2bdJesse Wilson public static final int CLASS_DEF_ITEM = 8 * UINT; 95081c7142b29ccd6e1744b26e097b6a4d7c12f2bdJesse Wilson 96081c7142b29ccd6e1744b26e097b6a4d7c12f2bdJesse Wilson /** 97081c7142b29ccd6e1744b26e097b6a4d7c12f2bdJesse Wilson * type ushort 98081c7142b29ccd6e1744b26e097b6a4d7c12f2bdJesse Wilson * unused ushort 99081c7142b29ccd6e1744b26e097b6a4d7c12f2bdJesse Wilson * size uint 100081c7142b29ccd6e1744b26e097b6a4d7c12f2bdJesse Wilson * offset uint 101081c7142b29ccd6e1744b26e097b6a4d7c12f2bdJesse Wilson */ 102081c7142b29ccd6e1744b26e097b6a4d7c12f2bdJesse Wilson public static final int MAP_ITEM = USHORT + USHORT + UINT + UINT; 103081c7142b29ccd6e1744b26e097b6a4d7c12f2bdJesse Wilson} 104