24.01.2014 Views

Codice

Codice

Codice

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

190 volume VI os16<br />

Script e sorgenti del kernel 191<br />

«<br />

«<br />

«<br />

100036 |#define print_hex_int_reverse(d, e) (print_hex_16_reverse (d, e))<br />

100037 |#define print_hex_long_reverse(d, e) (print_hex_32_reverse (d, e))<br />

100038 |#define print_hex_long_int_reverse(d, e) (print_hex_32_reverse (d, e))<br />

100039 |//----------------------------------------------------------------------<br />

100040 |void print_segments (void);<br />

100041 |void print_kmem (void);<br />

100042 |//----------------------------------------------------------------------<br />

100043 |void print_mb_map (void);<br />

100044 |void print_memory_map (void);<br />

100045 |//----------------------------------------------------------------------<br />

100046 |void print_superblock (sb_t *sb);<br />

100047 |void print_inode (inode_t *inode);<br />

100048 |void print_inode_map (sb_t *sb, uint16_t *bitmap);<br />

100049 |void print_zone_map (sb_t *sb, uint16_t *bitmap);<br />

100050 |void print_inode_head (void);<br />

100051 |void print_inode_list (void);<br />

100052 |void print_inode_zones_head (void);<br />

100053 |void print_inode_zones (inode_t *inode);<br />

100054 |void print_inode_zones_list (void);<br />

100055 |//----------------------------------------------------------------------<br />

100056 |void print_proc_head (void);<br />

100057 |void print_proc_pid (proc_t *ps, pid_t pid);<br />

100058 |void print_proc_list (void);<br />

100059 |//----------------------------------------------------------------------<br />

100060 |void print_file_head (void);<br />

100061 |void print_file_num (int num);<br />

100062 |void print_file_list (void);<br />

100063 |//----------------------------------------------------------------------<br />

100064 |void print_fd_head (void);<br />

100065 |void print_fd (fd_t *fd);<br />

100066 |void print_fd_list (pid_t pid);<br />

100067 |//----------------------------------------------------------------------<br />

100068 |void print_time (void);<br />

100069 |//----------------------------------------------------------------------<br />

100070 |<br />

100071 |#endif<br />

104.3.1 kernel/diag/print_fd.c<br />

Si veda la sezione 103.2.<br />

110001 |#include <br />

110002 |#include <br />

110003 |#include <br />

110004 |#include <br />

110005 |//----------------------------------------------------------------------<br />

110006 |void<br />

110007 |print_fd (fd_t *fd)<br />

110008 |{<br />

110009 | k_printf ("%04x %6li %3i %c/%c %05o %5i %3i %5li %4i %04x %3i",<br />

110010 | (unsigned int) fd->fl_flags,<br />

110011 | (unsigned long int) fd->file->offset,<br />

110012 | (unsigned int) fd->file->references,<br />

110013 | (fd->file->oflags & O_RDONLY ? ’r’ : ’ ’),<br />

110014 | (fd->file->oflags & O_WRONLY ? ’w’ : ’ ’),<br />

110015 | (unsigned int) fd->file->inode->mode,<br />

110016 | (unsigned int) fd->file->inode->uid,<br />

110017 | (unsigned int) fd->file->inode->gid,<br />

110018 | (unsigned long int) fd->file->inode->size,<br />

110019 | (unsigned int) fd->file->inode->links,<br />

110020 | (unsigned int) fd->file->inode->sb->device,<br />

110021 | (unsigned int) fd->file->inode->ino);<br />

110022 | k_printf ("\n");<br />

110023 |}<br />

104.3.2 kernel/diag/print_fd_head.c<br />

Si veda la sezione 103.2.<br />

120001 |#include <br />

120002 |#include <br />

120003 |#include <br />

120004 |//----------------------------------------------------------------------<br />

120005 |void<br />

120006 |print_fd_head (void)<br />

120007 |{<br />

120008 |<br />

120009 | k_printf ("n. stat offset ref flg mode uid gid size lnks ");<br />

120010 | k_printf ("dev ino\n");<br />

120011 |}<br />

104.3.3 kernel/diag/print_fd_list.c<br />

Si veda la sezione 103.2.<br />

130001 |#include <br />

130002 |#include <br />

130003 |#include <br />

130004 |//----------------------------------------------------------------------<br />

130005 |void<br />

130006 |print_fd_list (pid_t pid)<br />

