⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 hal_file.h

📁 基于ARM和uC/OS-II实现的串口控制台
💻 H
字号:
#ifndef __HAL_FILE_H__
#define __HAL_FILE_H__


#include "hal_unistd_dev.h"
#include "../pub/hal_llist.h"
#include "../pub/hal_sem.h"

#include "../pub/hal_types.h"
//#include <hal_fcntl.h>
#define HAL_MAX_FD 20

#define STDIN_FILENO    0       /* standard input file descriptor */
#define STDOUT_FILENO   1       /* standard output file descriptor */
#define STDERR_FILENO   2       /* standard error file descriptor */

/*
 * 本头文件定义了用于内部使用的控制文件访问的信息
 */


/*
 * 函数 hal_find_dev() 用于使用name字符串从对应的设备链表list中查找出相应的设备
 * 如果发现合适的设备,则返回该器件结构变量对应的指针
 */
extern hal_dev* hal_find_dev (const char* name, hal_llist* list);


/*
 * hal_get_fd() 用于为设备(文件)dev分配文件描述符,返回值为负指出操作不成功
 * 如果成功,则返回文件描述符在文件描述符池中的索引。
 */
extern int hal_get_fd (hal_dev* dev);


/*
 * hal_release_fd() 用于释放索引为fd的文件描述符.
 */
extern void hal_release_fd (int fd);



/*
 * "hal_fd_list" 为文件描述符池.
 */
extern hal_fd hal_fd_list[];


/*
 * "hal_dev_list" 是注册的设备链表的头
 */
extern hal_llist hal_dev_list;


/*
 * "hal_fd_list_lock" 是一个用于保证访问文件描述符缓冲池安全的信号量
 */

HAL_EXTERN_SEM(hal_fd_list_lock)

/*
 * "hal_max_fd" 指出了文件描述符的最大个数
 */
extern hal_32 hal_max_fd;

/*
 * hal_io_redirect() 用于重定向stdout, stdin和 
 * stderr 到参数指定的器件中。 
 */
extern void hal_io_redirect(const char* stdout_dev, 
                            const char* stdin_dev, 
                            const char* stderr_dev);


#endif /* __HAL_FILE_H__ */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -