Files
rt-thread/components/drivers/serial/device/virtual/psf.h
T
GuEe-GUI 9a6d515e27
ToolsCI / Tools (push) Has been cancelled
RT-Thread BSP Static Build Check / 🔍 Summary of Git Diff Changes (push) Has been cancelled
RT-Thread BSP Static Build Check / ${{ matrix.legs.RTT_BSP }} (push) Has been cancelled
RT-Thread BSP Static Build Check / collect-artifacts (push) Has been cancelled
pkgs_test / change (push) Has been cancelled
utest_auto_run / A9 :components/dfs.cfg (push) Has been cancelled
utest_auto_run / A9 :components/lwip.cfg (push) Has been cancelled
utest_auto_run / A9 :components/netdev.cfg (push) Has been cancelled
utest_auto_run / A9 :components/sal.cfg (push) Has been cancelled
utest_auto_run / A9 :cpp11/cpp11.cfg (push) Has been cancelled
utest_auto_run / AARCH64-rtsmart :default.cfg (push) Has been cancelled
utest_auto_run / A9-rtsmart :default.cfg (push) Has been cancelled
utest_auto_run / RISCV-rtsmart :default.cfg (push) Has been cancelled
utest_auto_run / XUANTIE-rtsmart :default.cfg (push) Has been cancelled
utest_auto_run / AARCH64 :default.cfg (push) Has been cancelled
utest_auto_run / AARCH64-smp :default.cfg (push) Has been cancelled
utest_auto_run / A9 :default.cfg (push) Has been cancelled
utest_auto_run / A9-smp :default.cfg (push) Has been cancelled
utest_auto_run / RISCV :default.cfg (push) Has been cancelled
utest_auto_run / RISCV-smp :default.cfg (push) Has been cancelled
utest_auto_run / A9 :kernel/atomic_c11.cfg (push) Has been cancelled
utest_auto_run / RISCV :kernel/atomic_c11.cfg (push) Has been cancelled
utest_auto_run / A9 :kernel/ipc.cfg (push) Has been cancelled
utest_auto_run / A9 :kernel/kernel_basic.cfg (push) Has been cancelled
utest_auto_run / A9 :kernel/mem.cfg (push) Has been cancelled
Weekly CI Scheduler / Trigger and Monitor CIs (push) Has been cancelled
Weekly CI Scheduler / Create Discussion Report (push) Has been cancelled
[dm][serial] add new serial driver for DM
1. 8250 serila family (OFW, PCI, DWC, early)
2. Virtual serial (by graphic and input)
3. HVC early serial
4. ARM PL011 serial

Signed-off-by: GuEe-GUI <2991707448@qq.com>
2025-12-16 12:41:02 +08:00

93 lines
2.2 KiB
C

/*
* Copyright (c) 2006-2023, RT-Thread Development Team
*
* SPDX-License-Identifier: Apache-2.0
*
* Change Logs:
* Date Author Notes
* 2023-02-25 GuEe-GUI the first version
*/
#ifndef __PSF_H__
#define __PSF_H__
#include <rtthread.h>
#define PSF1_MAGIC0 0x36
#define PSF1_MAGIC1 0x04
#define PSF1_MODE512 0x01
#define PSF1_MODEHASTAB 0x02
#define PSF1_MODEHASSEQ 0x04
#define PSF1_MAXMODE 0x05
#define PSF1_SEPARATOR 0xffff
#define PSF1_STARTSEQ 0xfffe
struct psf1_header
{
rt_uint8_t magic[2]; /* Magic number */
rt_uint8_t mode; /* PSF font mode */
rt_uint8_t charsize; /* Character size */
};
#define PSF2_MAGIC0 0x72
#define PSF2_MAGIC1 0xb5
#define PSF2_MAGIC2 0x4a
#define PSF2_MAGIC3 0x86
/* bits used in flags */
#define PSF2_HAS_UNICODE_TABLE 0x01
/* max version recognized so far */
#define PSF2_MAXVERSION 0
/* UTF8 separators */
#define PSF2_SEPARATOR 0xff
#define PSF2_STARTSEQ 0xfe
struct psf2_header
{
rt_uint8_t magic[4];
rt_uint32_t version;
rt_uint32_t headersize; /* offset of bitmaps in file */
rt_uint32_t flags;
rt_uint32_t length; /* number of glyphs */
rt_uint32_t charsize; /* number of bytes for each character, charsize = height * ((width + 7) / 8) */
rt_uint32_t height, width; /* max dimensions of glyphs */
};
enum psf_type
{
PSF_TYPE_1,
PSF_TYPE_2,
PSF_TYPE_UNKNOW,
};
struct psf_font
{
union
{
const rt_uint8_t *raw_data;
struct psf1_header *header1;
struct psf2_header *header2;
};
const rt_uint8_t *font_map;
const rt_uint8_t *font_data;
enum psf_type type;
rt_uint32_t count; /* fonts count */
rt_uint32_t size;
rt_uint32_t height;
rt_uint32_t width;
rt_uint32_t glyph; /* height * width */
};
rt_err_t psf_initialize(const void *psf_data, struct psf_font *out_psf);
rt_err_t psf_parse(struct psf_font *psf, const rt_uint8_t *font_data,
rt_uint8_t *tmpglyph, rt_uint32_t color_size,
rt_uint32_t foreground, rt_uint32_t background);
#endif /* __PSF_H__ */