The Meson Build System
http://mesonbuild.com/
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
36 lines
746 B
36 lines
746 B
5 years ago
|
/* Do not use this as the basis of your own libc.
|
||
|
* The code is probably unoptimal or wonky, as I
|
||
|
* had no prior experience with this, but instead
|
||
|
* just fiddled with the code until it worked.
|
||
|
*/
|
||
|
|
||
|
#include<stdio.h>
|
||
|
|
||
|
#define STDOUT 1
|
||
|
#define SYS_WRITE 4
|
||
|
|
||
|
int simple_print(const char *msg, const long bufsize) {
|
||
|
int count;
|
||
|
long total_written = 0;
|
||
|
while(total_written < bufsize) {
|
||
|
asm(
|
||
|
"int $0x80\n\t"
|
||
|
: "=a"(count)
|
||
|
: "0"(SYS_WRITE), "b"(STDOUT), "c"(msg+total_written), "d"(bufsize-total_written)
|
||
|
:);
|
||
|
if(count == 0) {
|
||
|
return 1;
|
||
|
}
|
||
|
total_written += count;
|
||
|
}
|
||
|
return 0;
|
||
|
}
|
||
|
|
||
|
int simple_strlen(const char *str) {
|
||
|
int len = 0;
|
||
|
while(str[len] != '\0') {
|
||
|
len++;
|
||
|
}
|
||
|
return len;
|
||
|
}
|