130007 |{<br />

130008 | int fdn = 0;<br />

130009 | fd_t *fd;<br />

130010 | fd = fd_reference (pid, &fdn);<br />

130011 | print_fd_head ();<br />

130012 | for (fdn = 0; fdn < OPEN_MAX; fdn++)<br />

130013 | {<br />

130014 | if (fd[fdn].file != NULL)<br />

130015 | {<br />

130016 | k_printf ("%2i ", fdn);<br />

130017 | print_fd (fd);<br />

130018 | }<br />

130019 | }<br />

130020 |}<br />

104.3.4 kernel/diag/print_file_head.c<br />

Si veda la sezione 103.2.<br />

140001 |#include <br />

140002 |#include <br />

140003 |#include <br />

140004 |//----------------------------------------------------------------------<br />

140005 |void<br />

140006 |print_file_head (void)<br />

140007 |{<br />

140008 |<br />

140009 | k_printf ("n. ref flg mode uid size lnks dev ino\n");<br />

140010 |}<br />

104.3.5 kernel/diag/print_file_list.c<br />

Si veda la sezione 103.2.<br />

150001 |#include <br />

150002 |#include <br />

150003 |#include <br />

150004 |//----------------------------------------------------------------------<br />

150005 |void<br />

150006 |print_file_list (void)<br />

150007 |{<br />

150008 | int fno;<br />

150009 | file_t *file = file_reference (0);<br />

150010 | //<br />

150011 | print_file_head ();<br />

150012 | //<br />

150013 | for (fno = 0; fno < FILE_MAX_SLOTS; fno++)<br />

150014 | {<br />

150015 | if (file[fno].references > 0)<br />

150016 | {<br />

150017 | print_file_num (fno);<br />

150018 | }<br />

150019 | }<br />

150020 |}<br />

104.3.6 kernel/diag/print_file_num.c<br />

Si veda la sezione 103.2.<br />

160001 |#include <br />

160002 |#include <br />

160003 |#include <br />

160004 |#include <br />

160005 |//----------------------------------------------------------------------<br />

160006 |void<br />

160007 |print_file_num (int fno)<br />

160008 |{<br />

160009 | file_t *file = file_reference (fno);<br />

160010 |<br />

160011 | k_printf ("%2i %3i %c/%c %05o %3i %5li %4i %04x %3i",<br />

160012 | (unsigned int) fno,<br />

160013 | (unsigned int) file->references,<br />

160014 | (file->oflags & O_RDONLY ? ’r’ : ’ ’),<br />

160015 | (file->oflags & O_WRONLY ? ’w’ : ’ ’),<br />

160016 | (unsigned int) file->inode->mode,<br />

160017 | (unsigned int) file->inode->uid,<br />

160018 | (unsigned long int) file->inode->size,<br />

160019 | (unsigned int) file->inode->links,<br />

160020 | (unsigned int) file->inode->sb->device,<br />

160021 | (unsigned int) file->inode->ino);<br />

160022 | k_printf ("\n");<br />

160023 |}<br />

104.3.7 kernel/diag/print_hex_16.c<br />

Si veda la sezione 103.2.<br />

170001 |#include <br />

170002 |#include <br />

170003 |#include <br />

170004 |#include <br />

170005 |#include <br />

170006 |//----------------------------------------------------------------------<br />

170007 |void<br />

170008 |print_hex_16 (void *data, size_t elements)<br />

170009 |{<br />

170010 | uint16_t *element = (uint16_t *) data;<br />

170011 | int i;<br />

170012 | for (i = 0; i < elements; i++)<br />

170013 | {<br />

170014 | k_printf ("%04" PRIx16, (uint16_t) element[i]);<br />

170015 | }<br />

170016 |}<br />

104.3.8 kernel/diag/print_hex_16_reverse.c<br />

Si veda la sezione 103.2.<br />

180001 |#include <br />

180002 |#include <br />

180003 |#include <br />

180004 |#include <br />

180005 |#include <br />

180006 |//----------------------------------------------------------------------<br />

180007 |void<br />

180008 |print_hex_16_reverse (void *data, size_t elements)<br />

180009 |{<br />

180010 | uint16_t *element = (uint16_t *) data;<br />

180011 | int i;<br />

180012 | for (i = 0; i < elements; i++)<br />

180013 | {<br />

180014 | k_printf ("%04" PRIx16, reverse_16_bit (element[i]));<br />

180015 | }<br />

180016 |}<br />

«<br />

«<br />

«<br />

«<br />

«

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

Saved successfully!

Ooh no, something went wrong!