13298bea7Sopenharmony_ci/*
23298bea7Sopenharmony_ci * Copyright (c) 2022 Huawei Device Co., Ltd.
33298bea7Sopenharmony_ci * SPDX-License-Identifier: GPL-2.0
43298bea7Sopenharmony_ci *
53298bea7Sopenharmony_ci * Unless required by applicable law or agreed to in writing, software
63298bea7Sopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS,
73298bea7Sopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
83298bea7Sopenharmony_ci * See the License for the specific language governing permissions and
93298bea7Sopenharmony_ci * limitations under the License.
103298bea7Sopenharmony_ci */
113298bea7Sopenharmony_ci
123298bea7Sopenharmony_ci#ifndef ACCESSTOKENIDCOMMON_H
133298bea7Sopenharmony_ci#define ACCESSTOKENIDCOMMON_H
143298bea7Sopenharmony_ci#include <cstddef>
153298bea7Sopenharmony_ci#include <cstdint>
163298bea7Sopenharmony_ci
173298bea7Sopenharmony_ci#define FUZZ_PROJECT_NAME "accesstokenidcommon"
183298bea7Sopenharmony_ci
193298bea7Sopenharmony_cinamespace OHOS {
203298bea7Sopenharmony_cinamespace Kernel {
213298bea7Sopenharmony_cinamespace AccessToken {
223298bea7Sopenharmony_ci#define ACCESS_TOKEN_ID_IOCTL_BASE    'A'
233298bea7Sopenharmony_ci
243298bea7Sopenharmony_ci#ifdef CMDERROR
253298bea7Sopenharmony_ci#define GET_TOKEN_ID    0
263298bea7Sopenharmony_ci#define SET_TOKEN_ID    0
273298bea7Sopenharmony_ci#define GET_GTOKEN_ID   0
283298bea7Sopenharmony_ci#define SET_GTOKEN_ID   0
293298bea7Sopenharmony_ci#else
303298bea7Sopenharmony_ci#define GET_TOKEN_ID    1
313298bea7Sopenharmony_ci#define SET_TOKEN_ID    2
323298bea7Sopenharmony_ci#define GET_GTOKEN_ID   3
333298bea7Sopenharmony_ci#define SET_GTOKEN_ID   4
343298bea7Sopenharmony_ci#endif
353298bea7Sopenharmony_ci
363298bea7Sopenharmony_ci#define ACCESS_TOKENID_GET_TOKENID \
373298bea7Sopenharmony_ci        _IOR(ACCESS_TOKEN_ID_IOCTL_BASE, GET_TOKEN_ID, unsigned long long)
383298bea7Sopenharmony_ci#define ACCESS_TOKENID_SET_TOKENID \
393298bea7Sopenharmony_ci        _IOW(ACCESS_TOKEN_ID_IOCTL_BASE, SET_TOKEN_ID, unsigned long long)
403298bea7Sopenharmony_ci#define ACCESS_TOKENID_GET_FTOKENID \
413298bea7Sopenharmony_ci        _IOR(ACCESS_TOKEN_ID_IOCTL_BASE, GET_GTOKEN_ID, unsigned long long)
423298bea7Sopenharmony_ci#define ACCESS_TOKENID_SET_FTOKENID \
433298bea7Sopenharmony_ci        _IOW(ACCESS_TOKEN_ID_IOCTL_BASE, SET_GTOKEN_ID, unsigned long long)
443298bea7Sopenharmony_ci
453298bea7Sopenharmony_ci#define LIST_NUM_1    1
463298bea7Sopenharmony_ci#define LIST_NUM_2    2
473298bea7Sopenharmony_ci#define TEST_VALUE    123
483298bea7Sopenharmony_ci#define CHILDREN_NUM    3
493298bea7Sopenharmony_ci#define WAIT_FOR_SHELL_OP_TIME    1
503298bea7Sopenharmony_ci#define FATHER_WAIT_TIME    (WAIT_FOR_SHELL_OP_TIME * (CHILDREN_NUM + 1))
513298bea7Sopenharmony_ci
523298bea7Sopenharmony_ci#define ACCESS_TOKEN_UID    3020
533298bea7Sopenharmony_ci#define ACCESS_TOKEN_GRPID  3020
543298bea7Sopenharmony_ci
553298bea7Sopenharmony_ci#define ACCESS_TOKEN_OTHER_UID      1234
563298bea7Sopenharmony_ci#define ACCESS_TOKEN_OTHER_GRPID    1234
573298bea7Sopenharmony_ci
583298bea7Sopenharmony_ci#define INVAL_TOKEN    0xffffffffffffffff
593298bea7Sopenharmony_ci
603298bea7Sopenharmony_ciint GetTokenid(unsigned long long *token);
613298bea7Sopenharmony_ciint SetTokenid(unsigned long long *token);
623298bea7Sopenharmony_ciint GetfTokenid(unsigned long long *ftoken);
633298bea7Sopenharmony_ciint SetfTokenid(unsigned long long *ftoken);
643298bea7Sopenharmony_ci
653298bea7Sopenharmony_civoid SetUidAndGrp();
663298bea7Sopenharmony_civoid SetUidAndGrpOther();
673298bea7Sopenharmony_civoid GetCurToken(unsigned long long *token);
683298bea7Sopenharmony_civoid SetRandTokenAndCheck(const unsigned long long *dataToken);
693298bea7Sopenharmony_civoid TokenTest(unsigned long long *dataToken);
703298bea7Sopenharmony_civoid ThreadTest(unsigned long long *dataToken);
713298bea7Sopenharmony_ciint AccessTokenidThreadTest(uint8_t *dataToken);
723298bea7Sopenharmony_ciint AccessTokenidGrpTest(uint8_t *dataToken);
733298bea7Sopenharmony_ciint AccessTokenidGrpTestOther(uint8_t *dataToken);
743298bea7Sopenharmony_ci
753298bea7Sopenharmony_civoid GetCurfToken(unsigned long long *ftoken);
763298bea7Sopenharmony_civoid SetRandfTokenAndCheck(const unsigned long long *dataFtoken);
773298bea7Sopenharmony_civoid FTokenTest(unsigned long long *dataFtoken);
783298bea7Sopenharmony_civoid ThreadTest(unsigned long long *dataFtoken);
793298bea7Sopenharmony_ciint AccessfTokenidThreadTest(uint8_t *dataFtoken);
803298bea7Sopenharmony_ciint AccessfTokenidGrpTest(uint8_t *dataFtoken);
813298bea7Sopenharmony_ciint AccessfTokenidGrpTestOther(uint8_t *dataFtoken);
823298bea7Sopenharmony_cibool SetfTokenidCmdFuzzTest(const uint8_t *data, size_t size);
833298bea7Sopenharmony_cibool GetfTokenidCmdFuzzTest(const uint8_t *data, size_t size);
843298bea7Sopenharmony_cibool SetTokenidCmdFuzzTest(const uint8_t *data, size_t size);
853298bea7Sopenharmony_cibool GetTokenidCmdFuzzTest(const uint8_t *data, size_t size);
863298bea7Sopenharmony_ci} // namespace AccessToken
873298bea7Sopenharmony_ci} // namespace Kernel
883298bea7Sopenharmony_ci} // namespace OHOS
893298bea7Sopenharmony_ci
903298bea7Sopenharmony_ci#endif // ACCESSTOKENIDCOMMON_H
91