Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
256 volume VI os16<br />
Script e sorgenti del kernel 257<br />
1350022 |int k_vsprintf (char *restrict string, const char *restrict format,<br />
1410012 | return;<br />
1350023 | va_list arg);<br />
1410013 | }<br />
1350024 |void k_perror (const char *s);<br />
1350025 |<br />
1410014 | //<br />
1410015 | // Show the string if there is one.<br />
1350026 |int k_kill (pid_t pid, int sig);<br />
1410016 | //<br />
1350027 |int k_open (const char *file, int oflags, ...);<br />
1410017 | if (s != NULL && strlen (s) > 0)<br />
1350028 |void k_close (int fd);<br />
1410018 | {<br />
1350029 |ssize_t k_read (int fd, void *buffer, size_t count);<br />
1410019 | k_printf ("%s: ", s);<br />
1350030 |//----------------------------------------------------------------------<br />
1350031 |<br />
1410020 | }<br />
1410021 | //<br />
1350032 |#endif<br />
1410022 | // Show the translated error.<br />
1410023 | //<br />
1410024 | if (errfn[0] != 0 && errln != 0)<br />
104.6.1 kernel/k_libc/k_clock.c<br />
1410025 | {<br />
1410026 | k_printf ("[%s:%u:%i] %s\n",<br />
«<br />
Si veda la sezione 103.5.<br />
1360001 |#include <br />
1360002 |//----------------------------------------------------------------------<br />
1360003 |extern clock_t _clock_ticks; // uint32_t<br />
1360004 |//----------------------------------------------------------------------<br />
1360005 |clock_t<br />
1410027 | errfn, errln, errno, strerror (errno));<br />
1410028 | }<br />
1410029 | else<br />
1410030 | {<br />
1410031 | k_printf ("[%i] %s\n", errno, strerror (errno));<br />
1410032 | }<br />
1410033 |}<br />
1360006 |k_clock (void)<br />
1360007 |{<br />
1360008 | return (_clock_ticks);<br />
1360009 |}<br />
104.6.7 kernel/k_libc/k_printf.c<br />
«<br />
Si veda la sezione 103.5.<br />
104.6.2 kernel/k_libc/k_close.c<br />
1420001 |#include <br />
1420002 |#include <br />
«<br />
Si veda la sezione 103.5.<br />
1370001 |#include <br />
1370002 |#include <br />
1370003 |//----------------------------------------------------------------------<br />
1370004 |void<br />
1370005 |k_close (int fdn)<br />
1370006 |{<br />
1420003 |//----------------------------------------------------------------------<br />
1420004 |int<br />
1420005 |k_printf (const char *restrict format, ...)<br />
1420006 |{<br />
1420007 | va_list ap;<br />
1420008 | va_start (ap, format);<br />
1420009 | return k_vprintf (format, ap);<br />
1420010 |}<br />
1370007 | fd_close ((pid_t) 0, fdn);<br />
1370008 | return;<br />
1370009 |}<br />
104.6.8 kernel/k_libc/k_puts.c<br />
«<br />
104.6.3 kernel/k_libc/k_exit.s<br />
Si veda la sezione 103.5.<br />
1430001 |#include <br />
«<br />
Si veda la sezione 103.5.<br />
1380001 |.global _k_exit<br />
1380002 |;-----------------------------------------------------------------------<br />
1380003 |.text<br />
1380004 |;-----------------------------------------------------------------------<br />
1380005 |.align 2<br />
1380006 |_k_exit:<br />
1380007 |halt:<br />
1380008 | hlt<br />
1380009 | jmp halt<br />
1430002 |#include <br />
1430003 |#include <br />
1430004 |#include <br />
1430005 |//----------------------------------------------------------------------<br />
1430006 |int<br />
1430007 |k_puts (const char *string)<br />
1430008 |{<br />
1430009 | dev_io ((pid_t) 0, DEV_TTY, DEV_WRITE, (off_t) 0, string,<br />
1430010 | strlen (string), NULL);<br />
1430011 | dev_io ((pid_t) 0, DEV_TTY, DEV_WRITE, (off_t) 0, "\n", 1, NULL);<br />
1430012 | return 1;<br />
1430013 |}<br />
«<br />
104.6.4 kernel/k_libc/k_kill.c<br />
104.6.9 kernel/k_libc/k_read.c<br />
Si veda la sezione 103.5.<br />
1390001 |#include <br />
1390002 |#include <br />
1390003 |//----------------------------------------------------------------------<br />
1390004 |int<br />
1390005 |k_kill (pid_t pid, int sig)<br />
1390006 |{<br />
1390007 | return (proc_sys_kill ((pid_t) 0, pid, sig));<br />
1390008 |}<br />
Si veda la sezione 103.5.<br />
1440001 |#include <br />
1440002 |#include <br />
1440003 |//----------------------------------------------------------------------<br />
1440004 |ssize_t<br />
1440005 |k_read (int fdn, void *buffer, size_t count)<br />
1440006 |{<br />
1440007 | int eof;<br />
1440008 | ssize_t size;<br />
«<br />
1440009 | //<br />
«<br />
104.6.5 kernel/k_libc/k_open.c<br />
Si veda la sezione 103.5.<br />
1400001 |#include <br />
1400002 |#include <br />
1400003 |#include <br />
1400004 |#include <br />
1400005 |#include <br />
1400006 |//----------------------------------------------------------------------<br />
1400007 |int<br />
1400008 |k_open (const char *file, int oflags, ...)<br />
1440010 | eof = 0;<br />
1440011 | //<br />
1440012 | while (1)<br />
1440013 | {<br />
1440014 | size += fd_read ((pid_t) 0, fdn, buffer, count, &eof);<br />
1440015 | if (size != 0 || eof)<br />
1440016 | {<br />
1440017 | break;<br />
1440018 | }<br />
1440019 | }<br />
1440020 | return (size);<br />
1440021 |}<br />
1400009 |{<br />
1400010 | mode_t mode;<br />
1400011 | va_list ap;<br />
1400012 | //<br />
1400013 | va_start (ap, oflags);<br />
1400014 | mode = va_arg (ap, mode_t);<br />
1400015 | //<br />
1400016 | if (file == NULL || strlen (file) == 0)<br />
1400017 | {<br />
1400018 | errset (EINVAL); // Invalid argument.<br />
1400019 | return (-1);<br />
1400020 | }<br />
1400021 | return (fd_open ((pid_t) 0, file, oflags, mode));<br />
1400022 |}<br />
104.6.10 kernel/k_libc/k_stime.c<br />
Si veda la sezione 103.5.<br />
1450001 |#include <br />
1450002 |//----------------------------------------------------------------------<br />
1450003 |extern time_t _clock_seconds; // uint32_t<br />
1450004 |//----------------------------------------------------------------------<br />
1450005 |int<br />
1450006 |k_stime (time_t *timer)<br />
1450007 |{<br />
1450008 | _clock_seconds = *timer;<br />
1450009 | return (0);<br />
«<br />
1450010 |}<br />
104.6.6 kernel/k_libc/k_perror.c<br />
«<br />
Si veda la sezione 103.5.<br />
1410001 |#include <br />
1410002 |#include <br />
1410003 |//----------------------------------------------------------------------<br />
1410004 |void<br />
1410005 |k_perror (const char *s)<br />
1410006 |{<br />
1410007 | //<br />
1410008 | // If errno is zero, there is nothing to show.<br />
1410009 | //<br />
1410010 | if (errno == 0)<br />
1410011 | {<br />
104.6.11 kernel/k_libc/k_time.c<br />
Si veda la sezione 103.5.<br />
1460001 |#include <br />
1460002 |#include <br />
1460003 |//----------------------------------------------------------------------<br />
1460004 |extern time_t _clock_seconds; // uint32_t<br />
1460005 |//----------------------------------------------------------------------<br />
1460006 |time_t<br />
1460007 |k_time (time_t *timer)<br />
1460008 |{<br />
1460009 | if (timer != NULL)<br />
«