Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
54 commits
Select commit Hold shift + click to select a range
06ee098
Update LLVM backend to work with version 12
bmourad01 Oct 23, 2021
c3f1f26
Merge branch 'BinaryAnalysisPlatform:master' into master
bmourad01 Nov 3, 2021
3b8b06c
Merge branch 'BinaryAnalysisPlatform:master' into master
bmourad01 Nov 4, 2021
53677fc
Merge branch 'BinaryAnalysisPlatform:master' into master
bmourad01 Nov 6, 2021
4695b07
Merge branch 'BinaryAnalysisPlatform:master' into master
bmourad01 Nov 13, 2021
c6c89c1
Merge branch 'BinaryAnalysisPlatform:master' into master
bmourad01 Nov 16, 2021
a1fb592
Merge branch 'BinaryAnalysisPlatform:master' into master
bmourad01 Nov 19, 2021
fa3c6da
Merge branch 'BinaryAnalysisPlatform:master' into master
bmourad01 Nov 20, 2021
d5dc07f
Merge branch 'BinaryAnalysisPlatform:master' into master
bmourad01 Nov 25, 2021
896a34d
Merge branch 'BinaryAnalysisPlatform:master' into master
bmourad01 Dec 1, 2021
3cce21b
Merge branch 'BinaryAnalysisPlatform:master' into master
bmourad01 Dec 2, 2021
96874e4
Merge branch 'BinaryAnalysisPlatform:master' into master
bmourad01 Dec 3, 2021
c25c801
Merge branch 'BinaryAnalysisPlatform:master' into master
bmourad01 Dec 3, 2021
cf3352a
Merge branch 'BinaryAnalysisPlatform:master' into master
bmourad01 Dec 8, 2021
9cc0b14
Merge branch 'BinaryAnalysisPlatform:master' into master
bmourad01 Dec 8, 2021
5a38191
Merge branch 'BinaryAnalysisPlatform:master' into master
bmourad01 Dec 9, 2021
542ba10
Merge branch 'BinaryAnalysisPlatform:master' into master
bmourad01 Dec 9, 2021
14e4b38
Merge branch 'BinaryAnalysisPlatform:master' into master
bmourad01 Jan 5, 2022
2e5ff40
Merge branch 'BinaryAnalysisPlatform:master' into master
bmourad01 Jan 5, 2022
6c98118
Merge branch 'BinaryAnalysisPlatform:master' into master
bmourad01 Jan 5, 2022
a57a83a
Merge branch 'BinaryAnalysisPlatform:master' into master
bmourad01 Jan 6, 2022
7a0cd73
Merge branch 'BinaryAnalysisPlatform:master' into master
bmourad01 Jan 7, 2022
5ecd709
Merge branch 'BinaryAnalysisPlatform:master' into master
bmourad01 Jan 12, 2022
16938dc
Merge branch 'BinaryAnalysisPlatform:master' into master
bmourad01 Jan 13, 2022
206cb80
Merge branch 'BinaryAnalysisPlatform:master' into master
bmourad01 Jan 14, 2022
300f1a3
Merge branch 'BinaryAnalysisPlatform:master' into master
bmourad01 Jan 21, 2022
d61f265
Merge branch 'BinaryAnalysisPlatform:master' into master
bmourad01 Jan 25, 2022
2520090
Merge branch 'BinaryAnalysisPlatform:master' into master
bmourad01 Jan 25, 2022
6e12b2b
Merge branch 'BinaryAnalysisPlatform:master' into master
bmourad01 Jan 28, 2022
1016a79
Merge branch 'BinaryAnalysisPlatform:master' into master
bmourad01 Jan 31, 2022
69deca5
Merge branch 'BinaryAnalysisPlatform:master' into master
bmourad01 Feb 1, 2022
efbd9bb
Merge branch 'BinaryAnalysisPlatform:master' into master
bmourad01 Feb 2, 2022
9d4b4b0
Merge branch 'BinaryAnalysisPlatform:master' into master
bmourad01 Feb 5, 2022
ef3f030
Merge branch 'BinaryAnalysisPlatform:master' into master
bmourad01 Feb 9, 2022
e7f3150
Merge branch 'BinaryAnalysisPlatform:master' into master
bmourad01 Feb 16, 2022
df4bfe9
Merge branch 'BinaryAnalysisPlatform:master' into master
bmourad01 Mar 4, 2022
817df10
Merge branch 'BinaryAnalysisPlatform:master' into master
bmourad01 Mar 9, 2022
f3d8c10
Merge branch 'BinaryAnalysisPlatform:master' into master
bmourad01 Mar 14, 2022
ca3b2b1
Merge branch 'BinaryAnalysisPlatform:master' into master
bmourad01 Mar 16, 2022
c7a57cd
Merge branch 'BinaryAnalysisPlatform:master' into master
bmourad01 Mar 21, 2022
e21eb17
Merge branch 'BinaryAnalysisPlatform:master' into master
bmourad01 Mar 24, 2022
57ce29b
Merge branch 'BinaryAnalysisPlatform:master' into master
bmourad01 Mar 29, 2022
f955891
Merge branch 'BinaryAnalysisPlatform:master' into master
bmourad01 Mar 30, 2022
e071b13
Merge branch 'BinaryAnalysisPlatform:master' into master
bmourad01 Mar 30, 2022
c631d0a
Merge branch 'BinaryAnalysisPlatform:master' into master
bmourad01 Apr 12, 2022
3e99da1
Merge branch 'BinaryAnalysisPlatform:master' into master
bmourad01 Apr 12, 2022
e398f54
Merge branch 'BinaryAnalysisPlatform:master' into master
bmourad01 Apr 13, 2022
3a0016e
Merge branch 'BinaryAnalysisPlatform:master' into master
bmourad01 Apr 18, 2022
91bc913
Merge branch 'BinaryAnalysisPlatform:master' into master
bmourad01 Apr 21, 2022
8f035f5
Merge branch 'BinaryAnalysisPlatform:master' into master
bmourad01 Apr 21, 2022
c487c76
Merge branch 'BinaryAnalysisPlatform:master' into master
bmourad01 May 1, 2022
d5099df
Merge branch 'BinaryAnalysisPlatform:master' into master
bmourad01 May 7, 2022
5571454
Merge branch 'BinaryAnalysisPlatform:master' into master
bmourad01 May 16, 2022
7c03675
Adds some missing functionality to Primus Lisp POSIX
May 20, 2022
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
23 changes: 16 additions & 7 deletions plugins/primus_lisp/site-lisp/libc-init.lisp
Original file line number Diff line number Diff line change
Expand Up @@ -24,19 +24,28 @@
(set X1 0))


