{"id":4186,"date":"2022-12-20T17:39:39","date_gmt":"2022-12-20T20:39:39","guid":{"rendered":"http:\/\/lode.uno\/linux-man\/index.php\/2022\/12\/20\/intro-man9\/"},"modified":"2022-12-20T17:39:39","modified_gmt":"2022-12-20T20:39:39","slug":"intro-man9","status":"publish","type":"post","link":"https:\/\/lode.uno\/linux-man\/2022\/12\/20\/intro-man9\/","title":{"rendered":"intro (man9)"},"content":{"rendered":"<h1 align=\"center\">intro<\/h1>\n<p> <a href=\"#NAME\">NAME<\/a><br \/> <a href=\"#SYNOPSIS\">SYNOPSIS<\/a><br \/> <a href=\"#DESCRIPTION\">DESCRIPTION<\/a><br \/> <a href=\"#AVAILABILITY\">AVAILABILITY<\/a><br \/> <a href=\"#SEE ALSO\">SEE ALSO<\/a><br \/> <a href=\"#AUTHORS\">AUTHORS<\/a><br \/> <a href=\"#BUGS\">BUGS<\/a> <\/p>\n<hr>\n<h2>NAME <a name=\"NAME\"><\/a> <\/h2>\n<p style=\"margin-left:11%; margin-top: 1em\">intro \u2212 Introduction to kernel interface<\/p>\n<h2>SYNOPSIS <a name=\"SYNOPSIS\"><\/a> <\/h2>\n<p style=\"margin-left:11%; margin-top: 1em\"><b>#include <linux\/version.h><\/b><\/p>\n<h2>DESCRIPTION <a name=\"DESCRIPTION\"><\/a> <\/h2>\n<p style=\"margin-left:11%; margin-top: 1em\">This section documents the functions available to device driver writers and kernel level modules. The functions are of interest mainly to device driver writers, although anyone considering running code in linux kernel mode may need to be familiar with these interfaces.<\/p>\n<p style=\"margin-left:11%; margin-top: 1em\">Some of the functions of the DDI exist only in certain versions of the kernel. Use the <b>LINUX_VERSION_CODE<\/b> macro to test for specific versions of the kernel. For example, to use a feature that is new to 2.1, say:<\/p>\n<p style=\"margin-left:11%; margin-top: 1em\">#if LINUX_VERSION_CODE >= 0x020100 <br \/> &#8230; use new stuff &#8230; <br \/> #else <br \/> &#8230; do it the old way &#8230; <br \/> #endif<\/p>\n<p style=\"margin-left:11%; margin-top: 1em\">The following is a list of the man pages, divided roughly into function groups.<\/p>\n<p style=\"margin-left:11%; margin-top: 1em\"><b>Kernel Functions<\/b> <br \/> These are general kernel functions.<\/p>\n<table width=\"100%\" border=\"0\" rules=\"none\" frame=\"void\" cellspacing=\"0\" cellpadding=\"0\">\n<tr valign=\"top\" align=\"left\">\n<td width=\"22%\"><\/td>\n<td width=\"7%\">\n<p>MAJOR<\/p>\n<\/td>\n<td width=\"71%\"> <\/td>\n<\/tr>\n<\/table>\n<p style=\"margin-left:22%;\">MOD_INC_USE_COUNT<\/p>\n<table width=\"100%\" border=\"0\" rules=\"none\" frame=\"void\" cellspacing=\"0\" cellpadding=\"0\">\n<tr valign=\"top\" align=\"left\">\n<td width=\"22%\"><\/td>\n<td width=\"4%\">\n<p>cli<\/p>\n<\/td>\n<td width=\"74%\"> <\/td>\n<\/tr>\n<\/table>\n<p style=\"margin-left:22%;\">init_bh <br \/> init_module <br \/> kmalloc <br \/> poll_wait<\/p>\n<table width=\"100%\" border=\"0\" rules=\"none\" frame=\"void\" cellspacing=\"0\" cellpadding=\"0\">\n<tr valign=\"top\" align=\"left\">\n<td width=\"22%\"><\/td>\n<td width=\"9%\">\n<p>printk<\/p>\n<\/td>\n<td width=\"69%\"> <\/td>\n<\/tr>\n<\/table>\n<p style=\"margin-left:22%;\">probe_irq_on <br \/> register_chrdev <br \/> register_console <br \/> request_irq <br \/> save_flags <br \/> sleep_on <br \/> wake_up<\/p>\n<p style=\"margin-left:11%; margin-top: 1em\"><b>\/proc functions<\/b> <br \/> These functions relate to manipulation of the <b>\/proc<\/b> filesystem.<\/p>\n<p style=\"margin-left:22%;\">proc_dir_entry <br \/> proc_net_register <br \/> proc_scsi_register<\/p>\n<p style=\"margin-left:11%; margin-top: 1em\"><b>BIOS32 functions<\/b> <br \/> These are specific to PCI (BIOS32) support.<\/p>\n<p style=\"margin-left:22%;\">pcibios_find_class <br \/> pcibios_present <br \/> pcibios_read_config_byte <br \/> pcibios_read_config_dword <br \/> pcibios_read_config_word <br \/> pcibios_strerror <br \/> pcibios_write_config_byte <br \/> pcibios_write_config_dword <br \/> pcibios_write_config_word<\/p>\n<p style=\"margin-left:11%; margin-top: 1em\"><b>VM functions<\/b> <br \/> These are functions that support manipulating the virtual memory subsystem.<\/p>\n<table width=\"100%\" border=\"0\" rules=\"none\" frame=\"void\" cellspacing=\"0\" cellpadding=\"0\">\n<tr valign=\"top\" align=\"left\">\n<td width=\"22%\"><\/td>\n<td width=\"9%\">\n<p>MAP_NR<\/p>\n<\/td>\n<td width=\"69%\"> <\/td>\n<\/tr>\n<\/table>\n<p style=\"margin-left:22%;\">mem_map_reserve<\/p>\n<p style=\"margin-left:11%; margin-top: 1em\"><b>Network Functions<\/b><\/p>\n<p style=\"margin-left:22%;\">skb_dequeue <br \/> skb_insert <br \/> skb_peek <br \/> skb_queue_empty <br \/> skb_queue_head <br \/> skb_queue_head_init <br \/> skb_queue_len <br \/> skb_queue_tail <br \/> skb_unlink<\/p>\n<h2>AVAILABILITY <a name=\"AVAILABILITY\"><\/a> <\/h2>\n<p style=\"margin-left:11%; margin-top: 1em\">Each man page attempts to list the kernel versions where the function is available. If the form of the function changes, this section tells when the described form applies.<\/p>\n<h2>SEE ALSO <a name=\"SEE ALSO\"><\/a> <\/h2>\n<p style=\"margin-left:11%; margin-top: 1em\">This section lists other man pages that may be of interest. Also, interesting source files in the linux kernel may be listed here.<\/p>\n<h2>AUTHORS <a name=\"AUTHORS\"><\/a> <\/h2>\n<p style=\"margin-left:11%; margin-top: 1em\">Each man page has a section like this one that lists the author(s) who contributed significantly to that page. Other unnamed individuals may also have contributed corrections, editorial, etc.<\/p>\n<p style=\"margin-left:11%; margin-top: 1em\">Major contributors are (in alphabetical order) Cyrus Durgin <cider@speakeasy.org>, Niel Moore <amethyst@maxwell.ml.org>, Keith Owens <kaos@ocs.com.au>, Kirk Petersen <kirk@speakeasy.org>, and Stephen Williams <steve@icarus.com>.<\/p>\n<p style=\"margin-left:11%; margin-top: 1em\">Editorial, and this intro page, were done by Stephen Williams <steve@icarus.com>.<\/p>\n<h2>BUGS <a name=\"BUGS\"><\/a> <\/h2>\n<p style=\"margin-left:11%; margin-top: 1em\">The living linux kernel is a moving target, and the kernel functions are unique to linux. Therefore, although the editor and contributers make a good effort to be as accurate as possible, errors may exist. The source codes of the linux kernel are the ultimate authority on the behavior of any function and should be considered the final word.<\/p>\n<hr>\n","protected":false},"excerpt":{"rendered":"<p>  intro \u2212 Introduction to kernel interface <\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1222],"tags":[1226,333,1223,1225],"class_list":["post-4186","post","type-post","status-publish","format-standard","hentry","category-9-rutinas-del-nucleo","tag-1226","tag-intro","tag-kernel","tag-man9"],"gutentor_comment":0,"_links":{"self":[{"href":"https:\/\/lode.uno\/linux-man\/wp-json\/wp\/v2\/posts\/4186","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/lode.uno\/linux-man\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/lode.uno\/linux-man\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/lode.uno\/linux-man\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/lode.uno\/linux-man\/wp-json\/wp\/v2\/comments?post=4186"}],"version-history":[{"count":0,"href":"https:\/\/lode.uno\/linux-man\/wp-json\/wp\/v2\/posts\/4186\/revisions"}],"wp:attachment":[{"href":"https:\/\/lode.uno\/linux-man\/wp-json\/wp\/v2\/media?parent=4186"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/lode.uno\/linux-man\/wp-json\/wp\/v2\/categories?post=4186"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/lode.uno\/linux-man\/wp-json\/wp\/v2\/tags?post=4186"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}