24.01.2014 Views

Codice

Codice

Codice

SHOW MORE
SHOW LESS

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 />

«

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!