/* * Copyright (c) 2000 - 2017 Samsung Electronics Co., Ltd. * * Contact: MyoungJune Park * Created by Wonil Choi * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * */ #include #include #include #include #include #include #include #include "ccerror.h" #define PARAM_CC_ENC_RAW_SIZE 64 #define PARAM_CC_FLAG_OFFSET 0x800 static const char dev_params[] = { "/dev/disk/by-partlabel/param" }; int resetSBFCCM(void) { int ret, fd; uint8_t eraw[PARAM_CC_ENC_RAW_SIZE]; memset(eraw, 0, PARAM_CC_ENC_RAW_SIZE); if ((fd = open(dev_params, O_WRONLY)) == -1) { ret = -CC_ERROR_UTIL_RESETSBFCCM; goto open_fail; } if (lseek(fd, -(PARAM_CC_FLAG_OFFSET), SEEK_END) == -1) { ret = -(CC_ERROR_UTIL_RESETSBFCCM + 2); goto out; } if (write(fd, eraw, PARAM_CC_ENC_RAW_SIZE) != PARAM_CC_ENC_RAW_SIZE) { ret = -(CC_ERROR_UTIL_RESETSBFCCM + 3); goto out; } ret = CC_ERROR_NONE; out: close(fd); open_fail: return ret; } int main(void) { int ret = resetSBFCCM(); printf("resetSBFCCM() returns %d\n", ret); return ret; }