From 4eae6c34c4cd9b4f3caa60bc75945df466bf46ae Mon Sep 17 00:00:00 2001 From: Leonmmcoset Date: Thu, 16 Apr 2026 20:04:22 +0800 Subject: [PATCH] =?UTF-8?q?wav=E6=94=AF=E6=8C=81=EF=BC=88=E6=B2=A1?= =?UTF-8?q?=E6=9C=89=E6=B5=8B=E8=AF=95=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CMakeLists.txt | 2 +- cleonos/c/apps/help_main.c | 2 +- cleonos/c/apps/shell/shell_cmd.c | 1 + cleonos/c/apps/wavplay_main.c | 495 ++++++++++++++++++++++++++++ cleonos/c/include/cleonos_syscall.h | 6 + cleonos/c/src/syscall.c | 13 + clks/drivers/audio/pcspeaker.c | 126 +++++++ clks/include/clks/audio.h | 12 + clks/include/clks/driver.h | 1 + clks/include/clks/syscall.h | 3 + clks/kernel/driver.c | 7 + clks/kernel/kmain.c | 2 + clks/kernel/syscall.c | 23 ++ docs/syscall.md | 24 +- ramdisk/test.wav | Bin 0 -> 120558 bytes 15 files changed, 714 insertions(+), 3 deletions(-) create mode 100644 cleonos/c/apps/wavplay_main.c create mode 100644 clks/drivers/audio/pcspeaker.c create mode 100644 clks/include/clks/audio.h create mode 100644 ramdisk/test.wav diff --git a/CMakeLists.txt b/CMakeLists.txt index 6cf33a7..caf0f6a 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -362,7 +362,7 @@ set(RAMDISK_ROOT_APPS) set(USER_SHELL_COMMAND_APPS help ls cat pwd cd exec pid spawn wait sleep yield - shutdown restart exit clear ansi ansitest fastfetch memstat fsstat taskstat userstat + shutdown restart exit clear ansi ansitest wavplay fastfetch memstat fsstat taskstat userstat shstat stats tty dmesg kbdstat mkdir touch write append cp mv grep rm ) diff --git a/cleonos/c/apps/help_main.c b/cleonos/c/apps/help_main.c index 4df9b2c..b314777 100644 --- a/cleonos/c/apps/help_main.c +++ b/cleonos/c/apps/help_main.c @@ -10,6 +10,7 @@ static int ush_cmd_help(void) { ush_writeln(" exec|run "); ush_writeln(" clear"); ush_writeln(" ansi / ansitest / color"); + ush_writeln(" wavplay [steps] [ticks] / wavplay --stop"); ush_writeln(" fastfetch [--plain]"); ush_writeln(" memstat / fsstat / taskstat / userstat / shstat / stats"); ush_writeln(" tty [index]"); @@ -78,4 +79,3 @@ int cleonos_app_main(void) { return (success != 0) ? 0 : 1; } - diff --git a/cleonos/c/apps/shell/shell_cmd.c b/cleonos/c/apps/shell/shell_cmd.c index 76be2e9..c19a4b4 100644 --- a/cleonos/c/apps/shell/shell_cmd.c +++ b/cleonos/c/apps/shell/shell_cmd.c @@ -134,6 +134,7 @@ static int ush_cmd_help(void) { ush_writeln(" exec|run "); ush_writeln(" clear"); ush_writeln(" ansi / ansitest / color"); + ush_writeln(" wavplay [steps] [ticks] / wavplay --stop"); ush_writeln(" fastfetch [--plain]"); ush_writeln(" memstat / fsstat / taskstat / userstat / shstat / stats"); ush_writeln(" tty [index]"); diff --git a/cleonos/c/apps/wavplay_main.c b/cleonos/c/apps/wavplay_main.c new file mode 100644 index 0000000..97d605e --- /dev/null +++ b/cleonos/c/apps/wavplay_main.c @@ -0,0 +1,495 @@ +#include "cmd_runtime.h" + +#define USH_WAVPLAY_FILE_MAX 65536ULL +#define USH_WAVPLAY_DEFAULT_STEPS 256ULL +#define USH_WAVPLAY_MAX_STEPS 4096ULL +#define USH_WAVPLAY_DEFAULT_TICKS 1ULL +#define USH_WAVPLAY_MAX_TICKS 64ULL +#define USH_WAVPLAY_RUN_TICK_MAX 512ULL + +typedef struct ush_wav_info { + const unsigned char *data; + u64 data_size; + u64 frame_count; + u64 sample_rate; + u64 channels; + u64 bits_per_sample; + u64 block_align; +} ush_wav_info; + +static unsigned char ush_wavplay_file_buf[USH_WAVPLAY_FILE_MAX + 1ULL]; + +static unsigned int ush_wav_le16(const unsigned char *ptr) { + return (unsigned int)ptr[0] | ((unsigned int)ptr[1] << 8U); +} + +static unsigned int ush_wav_le32(const unsigned char *ptr) { + return (unsigned int)ptr[0] | + ((unsigned int)ptr[1] << 8U) | + ((unsigned int)ptr[2] << 16U) | + ((unsigned int)ptr[3] << 24U); +} + +static int ush_wav_tag_eq(const unsigned char *tag, const char *lit4) { + if (tag == (const unsigned char *)0 || lit4 == (const char *)0) { + return 0; + } + + return (tag[0] == (unsigned char)lit4[0] && + tag[1] == (unsigned char)lit4[1] && + tag[2] == (unsigned char)lit4[2] && + tag[3] == (unsigned char)lit4[3]) + ? 1 + : 0; +} + +static void ush_wavplay_write_u64_dec(u64 value) { + char rev[32]; + u64 len = 0ULL; + + if (value == 0ULL) { + ush_write_char('0'); + return; + } + + while (value > 0ULL && len < (u64)sizeof(rev)) { + rev[len++] = (char)('0' + (value % 10ULL)); + value /= 10ULL; + } + + while (len > 0ULL) { + len--; + ush_write_char(rev[len]); + } +} + +static void ush_wavplay_print_meta(const char *path, const ush_wav_info *info, u64 steps, u64 ticks) { + ush_write("wavplay: "); + ush_writeln(path); + + ush_write(" sample_rate="); + ush_wavplay_write_u64_dec(info->sample_rate); + ush_write("Hz channels="); + ush_wavplay_write_u64_dec(info->channels); + ush_write(" bits="); + ush_wavplay_write_u64_dec(info->bits_per_sample); + ush_write(" frames="); + ush_wavplay_write_u64_dec(info->frame_count); + ush_write_char('\n'); + + ush_write(" play_steps="); + ush_wavplay_write_u64_dec(steps); + ush_write(" ticks_per_step="); + ush_wavplay_write_u64_dec(ticks); + ush_write_char('\n'); +} + +static int ush_wav_parse(const unsigned char *buffer, u64 size, ush_wav_info *out_info) { + u64 offset = 12ULL; + int found_fmt = 0; + int found_data = 0; + u64 sample_rate = 0ULL; + u64 channels = 0ULL; + u64 bits = 0ULL; + u64 block_align = 0ULL; + const unsigned char *data = (const unsigned char *)0; + u64 data_size = 0ULL; + + if (buffer == (const unsigned char *)0 || out_info == (ush_wav_info *)0) { + return 0; + } + + if (size < 12ULL) { + return 0; + } + + if (ush_wav_tag_eq(&buffer[0], "RIFF") == 0 || ush_wav_tag_eq(&buffer[8], "WAVE") == 0) { + return 0; + } + + while (offset + 8ULL <= size) { + const unsigned char *chunk_tag = &buffer[offset]; + u64 chunk_size = (u64)ush_wav_le32(&buffer[offset + 4ULL]); + u64 chunk_data = offset + 8ULL; + u64 next_offset; + + if (chunk_data > size || chunk_size > (size - chunk_data)) { + return 0; + } + + if (ush_wav_tag_eq(chunk_tag, "fmt ") != 0) { + if (chunk_size < 16ULL) { + return 0; + } + + if (ush_wav_le16(&buffer[chunk_data + 0ULL]) != 1U) { + return 0; + } + + channels = (u64)ush_wav_le16(&buffer[chunk_data + 2ULL]); + sample_rate = (u64)ush_wav_le32(&buffer[chunk_data + 4ULL]); + block_align = (u64)ush_wav_le16(&buffer[chunk_data + 12ULL]); + bits = (u64)ush_wav_le16(&buffer[chunk_data + 14ULL]); + found_fmt = 1; + } else if (ush_wav_tag_eq(chunk_tag, "data") != 0) { + data = &buffer[chunk_data]; + data_size = chunk_size; + found_data = 1; + } + + next_offset = chunk_data + chunk_size; + + if ((chunk_size & 1ULL) != 0ULL) { + next_offset++; + } + + if (next_offset <= offset || next_offset > size) { + break; + } + + offset = next_offset; + } + + if (found_fmt == 0 || found_data == 0) { + return 0; + } + + if ((channels != 1ULL && channels != 2ULL) || (bits != 8ULL && bits != 16ULL)) { + return 0; + } + + if (sample_rate == 0ULL || block_align == 0ULL) { + return 0; + } + + if (data_size < block_align) { + return 0; + } + + out_info->data = data; + out_info->data_size = data_size; + out_info->sample_rate = sample_rate; + out_info->channels = channels; + out_info->bits_per_sample = bits; + out_info->block_align = block_align; + out_info->frame_count = data_size / block_align; + + return (out_info->frame_count > 0ULL) ? 1 : 0; +} + +static u64 ush_wav_sample_deviation(const ush_wav_info *info, u64 frame_index) { + const unsigned char *frame; + + if (info == (const ush_wav_info *)0 || info->data == (const unsigned char *)0 || info->frame_count == 0ULL) { + return 0ULL; + } + + if (frame_index >= info->frame_count) { + frame_index = info->frame_count - 1ULL; + } + + frame = &info->data[frame_index * info->block_align]; + + if (info->bits_per_sample == 8ULL) { + unsigned int left = (unsigned int)frame[0]; + unsigned int dev_left = (left >= 128U) ? (left - 128U) : (128U - left); + + if (info->channels == 2ULL && info->block_align >= 2ULL) { + unsigned int right = (unsigned int)frame[1]; + unsigned int dev_right = (right >= 128U) ? (right - 128U) : (128U - right); + return (u64)((dev_left + dev_right) / 2U); + } + + return (u64)dev_left; + } + + if (info->bits_per_sample == 16ULL) { + unsigned int raw_left; + int sample_left; + unsigned int dev_left; + + if (info->block_align < 2ULL) { + return 0ULL; + } + + raw_left = ush_wav_le16(frame); + sample_left = (raw_left >= 32768U) ? ((int)raw_left - 65536) : (int)raw_left; + if (sample_left < 0) { + sample_left = -sample_left; + } + dev_left = (unsigned int)((unsigned int)sample_left >> 8U); + + if (info->channels == 2ULL && info->block_align >= 4ULL) { + unsigned int raw_right = ush_wav_le16(frame + 2ULL); + int sample_right = (raw_right >= 32768U) ? ((int)raw_right - 65536) : (int)raw_right; + unsigned int dev_right; + + if (sample_right < 0) { + sample_right = -sample_right; + } + + dev_right = (unsigned int)((unsigned int)sample_right >> 8U); + return (u64)((dev_left + dev_right) / 2U); + } + + return (u64)dev_left; + } + + return 0ULL; +} + +static int ush_wavplay_parse_args(const char *arg, + char *out_path, + u64 out_path_size, + u64 *out_steps, + u64 *out_ticks, + int *out_stop) { + char first[USH_PATH_MAX]; + char second[32]; + char third[32]; + const char *rest = ""; + const char *rest2 = ""; + const char *rest3 = ""; + + if (out_path == (char *)0 || out_steps == (u64 *)0 || out_ticks == (u64 *)0 || out_stop == (int *)0) { + return 0; + } + + *out_steps = USH_WAVPLAY_DEFAULT_STEPS; + *out_ticks = USH_WAVPLAY_DEFAULT_TICKS; + *out_stop = 0; + out_path[0] = '\0'; + + if (arg == (const char *)0 || arg[0] == '\0') { + return 0; + } + + if (ush_split_first_and_rest(arg, first, (u64)sizeof(first), &rest) == 0) { + return 0; + } + + if (ush_streq(first, "--stop") != 0 || ush_streq(first, "stop") != 0) { + if (rest != (const char *)0 && rest[0] != '\0') { + return 0; + } + + *out_stop = 1; + return 1; + } + + ush_copy(out_path, out_path_size, first); + + if (rest != (const char *)0 && rest[0] != '\0') { + if (ush_split_first_and_rest(rest, second, (u64)sizeof(second), &rest2) == 0) { + return 0; + } + + if (ush_parse_u64_dec(second, out_steps) == 0 || *out_steps == 0ULL || *out_steps > USH_WAVPLAY_MAX_STEPS) { + return 0; + } + + if (rest2 != (const char *)0 && rest2[0] != '\0') { + if (ush_split_first_and_rest(rest2, third, (u64)sizeof(third), &rest3) == 0) { + return 0; + } + + if (ush_parse_u64_dec(third, out_ticks) == 0 || *out_ticks == 0ULL || *out_ticks > USH_WAVPLAY_MAX_TICKS) { + return 0; + } + + if (rest3 != (const char *)0 && rest3[0] != '\0') { + return 0; + } + } + } + + return 1; +} + +static int ush_cmd_wavplay(const ush_state *sh, const char *arg) { + char path_arg[USH_PATH_MAX]; + char abs_path[USH_PATH_MAX]; + ush_wav_info info; + u64 file_size; + u64 got; + u64 steps; + u64 ticks_per_step; + u64 stride; + u64 i; + u64 run_freq = 0ULL; + u64 run_ticks = 0ULL; + int stop_only; + + if (sh == (const ush_state *)0) { + return 0; + } + + if (ush_wavplay_parse_args(arg, path_arg, (u64)sizeof(path_arg), &steps, &ticks_per_step, &stop_only) == 0) { + ush_writeln("wavplay: usage wavplay [steps<=4096] [ticks<=64]"); + ush_writeln("wavplay: usage wavplay --stop"); + return 0; + } + + if (stop_only != 0) { + (void)cleonos_sys_audio_stop(); + ush_writeln("wavplay: stopped"); + return 1; + } + + if (cleonos_sys_audio_available() == 0ULL) { + ush_writeln("wavplay: audio device unavailable"); + return 0; + } + + if (ush_resolve_path(sh, path_arg, abs_path, (u64)sizeof(abs_path)) == 0) { + ush_writeln("wavplay: invalid path"); + return 0; + } + + if (cleonos_sys_fs_stat_type(abs_path) != 1ULL) { + ush_writeln("wavplay: file not found"); + return 0; + } + + file_size = cleonos_sys_fs_stat_size(abs_path); + + if (file_size == (u64)-1 || file_size == 0ULL) { + ush_writeln("wavplay: empty or unreadable file"); + return 0; + } + + if (file_size > USH_WAVPLAY_FILE_MAX) { + ush_writeln("wavplay: file too large (max 65536 bytes)"); + return 0; + } + + got = cleonos_sys_fs_read(abs_path, (char *)ush_wavplay_file_buf, file_size); + + if (got != file_size) { + ush_writeln("wavplay: read failed"); + return 0; + } + + if (ush_wav_parse(ush_wavplay_file_buf, got, &info) == 0) { + ush_writeln("wavplay: unsupported wav (need PCM 8/16-bit, mono/stereo)"); + return 0; + } + + if (steps > info.frame_count) { + steps = info.frame_count; + } + + if (steps == 0ULL) { + ush_writeln("wavplay: nothing to play"); + return 0; + } + + if (steps < 8ULL) { + steps = 8ULL; + + if (steps > info.frame_count) { + steps = info.frame_count; + } + } + + ush_wavplay_print_meta(abs_path, &info, steps, ticks_per_step); + + stride = info.frame_count / steps; + if (stride == 0ULL) { + stride = 1ULL; + } + + for (i = 0ULL; i < steps; i++) { + u64 frame_index = i * stride; + u64 deviation; + u64 freq; + + if (frame_index >= info.frame_count) { + frame_index = info.frame_count - 1ULL; + } + + deviation = ush_wav_sample_deviation(&info, frame_index); + + if (deviation < 4ULL) { + freq = 0ULL; + } else { + freq = 180ULL + (deviation * 12ULL); + } + + if (run_ticks == 0ULL) { + run_freq = freq; + run_ticks = ticks_per_step; + continue; + } + + if (freq == run_freq && (run_ticks + ticks_per_step) <= USH_WAVPLAY_RUN_TICK_MAX) { + run_ticks += ticks_per_step; + continue; + } + + if (cleonos_sys_audio_play_tone(run_freq, run_ticks) == 0ULL) { + ush_writeln("wavplay: playback failed"); + (void)cleonos_sys_audio_stop(); + return 0; + } + + run_freq = freq; + run_ticks = ticks_per_step; + } + + if (run_ticks > 0ULL) { + if (cleonos_sys_audio_play_tone(run_freq, run_ticks) == 0ULL) { + ush_writeln("wavplay: playback failed"); + (void)cleonos_sys_audio_stop(); + return 0; + } + } + + (void)cleonos_sys_audio_stop(); + ush_writeln("wavplay: done"); + return 1; +} + +int cleonos_app_main(void) { + ush_cmd_ctx ctx; + ush_cmd_ret ret; + ush_state sh; + char initial_cwd[USH_PATH_MAX]; + int has_context = 0; + int success = 0; + const char *arg = ""; + + ush_zero(&ctx, (u64)sizeof(ctx)); + ush_zero(&ret, (u64)sizeof(ret)); + ush_init_state(&sh); + ush_copy(initial_cwd, (u64)sizeof(initial_cwd), sh.cwd); + + if (ush_command_ctx_read(&ctx) != 0) { + if (ctx.cmd[0] != '\0' && ush_streq(ctx.cmd, "wavplay") != 0) { + has_context = 1; + arg = ctx.arg; + if (ctx.cwd[0] == '/') { + ush_copy(sh.cwd, (u64)sizeof(sh.cwd), ctx.cwd); + ush_copy(initial_cwd, (u64)sizeof(initial_cwd), sh.cwd); + } + } + } + + success = ush_cmd_wavplay(&sh, arg); + + if (has_context != 0) { + if (ush_streq(sh.cwd, initial_cwd) == 0) { + ret.flags |= USH_CMD_RET_FLAG_CWD; + ush_copy(ret.cwd, (u64)sizeof(ret.cwd), sh.cwd); + } + + if (sh.exit_requested != 0) { + ret.flags |= USH_CMD_RET_FLAG_EXIT; + ret.exit_code = sh.exit_code; + } + + (void)ush_command_ret_write(&ret); + } + + return (success != 0) ? 0 : 1; +} \ No newline at end of file diff --git a/cleonos/c/include/cleonos_syscall.h b/cleonos/c/include/cleonos_syscall.h index 9f361e8..5c9cad7 100644 --- a/cleonos/c/include/cleonos_syscall.h +++ b/cleonos/c/include/cleonos_syscall.h @@ -54,6 +54,9 @@ typedef unsigned long long usize; #define CLEONOS_SYSCALL_YIELD 45ULL #define CLEONOS_SYSCALL_SHUTDOWN 46ULL #define CLEONOS_SYSCALL_RESTART 47ULL +#define CLEONOS_SYSCALL_AUDIO_AVAILABLE 48ULL +#define CLEONOS_SYSCALL_AUDIO_PLAY_TONE 49ULL +#define CLEONOS_SYSCALL_AUDIO_STOP 50ULL u64 cleonos_syscall(u64 id, u64 arg0, u64 arg1, u64 arg2); u64 cleonos_sys_log_write(const char *message, u64 length); @@ -103,5 +106,8 @@ u64 cleonos_sys_sleep_ticks(u64 ticks); u64 cleonos_sys_yield(void); u64 cleonos_sys_shutdown(void); u64 cleonos_sys_restart(void); +u64 cleonos_sys_audio_available(void); +u64 cleonos_sys_audio_play_tone(u64 hz, u64 ticks); +u64 cleonos_sys_audio_stop(void); #endif diff --git a/cleonos/c/src/syscall.c b/cleonos/c/src/syscall.c index 46966b4..a6284f9 100644 --- a/cleonos/c/src/syscall.c +++ b/cleonos/c/src/syscall.c @@ -199,3 +199,16 @@ u64 cleonos_sys_shutdown(void) { u64 cleonos_sys_restart(void) { return cleonos_syscall(CLEONOS_SYSCALL_RESTART, 0ULL, 0ULL, 0ULL); } + + +u64 cleonos_sys_audio_available(void) { + return cleonos_syscall(CLEONOS_SYSCALL_AUDIO_AVAILABLE, 0ULL, 0ULL, 0ULL); +} + +u64 cleonos_sys_audio_play_tone(u64 hz, u64 ticks) { + return cleonos_syscall(CLEONOS_SYSCALL_AUDIO_PLAY_TONE, hz, ticks, 0ULL); +} + +u64 cleonos_sys_audio_stop(void) { + return cleonos_syscall(CLEONOS_SYSCALL_AUDIO_STOP, 0ULL, 0ULL, 0ULL); +} diff --git a/clks/drivers/audio/pcspeaker.c b/clks/drivers/audio/pcspeaker.c new file mode 100644 index 0000000..c1aab78 --- /dev/null +++ b/clks/drivers/audio/pcspeaker.c @@ -0,0 +1,126 @@ +#include +#include +#include +#include + +#define CLKS_AUDIO_PIT_BASE_HZ 1193182ULL +#define CLKS_AUDIO_FREQ_MIN 20ULL +#define CLKS_AUDIO_FREQ_MAX 20000ULL +#define CLKS_AUDIO_TICKS_MAX 2048ULL + +static clks_bool clks_audio_ready = CLKS_FALSE; +static u64 clks_audio_played_count = 0ULL; + +#if defined(CLKS_ARCH_X86_64) +static inline void clks_audio_outb(u16 port, u8 value) { + __asm__ volatile("outb %0, %1" : : "a"(value), "Nd"(port)); +} + +static inline u8 clks_audio_inb(u16 port) { + u8 value; + __asm__ volatile("inb %1, %0" : "=a"(value) : "Nd"(port)); + return value; +} + +static void clks_audio_program_pc_speaker(u64 hz) { + u64 divisor64 = CLKS_AUDIO_PIT_BASE_HZ / hz; + u16 divisor; + u8 control; + + if (divisor64 == 0ULL) { + divisor64 = 1ULL; + } + + if (divisor64 > 0xFFFFULL) { + divisor64 = 0xFFFFULL; + } + + divisor = (u16)divisor64; + clks_audio_outb(0x43U, 0xB6U); + clks_audio_outb(0x42U, (u8)(divisor & 0xFFU)); + clks_audio_outb(0x42U, (u8)((divisor >> 8) & 0xFFU)); + + control = clks_audio_inb(0x61U); + clks_audio_outb(0x61U, (u8)(control | 0x03U)); +} +#endif + +static u64 clks_audio_clamp_hz(u64 hz) { + if (hz < CLKS_AUDIO_FREQ_MIN) { + return CLKS_AUDIO_FREQ_MIN; + } + + if (hz > CLKS_AUDIO_FREQ_MAX) { + return CLKS_AUDIO_FREQ_MAX; + } + + return hz; +} + +void clks_audio_init(void) { +#if defined(CLKS_ARCH_X86_64) + clks_audio_ready = CLKS_TRUE; + clks_audio_played_count = 0ULL; + clks_audio_stop(); + + clks_log(CLKS_LOG_INFO, "AUDIO", "PC SPEAKER ONLINE"); + clks_log_hex(CLKS_LOG_INFO, "AUDIO", "PIT_BASE_HZ", CLKS_AUDIO_PIT_BASE_HZ); +#else + clks_audio_ready = CLKS_FALSE; + clks_audio_played_count = 0ULL; + clks_log(CLKS_LOG_WARN, "AUDIO", "AUDIO OUTPUT NOT AVAILABLE ON THIS ARCH"); +#endif +} + +clks_bool clks_audio_available(void) { + return clks_audio_ready; +} + +clks_bool clks_audio_play_tone(u64 hz, u64 ticks) { + if (clks_audio_ready == CLKS_FALSE) { + return CLKS_FALSE; + } + + if (ticks == 0ULL) { + return CLKS_TRUE; + } + + if (ticks > CLKS_AUDIO_TICKS_MAX) { + ticks = CLKS_AUDIO_TICKS_MAX; + } + + if (hz == 0ULL) { + clks_audio_stop(); + (void)clks_exec_sleep_ticks(ticks); + return CLKS_TRUE; + } + + hz = clks_audio_clamp_hz(hz); + +#if defined(CLKS_ARCH_X86_64) + clks_audio_program_pc_speaker(hz); + (void)clks_exec_sleep_ticks(ticks); + clks_audio_stop(); + clks_audio_played_count++; + return CLKS_TRUE; +#else + return CLKS_FALSE; +#endif +} + +void clks_audio_stop(void) { +#if defined(CLKS_ARCH_X86_64) + u8 control; + + if (clks_audio_ready == CLKS_FALSE) { + return; + } + + control = clks_audio_inb(0x61U); + clks_audio_outb(0x61U, (u8)(control & 0xFCU)); +#endif +} + +u64 clks_audio_play_count(void) { + return clks_audio_played_count; +} \ No newline at end of file diff --git a/clks/include/clks/audio.h b/clks/include/clks/audio.h new file mode 100644 index 0000000..279636f --- /dev/null +++ b/clks/include/clks/audio.h @@ -0,0 +1,12 @@ +#ifndef CLKS_AUDIO_H +#define CLKS_AUDIO_H + +#include + +void clks_audio_init(void); +clks_bool clks_audio_available(void); +clks_bool clks_audio_play_tone(u64 hz, u64 ticks); +void clks_audio_stop(void); +u64 clks_audio_play_count(void); + +#endif \ No newline at end of file diff --git a/clks/include/clks/driver.h b/clks/include/clks/driver.h index 8705ce0..9dc9cca 100644 --- a/clks/include/clks/driver.h +++ b/clks/include/clks/driver.h @@ -10,6 +10,7 @@ enum clks_driver_kind { CLKS_DRIVER_KIND_BUILTIN_VIDEO = 2, CLKS_DRIVER_KIND_BUILTIN_TTY = 3, CLKS_DRIVER_KIND_ELF = 4, + CLKS_DRIVER_KIND_BUILTIN_AUDIO = 5, }; enum clks_driver_state { diff --git a/clks/include/clks/syscall.h b/clks/include/clks/syscall.h index 2e123f0..9e15e47 100644 --- a/clks/include/clks/syscall.h +++ b/clks/include/clks/syscall.h @@ -51,6 +51,9 @@ #define CLKS_SYSCALL_YIELD 45ULL #define CLKS_SYSCALL_SHUTDOWN 46ULL #define CLKS_SYSCALL_RESTART 47ULL +#define CLKS_SYSCALL_AUDIO_AVAILABLE 48ULL +#define CLKS_SYSCALL_AUDIO_PLAY_TONE 49ULL +#define CLKS_SYSCALL_AUDIO_STOP 50ULL void clks_syscall_init(void); u64 clks_syscall_dispatch(void *frame_ptr); diff --git a/clks/kernel/driver.c b/clks/kernel/driver.c index 815fc14..047d99a 100644 --- a/clks/kernel/driver.c +++ b/clks/kernel/driver.c @@ -1,4 +1,5 @@ #include +#include #include #include #include @@ -115,6 +116,12 @@ static void clks_driver_register_builtins(void) { clks_driver_push("framebuffer", CLKS_DRIVER_KIND_BUILTIN_VIDEO, CLKS_DRIVER_STATE_FAILED, CLKS_FALSE, 0ULL, 0ULL); clks_driver_push("tty", CLKS_DRIVER_KIND_BUILTIN_TTY, CLKS_DRIVER_STATE_FAILED, CLKS_FALSE, 0ULL, 0ULL); } + + if (clks_audio_available() == CLKS_TRUE) { + clks_driver_push("pcspeaker", CLKS_DRIVER_KIND_BUILTIN_AUDIO, CLKS_DRIVER_STATE_READY, CLKS_FALSE, 0ULL, 0ULL); + } else { + clks_driver_push("pcspeaker", CLKS_DRIVER_KIND_BUILTIN_AUDIO, CLKS_DRIVER_STATE_FAILED, CLKS_FALSE, 0ULL, 0ULL); + } } static void clks_driver_probe_driver_dir(void) { diff --git a/clks/kernel/kmain.c b/clks/kernel/kmain.c index a17de87..0c9085e 100644 --- a/clks/kernel/kmain.c +++ b/clks/kernel/kmain.c @@ -1,6 +1,7 @@ // Kernel main function #include +#include #include #include #include @@ -175,6 +176,7 @@ void clks_kernel_main(void) { } clks_exec_init(); + clks_audio_init(); clks_keyboard_init(); clks_mouse_init(); clks_desktop_init(); diff --git a/clks/kernel/syscall.c b/clks/kernel/syscall.c index 92a3143..c49bb49 100644 --- a/clks/kernel/syscall.c +++ b/clks/kernel/syscall.c @@ -1,4 +1,5 @@ #include +#include #include #include #include @@ -280,6 +281,22 @@ static u64 clks_syscall_restart(void) { } +static u64 clks_syscall_audio_available(void) { + return (clks_audio_available() == CLKS_TRUE) ? 1ULL : 0ULL; +} + +static u64 clks_syscall_audio_play_tone(u64 arg0, u64 arg1) { + if (clks_audio_play_tone(arg0, arg1) == CLKS_FALSE) { + return 0ULL; + } + + return 1ULL; +} + +static u64 clks_syscall_audio_stop(void) { + clks_audio_stop(); + return 1ULL; +} static u64 clks_syscall_fs_stat_type(u64 arg0) { char path[CLKS_SYSCALL_PATH_MAX]; struct clks_fs_node_info info; @@ -582,6 +599,12 @@ u64 clks_syscall_dispatch(void *frame_ptr) { return clks_syscall_shutdown(); case CLKS_SYSCALL_RESTART: return clks_syscall_restart(); + case CLKS_SYSCALL_AUDIO_AVAILABLE: + return clks_syscall_audio_available(); + case CLKS_SYSCALL_AUDIO_PLAY_TONE: + return clks_syscall_audio_play_tone(frame->rbx, frame->rcx); + case CLKS_SYSCALL_AUDIO_STOP: + return clks_syscall_audio_stop(); default: return (u64)-1; } diff --git a/docs/syscall.md b/docs/syscall.md index 3e8ef97..58a5e6c 100644 --- a/docs/syscall.md +++ b/docs/syscall.md @@ -52,7 +52,7 @@ u64 cleonos_syscall(u64 id, u64 arg0, u64 arg1, u64 arg2); - `FS_MKDIR` / `FS_WRITE` / `FS_APPEND` / `FS_REMOVE` 仅允许 `/temp` 树下路径。 -## 4. Syscall 列表(0~47) +## 4. Syscall 列表(0~50) ### 0 `CLEONOS_SYSCALL_LOG_WRITE` @@ -350,6 +350,27 @@ u64 cleonos_syscall(u64 id, u64 arg0, u64 arg1, u64 arg2); - 返回:理论上不返回;成功路径会触发重启流程(当前 x86_64 走 8042 reset) - 说明:若重启流程未生效,内核会进入 halt 循环。 +### 48 `CLEONOS_SYSCALL_AUDIO_AVAILABLE` + +- 参数:无 +- 返回: +- `1`:音频输出可用 +- `0`:当前平台无音频输出 + +### 49 `CLEONOS_SYSCALL_AUDIO_PLAY_TONE` + +- 参数: +- `arg0`: `u64 hz`(频率,`0` 表示静音等待) +- `arg1`: `u64 ticks`(持续 tick) +- 返回:成功 `1`,失败 `0` +- 说明:当前实现基于 PC Speaker(x86_64),用于最小音频链路。 + +### 50 `CLEONOS_SYSCALL_AUDIO_STOP` + +- 参数:无 +- 返回:当前实现固定返回 `1` +- 说明:立即停止当前音频输出。 + ## 5. 用户态封装函数 用户态封装位于: @@ -366,6 +387,7 @@ u64 cleonos_syscall(u64 id, u64 arg0, u64 arg1, u64 arg2); - `cleonos_sys_kbd_get_char()` / `cleonos_sys_kbd_buffered()` - `cleonos_sys_getpid()` / `cleonos_sys_spawn_path()` / `cleonos_sys_wait_pid()` - `cleonos_sys_exit()` / `cleonos_sys_sleep_ticks()` / `cleonos_sys_yield()` / `cleonos_sys_shutdown()` / `cleonos_sys_restart()` +- `cleonos_sys_audio_available()` / `cleonos_sys_audio_play_tone()` / `cleonos_sys_audio_stop()` ## 6. 开发注意事项 diff --git a/ramdisk/test.wav b/ramdisk/test.wav new file mode 100644 index 0000000000000000000000000000000000000000..44d8638a7011a21ce3b9bbd423590cdb42e2e146 GIT binary patch literal 120558 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