101 lines
3.4 KiB
C
Executable File
101 lines
3.4 KiB
C
Executable File
/*
|
|
* Copyright (c) 2020-2021 Huawei Device Co., Ltd.
|
|
* 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.
|
|
*/
|
|
|
|
#ifndef KERNEL_CONSTANTS_H
|
|
#define KERNEL_CONSTANTS_H
|
|
|
|
#include <unistd.h>
|
|
|
|
/**
|
|
* ================ DAC and Caps ================
|
|
*/
|
|
const uid_t SHELL_UID = 2;
|
|
const uid_t SHELL_GID = 2;
|
|
|
|
|
|
/**
|
|
* ================ Process Manager ================
|
|
*/
|
|
#define MAX_PROCESS_GROUPS 255 // max number of groups a process can have
|
|
#define MAX_PROCESS_NUMBER 63 // max allowd process [0,63]
|
|
#define MAX_TASK_NUMBER 128 // max allowd task(process+thread)
|
|
|
|
#define INIT_PROCESS_ID 1 // pid of init
|
|
#define KERNEL_PROCESS_ID 2 // pid of KProcess
|
|
|
|
#define HIGHEST_USER_PROCESS_PRIORITY 10
|
|
#define LOWEST_USER_PROCESS_PRIORITY 31
|
|
#define HIGHEST_USER_THREAD_PRIORITY 0
|
|
#define LOWEST_USER_THREAD_PRIORITY 31
|
|
|
|
#define DEFAULT_SHELL_PROCESS_PRIORITY 15
|
|
#define DEFAULT_INIT_PROCESS_PRIORITY 28
|
|
#define DEFAULT_KERNEL_PROCESS_PRIORITY 0
|
|
#define DEFAULT_THREAD_PRIORITY 25
|
|
#define DEFAULT_RR_SCHED_INTERVAL 5000000 // defalult sched interval of RR, in ms
|
|
|
|
/**
|
|
* ================ Memory Manager ================
|
|
*/
|
|
typedef unsigned long addr_t;
|
|
|
|
#define USER_ASPACE_BASE ((addr_t)0x01000000UL)
|
|
#define USER_ASPACE_TOP_MAX ((addr_t)0x3FFFFFFFUL)
|
|
#define USER_ASPACE_SIZE ((addr_t)(USER_ASPACE_TOP_MAX - USER_ASPACE_BASE))
|
|
#define USER_HEAP_BASE ((addr_t)(USER_ASPACE_TOP_MAX >> 2))
|
|
#define USER_MAP_BASE ((addr_t)(USER_ASPACE_TOP_MAX >> 1))
|
|
#define USER_MAP_SIZE ((addr_t)(USER_ASPACE_SIZE >> 3))
|
|
|
|
#ifndef PAGE_SIZE
|
|
#define PAGE_SIZE 0x1000U
|
|
#endif
|
|
#define PAGE_MASK (~(PAGE_SIZE - 1))
|
|
#define PAGE_SHIFT 12
|
|
|
|
#define MEM_PAGESTART(addr) ((addr) & ~(PAGE_SIZE - 1))
|
|
#define MEM_PAGEOFFSET(addr) ((addr) & (PAGE_SIZE - 1))
|
|
#define MEM_PAGEALIGN(addr) (((addr) + PAGE_SIZE - 1) & ~(PAGE_SIZE - 1))
|
|
|
|
|
|
/**
|
|
* ================ IPC ================
|
|
*/
|
|
const int MAX_SIGNAL_NUMBER = 64; // max number of allowed signal, [1,64]
|
|
const int MAX_PIPE_BUFFER = 1023; // max size of a pipe buffer
|
|
const int MAX_PIPE_NUMBER = 32; // max pipe number
|
|
|
|
const int MAX_MQ_NUMBER = 256; // max mqueue number
|
|
const int MAX_MQ_NAME_LEN = 2560; // max mqueue name length
|
|
const int MAX_MQ_MSG_SIZE = 65530; // max mqueue message size
|
|
|
|
|
|
/**
|
|
* ================ FS ================
|
|
*/
|
|
const int MAX_PATH_SIZE = 256; // max size of path string
|
|
|
|
/**
|
|
* ================ SYSTEM ================
|
|
*/
|
|
#define SYSINFO_SYSNAME "Huawei LiteOS" // sys name from 'uname'
|
|
|
|
/**
|
|
* ================ XTS ================
|
|
*/
|
|
#define RES_DIR_KERNEL "/test_root/kernel/" // top dir of test resource of kernel
|
|
#define WRITABLE_TEST_DIR "/storage/" // writable dir for test file
|
|
|
|
#endif
|