Line data Source code
1 : /** 2 : * The MIT License (MIT) 3 : * 4 : * Copyright (c) 2021 RSK Labs Ltd 5 : * 6 : * Permission is hereby granted, free of charge, to any person obtaining a copy 7 : * of this software and associated documentation files (the "Software"), to 8 : * deal in the Software without restriction, including without limitation the 9 : * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or 10 : * sell copies of the Software, and to permit persons to whom the Software is 11 : * furnished to do so, subject to the following conditions: 12 : * 13 : * The above copyright notice and this permission notice shall be included in 14 : * all copies or substantial portions of the Software. 15 : * 16 : * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 : * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 : * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 19 : * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 : * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 21 : * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS 22 : * IN THE SOFTWARE. 23 : */ 24 : 25 : #include "ecall.h" 26 : 27 : #include "sync.h" 28 : 29 : #include "system.h" 30 : 31 : #include "hal/log.h" 32 : 33 3 : bool ecall_system_init(unsigned char *msg_buffer, size_t msg_buffer_size) { 34 3 : SYNC_AQUIRE_LOCK(false); 35 2 : bool success = system_init(msg_buffer, msg_buffer_size); 36 2 : SYNC_RELEASE_LOCK(); 37 2 : return success; 38 : } 39 : 40 2 : void ecall_system_finalise() { 41 2 : SYNC_AQUIRE_LOCK(); 42 1 : system_finalise(); 43 1 : SYNC_RELEASE_LOCK(); 44 : } 45 : 46 2 : unsigned int ecall_system_process_apdu(unsigned int rx) { 47 2 : SYNC_AQUIRE_LOCK(0); 48 1 : unsigned int result = system_process_apdu(rx); 49 1 : SYNC_RELEASE_LOCK(); 50 1 : return result; 51 : }