diff --git a/service/ptos/Makefile b/service/ptos/Makefile index d7d9228..bcf1b1c 100644 --- a/service/ptos/Makefile +++ b/service/ptos/Makefile @@ -9,12 +9,16 @@ include ../mk/ptos.mk .PHONY: all -all: ke machine +all: spkg ke machine .PHONY: ke ke: cd ke/; $(MAKE) $(PASSDOWN_ARGS) +.PHONY: spkg +spkg: + cd ../spkg/; $(MAKE) $(PASSDOWN_ARGS) + .PHONY: machine machine: cd arch/$(PT_TARGET_ARCH)/; $(MAKE) $(PASSDOWN_ARGS) diff --git a/service/spkg/Makefile b/service/spkg/Makefile new file mode 100644 index 0000000..3943d96 --- /dev/null +++ b/service/spkg/Makefile @@ -0,0 +1,26 @@ +# +# Copyright (c) 2026, Chloe M. +# Provided under the BSD-3 clause +# +# Description: Support package build script +# Author: Chloe M. +# + +include ../mk/ptos.mk + +CFILES = $(shell find . -name "*.c") +OFILES = $(CFILES:.c=.o) +DFILES = $(CFILES:.c=.d) + +CFLAGS = \ + $(SYS_CFLAGS) \ + -MMD \ + -I$(PT_PROJECT_ROOT)/sdk/head + +.PHONY: all +all: $(OFILES) + +-include $(DFILES) +%.o: %.c + $(PROMPT) "CC" $< + $(SYS_CC) -c $(CFLAGS) $< -o $@ diff --git a/service/spkg/head/string.h b/service/spkg/head/string.h new file mode 100644 index 0000000..e56260c --- /dev/null +++ b/service/spkg/head/string.h @@ -0,0 +1,21 @@ +/* + * Copyright (c) 2026, Chloe M., et al + * Provided under the BSD-3 clause. + * + * Description: String libraries + * Author: Chloe M. + */ + +#ifndef _SPKG_STRING_H_ +#define _SPKG_STRING_H_ 1 + +#include + +/* + * Obtain the length of a string + * + * @String: String to obtain length of + */ +USIZE RtlStrLen(const CHAR *String); + +#endif /* !_SPKG_STRING_H_ */ diff --git a/service/spkg/strlib/strlen.c b/service/spkg/strlib/strlen.c new file mode 100644 index 0000000..0045354 --- /dev/null +++ b/service/spkg/strlib/strlen.c @@ -0,0 +1,22 @@ +/* + * Copyright (c) 2026, Chloe M., et al + * Provided under the BSD-3 clause. + * + * Description: Obtain length of string + * Author: Chloe M. + */ + +#include + +USIZE +RtlStrLen(const CHAR *String) +{ + USIZE Length = 0; + + if (String == NULL) { + return 0; + } + + while (String[Length++] != '\0'); + return Length; +}