(defun setup-stack-canary ()
(defun setup-thread-local-storage ()
(declare (context (abi "sysv"))
(global program:FS_BASE))
(set FS_BASE (- brk 0x28))
(memory-allocate brk (sizeof ptr_t))
(write-word ptr_t brk 0xDEADBEEFBEAFDEAD)
(+= brk (sizeof ptr_t)))
(global x86-64:FS_BASE))
(let ((tcb-size (+ (* 6 (sizeof ptr_t))
(* 2 (sizeof int)))))
(set FS_BASE brk)
;; tcbhead_t structure
(memory-allocate brk tcb-size 0)
(write-word ptr_t brk brk) ; tcb
(write-word ptr_t (+ brk 0x28) 0xDEADBEEFBEAFDEAD) ; stack_guard
;; ptmalloc structure
(memory-allocate (- brk 0x28) (sizeof ptr_t) 0) ; arena
(memory-allocate (- brk 0x38) (sizeof ptr_t) 0) ; freelist
;; misc
(memory-allocate (- brk 0x40) (sizeof int) 0) ; errno
(+= brk tcb-size)))

(defun init (main argc argv auxv)
"GNU libc initialization stub"
(declare (external "__libc_start_main")
(context (abi "sysv")))
(setup-stack-canary)
(setup-thread-local-storage)
(exit-with (invoke-subroutine main argc argv)))

(defun init (args on-exit main)
Expand Down
15 changes: 15 additions & 0 deletions plugins/primus_lisp/site-lisp/stdio.lisp
Original file line number Diff line number Diff line change
Expand Up @@ -130,6 +130,21 @@
(memory-write (+ ptr (min n i)) 0:8)
ptr))))

(defun gets (ptr)
(declare (external "gets"))
(let ((str *standard-input*)
(i 0)
(continue true))
(while continue
(let ((c (fgetc str)))
(if (= c -1)
(set continue false)
(memory-write (+ ptr i) (cast char c))
(set continue (/= c 0xA))
(incr i))))
(memory-write (+ ptr i) 0:8)
ptr))


(defun getchar ()
(declare (external "getchar" "getchar_unlocked"))
Expand Down
4 changes: 4 additions & 0 deletions plugins/primus_lisp/site-lisp/string.lisp
Original file line number Diff line number Diff line change
Expand Up @@ -89,6 +89,10 @@
(declare (external "strrchr" "rindex"))
(memrchr p c (+ (strlen p) 1)))

(defun strchrnul (p c)
(declare (external "strchrnul"))
(let ((p (strchr p c)))
(if p p (strchr p 0))))

(defun strpbrk (str set)
(declare (external "strpbrk"))
Expand Down