提交 6e8ad1b3 编写于 作者: 鸿蒙内核源码分析's avatar 鸿蒙内核源码分析

完善远程登录注释

    百万汉字注解 + 百篇博客分析 => 挖透鸿蒙内核源码
    鸿蒙研究站 | http://weharmonyos.com (国内)
              | https://weharmony.github.io (国外)
    oschina | https://my.oschina.net/weharmony
    博客园 | https://www.cnblogs.com/weharmony/
    知乎 | https://www.zhihu.com/people/weharmonyos
    csdn | https://blog.csdn.net/kuangyufei
    51cto | https://harmonyos.51cto.com/column/34
    掘金 | https://juejin.cn/user/756888642000808
    公众号 | 鸿蒙研究站 (weharmonyos)
上级 ca08de32
......@@ -112,7 +112,7 @@ LITE_OS_SEC_TEXT_MINOR UINT8 *OsShellCmdProcessMode(UINT16 mode)
return (UINT8 *)"ERROR";
}
/// 获取调度方式的名称
LITE_OS_SEC_TEXT_MINOR UINT8 *OsShellCmdSchedPolicy(UINT16 policy)
{
if (policy == LOS_SCHED_RR) {
......@@ -125,7 +125,7 @@ LITE_OS_SEC_TEXT_MINOR UINT8 *OsShellCmdSchedPolicy(UINT16 policy)
return (UINT8 *)"ERROR";
}
/// 获取状态名称
LITE_OS_SEC_TEXT_MINOR UINT8 *OsShellProcessStatus(UINT16 status)
{
status = status & OS_PROCESS_STATUS_MASK;
......
......@@ -296,7 +296,7 @@ LosVmPage *OsVmVaddrToPage(VOID *ptr)
return NULL;
}
/// 回收一定范围内的页框
STATIC INLINE VOID OsVmRecycleExtraPages(LosVmPage *page, size_t startPage, size_t endPage)
{
if (startPage >= endPage) {
......
......@@ -61,11 +61,11 @@ typedef struct {
} TELNTE_FIFO_S;
//远程登录设备结构体
typedef struct {
INT32 clientFd; ///< 客户端文件句柄
INT32 clientFd; ///< 打开终端文件句柄
UINT32 id;
BOOL eventPend; ///< 任务是否处于挂起
EVENT_CB_S eventTelnet; ///< 远程登录事件
wait_queue_head_t wait;
wait_queue_head_t wait; ///< 等待队列
TELNTE_FIFO_S *cmdFifo; /* use a FIFO to store user's commands | 使用先进先出保存用户的命令*/
} TELNET_DEV_S;
......
......@@ -144,7 +144,7 @@ STATIC INT32 TelnetOpen(struct file *file)
TelnetLock();
telnetDev = GetTelnetDevByFile(file, TRUE);
telnetDev = GetTelnetDevByFile(file, TRUE);//获取标准file私有数据
if (telnetDev == NULL) {
TelnetUnlock();
return -1;
......@@ -152,7 +152,7 @@ STATIC INT32 TelnetOpen(struct file *file)
if (telnetDev->cmdFifo == NULL) {
wait = &telnetDev->wait;
(VOID)LOS_EventInit(&telnetDev->eventTelnet);
(VOID)LOS_EventInit(&telnetDev->eventTelnet);//初始化事件
g_event = &telnetDev->eventTelnet;
telnetDev->cmdFifo = (TELNTE_FIFO_S *)malloc(sizeof(TELNTE_FIFO_S));
if (telnetDev->cmdFifo == NULL) {
......@@ -335,7 +335,7 @@ STATIC INT32 TelnetPoll(struct file *file, poll_table *table)
TelnetUnlock();
return 0;
}
//远程登录操作命令,一般供 Shell 使用
//远程登录操作命令
STATIC const struct file_operations_vfs g_telnetOps = {
TelnetOpen,
TelnetClose,
......
......@@ -336,12 +336,12 @@ STATIC INT32 TelnetdInit(UINT16 port)
inTelnetAddr.sin_family = AF_INET;
inTelnetAddr.sin_addr.s_addr = INADDR_ANY;
inTelnetAddr.sin_port = htons(port);
//绑定端口
if (bind(listenFd, (const struct sockaddr *)&inTelnetAddr, sizeof(struct sockaddr_in)) == -1) {
PRINT_ERR("TelnetdInit : bind error.\n");
goto ERR_CLOSE_FD;
}
//监听端口数据
if (listen(listenFd, TELNET_LISTEN_BACKLOG) == -1) {
PRINT_ERR("TelnetdInit : listen error.\n");
goto ERR_CLOSE_FD;
......@@ -609,15 +609,15 @@ STATIC INT32 TelnetdMain(VOID)
{
INT32 sock;
INT32 ret;
//1.初始化
sock = TelnetdInit(TELNETD_PORT);//创建 socket ,socket的本质就是打开了一个虚拟文件
sock = TelnetdInit(TELNETD_PORT);//1.初始化 创建 socket ,socket的本质就是打开了一个虚拟文件
if (sock == -1) {
PRINT_ERR("telnet init error.\n");
return -1;
}
//2.注册
TelnetLock();
ret = TelnetedRegister();//注册驱动程序 /dev/telnet ,ops
ret = TelnetedRegister();//2.注册驱动程序 /dev/telnet ,g_telnetOps g_telnetDev
TelnetUnlock();
if (ret != 0) {
......@@ -625,9 +625,9 @@ STATIC INT32 TelnetdMain(VOID)
(VOID)close(sock);
return -1;
}
//3.等待连接,处理远程终端过来的命令 例如#task 命令
PRINTK("start telnet server successfully, waiting for connection.\n");
TelnetdAcceptLoop(sock);
TelnetdAcceptLoop(sock);//3.等待连接,处理远程终端过来的命令 例如#task 命令
return 0;
}
......@@ -654,7 +654,7 @@ STATIC VOID TelnetdTaskInit(VOID)
initParam.usTaskPrio = TELNET_TASK_PRIORITY; //优先级 9,和 shell 的优先级一样
initParam.uwResved = LOS_TASK_STATUS_DETACHED; //独立模式
if (atomic_read(&g_telnetTaskId) != 0) {
if (atomic_read(&g_telnetTaskId) != 0) {//只支持一个 telnet 服务任务
PRINT_ERR("telnet server is already running!\n");
return;
}
......@@ -688,7 +688,7 @@ STATIC VOID TelnetUsage(VOID)
PRINTK(" on Init the telnet server\n");
PRINTK(" off Deinit the telnet server\n");
}
/// 远程登录命令处理
/// 本命令用于启动或关闭telnet server服务
INT32 TelnetCmd(UINT32 argc, const CHAR **argv)
{
if (argc != 1) {
......@@ -696,12 +696,12 @@ INT32 TelnetCmd(UINT32 argc, const CHAR **argv)
return 0;
}
if (strcmp(argv[0], "on") == 0) {
if (strcmp(argv[0], "on") == 0) {// 输入 telnet on
/* telnet on: try to start telnet server task */
TelnetdTaskInit(); //启动远程登录 服务端任务
return 0;
}
if (strcmp(argv[0], "off") == 0) {
if (strcmp(argv[0], "off") == 0) {// 输入 telnet off
/* telnet off: try to stop clients, then stop server task */
TelnetdTaskDeinit();//关闭所有的客户端,并关闭服务端任务
return 0;
......
git add -A
git commit -m ' 同步官方代码
git commit -m ' 完善远程登录注释
百万汉字注解 + 百篇博客分析 => 挖透鸿蒙内核源码
鸿蒙研究站 | http://weharmonyos.com (国内)
| https://weharmony.github.io (国外)
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册