mirror of
https://github.com/DragonOS-Community/DragonOS.git
synced 2025-06-18 12:16:31 +00:00
swab函数 (#53)
* swab函数 Signed-off-by: Yuqia <15287042733@163.com> * 修正格式 Signed-off-by: Yuqia <15287042733@163.com> Co-authored-by: fslongjin <longjin@RinGoTek.cn>
This commit is contained in:
@ -25,4 +25,12 @@ pid_t fork(void);
|
||||
*
|
||||
* @return pid_t
|
||||
*/
|
||||
pid_t vfork(void);
|
||||
pid_t vfork(void);
|
||||
|
||||
/**
|
||||
* @brief 交换n字节
|
||||
* @param src 源地址
|
||||
* @param dest 目的地址
|
||||
* @param nbytes 交换字节数
|
||||
*/
|
||||
void swab(void *restrict src, void *restrict dest, ssize_t nbytes);
|
@ -1,4 +1,5 @@
|
||||
#include <common/unistd.h>
|
||||
#include <common/glib.h>
|
||||
|
||||
/**
|
||||
* @brief fork当前进程
|
||||
@ -18,4 +19,21 @@ pid_t fork(void)
|
||||
pid_t vfork(void)
|
||||
{
|
||||
return (pid_t)enter_syscall_int(SYS_VFORK, 0, 0, 0, 0, 0, 0, 0, 0);
|
||||
}
|
||||
|
||||
void swab(void *restrict src, void *restrict dest, ssize_t nbytes)
|
||||
{
|
||||
unsigned char buf[32];
|
||||
char *_src = src;
|
||||
char *_dest = dest;
|
||||
uint32_t transfer;
|
||||
for (; nbytes > 0; nbytes -= transfer)
|
||||
{
|
||||
transfer = (nbytes > 32) ? 32 : nbytes;
|
||||
memcpy(buf, _src, transfer);
|
||||
memcpy(_src, _dest, transfer);
|
||||
memcpy(_dest, buf, transfer);
|
||||
_src += transfer;
|
||||
_dest += transfer;
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user