mirror of
https://github.com/DragonOS-Community/DragonOS.git
synced 2025-06-21 22:43:23 +00:00
build: Remove DragonOS_GCC And make CI use docker image (#954)
* build: 不再需要x86_64-elf-gcc的支持 * ci: 添加ci用的docker镜像 * 切换workflow到构建用的容器上 --------- Signed-off-by: longjin <longjin@DragonOS.org>
This commit is contained in:
@ -1,19 +0,0 @@
|
||||
|
||||
CFLAGS += -I .
|
||||
|
||||
kernel_lib_subdirs:=
|
||||
|
||||
kernel_lib_objs:= $(shell find ./*.c)
|
||||
|
||||
ECHO:
|
||||
@echo "$@"
|
||||
|
||||
$(kernel_lib_subdirs): ECHO
|
||||
$(MAKE) -C $@ all CFLAGS="$(CFLAGS)" ASFLAGS="$(ASFLAGS)"
|
||||
|
||||
$(kernel_lib_objs): ECHO
|
||||
$(CC) $(CFLAGS) -c $@ -o $@.o
|
||||
|
||||
all: $(kernel_lib_objs) $(kernel_lib_subdirs)
|
||||
@echo $(kernel_lib_objs)
|
||||
|
@ -1,34 +0,0 @@
|
||||
#include <common/glib.h>
|
||||
#include <common/string.h>
|
||||
|
||||
|
||||
/**
|
||||
* @brief 将数据从src搬运到dst,并能正确处理地址重叠的问题
|
||||
*
|
||||
* @param dst 目标地址指针
|
||||
* @param src 源地址指针
|
||||
* @param size 大小
|
||||
* @return void* 指向目标地址的指针
|
||||
*/
|
||||
void *c_memmove(void *dst, const void *src, uint64_t size)
|
||||
{
|
||||
const char *_src = src;
|
||||
char *_dst = dst;
|
||||
|
||||
if (!size)
|
||||
return dst;
|
||||
|
||||
// 当源地址大于目标地址时,使用memcpy来完成
|
||||
if (dst <= src)
|
||||
return memcpy(dst, src, size);
|
||||
|
||||
// 当源地址小于目标地址时,为防止重叠覆盖,因此从后往前拷贝
|
||||
_src += size;
|
||||
_dst += size;
|
||||
|
||||
// 逐字节拷贝
|
||||
while (size--)
|
||||
*--_dst = *--_src;
|
||||
|
||||
return dst;
|
||||
}
|
@ -1,101 +0,0 @@
|
||||
#include <common/string.h>
|
||||
#include <common/glib.h>
|
||||
|
||||
/**
|
||||
* @brief 拷贝整个字符串
|
||||
*
|
||||
* @param dst 目标地址
|
||||
* @param src 源地址
|
||||
* @return char* 目标字符串
|
||||
*/
|
||||
char *strcpy(char *dst, const char *src)
|
||||
{
|
||||
while (*src)
|
||||
{
|
||||
*(dst++) = *(src++);
|
||||
}
|
||||
*dst = 0;
|
||||
|
||||
return dst;
|
||||
}
|
||||
|
||||
long strnlen(const char *src, unsigned long maxlen)
|
||||
{
|
||||
|
||||
if (src == NULL)
|
||||
return 0;
|
||||
register int __res = 0;
|
||||
while (src[__res] != '\0' && __res < maxlen)
|
||||
{
|
||||
++__res;
|
||||
}
|
||||
return __res;
|
||||
}
|
||||
|
||||
/*
|
||||
比较字符串 FirstPart and SecondPart
|
||||
FirstPart = SecondPart => 0
|
||||
FirstPart > SecondPart => 1
|
||||
FirstPart < SecondPart => -1
|
||||
*/
|
||||
int strcmp(const char *l, const char *r)
|
||||
{
|
||||
for (; *l == *r && *l; l++, r++)
|
||||
;
|
||||
return *(unsigned char *)l - *(unsigned char *)r;
|
||||
}
|
||||
|
||||
char *__stpncpy(char *restrict d, const char *restrict s, size_t n)
|
||||
{
|
||||
|
||||
for (; n && (*d = *s); n--, s++, d++)
|
||||
;
|
||||
tail:
|
||||
memset(d, 0, n);
|
||||
return d;
|
||||
}
|
||||
|
||||
char *strncpy(char *restrict d, const char *restrict s, size_t n)
|
||||
{
|
||||
__stpncpy(d, s, n);
|
||||
return d;
|
||||
}
|
||||
|
||||
long strncpy_from_user(char *dst, const char *src, unsigned long size)
|
||||
{
|
||||
if (!verify_area((uint64_t)src, size))
|
||||
return 0;
|
||||
|
||||
strncpy(dst, src, size);
|
||||
return size;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 测量来自用户空间的字符串的长度,会检验地址空间是否属于用户空间
|
||||
* @param src
|
||||
* @param maxlen
|
||||
* @return long
|
||||
*/
|
||||
long strnlen_user(const char *src, unsigned long maxlen)
|
||||
{
|
||||
|
||||
unsigned long size = strlen(src);
|
||||
// 地址不合法
|
||||
if (!verify_area((uint64_t)src, size))
|
||||
return 0;
|
||||
|
||||
return size <= maxlen ? size : maxlen;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 拼接两个字符串(将src接到dest末尾)
|
||||
*
|
||||
* @param dest 目标串
|
||||
* @param src 源串
|
||||
* @return char*
|
||||
*/
|
||||
char *strcat(char *dest, const char *src)
|
||||
{
|
||||
strcpy(dest + strlen(dest), src);
|
||||
return dest;
|
||||
}
|
@ -1,20 +0,0 @@
|
||||
#include <common/unistd.h>
|
||||
#include <common/glib.h>
|
||||
|
||||
|
||||
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