commit 4bef807a06d4a88c423f9e1916706288f617d03a Author: NRZ Code Date: Tue Jul 29 08:29:42 2025 -0300 Initial commit diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..f288702 --- /dev/null +++ b/LICENSE @@ -0,0 +1,674 @@ + GNU GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The GNU General Public License is a free, copyleft license for +software and other kinds of works. + + The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +the GNU General Public License is intended to guarantee your freedom to +share and change all versions of a program--to make sure it remains free +software for all its users. We, the Free Software Foundation, use the +GNU General Public License for most of our software; it applies also to +any other work released this way by its authors. You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +them if you wish), that you receive source code or can get it if you +want it, that you can change the software or use pieces of it in new +free programs, and that you know you can do these things. + + To protect your rights, we need to prevent others from denying you +these rights or asking you to surrender the rights. Therefore, you have +certain responsibilities if you distribute copies of the software, or if +you modify it: responsibilities to respect the freedom of others. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must pass on to the recipients the same +freedoms that you received. You must make sure that they, too, receive +or can get the source code. And you must show them these terms so they +know their rights. + + Developers that use the GNU GPL protect your rights with two steps: +(1) assert copyright on the software, and (2) offer you this License +giving you legal permission to copy, distribute and/or modify it. + + For the developers' and authors' protection, the GPL clearly explains +that there is no warranty for this free software. For both users' and +authors' sake, the GPL requires that modified versions be marked as +changed, so that their problems will not be attributed erroneously to +authors of previous versions. + + Some devices are designed to deny users access to install or run +modified versions of the software inside them, although the manufacturer +can do so. This is fundamentally incompatible with the aim of +protecting users' freedom to change the software. The systematic +pattern of such abuse occurs in the area of products for individuals to +use, which is precisely where it is most unacceptable. Therefore, we +have designed this version of the GPL to prohibit the practice for those +products. If such problems arise substantially in other domains, we +stand ready to extend this provision to those domains in future versions +of the GPL, as needed to protect the freedom of users. + + Finally, every program is threatened constantly by software patents. +States should not allow patents to restrict development and use of +software on general-purpose computers, but in those that do, we wish to +avoid the special danger that patents applied to a free program could +make it effectively proprietary. To prevent this, the GPL assures that +patents cannot be used to render the program non-free. + + The precise terms and conditions for copying, distribution and +modification follow. + + TERMS AND CONDITIONS + + 0. Definitions. + + "This License" refers to version 3 of the GNU General Public License. + + "Copyright" also means copyright-like laws that apply to other kinds of +works, such as semiconductor masks. + + "The Program" refers to any copyrightable work licensed under this +License. Each licensee is addressed as "you". "Licensees" and +"recipients" may be individuals or organizations. + + To "modify" a work means to copy from or adapt all or part of the work +in a fashion requiring copyright permission, other than the making of an +exact copy. The resulting work is called a "modified version" of the +earlier work or a work "based on" the earlier work. + + A "covered work" means either the unmodified Program or a work based +on the Program. + + To "propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification), making available to the +public, and in some countries other activities as well. + + To "convey" a work means any kind of propagation that enables other +parties to make or receive copies. Mere interaction with a user through +a computer network, with no transfer of a copy, is not conveying. + + An interactive user interface displays "Appropriate Legal Notices" +to the extent that it includes a convenient and prominently visible +feature that (1) displays an appropriate copyright notice, and (2) +tells the user that there is no warranty for the work (except to the +extent that warranties are provided), that licensees may convey the +work under this License, and how to view a copy of this License. If +the interface presents a list of user commands or options, such as a +menu, a prominent item in the list meets this criterion. + + 1. Source Code. + + The "source code" for a work means the preferred form of the work +for making modifications to it. "Object code" means any non-source +form of a work. + + A "Standard Interface" means an interface that either is an official +standard defined by a recognized standards body, or, in the case of +interfaces specified for a particular programming language, one that +is widely used among developers working in that language. + + The "System Libraries" of an executable work include anything, other +than the work as a whole, that (a) is included in the normal form of +packaging a Major Component, but which is not part of that Major +Component, and (b) serves only to enable use of the work with that +Major Component, or to implement a Standard Interface for which an +implementation is available to the public in source code form. A +"Major Component", in this context, means a major essential component +(kernel, window system, and so on) of the specific operating system +(if any) on which the executable work runs, or a compiler used to +produce the work, or an object code interpreter used to run it. + + The "Corresponding Source" for a work in object code form means all +the source code needed to generate, install, and (for an executable +work) run the object code and to modify the work, including scripts to +control those activities. However, it does not include the work's +System Libraries, or general-purpose tools or generally available free +programs which are used unmodified in performing those activities but +which are not part of the work. For example, Corresponding Source +includes interface definition files associated with source files for +the work, and the source code for shared libraries and dynamically +linked subprograms that the work is specifically designed to require, +such as by intimate data communication or control flow between those +subprograms and other parts of the work. + + The Corresponding Source need not include anything that users +can regenerate automatically from other parts of the Corresponding +Source. + + The Corresponding Source for a work in source code form is that +same work. + + 2. Basic Permissions. + + All rights granted under this License are granted for the term of +copyright on the Program, and are irrevocable provided the stated +conditions are met. This License explicitly affirms your unlimited +permission to run the unmodified Program. The output from running a +covered work is covered by this License only if the output, given its +content, constitutes a covered work. This License acknowledges your +rights of fair use or other equivalent, as provided by copyright law. + + You may make, run and propagate covered works that you do not +convey, without conditions so long as your license otherwise remains +in force. You may convey covered works to others for the sole purpose +of having them make modifications exclusively for you, or provide you +with facilities for running those works, provided that you comply with +the terms of this License in conveying all material for which you do +not control copyright. Those thus making or running the covered works +for you must do so exclusively on your behalf, under your direction +and control, on terms that prohibit them from making any copies of +your copyrighted material outside their relationship with you. + + Conveying under any other circumstances is permitted solely under +the conditions stated below. Sublicensing is not allowed; section 10 +makes it unnecessary. + + 3. Protecting Users' Legal Rights From Anti-Circumvention Law. + + No covered work shall be deemed part of an effective technological +measure under any applicable law fulfilling obligations under article +11 of the WIPO copyright treaty adopted on 20 December 1996, or +similar laws prohibiting or restricting circumvention of such +measures. + + When you convey a covered work, you waive any legal power to forbid +circumvention of technological measures to the extent such circumvention +is effected by exercising rights under this License with respect to +the covered work, and you disclaim any intention to limit operation or +modification of the work as a means of enforcing, against the work's +users, your or third parties' legal rights to forbid circumvention of +technological measures. + + 4. Conveying Verbatim Copies. + + You may convey verbatim copies of the Program's source code as you +receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice; +keep intact all notices stating that this License and any +non-permissive terms added in accord with section 7 apply to the code; +keep intact all notices of the absence of any warranty; and give all +recipients a copy of this License along with the Program. + + You may charge any price or no price for each copy that you convey, +and you may offer support or warranty protection for a fee. + + 5. Conveying Modified Source Versions. + + You may convey a work based on the Program, or the modifications to +produce it from the Program, in the form of source code under the +terms of section 4, provided that you also meet all of these conditions: + + a) The work must carry prominent notices stating that you modified + it, and giving a relevant date. + + b) The work must carry prominent notices stating that it is + released under this License and any conditions added under section + 7. This requirement modifies the requirement in section 4 to + "keep intact all notices". + + c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. + + d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. + + A compilation of a covered work with other separate and independent +works, which are not by their nature extensions of the covered work, +and which are not combined with it such as to form a larger program, +in or on a volume of a storage or distribution medium, is called an +"aggregate" if the compilation and its resulting copyright are not +used to limit the access or legal rights of the compilation's users +beyond what the individual works permit. Inclusion of a covered work +in an aggregate does not cause this License to apply to the other +parts of the aggregate. + + 6. Conveying Non-Source Forms. + + You may convey a covered work in object code form under the terms +of sections 4 and 5, provided that you also convey the +machine-readable Corresponding Source under the terms of this License, +in one of these ways: + + a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. + + b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the + Corresponding Source from a network server at no charge. + + c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. + + d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. + + e) Convey the object code using peer-to-peer transmission, provided + you inform other peers where the object code and Corresponding + Source of the work are being offered to the general public at no + charge under subsection 6d. + + A separable portion of the object code, whose source code is excluded +from the Corresponding Source as a System Library, need not be +included in conveying the object code work. + + A "User Product" is either (1) a "consumer product", which means any +tangible personal property which is normally used for personal, family, +or household purposes, or (2) anything designed or sold for incorporation +into a dwelling. In determining whether a product is a consumer product, +doubtful cases shall be resolved in favor of coverage. For a particular +product received by a particular user, "normally used" refers to a +typical or common use of that class of product, regardless of the status +of the particular user or of the way in which the particular user +actually uses, or expects or is expected to use, the product. A product +is a consumer product regardless of whether the product has substantial +commercial, industrial or non-consumer uses, unless such uses represent +the only significant mode of use of the product. + + "Installation Information" for a User Product means any methods, +procedures, authorization keys, or other information required to install +and execute modified versions of a covered work in that User Product from +a modified version of its Corresponding Source. The information must +suffice to ensure that the continued functioning of the modified object +code is in no case prevented or interfered with solely because +modification has been made. + + If you convey an object code work under this section in, or with, or +specifically for use in, a User Product, and the conveying occurs as +part of a transaction in which the right of possession and use of the +User Product is transferred to the recipient in perpetuity or for a +fixed term (regardless of how the transaction is characterized), the +Corresponding Source conveyed under this section must be accompanied +by the Installation Information. But this requirement does not apply +if neither you nor any third party retains the ability to install +modified object code on the User Product (for example, the work has +been installed in ROM). + + The requirement to provide Installation Information does not include a +requirement to continue to provide support service, warranty, or updates +for a work that has been modified or installed by the recipient, or for +the User Product in which it has been modified or installed. Access to a +network may be denied when the modification itself materially and +adversely affects the operation of the network or violates the rules and +protocols for communication across the network. + + Corresponding Source conveyed, and Installation Information provided, +in accord with this section must be in a format that is publicly +documented (and with an implementation available to the public in +source code form), and must require no special password or key for +unpacking, reading or copying. + + 7. Additional Terms. + + "Additional permissions" are terms that supplement the terms of this +License by making exceptions from one or more of its conditions. +Additional permissions that are applicable to the entire Program shall +be treated as though they were included in this License, to the extent +that they are valid under applicable law. If additional permissions +apply only to part of the Program, that part may be used separately +under those permissions, but the entire Program remains governed by +this License without regard to the additional permissions. + + When you convey a copy of a covered work, you may at your option +remove any additional permissions from that copy, or from any part of +it. (Additional permissions may be written to require their own +removal in certain cases when you modify the work.) You may place +additional permissions on material, added by you to a covered work, +for which you have or can give appropriate copyright permission. + + Notwithstanding any other provision of this License, for material you +add to a covered work, you may (if authorized by the copyright holders of +that material) supplement the terms of this License with terms: + + a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or + + b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or + + c) Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or + + d) Limiting the use for publicity purposes of names of licensors or + authors of the material; or + + e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or + + f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions of + it) with contractual assumptions of liability to the recipient, for + any liability that these contractual assumptions directly impose on + those licensors and authors. + + All other non-permissive additional terms are considered "further +restrictions" within the meaning of section 10. If the Program as you +received it, or any part of it, contains a notice stating that it is +governed by this License along with a term that is a further +restriction, you may remove that term. If a license document contains +a further restriction but permits relicensing or conveying under this +License, you may add to a covered work material governed by the terms +of that license document, provided that the further restriction does +not survive such relicensing or conveying. + + If you add terms to a covered work in accord with this section, you +must place, in the relevant source files, a statement of the +additional terms that apply to those files, or a notice indicating +where to find the applicable terms. + + Additional terms, permissive or non-permissive, may be stated in the +form of a separately written license, or stated as exceptions; +the above requirements apply either way. + + 8. Termination. + + You may not propagate or modify a covered work except as expressly +provided under this License. Any attempt otherwise to propagate or +modify it is void, and will automatically terminate your rights under +this License (including any patent licenses granted under the third +paragraph of section 11). + + However, if you cease all violation of this License, then your +license from a particular copyright holder is reinstated (a) +provisionally, unless and until the copyright holder explicitly and +finally terminates your license, and (b) permanently, if the copyright +holder fails to notify you of the violation by some reasonable means +prior to 60 days after the cessation. + + Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + + Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, you do not qualify to receive new licenses for the same +material under section 10. + + 9. Acceptance Not Required for Having Copies. + + You are not required to accept this License in order to receive or +run a copy of the Program. Ancillary propagation of a covered work +occurring solely as a consequence of using peer-to-peer transmission +to receive a copy likewise does not require acceptance. However, +nothing other than this License grants you permission to propagate or +modify any covered work. These actions infringe copyright if you do +not accept this License. Therefore, by modifying or propagating a +covered work, you indicate your acceptance of this License to do so. + + 10. Automatic Licensing of Downstream Recipients. + + Each time you convey a covered work, the recipient automatically +receives a license from the original licensors, to run, modify and +propagate that work, subject to this License. You are not responsible +for enforcing compliance by third parties with this License. + + An "entity transaction" is a transaction transferring control of an +organization, or substantially all assets of one, or subdividing an +organization, or merging organizations. If propagation of a covered +work results from an entity transaction, each party to that +transaction who receives a copy of the work also receives whatever +licenses to the work the party's predecessor in interest had or could +give under the previous paragraph, plus a right to possession of the +Corresponding Source of the work from the predecessor in interest, if +the predecessor has it or can get it with reasonable efforts. + + You may not impose any further restrictions on the exercise of the +rights granted or affirmed under this License. For example, you may +not impose a license fee, royalty, or other charge for exercise of +rights granted under this License, and you may not initiate litigation +(including a cross-claim or counterclaim in a lawsuit) alleging that +any patent claim is infringed by making, using, selling, offering for +sale, or importing the Program or any portion of it. + + 11. Patents. + + A "contributor" is a copyright holder who authorizes use under this +License of the Program or a work on which the Program is based. The +work thus licensed is called the contributor's "contributor version". + + A contributor's "essential patent claims" are all patent claims +owned or controlled by the contributor, whether already acquired or +hereafter acquired, that would be infringed by some manner, permitted +by this License, of making, using, or selling its contributor version, +but do not include claims that would be infringed only as a +consequence of further modification of the contributor version. For +purposes of this definition, "control" includes the right to grant +patent sublicenses in a manner consistent with the requirements of +this License. + + Each contributor grants you a non-exclusive, worldwide, royalty-free +patent license under the contributor's essential patent claims, to +make, use, sell, offer for sale, import and otherwise run, modify and +propagate the contents of its contributor version. + + In the following three paragraphs, a "patent license" is any express +agreement or commitment, however denominated, not to enforce a patent +(such as an express permission to practice a patent or covenant not to +sue for patent infringement). To "grant" such a patent license to a +party means to make such an agreement or commitment not to enforce a +patent against the party. + + If you convey a covered work, knowingly relying on a patent license, +and the Corresponding Source of the work is not available for anyone +to copy, free of charge and under the terms of this License, through a +publicly available network server or other readily accessible means, +then you must either (1) cause the Corresponding Source to be so +available, or (2) arrange to deprive yourself of the benefit of the +patent license for this particular work, or (3) arrange, in a manner +consistent with the requirements of this License, to extend the patent +license to downstream recipients. "Knowingly relying" means you have +actual knowledge that, but for the patent license, your conveying the +covered work in a country, or your recipient's use of the covered work +in a country, would infringe one or more identifiable patents in that +country that you have reason to believe are valid. + + If, pursuant to or in connection with a single transaction or +arrangement, you convey, or propagate by procuring conveyance of, a +covered work, and grant a patent license to some of the parties +receiving the covered work authorizing them to use, propagate, modify +or convey a specific copy of the covered work, then the patent license +you grant is automatically extended to all recipients of the covered +work and works based on it. + + A patent license is "discriminatory" if it does not include within +the scope of its coverage, prohibits the exercise of, or is +conditioned on the non-exercise of one or more of the rights that are +specifically granted under this License. You may not convey a covered +work if you are a party to an arrangement with a third party that is +in the business of distributing software, under which you make payment +to the third party based on the extent of your activity of conveying +the work, and under which the third party grants, to any of the +parties who would receive the covered work from you, a discriminatory +patent license (a) in connection with copies of the covered work +conveyed by you (or copies made from those copies), or (b) primarily +for and in connection with specific products or compilations that +contain the covered work, unless you entered into that arrangement, +or that patent license was granted, prior to 28 March 2007. + + Nothing in this License shall be construed as excluding or limiting +any implied license or other defenses to infringement that may +otherwise be available to you under applicable patent law. + + 12. No Surrender of Others' Freedom. + + If conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot convey a +covered work so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you may +not convey it at all. For example, if you agree to terms that obligate you +to collect a royalty for further conveying from those to whom you convey +the Program, the only way you could satisfy both those terms and this +License would be to refrain entirely from conveying the Program. + + 13. Use with the GNU Affero General Public License. + + Notwithstanding any other provision of this License, you have +permission to link or combine any covered work with a work licensed +under version 3 of the GNU Affero General Public License into a single +combined work, and to convey the resulting work. The terms of this +License will continue to apply to the part which is the covered work, +but the special requirements of the GNU Affero General Public License, +section 13, concerning interaction through a network will apply to the +combination as such. + + 14. Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions of +the GNU General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + + Each version is given a distinguishing version number. If the +Program specifies that a certain numbered version of the GNU General +Public License "or any later version" applies to it, you have the +option of following the terms and conditions either of that numbered +version or of any later version published by the Free Software +Foundation. If the Program does not specify a version number of the +GNU General Public License, you may choose any version ever published +by the Free Software Foundation. + + If the Program specifies that a proxy can decide which future +versions of the GNU General Public License can be used, that proxy's +public statement of acceptance of a version permanently authorizes you +to choose that version for the Program. + + Later license versions may give you additional or different +permissions. However, no additional obligations are imposed on any +author or copyright holder as a result of your choosing to follow a +later version. + + 15. Disclaimer of Warranty. + + THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY +APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT +HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY +OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM +IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF +ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. Limitation of Liability. + + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS +THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE +USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF +DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD +PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), +EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF +SUCH DAMAGES. + + 17. Interpretation of Sections 15 and 16. + + If the disclaimer of warranty and limitation of liability provided +above cannot be given local legal effect according to their terms, +reviewing courts shall apply local law that most closely approximates +an absolute waiver of all civil liability in connection with the +Program, unless a warranty or assumption of liability accompanies a +copy of the Program in return for a fee. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +state the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . + +Also add information on how to contact you by electronic and paper mail. + + If the program does terminal interaction, make it output a short +notice like this when it starts in an interactive mode: + + Copyright (C) + This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, your program's commands +might be different; for a GUI interface, you would use an "about box". + + You should also get your employer (if you work as a programmer) or school, +if any, to sign a "copyright disclaimer" for the program, if necessary. +For more information on this, and how to apply and follow the GNU GPL, see +. + + The GNU General Public License does not permit incorporating your program +into proprietary programs. If your program is a subroutine library, you +may consider it more useful to permit linking proprietary applications with +the library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. But first, please read +. diff --git a/README.md b/README.md new file mode 100644 index 0000000..4ba104a --- /dev/null +++ b/README.md @@ -0,0 +1,7 @@ +# System Calls 64 bits (x64) + +x64 System Calls and Arguments with FZF + +### Referências + +[x64.syscall.sh](https://x64.syscall.sh/) diff --git a/x64-syscall.list b/x64-syscall.list new file mode 100644 index 0000000..a58aee3 --- /dev/null +++ b/x64-syscall.list @@ -0,0 +1,334 @@ +NR|SYSCALL NAME|references|0xRAX|ARG0 (rdi)|ARG1 (rsi)|ARG2 (rdx)|ARG3 (r10)|ARG4 (r8)|ARG5 (r9)| +0|read|man/ cs/|0x0|unsigned int fd|char *buf|size_t count|-|-|-| +1|write|man/ cs/|0x1|unsigned int fd|const char *buf|size_t count|-|-|-| +2|open|man/ cs/|0x2|const char *filename|int flags|umode_t mode|-|-|-| +3|close|man/ cs/|0x3|unsigned int fd|-|-|-|-|-| +4|stat|man/ cs/|0x4|const char *filename|struct __old_kernel_stat *statbuf|-|-|-|-| +5|fstat|man/ cs/|0x5|unsigned int fd|struct __old_kernel_stat *statbuf|-|-|-|-| +6|lstat|man/ cs/|0x6|const char *filename|struct __old_kernel_stat *statbuf|-|-|-|-| +7|poll|man/ cs/|0x7|struct pollfd *ufds|unsigned int nfds|int timeout|-|-|-| +8|lseek|man/ cs/|0x8|unsigned int fd|off_t offset|unsigned int whence|-|-|-| +9|mmap|man/ cs/|0x9|?|?|?|?|?|?| +10|mprotect|man/ cs/|0xA|unsigned long start|size_t len|unsigned long prot|-|-|-| +11|munmap|man/ cs/|0xB|unsigned long addr|size_t len|-|-|-|-| +12|brk|man/ cs/|0xC|unsigned long brk|-|-|-|-|-| +13|rt_sigaction|man/ cs/|0xD|int|const struct sigaction *|struct sigaction *|size_t|-|-| +14|rt_sigprocmask|man/ cs/|0xE|int how|sigset_t *set|sigset_t *oset|size_t sigsetsize|-|-| +15|rt_sigreturn|man/ cs/|0xF|?|?|?|?|?|?| +16|ioctl|man/ cs/|0x10|unsigned int fd|unsigned int cmd|unsigned long arg|-|-|-| +17|pread64|man/ cs/|0x11|unsigned int fd|char *buf|size_t count|loff_t pos|-|-| +18|pwrite64|man/ cs/|0x12|unsigned int fd|const char *buf|size_t count|loff_t pos|-|-| +19|readv|man/ cs/|0x13|unsigned long fd|const struct iovec *vec|unsigned long vlen|-|-|-| +20|writev|man/ cs/|0x14|unsigned long fd|const struct iovec *vec|unsigned long vlen|-|-|-| +21|access|man/ cs/|0x15|const char *filename|int mode|-|-|-|-| +22|pipe|man/ cs/|0x16|int *fildes|-|-|-|-|-| +23|select|man/ cs/|0x17|int n|fd_set *inp|fd_set *outp|fd_set *exp|struct timeval *tvp|-| +24|sched_yield|man/ cs/|0x18|-|-|-|-|-|-| +25|mremap|man/ cs/|0x19|unsigned long addr|unsigned long old_len|unsigned long new_len|unsigned long flags|unsigned long new_addr|-| +26|msync|man/ cs/|0x1A|unsigned long start|size_t len|int flags|-|-|-| +27|mincore|man/ cs/|0x1B|unsigned long start|size_t len|unsigned char * vec|-|-|-| +28|madvise|man/ cs/|0x1C|unsigned long start|size_t len|int behavior|-|-|-| +29|shmget|man/ cs/|0x1D|key_t key|size_t size|int flag|-|-|-| +30|shmat|man/ cs/|0x1E|int shmid|char *shmaddr|int shmflg|-|-|-| +31|shmctl|man/ cs/|0x1F|int shmid|int cmd|struct shmid_ds *buf|-|-|-| +32|dup|man/ cs/|0x20|unsigned int fildes|-|-|-|-|-| +33|dup2|man/ cs/|0x21|unsigned int oldfd|unsigned int newfd|-|-|-|-| +34|pause|man/ cs/|0x22|-|-|-|-|-|-| +35|nanosleep|man/ cs/|0x23|struct __kernel_timespec *rqtp|struct __kernel_timespec *rmtp|-|-|-|-| +36|getitimer|man/ cs/|0x24|int which|struct itimerval *value|-|-|-|-| +37|alarm|man/ cs/|0x25|unsigned int seconds|-|-|-|-|-| +38|setitimer|man/ cs/|0x26|int which|struct itimerval *value|struct itimerval *ovalue|-|-|-| +39|getpid|man/ cs/|0x27|-|-|-|-|-|-| +40|sendfile|man/ cs/|0x28|int out_fd|int in_fd|off_t *offset|size_t count|-|-| +41|socket|man/ cs/|0x29|int|int|int|-|-|-| +42|connect|man/ cs/|0x2A|int|struct sockaddr *|int|-|-|-| +43|accept|man/ cs/|0x2B|int|struct sockaddr *|int *|-|-|-| +44|sendto|man/ cs/|0x2C|int|void *|size_t|unsigned|struct sockaddr *|int| +45|recvfrom|man/ cs/|0x2D|int|void *|size_t|unsigned|struct sockaddr *|int *| +46|sendmsg|man/ cs/|0x2E|int fd|struct user_msghdr *msg|unsigned flags|-|-|-| +47|recvmsg|man/ cs/|0x2F|int fd|struct user_msghdr *msg|unsigned flags|-|-|-| +48|shutdown|man/ cs/|0x30|int|int|-|-|-|-| +49|bind|man/ cs/|0x31|int|struct sockaddr *|int|-|-|-| +50|listen|man/ cs/|0x32|int|int|-|-|-|-| +51|getsockname|man/ cs/|0x33|int|struct sockaddr *|int *|-|-|-| +52|getpeername|man/ cs/|0x34|int|struct sockaddr *|int *|-|-|-| +53|socketpair|man/ cs/|0x35|int|int|int|int *|-|-| +54|setsockopt|man/ cs/|0x36|int fd|int level|int optname|char *optval|int optlen|-| +55|getsockopt|man/ cs/|0x37|int fd|int level|int optname|char *optval|int *optlen|-| +56|clone|man/ cs/|0x38|unsigned long|unsigned long|int *|int *|unsigned long|-| +57|fork|man/ cs/|0x39|-|-|-|-|-|-| +58|vfork|man/ cs/|0x3A|-|-|-|-|-|-| +59|execve|man/ cs/|0x3B|const char *filename|const char *const *argv|const char *const *envp|-|-|-| +60|exit|man/ cs/|0x3C|int error_code|-|-|-|-|-| +61|wait4|man/ cs/|0x3D|pid_t pid|int *stat_addr|int options|struct rusage *ru|-|-| +62|kill|man/ cs/|0x3E|pid_t pid|int sig|-|-|-|-| +63|uname|man/ cs/|0x3F|struct old_utsname *|-|-|-|-|-| +64|semget|man/ cs/|0x40|key_t key|int nsems|int semflg|-|-|-| +65|semop|man/ cs/|0x41|int semid|struct sembuf *sops|unsigned nsops|-|-|-| +66|semctl|man/ cs/|0x42|int semid|int semnum|int cmd|unsigned long arg|-|-| +67|shmdt|man/ cs/|0x43|char *shmaddr|-|-|-|-|-| +68|msgget|man/ cs/|0x44|key_t key|int msgflg|-|-|-|-| +69|msgsnd|man/ cs/|0x45|int msqid|struct msgbuf *msgp|size_t msgsz|int msgflg|-|-| +70|msgrcv|man/ cs/|0x46|int msqid|struct msgbuf *msgp|size_t msgsz|long msgtyp|int msgflg|-| +71|msgctl|man/ cs/|0x47|int msqid|int cmd|struct msqid_ds *buf|-|-|-| +72|fcntl|man/ cs/|0x48|unsigned int fd|unsigned int cmd|unsigned long arg|-|-|-| +73|flock|man/ cs/|0x49|unsigned int fd|unsigned int cmd|-|-|-|-| +74|fsync|man/ cs/|0x4A|unsigned int fd|-|-|-|-|-| +75|fdatasync|man/ cs/|0x4B|unsigned int fd|-|-|-|-|-| +76|truncate|man/ cs/|0x4C|const char *path|long length|-|-|-|-| +77|ftruncate|man/ cs/|0x4D|unsigned int fd|unsigned long length|-|-|-|-| +78|getdents|man/ cs/|0x4E|unsigned int fd|struct linux_dirent *dirent|unsigned int count|-|-|-| +79|getcwd|man/ cs/|0x4F|char *buf|unsigned long size|-|-|-|-| +80|chdir|man/ cs/|0x50|const char *filename|-|-|-|-|-| +81|fchdir|man/ cs/|0x51|unsigned int fd|-|-|-|-|-| +82|rename|man/ cs/|0x52|const char *oldname|const char *newname|-|-|-|-| +83|mkdir|man/ cs/|0x53|const char *pathname|umode_t mode|-|-|-|-| +84|rmdir|man/ cs/|0x54|const char *pathname|-|-|-|-|-| +85|creat|man/ cs/|0x55|const char *pathname|umode_t mode|-|-|-|-| +86|link|man/ cs/|0x56|const char *oldname|const char *newname|-|-|-|-| +87|unlink|man/ cs/|0x57|const char *pathname|-|-|-|-|-| +88|symlink|man/ cs/|0x58|const char *old|const char *new|-|-|-|-| +89|readlink|man/ cs/|0x59|const char *path|char *buf|int bufsiz|-|-|-| +90|chmod|man/ cs/|0x5A|const char *filename|umode_t mode|-|-|-|-| +91|fchmod|man/ cs/|0x5B|unsigned int fd|umode_t mode|-|-|-|-| +92|chown|man/ cs/|0x5C|const char *filename|uid_t user|gid_t group|-|-|-| +93|fchown|man/ cs/|0x5D|unsigned int fd|uid_t user|gid_t group|-|-|-| +94|lchown|man/ cs/|0x5E|const char *filename|uid_t user|gid_t group|-|-|-| +95|umask|man/ cs/|0x5F|int mask|-|-|-|-|-| +96|gettimeofday|man/ cs/|0x60|struct timeval *tv|struct timezone *tz|-|-|-|-| +97|getrlimit|man/ cs/|0x61|unsigned int resource|struct rlimit *rlim|-|-|-|-| +98|getrusage|man/ cs/|0x62|int who|struct rusage *ru|-|-|-|-| +99|sysinfo|man/ cs/|0x63|struct sysinfo *info|-|-|-|-|-| +100|times|man/ cs/|0x64|struct tms *tbuf|-|-|-|-|-| +101|ptrace|man/ cs/|0x65|long request|long pid|unsigned long addr|unsigned long data|-|-| +102|getuid|man/ cs/|0x66|-|-|-|-|-|-| +103|syslog|man/ cs/|0x67|int type|char *buf|int len|-|-|-| +104|getgid|man/ cs/|0x68|-|-|-|-|-|-| +105|setuid|man/ cs/|0x69|uid_t uid|-|-|-|-|-| +106|setgid|man/ cs/|0x6A|gid_t gid|-|-|-|-|-| +107|geteuid|man/ cs/|0x6B|-|-|-|-|-|-| +108|getegid|man/ cs/|0x6C|-|-|-|-|-|-| +109|setpgid|man/ cs/|0x6D|pid_t pid|pid_t pgid|-|-|-|-| +110|getppid|man/ cs/|0x6E|-|-|-|-|-|-| +111|getpgrp|man/ cs/|0x6F|-|-|-|-|-|-| +112|setsid|man/ cs/|0x70|-|-|-|-|-|-| +113|setreuid|man/ cs/|0x71|uid_t ruid|uid_t euid|-|-|-|-| +114|setregid|man/ cs/|0x72|gid_t rgid|gid_t egid|-|-|-|-| +115|getgroups|man/ cs/|0x73|int gidsetsize|gid_t *grouplist|-|-|-|-| +116|setgroups|man/ cs/|0x74|int gidsetsize|gid_t *grouplist|-|-|-|-| +117|setresuid|man/ cs/|0x75|uid_t ruid|uid_t euid|uid_t suid|-|-|-| +118|getresuid|man/ cs/|0x76|uid_t *ruid|uid_t *euid|uid_t *suid|-|-|-| +119|setresgid|man/ cs/|0x77|gid_t rgid|gid_t egid|gid_t sgid|-|-|-| +120|getresgid|man/ cs/|0x78|gid_t *rgid|gid_t *egid|gid_t *sgid|-|-|-| +121|getpgid|man/ cs/|0x79|pid_t pid|-|-|-|-|-| +122|setfsuid|man/ cs/|0x7A|uid_t uid|-|-|-|-|-| +123|setfsgid|man/ cs/|0x7B|gid_t gid|-|-|-|-|-| +124|getsid|man/ cs/|0x7C|pid_t pid|-|-|-|-|-| +125|capget|man/ cs/|0x7D|cap_user_header_t header|cap_user_data_t dataptr|-|-|-|-| +126|capset|man/ cs/|0x7E|cap_user_header_t header|const cap_user_data_t data|-|-|-|-| +127|rt_sigpending|man/ cs/|0x7F|sigset_t *set|size_t sigsetsize|-|-|-|-| +128|rt_sigtimedwait|man/ cs/|0x80|const sigset_t *uthese|siginfo_t *uinfo|const struct __kernel_timespec *uts|size_t sigsetsize|-|-| +129|rt_sigqueueinfo|man/ cs/|0x81|pid_t pid|int sig|siginfo_t *uinfo|-|-|-| +130|rt_sigsuspend|man/ cs/|0x82|sigset_t *unewset|size_t sigsetsize|-|-|-|-| +131|sigaltstack|man/ cs/|0x83|const struct sigaltstack *uss|struct sigaltstack *uoss|-|-|-|-| +132|utime|man/ cs/|0x84|char *filename|struct utimbuf *times|-|-|-|-| +133|mknod|man/ cs/|0x85|const char *filename|umode_t mode|unsigned dev|-|-|-| +134|uselib|man/ cs/|0x86|const char *library|-|-|-|-|-| +135|personality|man/ cs/|0x87|unsigned int personality|-|-|-|-|-| +136|ustat|man/ cs/|0x88|unsigned dev|struct ustat *ubuf|-|-|-|-| +137|statfs|man/ cs/|0x89|const char * path|struct statfs *buf|-|-|-|-| +138|fstatfs|man/ cs/|0x8A|unsigned int fd|struct statfs *buf|-|-|-|-| +139|sysfs|man/ cs/|0x8B|int option|unsigned long arg1|unsigned long arg2|-|-|-| +140|getpriority|man/ cs/|0x8C|int which|int who|-|-|-|-| +141|setpriority|man/ cs/|0x8D|int which|int who|int niceval|-|-|-| +142|sched_setparam|man/ cs/|0x8E|pid_t pid|struct sched_param *param|-|-|-|-| +143|sched_getparam|man/ cs/|0x8F|pid_t pid|struct sched_param *param|-|-|-|-| +144|sched_setscheduler|man/ cs/|0x90|pid_t pid|int policy|struct sched_param *param|-|-|-| +145|sched_getscheduler|man/ cs/|0x91|pid_t pid|-|-|-|-|-| +146|sched_get_priority_max|man/ cs/|0x92|int policy|-|-|-|-|-| +147|sched_get_priority_min|man/ cs/|0x93|int policy|-|-|-|-|-| +148|sched_rr_get_interval|man/ cs/|0x94|pid_t pid|struct __kernel_timespec *interval|-|-|-|-| +149|mlock|man/ cs/|0x95|unsigned long start|size_t len|-|-|-|-| +150|munlock|man/ cs/|0x96|unsigned long start|size_t len|-|-|-|-| +151|mlockall|man/ cs/|0x97|int flags|-|-|-|-|-| +152|munlockall|man/ cs/|0x98|-|-|-|-|-|-| +153|vhangup|man/ cs/|0x99|-|-|-|-|-|-| +154|modify_ldt|man/ cs/|0x9A|?|?|?|?|?|?| +155|pivot_root|man/ cs/|0x9B|const char *new_root|const char *put_old|-|-|-|-| +156|_sysctl|man/ cs/|0x9C|?|?|?|?|?|?| +157|prctl|man/ cs/|0x9D|int option|unsigned long arg2|unsigned long arg3|unsigned long arg4|unsigned long arg5|-| +158|arch_prctl|man/ cs/|0x9E|?|?|?|?|?|?| +159|adjtimex|man/ cs/|0x9F|struct __kernel_timex *txc_p|-|-|-|-|-| +160|setrlimit|man/ cs/|0xA0|unsigned int resource|struct rlimit *rlim|-|-|-|-| +161|chroot|man/ cs/|0xA1|const char *filename|-|-|-|-|-| +162|sync|man/ cs/|0xA2|-|-|-|-|-|-| +163|acct|man/ cs/|0xA3|const char *name|-|-|-|-|-| +164|settimeofday|man/ cs/|0xA4|struct timeval *tv|struct timezone *tz|-|-|-|-| +165|mount|man/ cs/|0xA5|char *dev_name|char *dir_name|char *type|unsigned long flags|void *data|-| +166|umount2|man/ cs/|0xA6|?|?|?|?|?|?| +167|swapon|man/ cs/|0xA7|const char *specialfile|int swap_flags|-|-|-|-| +168|swapoff|man/ cs/|0xA8|const char *specialfile|-|-|-|-|-| +169|reboot|man/ cs/|0xA9|int magic1|int magic2|unsigned int cmd|void *arg|-|-| +170|sethostname|man/ cs/|0xAA|char *name|int len|-|-|-|-| +171|setdomainname|man/ cs/|0xAB|char *name|int len|-|-|-|-| +172|iopl|man/ cs/|0xAC|?|?|?|?|?|?| +173|ioperm|man/ cs/|0xAD|unsigned long from|unsigned long num|int on|-|-|-| +174|create_module|man/ cs/|0xAE|?|?|?|?|?|?| +175|init_module|man/ cs/|0xAF|void *umod|unsigned long len|const char *uargs|-|-|-| +176|delete_module|man/ cs/|0xB0|const char *name_user|unsigned int flags|-|-|-|-| +177|get_kernel_syms|man/ cs/|0xB1|?|?|?|?|?|?| +178|query_module|man/ cs/|0xB2|?|?|?|?|?|?| +179|quotactl|man/ cs/|0xB3|unsigned int cmd|const char *special|qid_t id|void *addr|-|-| +180|nfsservctl|man/ cs/|0xB4|?|?|?|?|?|?| +181|getpmsg|man/ cs/|0xB5|?|?|?|?|?|?| +182|putpmsg|man/ cs/|0xB6|?|?|?|?|?|?| +183|afs_syscall|man/ cs/|0xB7|?|?|?|?|?|?| +184|tuxcall|man/ cs/|0xB8|?|?|?|?|?|?| +185|security|man/ cs/|0xB9|?|?|?|?|?|?| +186|gettid|man/ cs/|0xBA|-|-|-|-|-|-| +187|readahead|man/ cs/|0xBB|int fd|loff_t offset|size_t count|-|-|-| +188|setxattr|man/ cs/|0xBC|const char *path|const char *name|const void *value|size_t size|int flags|-| +189|lsetxattr|man/ cs/|0xBD|const char *path|const char *name|const void *value|size_t size|int flags|-| +190|fsetxattr|man/ cs/|0xBE|int fd|const char *name|const void *value|size_t size|int flags|-| +191|getxattr|man/ cs/|0xBF|const char *path|const char *name|void *value|size_t size|-|-| +192|lgetxattr|man/ cs/|0xC0|const char *path|const char *name|void *value|size_t size|-|-| +193|fgetxattr|man/ cs/|0xC1|int fd|const char *name|void *value|size_t size|-|-| +194|listxattr|man/ cs/|0xC2|const char *path|char *list|size_t size|-|-|-| +195|llistxattr|man/ cs/|0xC3|const char *path|char *list|size_t size|-|-|-| +196|flistxattr|man/ cs/|0xC4|int fd|char *list|size_t size|-|-|-| +197|removexattr|man/ cs/|0xC5|const char *path|const char *name|-|-|-|-| +198|lremovexattr|man/ cs/|0xC6|const char *path|const char *name|-|-|-|-| +199|fremovexattr|man/ cs/|0xC7|int fd|const char *name|-|-|-|-| +200|tkill|man/ cs/|0xC8|pid_t pid|int sig|-|-|-|-| +201|time|man/ cs/|0xC9|time_t *tloc|-|-|-|-|-| +202|futex|man/ cs/|0xCA|u32 *uaddr|int op|u32 val|struct __kernel_timespec *utime|u32 *uaddr2|u32 val3| +203|sched_setaffinity|man/ cs/|0xCB|pid_t pid|unsigned int len|unsigned long *user_mask_ptr|-|-|-| +204|sched_getaffinity|man/ cs/|0xCC|pid_t pid|unsigned int len|unsigned long *user_mask_ptr|-|-|-| +205|set_thread_area|man/ cs/|0xCD|?|?|?|?|?|?| +206|io_setup|man/ cs/|0xCE|unsigned nr_reqs|aio_context_t *ctx|-|-|-|-| +207|io_destroy|man/ cs/|0xCF|aio_context_t ctx|-|-|-|-|-| +208|io_getevents|man/ cs/|0xD0|aio_context_t ctx_id|long min_nr|long nr|struct io_event *events|struct __kernel_timespec *timeout|-| +209|io_submit|man/ cs/|0xD1|aio_context_t|long|struct iocb * *|-|-|-| +210|io_cancel|man/ cs/|0xD2|aio_context_t ctx_id|struct iocb *iocb|struct io_event *result|-|-|-| +211|get_thread_area|man/ cs/|0xD3|?|?|?|?|?|?| +212|lookup_dcookie|man/ cs/|0xD4|u64 cookie64|char *buf|size_t len|-|-|-| +213|epoll_create|man/ cs/|0xD5|int size|-|-|-|-|-| +214|epoll_ctl_old|man/ cs/|0xD6|?|?|?|?|?|?| +215|epoll_wait_old|man/ cs/|0xD7|?|?|?|?|?|?| +216|remap_file_pages|man/ cs/|0xD8|unsigned long start|unsigned long size|unsigned long prot|unsigned long pgoff|unsigned long flags|-| +217|getdents64|man/ cs/|0xD9|unsigned int fd|struct linux_dirent64 *dirent|unsigned int count|-|-|-| +218|set_tid_address|man/ cs/|0xDA|int *tidptr|-|-|-|-|-| +219|restart_syscall|man/ cs/|0xDB|-|-|-|-|-|-| +220|semtimedop|man/ cs/|0xDC|int semid|struct sembuf *sops|unsigned nsops|const struct __kernel_timespec *timeout|-|-| +221|fadvise64|man/ cs/|0xDD|int fd|loff_t offset|size_t len|int advice|-|-| +222|timer_create|man/ cs/|0xDE|clockid_t which_clock|struct sigevent *timer_event_spec|timer_t * created_timer_id|-|-|-| +223|timer_settime|man/ cs/|0xDF|timer_t timer_id|int flags|const struct __kernel_itimerspec *new_setting|struct __kernel_itimerspec *old_setting|-|-| +224|timer_gettime|man/ cs/|0xE0|timer_t timer_id|struct __kernel_itimerspec *setting|-|-|-|-| +225|timer_getoverrun|man/ cs/|0xE1|timer_t timer_id|-|-|-|-|-| +226|timer_delete|man/ cs/|0xE2|timer_t timer_id|-|-|-|-|-| +227|clock_settime|man/ cs/|0xE3|clockid_t which_clock|const struct __kernel_timespec *tp|-|-|-|-| +228|clock_gettime|man/ cs/|0xE4|clockid_t which_clock|struct __kernel_timespec *tp|-|-|-|-| +229|clock_getres|man/ cs/|0xE5|clockid_t which_clock|struct __kernel_timespec *tp|-|-|-|-| +230|clock_nanosleep|man/ cs/|0xE6|clockid_t which_clock|int flags|const struct __kernel_timespec *rqtp|struct __kernel_timespec *rmtp|-|-| +231|exit_group|man/ cs/|0xE7|int error_code|-|-|-|-|-| +232|epoll_wait|man/ cs/|0xE8|int epfd|struct epoll_event *events|int maxevents|int timeout|-|-| +233|epoll_ctl|man/ cs/|0xE9|int epfd|int op|int fd|struct epoll_event *event|-|-| +234|tgkill|man/ cs/|0xEA|pid_t tgid|pid_t pid|int sig|-|-|-| +235|utimes|man/ cs/|0xEB|char *filename|struct timeval *utimes|-|-|-|-| +236|vserver|man/ cs/|0xEC|?|?|?|?|?|?| +237|mbind|man/ cs/|0xED|unsigned long start|unsigned long len|unsigned long mode|const unsigned long *nmask|unsigned long maxnode|unsigned flags| +238|set_mempolicy|man/ cs/|0xEE|int mode|const unsigned long *nmask|unsigned long maxnode|-|-|-| +239|get_mempolicy|man/ cs/|0xEF|int *policy|unsigned long *nmask|unsigned long maxnode|unsigned long addr|unsigned long flags|-| +240|mq_open|man/ cs/|0xF0|const char *name|int oflag|umode_t mode|struct mq_attr *attr|-|-| +241|mq_unlink|man/ cs/|0xF1|const char *name|-|-|-|-|-| +242|mq_timedsend|man/ cs/|0xF2|mqd_t mqdes|const char *msg_ptr|size_t msg_len|unsigned int msg_prio|const struct __kernel_timespec *abs_timeout|-| +243|mq_timedreceive|man/ cs/|0xF3|mqd_t mqdes|char *msg_ptr|size_t msg_len|unsigned int *msg_prio|const struct __kernel_timespec *abs_timeout|-| +244|mq_notify|man/ cs/|0xF4|mqd_t mqdes|const struct sigevent *notification|-|-|-|-| +245|mq_getsetattr|man/ cs/|0xF5|mqd_t mqdes|const struct mq_attr *mqstat|struct mq_attr *omqstat|-|-|-| +246|kexec_load|man/ cs/|0xF6|unsigned long entry|unsigned long nr_segments|struct kexec_segment *segments|unsigned long flags|-|-| +247|waitid|man/ cs/|0xF7|int which|pid_t pid|struct siginfo *infop|int options|struct rusage *ru|-| +248|add_key|man/ cs/|0xF8|const char *_type|const char *_description|const void *_payload|size_t plen|key_serial_t destringid|-| +249|request_key|man/ cs/|0xF9|const char *_type|const char *_description|const char *_callout_info|key_serial_t destringid|-|-| +250|keyctl|man/ cs/|0xFA|int cmd|unsigned long arg2|unsigned long arg3|unsigned long arg4|unsigned long arg5|-| +251|ioprio_set|man/ cs/|0xFB|int which|int who|int ioprio|-|-|-| +252|ioprio_get|man/ cs/|0xFC|int which|int who|-|-|-|-| +253|inotify_init|man/ cs/|0xFD|-|-|-|-|-|-| +254|inotify_add_watch|man/ cs/|0xFE|int fd|const char *path|u32 mask|-|-|-| +255|inotify_rm_watch|man/ cs/|0xFF|int fd|__s32 wd|-|-|-|-| +256|migrate_pages|man/ cs/|0x100|pid_t pid|unsigned long maxnode|const unsigned long *from|const unsigned long *to|-|-| +257|openat|man/ cs/|0x101|int dfd|const char *filename|int flags|umode_t mode|-|-| +258|mkdirat|man/ cs/|0x102|int dfd|const char * pathname|umode_t mode|-|-|-| +259|mknodat|man/ cs/|0x103|int dfd|const char * filename|umode_t mode|unsigned dev|-|-| +260|fchownat|man/ cs/|0x104|int dfd|const char *filename|uid_t user|gid_t group|int flag|-| +261|futimesat|man/ cs/|0x105|int dfd|const char *filename|struct timeval *utimes|-|-|-| +262|newfstatat|man/ cs/|0x106|int dfd|const char *filename|struct stat *statbuf|int flag|-|-| +263|unlinkat|man/ cs/|0x107|int dfd|const char * pathname|int flag|-|-|-| +264|renameat|man/ cs/|0x108|int olddfd|const char * oldname|int newdfd|const char * newname|-|-| +265|linkat|man/ cs/|0x109|int olddfd|const char *oldname|int newdfd|const char *newname|int flags|-| +266|symlinkat|man/ cs/|0x10A|const char * oldname|int newdfd|const char * newname|-|-|-| +267|readlinkat|man/ cs/|0x10B|int dfd|const char *path|char *buf|int bufsiz|-|-| +268|fchmodat|man/ cs/|0x10C|int dfd|const char * filename|umode_t mode|-|-|-| +269|faccessat|man/ cs/|0x10D|int dfd|const char *filename|int mode|-|-|-| +270|pselect6|man/ cs/|0x10E|int|fd_set *|fd_set *|fd_set *|struct __kernel_timespec *|void *| +271|ppoll|man/ cs/|0x10F|struct pollfd *|unsigned int|struct __kernel_timespec *|const sigset_t *|size_t|-| +272|unshare|man/ cs/|0x110|unsigned long unshare_flags|-|-|-|-|-| +273|set_robust_list|man/ cs/|0x111|struct robust_list_head *head|size_t len|-|-|-|-| +274|get_robust_list|man/ cs/|0x112|int pid|struct robust_list_head * *head_ptr|size_t *len_ptr|-|-|-| +275|splice|man/ cs/|0x113|int fd_in|loff_t *off_in|int fd_out|loff_t *off_out|size_t len|unsigned int flags| +276|tee|man/ cs/|0x114|int fdin|int fdout|size_t len|unsigned int flags|-|-| +277|sync_file_range|man/ cs/|0x115|int fd|loff_t offset|loff_t nbytes|unsigned int flags|-|-| +278|vmsplice|man/ cs/|0x116|int fd|const struct iovec *iov|unsigned long nr_segs|unsigned int flags|-|-| +279|move_pages|man/ cs/|0x117|pid_t pid|unsigned long nr_pages|const void * *pages|const int *nodes|int *status|int flags| +280|utimensat|man/ cs/|0x118|int dfd|const char *filename|struct __kernel_timespec *utimes|int flags|-|-| +281|epoll_pwait|man/ cs/|0x119|int epfd|struct epoll_event *events|int maxevents|int timeout|const sigset_t *sigmask|size_t sigsetsize| +282|signalfd|man/ cs/|0x11A|int ufd|sigset_t *user_mask|size_t sizemask|-|-|-| +283|timerfd_create|man/ cs/|0x11B|int clockid|int flags|-|-|-|-| +284|eventfd|man/ cs/|0x11C|unsigned int count|-|-|-|-|-| +285|fallocate|man/ cs/|0x11D|int fd|int mode|loff_t offset|loff_t len|-|-| +286|timerfd_settime|man/ cs/|0x11E|int ufd|int flags|const struct __kernel_itimerspec *utmr|struct __kernel_itimerspec *otmr|-|-| +287|timerfd_gettime|man/ cs/|0x11F|int ufd|struct __kernel_itimerspec *otmr|-|-|-|-| +288|accept4|man/ cs/|0x120|int|struct sockaddr *|int *|int|-|-| +289|signalfd4|man/ cs/|0x121|int ufd|sigset_t *user_mask|size_t sizemask|int flags|-|-| +290|eventfd2|man/ cs/|0x122|unsigned int count|int flags|-|-|-|-| +291|epoll_create1|man/ cs/|0x123|int flags|-|-|-|-|-| +292|dup3|man/ cs/|0x124|unsigned int oldfd|unsigned int newfd|int flags|-|-|-| +293|pipe2|man/ cs/|0x125|int *fildes|int flags|-|-|-|-| +294|inotify_init1|man/ cs/|0x126|int flags|-|-|-|-|-| +295|preadv|man/ cs/|0x127|unsigned long fd|const struct iovec *vec|unsigned long vlen|unsigned long pos_l|unsigned long pos_h|-| +296|pwritev|man/ cs/|0x128|unsigned long fd|const struct iovec *vec|unsigned long vlen|unsigned long pos_l|unsigned long pos_h|-| +297|rt_tgsigqueueinfo|man/ cs/|0x129|pid_t tgid|pid_t pid|int sig|siginfo_t *uinfo|-|-| +298|perf_event_open|man/ cs/|0x12A|struct perf_event_attr *attr_uptr|pid_t pid|int cpu|int group_fd|unsigned long flags|-| +299|recvmmsg|man/ cs/|0x12B|int fd|struct mmsghdr *msg|unsigned int vlen|unsigned flags|struct __kernel_timespec *timeout|-| +300|fanotify_init|man/ cs/|0x12C|unsigned int flags|unsigned int event_f_flags|-|-|-|-| +301|fanotify_mark|man/ cs/|0x12D|int fanotify_fd|unsigned int flags|u64 mask|int fd|const char *pathname|-| +302|prlimit64|man/ cs/|0x12E|pid_t pid|unsigned int resource|const struct rlimit64 *new_rlim|struct rlimit64 *old_rlim|-|-| +303|name_to_handle_at|man/ cs/|0x12F|int dfd|const char *name|struct file_handle *handle|int *mnt_id|int flag|-| +304|open_by_handle_at|man/ cs/|0x130|int mountdirfd|struct file_handle *handle|int flags|-|-|-| +305|clock_adjtime|man/ cs/|0x131|clockid_t which_clock|struct __kernel_timex *tx|-|-|-|-| +306|syncfs|man/ cs/|0x132|int fd|-|-|-|-|-| +307|sendmmsg|man/ cs/|0x133|int fd|struct mmsghdr *msg|unsigned int vlen|unsigned flags|-|-| +308|setns|man/ cs/|0x134|int fd|int nstype|-|-|-|-| +309|getcpu|man/ cs/|0x135|unsigned *cpu|unsigned *node|struct getcpu_cache *cache|-|-|-| +310|process_vm_readv|man/ cs/|0x136|pid_t pid|const struct iovec *lvec|unsigned long liovcnt|const struct iovec *rvec|unsigned long riovcnt|unsigned long flags| +311|process_vm_writev|man/ cs/|0x137|pid_t pid|const struct iovec *lvec|unsigned long liovcnt|const struct iovec *rvec|unsigned long riovcnt|unsigned long flags| +312|kcmp|man/ cs/|0x138|pid_t pid1|pid_t pid2|int type|unsigned long idx1|unsigned long idx2|-| +313|finit_module|man/ cs/|0x139|int fd|const char *uargs|int flags|-|-|-| +314|sched_setattr|man/ cs/|0x13A|pid_t pid|struct sched_attr *attr|unsigned int flags|-|-|-| +315|sched_getattr|man/ cs/|0x13B|pid_t pid|struct sched_attr *attr|unsigned int size|unsigned int flags|-|-| +316|renameat2|man/ cs/|0x13C|int olddfd|const char *oldname|int newdfd|const char *newname|unsigned int flags|-| +317|seccomp|man/ cs/|0x13D|unsigned int op|unsigned int flags|void *uargs|-|-|-| +318|getrandom|man/ cs/|0x13E|char *buf|size_t count|unsigned int flags|-|-|-| +319|memfd_create|man/ cs/|0x13F|const char *uname_ptr|unsigned int flags|-|-|-|-| +320|kexec_file_load|man/ cs/|0x140|int kernel_fd|int initrd_fd|unsigned long cmdline_len|const char *cmdline_ptr|unsigned long flags|-| +321|bpf|man/ cs/|0x141|int cmd|union bpf_attr *attr|unsigned int size|-|-|-| +322|execveat|man/ cs/|0x142|int dfd|const char *filename|const char *const *argv|const char *const *envp|int flags|-| +323|userfaultfd|man/ cs/|0x143|int flags|-|-|-|-|-| +324|membarrier|man/ cs/|0x144|int cmd|int flags|-|-|-|-| +325|mlock2|man/ cs/|0x145|unsigned long start|size_t len|int flags|-|-|-| +326|copy_file_range|man/ cs/|0x146|int fd_in|loff_t *off_in|int fd_out|loff_t *off_out|size_t len|unsigned int flags| +327|preadv2|man/ cs/|0x147|unsigned long fd|const struct iovec *vec|unsigned long vlen|unsigned long pos_l|unsigned long pos_h|rwf_t flags| +328|pwritev2|man/ cs/|0x148|unsigned long fd|const struct iovec *vec|unsigned long vlen|unsigned long pos_l|unsigned long pos_h|rwf_t flags| +329|pkey_mprotect|man/ cs/|0x149|unsigned long start|size_t len|unsigned long prot|int pkey|-|-| +330|pkey_alloc|man/ cs/|0x14A|unsigned long flags|unsigned long init_val|-|-|-|-| +331|pkey_free|man/ cs/|0x14B|int pkey|-|-|-|-|-| +332|statx|man/ cs/|0x14C|int dfd|const char *path|unsigned flags|unsigned mask|struct statx *buffer|-| diff --git a/x64-syscall.md b/x64-syscall.md new file mode 100644 index 0000000..bdfb387 --- /dev/null +++ b/x64-syscall.md @@ -0,0 +1,337 @@ +# x64 System Calls and Arguments + +| NR | SYSCALL NAME | references | RAX | ARG0 (rdi) | ARG1 (rsi) | ARG2 (rdx) | ARG3 (r10) | ARG4 (r8) | ARG5 (r9) | +| :-: | :-----------------------: | :--------: | :-: | :-----------------------------------: | :--------------------------------------: | :------------------------------------------------: | :------------------------------------------: | :----------------------------------------------: | :-----------------: | +| 0 | read | man/ cs/ | 0 | unsigned int fd | char \*buf | size\_t count | \- | \- | \- | +| 1 | write | man/ cs/ | 1 | unsigned int fd | const char \*buf | size\_t count | \- | \- | \- | +| 2 | open | man/ cs/ | 2 | const char \*filename | int flags | umode\_t mode | \- | \- | \- | +| 3 | close | man/ cs/ | 3 | unsigned int fd | \- | \- | \- | \- | \- | +| 4 | stat | man/ cs/ | 4 | const char \*filename | struct \_\_old\_kernel\_stat \*statbuf | \- | \- | \- | \- | +| 5 | fstat | man/ cs/ | 5 | unsigned int fd | struct \_\_old\_kernel\_stat \*statbuf | \- | \- | \- | \- | +| 6 | lstat | man/ cs/ | 6 | const char \*filename | struct \_\_old\_kernel\_stat \*statbuf | \- | \- | \- | \- | +| 7 | poll | man/ cs/ | 7 | struct pollfd \*ufds | unsigned int nfds | int timeout | \- | \- | \- | +| 8 | lseek | man/ cs/ | 8 | unsigned int fd | off\_t offset | unsigned int whence | \- | \- | \- | +| 9 | mmap | man/ cs/ | 9 | ? | ? | ? | ? | ? | ? | +| 10 | mprotect | man/ cs/ | A | unsigned long start | size\_t len | unsigned long prot | \- | \- | \- | +| 11 | munmap | man/ cs/ | B | unsigned long addr | size\_t len | \- | \- | \- | \- | +| 12 | brk | man/ cs/ | C | unsigned long brk | \- | \- | \- | \- | \- | +| 13 | rt\_sigaction | man/ cs/ | D | int | const struct sigaction \* | struct sigaction \* | size\_t | \- | \- | +| 14 | rt\_sigprocmask | man/ cs/ | E | int how | sigset\_t \*set | sigset\_t \*oset | size\_t sigsetsize | \- | \- | +| 15 | rt\_sigreturn | man/ cs/ | F | ? | ? | ? | ? | ? | ? | +| 16 | ioctl | man/ cs/ | 10 | unsigned int fd | unsigned int cmd | unsigned long arg | \- | \- | \- | +| 17 | pread64 | man/ cs/ | 11 | unsigned int fd | char \*buf | size\_t count | loff\_t pos | \- | \- | +| 18 | pwrite64 | man/ cs/ | 12 | unsigned int fd | const char \*buf | size\_t count | loff\_t pos | \- | \- | +| 19 | readv | man/ cs/ | 13 | unsigned long fd | const struct iovec \*vec | unsigned long vlen | \- | \- | \- | +| 20 | writev | man/ cs/ | 14 | unsigned long fd | const struct iovec \*vec | unsigned long vlen | \- | \- | \- | +| 21 | access | man/ cs/ | 15 | const char \*filename | int mode | \- | \- | \- | \- | +| 22 | pipe | man/ cs/ | 16 | int \*fildes | \- | \- | \- | \- | \- | +| 23 | select | man/ cs/ | 17 | int n | fd\_set \*inp | fd\_set \*outp | fd\_set \*exp | struct timeval \*tvp | \- | +| 24 | sched\_yield | man/ cs/ | 18 | \- | \- | \- | \- | \- | \- | +| 25 | mremap | man/ cs/ | 19 | unsigned long addr | unsigned long old\_len | unsigned long new\_len | unsigned long flags | unsigned long new\_addr | \- | +| 26 | msync | man/ cs/ | 1A | unsigned long start | size\_t len | int flags | \- | \- | \- | +| 27 | mincore | man/ cs/ | 1B | unsigned long start | size\_t len | unsigned char \* vec | \- | \- | \- | +| 28 | madvise | man/ cs/ | 1C | unsigned long start | size\_t len | int behavior | \- | \- | \- | +| 29 | shmget | man/ cs/ | 1D | key\_t key | size\_t size | int flag | \- | \- | \- | +| 30 | shmat | man/ cs/ | 1E | int shmid | char \*shmaddr | int shmflg | \- | \- | \- | +| 31 | shmctl | man/ cs/ | 1F | int shmid | int cmd | struct shmid\_ds \*buf | \- | \- | \- | +| 32 | dup | man/ cs/ | 20 | unsigned int fildes | \- | \- | \- | \- | \- | +| 33 | dup2 | man/ cs/ | 21 | unsigned int oldfd | unsigned int newfd | \- | \- | \- | \- | +| 34 | pause | man/ cs/ | 22 | \- | \- | \- | \- | \- | \- | +| 35 | nanosleep | man/ cs/ | 23 | struct \_\_kernel\_timespec \*rqtp | struct \_\_kernel\_timespec \*rmtp | \- | \- | \- | \- | +| 36 | getitimer | man/ cs/ | 24 | int which | struct itimerval \*value | \- | \- | \- | \- | +| 37 | alarm | man/ cs/ | 25 | unsigned int seconds | \- | \- | \- | \- | \- | +| 38 | setitimer | man/ cs/ | 26 | int which | struct itimerval \*value | struct itimerval \*ovalue | \- | \- | \- | +| 39 | getpid | man/ cs/ | 27 | \- | \- | \- | \- | \- | \- | +| 40 | sendfile | man/ cs/ | 28 | int out\_fd | int in\_fd | off\_t \*offset | size\_t count | \- | \- | +| 41 | socket | man/ cs/ | 29 | int | int | int | \- | \- | \- | +| 42 | connect | man/ cs/ | 2A | int | struct sockaddr \* | int | \- | \- | \- | +| 43 | accept | man/ cs/ | 2B | int | struct sockaddr \* | int \* | \- | \- | \- | +| 44 | sendto | man/ cs/ | 2C | int | void \* | size\_t | unsigned | struct sockaddr \* | int | +| 45 | recvfrom | man/ cs/ | 2D | int | void \* | size\_t | unsigned | struct sockaddr \* | int \* | +| 46 | sendmsg | man/ cs/ | 2E | int fd | struct user\_msghdr \*msg | unsigned flags | \- | \- | \- | +| 47 | recvmsg | man/ cs/ | 2F | int fd | struct user\_msghdr \*msg | unsigned flags | \- | \- | \- | +| 48 | shutdown | man/ cs/ | 30 | int | int | \- | \- | \- | \- | +| 49 | bind | man/ cs/ | 31 | int | struct sockaddr \* | int | \- | \- | \- | +| 50 | listen | man/ cs/ | 32 | int | int | \- | \- | \- | \- | +| 51 | getsockname | man/ cs/ | 33 | int | struct sockaddr \* | int \* | \- | \- | \- | +| 52 | getpeername | man/ cs/ | 34 | int | struct sockaddr \* | int \* | \- | \- | \- | +| 53 | socketpair | man/ cs/ | 35 | int | int | int | int \* | \- | \- | +| 54 | setsockopt | man/ cs/ | 36 | int fd | int level | int optname | char \*optval | int optlen | \- | +| 55 | getsockopt | man/ cs/ | 37 | int fd | int level | int optname | char \*optval | int \*optlen | \- | +| 56 | clone | man/ cs/ | 38 | unsigned long | unsigned long | int \* | int \* | unsigned long | \- | +| 57 | fork | man/ cs/ | 39 | \- | \- | \- | \- | \- | \- | +| 58 | vfork | man/ cs/ | 3A | \- | \- | \- | \- | \- | \- | +| 59 | execve | man/ cs/ | 3B | const char \*filename | const char \*const \*argv | const char \*const \*envp | \- | \- | \- | +| 60 | exit | man/ cs/ | 3C | int error\_code | \- | \- | \- | \- | \- | +| 61 | wait4 | man/ cs/ | 3D | pid\_t pid | int \*stat\_addr | int options | struct rusage \*ru | \- | \- | +| 62 | kill | man/ cs/ | 3E | pid\_t pid | int sig | \- | \- | \- | \- | +| 63 | uname | man/ cs/ | 3F | struct old\_utsname \* | \- | \- | \- | \- | \- | +| 64 | semget | man/ cs/ | 40 | key\_t key | int nsems | int semflg | \- | \- | \- | +| 65 | semop | man/ cs/ | 41 | int semid | struct sembuf \*sops | unsigned nsops | \- | \- | \- | +| 66 | semctl | man/ cs/ | 42 | int semid | int semnum | int cmd | unsigned long arg | \- | \- | +| 67 | shmdt | man/ cs/ | 43 | char \*shmaddr | \- | \- | \- | \- | \- | +| 68 | msgget | man/ cs/ | 44 | key\_t key | int msgflg | \- | \- | \- | \- | +| 69 | msgsnd | man/ cs/ | 45 | int msqid | struct msgbuf \*msgp | size\_t msgsz | int msgflg | \- | \- | +| 70 | msgrcv | man/ cs/ | 46 | int msqid | struct msgbuf \*msgp | size\_t msgsz | long msgtyp | int msgflg | \- | +| 71 | msgctl | man/ cs/ | 47 | int msqid | int cmd | struct msqid\_ds \*buf | \- | \- | \- | +| 72 | fcntl | man/ cs/ | 48 | unsigned int fd | unsigned int cmd | unsigned long arg | \- | \- | \- | +| 73 | flock | man/ cs/ | 49 | unsigned int fd | unsigned int cmd | \- | \- | \- | \- | +| 74 | fsync | man/ cs/ | 4A | unsigned int fd | \- | \- | \- | \- | \- | +| 75 | fdatasync | man/ cs/ | 4B | unsigned int fd | \- | \- | \- | \- | \- | +| 76 | truncate | man/ cs/ | 4C | const char \*path | long length | \- | \- | \- | \- | +| 77 | ftruncate | man/ cs/ | 4D | unsigned int fd | unsigned long length | \- | \- | \- | \- | +| 78 | getdents | man/ cs/ | 4E | unsigned int fd | struct linux\_dirent \*dirent | unsigned int count | \- | \- | \- | +| 79 | getcwd | man/ cs/ | 4F | char \*buf | unsigned long size | \- | \- | \- | \- | +| 80 | chdir | man/ cs/ | 50 | const char \*filename | \- | \- | \- | \- | \- | +| 81 | fchdir | man/ cs/ | 51 | unsigned int fd | \- | \- | \- | \- | \- | +| 82 | rename | man/ cs/ | 52 | const char \*oldname | const char \*newname | \- | \- | \- | \- | +| 83 | mkdir | man/ cs/ | 53 | const char \*pathname | umode\_t mode | \- | \- | \- | \- | +| 84 | rmdir | man/ cs/ | 54 | const char \*pathname | \- | \- | \- | \- | \- | +| 85 | creat | man/ cs/ | 55 | const char \*pathname | umode\_t mode | \- | \- | \- | \- | +| 86 | link | man/ cs/ | 56 | const char \*oldname | const char \*newname | \- | \- | \- | \- | +| 87 | unlink | man/ cs/ | 57 | const char \*pathname | \- | \- | \- | \- | \- | +| 88 | symlink | man/ cs/ | 58 | const char \*old | const char \*new | \- | \- | \- | \- | +| 89 | readlink | man/ cs/ | 59 | const char \*path | char \*buf | int bufsiz | \- | \- | \- | +| 90 | chmod | man/ cs/ | 5A | const char \*filename | umode\_t mode | \- | \- | \- | \- | +| 91 | fchmod | man/ cs/ | 5B | unsigned int fd | umode\_t mode | \- | \- | \- | \- | +| 92 | chown | man/ cs/ | 5C | const char \*filename | uid\_t user | gid\_t group | \- | \- | \- | +| 93 | fchown | man/ cs/ | 5D | unsigned int fd | uid\_t user | gid\_t group | \- | \- | \- | +| 94 | lchown | man/ cs/ | 5E | const char \*filename | uid\_t user | gid\_t group | \- | \- | \- | +| 95 | umask | man/ cs/ | 5F | int mask | \- | \- | \- | \- | \- | +| 96 | gettimeofday | man/ cs/ | 60 | struct timeval \*tv | struct timezone \*tz | \- | \- | \- | \- | +| 97 | getrlimit | man/ cs/ | 61 | unsigned int resource | struct rlimit \*rlim | \- | \- | \- | \- | +| 98 | getrusage | man/ cs/ | 62 | int who | struct rusage \*ru | \- | \- | \- | \- | +| 99 | sysinfo | man/ cs/ | 63 | struct sysinfo \*info | \- | \- | \- | \- | \- | +| 100 | times | man/ cs/ | 64 | struct tms \*tbuf | \- | \- | \- | \- | \- | +| 101 | ptrace | man/ cs/ | 65 | long request | long pid | unsigned long addr | unsigned long data | \- | \- | +| 102 | getuid | man/ cs/ | 66 | \- | \- | \- | \- | \- | \- | +| 103 | syslog | man/ cs/ | 67 | int type | char \*buf | int len | \- | \- | \- | +| 104 | getgid | man/ cs/ | 68 | \- | \- | \- | \- | \- | \- | +| 105 | setuid | man/ cs/ | 69 | uid\_t uid | \- | \- | \- | \- | \- | +| 106 | setgid | man/ cs/ | 6A | gid\_t gid | \- | \- | \- | \- | \- | +| 107 | geteuid | man/ cs/ | 6B | \- | \- | \- | \- | \- | \- | +| 108 | getegid | man/ cs/ | 6C | \- | \- | \- | \- | \- | \- | +| 109 | setpgid | man/ cs/ | 6D | pid\_t pid | pid\_t pgid | \- | \- | \- | \- | +| 110 | getppid | man/ cs/ | 6E | \- | \- | \- | \- | \- | \- | +| 111 | getpgrp | man/ cs/ | 6F | \- | \- | \- | \- | \- | \- | +| 112 | setsid | man/ cs/ | 70 | \- | \- | \- | \- | \- | \- | +| 113 | setreuid | man/ cs/ | 71 | uid\_t ruid | uid\_t euid | \- | \- | \- | \- | +| 114 | setregid | man/ cs/ | 72 | gid\_t rgid | gid\_t egid | \- | \- | \- | \- | +| 115 | getgroups | man/ cs/ | 73 | int gidsetsize | gid\_t \*grouplist | \- | \- | \- | \- | +| 116 | setgroups | man/ cs/ | 74 | int gidsetsize | gid\_t \*grouplist | \- | \- | \- | \- | +| 117 | setresuid | man/ cs/ | 75 | uid\_t ruid | uid\_t euid | uid\_t suid | \- | \- | \- | +| 118 | getresuid | man/ cs/ | 76 | uid\_t \*ruid | uid\_t \*euid | uid\_t \*suid | \- | \- | \- | +| 119 | setresgid | man/ cs/ | 77 | gid\_t rgid | gid\_t egid | gid\_t sgid | \- | \- | \- | +| 120 | getresgid | man/ cs/ | 78 | gid\_t \*rgid | gid\_t \*egid | gid\_t \*sgid | \- | \- | \- | +| 121 | getpgid | man/ cs/ | 79 | pid\_t pid | \- | \- | \- | \- | \- | +| 122 | setfsuid | man/ cs/ | 7A | uid\_t uid | \- | \- | \- | \- | \- | +| 123 | setfsgid | man/ cs/ | 7B | gid\_t gid | \- | \- | \- | \- | \- | +| 124 | getsid | man/ cs/ | 7C | pid\_t pid | \- | \- | \- | \- | \- | +| 125 | capget | man/ cs/ | 7D | cap\_user\_header\_t header | cap\_user\_data\_t dataptr | \- | \- | \- | \- | +| 126 | capset | man/ cs/ | 7E | cap\_user\_header\_t header | const cap\_user\_data\_t data | \- | \- | \- | \- | +| 127 | rt\_sigpending | man/ cs/ | 7F | sigset\_t \*set | size\_t sigsetsize | \- | \- | \- | \- | +| 128 | rt\_sigtimedwait | man/ cs/ | 80 | const sigset\_t \*uthese | siginfo\_t \*uinfo | const struct \_\_kernel\_timespec \*uts | size\_t sigsetsize | \- | \- | +| 129 | rt\_sigqueueinfo | man/ cs/ | 81 | pid\_t pid | int sig | siginfo\_t \*uinfo | \- | \- | \- | +| 130 | rt\_sigsuspend | man/ cs/ | 82 | sigset\_t \*unewset | size\_t sigsetsize | \- | \- | \- | \- | +| 131 | sigaltstack | man/ cs/ | 83 | const struct sigaltstack \*uss | struct sigaltstack \*uoss | \- | \- | \- | \- | +| 132 | utime | man/ cs/ | 84 | char \*filename | struct utimbuf \*times | \- | \- | \- | \- | +| 133 | mknod | man/ cs/ | 85 | const char \*filename | umode\_t mode | unsigned dev | \- | \- | \- | +| 134 | uselib | man/ cs/ | 86 | const char \*library | \- | \- | \- | \- | \- | +| 135 | personality | man/ cs/ | 87 | unsigned int personality | \- | \- | \- | \- | \- | +| 136 | ustat | man/ cs/ | 88 | unsigned dev | struct ustat \*ubuf | \- | \- | \- | \- | +| 137 | statfs | man/ cs/ | 89 | const char \* path | struct statfs \*buf | \- | \- | \- | \- | +| 138 | fstatfs | man/ cs/ | 8A | unsigned int fd | struct statfs \*buf | \- | \- | \- | \- | +| 139 | sysfs | man/ cs/ | 8B | int option | unsigned long arg1 | unsigned long arg2 | \- | \- | \- | +| 140 | getpriority | man/ cs/ | 8C | int which | int who | \- | \- | \- | \- | +| 141 | setpriority | man/ cs/ | 8D | int which | int who | int niceval | \- | \- | \- | +| 142 | sched\_setparam | man/ cs/ | 8E | pid\_t pid | struct sched\_param \*param | \- | \- | \- | \- | +| 143 | sched\_getparam | man/ cs/ | 8F | pid\_t pid | struct sched\_param \*param | \- | \- | \- | \- | +| 144 | sched\_setscheduler | man/ cs/ | 90 | pid\_t pid | int policy | struct sched\_param \*param | \- | \- | \- | +| 145 | sched\_getscheduler | man/ cs/ | 91 | pid\_t pid | \- | \- | \- | \- | \- | +| 146 | sched\_get\_priority\_max | man/ cs/ | 92 | int policy | \- | \- | \- | \- | \- | +| 147 | sched\_get\_priority\_min | man/ cs/ | 93 | int policy | \- | \- | \- | \- | \- | +| 148 | sched\_rr\_get\_interval | man/ cs/ | 94 | pid\_t pid | struct \_\_kernel\_timespec \*interval | \- | \- | \- | \- | +| 149 | mlock | man/ cs/ | 95 | unsigned long start | size\_t len | \- | \- | \- | \- | +| 150 | munlock | man/ cs/ | 96 | unsigned long start | size\_t len | \- | \- | \- | \- | +| 151 | mlockall | man/ cs/ | 97 | int flags | \- | \- | \- | \- | \- | +| 152 | munlockall | man/ cs/ | 98 | \- | \- | \- | \- | \- | \- | +| 153 | vhangup | man/ cs/ | 99 | \- | \- | \- | \- | \- | \- | +| 154 | modify\_ldt | man/ cs/ | 9A | ? | ? | ? | ? | ? | ? | +| 155 | pivot\_root | man/ cs/ | 9B | const char \*new\_root | const char \*put\_old | \- | \- | \- | \- | +| 156 | \_sysctl | man/ cs/ | 9C | ? | ? | ? | ? | ? | ? | +| 157 | prctl | man/ cs/ | 9D | int option | unsigned long arg2 | unsigned long arg3 | unsigned long arg4 | unsigned long arg5 | \- | +| 158 | arch\_prctl | man/ cs/ | 9E | ? | ? | ? | ? | ? | ? | +| 159 | adjtimex | man/ cs/ | 9F | struct \_\_kernel\_timex \*txc\_p | \- | \- | \- | \- | \- | +| 160 | setrlimit | man/ cs/ | A0 | unsigned int resource | struct rlimit \*rlim | \- | \- | \- | \- | +| 161 | chroot | man/ cs/ | A1 | const char \*filename | \- | \- | \- | \- | \- | +| 162 | sync | man/ cs/ | A2 | \- | \- | \- | \- | \- | \- | +| 163 | acct | man/ cs/ | A3 | const char \*name | \- | \- | \- | \- | \- | +| 164 | settimeofday | man/ cs/ | A4 | struct timeval \*tv | struct timezone \*tz | \- | \- | \- | \- | +| 165 | mount | man/ cs/ | A5 | char \*dev\_name | char \*dir\_name | char \*type | unsigned long flags | void \*data | \- | +| 166 | umount2 | man/ cs/ | A6 | ? | ? | ? | ? | ? | ? | +| 167 | swapon | man/ cs/ | A7 | const char \*specialfile | int swap\_flags | \- | \- | \- | \- | +| 168 | swapoff | man/ cs/ | A8 | const char \*specialfile | \- | \- | \- | \- | \- | +| 169 | reboot | man/ cs/ | A9 | int magic1 | int magic2 | unsigned int cmd | void \*arg | \- | \- | +| 170 | sethostname | man/ cs/ | AA | char \*name | int len | \- | \- | \- | \- | +| 171 | setdomainname | man/ cs/ | AB | char \*name | int len | \- | \- | \- | \- | +| 172 | iopl | man/ cs/ | AC | ? | ? | ? | ? | ? | ? | +| 173 | ioperm | man/ cs/ | AD | unsigned long from | unsigned long num | int on | \- | \- | \- | +| 174 | create\_module | man/ cs/ | AE | ? | ? | ? | ? | ? | ? | +| 175 | init\_module | man/ cs/ | AF | void \*umod | unsigned long len | const char \*uargs | \- | \- | \- | +| 176 | delete\_module | man/ cs/ | B0 | const char \*name\_user | unsigned int flags | \- | \- | \- | \- | +| 177 | get\_kernel\_syms | man/ cs/ | B1 | ? | ? | ? | ? | ? | ? | +| 178 | query\_module | man/ cs/ | B2 | ? | ? | ? | ? | ? | ? | +| 179 | quotactl | man/ cs/ | B3 | unsigned int cmd | const char \*special | qid\_t id | void \*addr | \- | \- | +| 180 | nfsservctl | man/ cs/ | B4 | ? | ? | ? | ? | ? | ? | +| 181 | getpmsg | man/ cs/ | B5 | ? | ? | ? | ? | ? | ? | +| 182 | putpmsg | man/ cs/ | B6 | ? | ? | ? | ? | ? | ? | +| 183 | afs\_syscall | man/ cs/ | B7 | ? | ? | ? | ? | ? | ? | +| 184 | tuxcall | man/ cs/ | B8 | ? | ? | ? | ? | ? | ? | +| 185 | security | man/ cs/ | B9 | ? | ? | ? | ? | ? | ? | +| 186 | gettid | man/ cs/ | BA | \- | \- | \- | \- | \- | \- | +| 187 | readahead | man/ cs/ | BB | int fd | loff\_t offset | size\_t count | \- | \- | \- | +| 188 | setxattr | man/ cs/ | BC | const char \*path | const char \*name | const void \*value | size\_t size | int flags | \- | +| 189 | lsetxattr | man/ cs/ | BD | const char \*path | const char \*name | const void \*value | size\_t size | int flags | \- | +| 190 | fsetxattr | man/ cs/ | BE | int fd | const char \*name | const void \*value | size\_t size | int flags | \- | +| 191 | getxattr | man/ cs/ | BF | const char \*path | const char \*name | void \*value | size\_t size | \- | \- | +| 192 | lgetxattr | man/ cs/ | C0 | const char \*path | const char \*name | void \*value | size\_t size | \- | \- | +| 193 | fgetxattr | man/ cs/ | C1 | int fd | const char \*name | void \*value | size\_t size | \- | \- | +| 194 | listxattr | man/ cs/ | C2 | const char \*path | char \*list | size\_t size | \- | \- | \- | +| 195 | llistxattr | man/ cs/ | C3 | const char \*path | char \*list | size\_t size | \- | \- | \- | +| 196 | flistxattr | man/ cs/ | C4 | int fd | char \*list | size\_t size | \- | \- | \- | +| 197 | removexattr | man/ cs/ | C5 | const char \*path | const char \*name | \- | \- | \- | \- | +| 198 | lremovexattr | man/ cs/ | C6 | const char \*path | const char \*name | \- | \- | \- | \- | +| 199 | fremovexattr | man/ cs/ | C7 | int fd | const char \*name | \- | \- | \- | \- | +| 200 | tkill | man/ cs/ | C8 | pid\_t pid | int sig | \- | \- | \- | \- | +| 201 | time | man/ cs/ | C9 | time\_t \*tloc | \- | \- | \- | \- | \- | +| 202 | futex | man/ cs/ | CA | u32 \*uaddr | int op | u32 val | struct \_\_kernel\_timespec \*utime | u32 \*uaddr2 | u32 val3 | +| 203 | sched\_setaffinity | man/ cs/ | CB | pid\_t pid | unsigned int len | unsigned long \*user\_mask\_ptr | \- | \- | \- | +| 204 | sched\_getaffinity | man/ cs/ | CC | pid\_t pid | unsigned int len | unsigned long \*user\_mask\_ptr | \- | \- | \- | +| 205 | set\_thread\_area | man/ cs/ | CD | ? | ? | ? | ? | ? | ? | +| 206 | io\_setup | man/ cs/ | CE | unsigned nr\_reqs | aio\_context\_t \*ctx | \- | \- | \- | \- | +| 207 | io\_destroy | man/ cs/ | CF | aio\_context\_t ctx | \- | \- | \- | \- | \- | +| 208 | io\_getevents | man/ cs/ | D0 | aio\_context\_t ctx\_id | long min\_nr | long nr | struct io\_event \*events | struct \_\_kernel\_timespec \*timeout | \- | +| 209 | io\_submit | man/ cs/ | D1 | aio\_context\_t | long | struct iocb \* \* | \- | \- | \- | +| 210 | io\_cancel | man/ cs/ | D2 | aio\_context\_t ctx\_id | struct iocb \*iocb | struct io\_event \*result | \- | \- | \- | +| 211 | get\_thread\_area | man/ cs/ | D3 | ? | ? | ? | ? | ? | ? | +| 212 | lookup\_dcookie | man/ cs/ | D4 | u64 cookie64 | char \*buf | size\_t len | \- | \- | \- | +| 213 | epoll\_create | man/ cs/ | D5 | int size | \- | \- | \- | \- | \- | +| 214 | epoll\_ctl\_old | man/ cs/ | D6 | ? | ? | ? | ? | ? | ? | +| 215 | epoll\_wait\_old | man/ cs/ | D7 | ? | ? | ? | ? | ? | ? | +| 216 | remap\_file\_pages | man/ cs/ | D8 | unsigned long start | unsigned long size | unsigned long prot | unsigned long pgoff | unsigned long flags | \- | +| 217 | getdents64 | man/ cs/ | D9 | unsigned int fd | struct linux\_dirent64 \*dirent | unsigned int count | \- | \- | \- | +| 218 | set\_tid\_address | man/ cs/ | DA | int \*tidptr | \- | \- | \- | \- | \- | +| 219 | restart\_syscall | man/ cs/ | DB | \- | \- | \- | \- | \- | \- | +| 220 | semtimedop | man/ cs/ | DC | int semid | struct sembuf \*sops | unsigned nsops | const struct \_\_kernel\_timespec \*timeout | \- | \- | +| 221 | fadvise64 | man/ cs/ | DD | int fd | loff\_t offset | size\_t len | int advice | \- | \- | +| 222 | timer\_create | man/ cs/ | DE | clockid\_t which\_clock | struct sigevent \*timer\_event\_spec | timer\_t \* created\_timer\_id | \- | \- | \- | +| 223 | timer\_settime | man/ cs/ | DF | timer\_t timer\_id | int flags | const struct \_\_kernel\_itimerspec \*new\_setting | struct \_\_kernel\_itimerspec \*old\_setting | \- | \- | +| 224 | timer\_gettime | man/ cs/ | E0 | timer\_t timer\_id | struct \_\_kernel\_itimerspec \*setting | \- | \- | \- | \- | +| 225 | timer\_getoverrun | man/ cs/ | E1 | timer\_t timer\_id | \- | \- | \- | \- | \- | +| 226 | timer\_delete | man/ cs/ | E2 | timer\_t timer\_id | \- | \- | \- | \- | \- | +| 227 | clock\_settime | man/ cs/ | E3 | clockid\_t which\_clock | const struct \_\_kernel\_timespec \*tp | \- | \- | \- | \- | +| 228 | clock\_gettime | man/ cs/ | E4 | clockid\_t which\_clock | struct \_\_kernel\_timespec \*tp | \- | \- | \- | \- | +| 229 | clock\_getres | man/ cs/ | E5 | clockid\_t which\_clock | struct \_\_kernel\_timespec \*tp | \- | \- | \- | \- | +| 230 | clock\_nanosleep | man/ cs/ | E6 | clockid\_t which\_clock | int flags | const struct \_\_kernel\_timespec \*rqtp | struct \_\_kernel\_timespec \*rmtp | \- | \- | +| 231 | exit\_group | man/ cs/ | E7 | int error\_code | \- | \- | \- | \- | \- | +| 232 | epoll\_wait | man/ cs/ | E8 | int epfd | struct epoll\_event \*events | int maxevents | int timeout | \- | \- | +| 233 | epoll\_ctl | man/ cs/ | E9 | int epfd | int op | int fd | struct epoll\_event \*event | \- | \- | +| 234 | tgkill | man/ cs/ | EA | pid\_t tgid | pid\_t pid | int sig | \- | \- | \- | +| 235 | utimes | man/ cs/ | EB | char \*filename | struct timeval \*utimes | \- | \- | \- | \- | +| 236 | vserver | man/ cs/ | EC | ? | ? | ? | ? | ? | ? | +| 237 | mbind | man/ cs/ | ED | unsigned long start | unsigned long len | unsigned long mode | const unsigned long \*nmask | unsigned long maxnode | unsigned flags | +| 238 | set\_mempolicy | man/ cs/ | EE | int mode | const unsigned long \*nmask | unsigned long maxnode | \- | \- | \- | +| 239 | get\_mempolicy | man/ cs/ | EF | int \*policy | unsigned long \*nmask | unsigned long maxnode | unsigned long addr | unsigned long flags | \- | +| 240 | mq\_open | man/ cs/ | F0 | const char \*name | int oflag | umode\_t mode | struct mq\_attr \*attr | \- | \- | +| 241 | mq\_unlink | man/ cs/ | F1 | const char \*name | \- | \- | \- | \- | \- | +| 242 | mq\_timedsend | man/ cs/ | F2 | mqd\_t mqdes | const char \*msg\_ptr | size\_t msg\_len | unsigned int msg\_prio | const struct \_\_kernel\_timespec \*abs\_timeout | \- | +| 243 | mq\_timedreceive | man/ cs/ | F3 | mqd\_t mqdes | char \*msg\_ptr | size\_t msg\_len | unsigned int \*msg\_prio | const struct \_\_kernel\_timespec \*abs\_timeout | \- | +| 244 | mq\_notify | man/ cs/ | F4 | mqd\_t mqdes | const struct sigevent \*notification | \- | \- | \- | \- | +| 245 | mq\_getsetattr | man/ cs/ | F5 | mqd\_t mqdes | const struct mq\_attr \*mqstat | struct mq\_attr \*omqstat | \- | \- | \- | +| 246 | kexec\_load | man/ cs/ | F6 | unsigned long entry | unsigned long nr\_segments | struct kexec\_segment \*segments | unsigned long flags | \- | \- | +| 247 | waitid | man/ cs/ | F7 | int which | pid\_t pid | struct siginfo \*infop | int options | struct rusage \*ru | \- | +| 248 | add\_key | man/ cs/ | F8 | const char \*\_type | const char \*\_description | const void \*\_payload | size\_t plen | key\_serial\_t destringid | \- | +| 249 | request\_key | man/ cs/ | F9 | const char \*\_type | const char \*\_description | const char \*\_callout\_info | key\_serial\_t destringid | \- | \- | +| 250 | keyctl | man/ cs/ | FA | int cmd | unsigned long arg2 | unsigned long arg3 | unsigned long arg4 | unsigned long arg5 | \- | +| 251 | ioprio\_set | man/ cs/ | FB | int which | int who | int ioprio | \- | \- | \- | +| 252 | ioprio\_get | man/ cs/ | FC | int which | int who | \- | \- | \- | \- | +| 253 | inotify\_init | man/ cs/ | FD | \- | \- | \- | \- | \- | \- | +| 254 | inotify\_add\_watch | man/ cs/ | FE | int fd | const char \*path | u32 mask | \- | \- | \- | +| 255 | inotify\_rm\_watch | man/ cs/ | FF | int fd | \_\_s32 wd | \- | \- | \- | \- | +| 256 | migrate\_pages | man/ cs/ | 100 | pid\_t pid | unsigned long maxnode | const unsigned long \*from | const unsigned long \*to | \- | \- | +| 257 | openat | man/ cs/ | 101 | int dfd | const char \*filename | int flags | umode\_t mode | \- | \- | +| 258 | mkdirat | man/ cs/ | 102 | int dfd | const char \* pathname | umode\_t mode | \- | \- | \- | +| 259 | mknodat | man/ cs/ | 103 | int dfd | const char \* filename | umode\_t mode | unsigned dev | \- | \- | +| 260 | fchownat | man/ cs/ | 104 | int dfd | const char \*filename | uid\_t user | gid\_t group | int flag | \- | +| 261 | futimesat | man/ cs/ | 105 | int dfd | const char \*filename | struct timeval \*utimes | \- | \- | \- | +| 262 | newfstatat | man/ cs/ | 106 | int dfd | const char \*filename | struct stat \*statbuf | int flag | \- | \- | +| 263 | unlinkat | man/ cs/ | 107 | int dfd | const char \* pathname | int flag | \- | \- | \- | +| 264 | renameat | man/ cs/ | 108 | int olddfd | const char \* oldname | int newdfd | const char \* newname | \- | \- | +| 265 | linkat | man/ cs/ | 109 | int olddfd | const char \*oldname | int newdfd | const char \*newname | int flags | \- | +| 266 | symlinkat | man/ cs/ | 10A | const char \* oldname | int newdfd | const char \* newname | \- | \- | \- | +| 267 | readlinkat | man/ cs/ | 10B | int dfd | const char \*path | char \*buf | int bufsiz | \- | \- | +| 268 | fchmodat | man/ cs/ | 10C | int dfd | const char \* filename | umode\_t mode | \- | \- | \- | +| 269 | faccessat | man/ cs/ | 10D | int dfd | const char \*filename | int mode | \- | \- | \- | +| 270 | pselect6 | man/ cs/ | 10E | int | fd\_set \* | fd\_set \* | fd\_set \* | struct \_\_kernel\_timespec \* | void \* | +| 271 | ppoll | man/ cs/ | 10F | struct pollfd \* | unsigned int | struct \_\_kernel\_timespec \* | const sigset\_t \* | size\_t | \- | +| 272 | unshare | man/ cs/ | 110 | unsigned long unshare\_flags | \- | \- | \- | \- | \- | +| 273 | set\_robust\_list | man/ cs/ | 111 | struct robust\_list\_head \*head | size\_t len | \- | \- | \- | \- | +| 274 | get\_robust\_list | man/ cs/ | 112 | int pid | struct robust\_list\_head \* \*head\_ptr | size\_t \*len\_ptr | \- | \- | \- | +| 275 | splice | man/ cs/ | 113 | int fd\_in | loff\_t \*off\_in | int fd\_out | loff\_t \*off\_out | size\_t len | unsigned int flags | +| 276 | tee | man/ cs/ | 114 | int fdin | int fdout | size\_t len | unsigned int flags | \- | \- | +| 277 | sync\_file\_range | man/ cs/ | 115 | int fd | loff\_t offset | loff\_t nbytes | unsigned int flags | \- | \- | +| 278 | vmsplice | man/ cs/ | 116 | int fd | const struct iovec \*iov | unsigned long nr\_segs | unsigned int flags | \- | \- | +| 279 | move\_pages | man/ cs/ | 117 | pid\_t pid | unsigned long nr\_pages | const void \* \*pages | const int \*nodes | int \*status | int flags | +| 280 | utimensat | man/ cs/ | 118 | int dfd | const char \*filename | struct \_\_kernel\_timespec \*utimes | int flags | \- | \- | +| 281 | epoll\_pwait | man/ cs/ | 119 | int epfd | struct epoll\_event \*events | int maxevents | int timeout | const sigset\_t \*sigmask | size\_t sigsetsize | +| 282 | signalfd | man/ cs/ | 11A | int ufd | sigset\_t \*user\_mask | size\_t sizemask | \- | \- | \- | +| 283 | timerfd\_create | man/ cs/ | 11B | int clockid | int flags | \- | \- | \- | \- | +| 284 | eventfd | man/ cs/ | 11C | unsigned int count | \- | \- | \- | \- | \- | +| 285 | fallocate | man/ cs/ | 11D | int fd | int mode | loff\_t offset | loff\_t len | \- | \- | +| 286 | timerfd\_settime | man/ cs/ | 11E | int ufd | int flags | const struct \_\_kernel\_itimerspec \*utmr | struct \_\_kernel\_itimerspec \*otmr | \- | \- | +| 287 | timerfd\_gettime | man/ cs/ | 11F | int ufd | struct \_\_kernel\_itimerspec \*otmr | \- | \- | \- | \- | +| 288 | accept4 | man/ cs/ | 120 | int | struct sockaddr \* | int \* | int | \- | \- | +| 289 | signalfd4 | man/ cs/ | 121 | int ufd | sigset\_t \*user\_mask | size\_t sizemask | int flags | \- | \- | +| 290 | eventfd2 | man/ cs/ | 122 | unsigned int count | int flags | \- | \- | \- | \- | +| 291 | epoll\_create1 | man/ cs/ | 123 | int flags | \- | \- | \- | \- | \- | +| 292 | dup3 | man/ cs/ | 124 | unsigned int oldfd | unsigned int newfd | int flags | \- | \- | \- | +| 293 | pipe2 | man/ cs/ | 125 | int \*fildes | int flags | \- | \- | \- | \- | +| 294 | inotify\_init1 | man/ cs/ | 126 | int flags | \- | \- | \- | \- | \- | +| 295 | preadv | man/ cs/ | 127 | unsigned long fd | const struct iovec \*vec | unsigned long vlen | unsigned long pos\_l | unsigned long pos\_h | \- | +| 296 | pwritev | man/ cs/ | 128 | unsigned long fd | const struct iovec \*vec | unsigned long vlen | unsigned long pos\_l | unsigned long pos\_h | \- | +| 297 | rt\_tgsigqueueinfo | man/ cs/ | 129 | pid\_t tgid | pid\_t pid | int sig | siginfo\_t \*uinfo | \- | \- | +| 298 | perf\_event\_open | man/ cs/ | 12A | struct perf\_event\_attr \*attr\_uptr | pid\_t pid | int cpu | int group\_fd | unsigned long flags | \- | +| 299 | recvmmsg | man/ cs/ | 12B | int fd | struct mmsghdr \*msg | unsigned int vlen | unsigned flags | struct \_\_kernel\_timespec \*timeout | \- | +| 300 | fanotify\_init | man/ cs/ | 12C | unsigned int flags | unsigned int event\_f\_flags | \- | \- | \- | \- | +| 301 | fanotify\_mark | man/ cs/ | 12D | int fanotify\_fd | unsigned int flags | u64 mask | int fd | const char \*pathname | \- | +| 302 | prlimit64 | man/ cs/ | 12E | pid\_t pid | unsigned int resource | const struct rlimit64 \*new\_rlim | struct rlimit64 \*old\_rlim | \- | \- | +| 303 | name\_to\_handle\_at | man/ cs/ | 12F | int dfd | const char \*name | struct file\_handle \*handle | int \*mnt\_id | int flag | \- | +| 304 | open\_by\_handle\_at | man/ cs/ | 130 | int mountdirfd | struct file\_handle \*handle | int flags | \- | \- | \- | +| 305 | clock\_adjtime | man/ cs/ | 131 | clockid\_t which\_clock | struct \_\_kernel\_timex \*tx | \- | \- | \- | \- | +| 306 | syncfs | man/ cs/ | 132 | int fd | \- | \- | \- | \- | \- | +| 307 | sendmmsg | man/ cs/ | 133 | int fd | struct mmsghdr \*msg | unsigned int vlen | unsigned flags | \- | \- | +| 308 | setns | man/ cs/ | 134 | int fd | int nstype | \- | \- | \- | \- | +| 309 | getcpu | man/ cs/ | 135 | unsigned \*cpu | unsigned \*node | struct getcpu\_cache \*cache | \- | \- | \- | +| 310 | process\_vm\_readv | man/ cs/ | 136 | pid\_t pid | const struct iovec \*lvec | unsigned long liovcnt | const struct iovec \*rvec | unsigned long riovcnt | unsigned long flags | +| 311 | process\_vm\_writev | man/ cs/ | 137 | pid\_t pid | const struct iovec \*lvec | unsigned long liovcnt | const struct iovec \*rvec | unsigned long riovcnt | unsigned long flags | +| 312 | kcmp | man/ cs/ | 138 | pid\_t pid1 | pid\_t pid2 | int type | unsigned long idx1 | unsigned long idx2 | \- | +| 313 | finit\_module | man/ cs/ | 139 | int fd | const char \*uargs | int flags | \- | \- | \- | +| 314 | sched\_setattr | man/ cs/ | 13A | pid\_t pid | struct sched\_attr \*attr | unsigned int flags | \- | \- | \- | +| 315 | sched\_getattr | man/ cs/ | 13B | pid\_t pid | struct sched\_attr \*attr | unsigned int size | unsigned int flags | \- | \- | +| 316 | renameat2 | man/ cs/ | 13C | int olddfd | const char \*oldname | int newdfd | const char \*newname | unsigned int flags | \- | +| 317 | seccomp | man/ cs/ | 13D | unsigned int op | unsigned int flags | void \*uargs | \- | \- | \- | +| 318 | getrandom | man/ cs/ | 13E | char \*buf | size\_t count | unsigned int flags | \- | \- | \- | +| 319 | memfd\_create | man/ cs/ | 13F | const char \*uname\_ptr | unsigned int flags | \- | \- | \- | \- | +| 320 | kexec\_file\_load | man/ cs/ | 140 | int kernel\_fd | int initrd\_fd | unsigned long cmdline\_len | const char \*cmdline\_ptr | unsigned long flags | \- | +| 321 | bpf | man/ cs/ | 141 | int cmd | union bpf\_attr \*attr | unsigned int size | \- | \- | \- | +| 322 | execveat | man/ cs/ | 142 | int dfd | const char \*filename | const char \*const \*argv | const char \*const \*envp | int flags | \- | +| 323 | userfaultfd | man/ cs/ | 143 | int flags | \- | \- | \- | \- | \- | +| 324 | membarrier | man/ cs/ | 144 | int cmd | int flags | \- | \- | \- | \- | +| 325 | mlock2 | man/ cs/ | 145 | unsigned long start | size\_t len | int flags | \- | \- | \- | +| 326 | copy\_file\_range | man/ cs/ | 146 | int fd\_in | loff\_t \*off\_in | int fd\_out | loff\_t \*off\_out | size\_t len | unsigned int flags | +| 327 | preadv2 | man/ cs/ | 147 | unsigned long fd | const struct iovec \*vec | unsigned long vlen | unsigned long pos\_l | unsigned long pos\_h | rwf\_t flags | +| 328 | pwritev2 | man/ cs/ | 148 | unsigned long fd | const struct iovec \*vec | unsigned long vlen | unsigned long pos\_l | unsigned long pos\_h | rwf\_t flags | +| 329 | pkey\_mprotect | man/ cs/ | 149 | unsigned long start | size\_t len | unsigned long prot | int pkey | \- | \- | +| 330 | pkey\_alloc | man/ cs/ | 14A | unsigned long flags | unsigned long init\_val | \- | \- | \- | \- | +| 331 | pkey\_free | man/ cs/ | 14B | int pkey | \- | \- | \- | \- | \- | +| 332 | statx | man/ cs/ | 14C | int dfd | const char \*path | unsigned flags | unsigned mask | struct statx \*buffer | \- | diff --git a/x64-syscall.sh b/x64-syscall.sh new file mode 100755 index 0000000..8e4500e --- /dev/null +++ b/x64-syscall.sh @@ -0,0 +1,89 @@ +#!/usr/bin/env bash +# ------------------------------------------- +# @script: x64-syscall.sh +# @link: https://github.com/NRZCode/x64-syscall +# @description: --- +# @license: GNU/GPL v3.0 +# @version: 0.0.1 +# @author: NRZ Code +# @created: 29/07/2025 00:06 +# +# @requirements: --- +# @bugs: --- +# @notes: --- +# @revision: --- +# ------------------------------------------- +# Copyright (C) 2025 NRZ Code +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . +# ------------------------------------------- +# USAGE +# x64-syscall.sh +# ------------------------------------------- +version='0.0.1' +usage=' Usage: x64-syscall.sh [OPTIONS] + +DESCRIPTION + Script Description + +OPTIONS + General options + -h, --help Print this help usage and exit + -v, --version Display version information and exit +' +copy='Copyright (C) 2025 NRZ Code . +License: GNU GPL version 3 or later . +This is free software: you are free to change and redistribute it. +There is NO WARRANTY, to the extent permitted by law. +' + +# functions --------------------------------- +check_dependencies() { + local code=0 + for dep; do + if ! type -p $dep &>/dev/null; then + echo "ERROR: ${BASH_SOURCE##*/}: $dep dependency is missing." + code=1 + fi + done + return $code +} + +x64-syscall() { + printf -v preview '%11s: {%d}\n' \ + 'references' 3 \ + 'RAX' 4 \ + 'ARG0(rdi)' 5 \ + 'ARG1(rsi)' 6 \ + 'ARG2(rdx)' 7 \ + 'ARG3(r10)' 8 \ + 'ARG4(r8)' 9 \ + 'ARG5(r9)' 10 + preview="echo \"$preview\"; (:); printf -v hr \"%*s\" \$COLUMNS; echo \"\${hr// /─}\"; batcat --color=always -plman <(man 2 {2})" + fzf \ + -e -i \ + --tiebreak begin \ + --border-label $'┤ \e[1;34mSystem Calls 64 BITS\e[0m ├' \ + --bind 'enter:become(man 2 {2}),focus:transform-preview-label(echo [ {2} ])' \ + --header-lines 1 \ + --delimiter '|' \ + --with-nth $'{1}\t{2}' \ + --reverse \ + --preview-window 70% \ + --preview "$preview" < "$(dirname "$BASH_SOURCE")/x64-syscall.list" +} + +# main -------------------------------------- +check_dependencies fzf batcat || exit 1 +[[ $BASH_SOURCE == $0 ]] && x64-syscall "$@"