summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorRichard Qin <richard.qin.x@gmail.com>2026-01-05 01:38:01 +0800
committerRichard Qin <richard.qin.x@gmail.com>2026-01-05 01:38:01 +0800
commit1e862099a13266da57ff7c6de11c1a11c42a8112 (patch)
tree90ee229c00a9ba71e60833ca0c8e9ca229cb0aae /src
parent92ca8063f354d515e500b7cf99fb9cdca98c39d3 (diff)
parent51a788fa9e13ead0c504a1369797f8b49d73634c (diff)
downloadlume-1e862099a13266da57ff7c6de11c1a11c42a8112.tar.gz
lume-1e862099a13266da57ff7c6de11c1a11c42a8112.tar.xz
Merge pull request #7 from Richard-Qin-001/dev/shell
Important: License changed from MIT to GPL.
Diffstat (limited to 'src')
-rw-r--r--src/boot/entry.S3
-rw-r--r--src/drivers/plic.cc4
-rw-r--r--src/drivers/uart.cc4
-rw-r--r--src/drivers/virtio_dist.cc4
-rw-r--r--src/fs/fat32.cc4
-rw-r--r--src/fs/file.cc4
-rw-r--r--src/fs/fs.cc4
-rw-r--r--src/kernel/bio.cc4
-rw-r--r--src/kernel/config.cc4
-rw-r--r--src/kernel/cxx.cc4
-rw-r--r--src/kernel/fdt.cc4
-rw-r--r--src/kernel/initcode.S3
-rw-r--r--src/kernel/main.cc4
-rw-r--r--src/kernel/mm/pmm.cc4
-rw-r--r--src/kernel/mm/slab.cc4
-rw-r--r--src/kernel/mm/vm.cc4
-rw-r--r--src/kernel/proc/exec.cc4
-rw-r--r--src/kernel/proc/proc.cc4
-rw-r--r--src/kernel/proc/swtch.S3
-rw-r--r--src/kernel/sbi.cc4
-rw-r--r--src/kernel/spinlock.cc4
-rw-r--r--src/kernel/syscall.cc4
-rw-r--r--src/kernel/timer.cc4
-rw-r--r--src/kernel/trap/handler.cc4
-rw-r--r--src/kernel/trap/trampoline.S3
-rw-r--r--src/kernel/trap/trap.S3
-rw-r--r--src/lib/string.cc4
-rw-r--r--src/ulib/assert.c4
-rw-r--r--src/ulib/cxx.cc4
-rw-r--r--src/ulib/iostream.cpp4
-rw-r--r--src/ulib/stdio.c4
-rw-r--r--src/ulib/stdlib.c4
-rw-r--r--src/ulib/string.c4
-rw-r--r--src/user/cat.cc4
-rw-r--r--src/user/cp.cc4
-rw-r--r--src/user/echo.cc4
-rw-r--r--src/user/entry.S3
-rw-r--r--src/user/grep.cc4
-rw-r--r--src/user/init.cc4
-rw-r--r--src/user/kill.cc4
-rw-r--r--src/user/ln.cc4
-rw-r--r--src/user/ls.cc4
-rw-r--r--src/user/mkdir.cc4
-rw-r--r--src/user/mv.cc4
-rw-r--r--src/user/rm.cc4
-rw-r--r--src/user/sh.cc4
-rw-r--r--src/user/touch.cc4
-rw-r--r--src/user/user.ld3
-rw-r--r--src/user/usys.S3
-rw-r--r--src/user/wc.cc4
50 files changed, 192 insertions, 0 deletions
diff --git a/src/boot/entry.S b/src/boot/entry.S
index 6d75bcf..8910ddc 100644
--- a/src/boot/entry.S
+++ b/src/boot/entry.S
@@ -1,3 +1,6 @@
+# SPDX-License-Identifier: GPL-2.0-or-later
+# Copyright (C) 2026 Richard Qin
+
.section .text.entry
.global _start
diff --git a/src/drivers/plic.cc b/src/drivers/plic.cc
index a759597..f9e306b 100644
--- a/src/drivers/plic.cc
+++ b/src/drivers/plic.cc
@@ -1,3 +1,7 @@
+// SPDX-License-Identifier: GPL-2.0-or-later
+/*
+ * Copyright (C) 2026 Richard QIn
+ */
#include "common/types.h"
#include "kernel/riscv.h"
#include "drivers/plic.h"
diff --git a/src/drivers/uart.cc b/src/drivers/uart.cc
index 55609ba..96ae182 100644
--- a/src/drivers/uart.cc
+++ b/src/drivers/uart.cc
@@ -1,3 +1,7 @@
+// SPDX-License-Identifier: GPL-2.0-or-later
+/*
+ * Copyright (C) 2026 Richard QIn
+ */
#include "drivers/uart.h"
#include "kernel/riscv.h"
#include "kernel/spinlock.h"
diff --git a/src/drivers/virtio_dist.cc b/src/drivers/virtio_dist.cc
index 9c981d4..b2acd8e 100644
--- a/src/drivers/virtio_dist.cc
+++ b/src/drivers/virtio_dist.cc
@@ -1,3 +1,7 @@
+// SPDX-License-Identifier: GPL-2.0-or-later
+/*
+ * Copyright (C) 2026 Richard QIn
+ */
#include "drivers/virtio.h"
#include "kernel/riscv.h"
#include "kernel/pmm.h"
diff --git a/src/fs/fat32.cc b/src/fs/fat32.cc
index 17b543c..e4089d4 100644
--- a/src/fs/fat32.cc
+++ b/src/fs/fat32.cc
@@ -1,3 +1,7 @@
+// SPDX-License-Identifier: GPL-2.0-or-later
+/*
+ * Copyright (C) 2026 Richard QIn
+ */
#include "fs/fat32.h"
#include "lib/string.h"
#include "drivers/uart.h"
diff --git a/src/fs/file.cc b/src/fs/file.cc
index 9f12dc1..d814332 100644
--- a/src/fs/file.cc
+++ b/src/fs/file.cc
@@ -1,3 +1,7 @@
+// SPDX-License-Identifier: GPL-2.0-or-later
+/*
+ * Copyright (C) 2026 Richard QIn
+ */
#include "fs/file.h"
#include "kernel/spinlock.h"
#include "kernel/mm.h"
diff --git a/src/fs/fs.cc b/src/fs/fs.cc
index 9e3d50e..b93f363 100644
--- a/src/fs/fs.cc
+++ b/src/fs/fs.cc
@@ -1,3 +1,7 @@
+// SPDX-License-Identifier: GPL-2.0-or-later
+/*
+ * Copyright (C) 2026 Richard QIn
+ */
#include "fs/fs.h"
#include "kernel/riscv.h"
#include "drivers/uart.h"
diff --git a/src/kernel/bio.cc b/src/kernel/bio.cc
index 6e63d60..5f1aae9 100644
--- a/src/kernel/bio.cc
+++ b/src/kernel/bio.cc
@@ -1,3 +1,7 @@
+// SPDX-License-Identifier: GPL-2.0-or-later
+/*
+ * Copyright (C) 2026 Richard QIn
+ */
#include "kernel/buf.h"
#include "kernel/spinlock.h"
#include "kernel/riscv.h"
diff --git a/src/kernel/config.cc b/src/kernel/config.cc
index 47f7a3e..36858a1 100644
--- a/src/kernel/config.cc
+++ b/src/kernel/config.cc
@@ -1,3 +1,7 @@
+// SPDX-License-Identifier: GPL-2.0-or-later
+/*
+ * Copyright (C) 2026 Richard QIn
+ */
#include "common/types.h"
uint64 g_uart_base = 0;
diff --git a/src/kernel/cxx.cc b/src/kernel/cxx.cc
index 14bfe68..00f2799 100644
--- a/src/kernel/cxx.cc
+++ b/src/kernel/cxx.cc
@@ -1,3 +1,7 @@
+// SPDX-License-Identifier: GPL-2.0-or-later
+/*
+ * Copyright (C) 2026 Richard QIn
+ */
#include "common/types.h"
#include "kernel/pmm.h"
#include "drivers/uart.h"
diff --git a/src/kernel/fdt.cc b/src/kernel/fdt.cc
index 5334845..e9f8422 100644
--- a/src/kernel/fdt.cc
+++ b/src/kernel/fdt.cc
@@ -1,3 +1,7 @@
+// SPDX-License-Identifier: GPL-2.0-or-later
+/*
+ * Copyright (C) 2026 Richard QIn
+ */
#include "common/types.h"
#include "drivers/uart.h"
#include "kernel/config.h"
diff --git a/src/kernel/initcode.S b/src/kernel/initcode.S
index 8b56ce6..22e55ca 100644
--- a/src/kernel/initcode.S
+++ b/src/kernel/initcode.S
@@ -1,3 +1,6 @@
+# SPDX-License-Identifier: GPL-2.0-or-later
+# Copyright (C) 2026 Richard Qin
+
.section .rodata
.global initcode_start
.global initcode_end
diff --git a/src/kernel/main.cc b/src/kernel/main.cc
index 9a24028..22cffd6 100644
--- a/src/kernel/main.cc
+++ b/src/kernel/main.cc
@@ -1,3 +1,7 @@
+// SPDX-License-Identifier: GPL-2.0-or-later
+/*
+ * Copyright (C) 2026 Richard QIn
+ */
#include "common/types.h"
#include "kernel/riscv.h"
#include "drivers/uart.h"
diff --git a/src/kernel/mm/pmm.cc b/src/kernel/mm/pmm.cc
index e871d8a..2d0c44f 100644
--- a/src/kernel/mm/pmm.cc
+++ b/src/kernel/mm/pmm.cc
@@ -1,3 +1,7 @@
+// SPDX-License-Identifier: GPL-2.0-or-later
+/*
+ * Copyright (C) 2026 Richard QIn
+ */
#include "common/types.h"
#include "kernel/riscv.h"
#include "kernel/pmm.h"
diff --git a/src/kernel/mm/slab.cc b/src/kernel/mm/slab.cc
index 702dc5c..3bb6b1b 100644
--- a/src/kernel/mm/slab.cc
+++ b/src/kernel/mm/slab.cc
@@ -1,3 +1,7 @@
+// SPDX-License-Identifier: GPL-2.0-or-later
+/*
+ * Copyright (C) 2026 Richard QIn
+ */
#include "kernel/slab.h"
#include "kernel/pmm.h"
#include "kernel/spinlock.h"
diff --git a/src/kernel/mm/vm.cc b/src/kernel/mm/vm.cc
index 1155d2c..47b80e9 100644
--- a/src/kernel/mm/vm.cc
+++ b/src/kernel/mm/vm.cc
@@ -1,3 +1,7 @@
+// SPDX-License-Identifier: GPL-2.0-or-later
+/*
+ * Copyright (C) 2026 Richard QIn
+ */
#include "kernel/mm.h"
#include "kernel/pmm.h"
#include "kernel/riscv.h"
diff --git a/src/kernel/proc/exec.cc b/src/kernel/proc/exec.cc
index 22e4842..e5294d9 100644
--- a/src/kernel/proc/exec.cc
+++ b/src/kernel/proc/exec.cc
@@ -1,3 +1,7 @@
+// SPDX-License-Identifier: GPL-2.0-or-later
+/*
+ * Copyright (C) 2026 Richard QIn
+ */
#include "common/types.h"
#include "kernel/riscv.h"
#include "kernel/proc.h"
diff --git a/src/kernel/proc/proc.cc b/src/kernel/proc/proc.cc
index 6940a3e..3923fe8 100644
--- a/src/kernel/proc/proc.cc
+++ b/src/kernel/proc/proc.cc
@@ -1,3 +1,7 @@
+// SPDX-License-Identifier: GPL-2.0-or-later
+/*
+ * Copyright (C) 2026 Richard QIn
+ */
#include "kernel/proc.h"
#include "kernel/proc_def.h"
#include "kernel/runqueue.h"
diff --git a/src/kernel/proc/swtch.S b/src/kernel/proc/swtch.S
index f59de20..d55c03e 100644
--- a/src/kernel/proc/swtch.S
+++ b/src/kernel/proc/swtch.S
@@ -1,3 +1,6 @@
+# SPDX-License-Identifier: GPL-2.0-or-later
+# Copyright (C) 2026 Richard Qin
+
.global swtch
swtch:
diff --git a/src/kernel/sbi.cc b/src/kernel/sbi.cc
index 9570d74..5ae7edb 100644
--- a/src/kernel/sbi.cc
+++ b/src/kernel/sbi.cc
@@ -1,3 +1,7 @@
+// SPDX-License-Identifier: GPL-2.0-or-later
+/*
+ * Copyright (C) 2026 Richard QIn
+ */
#include "common/types.h"
#include "kernel/sbi.h"
diff --git a/src/kernel/spinlock.cc b/src/kernel/spinlock.cc
index 55dfc6b..aadce21 100644
--- a/src/kernel/spinlock.cc
+++ b/src/kernel/spinlock.cc
@@ -1,3 +1,7 @@
+// SPDX-License-Identifier: GPL-2.0-or-later
+/*
+ * Copyright (C) 2026 Richard QIn
+ */
#include "kernel/spinlock.h"
#include "kernel/riscv.h"
#include "kernel/cpu.h"
diff --git a/src/kernel/syscall.cc b/src/kernel/syscall.cc
index 9f88649..b891ada 100644
--- a/src/kernel/syscall.cc
+++ b/src/kernel/syscall.cc
@@ -1,3 +1,7 @@
+// SPDX-License-Identifier: GPL-2.0-or-later
+/*
+ * Copyright (C) 2026 Richard QIn
+ */
#include "kernel/syscall.h"
#include "common/types.h"
#include "common/fcntl.h"
diff --git a/src/kernel/timer.cc b/src/kernel/timer.cc
index 3cbf11e..fc02f27 100644
--- a/src/kernel/timer.cc
+++ b/src/kernel/timer.cc
@@ -1,3 +1,7 @@
+// SPDX-License-Identifier: GPL-2.0-or-later
+/*
+ * Copyright (C) 2026 Richard QIn
+ */
#include "common/types.h"
#include "kernel/config.h"
#include "kernel/spinlock.h"
diff --git a/src/kernel/trap/handler.cc b/src/kernel/trap/handler.cc
index 7e4d11e..11af409 100644
--- a/src/kernel/trap/handler.cc
+++ b/src/kernel/trap/handler.cc
@@ -1,3 +1,7 @@
+// SPDX-License-Identifier: GPL-2.0-or-later
+/*
+ * Copyright (C) 2026 Richard QIn
+ */
#include "kernel/trap.h"
#include "kernel/riscv.h"
#include "kernel/proc.h"
diff --git a/src/kernel/trap/trampoline.S b/src/kernel/trap/trampoline.S
index 478d345..57d6f25 100644
--- a/src/kernel/trap/trampoline.S
+++ b/src/kernel/trap/trampoline.S
@@ -1,3 +1,6 @@
+# SPDX-License-Identifier: GPL-2.0-or-later
+# Copyright (C) 2026 Richard Qin
+
.section .text
.globl trampoline
.globl uservec
diff --git a/src/kernel/trap/trap.S b/src/kernel/trap/trap.S
index 573248e..8bce53d 100644
--- a/src/kernel/trap/trap.S
+++ b/src/kernel/trap/trap.S
@@ -1,3 +1,6 @@
+# SPDX-License-Identifier: GPL-2.0-or-later
+# Copyright (C) 2026 Richard Qin
+
.section .text
.global kernelvec
.global uservec
diff --git a/src/lib/string.cc b/src/lib/string.cc
index a302fc6..e8eccb3 100644
--- a/src/lib/string.cc
+++ b/src/lib/string.cc
@@ -1,3 +1,7 @@
+// SPDX-License-Identifier: GPL-2.0-or-later
+/*
+ * Copyright (C) 2026 Richard QIn
+ */
#include "lib/string.h"
void *memset(void *dst, int c, uint n)
diff --git a/src/ulib/assert.c b/src/ulib/assert.c
index ca2da84..c60643a 100644
--- a/src/ulib/assert.c
+++ b/src/ulib/assert.c
@@ -1,3 +1,7 @@
+// SPDX-License-Identifier: GPL-2.0-or-later
+/*
+ * Copyright (C) 2026 Richard QIn
+ */
#include "stdio.h"
#include "stdlib.h"
diff --git a/src/ulib/cxx.cc b/src/ulib/cxx.cc
index 6c892ab..d8f510d 100644
--- a/src/ulib/cxx.cc
+++ b/src/ulib/cxx.cc
@@ -1,3 +1,7 @@
+// SPDX-License-Identifier: GPL-2.0-or-later
+/*
+ * Copyright (C) 2026 Richard QIn
+ */
#include "ulib/stdlib.h"
void *operator new(unsigned long n)
diff --git a/src/ulib/iostream.cpp b/src/ulib/iostream.cpp
index d5394f9..4d721c1 100644
--- a/src/ulib/iostream.cpp
+++ b/src/ulib/iostream.cpp
@@ -1,3 +1,7 @@
+// SPDX-License-Identifier: GPL-2.0-or-later
+/*
+ * Copyright (C) 2026 Richard QIn
+ */
#include "ulib/iostream"
namespace std
diff --git a/src/ulib/stdio.c b/src/ulib/stdio.c
index f8e7a9a..e81f69a 100644
--- a/src/ulib/stdio.c
+++ b/src/ulib/stdio.c
@@ -1,3 +1,7 @@
+// SPDX-License-Identifier: GPL-2.0-or-later
+/*
+ * Copyright (C) 2026 Richard QIn
+ */
#include "ulib/stdio.h"
#include "ulib/string.h"
#include "ulib/stdlib.h"
diff --git a/src/ulib/stdlib.c b/src/ulib/stdlib.c
index 89d5a08..8b22b6f 100644
--- a/src/ulib/stdlib.c
+++ b/src/ulib/stdlib.c
@@ -1,3 +1,7 @@
+// SPDX-License-Identifier: GPL-2.0-or-later
+/*
+ * Copyright (C) 2026 Richard QIn
+ */
#include "ulib/stdlib.h"
#include "ulib/string.h"
#include "ulib/ctypes.h"
diff --git a/src/ulib/string.c b/src/ulib/string.c
index 5fc1cbd..c3dbe9a 100644
--- a/src/ulib/string.c
+++ b/src/ulib/string.c
@@ -1,3 +1,7 @@
+// SPDX-License-Identifier: GPL-2.0-or-later
+/*
+ * Copyright (C) 2026 Richard QIn
+ */
#include "ulib/string.h"
#include "ulib/stdlib.h"
diff --git a/src/user/cat.cc b/src/user/cat.cc
index 67feb1c..b518d77 100644
--- a/src/user/cat.cc
+++ b/src/user/cat.cc
@@ -1,3 +1,7 @@
+// SPDX-License-Identifier: GPL-2.0-or-later
+/*
+ * Copyright (C) 2026 Richard QIn
+ */
#include "ulib/stdio.h"
#include "ulib/stdlib.h"
#include "ulib/string.h"
diff --git a/src/user/cp.cc b/src/user/cp.cc
index 9f13bef..ca35e82 100644
--- a/src/user/cp.cc
+++ b/src/user/cp.cc
@@ -1,3 +1,7 @@
+// SPDX-License-Identifier: GPL-2.0-or-later
+/*
+ * Copyright (C) 2026 Richard QIn
+ */
#include "ulib/stdio.h"
#include "ulib/stdlib.h"
#include "user/user.h"
diff --git a/src/user/echo.cc b/src/user/echo.cc
index ff4b8be..cc9dc2a 100644
--- a/src/user/echo.cc
+++ b/src/user/echo.cc
@@ -1,3 +1,7 @@
+// SPDX-License-Identifier: GPL-2.0-or-later
+/*
+ * Copyright (C) 2026 Richard QIn
+ */
#include "user/user.h"
#include "ulib/stdio.h"
#include "ulib/string.h"
diff --git a/src/user/entry.S b/src/user/entry.S
index 432211c..41e0964 100644
--- a/src/user/entry.S
+++ b/src/user/entry.S
@@ -1,3 +1,6 @@
+# SPDX-License-Identifier: GPL-2.0-or-later
+# Copyright (C) 2026 Richard Qin
+
.section .text
.global _start
diff --git a/src/user/grep.cc b/src/user/grep.cc
index 5ed61b4..1e1c42d 100644
--- a/src/user/grep.cc
+++ b/src/user/grep.cc
@@ -1,3 +1,7 @@
+// SPDX-License-Identifier: GPL-2.0-or-later
+/*
+ * Copyright (C) 2026 Richard QIn
+ */
#include "ulib/stdio.h"
#include "ulib/stdlib.h"
#include "ulib/string.h"
diff --git a/src/user/init.cc b/src/user/init.cc
index 07ed97e..f1a6e29 100644
--- a/src/user/init.cc
+++ b/src/user/init.cc
@@ -1,3 +1,7 @@
+// SPDX-License-Identifier: GPL-2.0-or-later
+/*
+ * Copyright (C) 2026 Richard QIn
+ */
#include "ulib/stdio.h"
#include "ulib/stdlib.h"
#include "ulib/string.h"
diff --git a/src/user/kill.cc b/src/user/kill.cc
index 18b7f02..d38cdd6 100644
--- a/src/user/kill.cc
+++ b/src/user/kill.cc
@@ -1,3 +1,7 @@
+// SPDX-License-Identifier: GPL-2.0-or-later
+/*
+ * Copyright (C) 2026 Richard QIn
+ */
#include "ulib/stdio.h"
#include "ulib/stdlib.h"
#include "user/user.h"
diff --git a/src/user/ln.cc b/src/user/ln.cc
index 2370fdc..a21ddf9 100644
--- a/src/user/ln.cc
+++ b/src/user/ln.cc
@@ -1,3 +1,7 @@
+// SPDX-License-Identifier: GPL-2.0-or-later
+/*
+ * Copyright (C) 2026 Richard QIn
+ */
#include "ulib/stdio.h"
#include "ulib/stdlib.h"
#include "user/user.h"
diff --git a/src/user/ls.cc b/src/user/ls.cc
index e472578..c44c799 100644
--- a/src/user/ls.cc
+++ b/src/user/ls.cc
@@ -1,3 +1,7 @@
+// SPDX-License-Identifier: GPL-2.0-or-later
+/*
+ * Copyright (C) 2026 Richard QIn
+ */
#include "ulib/stdio.h"
#include "ulib/stdlib.h"
#include "ulib/string.h"
diff --git a/src/user/mkdir.cc b/src/user/mkdir.cc
index 8219109..6da8b49 100644
--- a/src/user/mkdir.cc
+++ b/src/user/mkdir.cc
@@ -1,3 +1,7 @@
+// SPDX-License-Identifier: GPL-2.0-or-later
+/*
+ * Copyright (C) 2026 Richard QIn
+ */
#include "ulib/stdio.h"
#include "user/user.h"
diff --git a/src/user/mv.cc b/src/user/mv.cc
index 2d30f01..a196145 100644
--- a/src/user/mv.cc
+++ b/src/user/mv.cc
@@ -1,3 +1,7 @@
+// SPDX-License-Identifier: GPL-2.0-or-later
+/*
+ * Copyright (C) 2026 Richard QIn
+ */
#include "ulib/stdio.h"
#include "ulib/stdlib.h"
#include "user/user.h"
diff --git a/src/user/rm.cc b/src/user/rm.cc
index 82b04c5..4777ade 100644
--- a/src/user/rm.cc
+++ b/src/user/rm.cc
@@ -1,3 +1,7 @@
+// SPDX-License-Identifier: GPL-2.0-or-later
+/*
+ * Copyright (C) 2026 Richard QIn
+ */
#include "ulib/stdio.h"
#include "ulib/stdlib.h"
#include "user/user.h"
diff --git a/src/user/sh.cc b/src/user/sh.cc
index 760f29e..1bf9ebb 100644
--- a/src/user/sh.cc
+++ b/src/user/sh.cc
@@ -1,3 +1,7 @@
+// SPDX-License-Identifier: GPL-2.0-or-later
+/*
+ * Copyright (C) 2026 Richard QIn
+ */
#include "ulib/stdio.h"
#include "ulib/stdlib.h"
#include "ulib/string.h"
diff --git a/src/user/touch.cc b/src/user/touch.cc
index b978f52..2f9f9f6 100644
--- a/src/user/touch.cc
+++ b/src/user/touch.cc
@@ -1,3 +1,7 @@
+// SPDX-License-Identifier: GPL-2.0-or-later
+/*
+ * Copyright (C) 2026 Richard QIn
+ */
#include "ulib/stdio.h"
#include "ulib/stdlib.h"
#include "user/user.h"
diff --git a/src/user/user.ld b/src/user/user.ld
index 8c9999a..f0a4b27 100644
--- a/src/user/user.ld
+++ b/src/user/user.ld
@@ -1,3 +1,6 @@
+# SPDX-License-Identifier: GPL-2.0-or-later
+# Copyright (C) 2026 Richard Qin
+
OUTPUT_ARCH( "riscv" )
ENTRY( _start )
diff --git a/src/user/usys.S b/src/user/usys.S
index 56cbb22..885d45c 100644
--- a/src/user/usys.S
+++ b/src/user/usys.S
@@ -1,3 +1,6 @@
+# SPDX-License-Identifier: GPL-2.0-or-later
+# Copyright (C) 2026 Richard Qin
+
#include "kernel/syscall.h"
#define SYSCALL(name) \
diff --git a/src/user/wc.cc b/src/user/wc.cc
index 654aac2..fbe9735 100644
--- a/src/user/wc.cc
+++ b/src/user/wc.cc
@@ -1,3 +1,7 @@
+// SPDX-License-Identifier: GPL-2.0-or-later
+/*
+ * Copyright (C) 2026 Richard QIn
+ */
#include "ulib/stdio.h"
#include "ulib/stdlib.h"
#include "ulib/string.h"