aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJozanLeClerc <JozanLeClerc@noemail.net>2020-11-21 15:53:19 +0000
committerJozanLeClerc <JozanLeClerc@noemail.net>2020-11-21 15:53:19 +0000
commit5ba3ccb008eb3365d5c0f89a865ae6dd1341ed98 (patch)
treee1f0d52bb2d0018ab23f3d8ddfe34b937265ed02
parentRemoved shit (diff)
downloadbsdsetsid-5ba3ccb008eb3365d5c0f89a865ae6dd1341ed98.tar.gz
bsdsetsid-5ba3ccb008eb3365d5c0f89a865ae6dd1341ed98.tar.bz2
bsdsetsid-5ba3ccb008eb3365d5c0f89a865ae6dd1341ed98.tar.xz
bsdsetsid-5ba3ccb008eb3365d5c0f89a865ae6dd1341ed98.tar.zst
bsdsetsid-5ba3ccb008eb3365d5c0f89a865ae6dd1341ed98.zip
Makefile update
FossilOrigin-Name: 465d9c763cb3e3c955c03cd315dc6be6e2550b5a
-rw-r--r--Makefile38
-rw-r--r--src/c_bsdsetsid.S2
-rw-r--r--src/u_hexdec.S72
-rw-r--r--src/u_strncmp.S56
4 files changed, 154 insertions, 14 deletions
diff --git a/Makefile b/Makefile
index 1c46784..226c8be 100644
--- a/Makefile
+++ b/Makefile
@@ -11,7 +11,7 @@
# ========================
#
# bsdsetsid: Makefile
-# 2020-11-13 13:22
+# 2020-11-21 14:36
# Joe
#
# BSD Makefile
@@ -19,32 +19,44 @@
default: all
SRCS_DIR := src/
-PREFIX := /usr/local/
+OBJS_DIR := obj/
+PREFIX ?= /usr/local/
DESTDIR :=
+MAKEOBJDIR := ./
-SRCS := ${SRCS_DIR}c_bsdsetsid.S
-SRCS += ${SRCS_DIR}e_err.S
-SRCS += ${SRCS_DIR}u_print.S
-SRCS += ${SRCS_DIR}u_strlen.S
+SRCS = c_bsdsetsid
+SRCS += e_err
+SRCS += u_hexdec
+SRCS += u_print
+SRCS += u_strlen
+SRCS += u_strncmp
+SRCS := ${SRCS:S/$/.S/g}
+SRCS := ${SRCS:S/^/${SRCS_DIR}/g}
-OBJS = ${SRCS:.S=.o}
+OBJS := ${SRCS:=.o}
NAME := bsdsetsid
RM := rm -f
+RMDIR := rmdir -p
+MKDIR := mkdir -p
-.SUFFIXES: .S .o
+.OBJDIR: ./
+.SUFFIXES: .S.o .o
+.S.S.o:
+ ${AS} -o ${.TARGET:S/src/obj/} ${.IMPSRC}
-.S.o:
- ${AS} -o ${.TARGET} ${.IMPSRC}
+${OBJS_DIR}:
+ ${MKDIR} ${OBJS_DIR}
${NAME}: ${OBJS}
- ${CC} -o ${.TARGET} ${.ALLSRC}
+ ${CC} -o ${.TARGET} ${.ALLSRC:S/src/obj/}
-all: ${NAME}
+all: ${OBJS_DIR} ${NAME}
clean:
- ${RM} ${OBJS} ${NAME} vgcore*
+ ${RM} ${OBJS:S/src/obj/} ${NAME} vgcore*
+ ${RM} -R obj
.PHONY: all clean
diff --git a/src/c_bsdsetsid.S b/src/c_bsdsetsid.S
index 2c2d158..9f0e420 100644
--- a/src/c_bsdsetsid.S
+++ b/src/c_bsdsetsid.S
@@ -69,7 +69,7 @@ c_parent:
c_child:
xor %rax, %rax
- mov $0x93, %rax /* SYS_setsid */
+ movb $0x93, %al /* SYS_setsid */
syscall
test %rax, %rax
js e_setsid
diff --git a/src/u_hexdec.S b/src/u_hexdec.S
new file mode 100644
index 0000000..a362ba6
--- /dev/null
+++ b/src/u_hexdec.S
@@ -0,0 +1,72 @@
+/*
+ * ========================
+ * ===== ===============
+ * ====== ================
+ * ====== ================
+ * ====== ==== ==== ==
+ * ====== === == = =
+ * ====== === = == =
+ * = === === = == ====
+ * = === === = == = =
+ * == ===== ==== ==
+ * ========================
+ *
+ * SPDX-License-Identifier: BSD-3-Clause
+ *
+ * Copyright (c) 2020 Joe
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. Neither the name of the organization nor the
+ * names of its contributors may be used to endorse or promote products
+ * derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY JOE ''AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL JOE BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ * bsdsetsid: src/u_hexdec.S
+ * 2020-11-21 14:00
+ * Joe
+ *
+ * General error handling happen here.
+ */
+
+.text
+.globl u_hexdec
+
+u_hexdec:
+ xor %r10, %r10
+ xor %r9, %r9
+ xor %r8, %r8
+ mov $0xa, %rbx
+ clc
+.u.repeat:
+ xor %rdx, %rdx
+ idiv %rbx
+ or $0x0, %dl
+ mov $0x8, %rcx
+.u.shift:
+ rcrb $0x1, %dl
+ rcr $0x1, %r10
+ rcr $0x1, %r9
+ rcr $0x1, %r8
+ dec %rcx
+ and %rcx, %rcx
+ jnz .u.shift
+ and %rax, %rax
+ jnz .u.repeat
+ ret
diff --git a/src/u_strncmp.S b/src/u_strncmp.S
new file mode 100644
index 0000000..9c90cd0
--- /dev/null
+++ b/src/u_strncmp.S
@@ -0,0 +1,56 @@
+/*
+ * ========================
+ * ===== ===============
+ * ====== ================
+ * ====== ================
+ * ====== ==== ==== ==
+ * ====== === == = =
+ * ====== === = == =
+ * = === === = == ====
+ * = === === = == = =
+ * == ===== ==== ==
+ * ========================
+ *
+ * SPDX-License-Identifier: BSD-3-Clause
+ *
+ * Copyright (c) 2020 Joe
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. Neither the name of the organization nor the
+ * names of its contributors may be used to endorse or promote products
+ * derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY JOE ''AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL JOE BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ * bsdsetsid: src/u_strncmp.S
+ * 2020-11-21 14:02
+ * Joe
+ *
+ * General error handling happen here.
+ */
+
+.text
+.globl u_strncmp
+
+u_strncmp:
+# xor %rcx, %rcx
+# dec %rdx
+#.u.loop
+# cmpb (%rsi)
+ ret