1 /* 2 * Some or all of this work - Copyright (c) 2006 - 2021, Intel Corp. 3 * All rights reserved. 4 * 5 * Redistribution and use in source and binary forms, with or without modification, 6 * are permitted provided that the following conditions are met: 7 * 8 * Redistributions of source code must retain the above copyright notice, 9 * this list of conditions and the following disclaimer. 10 * Redistributions in binary form must reproduce the above copyright notice, 11 * this list of conditions and the following disclaimer in the documentation 12 * and/or other materials provided with the distribution. 13 * Neither the name of Intel Corporation nor the names of its contributors 14 * may be used to endorse or promote products derived from this software 15 * without specific prior written permission. 16 * 17 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 18 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 19 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 20 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE 21 * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 22 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 23 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 24 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING 25 * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, 26 * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 27 */ 28 /* 29 * Data type conversion and manipulation 30 * 31 * Convert Integer to BCD 32 * Convert BCD To Integer 33 */ 34 /* 32-bit */ 35 Name (P352, Package (0x0C) 36 { 37 0x00, 38 0x01, 39 0x0C, 40 0x0159, 41 0x1A85, 42 0x3039, 43 0x000A5BF5, 44 0x0023CACE, 45 0x055F2CC0, 46 0x05F5E0FF, 47 0xFF, 48 0xFFFF 49 }) 50 Name (P353, Package (0x0C) 51 { 52 0x00, 53 0x01, 54 0x12, 55 0x0345, 56 0x6789, 57 0x00012345, 58 0x00678901, 59 0x02345678, 60 0x90123456, 61 0x99999999, 62 0x0255, 63 0x00065535 64 }) 65 /* 64-bit */ 66 67 Name (P354, Package (0x0A) 68 { 69 0x1E89CAA5, 70 0x00000002540BE3FF, 71 0x00000002540BE400, 72 0x00000007037F7916, 73 0x0000001CBE991A14, 74 0x00000324D8AE5F79, 75 0x0000185D4D9097A5, 76 0x00007048860DDF79, 77 0x000D76162EE9EC35, 78 0x002386F26FC0FFFF 79 }) 80 Name (P355, Package (0x0A) 81 { 82 0x0000000512346789, 83 0x0000009999999999, 84 0x0000010000000000, 85 0x0000030123456790, 86 0x0000123456789012, 87 0x0003456789012345, 88 0x0026789012346789, 89 0x0123456789012345, 90 0x3789012345678901, 91 0x9999999999999999 92 }) 93 Method (BCD1, 0, Serialized) 94 { 95 Debug = "TEST: BCD1, Convert Integer to BCD" 96 If ((F64 == 0x01)) 97 { 98 M302 (__METHOD__, 0x0C, "p352", P352, P353, 0x05) 99 M302 (__METHOD__, 0x0A, "p354", P354, P355, 0x05) 100 } 101 Else 102 { 103 M302 (__METHOD__, 0x0C, "p352", P352, P353, 0x05) 104 } 105 } 106 107 Method (BCD2, 0, Serialized) 108 { 109 Debug = "TEST: BCD2, Convert BCD To Integer" 110 If ((F64 == 0x01)) 111 { 112 M302 (__METHOD__, 0x0C, "p353", P353, P352, 0x06) 113 M302 (__METHOD__, 0x0A, "p355", P355, P354, 0x06) 114 } 115 Else 116 { 117 M302 (__METHOD__, 0x0C, "p353", P353, P352, 0x06) 118 } 119 } 120 121 /* Run-method */ 122 123 Method (BCD0, 0, NotSerialized) 124 { 125 BCD1 () 126 BCD2 () 127 } 128