diff options
| author | JozanLeClerc <> | 2022-05-22 15:12:53 +0000 | 
|---|---|---|
| committer | JozanLeClerc <> | 2022-05-22 15:12:53 +0000 | 
| commit | 9cab06121021ce8fb4626dfdbe34ef50bf55f182 (patch) | |
| tree | 6578a576da71394e92598224af901aa60e59e9fa | |
| parent | Added (diff) | |
| download | asm-cgi-example-9cab06121021ce8fb4626dfdbe34ef50bf55f182.tar.gz asm-cgi-example-9cab06121021ce8fb4626dfdbe34ef50bf55f182.tar.bz2 asm-cgi-example-9cab06121021ce8fb4626dfdbe34ef50bf55f182.tar.xz asm-cgi-example-9cab06121021ce8fb4626dfdbe34ef50bf55f182.tar.zst asm-cgi-example-9cab06121021ce8fb4626dfdbe34ef50bf55f182.zip | |
Update
FossilOrigin-Name: 34d2b122f1068e995b1a752fbfc9d37878cf4e80
| -rw-r--r-- | src/c_cpu.S | 47 | ||||
| -rw-r--r-- | src/c_example.S | 6 | 
2 files changed, 50 insertions, 3 deletions
| diff --git a/src/c_cpu.S b/src/c_cpu.S index 1c5a30c..395b176 100644 --- a/src/c_cpu.S +++ b/src/c_cpu.S @@ -50,6 +50,15 @@ c_cpu:  fork_model:  	xorq	%rdi, %rdi  	xorq	%rsi, %rsi +	xorq	%rdx, %rdx +	xorq	%rax, %rax +	movb	$0x1, %dil +	movq	$str_model, %rsi +	movq	$len_model, %rdx +	movb	$0x4, %al			/* SYS_write */ +	syscall +	xorq	%rdi, %rdi +	xorq	%rsi, %rsi  	xorq	%rax, %rax  	movb	$0x2, %al			/* SYS_fork */  	syscall @@ -61,6 +70,15 @@ fork_model:  fork_ncpu:  	xorq	%rdi, %rdi  	xorq	%rsi, %rsi +	xorq	%rdx, %rdx +	xorq	%rax, %rax +	movb	$0x1, %dil +	movq	$str_ncpu, %rsi +	movq	$len_ncpu, %rdx +	movb	$0x4, %al			/* SYS_write */ +	syscall +	xorq	%rdi, %rdi +	xorq	%rsi, %rsi  	xorq	%rax, %rax  	movb	$0x2, %al			/* SYS_fork */  	syscall @@ -72,6 +90,15 @@ fork_ncpu:  fork_lscpu:  	xorq	%rdi, %rdi  	xorq	%rsi, %rsi +	xorq	%rdx, %rdx +	xorq	%rax, %rax +	movb	$0x1, %dil +	movq	$str_lscpu, %rsi +	movq	$len_lscpu, %rdx +	movb	$0x4, %al			/* SYS_write */ +	syscall +	xorq	%rdi, %rdi +	xorq	%rsi, %rsi  	xorq	%rax, %rax  	movb	$0x2, %al			/* SYS_fork */  	syscall @@ -154,6 +181,17 @@ wait_lscpu:  	xorq	%rax, %rax  	movb	$0x7, %al			/* sys_wait4 */  	syscall + +write_end: +	xorq	%rdi, %rdi +	xorq	%rsi, %rsi +	xorq	%rdx, %rdx +	xorq	%rax, %rax +	movb	$0x1, %dil +	movq	$str_end, %rsi +	movq	$len_end, %rdx +	movb	$0x4, %al			/* SYS_write */ +	syscall  	retq  err: @@ -164,7 +202,14 @@ err:  	syscall  .data -# sysctl hw.model\n\t\t\tsysctl hw.ncpu\n\t\t\tlscpu +	str_model:	.asciz "\t\t<p>\n\t\t\t<code>sysctl hw.model</code>:\n\t\t</p>\n\t\t<pre>\n" +	len_model	= . - str_model +	str_ncpu:	.asciz "\t\t</pre>\n\t\t<p>\n\t\t\t<code>sysctl hw.ncpu</code>:\n\t\t</p>\n\t\t<pre>\n" +	len_ncpu	= . - str_ncpu +	str_lscpu:	.asciz "\t\t</pre>\n\t\t<p>\n\t\t\t<code>lscpu</code>:\n\t\t</p>\n\t\t<pre>\n" +	len_lscpu	= . - str_lscpu +	str_end:	.asciz "\t\t</pre>\n" +	len_end		= . - str_end  	sysctl:		.asciz "/sbin/sysctl"  	lscpu:		.asciz "/usr/local/bin/lscpu"  	model:		.asciz "hw.model" diff --git a/src/c_example.S b/src/c_example.S index 3de431b..17b2f34 100644 --- a/src/c_example.S +++ b/src/c_example.S @@ -58,6 +58,8 @@ write_begin:  	movq	$len_begin, %rdx  	movb	$0x4, %al			/* SYS_write */  	syscall + +cpu:  	callq	c_cpu  write_end: @@ -75,7 +77,7 @@ end:  	retq  .data -	str_begin:	.ascii "Content-type: text/html\n\n<html>\n\t<head>\n\t\t<title>Title</title>\n\t</head>\n\t<body>\n\t\t<h1>asm-cgi-example</h1>\n\t\t<p>\n\t\t\tThis page was generated by a small assembly program. It will run some shell commands for you. It's pointless in essence but I am trying to prove a point.\n\t\t</p>\n\t\t<h2>Some CPU infos</h2>\n\t\t<p>\n\t\t\tLet's fetch some infos about this server's CPU.\n\t\t\n\t\t<pre>\n" +	str_begin:	.ascii "Content-type: text/html\n\n<html>\n\t<head>\n\t\t<title>Title</title>\n\t</head>\n\t<body>\n\t\t<h1>asm-cgi-example</h1>\n\t\t<p>\n\t\t\tThis page was generated by a small assembly program. It will run some shell commands for you. It's pointless in essence but I am trying to prove a point.\n\t\t</p>\n\t\t<h2>Some CPU infos</h2>\n\t\t<p>\n\t\t\tLet's fetch some infos about this server's CPU.\n\t\t</p>\n"  	len_begin	= . - str_begin -	str_end:	.ascii "\t\t</pre></p>\n\t</body>\n</html>\n" +	str_end:	.ascii "\t</body>\n</html>\n"  	len_end		= . - str_end | 
