diff -Nru librtas-1.3.13/Changelog librtas-2.0.0/Changelog --- librtas-1.3.13/Changelog 2014-10-23 02:23:41.000000000 +0000 +++ librtas-2.0.0/Changelog 2016-04-06 03:03:56.000000000 +0000 @@ -1,3 +1,340 @@ +Changelog for librtas-2.0.0 +======================================= + +commit da9f484ab2429525101432d57176f376576c3dac +Author: Adam Conrad +Date: Tue Apr 5 04:11:23 2016 -0600 + + Modernize and parameterize the RPM specfile slightly. + + Signed-off-by: Adam Conrad + +commit 9c1591cd262116290b5a651bc09192b6c34da9ce +Author: Adam Conrad +Date: Tue Apr 5 01:38:33 2016 -0600 + + librtasevent: Fix build failure with -Wformat -Werror=format-security + + Signed-off-by: Adam Conrad + +commit 2644f9d269be8b852aa024f1364a5199aac268db +Author: Adam Conrad +Date: Tue Apr 5 01:35:51 2016 -0600 + + librtas*/Makefile: install/uninstall static libs + + Signed-off-by: Adam Conrad + +commit f9bb81502e5fa3894caa1761292ec69580dc087e +Author: Adam Conrad +Date: Tue Apr 5 01:30:41 2016 -0600 + + librtasevent: Generate static library. + + Signed-off-by: Adam Conrad + +commit 2b43240db6fe721288bf09a6f2c75743ae4f8855 +Author: Adam Conrad +Date: Fri Apr 1 08:34:16 2016 -0600 + + Use MAJOR_NO to define the SONAME symlinks, instead of hardcoding "1" + + Signed-off-by: Adam Conrad + +Changelog for librtas-1.4.1 +======================================= + +commit af07fde662985cb574fe56497847c4c6cdf1d1a8 +Author: Vasant Hegde +Date: Thu Mar 17 18:53:48 2016 -0400 + + librtas: Do not enable debug message by default + + Commit eae18de3 removed dbg1 macro. But accidently enabled logging debug + message by default. This is confusing end users. Hence remove logging + debug message by default. + + Fixes: eae18de3 (librtas: Update the dbg() macro) + Signed-off-by: Vasant Hegde + CC: Nathan Fontenot + +commit c5e9dcf993e9e20bbe14bc06fb0ec6dd5031f935 +Author: Vasant Hegde +Date: Mon Feb 15 07:33:14 2016 -0500 + + librtas: Release lock in error path + + Release RMO buffer lock in error path. Otherwise we will continue to hold + the lock and subsequent RMO buffer allocation request fails. + + Reported-by: Bharata B Rao + Signed-off-by: Vasant Hegde + +commit 9683c7b393d48922a14b09a898fbe3cf698cd71a +Author: Vasant Hegde +Date: Wed Feb 10 16:15:19 2016 -0500 + + librtas: Fix Makefile + + Commit 90f24679 switched package license from CPL to LGPL. But we forgot + to update Makefile. So creating tarball from source fails. This patch + replaces COPYRIGHT with COPYING.LESSER in Makefile. + + Also updated Makefile header with proper license text. + + Signed-off-by: Vasant Hegde + +Changelog for librtas-1.4.0 +======================================= + +commit 2a279559111e4f68ed270f28e21a042a97ad41cd +Author: Nathan Fontenot +Date: Thu Jan 7 11:55:47 2016 -0500 + + Update README for correct contact information. + + Signed-off-by: Nathan Fontenot + +commit 90f24679c795ea8224ba836994366dec31529663 +Author: Nathan Fontenot +Date: Thu Jan 7 11:19:33 2016 -0500 + + Switch librtas package to LGPL License. + + Signed-off-by: Nathan Fontenot + +commit 5bbe4e9382b2e298227af13d1b600c59a5f1768b +Author: Rafael Fonseca +Date: Tue Dec 15 15:06:10 2015 -0500 + + From: Rafael Fonseca + + Fix print formats for width-based types. + + Signed-off-by: NAthan Fontenot + +commit 9d930daa58c3c6f2fc2fb6e82c005726d22ef8b5 +Author: Rafael Fonseca +Date: Tue Dec 15 14:58:20 2015 -0500 + + From: Rafael Fonseca + + Fix potential memory leaks + + Signed-off-by: Nathan Fontenot + +commit 1d0ec08104077bcc4dd8f76524cb2493aaf04a60 +Author: Sam Bobroff +Date: Tue Dec 15 14:53:55 2015 -0500 + + librtasevent: correct files left after uninstall + + Signed-off-by: Sam Bobroff + Reviewed-by: Vasant Hegde + +commit 22b418b8758c60c9e250f495e2d58db2394ee3c4 +Author: Sam Bobroff +Date: Tue Dec 15 14:52:49 2015 -0500 + + librtas: correct files left after uninstall + + Signed-off-by: Sam Bobroff + Reviewed-by: Vasant Hegde + +commit 9c1403ab4da25db47fcdfa7cfa26c0b465e0a5ed +Author: Sam Bobroff +Date: Tue Dec 15 14:50:02 2015 -0500 + + librtas: install librtas.so.1 symlink + + Add a line to the librtas Makefile to create librtas.so.1 when + performing "make install". This matches the librtasevent.so.1 that is + already created. + + This allows systems that rely on the existance of that link to + successfully build programs using librtas when it is installed + directly from the source. + + Signed-off-by: Sam Bobroff + +commit 0afce7b27cc5e1581f7ec6c0acf3d7b3b6419b5b +Author: Nathan Fontenot +Date: Tue Dec 15 14:46:54 2015 -0500 + + librtas: Correct multiple build warnings + + Correct the warnings produced during the build of librtas. + + Signed-off-by: Nathan Fontenot + +commit bb77762b4f3310854bdf07ef3fcebc01ddd0d798 +Author: Nathan Fontenot +Date: Tue Dec 15 14:37:17 2015 -0500 + + librtas: deprecate libofdt + + The libofdt library is a project that was started a long time ago in + the hopes of providing a common infrastructure for accessing the device + tree. The code is mostly complete andd I really don't think there are + any users of it so I am proposing to deprecate the library. + + Signed-off-by: Nathan Fontenot + +commit 015c0f95fc10e595cd1a90634ac831d93d9ba4e2 +Author: Nathan Fontenot +Date: Tue Dec 15 14:30:13 2015 -0500 + + librtas: coding style updates + + Correct a few style issues to give the code a more consistant look. + + No functional changes. + + Signed-off-by: Nathan Fontenot + +commit 21de2c69433e23450d4fad4f9c48fbf8d2f5d04a +Author: Nathan Fontenot +Date: Tue Dec 15 14:27:56 2015 -0500 + + librtas: Make SANITY_CHECKS() a real function + + Make the SANITY_CHECKS() macro a regular function. + + Signed-off-by: Nathan Fontenot + +commit e5451d028d6981728840e1960f2d1de90e994f60 +Author: Nathan Fontenot +Date: Tue Dec 15 14:24:53 2015 -0500 + + librtas: Move rtas_token() declaration to internal header + + Move rtas_token decalration to internal header file. + + Signed-off-by: Nathan Fontenot + +commit f06f03493a3f4c8e8cc5a96db857f0ba01a66e6c +Author: Nathan Fontenot +Date: Tue Dec 15 14:23:41 2015 -0500 + + librtas: Remove declaration of open_proc_rtas_file() + + Make the open_proc_rtas_file() routine static and remove its + declaration from librtas.h. + + Signed-off-by: Nathan Fotnenot + +commit c01583d8bde5dd4c3e1ce7d0b4d5ced4008bffd4 +Author: Nathan Fontenot +Date: Tue Dec 15 14:21:45 2015 -0500 + + librtas: Move declaration of read_entire_file() + + Move declaration of read_entire_file() to an internal header. + + Signed-off-by: Nathan Fontenot + +commit 52222bf6c8fb1d3ce6fdf5ba7e97653771ea9843 +Author: Nathan Fontenot +Date: Tue Dec 15 14:19:14 2015 -0500 + + librtas: Break up the librtas_config struct + + Break up the librtas_config struct into its two pieces and remove + the definitions from the public header. + + Signed-off-by: Nathan Fontenot + +commit eae18de31155d109a0160485ee7d93bbdb32d2e0 +Author: Thomas Falcon +Date: Tue Dec 15 14:14:26 2015 -0500 + + librtas: Update the dbg() macro + + Remove the useless indirect of dbg1() macro and move the definition + to an internal .h file. + + Signed-off-by: Nathan Fontenot + +commit ee457b1c21bd913913243e54c5a7dca63d3545a4 +Author: Nathan Fontenot +Date: Tue Dec 15 14:11:16 2015 -0500 + + librtas: consolidate common actions in making a rtas call + + Consolidate common actions, such as getting the rtas token and + handling extended delays, when making a rtas call into a routine. + + This change presents to new ways to make a rtas call; + rtas_call() - Which handles any delays + rtas_call_no_delay() - Which does not handle any delays + + The no delay variant was needed for the few instances where some work + needs to be done in between rtas calls when a delay occurs. + + Signed-off-by: Nathan Fontenot + +commit 4b18e100dcf1672590aee49b2c1bbc15debee4a7 +Author: Thomas Falcon +Date: Tue Dec 15 13:54:45 2015 -0500 + + librtas: rtas calls fully implemented in syscalls + + Since the procfs and common interfaces are being removed, + all rtas calls will be fully implemented in the syscall_calls.c + and syscall_rmo.c files. + + Signed-off-by: Thomas Falcon + +commit 94efe8cb14637820af35bba555997d5bd5f92704 +Author: Thomas Falcon +Date: Tue Dec 15 13:25:40 2015 -0500 + + librtas: common.h merged into librtas.h + + Code in common.h was added to librtas.h + + Signed-off-by: Thomas Falcon + +commit 3bc2d9277c6ac6679f7ee308127f90255453d76e +Author: Thomas Falcon +Date: Tue Dec 15 13:23:51 2015 -0500 + + librtas: removal of common code + + The common files are being removed with the removal of procfs + in order to simplify librtas. + + Signed-off-by: Thomas Falcon + +commit b8ad1ec918230379f612a4e976e74600660cebdc +Author: Thomas Falcon +Date: Tue Dec 15 13:20:06 2015 -0500 + + librtas: removing procfs interface + + The procfs interface is no longer used. As a result, it is being + removed to simplify librtas. + + Signed-off-by: Thomas Falcon + +Changelog for librtas-1.3.14 +======================================= +commit 4e46c718f42bf05e797c7fcfdd6cfc2a21fb4c91 +Author: Tyrel Datwyler +Date: Wed Jan 7 14:26:15 2015 -0500 + + PAPR requires that the status word is the first parameter in the return + buffer for rtas calls. Due to this requirement the librtas sc_rtas_call + function always performs a be32toh operation on the first parameter in the + return buffer. However, the ibm,open-errinjct rtas is special in that its + return buffer is switched. The "Open Token" is the first return parameter + while the "Status" word is second. + + This patch fixes this special case in the sc_errinjct_open function such + that the byteswapping of "status" and "otoken" are handled correctly. + + Signed-off-by: Tyrel Datwyler + Changelog for librtas-1.3.13 ======================================= commit 1d54a4a346f9111e1326dfdec756fd78360add42 @@ -94,210 +431,3 @@ endianness of seq_next also needs to be handled. Signed-off-by: Thomas Falcon - -Changelog for librtas-1.3.11 -======================================= -commit 129fdb4875c8c679418b70c55df9b8b7fe8d6180 -Author: Thomas Falcon -Date: Wed Jun 25 09:55:52 2014 -0500 - - README: documentation on handling endianness - - Signed-off-by: Thomas Falcon - -commit b13d14ff2dcbe54af61cab19d09be22edc9d74c0 -Author: Maran Pakkirisamy -Date: Fri Jun 6 14:04:27 2014 -0500 - - librtas: avoid bashism in rules.mk - - Ubuntu has made dash as its default shell (/bin/sh). This leads to build - being broken on ubuntu. - More information at: https://wiki.ubuntu.com/DashAsBinSh - This patch removes bashism and hence fixes the build breakage. - - Signed-off-by: Maran Pakkirisamy - -commit f9b806b19bbc4df56df6b5dbab1bf9060508b5d9 -Author: Thomas Falcon -Date: Fri Jun 6 14:02:40 2014 -0500 - - librtas: Little endian support in syscalls - - This patch attempts to make rtas syscalls compatible for Little - Endian systems by ensuring rtas call parameters are Big Endian and - return values are host endian. - - Signed-off-by: Thomas Falcon - -Changelog for librtas-1.3.10 -======================================= -commit e0c097d3e0ab65433d4fdc6e18a820c82d909464 -Author: Nathan Fontenot -Date: Fri Mar 21 15:28:56 2014 -0500 - - librtasevent: Enable RTAS event parsing on LE systems - - The librtasevent library does not work in LE environments. The - struct's for each rtas event section are defined as a bit field - to match layout of the rtas event. This librtasevent library - currently functions by mapping these structs directly the raw - rtas event that is passed. This works for BE systems because - rtas events are in BE by definition. - - To fix this this patch re-defines the structs that have been - used to just contain an int for each value in the rtas event - sections, then adds a raw version of the struct that we can map - directly onto the passed in rtas event. The raw structs can then - be traversed an we can do any neccessary conversions to LE values - in the structs that are passed back to the user. - - This patch updates most of the v6 rtas event sections, most notably - src/fru sections have not been updated yet. At this time there - are no plans to update pre-v6 rtas events for LE environments. - - Signed-off-by: Nathan Fontenot - -commit 7eb810757d8573ef47fdc5bd26aa3d9e9afbfd8a -Author: Greg Kurz -Date: Fri Mar 21 11:49:13 2014 -0500 - - librtas: PCI hotplug support vs little endian - - The goal of this patch is to enable a little endian process to interact - with RTAS which is big endian. The rationale is that librtas assumes - to be passed cpu endian arguments and do the necessary conversions. The - reasons for this choice are: - - many arguments are owned by librtas (status, RMO buffer addresses...) - - nearly all arguments are being used in cpu endian order by librtas: - if they were assumed to be big endian, we would have to byte swap - anyway, resulting in an even bigger patch... - - Of course, all rules have an exception: the RMO buffer content is not - seen by librtas, it is up to the caller (drmgr) to do the conversions. - - It seems that recent kernels don't have the needed procfs files anymore, - so this patch only cares about the rtas() syscall based implementation. - - As requested by Benjamin Herrenschmidt, the byte swapping should be - performed in userland AND be careful about corner cases where non - 32-bit values are being passed: - - http://patchwork.ozlabs.org/patch/327089/ - - We cannot boldly convert all arguments in the sc_rtas_call() function. - - For an example, let's look at sc_suspend_me() where we pass a 64 bit value - split across two arguments. If streamid is ABCDEFGHIJKLMNOP, then it will - be reassembled by the kernel as IJKLMNOPABCDEFGH before being passed to the - host... - - As a consequence, we can only convert well known parameters in the - sc_rtas_call() function: - - token - - number of input arguments - - number of return arguments - - return status (always the first return argument) - - All other values must be converted in the caller. Please note that we - introduce intermediary variables for return values as we do not want - big endian values to be written in memory where the code assumes they - are cpu endian. - - As a starter, we focus on the RTAS calls involved in PCI hotplug. - According to section 13.5.3 of the PAPR+, we have: - - set-power-level - - get-sensor-state - - set-indicator - - ibm,configure-connector (the RMO part is already covered in drmgr) - - We should cover all the calls, but it requires a huge work and we - only want to enable PCI hotplug here. So yes, all other calls are - still broken in little endian... some more patching will be needed. - - - Signed-off-by: Greg Kurz - Reviewed-by: Laurent Dufour - -Changelog for librtas-1.3.9 -======================================= -commit 9c5bccb93aa734796df111c2e7c051860b8b30de -Author: Signed-off-by: Greg Kurz -Date: Fri Feb 28 07:49:59 2014 -0600 - - librtas, libofdt: fix endianness issues when accessing the device tree - - Signed-off-by: Greg Kurz - -commit 399a1962534342c1a153445b587d3fd0c95cfc78 -Merge: e2de13f a057c98 -Author: Nathan Fontenot -Date: Wed Feb 26 08:22:33 2014 -0600 - - Merge branch 'master' of ssh://nfont@git.code.sf.net/p/librtas/code - -commit e2de13f77b36aff9d55d97ec862261a329262d4a -Author: Tyrel Datwyler -Date: Tue Feb 25 10:09:54 2014 -0600 - - librtasevent: Add hotplug event implementation - - Add event definition and helper functions for hotplug events. This is - intended for qemu to notify a pseries guest of a hotplug event. - - Signed-off-by: Tyrel Datwyler - -commit a057c984394ac5c0a043ecc250073b8606cd38a1 -Author: Tyrel Datwyler -Date: Tue Feb 25 10:09:54 2014 -0600 - - librtasevent: Add hotplug event implementation - - Add event definition and helper functions for hotplug events. This is - intended for qemu to notify a pseries guest of a hotplug event. - - Signed-off-by: Tyrel Datwyler - -Changelog for librtas-1.3.8 -======================================= -commit cd1868315f728ea5e8399df5fb7689a88870d7da -Author: Nathan Fontenot -Date: Thu Jan 31 12:27:48 2013 -0600 - - Identify Platform Resource Reassignment Notifications (PRRN). - - Signed-off-by: Nathan Fontenot - - -Changelog for librtas-1.3.7 -======================================= -commit 0d02142ec36e176694c90ab722aedc75c48801a0 -Author: Vasant Hegde -Date: Tue Dec 18 13:08:09 2012 -0600 - - librtas allocates buffer space (required for RTAS call) in the RTAS private - memory area through sc_get_rmo_buffer() which internally allocates memory - and protects it by acquiring lock on the allocated memory area. - - Locking function : - At present acquire_file_lock() tries to lock the particular memory - area. If the memory area is already locked then it returns error without - retrying. - - So when two process executes rtas call simultaneously one fails with - "Unknown librtas I/O" error. - - This patch introduces "Wait for lock to be available" instead of - returning with IO error. - - Signed-off-by: Vasant Hegde - -commit aea297b24ed0167970732193bbfd206a6c844dec -Author: Vasant Hegde -Date: Tue Dec 18 13:06:21 2012 -0600 - - This patch fixes minor memory leak in librtas.so - - Signed-off-by: Vasant Hegde - Signed-off-by: Nathan Fontenot - diff -Nru librtas-1.3.13/COPYING.LESSER librtas-2.0.0/COPYING.LESSER --- librtas-1.3.13/COPYING.LESSER 1970-01-01 00:00:00.000000000 +0000 +++ librtas-2.0.0/COPYING.LESSER 2016-04-06 03:03:56.000000000 +0000 @@ -0,0 +1,502 @@ + GNU LESSER GENERAL PUBLIC LICENSE + Version 2.1, February 1999 + + Copyright (C) 1991, 1999 Free Software Foundation, Inc. + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + +[This is the first released version of the Lesser GPL. It also counts + as the successor of the GNU Library Public License, version 2, hence + the version number 2.1.] + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +Licenses are intended to guarantee your freedom to share and change +free software--to make sure the software is free for all its users. + + This license, the Lesser General Public License, applies to some +specially designated software packages--typically libraries--of the +Free Software Foundation and other authors who decide to use it. You +can use it too, but we suggest you first think carefully about whether +this license or the ordinary General Public License is the better +strategy to use in any particular case, based on the explanations below. + + When we speak of free software, we are referring to freedom of use, +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 this service if you wish); that you receive source code or can get +it if you want it; that you can change the software and use pieces of +it in new free programs; and that you are informed that you can do +these things. + + To protect your rights, we need to make restrictions that forbid +distributors to deny you these rights or to ask you to surrender these +rights. These restrictions translate to certain responsibilities for +you if you distribute copies of the library or if you modify it. + + For example, if you distribute copies of the library, whether gratis +or for a fee, you must give the recipients all the rights that we gave +you. You must make sure that they, too, receive or can get the source +code. If you link other code with the library, you must provide +complete object files to the recipients, so that they can relink them +with the library after making changes to the library and recompiling +it. And you must show them these terms so they know their rights. + + We protect your rights with a two-step method: (1) we copyright the +library, and (2) we offer you this license, which gives you legal +permission to copy, distribute and/or modify the library. + + To protect each distributor, we want to make it very clear that +there is no warranty for the free library. Also, if the library is +modified by someone else and passed on, the recipients should know +that what they have is not the original version, so that the original +author's reputation will not be affected by problems that might be +introduced by others. + + Finally, software patents pose a constant threat to the existence of +any free program. We wish to make sure that a company cannot +effectively restrict the users of a free program by obtaining a +restrictive license from a patent holder. Therefore, we insist that +any patent license obtained for a version of the library must be +consistent with the full freedom of use specified in this license. + + Most GNU software, including some libraries, is covered by the +ordinary GNU General Public License. This license, the GNU Lesser +General Public License, applies to certain designated libraries, and +is quite different from the ordinary General Public License. We use +this license for certain libraries in order to permit linking those +libraries into non-free programs. + + When a program is linked with a library, whether statically or using +a shared library, the combination of the two is legally speaking a +combined work, a derivative of the original library. The ordinary +General Public License therefore permits such linking only if the +entire combination fits its criteria of freedom. The Lesser General +Public License permits more lax criteria for linking other code with +the library. + + We call this license the "Lesser" General Public License because it +does Less to protect the user's freedom than the ordinary General +Public License. It also provides other free software developers Less +of an advantage over competing non-free programs. These disadvantages +are the reason we use the ordinary General Public License for many +libraries. However, the Lesser license provides advantages in certain +special circumstances. + + For example, on rare occasions, there may be a special need to +encourage the widest possible use of a certain library, so that it becomes +a de-facto standard. To achieve this, non-free programs must be +allowed to use the library. A more frequent case is that a free +library does the same job as widely used non-free libraries. In this +case, there is little to gain by limiting the free library to free +software only, so we use the Lesser General Public License. + + In other cases, permission to use a particular library in non-free +programs enables a greater number of people to use a large body of +free software. For example, permission to use the GNU C Library in +non-free programs enables many more people to use the whole GNU +operating system, as well as its variant, the GNU/Linux operating +system. + + Although the Lesser General Public License is Less protective of the +users' freedom, it does ensure that the user of a program that is +linked with the Library has the freedom and the wherewithal to run +that program using a modified version of the Library. + + The precise terms and conditions for copying, distribution and +modification follow. Pay close attention to the difference between a +"work based on the library" and a "work that uses the library". The +former contains code derived from the library, whereas the latter must +be combined with the library in order to run. + + GNU LESSER GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License Agreement applies to any software library or other +program which contains a notice placed by the copyright holder or +other authorized party saying it may be distributed under the terms of +this Lesser General Public License (also called "this License"). +Each licensee is addressed as "you". + + A "library" means a collection of software functions and/or data +prepared so as to be conveniently linked with application programs +(which use some of those functions and data) to form executables. + + The "Library", below, refers to any such software library or work +which has been distributed under these terms. A "work based on the +Library" means either the Library or any derivative work under +copyright law: that is to say, a work containing the Library or a +portion of it, either verbatim or with modifications and/or translated +straightforwardly into another language. (Hereinafter, translation is +included without limitation in the term "modification".) + + "Source code" for a work means the preferred form of the work for +making modifications to it. For a library, complete source code means +all the source code for all modules it contains, plus any associated +interface definition files, plus the scripts used to control compilation +and installation of the library. + + Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running a program using the Library is not restricted, and output from +such a program is covered only if its contents constitute a work based +on the Library (independent of the use of the Library in a tool for +writing it). Whether that is true depends on what the Library does +and what the program that uses the Library does. + + 1. You may copy and distribute verbatim copies of the Library's +complete source code as you receive it, in any medium, provided that +you conspicuously and appropriately publish on each copy an +appropriate copyright notice and disclaimer of warranty; keep intact +all the notices that refer to this License and to the absence of any +warranty; and distribute a copy of this License along with the +Library. + + You may charge a fee for the physical act of transferring a copy, +and you may at your option offer warranty protection in exchange for a +fee. + + 2. You may modify your copy or copies of the Library or any portion +of it, thus forming a work based on the Library, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) The modified work must itself be a software library. + + b) You must cause the files modified to carry prominent notices + stating that you changed the files and the date of any change. + + c) You must cause the whole of the work to be licensed at no + charge to all third parties under the terms of this License. + + d) If a facility in the modified Library refers to a function or a + table of data to be supplied by an application program that uses + the facility, other than as an argument passed when the facility + is invoked, then you must make a good faith effort to ensure that, + in the event an application does not supply such function or + table, the facility still operates, and performs whatever part of + its purpose remains meaningful. + + (For example, a function in a library to compute square roots has + a purpose that is entirely well-defined independent of the + application. Therefore, Subsection 2d requires that any + application-supplied function or table used by this function must + be optional: if the application does not supply it, the square + root function must still compute square roots.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Library, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Library, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote +it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Library. + +In addition, mere aggregation of another work not based on the Library +with the Library (or with a work based on the Library) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may opt to apply the terms of the ordinary GNU General Public +License instead of this License to a given copy of the Library. To do +this, you must alter all the notices that refer to this License, so +that they refer to the ordinary GNU General Public License, version 2, +instead of to this License. (If a newer version than version 2 of the +ordinary GNU General Public License has appeared, then you can specify +that version instead if you wish.) Do not make any other change in +these notices. + + Once this change is made in a given copy, it is irreversible for +that copy, so the ordinary GNU General Public License applies to all +subsequent copies and derivative works made from that copy. + + This option is useful when you wish to copy part of the code of +the Library into a program that is not a library. + + 4. You may copy and distribute the Library (or a portion or +derivative of it, under Section 2) in object code or executable form +under the terms of Sections 1 and 2 above provided that you accompany +it with the complete corresponding machine-readable source code, which +must be distributed under the terms of Sections 1 and 2 above on a +medium customarily used for software interchange. + + If distribution of object code is made by offering access to copy +from a designated place, then offering equivalent access to copy the +source code from the same place satisfies the requirement to +distribute the source code, even though third parties are not +compelled to copy the source along with the object code. + + 5. A program that contains no derivative of any portion of the +Library, but is designed to work with the Library by being compiled or +linked with it, is called a "work that uses the Library". Such a +work, in isolation, is not a derivative work of the Library, and +therefore falls outside the scope of this License. + + However, linking a "work that uses the Library" with the Library +creates an executable that is a derivative of the Library (because it +contains portions of the Library), rather than a "work that uses the +library". The executable is therefore covered by this License. +Section 6 states terms for distribution of such executables. + + When a "work that uses the Library" uses material from a header file +that is part of the Library, the object code for the work may be a +derivative work of the Library even though the source code is not. +Whether this is true is especially significant if the work can be +linked without the Library, or if the work is itself a library. The +threshold for this to be true is not precisely defined by law. + + If such an object file uses only numerical parameters, data +structure layouts and accessors, and small macros and small inline +functions (ten lines or less in length), then the use of the object +file is unrestricted, regardless of whether it is legally a derivative +work. (Executables containing this object code plus portions of the +Library will still fall under Section 6.) + + Otherwise, if the work is a derivative of the Library, you may +distribute the object code for the work under the terms of Section 6. +Any executables containing that work also fall under Section 6, +whether or not they are linked directly with the Library itself. + + 6. As an exception to the Sections above, you may also combine or +link a "work that uses the Library" with the Library to produce a +work containing portions of the Library, and distribute that work +under terms of your choice, provided that the terms permit +modification of the work for the customer's own use and reverse +engineering for debugging such modifications. + + You must give prominent notice with each copy of the work that the +Library is used in it and that the Library and its use are covered by +this License. You must supply a copy of this License. If the work +during execution displays copyright notices, you must include the +copyright notice for the Library among them, as well as a reference +directing the user to the copy of this License. Also, you must do one +of these things: + + a) Accompany the work with the complete corresponding + machine-readable source code for the Library including whatever + changes were used in the work (which must be distributed under + Sections 1 and 2 above); and, if the work is an executable linked + with the Library, with the complete machine-readable "work that + uses the Library", as object code and/or source code, so that the + user can modify the Library and then relink to produce a modified + executable containing the modified Library. (It is understood + that the user who changes the contents of definitions files in the + Library will not necessarily be able to recompile the application + to use the modified definitions.) + + b) Use a suitable shared library mechanism for linking with the + Library. A suitable mechanism is one that (1) uses at run time a + copy of the library already present on the user's computer system, + rather than copying library functions into the executable, and (2) + will operate properly with a modified version of the library, if + the user installs one, as long as the modified version is + interface-compatible with the version that the work was made with. + + c) Accompany the work with a written offer, valid for at + least three years, to give the same user the materials + specified in Subsection 6a, above, for a charge no more + than the cost of performing this distribution. + + d) If distribution of the work is made by offering access to copy + from a designated place, offer equivalent access to copy the above + specified materials from the same place. + + e) Verify that the user has already received a copy of these + materials or that you have already sent this user a copy. + + For an executable, the required form of the "work that uses the +Library" must include any data and utility programs needed for +reproducing the executable from it. However, as a special exception, +the materials to be distributed need not include anything that is +normally distributed (in either source or binary form) with the major +components (compiler, kernel, and so on) of the operating system on +which the executable runs, unless that component itself accompanies +the executable. + + It may happen that this requirement contradicts the license +restrictions of other proprietary libraries that do not normally +accompany the operating system. Such a contradiction means you cannot +use both them and the Library together in an executable that you +distribute. + + 7. You may place library facilities that are a work based on the +Library side-by-side in a single library together with other library +facilities not covered by this License, and distribute such a combined +library, provided that the separate distribution of the work based on +the Library and of the other library facilities is otherwise +permitted, and provided that you do these two things: + + a) Accompany the combined library with a copy of the same work + based on the Library, uncombined with any other library + facilities. This must be distributed under the terms of the + Sections above. + + b) Give prominent notice with the combined library of the fact + that part of it is a work based on the Library, and explaining + where to find the accompanying uncombined form of the same work. + + 8. You may not copy, modify, sublicense, link with, or distribute +the Library except as expressly provided under this License. Any +attempt otherwise to copy, modify, sublicense, link with, or +distribute the Library is void, and will automatically terminate your +rights under this License. However, parties who have received copies, +or rights, from you under this License will not have their licenses +terminated so long as such parties remain in full compliance. + + 9. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Library or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Library (or any work based on the +Library), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Library or works based on it. + + 10. Each time you redistribute the Library (or any work based on the +Library), the recipient automatically receives a license from the +original licensor to copy, distribute, link with or modify the Library +subject to these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties with +this License. + + 11. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +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 +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Library at all. For example, if a patent +license would not permit royalty-free redistribution of the Library by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Library. + +If any portion of this section is held invalid or unenforceable under any +particular circumstance, the balance of the section is intended to apply, +and the section as a whole is intended to apply in other circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 12. If the distribution and/or use of the Library is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Library under this License may add +an explicit geographical distribution limitation excluding those countries, +so that distribution is permitted only in or among countries not thus +excluded. In such case, this License incorporates the limitation as if +written in the body of this License. + + 13. The Free Software Foundation may publish revised and/or new +versions of the Lesser 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 Library +specifies a version number of this License which applies to it and +"any later version", you have the option of following the terms and +conditions either of that version or of any later version published by +the Free Software Foundation. If the Library does not specify a +license version number, you may choose any version ever published by +the Free Software Foundation. + + 14. If you wish to incorporate parts of the Library into other free +programs whose distribution conditions are incompatible with these, +write to the author to ask for permission. For software which is +copyrighted by the Free Software Foundation, write to the Free +Software Foundation; we sometimes make exceptions for this. Our +decision will be guided by the two goals of preserving the free status +of all derivatives of our free software and of promoting the sharing +and reuse of software generally. + + NO WARRANTY + + 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO +WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. +EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR +OTHER PARTIES PROVIDE THE LIBRARY "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 +LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME +THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN +WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY +AND/OR REDISTRIBUTE THE LIBRARY 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 +LIBRARY (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 LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF +SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Libraries + + If you develop a new library, and you want it to be of the greatest +possible use to the public, we recommend making it free software that +everyone can redistribute and change. You can do so by permitting +redistribution under these terms (or, alternatively, under the terms of the +ordinary General Public License). + + To apply these terms, attach the following notices to the library. It is +safest to attach them to the start of each source file to most effectively +convey 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 library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library 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 + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + +Also add information on how to contact you by electronic and paper mail. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the library, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the + library `Frob' (a library for tweaking knobs) written by James Random Hacker. + + , 1 April 1990 + Ty Coon, President of Vice + +That's all there is to it! diff -Nru librtas-1.3.13/COPYRIGHT librtas-2.0.0/COPYRIGHT --- librtas-1.3.13/COPYRIGHT 2014-10-23 02:23:41.000000000 +0000 +++ librtas-2.0.0/COPYRIGHT 1970-01-01 00:00:00.000000000 +0000 @@ -1,214 +0,0 @@ -Common Public License Version 1.0 - -THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS COMMON PUBLIC -LICENSE ("AGREEMENT"). ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM -CONSTITUTES RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. - -1. DEFINITIONS - -"Contribution" means: - - a) in the case of the initial Contributor, the initial code and -documentation distributed under this Agreement, and - - b) in the case of each subsequent Contributor: - - i) changes to the Program, and - - ii) additions to the Program; - - where such changes and/or additions to the Program originate from and are -distributed by that particular Contributor. A Contribution 'originates' from a -Contributor if it was added to the Program by such Contributor itself or anyone -acting on such Contributor's behalf. Contributions do not include additions to -the Program which: (i) are separate modules of software distributed in -conjunction with the Program under their own license agreement, and (ii) are not -derivative works of the Program. - -"Contributor" means any person or entity that distributes the Program. - -"Licensed Patents " mean patent claims licensable by a Contributor which are -necessarily infringed by the use or sale of its Contribution alone or when -combined with the Program. - -"Program" means the Contributions distributed in accordance with this Agreement. - -"Recipient" means anyone who receives the Program under this Agreement, -including all Contributors. - -2. GRANT OF RIGHTS - - a) Subject to the terms of this Agreement, each Contributor hereby grants -Recipient a non-exclusive, worldwide, royalty-free copyright license to -reproduce, prepare derivative works of, publicly display, publicly perform, -distribute and sublicense the Contribution of such Contributor, if any, and such -derivative works, in source code and object code form. - - b) Subject to the terms of this Agreement, each Contributor hereby grants -Recipient a non-exclusive, worldwide, royalty-free patent license under Licensed -Patents to make, use, sell, offer to sell, import and otherwise transfer the -Contribution of such Contributor, if any, in source code and object code form. -This patent license shall apply to the combination of the Contribution and the -Program if, at the time the Contribution is added by the Contributor, such -addition of the Contribution causes such combination to be covered by the -Licensed Patents. The patent license shall not apply to any other combinations -which include the Contribution. No hardware per se is licensed hereunder. - - c) Recipient understands that although each Contributor grants the licenses -to its Contributions set forth herein, no assurances are provided by any -Contributor that the Program does not infringe the patent or other intellectual -property rights of any other entity. Each Contributor disclaims any liability to -Recipient for claims brought by any other entity based on infringement of -intellectual property rights or otherwise. As a condition to exercising the -rights and licenses granted hereunder, each Recipient hereby assumes sole -responsibility to secure any other intellectual property rights needed, if any. -For example, if a third party patent license is required to allow Recipient to -distribute the Program, it is Recipient's responsibility to acquire that license -before distributing the Program. - - d) Each Contributor represents that to its knowledge it has sufficient -copyright rights in its Contribution, if any, to grant the copyright license set -forth in this Agreement. - -3. REQUIREMENTS - -A Contributor may choose to distribute the Program in object code form under its -own license agreement, provided that: - - a) it complies with the terms and conditions of this Agreement; and - - b) its license agreement: - - i) effectively disclaims on behalf of all Contributors all warranties and -conditions, express and implied, including warranties or conditions of title and -non-infringement, and implied warranties or conditions of merchantability and -fitness for a particular purpose; - - ii) effectively excludes on behalf of all Contributors all liability for -damages, including direct, indirect, special, incidental and consequential -damages, such as lost profits; - - iii) states that any provisions which differ from this Agreement are offered -by that Contributor alone and not by any other party; and - - iv) states that source code for the Program is available from such -Contributor, and informs licensees how to obtain it in a reasonable manner on or -through a medium customarily used for software exchange. - -When the Program is made available in source code form: - - a) it must be made available under this Agreement; and - - b) a copy of this Agreement must be included with each copy of the Program. - -Contributors may not remove or alter any copyright notices contained within the -Program. - -Each Contributor must identify itself as the originator of its Contribution, if -any, in a manner that reasonably allows subsequent Recipients to identify the -originator of the Contribution. - -4. COMMERCIAL DISTRIBUTION - -Commercial distributors of software may accept certain responsibilities with -respect to end users, business partners and the like. While this license is -intended to facilitate the commercial use of the Program, the Contributor who -includes the Program in a commercial product offering should do so in a manner -which does not create potential liability for other Contributors. Therefore, if -a Contributor includes the Program in a commercial product offering, such -Contributor ("Commercial Contributor") hereby agrees to defend and indemnify -every other Contributor ("Indemnified Contributor") against any losses, damages -and costs (collectively "Losses") arising from claims, lawsuits and other legal -actions brought by a third party against the Indemnified Contributor to the -extent caused by the acts or omissions of such Commercial Contributor in -connection with its distribution of the Program in a commercial product -offering. The obligations in this section do not apply to any claims or Losses -relating to any actual or alleged intellectual property infringement. In order -to qualify, an Indemnified Contributor must: a) promptly notify the Commercial -Contributor in writing of such claim, and b) allow the Commercial Contributor to -control, and cooperate with the Commercial Contributor in, the defense and any -related settlement negotiations. The Indemnified Contributor may participate in -any such claim at its own expense. - -For example, a Contributor might include the Program in a commercial product -offering, Product X. That Contributor is then a Commercial Contributor. If that -Commercial Contributor then makes performance claims, or offers warranties -related to Product X, those performance claims and warranties are such -Commercial Contributor's responsibility alone. Under this section, the -Commercial Contributor would have to defend claims against the other -Contributors related to those performance claims and warranties, and if a court -requires any other Contributor to pay any damages as a result, the Commercial -Contributor must pay those damages. - -5. NO WARRANTY - -EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, THE PROGRAM IS PROVIDED ON AN -"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR -IMPLIED INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE, -NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Each -Recipient is solely responsible for determining the appropriateness of using and -distributing the Program and assumes all risks associated with its exercise of -rights under this Agreement, including but not limited to the risks and costs of -program errors, compliance with applicable laws, damage to or loss of data, -programs or equipment, and unavailability or interruption of operations. - -6. DISCLAIMER OF LIABILITY - -EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, NEITHER RECIPIENT NOR ANY -CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING WITHOUT LIMITATION LOST -PROFITS), HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, -STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -OUT OF THE USE OR DISTRIBUTION OF THE PROGRAM OR THE EXERCISE OF ANY RIGHTS -GRANTED HEREUNDER, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. - -7. GENERAL - -If any provision of this Agreement is invalid or unenforceable under applicable -law, it shall not affect the validity or enforceability of the remainder of the -terms of this Agreement, and without further action by the parties hereto, such -provision shall be reformed to the minimum extent necessary to make such -provision valid and enforceable. - -If Recipient institutes patent litigation against a Contributor with respect to -a patent applicable to software (including a cross-claim or counterclaim in a -lawsuit), then any patent licenses granted by that Contributor to such Recipient -under this Agreement shall terminate as of the date such litigation is filed. In -addition, if Recipient institutes patent litigation against any entity -(including a cross-claim or counterclaim in a lawsuit) alleging that the Program -itself (excluding combinations of the Program with other software or hardware) -infringes such Recipient's patent(s), then such Recipient's rights granted under -Section 2(b) shall terminate as of the date such litigation is filed. - -All Recipient's rights under this Agreement shall terminate if it fails to -comply with any of the material terms or conditions of this Agreement and does -not cure such failure in a reasonable period of time after becoming aware of -such noncompliance. If all Recipient's rights under this Agreement terminate, -Recipient agrees to cease use and distribution of the Program as soon as -reasonably practicable. However, Recipient's obligations under this Agreement -and any licenses granted by Recipient relating to the Program shall continue and -survive. - -Everyone is permitted to copy and distribute copies of this Agreement, but in -order to avoid inconsistency the Agreement is copyrighted and may only be -modified in the following manner. The Agreement Steward reserves the right to -publish new versions (including revisions) of this Agreement from time to time. -No one other than the Agreement Steward has the right to modify this Agreement. -IBM is the initial Agreement Steward. IBM may assign the responsibility to serve -as the Agreement Steward to a suitable separate entity. Each new version of the -Agreement will be given a distinguishing version number. The Program (including -Contributions) may always be distributed subject to the version of the Agreement -under which it was received. In addition, after a new version of the Agreement -is published, Contributor may elect to distribute the Program (including its -Contributions) under the new version. Except as expressly stated in Sections -2(a) and 2(b) above, Recipient receives no rights or licenses to the -intellectual property of any Contributor under this Agreement, whether -expressly, by implication, estoppel or otherwise. All rights in the Program not -expressly granted under this Agreement are reserved. - -This Agreement is governed by the laws of the State of New York and the -intellectual property laws of the United States of America. No party to this -Agreement will bring a legal action under this Agreement more than one year -after the cause of action arose. Each party waives its rights to a jury trial in -any resulting litigation. - diff -Nru librtas-1.3.13/debian/changelog librtas-2.0.0/debian/changelog --- librtas-1.3.13/debian/changelog 2015-01-15 15:57:27.000000000 +0000 +++ librtas-2.0.0/debian/changelog 2016-04-07 07:02:18.000000000 +0000 @@ -1,3 +1,16 @@ +librtas (2.0.0-1) unstable; urgency=medium + + * New upstream release, update debian/copyright to LGPL (LP: #1539543) + * Rewrite debian/watch file to track upstream's move to github/nfont. + * Update Standards-Version to 3.9.7 and tidy up our lintian warnings. + * Dtop liboftd1 and libofdt-dev from debian/* as upstream removed it. + * Pass '-c4' to dh_makeshlibs to force examination of symbol updates. + * Update debian/compat and debian/control debhelper usages to (>= 9). + * Drop patches upstream: shlib-symlink, format-security, static-libs. + * Bump SOVER to 2 and update symbol files to match upstream ABI break. + + -- Adam Conrad Wed, 06 Apr 2016 09:48:14 -0600 + librtas (1.3.13-1) unstable; urgency=medium * New upstream release, with even more LE fixes (LP: #1391322) diff -Nru librtas-1.3.13/debian/compat librtas-2.0.0/debian/compat --- librtas-1.3.13/debian/compat 2011-02-19 10:44:29.000000000 +0000 +++ librtas-2.0.0/debian/compat 2016-04-07 06:22:46.000000000 +0000 @@ -1 +1 @@ -5 +9 diff -Nru librtas-1.3.13/debian/control librtas-2.0.0/debian/control --- librtas-1.3.13/debian/control 2014-05-07 16:24:27.000000000 +0000 +++ librtas-2.0.0/debian/control 2016-04-07 06:22:59.000000000 +0000 @@ -3,11 +3,11 @@ Uploaders: Frederic Bonnard Section: libs Priority: extra -Build-Depends: debhelper (>= 7) -Standards-Version: 3.9.5 +Build-Depends: debhelper (>= 9) +Standards-Version: 3.9.7 Homepage: http://librtas.sourceforge.net -Package: librtas1 +Package: librtas2 Architecture: powerpc ppc64 ppc64el Pre-Depends: ${misc:Pre-Depends} Depends: ${shlibs:Depends}, ${misc:Depends} @@ -23,7 +23,7 @@ Package: librtas-dev Architecture: powerpc ppc64 ppc64el Section: libdevel -Depends: librtas1 (= ${binary:Version}), ${misc:Depends} +Depends: librtas2 (= ${binary:Version}), ${misc:Depends} Description: userspace RTAS library development files This library allows user-space programs to make Run-Time Abstraction Services (RTAS) calls which provide support for low-level system @@ -36,7 +36,7 @@ This package contains the static library and header files used in development. -Package: librtasevent1 +Package: librtasevent2 Architecture: powerpc ppc64 ppc64el Pre-Depends: ${misc:Pre-Depends} Depends: ${shlibs:Depends}, ${misc:Depends} @@ -48,7 +48,7 @@ Package: librtasevent-dev Architecture: powerpc ppc64 ppc64el Section: libdevel -Depends: librtasevent1 (= ${binary:Version}), ${misc:Depends} +Depends: librtasevent2 (= ${binary:Version}), ${misc:Depends} Description: RTAS events library development files This library provides a set of definitions and useful routines for analyzing RTAS events, such as parsing out sections of an RTAS @@ -57,23 +57,3 @@ This package contains the static library and header files used in development. -Package: libofdt1 -Architecture: powerpc ppc64 ppc64el -Pre-Depends: ${misc:Pre-Depends} -Depends: ${shlibs:Depends}, ${misc:Depends} -Description: device-tree parsing library - This library provide an API to read values and parse data from - /proc/device-tree, that is used to export most of the hardware - bindings and values. - -Package: libofdt-dev -Architecture: powerpc ppc64 ppc64el -Section: libdevel -Depends: libofdt1 (= ${binary:Version}), ${misc:Depends} -Description: device-tree parsing library development files - This library provide an API to read values and parse data from - /proc/device-tree, that is used to export most of the hardware - bindings and values. - . - This package contains the static library and header files used in - development. diff -Nru librtas-1.3.13/debian/copyright librtas-2.0.0/debian/copyright --- librtas-1.3.13/debian/copyright 2012-06-26 21:35:29.000000000 +0000 +++ librtas-2.0.0/debian/copyright 2016-04-07 06:33:34.000000000 +0000 @@ -1,234 +1,30 @@ -This package was debianized by Aurelien Jarno on -Tue, 26 Jun 2012 21:29:14 +0200. +Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ +Upstream-Name: librtas +Source: https://github.com/nfont/librtas/releases + +Files: * +Copyright: Copyright 2004-2016 International Business Machines +License: LGPL-2.1+ + +Files: debian/* +Copyright: Copyright 2014-2016 Adam Conrad +License: LGPL-2.1+ + +License: LGPL-2.1+ + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + . + This library 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 + Lesser General Public License for more details. + . + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + . + On Debian systems, the full text of the GNU Lesser General Public License + version 2.1 can be found in the file `/usr/share/common-licenses/LGPL-2.1'. -It was downloaded from http://librtas.sourceforge.net - -Upstream Authors: - - Jake Moilanen - John Rose - Manish Ahuja mahuja@us.ibm.com - Micheal Strosaker - Nathan Fontenot - - -Copyright: - - Copyright (C) 2004, 2005, 2008/2009 IBM Corporation - - -License: - - Common Public License Version 1.0 - - THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS COMMON PUBLIC - LICENSE ("AGREEMENT"). ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM - CONSTITUTES RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. - - 1. DEFINITIONS - - "Contribution" means: - - a) in the case of the initial Contributor, the initial code and - documentation distributed under this Agreement, and - - b) in the case of each subsequent Contributor: - - i) changes to the Program, and - - ii) additions to the Program; - - where such changes and/or additions to the Program originate from and are - distributed by that particular Contributor. A Contribution 'originates' from a - Contributor if it was added to the Program by such Contributor itself or anyone - acting on such Contributor's behalf. Contributions do not include additions to - the Program which: (i) are separate modules of software distributed in - conjunction with the Program under their own license agreement, and (ii) are not - derivative works of the Program. - - "Contributor" means any person or entity that distributes the Program. - - "Licensed Patents " mean patent claims licensable by a Contributor which are - necessarily infringed by the use or sale of its Contribution alone or when - combined with the Program. - - "Program" means the Contributions distributed in accordance with this Agreement. - - "Recipient" means anyone who receives the Program under this Agreement, - including all Contributors. - - 2. GRANT OF RIGHTS - - a) Subject to the terms of this Agreement, each Contributor hereby grants - Recipient a non-exclusive, worldwide, royalty-free copyright license to - reproduce, prepare derivative works of, publicly display, publicly perform, - distribute and sublicense the Contribution of such Contributor, if any, and such - derivative works, in source code and object code form. - - b) Subject to the terms of this Agreement, each Contributor hereby grants - Recipient a non-exclusive, worldwide, royalty-free patent license under Licensed - Patents to make, use, sell, offer to sell, import and otherwise transfer the - Contribution of such Contributor, if any, in source code and object code form. - This patent license shall apply to the combination of the Contribution and the - Program if, at the time the Contribution is added by the Contributor, such - addition of the Contribution causes such combination to be covered by the - Licensed Patents. The patent license shall not apply to any other combinations - which include the Contribution. No hardware per se is licensed hereunder. - - c) Recipient understands that although each Contributor grants the licenses - to its Contributions set forth herein, no assurances are provided by any - Contributor that the Program does not infringe the patent or other intellectual - property rights of any other entity. Each Contributor disclaims any liability to - Recipient for claims brought by any other entity based on infringement of - intellectual property rights or otherwise. As a condition to exercising the - rights and licenses granted hereunder, each Recipient hereby assumes sole - responsibility to secure any other intellectual property rights needed, if any. - For example, if a third party patent license is required to allow Recipient to - distribute the Program, it is Recipient's responsibility to acquire that license - before distributing the Program. - - d) Each Contributor represents that to its knowledge it has sufficient - copyright rights in its Contribution, if any, to grant the copyright license set - forth in this Agreement. - - 3. REQUIREMENTS - - A Contributor may choose to distribute the Program in object code form under its - own license agreement, provided that: - - a) it complies with the terms and conditions of this Agreement; and - - b) its license agreement: - - i) effectively disclaims on behalf of all Contributors all warranties and - conditions, express and implied, including warranties or conditions of title and - non-infringement, and implied warranties or conditions of merchantability and - fitness for a particular purpose; - - ii) effectively excludes on behalf of all Contributors all liability for - damages, including direct, indirect, special, incidental and consequential - damages, such as lost profits; - - iii) states that any provisions which differ from this Agreement are offered - by that Contributor alone and not by any other party; and - - iv) states that source code for the Program is available from such - Contributor, and informs licensees how to obtain it in a reasonable manner on or - through a medium customarily used for software exchange. - - When the Program is made available in source code form: - - a) it must be made available under this Agreement; and - - b) a copy of this Agreement must be included with each copy of the Program. - - Contributors may not remove or alter any copyright notices contained within the - Program. - - Each Contributor must identify itself as the originator of its Contribution, if - any, in a manner that reasonably allows subsequent Recipients to identify the - originator of the Contribution. - - 4. COMMERCIAL DISTRIBUTION - - Commercial distributors of software may accept certain responsibilities with - respect to end users, business partners and the like. While this license is - intended to facilitate the commercial use of the Program, the Contributor who - includes the Program in a commercial product offering should do so in a manner - which does not create potential liability for other Contributors. Therefore, if - a Contributor includes the Program in a commercial product offering, such - Contributor ("Commercial Contributor") hereby agrees to defend and indemnify - every other Contributor ("Indemnified Contributor") against any losses, damages - and costs (collectively "Losses") arising from claims, lawsuits and other legal - actions brought by a third party against the Indemnified Contributor to the - extent caused by the acts or omissions of such Commercial Contributor in - connection with its distribution of the Program in a commercial product - offering. The obligations in this section do not apply to any claims or Losses - relating to any actual or alleged intellectual property infringement. In order - to qualify, an Indemnified Contributor must: a) promptly notify the Commercial - Contributor in writing of such claim, and b) allow the Commercial Contributor to - control, and cooperate with the Commercial Contributor in, the defense and any - related settlement negotiations. The Indemnified Contributor may participate in - any such claim at its own expense. - - For example, a Contributor might include the Program in a commercial product - offering, Product X. That Contributor is then a Commercial Contributor. If that - Commercial Contributor then makes performance claims, or offers warranties - related to Product X, those performance claims and warranties are such - Commercial Contributor's responsibility alone. Under this section, the - Commercial Contributor would have to defend claims against the other - Contributors related to those performance claims and warranties, and if a court - requires any other Contributor to pay any damages as a result, the Commercial - Contributor must pay those damages. - - 5. NO WARRANTY - - EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, THE PROGRAM IS PROVIDED ON AN - "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR - IMPLIED INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE, - NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Each - Recipient is solely responsible for determining the appropriateness of using and - distributing the Program and assumes all risks associated with its exercise of - rights under this Agreement, including but not limited to the risks and costs of - program errors, compliance with applicable laws, damage to or loss of data, - programs or equipment, and unavailability or interruption of operations. - - 6. DISCLAIMER OF LIABILITY - - EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, NEITHER RECIPIENT NOR ANY - CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING WITHOUT LIMITATION LOST - PROFITS), HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - OUT OF THE USE OR DISTRIBUTION OF THE PROGRAM OR THE EXERCISE OF ANY RIGHTS - GRANTED HEREUNDER, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. - - 7. GENERAL - - If any provision of this Agreement is invalid or unenforceable under applicable - law, it shall not affect the validity or enforceability of the remainder of the - terms of this Agreement, and without further action by the parties hereto, such - provision shall be reformed to the minimum extent necessary to make such - provision valid and enforceable. - - If Recipient institutes patent litigation against a Contributor with respect to - a patent applicable to software (including a cross-claim or counterclaim in a - lawsuit), then any patent licenses granted by that Contributor to such Recipient - under this Agreement shall terminate as of the date such litigation is filed. In - addition, if Recipient institutes patent litigation against any entity - (including a cross-claim or counterclaim in a lawsuit) alleging that the Program - itself (excluding combinations of the Program with other software or hardware) - infringes such Recipient's patent(s), then such Recipient's rights granted under - Section 2(b) shall terminate as of the date such litigation is filed. - - All Recipient's rights under this Agreement shall terminate if it fails to - comply with any of the material terms or conditions of this Agreement and does - not cure such failure in a reasonable period of time after becoming aware of - such noncompliance. If all Recipient's rights under this Agreement terminate, - Recipient agrees to cease use and distribution of the Program as soon as - reasonably practicable. However, Recipient's obligations under this Agreement - and any licenses granted by Recipient relating to the Program shall continue and - survive. - - Everyone is permitted to copy and distribute copies of this Agreement, but in - order to avoid inconsistency the Agreement is copyrighted and may only be - modified in the following manner. The Agreement Steward reserves the right to - publish new versions (including revisions) of this Agreement from time to time. - No one other than the Agreement Steward has the right to modify this Agreement. - IBM is the initial Agreement Steward. IBM may assign the responsibility to serve - as the Agreement Steward to a suitable separate entity. Each new version of the - Agreement will be given a distinguishing version number. The Program (including - Contributions) may always be distributed subject to the version of the Agreement - under which it was received. In addition, after a new version of the Agreement - is published, Contributor may elect to distribute the Program (including its - Contributions) under the new version. Except as expressly stated in Sections - 2(a) and 2(b) above, Recipient receives no rights or licenses to the - intellectual property of any Contributor under this Agreement, whether - expressly, by implication, estoppel or otherwise. All rights in the Program not - expressly granted under this Agreement are reserved. - - This Agreement is governed by the laws of the State of New York and the - intellectual property laws of the United States of America. No party to this - Agreement will bring a legal action under this Agreement more than one year - after the cause of action arose. Each party waives its rights to a jury trial in - any resulting litigation. diff -Nru librtas-1.3.13/debian/libofdt1.install librtas-2.0.0/debian/libofdt1.install --- librtas-1.3.13/debian/libofdt1.install 2012-06-25 14:32:23.000000000 +0000 +++ librtas-2.0.0/debian/libofdt1.install 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -usr/lib/*/libofdt.so.* diff -Nru librtas-1.3.13/debian/libofdt1.symbols librtas-2.0.0/debian/libofdt1.symbols --- librtas-1.3.13/debian/libofdt1.symbols 2012-06-25 16:16:56.000000000 +0000 +++ librtas-2.0.0/debian/libofdt1.symbols 1970-01-01 00:00:00.000000000 +0000 @@ -1,16 +0,0 @@ -libofdt.so.1 libofdt1 #MINVER# - __libofdt_fini@Base 1.3.6 - add_property@Base 1.3.6 - create_drc_properties@Base 1.3.6 - delete_list@Base 1.3.6 - file_exists@Base 1.3.6 - find_drc_info@Base 1.3.6 - free_drc_info@Base 1.3.6 - get_drc_info@Base 1.3.6 - ofdt_get@Base 1.3.6 - ofdt_get_property@Base 1.3.6 - ofdt_get_property_by_name@Base 1.3.6 - ofdt_property_put@Base 1.3.6 - ofdt_put@Base 1.3.6 - traverse_devicetree@Base 1.3.6 - treehead@Base 1.3.6 diff -Nru librtas-1.3.13/debian/libofdt-dev.install librtas-2.0.0/debian/libofdt-dev.install --- librtas-1.3.13/debian/libofdt-dev.install 2012-06-26 17:11:19.000000000 +0000 +++ librtas-2.0.0/debian/libofdt-dev.install 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ -usr/include/libofdt.h -usr/lib/*/libofdt.a -usr/lib/*/libofdt.so diff -Nru librtas-1.3.13/debian/librtas1.install librtas-2.0.0/debian/librtas1.install --- librtas-1.3.13/debian/librtas1.install 2012-06-25 15:40:01.000000000 +0000 +++ librtas-2.0.0/debian/librtas1.install 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -usr/lib/*/librtas.so.* diff -Nru librtas-1.3.13/debian/librtas1.symbols librtas-2.0.0/debian/librtas1.symbols --- librtas-1.3.13/debian/librtas1.symbols 2012-06-25 16:15:30.000000000 +0000 +++ librtas-2.0.0/debian/librtas1.symbols 1970-01-01 00:00:00.000000000 +0000 @@ -1,80 +0,0 @@ -librtas.so.1 librtas1 #MINVER# - config@Base 1.3.6 - open_proc_rtas_file@Base 1.3.6 - pfs_cfg_connector@Base 1.3.6 - pfs_get_power@Base 1.3.6 - pfs_get_sensor@Base 1.3.6 - pfs_get_sysparm@Base 1.3.6 - pfs_set_indicator@Base 1.3.6 - pfs_set_power@Base 1.3.6 - procfs_interface_exists@Base 1.3.6 - procfs_rtas_ops@Base 1.3.6 - read_entire_file@Base 1.3.6 - rtas_activate_firmware@Base 1.3.6 - rtas_cfg_connector@Base 1.3.6 - rtas_delay_timeout@Base 1.3.6 - rtas_display_char@Base 1.3.6 - rtas_display_msg@Base 1.3.6 - rtas_errinjct@Base 1.3.6 - rtas_errinjct_close@Base 1.3.6 - rtas_errinjct_open@Base 1.3.6 - rtas_free_rmo_buffer@Base 1.3.6 - rtas_get_config_addr_info2@Base 1.3.6 - rtas_get_dynamic_sensor@Base 1.3.6 - rtas_get_indices@Base 1.3.6 - rtas_get_power_level@Base 1.3.6 - rtas_get_rmo_buffer@Base 1.3.6 - rtas_get_sensor@Base 1.3.6 - rtas_get_sysparm@Base 1.3.6 - rtas_get_time@Base 1.3.6 - rtas_get_vpd@Base 1.3.6 - rtas_lpar_perftools@Base 1.3.6 - rtas_platform_dump@Base 1.3.6 - rtas_read_slot_reset@Base 1.3.6 - rtas_scan_log_dump@Base 1.3.6 - rtas_set_debug@Base 1.3.6 - rtas_set_dynamic_indicator@Base 1.3.6 - rtas_set_eeh_option@Base 1.3.6 - rtas_set_indicator@Base 1.3.6 - rtas_set_power_level@Base 1.3.6 - rtas_set_poweron_time@Base 1.3.6 - rtas_set_sysparm@Base 1.3.6 - rtas_set_time@Base 1.3.6 - rtas_suspend_me@Base 1.3.6 - rtas_token@Base 1.3.6 - rtas_update_nodes@Base 1.3.6 - rtas_update_properties@Base 1.3.6 - sc_activate_firmware@Base 1.3.6 - sc_cfg_connector@Base 1.3.6 - sc_delay_timeout@Base 1.3.6 - sc_display_char@Base 1.3.6 - sc_display_msg@Base 1.3.6 - sc_errinjct@Base 1.3.6 - sc_errinjct_close@Base 1.3.6 - sc_errinjct_open@Base 1.3.6 - sc_free_rmo_buffer@Base 1.3.6 - sc_get_config_addr_info2@Base 1.3.6 - sc_get_dynamic_sensor@Base 1.3.6 - sc_get_indices@Base 1.3.6 - sc_get_power_level@Base 1.3.6 - sc_get_rmo_buffer@Base 1.3.6 - sc_get_sensor@Base 1.3.6 - sc_get_sysparm@Base 1.3.6 - sc_get_time@Base 1.3.6 - sc_get_vpd@Base 1.3.6 - sc_interface_exists@Base 1.3.6 - sc_lpar_perftools@Base 1.3.6 - sc_platform_dump@Base 1.3.6 - sc_read_slot_reset@Base 1.3.6 - sc_scan_log_dump@Base 1.3.6 - sc_set_dynamic_indicator@Base 1.3.6 - sc_set_eeh_option@Base 1.3.6 - sc_set_indicator@Base 1.3.6 - sc_set_power_level@Base 1.3.6 - sc_set_poweron_time@Base 1.3.6 - sc_set_sysparm@Base 1.3.6 - sc_set_time@Base 1.3.6 - sc_suspend_me@Base 1.3.6 - sc_update_nodes@Base 1.3.6 - sc_update_properties@Base 1.3.6 - syscall_rtas_ops@Base 1.3.6 diff -Nru librtas-1.3.13/debian/librtas2.install librtas-2.0.0/debian/librtas2.install --- librtas-1.3.13/debian/librtas2.install 1970-01-01 00:00:00.000000000 +0000 +++ librtas-2.0.0/debian/librtas2.install 2012-06-25 15:40:01.000000000 +0000 @@ -0,0 +1 @@ +usr/lib/*/librtas.so.* diff -Nru librtas-1.3.13/debian/librtas2.symbols librtas-2.0.0/debian/librtas2.symbols --- librtas-1.3.13/debian/librtas2.symbols 1970-01-01 00:00:00.000000000 +0000 +++ librtas-2.0.0/debian/librtas2.symbols 2016-04-01 02:10:26.000000000 +0000 @@ -0,0 +1,39 @@ +librtas.so.2 librtas2 #MINVER# + dbg_lvl@Base 1.4.1 + interface_exists@Base 1.4.1 + read_entire_file@Base 1.3.6 + rtas_activate_firmware@Base 1.3.6 + rtas_cfg_connector@Base 1.3.6 + rtas_delay_timeout@Base 1.3.6 + rtas_display_char@Base 1.3.6 + rtas_display_msg@Base 1.3.6 + rtas_errinjct@Base 1.3.6 + rtas_errinjct_close@Base 1.3.6 + rtas_errinjct_open@Base 1.3.6 + rtas_free_rmo_buffer@Base 1.3.6 + rtas_get_config_addr_info2@Base 1.3.6 + rtas_get_dynamic_sensor@Base 1.3.6 + rtas_get_indices@Base 1.3.6 + rtas_get_power_level@Base 1.3.6 + rtas_get_rmo_buffer@Base 1.3.6 + rtas_get_sensor@Base 1.3.6 + rtas_get_sysparm@Base 1.3.6 + rtas_get_time@Base 1.3.6 + rtas_get_vpd@Base 1.3.6 + rtas_lpar_perftools@Base 1.3.6 + rtas_platform_dump@Base 1.3.6 + rtas_read_slot_reset@Base 1.3.6 + rtas_scan_log_dump@Base 1.3.6 + rtas_set_debug@Base 1.3.6 + rtas_set_dynamic_indicator@Base 1.3.6 + rtas_set_eeh_option@Base 1.3.6 + rtas_set_indicator@Base 1.3.6 + rtas_set_power_level@Base 1.3.6 + rtas_set_poweron_time@Base 1.3.6 + rtas_set_sysparm@Base 1.3.6 + rtas_set_time@Base 1.3.6 + rtas_suspend_me@Base 1.3.6 + rtas_token@Base 1.3.6 + rtas_update_nodes@Base 1.3.6 + rtas_update_properties@Base 1.3.6 + sanity_check@Base 1.4.1 diff -Nru librtas-1.3.13/debian/librtasevent1.install librtas-2.0.0/debian/librtasevent1.install --- librtas-1.3.13/debian/librtasevent1.install 2012-06-25 15:39:29.000000000 +0000 +++ librtas-2.0.0/debian/librtasevent1.install 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -usr/lib/*/librtasevent.so.* diff -Nru librtas-1.3.13/debian/librtasevent1.symbols librtas-2.0.0/debian/librtasevent1.symbols --- librtas-1.3.13/debian/librtasevent1.symbols 2015-01-15 15:56:36.000000000 +0000 +++ librtas-2.0.0/debian/librtasevent1.symbols 1970-01-01 00:00:00.000000000 +0000 @@ -1,80 +0,0 @@ -librtasevent.so.1 librtasevent1 #MINVER# - add_re_scn@Base 1.3.6 - cleanup_rtas_event@Base 1.3.6 - get_re_scn@Base 1.3.6 - parse_cpu_scn@Base 1.3.6 - parse_dump_scn@Base 1.3.6 - parse_epow_scn@Base 1.3.6 - parse_fru_scn@Base 1.3.13 - parse_generic_v6_scn@Base 1.3.6 - parse_hotplug_scn@Base 1.3.9 - parse_ibm_diag_scn@Base 1.3.6 - parse_io_scn@Base 1.3.6 - parse_lri_scn@Base 1.3.6 - parse_mem_scn@Base 1.3.6 - parse_mt_scn@Base 1.3.6 - parse_mtms@Base 1.3.6 - parse_post_scn@Base 1.3.6 - parse_priv_hdr_scn@Base 1.3.6 - parse_rtas_date@Base 1.3.10 - parse_rtas_event@Base 1.3.6 - parse_rtas_time@Base 1.3.10 - parse_sp_scn@Base 1.3.6 - parse_src_scn@Base 1.3.6 - parse_usr_hdr_scn@Base 1.3.6 - parse_v6_hdr@Base 1.3.10 - parse_v6_rtas_event@Base 1.3.6 - parse_vend_errlog_scn@Base 1.3.6 - print_mtms@Base 1.3.6 - print_raw_data@Base 1.3.6 - print_re_cpu_scn@Base 1.3.6 - print_re_dump_scn@Base 1.3.6 - print_re_epow_scn@Base 1.3.6 - print_re_exthdr_scn@Base 1.3.6 - print_re_fru_scn@Base 1.3.6 - print_re_generic_scn@Base 1.3.6 - print_re_hdr_scn@Base 1.3.6 - print_re_hotplug_scn@Base 1.3.9 - print_re_ibm_diag_scn@Base 1.3.6 - print_re_ibmsp_scn@Base 1.3.6 - print_re_io_scn@Base 1.3.6 - print_re_lri_scn@Base 1.3.6 - print_re_mem_scn@Base 1.3.6 - print_re_mt_scn@Base 1.3.6 - print_re_post_scn@Base 1.3.6 - print_re_priv_hdr_scn@Base 1.3.6 - print_re_src_scn@Base 1.3.6 - print_re_usr_hdr_scn@Base 1.3.6 - print_re_vend_errlog_scn@Base 1.3.6 - print_scn_title@Base 1.3.6 - print_src_refcode@Base 1.3.6 - print_usr_hdr_action@Base 1.3.6 - print_usr_hdr_event_data@Base 1.3.6 - print_usr_hdr_subsystem_id@Base 1.3.6 - print_v6_hdr@Base 1.3.6 - re_scn_id@Base 1.3.6 - rtas_copy@Base 1.3.6 - rtas_entity_names@Base 1.3.6 - rtas_get_cpu_scn@Base 1.3.6 - rtas_get_dump_scn@Base 1.3.6 - rtas_get_epow_scn@Base 1.3.6 - rtas_get_event_exthdr_scn@Base 1.3.6 - rtas_get_event_hdr_scn@Base 1.3.6 - rtas_get_hotplug_scn@Base 1.3.9 - rtas_get_ibm_diag_scn@Base 1.3.6 - rtas_get_ibm_sp_scn@Base 1.3.6 - rtas_get_io_scn@Base 1.3.6 - rtas_get_lri_scn@Base 1.3.6 - rtas_get_mem_scn@Base 1.3.6 - rtas_get_mt_scn@Base 1.3.6 - rtas_get_post_scn@Base 1.3.6 - rtas_get_priv_hdr_scn@Base 1.3.6 - rtas_get_src_scn@Base 1.3.6 - rtas_get_usr_hdr_scn@Base 1.3.6 - rtas_get_vend_errlog_scn@Base 1.3.6 - rtas_print@Base 1.3.6 - rtas_print_event@Base 1.3.6 - rtas_print_raw_event@Base 1.3.6 - rtas_print_scn@Base 1.3.6 - rtas_set_print_width@Base 1.3.6 - update_os_id_scn@Base 1.3.6 diff -Nru librtas-1.3.13/debian/librtasevent2.install librtas-2.0.0/debian/librtasevent2.install --- librtas-1.3.13/debian/librtasevent2.install 1970-01-01 00:00:00.000000000 +0000 +++ librtas-2.0.0/debian/librtasevent2.install 2012-06-25 15:39:29.000000000 +0000 @@ -0,0 +1 @@ +usr/lib/*/librtasevent.so.* diff -Nru librtas-1.3.13/debian/librtasevent2.symbols librtas-2.0.0/debian/librtasevent2.symbols --- librtas-1.3.13/debian/librtasevent2.symbols 1970-01-01 00:00:00.000000000 +0000 +++ librtas-2.0.0/debian/librtasevent2.symbols 2016-04-06 15:49:10.000000000 +0000 @@ -0,0 +1,80 @@ +librtasevent.so.2 librtasevent2 #MINVER# + add_re_scn@Base 1.3.6 + cleanup_rtas_event@Base 1.3.6 + get_re_scn@Base 1.3.6 + parse_cpu_scn@Base 1.3.6 + parse_dump_scn@Base 1.3.6 + parse_epow_scn@Base 1.3.6 + parse_fru_scn@Base 1.3.13 + parse_generic_v6_scn@Base 1.3.6 + parse_hotplug_scn@Base 1.3.9 + parse_ibm_diag_scn@Base 1.3.6 + parse_io_scn@Base 1.3.6 + parse_lri_scn@Base 1.3.6 + parse_mem_scn@Base 1.3.6 + parse_mt_scn@Base 1.3.6 + parse_mtms@Base 1.3.6 + parse_post_scn@Base 1.3.6 + parse_priv_hdr_scn@Base 1.3.6 + parse_rtas_date@Base 1.3.10 + parse_rtas_event@Base 1.3.6 + parse_rtas_time@Base 1.3.10 + parse_sp_scn@Base 1.3.6 + parse_src_scn@Base 1.3.6 + parse_usr_hdr_scn@Base 1.3.6 + parse_v6_hdr@Base 1.3.10 + parse_v6_rtas_event@Base 1.3.6 + parse_vend_errlog_scn@Base 1.3.6 + print_mtms@Base 1.3.6 + print_raw_data@Base 1.3.6 + print_re_cpu_scn@Base 1.3.6 + print_re_dump_scn@Base 1.3.6 + print_re_epow_scn@Base 1.3.6 + print_re_exthdr_scn@Base 1.3.6 + print_re_fru_scn@Base 1.3.6 + print_re_generic_scn@Base 1.3.6 + print_re_hdr_scn@Base 1.3.6 + print_re_hotplug_scn@Base 1.3.9 + print_re_ibm_diag_scn@Base 1.3.6 + print_re_ibmsp_scn@Base 1.3.6 + print_re_io_scn@Base 1.3.6 + print_re_lri_scn@Base 1.3.6 + print_re_mem_scn@Base 1.3.6 + print_re_mt_scn@Base 1.3.6 + print_re_post_scn@Base 1.3.6 + print_re_priv_hdr_scn@Base 1.3.6 + print_re_src_scn@Base 1.3.6 + print_re_usr_hdr_scn@Base 1.3.6 + print_re_vend_errlog_scn@Base 1.3.6 + print_scn_title@Base 1.3.6 + print_src_refcode@Base 1.3.6 + print_usr_hdr_action@Base 1.3.6 + print_usr_hdr_event_data@Base 1.3.6 + print_usr_hdr_subsystem_id@Base 1.3.6 + print_v6_hdr@Base 1.3.6 + re_scn_id@Base 1.3.6 + rtas_copy@Base 1.3.6 + rtas_entity_names@Base 1.3.6 + rtas_get_cpu_scn@Base 1.3.6 + rtas_get_dump_scn@Base 1.3.6 + rtas_get_epow_scn@Base 1.3.6 + rtas_get_event_exthdr_scn@Base 1.3.6 + rtas_get_event_hdr_scn@Base 1.3.6 + rtas_get_hotplug_scn@Base 1.3.9 + rtas_get_ibm_diag_scn@Base 1.3.6 + rtas_get_ibm_sp_scn@Base 1.3.6 + rtas_get_io_scn@Base 1.3.6 + rtas_get_lri_scn@Base 1.3.6 + rtas_get_mem_scn@Base 1.3.6 + rtas_get_mt_scn@Base 1.3.6 + rtas_get_post_scn@Base 1.3.6 + rtas_get_priv_hdr_scn@Base 1.3.6 + rtas_get_src_scn@Base 1.3.6 + rtas_get_usr_hdr_scn@Base 1.3.6 + rtas_get_vend_errlog_scn@Base 1.3.6 + rtas_print@Base 1.3.6 + rtas_print_event@Base 1.3.6 + rtas_print_raw_event@Base 1.3.6 + rtas_print_scn@Base 1.3.6 + rtas_set_print_width@Base 1.3.6 + update_os_id_scn@Base 1.3.6 diff -Nru librtas-1.3.13/debian/patches/01_lib64.patch librtas-2.0.0/debian/patches/01_lib64.patch --- librtas-1.3.13/debian/patches/01_lib64.patch 2012-06-26 17:22:47.000000000 +0000 +++ librtas-2.0.0/debian/patches/01_lib64.patch 2016-04-07 06:44:15.000000000 +0000 @@ -1,3 +1,5 @@ +Description: Don't mangle libdir unnecessarily on Debian/Ubuntu + --- rules.mk | 1 - 1 file changed, 1 deletion(-) diff -Nru librtas-1.3.13/debian/patches/02_shlib-symlink.patch librtas-2.0.0/debian/patches/02_shlib-symlink.patch --- librtas-1.3.13/debian/patches/02_shlib-symlink.patch 2014-01-22 10:48:54.000000000 +0000 +++ librtas-2.0.0/debian/patches/02_shlib-symlink.patch 1970-01-01 00:00:00.000000000 +0000 @@ -1,29 +0,0 @@ ---- - libofdt_src/Makefile | 1 + - librtas_src/Makefile | 1 + - 2 files changed, 2 insertions(+) - -Index: b/libofdt_src/Makefile -=================================================================== ---- a/libofdt_src/Makefile -+++ b/libofdt_src/Makefile -@@ -27,6 +27,7 @@ - @$(call install_lib,$(LIBOFDT),$(DESTDIR)) - @$(call install_inc,$(LIBOFDT_SHIP_HDR),$(DESTDIR)) - @ln -sf $(LIBOFDT) $(DESTDIR)/$(LIB_DIR)$(call is_lib64,$(LIBOFDT))/$(LIBOFDT_SONAME) -+ @ln -sf $(LIBOFDT) $(DESTDIR)/$(LIB_DIR)$(call is_lib64,$(LIBOFDT))/$(LIBOFDT_SONAME).1 - - uninstall: - @$(call uninstall_lib,$(LIBOFDT),$(DESTDIR)) -Index: b/librtas_src/Makefile -=================================================================== ---- a/librtas_src/Makefile -+++ b/librtas_src/Makefile -@@ -33,6 +33,7 @@ - @$(call install_lib,$(LIBRTAS),$(DESTDIR)) - @$(call install_inc,$(HEADERS),$(DESTDIR)) - @ln -sf $(LIBRTAS) $(DESTDIR)/$(LIB_DIR)$(call is_lib64,$(LIBRTAS))/$(LIBRTAS_SONAME) -+ @ln -sf $(LIBRTAS) $(DESTDIR)/$(LIB_DIR)$(call is_lib64,$(LIBRTAS))/$(LIBRTAS_SONAME).1 - - uninstall: - @$(call uninstall_lib,$(LIBRTAS),$(DESTDIR)) diff -Nru librtas-1.3.13/debian/patches/03_format-security.patch librtas-2.0.0/debian/patches/03_format-security.patch --- librtas-1.3.13/debian/patches/03_format-security.patch 2014-01-22 10:52:06.000000000 +0000 +++ librtas-2.0.0/debian/patches/03_format-security.patch 1970-01-01 00:00:00.000000000 +0000 @@ -1,39 +0,0 @@ ---- - librtasevent_src/print_rtas_event.c | 8 ++++---- - 1 file changed, 4 insertions(+), 4 deletions(-) - -Index: b/librtasevent_src/print_rtas_event.c -=================================================================== ---- a/librtasevent_src/print_rtas_event.c -+++ b/librtasevent_src/print_rtas_event.c -@@ -328,7 +328,7 @@ - - if (newline != NULL) { - prnt_len = newline - &tmpbuf[offset] + 1; -- snprintf(buf + buf_offset, prnt_len, &tmpbuf[offset]); -+ snprintf(buf + buf_offset, prnt_len, "%s", &tmpbuf[offset]); - buf_offset = strlen(buf); - buf_offset += snprintf(buf + buf_offset, - sizeof(buf) - buf_offset, "\n"); -@@ -348,7 +348,7 @@ - } - - /* print up to the last brkpt */ -- snprintf(buf + buf_offset, prnt_len, &tmpbuf[offset]); -+ snprintf(buf + buf_offset, prnt_len, "%s", &tmpbuf[offset]); - buf_offset = strlen(buf); - buf_offset += snprintf(buf + buf_offset, sizeof(buf) - buf_offset, - "\n"); -@@ -359,10 +359,10 @@ - } - - prnt_len = snprintf(buf + buf_offset, sizeof(buf) - buf_offset, -- &tmpbuf[offset]); -+ "%s", &tmpbuf[offset]); - line_offset += prnt_len; - -- return fprintf(ostream, buf); -+ return fprintf(ostream, "%s", buf); - } - - /** diff -Nru librtas-1.3.13/debian/patches/05_static-libs.patch librtas-2.0.0/debian/patches/05_static-libs.patch --- librtas-1.3.13/debian/patches/05_static-libs.patch 2012-06-26 17:22:24.000000000 +0000 +++ librtas-2.0.0/debian/patches/05_static-libs.patch 1970-01-01 00:00:00.000000000 +0000 @@ -1,91 +0,0 @@ ---- - libofdt_src/Makefile | 12 ++++++++++-- - librtas_src/Makefile | 1 + - librtasevent_src/Makefile | 12 ++++++++++-- - 3 files changed, 21 insertions(+), 4 deletions(-) - ---- a/librtas_src/Makefile -+++ b/librtas_src/Makefile -@@ -31,6 +31,7 @@ - - install: - @$(call install_lib,$(LIBRTAS),$(DESTDIR)) -+ @$(call install_lib,$(LIBRTAS_STATIC),$(DESTDIR)) - @$(call install_inc,$(HEADERS),$(DESTDIR)) - @ln -sf $(LIBRTAS) $(DESTDIR)/$(LIB_DIR)$(call is_lib64,$(LIBRTAS))/$(LIBRTAS_SONAME) - @ln -sf $(LIBRTAS) $(DESTDIR)/$(LIB_DIR)$(call is_lib64,$(LIBRTAS))/$(LIBRTAS_SONAME).1 ---- a/libofdt_src/Makefile -+++ b/libofdt_src/Makefile -@@ -9,6 +9,7 @@ - include ../rules.mk - - LIBOFDT_SONAME = libofdt.so -+LIBOFDT_STATIC = libofdt.a - LIBOFDT = $(LIBOFDT_SONAME).$(VERSION) - - LIBOFDT_OBJS = dtree.o drc.o -@@ -19,12 +20,19 @@ - CFLAGS += -fPIC -DPIC - LDFLAGS += -shared -Wl,-soname -Wl,$(LIBOFDT_SONAME).$(MAJOR_NO) - --all: $(LIBOFDT_OBJS) $(LIBOFDT_HDRS) -+all: libofdt_shared libofdt_static -+ -+libofdt_shared: $(LIBOFDT_OBJS) $(LIBOFDT_HDRS) - @echo "LD $(WORK_DIR)/$(LIBOFDT)..." - @$(CC) $(LIBOFDT_OBJS) $(LDFLAGS) -o $(LIBOFDT) - -+libofdt_static: $(LIBOFDT_OBJS) $(HEADERS) -+ @echo "AR $(LIBOFDT_STATIC)..." -+ @ar rcs $(LIBOFDT_STATIC) $(LIBOFDT_OBJS) -+ - install: - @$(call install_lib,$(LIBOFDT),$(DESTDIR)) -+ @$(call install_lib,$(LIBOFDT_STATIC),$(DESTDIR)) - @$(call install_inc,$(LIBOFDT_SHIP_HDR),$(DESTDIR)) - @ln -sf $(LIBOFDT) $(DESTDIR)/$(LIB_DIR)$(call is_lib64,$(LIBOFDT))/$(LIBOFDT_SONAME) - @ln -sf $(LIBOFDT) $(DESTDIR)/$(LIB_DIR)$(call is_lib64,$(LIBOFDT))/$(LIBOFDT_SONAME).1 -@@ -36,4 +44,4 @@ - - clean: - @echo "Cleaning up $(WORK_DIR) files..." -- @rm -f $(LIBOFDT_OBJS) $(LIBOFDT) -+ @rm -f $(LIBOFDT_OBJS) $(LIBOFDT) $(LIBOFDT_STATIC) ---- a/librtasevent_src/Makefile -+++ b/librtasevent_src/Makefile -@@ -8,6 +8,7 @@ - include ../rules.mk - - LIBRE_SONAME = librtasevent.so -+LIBRE_STATIC = librtasevent.a - LIBRE = $(LIBRE_SONAME).$(VERSION) - - LIBRE_OBJS = get_rtas_event.o print_rtas_event.o rtas_cpu.o rtas_dump.o \ -@@ -20,12 +21,19 @@ - CFLAGS += -fPIC -DPIC -I. - LDFLAGS += -shared -Wl,-soname -Wl,$(LIBRE_SONAME).$(MAJOR_NO) - --all: $(LIBRE_OBJS) $(HEADERS) -+all: libre_shared libre_static -+ -+libre_shared: $(LIBRE_OBJS) $(HEADERS) - @echo "LD librtasevent_src/$(LIBRE)..." - @$(CC) $(LIBRE_OBJS) $(LDFLAGS) -o $(LIBRE) - -+libre_static: $(LIBRE_OBJS) $(HEADERS) -+ @echo "AR $(LIBRE_STATIC)..." -+ @ar rcs $(LIBRE_STATIC) $(LIBRE_OBJS) -+ - install: - @$(call install_lib,$(LIBRE),$(DESTDIR)) -+ @$(call install_lib,$(LIBRE_STATIC),$(DESTDIR)) - @$(call install_inc,$(LIBRE_HDRS),$(DESTDIR)) - @ln -sf $(LIBRE) $(DESTDIR)/$(LIB_DIR)$(call is_lib64,$(LIBRE))/$(LIBRE_SONAME) - @ln -sf $(LIBRE) $(DESTDIR)/$(LIB_DIR)$(call is_lib64,$(LIBRE))/$(LIBRE_SONAME).1 -@@ -37,5 +45,5 @@ - - clean: - @echo "Cleaning up $(WORK_DIR) files..." -- @rm -f $(LIBRE_OBJS) $(LIBRE_SONAME) $(LIBRE) -+ @rm -f $(LIBRE_OBJS) $(LIBRE_SONAME) $(LIBRE) $(LIBRE_STATIC) - diff -Nru librtas-1.3.13/debian/patches/series librtas-2.0.0/debian/patches/series --- librtas-1.3.13/debian/patches/series 2014-06-29 02:02:16.000000000 +0000 +++ librtas-2.0.0/debian/patches/series 2016-04-06 15:50:37.000000000 +0000 @@ -1,4 +1 @@ 01_lib64.patch -02_shlib-symlink.patch -03_format-security.patch -05_static-libs.patch diff -Nru librtas-1.3.13/debian/rules librtas-2.0.0/debian/rules --- librtas-1.3.13/debian/rules 2012-06-25 15:42:23.000000000 +0000 +++ librtas-2.0.0/debian/rules 2016-03-30 07:02:05.000000000 +0000 @@ -49,7 +49,7 @@ dh_strip dh_compress dh_fixperms - dh_makeshlibs + dh_makeshlibs -- -c4 dh_installdeb dh_shlibdeps dh_gencontrol diff -Nru librtas-1.3.13/debian/source/lintian-overrides librtas-2.0.0/debian/source/lintian-overrides --- librtas-1.3.13/debian/source/lintian-overrides 1970-01-01 00:00:00.000000000 +0000 +++ librtas-2.0.0/debian/source/lintian-overrides 2016-04-07 06:44:26.000000000 +0000 @@ -0,0 +1,2 @@ +# Upstream doesn't provide a GPG-signed download, stop bugging me: +librtas source: debian-watch-may-check-gpg-signature diff -Nru librtas-1.3.13/debian/watch librtas-2.0.0/debian/watch --- librtas-1.3.13/debian/watch 2014-05-07 16:18:10.000000000 +0000 +++ librtas-2.0.0/debian/watch 2016-03-29 23:31:50.000000000 +0000 @@ -1,2 +1,3 @@ -version=3 -http://qa.debian.org/watch/sf.php/librtas/librtas[_\-]v?(\d.*)\.(?:tgz|tbz2|txz|tar\.(?:gz|bz2|xz)) +version=4 +opts=filenamemangle=s/.+\/v?(\d\S*)\.tar\.gz/librtas-$1\.tar\.gz/ \ + https://github.com/nfont/librtas/releases .*/v?(\d\S*)\.tar\.gz diff -Nru librtas-1.3.13/doc/doxygen.rtas librtas-2.0.0/doc/doxygen.rtas --- librtas-1.3.13/doc/doxygen.rtas 1970-01-01 00:00:00.000000000 +0000 +++ librtas-2.0.0/doc/doxygen.rtas 2016-04-06 03:03:56.000000000 +0000 @@ -0,0 +1,1154 @@ +# Doxyfile 1.3.8 + +# This file describes the settings to be used by the documentation system +# doxygen (www.doxygen.org) for a project +# +# All text after a hash (#) is considered a comment and will be ignored +# The format is: +# TAG = value [value, ...] +# For lists items can also be appended using: +# TAG += value [value, ...] +# Values that contain spaces should be placed between quotes (" ") + +#--------------------------------------------------------------------------- +# Project related configuration options +#--------------------------------------------------------------------------- + +# The PROJECT_NAME tag is a single word (or a sequence of words surrounded +# by quotes) that should identify the project. + +PROJECT_NAME = librtas + +# The PROJECT_NUMBER tag can be used to enter a project or revision number. +# This could be handy for archiving the generated documentation or +# if some version control system is used. + +PROJECT_NUMBER = + +# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) +# base path where the generated documentation will be put. +# If a relative path is entered, it will be relative to the location +# where doxygen was started. If left blank the current directory will be used. + +OUTPUT_DIRECTORY = doc/librtas + +# If the CREATE_SUBDIRS tag is set to YES, then doxygen will create +# 4096 sub-directories (in 2 levels) under the output directory of each output +# format and will distribute the generated files over these directories. +# Enabling this option can be useful when feeding doxygen a huge amount of source +# files, where putting all generated files in the same directory would otherwise +# cause performance problems for the file system. + +CREATE_SUBDIRS = NO + +# The OUTPUT_LANGUAGE tag is used to specify the language in which all +# documentation generated by doxygen is written. Doxygen will use this +# information to generate all constant output in the proper language. +# The default language is English, other supported languages are: +# Brazilian, Catalan, Chinese, Chinese-Traditional, Croatian, Czech, Danish, +# Dutch, Finnish, French, German, Greek, Hungarian, Italian, Japanese, +# Japanese-en (Japanese with English messages), Korean, Korean-en, Norwegian, +# Polish, Portuguese, Romanian, Russian, Serbian, Slovak, Slovene, Spanish, +# Swedish, and Ukrainian. + +OUTPUT_LANGUAGE = English + +# This tag can be used to specify the encoding used in the generated output. +# The encoding is not always determined by the language that is chosen, +# but also whether or not the output is meant for Windows or non-Windows users. +# In case there is a difference, setting the USE_WINDOWS_ENCODING tag to YES +# forces the Windows encoding (this is the default for the Windows binary), +# whereas setting the tag to NO uses a Unix-style encoding (the default for +# all platforms other than Windows). + +USE_WINDOWS_ENCODING = NO + +# If the BRIEF_MEMBER_DESC tag is set to YES (the default) Doxygen will +# include brief member descriptions after the members that are listed in +# the file and class documentation (similar to JavaDoc). +# Set to NO to disable this. + +BRIEF_MEMBER_DESC = YES + +# If the REPEAT_BRIEF tag is set to YES (the default) Doxygen will prepend +# the brief description of a member or function before the detailed description. +# Note: if both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the +# brief descriptions will be completely suppressed. + +REPEAT_BRIEF = NO + +# This tag implements a quasi-intelligent brief description abbreviator +# that is used to form the text in various listings. Each string +# in this list, if found as the leading text of the brief description, will be +# stripped from the text and the result after processing the whole list, is used +# as the annotated text. Otherwise, the brief description is used as-is. If left +# blank, the following values are used ("$name" is automatically replaced with the +# name of the entity): "The $name class" "The $name widget" "The $name file" +# "is" "provides" "specifies" "contains" "represents" "a" "an" "the" + +ABBREVIATE_BRIEF = + +# If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then +# Doxygen will generate a detailed section even if there is only a brief +# description. + +ALWAYS_DETAILED_SEC = NO + +# If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all inherited +# members of a class in the documentation of that class as if those members were +# ordinary class members. Constructors, destructors and assignment operators of +# the base classes will not be shown. + +INLINE_INHERITED_MEMB = NO + +# If the FULL_PATH_NAMES tag is set to YES then Doxygen will prepend the full +# path before files name in the file list and in the header files. If set +# to NO the shortest path that makes the file name unique will be used. + +FULL_PATH_NAMES = YES + +# If the FULL_PATH_NAMES tag is set to YES then the STRIP_FROM_PATH tag +# can be used to strip a user-defined part of the path. Stripping is +# only done if one of the specified strings matches the left-hand part of +# the path. The tag can be used to show relative paths in the file list. +# If left blank the directory from which doxygen is run is used as the +# path to strip. + +STRIP_FROM_PATH = + +# The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of +# the path mentioned in the documentation of a class, which tells +# the reader which header file to include in order to use a class. +# If left blank only the name of the header file containing the class +# definition is used. Otherwise one should specify the include paths that +# are normally passed to the compiler using the -I flag. + +STRIP_FROM_INC_PATH = + +# If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter +# (but less readable) file names. This can be useful is your file systems +# doesn't support long names like on DOS, Mac, or CD-ROM. + +SHORT_NAMES = NO + +# If the JAVADOC_AUTOBRIEF tag is set to YES then Doxygen +# will interpret the first line (until the first dot) of a JavaDoc-style +# comment as the brief description. If set to NO, the JavaDoc +# comments will behave just like the Qt-style comments (thus requiring an +# explicit @brief command for a brief description. + +JAVADOC_AUTOBRIEF = NO + +# The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make Doxygen +# treat a multi-line C++ special comment block (i.e. a block of //! or /// +# comments) as a brief description. This used to be the default behaviour. +# The new default is to treat a multi-line C++ comment block as a detailed +# description. Set this tag to YES if you prefer the old behaviour instead. + +MULTILINE_CPP_IS_BRIEF = NO + +# If the DETAILS_AT_TOP tag is set to YES then Doxygen +# will output the detailed description near the top, like JavaDoc. +# If set to NO, the detailed description appears after the member +# documentation. + +DETAILS_AT_TOP = NO + +# If the INHERIT_DOCS tag is set to YES (the default) then an undocumented +# member inherits the documentation from any documented member that it +# re-implements. + +INHERIT_DOCS = YES + +# If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC +# tag is set to YES, then doxygen will reuse the documentation of the first +# member in the group (if any) for the other members of the group. By default +# all members of a group must be documented explicitly. + +DISTRIBUTE_GROUP_DOC = NO + +# The TAB_SIZE tag can be used to set the number of spaces in a tab. +# Doxygen uses this value to replace tabs by spaces in code fragments. + +TAB_SIZE = 8 + +# This tag can be used to specify a number of aliases that acts +# as commands in the documentation. An alias has the form "name=value". +# For example adding "sideeffect=\par Side Effects:\n" will allow you to +# put the command \sideeffect (or @sideeffect) in the documentation, which +# will result in a user-defined paragraph with heading "Side Effects:". +# You can put \n's in the value part of an alias to insert newlines. + +ALIASES = + +# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C sources +# only. Doxygen will then generate output that is more tailored for C. +# For instance, some of the names that are used will be different. The list +# of all members will be omitted, etc. + +OPTIMIZE_OUTPUT_FOR_C = YES + +# Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java sources +# only. Doxygen will then generate output that is more tailored for Java. +# For instance, namespaces will be presented as packages, qualified scopes +# will look different, etc. + +OPTIMIZE_OUTPUT_JAVA = NO + +# Set the SUBGROUPING tag to YES (the default) to allow class member groups of +# the same type (for instance a group of public functions) to be put as a +# subgroup of that type (e.g. under the Public Functions section). Set it to +# NO to prevent subgrouping. Alternatively, this can be done per class using +# the \nosubgrouping command. + +SUBGROUPING = NO + +#--------------------------------------------------------------------------- +# Build related configuration options +#--------------------------------------------------------------------------- + +# If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in +# documentation are documented, even if no documentation was available. +# Private class members and static file members will be hidden unless +# the EXTRACT_PRIVATE and EXTRACT_STATIC tags are set to YES + +EXTRACT_ALL = YES + +# If the EXTRACT_PRIVATE tag is set to YES all private members of a class +# will be included in the documentation. + +EXTRACT_PRIVATE = NO + +# If the EXTRACT_STATIC tag is set to YES all static members of a file +# will be included in the documentation. + +EXTRACT_STATIC = YES + +# If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs) +# defined locally in source files will be included in the documentation. +# If set to NO only classes defined in header files are included. + +EXTRACT_LOCAL_CLASSES = YES + +# This flag is only useful for Objective-C code. When set to YES local +# methods, which are defined in the implementation section but not in +# the interface are included in the documentation. +# If set to NO (the default) only methods in the interface are included. + +EXTRACT_LOCAL_METHODS = NO + +# If the HIDE_UNDOC_MEMBERS tag is set to YES, Doxygen will hide all +# undocumented members of documented classes, files or namespaces. +# If set to NO (the default) these members will be included in the +# various overviews, but no documentation section is generated. +# This option has no effect if EXTRACT_ALL is enabled. + +HIDE_UNDOC_MEMBERS = NO + +# If the HIDE_UNDOC_CLASSES tag is set to YES, Doxygen will hide all +# undocumented classes that are normally visible in the class hierarchy. +# If set to NO (the default) these classes will be included in the various +# overviews. This option has no effect if EXTRACT_ALL is enabled. + +HIDE_UNDOC_CLASSES = NO + +# If the HIDE_FRIEND_COMPOUNDS tag is set to YES, Doxygen will hide all +# friend (class|struct|union) declarations. +# If set to NO (the default) these declarations will be included in the +# documentation. + +HIDE_FRIEND_COMPOUNDS = NO + +# If the HIDE_IN_BODY_DOCS tag is set to YES, Doxygen will hide any +# documentation blocks found inside the body of a function. +# If set to NO (the default) these blocks will be appended to the +# function's detailed documentation block. + +HIDE_IN_BODY_DOCS = NO + +# The INTERNAL_DOCS tag determines if documentation +# that is typed after a \internal command is included. If the tag is set +# to NO (the default) then the documentation will be excluded. +# Set it to YES to include the internal documentation. + +INTERNAL_DOCS = NO + +# If the CASE_SENSE_NAMES tag is set to NO then Doxygen will only generate +# file names in lower-case letters. If set to YES upper-case letters are also +# allowed. This is useful if you have classes or files whose names only differ +# in case and if your file system supports case sensitive file names. Windows +# and Mac users are advised to set this option to NO. + +CASE_SENSE_NAMES = YES + +# If the HIDE_SCOPE_NAMES tag is set to NO (the default) then Doxygen +# will show members with their full class and namespace scopes in the +# documentation. If set to YES the scope will be hidden. + +HIDE_SCOPE_NAMES = NO + +# If the SHOW_INCLUDE_FILES tag is set to YES (the default) then Doxygen +# will put a list of the files that are included by a file in the documentation +# of that file. + +SHOW_INCLUDE_FILES = YES + +# If the INLINE_INFO tag is set to YES (the default) then a tag [inline] +# is inserted in the documentation for inline members. + +INLINE_INFO = YES + +# If the SORT_MEMBER_DOCS tag is set to YES (the default) then doxygen +# will sort the (detailed) documentation of file and class members +# alphabetically by member name. If set to NO the members will appear in +# declaration order. + +SORT_MEMBER_DOCS = YES + +# If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the +# brief documentation of file, namespace and class members alphabetically +# by member name. If set to NO (the default) the members will appear in +# declaration order. + +SORT_BRIEF_DOCS = NO + +# If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be +# sorted by fully-qualified names, including namespaces. If set to +# NO (the default), the class list will be sorted only by class name, +# not including the namespace part. +# Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES. +# Note: This option applies only to the class list, not to the +# alphabetical list. + +SORT_BY_SCOPE_NAME = NO + +# The GENERATE_TODOLIST tag can be used to enable (YES) or +# disable (NO) the todo list. This list is created by putting \todo +# commands in the documentation. + +GENERATE_TODOLIST = YES + +# The GENERATE_TESTLIST tag can be used to enable (YES) or +# disable (NO) the test list. This list is created by putting \test +# commands in the documentation. + +GENERATE_TESTLIST = YES + +# The GENERATE_BUGLIST tag can be used to enable (YES) or +# disable (NO) the bug list. This list is created by putting \bug +# commands in the documentation. + +GENERATE_BUGLIST = YES + +# The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or +# disable (NO) the deprecated list. This list is created by putting +# \deprecated commands in the documentation. + +GENERATE_DEPRECATEDLIST= YES + +# The ENABLED_SECTIONS tag can be used to enable conditional +# documentation sections, marked by \if sectionname ... \endif. + +ENABLED_SECTIONS = + +# The MAX_INITIALIZER_LINES tag determines the maximum number of lines +# the initial value of a variable or define consists of for it to appear in +# the documentation. If the initializer consists of more lines than specified +# here it will be hidden. Use a value of 0 to hide initializers completely. +# The appearance of the initializer of individual variables and defines in the +# documentation can be controlled using \showinitializer or \hideinitializer +# command in the documentation regardless of this setting. + +MAX_INITIALIZER_LINES = 30 + +# Set the SHOW_USED_FILES tag to NO to disable the list of files generated +# at the bottom of the documentation of classes and structs. If set to YES the +# list will mention the files that were used to generate the documentation. + +SHOW_USED_FILES = YES + +#--------------------------------------------------------------------------- +# configuration options related to warning and progress messages +#--------------------------------------------------------------------------- + +# The QUIET tag can be used to turn on/off the messages that are generated +# by doxygen. Possible values are YES and NO. If left blank NO is used. + +QUIET = NO + +# The WARNINGS tag can be used to turn on/off the warning messages that are +# generated by doxygen. Possible values are YES and NO. If left blank +# NO is used. + +WARNINGS = YES + +# If WARN_IF_UNDOCUMENTED is set to YES, then doxygen will generate warnings +# for undocumented members. If EXTRACT_ALL is set to YES then this flag will +# automatically be disabled. + +WARN_IF_UNDOCUMENTED = YES + +# If WARN_IF_DOC_ERROR is set to YES, doxygen will generate warnings for +# potential errors in the documentation, such as not documenting some +# parameters in a documented function, or documenting parameters that +# don't exist or using markup commands wrongly. + +WARN_IF_DOC_ERROR = YES + +# The WARN_FORMAT tag determines the format of the warning messages that +# doxygen can produce. The string should contain the $file, $line, and $text +# tags, which will be replaced by the file and line number from which the +# warning originated and the warning text. + +WARN_FORMAT = "$file:$line: $text" + +# The WARN_LOGFILE tag can be used to specify a file to which warning +# and error messages should be written. If left blank the output is written +# to stderr. + +WARN_LOGFILE = + +#--------------------------------------------------------------------------- +# configuration options related to the input files +#--------------------------------------------------------------------------- + +# The INPUT tag can be used to specify the files and/or directories that contain +# documented source files. You may enter file names like "myfile.cpp" or +# directories like "/usr/src/myproject". Separate the files or directories +# with spaces. + +INPUT = ./librtas_src + +# If the value of the INPUT tag contains directories, you can use the +# FILE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp +# and *.h) to filter out the source-files in the directories. If left +# blank the following patterns are tested: +# *.c *.cc *.cxx *.cpp *.c++ *.java *.ii *.ixx *.ipp *.i++ *.inl *.h *.hh *.hxx *.hpp +# *.h++ *.idl *.odl *.cs *.php *.php3 *.inc *.m *.mm + +FILE_PATTERNS = + +# The RECURSIVE tag can be used to turn specify whether or not subdirectories +# should be searched for input files as well. Possible values are YES and NO. +# If left blank NO is used. + +RECURSIVE = NO + +# The EXCLUDE tag can be used to specify files and/or directories that should +# excluded from the INPUT source files. This way you can easily exclude a +# subdirectory from a directory tree whose root is specified with the INPUT tag. + +EXCLUDE = + +# The EXCLUDE_SYMLINKS tag can be used select whether or not files or directories +# that are symbolic links (a Unix filesystem feature) are excluded from the input. + +EXCLUDE_SYMLINKS = NO + +# If the value of the INPUT tag contains directories, you can use the +# EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude +# certain files from those directories. + +EXCLUDE_PATTERNS = + +# The EXAMPLE_PATH tag can be used to specify one or more files or +# directories that contain example code fragments that are included (see +# the \include command). + +EXAMPLE_PATH = + +# If the value of the EXAMPLE_PATH tag contains directories, you can use the +# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp +# and *.h) to filter out the source-files in the directories. If left +# blank all files are included. + +EXAMPLE_PATTERNS = + +# If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be +# searched for input files to be used with the \include or \dontinclude +# commands irrespective of the value of the RECURSIVE tag. +# Possible values are YES and NO. If left blank NO is used. + +EXAMPLE_RECURSIVE = NO + +# The IMAGE_PATH tag can be used to specify one or more files or +# directories that contain image that are included in the documentation (see +# the \image command). + +IMAGE_PATH = + +# The INPUT_FILTER tag can be used to specify a program that doxygen should +# invoke to filter for each input file. Doxygen will invoke the filter program +# by executing (via popen()) the command , where +# is the value of the INPUT_FILTER tag, and is the name of an +# input file. Doxygen will then use the output that the filter program writes +# to standard output. If FILTER_PATTERNS is specified, this tag will be +# ignored. + +INPUT_FILTER = + +# The FILTER_PATTERNS tag can be used to specify filters on a per file pattern +# basis. Doxygen will compare the file name with each pattern and apply the +# filter if there is a match. The filters are a list of the form: +# pattern=filter (like *.cpp=my_cpp_filter). See INPUT_FILTER for further +# info on how filters are used. If FILTER_PATTERNS is empty, INPUT_FILTER +# is applied to all files. + +FILTER_PATTERNS = + +# If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using +# INPUT_FILTER) will be used to filter the input files when producing source +# files to browse (i.e. when SOURCE_BROWSER is set to YES). + +FILTER_SOURCE_FILES = NO + +#--------------------------------------------------------------------------- +# configuration options related to source browsing +#--------------------------------------------------------------------------- + +# If the SOURCE_BROWSER tag is set to YES then a list of source files will +# be generated. Documented entities will be cross-referenced with these sources. +# Note: To get rid of all source code in the generated output, make sure also +# VERBATIM_HEADERS is set to NO. + +SOURCE_BROWSER = NO + +# Setting the INLINE_SOURCES tag to YES will include the body +# of functions and classes directly in the documentation. + +INLINE_SOURCES = NO + +# Setting the STRIP_CODE_COMMENTS tag to YES (the default) will instruct +# doxygen to hide any special comment blocks from generated source code +# fragments. Normal C and C++ comments will always remain visible. + +STRIP_CODE_COMMENTS = YES + +# If the REFERENCED_BY_RELATION tag is set to YES (the default) +# then for each documented function all documented +# functions referencing it will be listed. + +REFERENCED_BY_RELATION = YES + +# If the REFERENCES_RELATION tag is set to YES (the default) +# then for each documented function all documented entities +# called/used by that function will be listed. + +REFERENCES_RELATION = YES + +# If the VERBATIM_HEADERS tag is set to YES (the default) then Doxygen +# will generate a verbatim copy of the header file for each class for +# which an include is specified. Set to NO to disable this. + +VERBATIM_HEADERS = YES + +#--------------------------------------------------------------------------- +# configuration options related to the alphabetical class index +#--------------------------------------------------------------------------- + +# If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index +# of all compounds will be generated. Enable this if the project +# contains a lot of classes, structs, unions or interfaces. + +ALPHABETICAL_INDEX = NO + +# If the alphabetical index is enabled (see ALPHABETICAL_INDEX) then +# the COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns +# in which this list will be split (can be a number in the range [1..20]) + +COLS_IN_ALPHA_INDEX = 5 + +# In case all classes in a project start with a common prefix, all +# classes will be put under the same header in the alphabetical index. +# The IGNORE_PREFIX tag can be used to specify one or more prefixes that +# should be ignored while generating the index headers. + +IGNORE_PREFIX = + +#--------------------------------------------------------------------------- +# configuration options related to the HTML output +#--------------------------------------------------------------------------- + +# If the GENERATE_HTML tag is set to YES (the default) Doxygen will +# generate HTML output. + +GENERATE_HTML = YES + +# The HTML_OUTPUT tag is used to specify where the HTML docs will be put. +# If a relative path is entered the value of OUTPUT_DIRECTORY will be +# put in front of it. If left blank `html' will be used as the default path. + +HTML_OUTPUT = html + +# The HTML_FILE_EXTENSION tag can be used to specify the file extension for +# each generated HTML page (for example: .htm,.php,.asp). If it is left blank +# doxygen will generate files with .html extension. + +HTML_FILE_EXTENSION = .html + +# The HTML_HEADER tag can be used to specify a personal HTML header for +# each generated HTML page. If it is left blank doxygen will generate a +# standard header. + +HTML_HEADER = + +# The HTML_FOOTER tag can be used to specify a personal HTML footer for +# each generated HTML page. If it is left blank doxygen will generate a +# standard footer. + +HTML_FOOTER = + +# The HTML_STYLESHEET tag can be used to specify a user-defined cascading +# style sheet that is used by each HTML page. It can be used to +# fine-tune the look of the HTML output. If the tag is left blank doxygen +# will generate a default style sheet. Note that doxygen will try to copy +# the style sheet file to the HTML output directory, so don't put your own +# stylesheet in the HTML output directory as well, or it will be erased! + +HTML_STYLESHEET = + +# If the HTML_ALIGN_MEMBERS tag is set to YES, the members of classes, +# files or namespaces will be aligned in HTML using tables. If set to +# NO a bullet list will be used. + +HTML_ALIGN_MEMBERS = YES + +# If the GENERATE_HTMLHELP tag is set to YES, additional index files +# will be generated that can be used as input for tools like the +# Microsoft HTML help workshop to generate a compressed HTML help file (.chm) +# of the generated HTML documentation. + +GENERATE_HTMLHELP = NO + +# If the GENERATE_HTMLHELP tag is set to YES, the CHM_FILE tag can +# be used to specify the file name of the resulting .chm file. You +# can add a path in front of the file if the result should not be +# written to the html output directory. + +CHM_FILE = + +# If the GENERATE_HTMLHELP tag is set to YES, the HHC_LOCATION tag can +# be used to specify the location (absolute path including file name) of +# the HTML help compiler (hhc.exe). If non-empty doxygen will try to run +# the HTML help compiler on the generated index.hhp. + +HHC_LOCATION = + +# If the GENERATE_HTMLHELP tag is set to YES, the GENERATE_CHI flag +# controls if a separate .chi index file is generated (YES) or that +# it should be included in the master .chm file (NO). + +GENERATE_CHI = NO + +# If the GENERATE_HTMLHELP tag is set to YES, the BINARY_TOC flag +# controls whether a binary table of contents is generated (YES) or a +# normal table of contents (NO) in the .chm file. + +BINARY_TOC = NO + +# The TOC_EXPAND flag can be set to YES to add extra items for group members +# to the contents of the HTML help documentation and to the tree view. + +TOC_EXPAND = NO + +# The DISABLE_INDEX tag can be used to turn on/off the condensed index at +# top of each HTML page. The value NO (the default) enables the index and +# the value YES disables it. + +DISABLE_INDEX = NO + +# This tag can be used to set the number of enum values (range [1..20]) +# that doxygen will group on one line in the generated HTML documentation. + +ENUM_VALUES_PER_LINE = 4 + +# If the GENERATE_TREEVIEW tag is set to YES, a side panel will be +# generated containing a tree-like index structure (just like the one that +# is generated for HTML Help). For this to work a browser that supports +# JavaScript, DHTML, CSS and frames is required (for instance Mozilla 1.0+, +# Netscape 6.0+, Internet explorer 5.0+, or Konqueror). Windows users are +# probably better off using the HTML help feature. + +GENERATE_TREEVIEW = NO + +# If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be +# used to set the initial width (in pixels) of the frame in which the tree +# is shown. + +TREEVIEW_WIDTH = 250 + +#--------------------------------------------------------------------------- +# configuration options related to the LaTeX output +#--------------------------------------------------------------------------- + +# If the GENERATE_LATEX tag is set to YES (the default) Doxygen will +# generate Latex output. + +GENERATE_LATEX = YES + +# The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put. +# If a relative path is entered the value of OUTPUT_DIRECTORY will be +# put in front of it. If left blank `latex' will be used as the default path. + +LATEX_OUTPUT = latex + +# The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be +# invoked. If left blank `latex' will be used as the default command name. + +LATEX_CMD_NAME = latex + +# The MAKEINDEX_CMD_NAME tag can be used to specify the command name to +# generate index for LaTeX. If left blank `makeindex' will be used as the +# default command name. + +MAKEINDEX_CMD_NAME = makeindex + +# If the COMPACT_LATEX tag is set to YES Doxygen generates more compact +# LaTeX documents. This may be useful for small projects and may help to +# save some trees in general. + +COMPACT_LATEX = NO + +# The PAPER_TYPE tag can be used to set the paper type that is used +# by the printer. Possible values are: a4, a4wide, letter, legal and +# executive. If left blank a4wide will be used. + +PAPER_TYPE = a4wide + +# The EXTRA_PACKAGES tag can be to specify one or more names of LaTeX +# packages that should be included in the LaTeX output. + +EXTRA_PACKAGES = + +# The LATEX_HEADER tag can be used to specify a personal LaTeX header for +# the generated latex document. The header should contain everything until +# the first chapter. If it is left blank doxygen will generate a +# standard header. Notice: only use this tag if you know what you are doing! + +LATEX_HEADER = + +# If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated +# is prepared for conversion to pdf (using ps2pdf). The pdf file will +# contain links (just like the HTML output) instead of page references +# This makes the output suitable for online browsing using a pdf viewer. + +PDF_HYPERLINKS = NO + +# If the USE_PDFLATEX tag is set to YES, pdflatex will be used instead of +# plain latex in the generated Makefile. Set this option to YES to get a +# higher quality PDF documentation. + +USE_PDFLATEX = NO + +# If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \\batchmode. +# command to the generated LaTeX files. This will instruct LaTeX to keep +# running if errors occur, instead of asking the user for help. +# This option is also used when generating formulas in HTML. + +LATEX_BATCHMODE = NO + +# If LATEX_HIDE_INDICES is set to YES then doxygen will not +# include the index chapters (such as File Index, Compound Index, etc.) +# in the output. + +LATEX_HIDE_INDICES = NO + +#--------------------------------------------------------------------------- +# configuration options related to the RTF output +#--------------------------------------------------------------------------- + +# If the GENERATE_RTF tag is set to YES Doxygen will generate RTF output +# The RTF output is optimized for Word 97 and may not look very pretty with +# other RTF readers or editors. + +GENERATE_RTF = NO + +# The RTF_OUTPUT tag is used to specify where the RTF docs will be put. +# If a relative path is entered the value of OUTPUT_DIRECTORY will be +# put in front of it. If left blank `rtf' will be used as the default path. + +RTF_OUTPUT = rtf + +# If the COMPACT_RTF tag is set to YES Doxygen generates more compact +# RTF documents. This may be useful for small projects and may help to +# save some trees in general. + +COMPACT_RTF = NO + +# If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated +# will contain hyperlink fields. The RTF file will +# contain links (just like the HTML output) instead of page references. +# This makes the output suitable for online browsing using WORD or other +# programs which support those fields. +# Note: wordpad (write) and others do not support links. + +RTF_HYPERLINKS = NO + +# Load stylesheet definitions from file. Syntax is similar to doxygen's +# config file, i.e. a series of assignments. You only have to provide +# replacements, missing definitions are set to their default value. + +RTF_STYLESHEET_FILE = + +# Set optional variables used in the generation of an rtf document. +# Syntax is similar to doxygen's config file. + +RTF_EXTENSIONS_FILE = + +#--------------------------------------------------------------------------- +# configuration options related to the man page output +#--------------------------------------------------------------------------- + +# If the GENERATE_MAN tag is set to YES (the default) Doxygen will +# generate man pages + +GENERATE_MAN = NO + +# The MAN_OUTPUT tag is used to specify where the man pages will be put. +# If a relative path is entered the value of OUTPUT_DIRECTORY will be +# put in front of it. If left blank `man' will be used as the default path. + +MAN_OUTPUT = man + +# The MAN_EXTENSION tag determines the extension that is added to +# the generated man pages (default is the subroutine's section .3) + +MAN_EXTENSION = .3 + +# If the MAN_LINKS tag is set to YES and Doxygen generates man output, +# then it will generate one additional man file for each entity +# documented in the real man page(s). These additional files +# only source the real man page, but without them the man command +# would be unable to find the correct page. The default is NO. + +MAN_LINKS = NO + +#--------------------------------------------------------------------------- +# configuration options related to the XML output +#--------------------------------------------------------------------------- + +# If the GENERATE_XML tag is set to YES Doxygen will +# generate an XML file that captures the structure of +# the code including all documentation. + +GENERATE_XML = NO + +# The XML_OUTPUT tag is used to specify where the XML pages will be put. +# If a relative path is entered the value of OUTPUT_DIRECTORY will be +# put in front of it. If left blank `xml' will be used as the default path. + +XML_OUTPUT = xml + +# The XML_SCHEMA tag can be used to specify an XML schema, +# which can be used by a validating XML parser to check the +# syntax of the XML files. + +XML_SCHEMA = + +# The XML_DTD tag can be used to specify an XML DTD, +# which can be used by a validating XML parser to check the +# syntax of the XML files. + +XML_DTD = + +# If the XML_PROGRAMLISTING tag is set to YES Doxygen will +# dump the program listings (including syntax highlighting +# and cross-referencing information) to the XML output. Note that +# enabling this will significantly increase the size of the XML output. + +XML_PROGRAMLISTING = YES + +#--------------------------------------------------------------------------- +# configuration options for the AutoGen Definitions output +#--------------------------------------------------------------------------- + +# If the GENERATE_AUTOGEN_DEF tag is set to YES Doxygen will +# generate an AutoGen Definitions (see autogen.sf.net) file +# that captures the structure of the code including all +# documentation. Note that this feature is still experimental +# and incomplete at the moment. + +GENERATE_AUTOGEN_DEF = NO + +#--------------------------------------------------------------------------- +# configuration options related to the Perl module output +#--------------------------------------------------------------------------- + +# If the GENERATE_PERLMOD tag is set to YES Doxygen will +# generate a Perl module file that captures the structure of +# the code including all documentation. Note that this +# feature is still experimental and incomplete at the +# moment. + +GENERATE_PERLMOD = NO + +# If the PERLMOD_LATEX tag is set to YES Doxygen will generate +# the necessary Makefile rules, Perl scripts and LaTeX code to be able +# to generate PDF and DVI output from the Perl module output. + +PERLMOD_LATEX = NO + +# If the PERLMOD_PRETTY tag is set to YES the Perl module output will be +# nicely formatted so it can be parsed by a human reader. This is useful +# if you want to understand what is going on. On the other hand, if this +# tag is set to NO the size of the Perl module output will be much smaller +# and Perl will parse it just the same. + +PERLMOD_PRETTY = YES + +# The names of the make variables in the generated doxyrules.make file +# are prefixed with the string contained in PERLMOD_MAKEVAR_PREFIX. +# This is useful so different doxyrules.make files included by the same +# Makefile don't overwrite each other's variables. + +PERLMOD_MAKEVAR_PREFIX = + +#--------------------------------------------------------------------------- +# Configuration options related to the preprocessor +#--------------------------------------------------------------------------- + +# If the ENABLE_PREPROCESSING tag is set to YES (the default) Doxygen will +# evaluate all C-preprocessor directives found in the sources and include +# files. + +ENABLE_PREPROCESSING = YES + +# If the MACRO_EXPANSION tag is set to YES Doxygen will expand all macro +# names in the source code. If set to NO (the default) only conditional +# compilation will be performed. Macro expansion can be done in a controlled +# way by setting EXPAND_ONLY_PREDEF to YES. + +MACRO_EXPANSION = NO + +# If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES +# then the macro expansion is limited to the macros specified with the +# PREDEFINED and EXPAND_AS_PREDEFINED tags. + +EXPAND_ONLY_PREDEF = NO + +# If the SEARCH_INCLUDES tag is set to YES (the default) the includes files +# in the INCLUDE_PATH (see below) will be search if a #include is found. + +SEARCH_INCLUDES = YES + +# The INCLUDE_PATH tag can be used to specify one or more directories that +# contain include files that are not input files but should be processed by +# the preprocessor. + +INCLUDE_PATH = + +# You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard +# patterns (like *.h and *.hpp) to filter out the header-files in the +# directories. If left blank, the patterns specified with FILE_PATTERNS will +# be used. + +INCLUDE_FILE_PATTERNS = + +# The PREDEFINED tag can be used to specify one or more macro names that +# are defined before the preprocessor is started (similar to the -D option of +# gcc). The argument of the tag is a list of macros of the form: name +# or name=definition (no spaces). If the definition and the = are +# omitted =1 is assumed. + +PREDEFINED = + +# If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then +# this tag can be used to specify a list of macro names that should be expanded. +# The macro definition that is found in the sources will be used. +# Use the PREDEFINED tag if you want to use a different macro definition. + +EXPAND_AS_DEFINED = + +# If the SKIP_FUNCTION_MACROS tag is set to YES (the default) then +# doxygen's preprocessor will remove all function-like macros that are alone +# on a line, have an all uppercase name, and do not end with a semicolon. Such +# function macros are typically used for boiler-plate code, and will confuse the +# parser if not removed. + +SKIP_FUNCTION_MACROS = YES + +#--------------------------------------------------------------------------- +# Configuration::additions related to external references +#--------------------------------------------------------------------------- + +# The TAGFILES option can be used to specify one or more tagfiles. +# Optionally an initial location of the external documentation +# can be added for each tagfile. The format of a tag file without +# this location is as follows: +# TAGFILES = file1 file2 ... +# Adding location for the tag files is done as follows: +# TAGFILES = file1=loc1 "file2 = loc2" ... +# where "loc1" and "loc2" can be relative or absolute paths or +# URLs. If a location is present for each tag, the installdox tool +# does not have to be run to correct the links. +# Note that each tag file must have a unique name +# (where the name does NOT include the path) +# If a tag file is not located in the directory in which doxygen +# is run, you must also specify the path to the tagfile here. + +TAGFILES = + +# When a file name is specified after GENERATE_TAGFILE, doxygen will create +# a tag file that is based on the input files it reads. + +GENERATE_TAGFILE = + +# If the ALLEXTERNALS tag is set to YES all external classes will be listed +# in the class index. If set to NO only the inherited external classes +# will be listed. + +ALLEXTERNALS = NO + +# If the EXTERNAL_GROUPS tag is set to YES all external groups will be listed +# in the modules index. If set to NO, only the current project's groups will +# be listed. + +EXTERNAL_GROUPS = YES + +# The PERL_PATH should be the absolute path and name of the perl script +# interpreter (i.e. the result of `which perl'). + +PERL_PATH = /usr/bin/perl + +#--------------------------------------------------------------------------- +# Configuration options related to the dot tool +#--------------------------------------------------------------------------- + +# If the CLASS_DIAGRAMS tag is set to YES (the default) Doxygen will +# generate a inheritance diagram (in HTML, RTF and LaTeX) for classes with base or +# super classes. Setting the tag to NO turns the diagrams off. Note that this +# option is superseded by the HAVE_DOT option below. This is only a fallback. It is +# recommended to install and use dot, since it yields more powerful graphs. + +CLASS_DIAGRAMS = YES + +# If set to YES, the inheritance and collaboration graphs will hide +# inheritance and usage relations if the target is undocumented +# or is not a class. + +HIDE_UNDOC_RELATIONS = YES + +# If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is +# available from the path. This tool is part of Graphviz, a graph visualization +# toolkit from AT&T and Lucent Bell Labs. The other options in this section +# have no effect if this option is set to NO (the default) + +HAVE_DOT = NO + +# If the CLASS_GRAPH and HAVE_DOT tags are set to YES then doxygen +# will generate a graph for each documented class showing the direct and +# indirect inheritance relations. Setting this tag to YES will force the +# the CLASS_DIAGRAMS tag to NO. + +CLASS_GRAPH = YES + +# If the COLLABORATION_GRAPH and HAVE_DOT tags are set to YES then doxygen +# will generate a graph for each documented class showing the direct and +# indirect implementation dependencies (inheritance, containment, and +# class references variables) of the class with other documented classes. + +COLLABORATION_GRAPH = YES + +# If the UML_LOOK tag is set to YES doxygen will generate inheritance and +# collaboration diagrams in a style similar to the OMG's Unified Modeling +# Language. + +UML_LOOK = NO + +# If set to YES, the inheritance and collaboration graphs will show the +# relations between templates and their instances. + +TEMPLATE_RELATIONS = NO + +# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDE_GRAPH, and HAVE_DOT +# tags are set to YES then doxygen will generate a graph for each documented +# file showing the direct and indirect include dependencies of the file with +# other documented files. + +INCLUDE_GRAPH = YES + +# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDED_BY_GRAPH, and +# HAVE_DOT tags are set to YES then doxygen will generate a graph for each +# documented header file showing the documented files that directly or +# indirectly include this file. + +INCLUDED_BY_GRAPH = YES + +# If the CALL_GRAPH and HAVE_DOT tags are set to YES then doxygen will +# generate a call dependency graph for every global function or class method. +# Note that enabling this option will significantly increase the time of a run. +# So in most cases it will be better to enable call graphs for selected +# functions only using the \callgraph command. + +CALL_GRAPH = NO + +# If the GRAPHICAL_HIERARCHY and HAVE_DOT tags are set to YES then doxygen +# will graphical hierarchy of all classes instead of a textual one. + +GRAPHICAL_HIERARCHY = YES + +# The DOT_IMAGE_FORMAT tag can be used to set the image format of the images +# generated by dot. Possible values are png, jpg, or gif +# If left blank png will be used. + +DOT_IMAGE_FORMAT = png + +# The tag DOT_PATH can be used to specify the path where the dot tool can be +# found. If left blank, it is assumed the dot tool can be found on the path. + +DOT_PATH = + +# The DOTFILE_DIRS tag can be used to specify one or more directories that +# contain dot files that are included in the documentation (see the +# \dotfile command). + +DOTFILE_DIRS = + +# The MAX_DOT_GRAPH_WIDTH tag can be used to set the maximum allowed width +# (in pixels) of the graphs generated by dot. If a graph becomes larger than +# this value, doxygen will try to truncate the graph, so that it fits within +# the specified constraint. Beware that most browsers cannot cope with very +# large images. + +MAX_DOT_GRAPH_WIDTH = 1024 + +# The MAX_DOT_GRAPH_HEIGHT tag can be used to set the maximum allows height +# (in pixels) of the graphs generated by dot. If a graph becomes larger than +# this value, doxygen will try to truncate the graph, so that it fits within +# the specified constraint. Beware that most browsers cannot cope with very +# large images. + +MAX_DOT_GRAPH_HEIGHT = 1024 + +# The MAX_DOT_GRAPH_DEPTH tag can be used to set the maximum depth of the +# graphs generated by dot. A depth value of 3 means that only nodes reachable +# from the root by following a path via at most 3 edges will be shown. Nodes that +# lay further from the root node will be omitted. Note that setting this option to +# 1 or 2 may greatly reduce the computation time needed for large code bases. Also +# note that a graph may be further truncated if the graph's image dimensions are +# not sufficient to fit the graph (see MAX_DOT_GRAPH_WIDTH and MAX_DOT_GRAPH_HEIGHT). +# If 0 is used for the depth value (the default), the graph is not depth-constrained. + +MAX_DOT_GRAPH_DEPTH = 0 + +# If the GENERATE_LEGEND tag is set to YES (the default) Doxygen will +# generate a legend page explaining the meaning of the various boxes and +# arrows in the dot generated graphs. + +GENERATE_LEGEND = YES + +# If the DOT_CLEANUP tag is set to YES (the default) Doxygen will +# remove the intermediate dot files that are used to generate +# the various graphs. + +DOT_CLEANUP = YES + +#--------------------------------------------------------------------------- +# Configuration::additions related to the search engine +#--------------------------------------------------------------------------- + +# The SEARCHENGINE tag specifies whether or not a search engine should be +# used. If set to NO the values of all tags below this one will be ignored. + +SEARCHENGINE = NO + diff -Nru librtas-1.3.13/doc/doxygen.rtasevent librtas-2.0.0/doc/doxygen.rtasevent --- librtas-1.3.13/doc/doxygen.rtasevent 1970-01-01 00:00:00.000000000 +0000 +++ librtas-2.0.0/doc/doxygen.rtasevent 2016-04-06 03:03:56.000000000 +0000 @@ -0,0 +1,1154 @@ +# Doxyfile 1.3.8 + +# This file describes the settings to be used by the documentation system +# doxygen (www.doxygen.org) for a project +# +# All text after a hash (#) is considered a comment and will be ignored +# The format is: +# TAG = value [value, ...] +# For lists items can also be appended using: +# TAG += value [value, ...] +# Values that contain spaces should be placed between quotes (" ") + +#--------------------------------------------------------------------------- +# Project related configuration options +#--------------------------------------------------------------------------- + +# The PROJECT_NAME tag is a single word (or a sequence of words surrounded +# by quotes) that should identify the project. + +PROJECT_NAME = librtasevent + +# The PROJECT_NUMBER tag can be used to enter a project or revision number. +# This could be handy for archiving the generated documentation or +# if some version control system is used. + +PROJECT_NUMBER = + +# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) +# base path where the generated documentation will be put. +# If a relative path is entered, it will be relative to the location +# where doxygen was started. If left blank the current directory will be used. + +OUTPUT_DIRECTORY = doc/librtasevent + +# If the CREATE_SUBDIRS tag is set to YES, then doxygen will create +# 4096 sub-directories (in 2 levels) under the output directory of each output +# format and will distribute the generated files over these directories. +# Enabling this option can be useful when feeding doxygen a huge amount of source +# files, where putting all generated files in the same directory would otherwise +# cause performance problems for the file system. + +CREATE_SUBDIRS = NO + +# The OUTPUT_LANGUAGE tag is used to specify the language in which all +# documentation generated by doxygen is written. Doxygen will use this +# information to generate all constant output in the proper language. +# The default language is English, other supported languages are: +# Brazilian, Catalan, Chinese, Chinese-Traditional, Croatian, Czech, Danish, +# Dutch, Finnish, French, German, Greek, Hungarian, Italian, Japanese, +# Japanese-en (Japanese with English messages), Korean, Korean-en, Norwegian, +# Polish, Portuguese, Romanian, Russian, Serbian, Slovak, Slovene, Spanish, +# Swedish, and Ukrainian. + +OUTPUT_LANGUAGE = English + +# This tag can be used to specify the encoding used in the generated output. +# The encoding is not always determined by the language that is chosen, +# but also whether or not the output is meant for Windows or non-Windows users. +# In case there is a difference, setting the USE_WINDOWS_ENCODING tag to YES +# forces the Windows encoding (this is the default for the Windows binary), +# whereas setting the tag to NO uses a Unix-style encoding (the default for +# all platforms other than Windows). + +USE_WINDOWS_ENCODING = NO + +# If the BRIEF_MEMBER_DESC tag is set to YES (the default) Doxygen will +# include brief member descriptions after the members that are listed in +# the file and class documentation (similar to JavaDoc). +# Set to NO to disable this. + +BRIEF_MEMBER_DESC = YES + +# If the REPEAT_BRIEF tag is set to YES (the default) Doxygen will prepend +# the brief description of a member or function before the detailed description. +# Note: if both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the +# brief descriptions will be completely suppressed. + +REPEAT_BRIEF = NO + +# This tag implements a quasi-intelligent brief description abbreviator +# that is used to form the text in various listings. Each string +# in this list, if found as the leading text of the brief description, will be +# stripped from the text and the result after processing the whole list, is used +# as the annotated text. Otherwise, the brief description is used as-is. If left +# blank, the following values are used ("$name" is automatically replaced with the +# name of the entity): "The $name class" "The $name widget" "The $name file" +# "is" "provides" "specifies" "contains" "represents" "a" "an" "the" + +ABBREVIATE_BRIEF = + +# If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then +# Doxygen will generate a detailed section even if there is only a brief +# description. + +ALWAYS_DETAILED_SEC = NO + +# If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all inherited +# members of a class in the documentation of that class as if those members were +# ordinary class members. Constructors, destructors and assignment operators of +# the base classes will not be shown. + +INLINE_INHERITED_MEMB = NO + +# If the FULL_PATH_NAMES tag is set to YES then Doxygen will prepend the full +# path before files name in the file list and in the header files. If set +# to NO the shortest path that makes the file name unique will be used. + +FULL_PATH_NAMES = YES + +# If the FULL_PATH_NAMES tag is set to YES then the STRIP_FROM_PATH tag +# can be used to strip a user-defined part of the path. Stripping is +# only done if one of the specified strings matches the left-hand part of +# the path. The tag can be used to show relative paths in the file list. +# If left blank the directory from which doxygen is run is used as the +# path to strip. + +STRIP_FROM_PATH = + +# The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of +# the path mentioned in the documentation of a class, which tells +# the reader which header file to include in order to use a class. +# If left blank only the name of the header file containing the class +# definition is used. Otherwise one should specify the include paths that +# are normally passed to the compiler using the -I flag. + +STRIP_FROM_INC_PATH = + +# If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter +# (but less readable) file names. This can be useful is your file systems +# doesn't support long names like on DOS, Mac, or CD-ROM. + +SHORT_NAMES = NO + +# If the JAVADOC_AUTOBRIEF tag is set to YES then Doxygen +# will interpret the first line (until the first dot) of a JavaDoc-style +# comment as the brief description. If set to NO, the JavaDoc +# comments will behave just like the Qt-style comments (thus requiring an +# explicit @brief command for a brief description. + +JAVADOC_AUTOBRIEF = NO + +# The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make Doxygen +# treat a multi-line C++ special comment block (i.e. a block of //! or /// +# comments) as a brief description. This used to be the default behaviour. +# The new default is to treat a multi-line C++ comment block as a detailed +# description. Set this tag to YES if you prefer the old behaviour instead. + +MULTILINE_CPP_IS_BRIEF = NO + +# If the DETAILS_AT_TOP tag is set to YES then Doxygen +# will output the detailed description near the top, like JavaDoc. +# If set to NO, the detailed description appears after the member +# documentation. + +DETAILS_AT_TOP = NO + +# If the INHERIT_DOCS tag is set to YES (the default) then an undocumented +# member inherits the documentation from any documented member that it +# re-implements. + +INHERIT_DOCS = YES + +# If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC +# tag is set to YES, then doxygen will reuse the documentation of the first +# member in the group (if any) for the other members of the group. By default +# all members of a group must be documented explicitly. + +DISTRIBUTE_GROUP_DOC = NO + +# The TAB_SIZE tag can be used to set the number of spaces in a tab. +# Doxygen uses this value to replace tabs by spaces in code fragments. + +TAB_SIZE = 8 + +# This tag can be used to specify a number of aliases that acts +# as commands in the documentation. An alias has the form "name=value". +# For example adding "sideeffect=\par Side Effects:\n" will allow you to +# put the command \sideeffect (or @sideeffect) in the documentation, which +# will result in a user-defined paragraph with heading "Side Effects:". +# You can put \n's in the value part of an alias to insert newlines. + +ALIASES = + +# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C sources +# only. Doxygen will then generate output that is more tailored for C. +# For instance, some of the names that are used will be different. The list +# of all members will be omitted, etc. + +OPTIMIZE_OUTPUT_FOR_C = YES + +# Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java sources +# only. Doxygen will then generate output that is more tailored for Java. +# For instance, namespaces will be presented as packages, qualified scopes +# will look different, etc. + +OPTIMIZE_OUTPUT_JAVA = NO + +# Set the SUBGROUPING tag to YES (the default) to allow class member groups of +# the same type (for instance a group of public functions) to be put as a +# subgroup of that type (e.g. under the Public Functions section). Set it to +# NO to prevent subgrouping. Alternatively, this can be done per class using +# the \nosubgrouping command. + +SUBGROUPING = NO + +#--------------------------------------------------------------------------- +# Build related configuration options +#--------------------------------------------------------------------------- + +# If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in +# documentation are documented, even if no documentation was available. +# Private class members and static file members will be hidden unless +# the EXTRACT_PRIVATE and EXTRACT_STATIC tags are set to YES + +EXTRACT_ALL = YES + +# If the EXTRACT_PRIVATE tag is set to YES all private members of a class +# will be included in the documentation. + +EXTRACT_PRIVATE = NO + +# If the EXTRACT_STATIC tag is set to YES all static members of a file +# will be included in the documentation. + +EXTRACT_STATIC = YES + +# If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs) +# defined locally in source files will be included in the documentation. +# If set to NO only classes defined in header files are included. + +EXTRACT_LOCAL_CLASSES = YES + +# This flag is only useful for Objective-C code. When set to YES local +# methods, which are defined in the implementation section but not in +# the interface are included in the documentation. +# If set to NO (the default) only methods in the interface are included. + +EXTRACT_LOCAL_METHODS = NO + +# If the HIDE_UNDOC_MEMBERS tag is set to YES, Doxygen will hide all +# undocumented members of documented classes, files or namespaces. +# If set to NO (the default) these members will be included in the +# various overviews, but no documentation section is generated. +# This option has no effect if EXTRACT_ALL is enabled. + +HIDE_UNDOC_MEMBERS = NO + +# If the HIDE_UNDOC_CLASSES tag is set to YES, Doxygen will hide all +# undocumented classes that are normally visible in the class hierarchy. +# If set to NO (the default) these classes will be included in the various +# overviews. This option has no effect if EXTRACT_ALL is enabled. + +HIDE_UNDOC_CLASSES = NO + +# If the HIDE_FRIEND_COMPOUNDS tag is set to YES, Doxygen will hide all +# friend (class|struct|union) declarations. +# If set to NO (the default) these declarations will be included in the +# documentation. + +HIDE_FRIEND_COMPOUNDS = NO + +# If the HIDE_IN_BODY_DOCS tag is set to YES, Doxygen will hide any +# documentation blocks found inside the body of a function. +# If set to NO (the default) these blocks will be appended to the +# function's detailed documentation block. + +HIDE_IN_BODY_DOCS = NO + +# The INTERNAL_DOCS tag determines if documentation +# that is typed after a \internal command is included. If the tag is set +# to NO (the default) then the documentation will be excluded. +# Set it to YES to include the internal documentation. + +INTERNAL_DOCS = NO + +# If the CASE_SENSE_NAMES tag is set to NO then Doxygen will only generate +# file names in lower-case letters. If set to YES upper-case letters are also +# allowed. This is useful if you have classes or files whose names only differ +# in case and if your file system supports case sensitive file names. Windows +# and Mac users are advised to set this option to NO. + +CASE_SENSE_NAMES = YES + +# If the HIDE_SCOPE_NAMES tag is set to NO (the default) then Doxygen +# will show members with their full class and namespace scopes in the +# documentation. If set to YES the scope will be hidden. + +HIDE_SCOPE_NAMES = NO + +# If the SHOW_INCLUDE_FILES tag is set to YES (the default) then Doxygen +# will put a list of the files that are included by a file in the documentation +# of that file. + +SHOW_INCLUDE_FILES = YES + +# If the INLINE_INFO tag is set to YES (the default) then a tag [inline] +# is inserted in the documentation for inline members. + +INLINE_INFO = YES + +# If the SORT_MEMBER_DOCS tag is set to YES (the default) then doxygen +# will sort the (detailed) documentation of file and class members +# alphabetically by member name. If set to NO the members will appear in +# declaration order. + +SORT_MEMBER_DOCS = YES + +# If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the +# brief documentation of file, namespace and class members alphabetically +# by member name. If set to NO (the default) the members will appear in +# declaration order. + +SORT_BRIEF_DOCS = NO + +# If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be +# sorted by fully-qualified names, including namespaces. If set to +# NO (the default), the class list will be sorted only by class name, +# not including the namespace part. +# Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES. +# Note: This option applies only to the class list, not to the +# alphabetical list. + +SORT_BY_SCOPE_NAME = NO + +# The GENERATE_TODOLIST tag can be used to enable (YES) or +# disable (NO) the todo list. This list is created by putting \todo +# commands in the documentation. + +GENERATE_TODOLIST = YES + +# The GENERATE_TESTLIST tag can be used to enable (YES) or +# disable (NO) the test list. This list is created by putting \test +# commands in the documentation. + +GENERATE_TESTLIST = YES + +# The GENERATE_BUGLIST tag can be used to enable (YES) or +# disable (NO) the bug list. This list is created by putting \bug +# commands in the documentation. + +GENERATE_BUGLIST = YES + +# The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or +# disable (NO) the deprecated list. This list is created by putting +# \deprecated commands in the documentation. + +GENERATE_DEPRECATEDLIST= YES + +# The ENABLED_SECTIONS tag can be used to enable conditional +# documentation sections, marked by \if sectionname ... \endif. + +ENABLED_SECTIONS = + +# The MAX_INITIALIZER_LINES tag determines the maximum number of lines +# the initial value of a variable or define consists of for it to appear in +# the documentation. If the initializer consists of more lines than specified +# here it will be hidden. Use a value of 0 to hide initializers completely. +# The appearance of the initializer of individual variables and defines in the +# documentation can be controlled using \showinitializer or \hideinitializer +# command in the documentation regardless of this setting. + +MAX_INITIALIZER_LINES = 30 + +# Set the SHOW_USED_FILES tag to NO to disable the list of files generated +# at the bottom of the documentation of classes and structs. If set to YES the +# list will mention the files that were used to generate the documentation. + +SHOW_USED_FILES = YES + +#--------------------------------------------------------------------------- +# configuration options related to warning and progress messages +#--------------------------------------------------------------------------- + +# The QUIET tag can be used to turn on/off the messages that are generated +# by doxygen. Possible values are YES and NO. If left blank NO is used. + +QUIET = NO + +# The WARNINGS tag can be used to turn on/off the warning messages that are +# generated by doxygen. Possible values are YES and NO. If left blank +# NO is used. + +WARNINGS = YES + +# If WARN_IF_UNDOCUMENTED is set to YES, then doxygen will generate warnings +# for undocumented members. If EXTRACT_ALL is set to YES then this flag will +# automatically be disabled. + +WARN_IF_UNDOCUMENTED = YES + +# If WARN_IF_DOC_ERROR is set to YES, doxygen will generate warnings for +# potential errors in the documentation, such as not documenting some +# parameters in a documented function, or documenting parameters that +# don't exist or using markup commands wrongly. + +WARN_IF_DOC_ERROR = YES + +# The WARN_FORMAT tag determines the format of the warning messages that +# doxygen can produce. The string should contain the $file, $line, and $text +# tags, which will be replaced by the file and line number from which the +# warning originated and the warning text. + +WARN_FORMAT = "$file:$line: $text" + +# The WARN_LOGFILE tag can be used to specify a file to which warning +# and error messages should be written. If left blank the output is written +# to stderr. + +WARN_LOGFILE = + +#--------------------------------------------------------------------------- +# configuration options related to the input files +#--------------------------------------------------------------------------- + +# The INPUT tag can be used to specify the files and/or directories that contain +# documented source files. You may enter file names like "myfile.cpp" or +# directories like "/usr/src/myproject". Separate the files or directories +# with spaces. + +INPUT = ./librtasevent_src + +# If the value of the INPUT tag contains directories, you can use the +# FILE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp +# and *.h) to filter out the source-files in the directories. If left +# blank the following patterns are tested: +# *.c *.cc *.cxx *.cpp *.c++ *.java *.ii *.ixx *.ipp *.i++ *.inl *.h *.hh *.hxx *.hpp +# *.h++ *.idl *.odl *.cs *.php *.php3 *.inc *.m *.mm + +FILE_PATTERNS = + +# The RECURSIVE tag can be used to turn specify whether or not subdirectories +# should be searched for input files as well. Possible values are YES and NO. +# If left blank NO is used. + +RECURSIVE = NO + +# The EXCLUDE tag can be used to specify files and/or directories that should +# excluded from the INPUT source files. This way you can easily exclude a +# subdirectory from a directory tree whose root is specified with the INPUT tag. + +EXCLUDE = + +# The EXCLUDE_SYMLINKS tag can be used select whether or not files or directories +# that are symbolic links (a Unix filesystem feature) are excluded from the input. + +EXCLUDE_SYMLINKS = NO + +# If the value of the INPUT tag contains directories, you can use the +# EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude +# certain files from those directories. + +EXCLUDE_PATTERNS = + +# The EXAMPLE_PATH tag can be used to specify one or more files or +# directories that contain example code fragments that are included (see +# the \include command). + +EXAMPLE_PATH = + +# If the value of the EXAMPLE_PATH tag contains directories, you can use the +# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp +# and *.h) to filter out the source-files in the directories. If left +# blank all files are included. + +EXAMPLE_PATTERNS = + +# If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be +# searched for input files to be used with the \include or \dontinclude +# commands irrespective of the value of the RECURSIVE tag. +# Possible values are YES and NO. If left blank NO is used. + +EXAMPLE_RECURSIVE = NO + +# The IMAGE_PATH tag can be used to specify one or more files or +# directories that contain image that are included in the documentation (see +# the \image command). + +IMAGE_PATH = + +# The INPUT_FILTER tag can be used to specify a program that doxygen should +# invoke to filter for each input file. Doxygen will invoke the filter program +# by executing (via popen()) the command , where +# is the value of the INPUT_FILTER tag, and is the name of an +# input file. Doxygen will then use the output that the filter program writes +# to standard output. If FILTER_PATTERNS is specified, this tag will be +# ignored. + +INPUT_FILTER = + +# The FILTER_PATTERNS tag can be used to specify filters on a per file pattern +# basis. Doxygen will compare the file name with each pattern and apply the +# filter if there is a match. The filters are a list of the form: +# pattern=filter (like *.cpp=my_cpp_filter). See INPUT_FILTER for further +# info on how filters are used. If FILTER_PATTERNS is empty, INPUT_FILTER +# is applied to all files. + +FILTER_PATTERNS = + +# If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using +# INPUT_FILTER) will be used to filter the input files when producing source +# files to browse (i.e. when SOURCE_BROWSER is set to YES). + +FILTER_SOURCE_FILES = NO + +#--------------------------------------------------------------------------- +# configuration options related to source browsing +#--------------------------------------------------------------------------- + +# If the SOURCE_BROWSER tag is set to YES then a list of source files will +# be generated. Documented entities will be cross-referenced with these sources. +# Note: To get rid of all source code in the generated output, make sure also +# VERBATIM_HEADERS is set to NO. + +SOURCE_BROWSER = NO + +# Setting the INLINE_SOURCES tag to YES will include the body +# of functions and classes directly in the documentation. + +INLINE_SOURCES = NO + +# Setting the STRIP_CODE_COMMENTS tag to YES (the default) will instruct +# doxygen to hide any special comment blocks from generated source code +# fragments. Normal C and C++ comments will always remain visible. + +STRIP_CODE_COMMENTS = YES + +# If the REFERENCED_BY_RELATION tag is set to YES (the default) +# then for each documented function all documented +# functions referencing it will be listed. + +REFERENCED_BY_RELATION = YES + +# If the REFERENCES_RELATION tag is set to YES (the default) +# then for each documented function all documented entities +# called/used by that function will be listed. + +REFERENCES_RELATION = YES + +# If the VERBATIM_HEADERS tag is set to YES (the default) then Doxygen +# will generate a verbatim copy of the header file for each class for +# which an include is specified. Set to NO to disable this. + +VERBATIM_HEADERS = YES + +#--------------------------------------------------------------------------- +# configuration options related to the alphabetical class index +#--------------------------------------------------------------------------- + +# If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index +# of all compounds will be generated. Enable this if the project +# contains a lot of classes, structs, unions or interfaces. + +ALPHABETICAL_INDEX = NO + +# If the alphabetical index is enabled (see ALPHABETICAL_INDEX) then +# the COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns +# in which this list will be split (can be a number in the range [1..20]) + +COLS_IN_ALPHA_INDEX = 5 + +# In case all classes in a project start with a common prefix, all +# classes will be put under the same header in the alphabetical index. +# The IGNORE_PREFIX tag can be used to specify one or more prefixes that +# should be ignored while generating the index headers. + +IGNORE_PREFIX = + +#--------------------------------------------------------------------------- +# configuration options related to the HTML output +#--------------------------------------------------------------------------- + +# If the GENERATE_HTML tag is set to YES (the default) Doxygen will +# generate HTML output. + +GENERATE_HTML = YES + +# The HTML_OUTPUT tag is used to specify where the HTML docs will be put. +# If a relative path is entered the value of OUTPUT_DIRECTORY will be +# put in front of it. If left blank `html' will be used as the default path. + +HTML_OUTPUT = html + +# The HTML_FILE_EXTENSION tag can be used to specify the file extension for +# each generated HTML page (for example: .htm,.php,.asp). If it is left blank +# doxygen will generate files with .html extension. + +HTML_FILE_EXTENSION = .html + +# The HTML_HEADER tag can be used to specify a personal HTML header for +# each generated HTML page. If it is left blank doxygen will generate a +# standard header. + +HTML_HEADER = + +# The HTML_FOOTER tag can be used to specify a personal HTML footer for +# each generated HTML page. If it is left blank doxygen will generate a +# standard footer. + +HTML_FOOTER = + +# The HTML_STYLESHEET tag can be used to specify a user-defined cascading +# style sheet that is used by each HTML page. It can be used to +# fine-tune the look of the HTML output. If the tag is left blank doxygen +# will generate a default style sheet. Note that doxygen will try to copy +# the style sheet file to the HTML output directory, so don't put your own +# stylesheet in the HTML output directory as well, or it will be erased! + +HTML_STYLESHEET = + +# If the HTML_ALIGN_MEMBERS tag is set to YES, the members of classes, +# files or namespaces will be aligned in HTML using tables. If set to +# NO a bullet list will be used. + +HTML_ALIGN_MEMBERS = YES + +# If the GENERATE_HTMLHELP tag is set to YES, additional index files +# will be generated that can be used as input for tools like the +# Microsoft HTML help workshop to generate a compressed HTML help file (.chm) +# of the generated HTML documentation. + +GENERATE_HTMLHELP = NO + +# If the GENERATE_HTMLHELP tag is set to YES, the CHM_FILE tag can +# be used to specify the file name of the resulting .chm file. You +# can add a path in front of the file if the result should not be +# written to the html output directory. + +CHM_FILE = + +# If the GENERATE_HTMLHELP tag is set to YES, the HHC_LOCATION tag can +# be used to specify the location (absolute path including file name) of +# the HTML help compiler (hhc.exe). If non-empty doxygen will try to run +# the HTML help compiler on the generated index.hhp. + +HHC_LOCATION = + +# If the GENERATE_HTMLHELP tag is set to YES, the GENERATE_CHI flag +# controls if a separate .chi index file is generated (YES) or that +# it should be included in the master .chm file (NO). + +GENERATE_CHI = NO + +# If the GENERATE_HTMLHELP tag is set to YES, the BINARY_TOC flag +# controls whether a binary table of contents is generated (YES) or a +# normal table of contents (NO) in the .chm file. + +BINARY_TOC = NO + +# The TOC_EXPAND flag can be set to YES to add extra items for group members +# to the contents of the HTML help documentation and to the tree view. + +TOC_EXPAND = NO + +# The DISABLE_INDEX tag can be used to turn on/off the condensed index at +# top of each HTML page. The value NO (the default) enables the index and +# the value YES disables it. + +DISABLE_INDEX = NO + +# This tag can be used to set the number of enum values (range [1..20]) +# that doxygen will group on one line in the generated HTML documentation. + +ENUM_VALUES_PER_LINE = 4 + +# If the GENERATE_TREEVIEW tag is set to YES, a side panel will be +# generated containing a tree-like index structure (just like the one that +# is generated for HTML Help). For this to work a browser that supports +# JavaScript, DHTML, CSS and frames is required (for instance Mozilla 1.0+, +# Netscape 6.0+, Internet explorer 5.0+, or Konqueror). Windows users are +# probably better off using the HTML help feature. + +GENERATE_TREEVIEW = NO + +# If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be +# used to set the initial width (in pixels) of the frame in which the tree +# is shown. + +TREEVIEW_WIDTH = 250 + +#--------------------------------------------------------------------------- +# configuration options related to the LaTeX output +#--------------------------------------------------------------------------- + +# If the GENERATE_LATEX tag is set to YES (the default) Doxygen will +# generate Latex output. + +GENERATE_LATEX = YES + +# The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put. +# If a relative path is entered the value of OUTPUT_DIRECTORY will be +# put in front of it. If left blank `latex' will be used as the default path. + +LATEX_OUTPUT = latex + +# The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be +# invoked. If left blank `latex' will be used as the default command name. + +LATEX_CMD_NAME = latex + +# The MAKEINDEX_CMD_NAME tag can be used to specify the command name to +# generate index for LaTeX. If left blank `makeindex' will be used as the +# default command name. + +MAKEINDEX_CMD_NAME = makeindex + +# If the COMPACT_LATEX tag is set to YES Doxygen generates more compact +# LaTeX documents. This may be useful for small projects and may help to +# save some trees in general. + +COMPACT_LATEX = NO + +# The PAPER_TYPE tag can be used to set the paper type that is used +# by the printer. Possible values are: a4, a4wide, letter, legal and +# executive. If left blank a4wide will be used. + +PAPER_TYPE = a4wide + +# The EXTRA_PACKAGES tag can be to specify one or more names of LaTeX +# packages that should be included in the LaTeX output. + +EXTRA_PACKAGES = + +# The LATEX_HEADER tag can be used to specify a personal LaTeX header for +# the generated latex document. The header should contain everything until +# the first chapter. If it is left blank doxygen will generate a +# standard header. Notice: only use this tag if you know what you are doing! + +LATEX_HEADER = + +# If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated +# is prepared for conversion to pdf (using ps2pdf). The pdf file will +# contain links (just like the HTML output) instead of page references +# This makes the output suitable for online browsing using a pdf viewer. + +PDF_HYPERLINKS = NO + +# If the USE_PDFLATEX tag is set to YES, pdflatex will be used instead of +# plain latex in the generated Makefile. Set this option to YES to get a +# higher quality PDF documentation. + +USE_PDFLATEX = NO + +# If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \\batchmode. +# command to the generated LaTeX files. This will instruct LaTeX to keep +# running if errors occur, instead of asking the user for help. +# This option is also used when generating formulas in HTML. + +LATEX_BATCHMODE = NO + +# If LATEX_HIDE_INDICES is set to YES then doxygen will not +# include the index chapters (such as File Index, Compound Index, etc.) +# in the output. + +LATEX_HIDE_INDICES = NO + +#--------------------------------------------------------------------------- +# configuration options related to the RTF output +#--------------------------------------------------------------------------- + +# If the GENERATE_RTF tag is set to YES Doxygen will generate RTF output +# The RTF output is optimized for Word 97 and may not look very pretty with +# other RTF readers or editors. + +GENERATE_RTF = NO + +# The RTF_OUTPUT tag is used to specify where the RTF docs will be put. +# If a relative path is entered the value of OUTPUT_DIRECTORY will be +# put in front of it. If left blank `rtf' will be used as the default path. + +RTF_OUTPUT = rtf + +# If the COMPACT_RTF tag is set to YES Doxygen generates more compact +# RTF documents. This may be useful for small projects and may help to +# save some trees in general. + +COMPACT_RTF = NO + +# If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated +# will contain hyperlink fields. The RTF file will +# contain links (just like the HTML output) instead of page references. +# This makes the output suitable for online browsing using WORD or other +# programs which support those fields. +# Note: wordpad (write) and others do not support links. + +RTF_HYPERLINKS = NO + +# Load stylesheet definitions from file. Syntax is similar to doxygen's +# config file, i.e. a series of assignments. You only have to provide +# replacements, missing definitions are set to their default value. + +RTF_STYLESHEET_FILE = + +# Set optional variables used in the generation of an rtf document. +# Syntax is similar to doxygen's config file. + +RTF_EXTENSIONS_FILE = + +#--------------------------------------------------------------------------- +# configuration options related to the man page output +#--------------------------------------------------------------------------- + +# If the GENERATE_MAN tag is set to YES (the default) Doxygen will +# generate man pages + +GENERATE_MAN = NO + +# The MAN_OUTPUT tag is used to specify where the man pages will be put. +# If a relative path is entered the value of OUTPUT_DIRECTORY will be +# put in front of it. If left blank `man' will be used as the default path. + +MAN_OUTPUT = man + +# The MAN_EXTENSION tag determines the extension that is added to +# the generated man pages (default is the subroutine's section .3) + +MAN_EXTENSION = .3 + +# If the MAN_LINKS tag is set to YES and Doxygen generates man output, +# then it will generate one additional man file for each entity +# documented in the real man page(s). These additional files +# only source the real man page, but without them the man command +# would be unable to find the correct page. The default is NO. + +MAN_LINKS = NO + +#--------------------------------------------------------------------------- +# configuration options related to the XML output +#--------------------------------------------------------------------------- + +# If the GENERATE_XML tag is set to YES Doxygen will +# generate an XML file that captures the structure of +# the code including all documentation. + +GENERATE_XML = NO + +# The XML_OUTPUT tag is used to specify where the XML pages will be put. +# If a relative path is entered the value of OUTPUT_DIRECTORY will be +# put in front of it. If left blank `xml' will be used as the default path. + +XML_OUTPUT = xml + +# The XML_SCHEMA tag can be used to specify an XML schema, +# which can be used by a validating XML parser to check the +# syntax of the XML files. + +XML_SCHEMA = + +# The XML_DTD tag can be used to specify an XML DTD, +# which can be used by a validating XML parser to check the +# syntax of the XML files. + +XML_DTD = + +# If the XML_PROGRAMLISTING tag is set to YES Doxygen will +# dump the program listings (including syntax highlighting +# and cross-referencing information) to the XML output. Note that +# enabling this will significantly increase the size of the XML output. + +XML_PROGRAMLISTING = YES + +#--------------------------------------------------------------------------- +# configuration options for the AutoGen Definitions output +#--------------------------------------------------------------------------- + +# If the GENERATE_AUTOGEN_DEF tag is set to YES Doxygen will +# generate an AutoGen Definitions (see autogen.sf.net) file +# that captures the structure of the code including all +# documentation. Note that this feature is still experimental +# and incomplete at the moment. + +GENERATE_AUTOGEN_DEF = NO + +#--------------------------------------------------------------------------- +# configuration options related to the Perl module output +#--------------------------------------------------------------------------- + +# If the GENERATE_PERLMOD tag is set to YES Doxygen will +# generate a Perl module file that captures the structure of +# the code including all documentation. Note that this +# feature is still experimental and incomplete at the +# moment. + +GENERATE_PERLMOD = NO + +# If the PERLMOD_LATEX tag is set to YES Doxygen will generate +# the necessary Makefile rules, Perl scripts and LaTeX code to be able +# to generate PDF and DVI output from the Perl module output. + +PERLMOD_LATEX = NO + +# If the PERLMOD_PRETTY tag is set to YES the Perl module output will be +# nicely formatted so it can be parsed by a human reader. This is useful +# if you want to understand what is going on. On the other hand, if this +# tag is set to NO the size of the Perl module output will be much smaller +# and Perl will parse it just the same. + +PERLMOD_PRETTY = YES + +# The names of the make variables in the generated doxyrules.make file +# are prefixed with the string contained in PERLMOD_MAKEVAR_PREFIX. +# This is useful so different doxyrules.make files included by the same +# Makefile don't overwrite each other's variables. + +PERLMOD_MAKEVAR_PREFIX = + +#--------------------------------------------------------------------------- +# Configuration options related to the preprocessor +#--------------------------------------------------------------------------- + +# If the ENABLE_PREPROCESSING tag is set to YES (the default) Doxygen will +# evaluate all C-preprocessor directives found in the sources and include +# files. + +ENABLE_PREPROCESSING = YES + +# If the MACRO_EXPANSION tag is set to YES Doxygen will expand all macro +# names in the source code. If set to NO (the default) only conditional +# compilation will be performed. Macro expansion can be done in a controlled +# way by setting EXPAND_ONLY_PREDEF to YES. + +MACRO_EXPANSION = NO + +# If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES +# then the macro expansion is limited to the macros specified with the +# PREDEFINED and EXPAND_AS_PREDEFINED tags. + +EXPAND_ONLY_PREDEF = NO + +# If the SEARCH_INCLUDES tag is set to YES (the default) the includes files +# in the INCLUDE_PATH (see below) will be search if a #include is found. + +SEARCH_INCLUDES = YES + +# The INCLUDE_PATH tag can be used to specify one or more directories that +# contain include files that are not input files but should be processed by +# the preprocessor. + +INCLUDE_PATH = + +# You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard +# patterns (like *.h and *.hpp) to filter out the header-files in the +# directories. If left blank, the patterns specified with FILE_PATTERNS will +# be used. + +INCLUDE_FILE_PATTERNS = + +# The PREDEFINED tag can be used to specify one or more macro names that +# are defined before the preprocessor is started (similar to the -D option of +# gcc). The argument of the tag is a list of macros of the form: name +# or name=definition (no spaces). If the definition and the = are +# omitted =1 is assumed. + +PREDEFINED = + +# If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then +# this tag can be used to specify a list of macro names that should be expanded. +# The macro definition that is found in the sources will be used. +# Use the PREDEFINED tag if you want to use a different macro definition. + +EXPAND_AS_DEFINED = + +# If the SKIP_FUNCTION_MACROS tag is set to YES (the default) then +# doxygen's preprocessor will remove all function-like macros that are alone +# on a line, have an all uppercase name, and do not end with a semicolon. Such +# function macros are typically used for boiler-plate code, and will confuse the +# parser if not removed. + +SKIP_FUNCTION_MACROS = YES + +#--------------------------------------------------------------------------- +# Configuration::additions related to external references +#--------------------------------------------------------------------------- + +# The TAGFILES option can be used to specify one or more tagfiles. +# Optionally an initial location of the external documentation +# can be added for each tagfile. The format of a tag file without +# this location is as follows: +# TAGFILES = file1 file2 ... +# Adding location for the tag files is done as follows: +# TAGFILES = file1=loc1 "file2 = loc2" ... +# where "loc1" and "loc2" can be relative or absolute paths or +# URLs. If a location is present for each tag, the installdox tool +# does not have to be run to correct the links. +# Note that each tag file must have a unique name +# (where the name does NOT include the path) +# If a tag file is not located in the directory in which doxygen +# is run, you must also specify the path to the tagfile here. + +TAGFILES = + +# When a file name is specified after GENERATE_TAGFILE, doxygen will create +# a tag file that is based on the input files it reads. + +GENERATE_TAGFILE = + +# If the ALLEXTERNALS tag is set to YES all external classes will be listed +# in the class index. If set to NO only the inherited external classes +# will be listed. + +ALLEXTERNALS = NO + +# If the EXTERNAL_GROUPS tag is set to YES all external groups will be listed +# in the modules index. If set to NO, only the current project's groups will +# be listed. + +EXTERNAL_GROUPS = YES + +# The PERL_PATH should be the absolute path and name of the perl script +# interpreter (i.e. the result of `which perl'). + +PERL_PATH = /usr/bin/perl + +#--------------------------------------------------------------------------- +# Configuration options related to the dot tool +#--------------------------------------------------------------------------- + +# If the CLASS_DIAGRAMS tag is set to YES (the default) Doxygen will +# generate a inheritance diagram (in HTML, RTF and LaTeX) for classes with base or +# super classes. Setting the tag to NO turns the diagrams off. Note that this +# option is superseded by the HAVE_DOT option below. This is only a fallback. It is +# recommended to install and use dot, since it yields more powerful graphs. + +CLASS_DIAGRAMS = YES + +# If set to YES, the inheritance and collaboration graphs will hide +# inheritance and usage relations if the target is undocumented +# or is not a class. + +HIDE_UNDOC_RELATIONS = YES + +# If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is +# available from the path. This tool is part of Graphviz, a graph visualization +# toolkit from AT&T and Lucent Bell Labs. The other options in this section +# have no effect if this option is set to NO (the default) + +HAVE_DOT = NO + +# If the CLASS_GRAPH and HAVE_DOT tags are set to YES then doxygen +# will generate a graph for each documented class showing the direct and +# indirect inheritance relations. Setting this tag to YES will force the +# the CLASS_DIAGRAMS tag to NO. + +CLASS_GRAPH = YES + +# If the COLLABORATION_GRAPH and HAVE_DOT tags are set to YES then doxygen +# will generate a graph for each documented class showing the direct and +# indirect implementation dependencies (inheritance, containment, and +# class references variables) of the class with other documented classes. + +COLLABORATION_GRAPH = YES + +# If the UML_LOOK tag is set to YES doxygen will generate inheritance and +# collaboration diagrams in a style similar to the OMG's Unified Modeling +# Language. + +UML_LOOK = NO + +# If set to YES, the inheritance and collaboration graphs will show the +# relations between templates and their instances. + +TEMPLATE_RELATIONS = NO + +# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDE_GRAPH, and HAVE_DOT +# tags are set to YES then doxygen will generate a graph for each documented +# file showing the direct and indirect include dependencies of the file with +# other documented files. + +INCLUDE_GRAPH = YES + +# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDED_BY_GRAPH, and +# HAVE_DOT tags are set to YES then doxygen will generate a graph for each +# documented header file showing the documented files that directly or +# indirectly include this file. + +INCLUDED_BY_GRAPH = YES + +# If the CALL_GRAPH and HAVE_DOT tags are set to YES then doxygen will +# generate a call dependency graph for every global function or class method. +# Note that enabling this option will significantly increase the time of a run. +# So in most cases it will be better to enable call graphs for selected +# functions only using the \callgraph command. + +CALL_GRAPH = NO + +# If the GRAPHICAL_HIERARCHY and HAVE_DOT tags are set to YES then doxygen +# will graphical hierarchy of all classes instead of a textual one. + +GRAPHICAL_HIERARCHY = YES + +# The DOT_IMAGE_FORMAT tag can be used to set the image format of the images +# generated by dot. Possible values are png, jpg, or gif +# If left blank png will be used. + +DOT_IMAGE_FORMAT = png + +# The tag DOT_PATH can be used to specify the path where the dot tool can be +# found. If left blank, it is assumed the dot tool can be found on the path. + +DOT_PATH = + +# The DOTFILE_DIRS tag can be used to specify one or more directories that +# contain dot files that are included in the documentation (see the +# \dotfile command). + +DOTFILE_DIRS = + +# The MAX_DOT_GRAPH_WIDTH tag can be used to set the maximum allowed width +# (in pixels) of the graphs generated by dot. If a graph becomes larger than +# this value, doxygen will try to truncate the graph, so that it fits within +# the specified constraint. Beware that most browsers cannot cope with very +# large images. + +MAX_DOT_GRAPH_WIDTH = 1024 + +# The MAX_DOT_GRAPH_HEIGHT tag can be used to set the maximum allows height +# (in pixels) of the graphs generated by dot. If a graph becomes larger than +# this value, doxygen will try to truncate the graph, so that it fits within +# the specified constraint. Beware that most browsers cannot cope with very +# large images. + +MAX_DOT_GRAPH_HEIGHT = 1024 + +# The MAX_DOT_GRAPH_DEPTH tag can be used to set the maximum depth of the +# graphs generated by dot. A depth value of 3 means that only nodes reachable +# from the root by following a path via at most 3 edges will be shown. Nodes that +# lay further from the root node will be omitted. Note that setting this option to +# 1 or 2 may greatly reduce the computation time needed for large code bases. Also +# note that a graph may be further truncated if the graph's image dimensions are +# not sufficient to fit the graph (see MAX_DOT_GRAPH_WIDTH and MAX_DOT_GRAPH_HEIGHT). +# If 0 is used for the depth value (the default), the graph is not depth-constrained. + +MAX_DOT_GRAPH_DEPTH = 0 + +# If the GENERATE_LEGEND tag is set to YES (the default) Doxygen will +# generate a legend page explaining the meaning of the various boxes and +# arrows in the dot generated graphs. + +GENERATE_LEGEND = YES + +# If the DOT_CLEANUP tag is set to YES (the default) Doxygen will +# remove the intermediate dot files that are used to generate +# the various graphs. + +DOT_CLEANUP = YES + +#--------------------------------------------------------------------------- +# Configuration::additions related to the search engine +#--------------------------------------------------------------------------- + +# The SEARCHENGINE tag specifies whether or not a search engine should be +# used. If set to NO the values of all tags below this one will be ignored. + +SEARCHENGINE = NO + diff -Nru librtas-1.3.13/doxygen.rtas librtas-2.0.0/doxygen.rtas --- librtas-1.3.13/doxygen.rtas 2014-10-23 02:23:41.000000000 +0000 +++ librtas-2.0.0/doxygen.rtas 1970-01-01 00:00:00.000000000 +0000 @@ -1,1154 +0,0 @@ -# Doxyfile 1.3.8 - -# This file describes the settings to be used by the documentation system -# doxygen (www.doxygen.org) for a project -# -# All text after a hash (#) is considered a comment and will be ignored -# The format is: -# TAG = value [value, ...] -# For lists items can also be appended using: -# TAG += value [value, ...] -# Values that contain spaces should be placed between quotes (" ") - -#--------------------------------------------------------------------------- -# Project related configuration options -#--------------------------------------------------------------------------- - -# The PROJECT_NAME tag is a single word (or a sequence of words surrounded -# by quotes) that should identify the project. - -PROJECT_NAME = librtas - -# The PROJECT_NUMBER tag can be used to enter a project or revision number. -# This could be handy for archiving the generated documentation or -# if some version control system is used. - -PROJECT_NUMBER = - -# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) -# base path where the generated documentation will be put. -# If a relative path is entered, it will be relative to the location -# where doxygen was started. If left blank the current directory will be used. - -OUTPUT_DIRECTORY = doc/librtas - -# If the CREATE_SUBDIRS tag is set to YES, then doxygen will create -# 4096 sub-directories (in 2 levels) under the output directory of each output -# format and will distribute the generated files over these directories. -# Enabling this option can be useful when feeding doxygen a huge amount of source -# files, where putting all generated files in the same directory would otherwise -# cause performance problems for the file system. - -CREATE_SUBDIRS = NO - -# The OUTPUT_LANGUAGE tag is used to specify the language in which all -# documentation generated by doxygen is written. Doxygen will use this -# information to generate all constant output in the proper language. -# The default language is English, other supported languages are: -# Brazilian, Catalan, Chinese, Chinese-Traditional, Croatian, Czech, Danish, -# Dutch, Finnish, French, German, Greek, Hungarian, Italian, Japanese, -# Japanese-en (Japanese with English messages), Korean, Korean-en, Norwegian, -# Polish, Portuguese, Romanian, Russian, Serbian, Slovak, Slovene, Spanish, -# Swedish, and Ukrainian. - -OUTPUT_LANGUAGE = English - -# This tag can be used to specify the encoding used in the generated output. -# The encoding is not always determined by the language that is chosen, -# but also whether or not the output is meant for Windows or non-Windows users. -# In case there is a difference, setting the USE_WINDOWS_ENCODING tag to YES -# forces the Windows encoding (this is the default for the Windows binary), -# whereas setting the tag to NO uses a Unix-style encoding (the default for -# all platforms other than Windows). - -USE_WINDOWS_ENCODING = NO - -# If the BRIEF_MEMBER_DESC tag is set to YES (the default) Doxygen will -# include brief member descriptions after the members that are listed in -# the file and class documentation (similar to JavaDoc). -# Set to NO to disable this. - -BRIEF_MEMBER_DESC = YES - -# If the REPEAT_BRIEF tag is set to YES (the default) Doxygen will prepend -# the brief description of a member or function before the detailed description. -# Note: if both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the -# brief descriptions will be completely suppressed. - -REPEAT_BRIEF = NO - -# This tag implements a quasi-intelligent brief description abbreviator -# that is used to form the text in various listings. Each string -# in this list, if found as the leading text of the brief description, will be -# stripped from the text and the result after processing the whole list, is used -# as the annotated text. Otherwise, the brief description is used as-is. If left -# blank, the following values are used ("$name" is automatically replaced with the -# name of the entity): "The $name class" "The $name widget" "The $name file" -# "is" "provides" "specifies" "contains" "represents" "a" "an" "the" - -ABBREVIATE_BRIEF = - -# If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then -# Doxygen will generate a detailed section even if there is only a brief -# description. - -ALWAYS_DETAILED_SEC = NO - -# If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all inherited -# members of a class in the documentation of that class as if those members were -# ordinary class members. Constructors, destructors and assignment operators of -# the base classes will not be shown. - -INLINE_INHERITED_MEMB = NO - -# If the FULL_PATH_NAMES tag is set to YES then Doxygen will prepend the full -# path before files name in the file list and in the header files. If set -# to NO the shortest path that makes the file name unique will be used. - -FULL_PATH_NAMES = YES - -# If the FULL_PATH_NAMES tag is set to YES then the STRIP_FROM_PATH tag -# can be used to strip a user-defined part of the path. Stripping is -# only done if one of the specified strings matches the left-hand part of -# the path. The tag can be used to show relative paths in the file list. -# If left blank the directory from which doxygen is run is used as the -# path to strip. - -STRIP_FROM_PATH = - -# The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of -# the path mentioned in the documentation of a class, which tells -# the reader which header file to include in order to use a class. -# If left blank only the name of the header file containing the class -# definition is used. Otherwise one should specify the include paths that -# are normally passed to the compiler using the -I flag. - -STRIP_FROM_INC_PATH = - -# If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter -# (but less readable) file names. This can be useful is your file systems -# doesn't support long names like on DOS, Mac, or CD-ROM. - -SHORT_NAMES = NO - -# If the JAVADOC_AUTOBRIEF tag is set to YES then Doxygen -# will interpret the first line (until the first dot) of a JavaDoc-style -# comment as the brief description. If set to NO, the JavaDoc -# comments will behave just like the Qt-style comments (thus requiring an -# explicit @brief command for a brief description. - -JAVADOC_AUTOBRIEF = NO - -# The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make Doxygen -# treat a multi-line C++ special comment block (i.e. a block of //! or /// -# comments) as a brief description. This used to be the default behaviour. -# The new default is to treat a multi-line C++ comment block as a detailed -# description. Set this tag to YES if you prefer the old behaviour instead. - -MULTILINE_CPP_IS_BRIEF = NO - -# If the DETAILS_AT_TOP tag is set to YES then Doxygen -# will output the detailed description near the top, like JavaDoc. -# If set to NO, the detailed description appears after the member -# documentation. - -DETAILS_AT_TOP = NO - -# If the INHERIT_DOCS tag is set to YES (the default) then an undocumented -# member inherits the documentation from any documented member that it -# re-implements. - -INHERIT_DOCS = YES - -# If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC -# tag is set to YES, then doxygen will reuse the documentation of the first -# member in the group (if any) for the other members of the group. By default -# all members of a group must be documented explicitly. - -DISTRIBUTE_GROUP_DOC = NO - -# The TAB_SIZE tag can be used to set the number of spaces in a tab. -# Doxygen uses this value to replace tabs by spaces in code fragments. - -TAB_SIZE = 8 - -# This tag can be used to specify a number of aliases that acts -# as commands in the documentation. An alias has the form "name=value". -# For example adding "sideeffect=\par Side Effects:\n" will allow you to -# put the command \sideeffect (or @sideeffect) in the documentation, which -# will result in a user-defined paragraph with heading "Side Effects:". -# You can put \n's in the value part of an alias to insert newlines. - -ALIASES = - -# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C sources -# only. Doxygen will then generate output that is more tailored for C. -# For instance, some of the names that are used will be different. The list -# of all members will be omitted, etc. - -OPTIMIZE_OUTPUT_FOR_C = YES - -# Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java sources -# only. Doxygen will then generate output that is more tailored for Java. -# For instance, namespaces will be presented as packages, qualified scopes -# will look different, etc. - -OPTIMIZE_OUTPUT_JAVA = NO - -# Set the SUBGROUPING tag to YES (the default) to allow class member groups of -# the same type (for instance a group of public functions) to be put as a -# subgroup of that type (e.g. under the Public Functions section). Set it to -# NO to prevent subgrouping. Alternatively, this can be done per class using -# the \nosubgrouping command. - -SUBGROUPING = NO - -#--------------------------------------------------------------------------- -# Build related configuration options -#--------------------------------------------------------------------------- - -# If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in -# documentation are documented, even if no documentation was available. -# Private class members and static file members will be hidden unless -# the EXTRACT_PRIVATE and EXTRACT_STATIC tags are set to YES - -EXTRACT_ALL = YES - -# If the EXTRACT_PRIVATE tag is set to YES all private members of a class -# will be included in the documentation. - -EXTRACT_PRIVATE = NO - -# If the EXTRACT_STATIC tag is set to YES all static members of a file -# will be included in the documentation. - -EXTRACT_STATIC = YES - -# If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs) -# defined locally in source files will be included in the documentation. -# If set to NO only classes defined in header files are included. - -EXTRACT_LOCAL_CLASSES = YES - -# This flag is only useful for Objective-C code. When set to YES local -# methods, which are defined in the implementation section but not in -# the interface are included in the documentation. -# If set to NO (the default) only methods in the interface are included. - -EXTRACT_LOCAL_METHODS = NO - -# If the HIDE_UNDOC_MEMBERS tag is set to YES, Doxygen will hide all -# undocumented members of documented classes, files or namespaces. -# If set to NO (the default) these members will be included in the -# various overviews, but no documentation section is generated. -# This option has no effect if EXTRACT_ALL is enabled. - -HIDE_UNDOC_MEMBERS = NO - -# If the HIDE_UNDOC_CLASSES tag is set to YES, Doxygen will hide all -# undocumented classes that are normally visible in the class hierarchy. -# If set to NO (the default) these classes will be included in the various -# overviews. This option has no effect if EXTRACT_ALL is enabled. - -HIDE_UNDOC_CLASSES = NO - -# If the HIDE_FRIEND_COMPOUNDS tag is set to YES, Doxygen will hide all -# friend (class|struct|union) declarations. -# If set to NO (the default) these declarations will be included in the -# documentation. - -HIDE_FRIEND_COMPOUNDS = NO - -# If the HIDE_IN_BODY_DOCS tag is set to YES, Doxygen will hide any -# documentation blocks found inside the body of a function. -# If set to NO (the default) these blocks will be appended to the -# function's detailed documentation block. - -HIDE_IN_BODY_DOCS = NO - -# The INTERNAL_DOCS tag determines if documentation -# that is typed after a \internal command is included. If the tag is set -# to NO (the default) then the documentation will be excluded. -# Set it to YES to include the internal documentation. - -INTERNAL_DOCS = NO - -# If the CASE_SENSE_NAMES tag is set to NO then Doxygen will only generate -# file names in lower-case letters. If set to YES upper-case letters are also -# allowed. This is useful if you have classes or files whose names only differ -# in case and if your file system supports case sensitive file names. Windows -# and Mac users are advised to set this option to NO. - -CASE_SENSE_NAMES = YES - -# If the HIDE_SCOPE_NAMES tag is set to NO (the default) then Doxygen -# will show members with their full class and namespace scopes in the -# documentation. If set to YES the scope will be hidden. - -HIDE_SCOPE_NAMES = NO - -# If the SHOW_INCLUDE_FILES tag is set to YES (the default) then Doxygen -# will put a list of the files that are included by a file in the documentation -# of that file. - -SHOW_INCLUDE_FILES = YES - -# If the INLINE_INFO tag is set to YES (the default) then a tag [inline] -# is inserted in the documentation for inline members. - -INLINE_INFO = YES - -# If the SORT_MEMBER_DOCS tag is set to YES (the default) then doxygen -# will sort the (detailed) documentation of file and class members -# alphabetically by member name. If set to NO the members will appear in -# declaration order. - -SORT_MEMBER_DOCS = YES - -# If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the -# brief documentation of file, namespace and class members alphabetically -# by member name. If set to NO (the default) the members will appear in -# declaration order. - -SORT_BRIEF_DOCS = NO - -# If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be -# sorted by fully-qualified names, including namespaces. If set to -# NO (the default), the class list will be sorted only by class name, -# not including the namespace part. -# Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES. -# Note: This option applies only to the class list, not to the -# alphabetical list. - -SORT_BY_SCOPE_NAME = NO - -# The GENERATE_TODOLIST tag can be used to enable (YES) or -# disable (NO) the todo list. This list is created by putting \todo -# commands in the documentation. - -GENERATE_TODOLIST = YES - -# The GENERATE_TESTLIST tag can be used to enable (YES) or -# disable (NO) the test list. This list is created by putting \test -# commands in the documentation. - -GENERATE_TESTLIST = YES - -# The GENERATE_BUGLIST tag can be used to enable (YES) or -# disable (NO) the bug list. This list is created by putting \bug -# commands in the documentation. - -GENERATE_BUGLIST = YES - -# The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or -# disable (NO) the deprecated list. This list is created by putting -# \deprecated commands in the documentation. - -GENERATE_DEPRECATEDLIST= YES - -# The ENABLED_SECTIONS tag can be used to enable conditional -# documentation sections, marked by \if sectionname ... \endif. - -ENABLED_SECTIONS = - -# The MAX_INITIALIZER_LINES tag determines the maximum number of lines -# the initial value of a variable or define consists of for it to appear in -# the documentation. If the initializer consists of more lines than specified -# here it will be hidden. Use a value of 0 to hide initializers completely. -# The appearance of the initializer of individual variables and defines in the -# documentation can be controlled using \showinitializer or \hideinitializer -# command in the documentation regardless of this setting. - -MAX_INITIALIZER_LINES = 30 - -# Set the SHOW_USED_FILES tag to NO to disable the list of files generated -# at the bottom of the documentation of classes and structs. If set to YES the -# list will mention the files that were used to generate the documentation. - -SHOW_USED_FILES = YES - -#--------------------------------------------------------------------------- -# configuration options related to warning and progress messages -#--------------------------------------------------------------------------- - -# The QUIET tag can be used to turn on/off the messages that are generated -# by doxygen. Possible values are YES and NO. If left blank NO is used. - -QUIET = NO - -# The WARNINGS tag can be used to turn on/off the warning messages that are -# generated by doxygen. Possible values are YES and NO. If left blank -# NO is used. - -WARNINGS = YES - -# If WARN_IF_UNDOCUMENTED is set to YES, then doxygen will generate warnings -# for undocumented members. If EXTRACT_ALL is set to YES then this flag will -# automatically be disabled. - -WARN_IF_UNDOCUMENTED = YES - -# If WARN_IF_DOC_ERROR is set to YES, doxygen will generate warnings for -# potential errors in the documentation, such as not documenting some -# parameters in a documented function, or documenting parameters that -# don't exist or using markup commands wrongly. - -WARN_IF_DOC_ERROR = YES - -# The WARN_FORMAT tag determines the format of the warning messages that -# doxygen can produce. The string should contain the $file, $line, and $text -# tags, which will be replaced by the file and line number from which the -# warning originated and the warning text. - -WARN_FORMAT = "$file:$line: $text" - -# The WARN_LOGFILE tag can be used to specify a file to which warning -# and error messages should be written. If left blank the output is written -# to stderr. - -WARN_LOGFILE = - -#--------------------------------------------------------------------------- -# configuration options related to the input files -#--------------------------------------------------------------------------- - -# The INPUT tag can be used to specify the files and/or directories that contain -# documented source files. You may enter file names like "myfile.cpp" or -# directories like "/usr/src/myproject". Separate the files or directories -# with spaces. - -INPUT = ./librtas_src - -# If the value of the INPUT tag contains directories, you can use the -# FILE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp -# and *.h) to filter out the source-files in the directories. If left -# blank the following patterns are tested: -# *.c *.cc *.cxx *.cpp *.c++ *.java *.ii *.ixx *.ipp *.i++ *.inl *.h *.hh *.hxx *.hpp -# *.h++ *.idl *.odl *.cs *.php *.php3 *.inc *.m *.mm - -FILE_PATTERNS = - -# The RECURSIVE tag can be used to turn specify whether or not subdirectories -# should be searched for input files as well. Possible values are YES and NO. -# If left blank NO is used. - -RECURSIVE = NO - -# The EXCLUDE tag can be used to specify files and/or directories that should -# excluded from the INPUT source files. This way you can easily exclude a -# subdirectory from a directory tree whose root is specified with the INPUT tag. - -EXCLUDE = - -# The EXCLUDE_SYMLINKS tag can be used select whether or not files or directories -# that are symbolic links (a Unix filesystem feature) are excluded from the input. - -EXCLUDE_SYMLINKS = NO - -# If the value of the INPUT tag contains directories, you can use the -# EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude -# certain files from those directories. - -EXCLUDE_PATTERNS = - -# The EXAMPLE_PATH tag can be used to specify one or more files or -# directories that contain example code fragments that are included (see -# the \include command). - -EXAMPLE_PATH = - -# If the value of the EXAMPLE_PATH tag contains directories, you can use the -# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp -# and *.h) to filter out the source-files in the directories. If left -# blank all files are included. - -EXAMPLE_PATTERNS = - -# If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be -# searched for input files to be used with the \include or \dontinclude -# commands irrespective of the value of the RECURSIVE tag. -# Possible values are YES and NO. If left blank NO is used. - -EXAMPLE_RECURSIVE = NO - -# The IMAGE_PATH tag can be used to specify one or more files or -# directories that contain image that are included in the documentation (see -# the \image command). - -IMAGE_PATH = - -# The INPUT_FILTER tag can be used to specify a program that doxygen should -# invoke to filter for each input file. Doxygen will invoke the filter program -# by executing (via popen()) the command , where -# is the value of the INPUT_FILTER tag, and is the name of an -# input file. Doxygen will then use the output that the filter program writes -# to standard output. If FILTER_PATTERNS is specified, this tag will be -# ignored. - -INPUT_FILTER = - -# The FILTER_PATTERNS tag can be used to specify filters on a per file pattern -# basis. Doxygen will compare the file name with each pattern and apply the -# filter if there is a match. The filters are a list of the form: -# pattern=filter (like *.cpp=my_cpp_filter). See INPUT_FILTER for further -# info on how filters are used. If FILTER_PATTERNS is empty, INPUT_FILTER -# is applied to all files. - -FILTER_PATTERNS = - -# If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using -# INPUT_FILTER) will be used to filter the input files when producing source -# files to browse (i.e. when SOURCE_BROWSER is set to YES). - -FILTER_SOURCE_FILES = NO - -#--------------------------------------------------------------------------- -# configuration options related to source browsing -#--------------------------------------------------------------------------- - -# If the SOURCE_BROWSER tag is set to YES then a list of source files will -# be generated. Documented entities will be cross-referenced with these sources. -# Note: To get rid of all source code in the generated output, make sure also -# VERBATIM_HEADERS is set to NO. - -SOURCE_BROWSER = NO - -# Setting the INLINE_SOURCES tag to YES will include the body -# of functions and classes directly in the documentation. - -INLINE_SOURCES = NO - -# Setting the STRIP_CODE_COMMENTS tag to YES (the default) will instruct -# doxygen to hide any special comment blocks from generated source code -# fragments. Normal C and C++ comments will always remain visible. - -STRIP_CODE_COMMENTS = YES - -# If the REFERENCED_BY_RELATION tag is set to YES (the default) -# then for each documented function all documented -# functions referencing it will be listed. - -REFERENCED_BY_RELATION = YES - -# If the REFERENCES_RELATION tag is set to YES (the default) -# then for each documented function all documented entities -# called/used by that function will be listed. - -REFERENCES_RELATION = YES - -# If the VERBATIM_HEADERS tag is set to YES (the default) then Doxygen -# will generate a verbatim copy of the header file for each class for -# which an include is specified. Set to NO to disable this. - -VERBATIM_HEADERS = YES - -#--------------------------------------------------------------------------- -# configuration options related to the alphabetical class index -#--------------------------------------------------------------------------- - -# If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index -# of all compounds will be generated. Enable this if the project -# contains a lot of classes, structs, unions or interfaces. - -ALPHABETICAL_INDEX = NO - -# If the alphabetical index is enabled (see ALPHABETICAL_INDEX) then -# the COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns -# in which this list will be split (can be a number in the range [1..20]) - -COLS_IN_ALPHA_INDEX = 5 - -# In case all classes in a project start with a common prefix, all -# classes will be put under the same header in the alphabetical index. -# The IGNORE_PREFIX tag can be used to specify one or more prefixes that -# should be ignored while generating the index headers. - -IGNORE_PREFIX = - -#--------------------------------------------------------------------------- -# configuration options related to the HTML output -#--------------------------------------------------------------------------- - -# If the GENERATE_HTML tag is set to YES (the default) Doxygen will -# generate HTML output. - -GENERATE_HTML = YES - -# The HTML_OUTPUT tag is used to specify where the HTML docs will be put. -# If a relative path is entered the value of OUTPUT_DIRECTORY will be -# put in front of it. If left blank `html' will be used as the default path. - -HTML_OUTPUT = html - -# The HTML_FILE_EXTENSION tag can be used to specify the file extension for -# each generated HTML page (for example: .htm,.php,.asp). If it is left blank -# doxygen will generate files with .html extension. - -HTML_FILE_EXTENSION = .html - -# The HTML_HEADER tag can be used to specify a personal HTML header for -# each generated HTML page. If it is left blank doxygen will generate a -# standard header. - -HTML_HEADER = - -# The HTML_FOOTER tag can be used to specify a personal HTML footer for -# each generated HTML page. If it is left blank doxygen will generate a -# standard footer. - -HTML_FOOTER = - -# The HTML_STYLESHEET tag can be used to specify a user-defined cascading -# style sheet that is used by each HTML page. It can be used to -# fine-tune the look of the HTML output. If the tag is left blank doxygen -# will generate a default style sheet. Note that doxygen will try to copy -# the style sheet file to the HTML output directory, so don't put your own -# stylesheet in the HTML output directory as well, or it will be erased! - -HTML_STYLESHEET = - -# If the HTML_ALIGN_MEMBERS tag is set to YES, the members of classes, -# files or namespaces will be aligned in HTML using tables. If set to -# NO a bullet list will be used. - -HTML_ALIGN_MEMBERS = YES - -# If the GENERATE_HTMLHELP tag is set to YES, additional index files -# will be generated that can be used as input for tools like the -# Microsoft HTML help workshop to generate a compressed HTML help file (.chm) -# of the generated HTML documentation. - -GENERATE_HTMLHELP = NO - -# If the GENERATE_HTMLHELP tag is set to YES, the CHM_FILE tag can -# be used to specify the file name of the resulting .chm file. You -# can add a path in front of the file if the result should not be -# written to the html output directory. - -CHM_FILE = - -# If the GENERATE_HTMLHELP tag is set to YES, the HHC_LOCATION tag can -# be used to specify the location (absolute path including file name) of -# the HTML help compiler (hhc.exe). If non-empty doxygen will try to run -# the HTML help compiler on the generated index.hhp. - -HHC_LOCATION = - -# If the GENERATE_HTMLHELP tag is set to YES, the GENERATE_CHI flag -# controls if a separate .chi index file is generated (YES) or that -# it should be included in the master .chm file (NO). - -GENERATE_CHI = NO - -# If the GENERATE_HTMLHELP tag is set to YES, the BINARY_TOC flag -# controls whether a binary table of contents is generated (YES) or a -# normal table of contents (NO) in the .chm file. - -BINARY_TOC = NO - -# The TOC_EXPAND flag can be set to YES to add extra items for group members -# to the contents of the HTML help documentation and to the tree view. - -TOC_EXPAND = NO - -# The DISABLE_INDEX tag can be used to turn on/off the condensed index at -# top of each HTML page. The value NO (the default) enables the index and -# the value YES disables it. - -DISABLE_INDEX = NO - -# This tag can be used to set the number of enum values (range [1..20]) -# that doxygen will group on one line in the generated HTML documentation. - -ENUM_VALUES_PER_LINE = 4 - -# If the GENERATE_TREEVIEW tag is set to YES, a side panel will be -# generated containing a tree-like index structure (just like the one that -# is generated for HTML Help). For this to work a browser that supports -# JavaScript, DHTML, CSS and frames is required (for instance Mozilla 1.0+, -# Netscape 6.0+, Internet explorer 5.0+, or Konqueror). Windows users are -# probably better off using the HTML help feature. - -GENERATE_TREEVIEW = NO - -# If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be -# used to set the initial width (in pixels) of the frame in which the tree -# is shown. - -TREEVIEW_WIDTH = 250 - -#--------------------------------------------------------------------------- -# configuration options related to the LaTeX output -#--------------------------------------------------------------------------- - -# If the GENERATE_LATEX tag is set to YES (the default) Doxygen will -# generate Latex output. - -GENERATE_LATEX = YES - -# The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put. -# If a relative path is entered the value of OUTPUT_DIRECTORY will be -# put in front of it. If left blank `latex' will be used as the default path. - -LATEX_OUTPUT = latex - -# The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be -# invoked. If left blank `latex' will be used as the default command name. - -LATEX_CMD_NAME = latex - -# The MAKEINDEX_CMD_NAME tag can be used to specify the command name to -# generate index for LaTeX. If left blank `makeindex' will be used as the -# default command name. - -MAKEINDEX_CMD_NAME = makeindex - -# If the COMPACT_LATEX tag is set to YES Doxygen generates more compact -# LaTeX documents. This may be useful for small projects and may help to -# save some trees in general. - -COMPACT_LATEX = NO - -# The PAPER_TYPE tag can be used to set the paper type that is used -# by the printer. Possible values are: a4, a4wide, letter, legal and -# executive. If left blank a4wide will be used. - -PAPER_TYPE = a4wide - -# The EXTRA_PACKAGES tag can be to specify one or more names of LaTeX -# packages that should be included in the LaTeX output. - -EXTRA_PACKAGES = - -# The LATEX_HEADER tag can be used to specify a personal LaTeX header for -# the generated latex document. The header should contain everything until -# the first chapter. If it is left blank doxygen will generate a -# standard header. Notice: only use this tag if you know what you are doing! - -LATEX_HEADER = - -# If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated -# is prepared for conversion to pdf (using ps2pdf). The pdf file will -# contain links (just like the HTML output) instead of page references -# This makes the output suitable for online browsing using a pdf viewer. - -PDF_HYPERLINKS = NO - -# If the USE_PDFLATEX tag is set to YES, pdflatex will be used instead of -# plain latex in the generated Makefile. Set this option to YES to get a -# higher quality PDF documentation. - -USE_PDFLATEX = NO - -# If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \\batchmode. -# command to the generated LaTeX files. This will instruct LaTeX to keep -# running if errors occur, instead of asking the user for help. -# This option is also used when generating formulas in HTML. - -LATEX_BATCHMODE = NO - -# If LATEX_HIDE_INDICES is set to YES then doxygen will not -# include the index chapters (such as File Index, Compound Index, etc.) -# in the output. - -LATEX_HIDE_INDICES = NO - -#--------------------------------------------------------------------------- -# configuration options related to the RTF output -#--------------------------------------------------------------------------- - -# If the GENERATE_RTF tag is set to YES Doxygen will generate RTF output -# The RTF output is optimized for Word 97 and may not look very pretty with -# other RTF readers or editors. - -GENERATE_RTF = NO - -# The RTF_OUTPUT tag is used to specify where the RTF docs will be put. -# If a relative path is entered the value of OUTPUT_DIRECTORY will be -# put in front of it. If left blank `rtf' will be used as the default path. - -RTF_OUTPUT = rtf - -# If the COMPACT_RTF tag is set to YES Doxygen generates more compact -# RTF documents. This may be useful for small projects and may help to -# save some trees in general. - -COMPACT_RTF = NO - -# If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated -# will contain hyperlink fields. The RTF file will -# contain links (just like the HTML output) instead of page references. -# This makes the output suitable for online browsing using WORD or other -# programs which support those fields. -# Note: wordpad (write) and others do not support links. - -RTF_HYPERLINKS = NO - -# Load stylesheet definitions from file. Syntax is similar to doxygen's -# config file, i.e. a series of assignments. You only have to provide -# replacements, missing definitions are set to their default value. - -RTF_STYLESHEET_FILE = - -# Set optional variables used in the generation of an rtf document. -# Syntax is similar to doxygen's config file. - -RTF_EXTENSIONS_FILE = - -#--------------------------------------------------------------------------- -# configuration options related to the man page output -#--------------------------------------------------------------------------- - -# If the GENERATE_MAN tag is set to YES (the default) Doxygen will -# generate man pages - -GENERATE_MAN = NO - -# The MAN_OUTPUT tag is used to specify where the man pages will be put. -# If a relative path is entered the value of OUTPUT_DIRECTORY will be -# put in front of it. If left blank `man' will be used as the default path. - -MAN_OUTPUT = man - -# The MAN_EXTENSION tag determines the extension that is added to -# the generated man pages (default is the subroutine's section .3) - -MAN_EXTENSION = .3 - -# If the MAN_LINKS tag is set to YES and Doxygen generates man output, -# then it will generate one additional man file for each entity -# documented in the real man page(s). These additional files -# only source the real man page, but without them the man command -# would be unable to find the correct page. The default is NO. - -MAN_LINKS = NO - -#--------------------------------------------------------------------------- -# configuration options related to the XML output -#--------------------------------------------------------------------------- - -# If the GENERATE_XML tag is set to YES Doxygen will -# generate an XML file that captures the structure of -# the code including all documentation. - -GENERATE_XML = NO - -# The XML_OUTPUT tag is used to specify where the XML pages will be put. -# If a relative path is entered the value of OUTPUT_DIRECTORY will be -# put in front of it. If left blank `xml' will be used as the default path. - -XML_OUTPUT = xml - -# The XML_SCHEMA tag can be used to specify an XML schema, -# which can be used by a validating XML parser to check the -# syntax of the XML files. - -XML_SCHEMA = - -# The XML_DTD tag can be used to specify an XML DTD, -# which can be used by a validating XML parser to check the -# syntax of the XML files. - -XML_DTD = - -# If the XML_PROGRAMLISTING tag is set to YES Doxygen will -# dump the program listings (including syntax highlighting -# and cross-referencing information) to the XML output. Note that -# enabling this will significantly increase the size of the XML output. - -XML_PROGRAMLISTING = YES - -#--------------------------------------------------------------------------- -# configuration options for the AutoGen Definitions output -#--------------------------------------------------------------------------- - -# If the GENERATE_AUTOGEN_DEF tag is set to YES Doxygen will -# generate an AutoGen Definitions (see autogen.sf.net) file -# that captures the structure of the code including all -# documentation. Note that this feature is still experimental -# and incomplete at the moment. - -GENERATE_AUTOGEN_DEF = NO - -#--------------------------------------------------------------------------- -# configuration options related to the Perl module output -#--------------------------------------------------------------------------- - -# If the GENERATE_PERLMOD tag is set to YES Doxygen will -# generate a Perl module file that captures the structure of -# the code including all documentation. Note that this -# feature is still experimental and incomplete at the -# moment. - -GENERATE_PERLMOD = NO - -# If the PERLMOD_LATEX tag is set to YES Doxygen will generate -# the necessary Makefile rules, Perl scripts and LaTeX code to be able -# to generate PDF and DVI output from the Perl module output. - -PERLMOD_LATEX = NO - -# If the PERLMOD_PRETTY tag is set to YES the Perl module output will be -# nicely formatted so it can be parsed by a human reader. This is useful -# if you want to understand what is going on. On the other hand, if this -# tag is set to NO the size of the Perl module output will be much smaller -# and Perl will parse it just the same. - -PERLMOD_PRETTY = YES - -# The names of the make variables in the generated doxyrules.make file -# are prefixed with the string contained in PERLMOD_MAKEVAR_PREFIX. -# This is useful so different doxyrules.make files included by the same -# Makefile don't overwrite each other's variables. - -PERLMOD_MAKEVAR_PREFIX = - -#--------------------------------------------------------------------------- -# Configuration options related to the preprocessor -#--------------------------------------------------------------------------- - -# If the ENABLE_PREPROCESSING tag is set to YES (the default) Doxygen will -# evaluate all C-preprocessor directives found in the sources and include -# files. - -ENABLE_PREPROCESSING = YES - -# If the MACRO_EXPANSION tag is set to YES Doxygen will expand all macro -# names in the source code. If set to NO (the default) only conditional -# compilation will be performed. Macro expansion can be done in a controlled -# way by setting EXPAND_ONLY_PREDEF to YES. - -MACRO_EXPANSION = NO - -# If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES -# then the macro expansion is limited to the macros specified with the -# PREDEFINED and EXPAND_AS_PREDEFINED tags. - -EXPAND_ONLY_PREDEF = NO - -# If the SEARCH_INCLUDES tag is set to YES (the default) the includes files -# in the INCLUDE_PATH (see below) will be search if a #include is found. - -SEARCH_INCLUDES = YES - -# The INCLUDE_PATH tag can be used to specify one or more directories that -# contain include files that are not input files but should be processed by -# the preprocessor. - -INCLUDE_PATH = - -# You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard -# patterns (like *.h and *.hpp) to filter out the header-files in the -# directories. If left blank, the patterns specified with FILE_PATTERNS will -# be used. - -INCLUDE_FILE_PATTERNS = - -# The PREDEFINED tag can be used to specify one or more macro names that -# are defined before the preprocessor is started (similar to the -D option of -# gcc). The argument of the tag is a list of macros of the form: name -# or name=definition (no spaces). If the definition and the = are -# omitted =1 is assumed. - -PREDEFINED = - -# If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then -# this tag can be used to specify a list of macro names that should be expanded. -# The macro definition that is found in the sources will be used. -# Use the PREDEFINED tag if you want to use a different macro definition. - -EXPAND_AS_DEFINED = - -# If the SKIP_FUNCTION_MACROS tag is set to YES (the default) then -# doxygen's preprocessor will remove all function-like macros that are alone -# on a line, have an all uppercase name, and do not end with a semicolon. Such -# function macros are typically used for boiler-plate code, and will confuse the -# parser if not removed. - -SKIP_FUNCTION_MACROS = YES - -#--------------------------------------------------------------------------- -# Configuration::additions related to external references -#--------------------------------------------------------------------------- - -# The TAGFILES option can be used to specify one or more tagfiles. -# Optionally an initial location of the external documentation -# can be added for each tagfile. The format of a tag file without -# this location is as follows: -# TAGFILES = file1 file2 ... -# Adding location for the tag files is done as follows: -# TAGFILES = file1=loc1 "file2 = loc2" ... -# where "loc1" and "loc2" can be relative or absolute paths or -# URLs. If a location is present for each tag, the installdox tool -# does not have to be run to correct the links. -# Note that each tag file must have a unique name -# (where the name does NOT include the path) -# If a tag file is not located in the directory in which doxygen -# is run, you must also specify the path to the tagfile here. - -TAGFILES = - -# When a file name is specified after GENERATE_TAGFILE, doxygen will create -# a tag file that is based on the input files it reads. - -GENERATE_TAGFILE = - -# If the ALLEXTERNALS tag is set to YES all external classes will be listed -# in the class index. If set to NO only the inherited external classes -# will be listed. - -ALLEXTERNALS = NO - -# If the EXTERNAL_GROUPS tag is set to YES all external groups will be listed -# in the modules index. If set to NO, only the current project's groups will -# be listed. - -EXTERNAL_GROUPS = YES - -# The PERL_PATH should be the absolute path and name of the perl script -# interpreter (i.e. the result of `which perl'). - -PERL_PATH = /usr/bin/perl - -#--------------------------------------------------------------------------- -# Configuration options related to the dot tool -#--------------------------------------------------------------------------- - -# If the CLASS_DIAGRAMS tag is set to YES (the default) Doxygen will -# generate a inheritance diagram (in HTML, RTF and LaTeX) for classes with base or -# super classes. Setting the tag to NO turns the diagrams off. Note that this -# option is superseded by the HAVE_DOT option below. This is only a fallback. It is -# recommended to install and use dot, since it yields more powerful graphs. - -CLASS_DIAGRAMS = YES - -# If set to YES, the inheritance and collaboration graphs will hide -# inheritance and usage relations if the target is undocumented -# or is not a class. - -HIDE_UNDOC_RELATIONS = YES - -# If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is -# available from the path. This tool is part of Graphviz, a graph visualization -# toolkit from AT&T and Lucent Bell Labs. The other options in this section -# have no effect if this option is set to NO (the default) - -HAVE_DOT = NO - -# If the CLASS_GRAPH and HAVE_DOT tags are set to YES then doxygen -# will generate a graph for each documented class showing the direct and -# indirect inheritance relations. Setting this tag to YES will force the -# the CLASS_DIAGRAMS tag to NO. - -CLASS_GRAPH = YES - -# If the COLLABORATION_GRAPH and HAVE_DOT tags are set to YES then doxygen -# will generate a graph for each documented class showing the direct and -# indirect implementation dependencies (inheritance, containment, and -# class references variables) of the class with other documented classes. - -COLLABORATION_GRAPH = YES - -# If the UML_LOOK tag is set to YES doxygen will generate inheritance and -# collaboration diagrams in a style similar to the OMG's Unified Modeling -# Language. - -UML_LOOK = NO - -# If set to YES, the inheritance and collaboration graphs will show the -# relations between templates and their instances. - -TEMPLATE_RELATIONS = NO - -# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDE_GRAPH, and HAVE_DOT -# tags are set to YES then doxygen will generate a graph for each documented -# file showing the direct and indirect include dependencies of the file with -# other documented files. - -INCLUDE_GRAPH = YES - -# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDED_BY_GRAPH, and -# HAVE_DOT tags are set to YES then doxygen will generate a graph for each -# documented header file showing the documented files that directly or -# indirectly include this file. - -INCLUDED_BY_GRAPH = YES - -# If the CALL_GRAPH and HAVE_DOT tags are set to YES then doxygen will -# generate a call dependency graph for every global function or class method. -# Note that enabling this option will significantly increase the time of a run. -# So in most cases it will be better to enable call graphs for selected -# functions only using the \callgraph command. - -CALL_GRAPH = NO - -# If the GRAPHICAL_HIERARCHY and HAVE_DOT tags are set to YES then doxygen -# will graphical hierarchy of all classes instead of a textual one. - -GRAPHICAL_HIERARCHY = YES - -# The DOT_IMAGE_FORMAT tag can be used to set the image format of the images -# generated by dot. Possible values are png, jpg, or gif -# If left blank png will be used. - -DOT_IMAGE_FORMAT = png - -# The tag DOT_PATH can be used to specify the path where the dot tool can be -# found. If left blank, it is assumed the dot tool can be found on the path. - -DOT_PATH = - -# The DOTFILE_DIRS tag can be used to specify one or more directories that -# contain dot files that are included in the documentation (see the -# \dotfile command). - -DOTFILE_DIRS = - -# The MAX_DOT_GRAPH_WIDTH tag can be used to set the maximum allowed width -# (in pixels) of the graphs generated by dot. If a graph becomes larger than -# this value, doxygen will try to truncate the graph, so that it fits within -# the specified constraint. Beware that most browsers cannot cope with very -# large images. - -MAX_DOT_GRAPH_WIDTH = 1024 - -# The MAX_DOT_GRAPH_HEIGHT tag can be used to set the maximum allows height -# (in pixels) of the graphs generated by dot. If a graph becomes larger than -# this value, doxygen will try to truncate the graph, so that it fits within -# the specified constraint. Beware that most browsers cannot cope with very -# large images. - -MAX_DOT_GRAPH_HEIGHT = 1024 - -# The MAX_DOT_GRAPH_DEPTH tag can be used to set the maximum depth of the -# graphs generated by dot. A depth value of 3 means that only nodes reachable -# from the root by following a path via at most 3 edges will be shown. Nodes that -# lay further from the root node will be omitted. Note that setting this option to -# 1 or 2 may greatly reduce the computation time needed for large code bases. Also -# note that a graph may be further truncated if the graph's image dimensions are -# not sufficient to fit the graph (see MAX_DOT_GRAPH_WIDTH and MAX_DOT_GRAPH_HEIGHT). -# If 0 is used for the depth value (the default), the graph is not depth-constrained. - -MAX_DOT_GRAPH_DEPTH = 0 - -# If the GENERATE_LEGEND tag is set to YES (the default) Doxygen will -# generate a legend page explaining the meaning of the various boxes and -# arrows in the dot generated graphs. - -GENERATE_LEGEND = YES - -# If the DOT_CLEANUP tag is set to YES (the default) Doxygen will -# remove the intermediate dot files that are used to generate -# the various graphs. - -DOT_CLEANUP = YES - -#--------------------------------------------------------------------------- -# Configuration::additions related to the search engine -#--------------------------------------------------------------------------- - -# The SEARCHENGINE tag specifies whether or not a search engine should be -# used. If set to NO the values of all tags below this one will be ignored. - -SEARCHENGINE = NO - diff -Nru librtas-1.3.13/doxygen.rtasevent librtas-2.0.0/doxygen.rtasevent --- librtas-1.3.13/doxygen.rtasevent 2014-10-23 02:23:41.000000000 +0000 +++ librtas-2.0.0/doxygen.rtasevent 1970-01-01 00:00:00.000000000 +0000 @@ -1,1154 +0,0 @@ -# Doxyfile 1.3.8 - -# This file describes the settings to be used by the documentation system -# doxygen (www.doxygen.org) for a project -# -# All text after a hash (#) is considered a comment and will be ignored -# The format is: -# TAG = value [value, ...] -# For lists items can also be appended using: -# TAG += value [value, ...] -# Values that contain spaces should be placed between quotes (" ") - -#--------------------------------------------------------------------------- -# Project related configuration options -#--------------------------------------------------------------------------- - -# The PROJECT_NAME tag is a single word (or a sequence of words surrounded -# by quotes) that should identify the project. - -PROJECT_NAME = librtasevent - -# The PROJECT_NUMBER tag can be used to enter a project or revision number. -# This could be handy for archiving the generated documentation or -# if some version control system is used. - -PROJECT_NUMBER = - -# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) -# base path where the generated documentation will be put. -# If a relative path is entered, it will be relative to the location -# where doxygen was started. If left blank the current directory will be used. - -OUTPUT_DIRECTORY = doc/librtasevent - -# If the CREATE_SUBDIRS tag is set to YES, then doxygen will create -# 4096 sub-directories (in 2 levels) under the output directory of each output -# format and will distribute the generated files over these directories. -# Enabling this option can be useful when feeding doxygen a huge amount of source -# files, where putting all generated files in the same directory would otherwise -# cause performance problems for the file system. - -CREATE_SUBDIRS = NO - -# The OUTPUT_LANGUAGE tag is used to specify the language in which all -# documentation generated by doxygen is written. Doxygen will use this -# information to generate all constant output in the proper language. -# The default language is English, other supported languages are: -# Brazilian, Catalan, Chinese, Chinese-Traditional, Croatian, Czech, Danish, -# Dutch, Finnish, French, German, Greek, Hungarian, Italian, Japanese, -# Japanese-en (Japanese with English messages), Korean, Korean-en, Norwegian, -# Polish, Portuguese, Romanian, Russian, Serbian, Slovak, Slovene, Spanish, -# Swedish, and Ukrainian. - -OUTPUT_LANGUAGE = English - -# This tag can be used to specify the encoding used in the generated output. -# The encoding is not always determined by the language that is chosen, -# but also whether or not the output is meant for Windows or non-Windows users. -# In case there is a difference, setting the USE_WINDOWS_ENCODING tag to YES -# forces the Windows encoding (this is the default for the Windows binary), -# whereas setting the tag to NO uses a Unix-style encoding (the default for -# all platforms other than Windows). - -USE_WINDOWS_ENCODING = NO - -# If the BRIEF_MEMBER_DESC tag is set to YES (the default) Doxygen will -# include brief member descriptions after the members that are listed in -# the file and class documentation (similar to JavaDoc). -# Set to NO to disable this. - -BRIEF_MEMBER_DESC = YES - -# If the REPEAT_BRIEF tag is set to YES (the default) Doxygen will prepend -# the brief description of a member or function before the detailed description. -# Note: if both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the -# brief descriptions will be completely suppressed. - -REPEAT_BRIEF = NO - -# This tag implements a quasi-intelligent brief description abbreviator -# that is used to form the text in various listings. Each string -# in this list, if found as the leading text of the brief description, will be -# stripped from the text and the result after processing the whole list, is used -# as the annotated text. Otherwise, the brief description is used as-is. If left -# blank, the following values are used ("$name" is automatically replaced with the -# name of the entity): "The $name class" "The $name widget" "The $name file" -# "is" "provides" "specifies" "contains" "represents" "a" "an" "the" - -ABBREVIATE_BRIEF = - -# If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then -# Doxygen will generate a detailed section even if there is only a brief -# description. - -ALWAYS_DETAILED_SEC = NO - -# If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all inherited -# members of a class in the documentation of that class as if those members were -# ordinary class members. Constructors, destructors and assignment operators of -# the base classes will not be shown. - -INLINE_INHERITED_MEMB = NO - -# If the FULL_PATH_NAMES tag is set to YES then Doxygen will prepend the full -# path before files name in the file list and in the header files. If set -# to NO the shortest path that makes the file name unique will be used. - -FULL_PATH_NAMES = YES - -# If the FULL_PATH_NAMES tag is set to YES then the STRIP_FROM_PATH tag -# can be used to strip a user-defined part of the path. Stripping is -# only done if one of the specified strings matches the left-hand part of -# the path. The tag can be used to show relative paths in the file list. -# If left blank the directory from which doxygen is run is used as the -# path to strip. - -STRIP_FROM_PATH = - -# The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of -# the path mentioned in the documentation of a class, which tells -# the reader which header file to include in order to use a class. -# If left blank only the name of the header file containing the class -# definition is used. Otherwise one should specify the include paths that -# are normally passed to the compiler using the -I flag. - -STRIP_FROM_INC_PATH = - -# If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter -# (but less readable) file names. This can be useful is your file systems -# doesn't support long names like on DOS, Mac, or CD-ROM. - -SHORT_NAMES = NO - -# If the JAVADOC_AUTOBRIEF tag is set to YES then Doxygen -# will interpret the first line (until the first dot) of a JavaDoc-style -# comment as the brief description. If set to NO, the JavaDoc -# comments will behave just like the Qt-style comments (thus requiring an -# explicit @brief command for a brief description. - -JAVADOC_AUTOBRIEF = NO - -# The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make Doxygen -# treat a multi-line C++ special comment block (i.e. a block of //! or /// -# comments) as a brief description. This used to be the default behaviour. -# The new default is to treat a multi-line C++ comment block as a detailed -# description. Set this tag to YES if you prefer the old behaviour instead. - -MULTILINE_CPP_IS_BRIEF = NO - -# If the DETAILS_AT_TOP tag is set to YES then Doxygen -# will output the detailed description near the top, like JavaDoc. -# If set to NO, the detailed description appears after the member -# documentation. - -DETAILS_AT_TOP = NO - -# If the INHERIT_DOCS tag is set to YES (the default) then an undocumented -# member inherits the documentation from any documented member that it -# re-implements. - -INHERIT_DOCS = YES - -# If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC -# tag is set to YES, then doxygen will reuse the documentation of the first -# member in the group (if any) for the other members of the group. By default -# all members of a group must be documented explicitly. - -DISTRIBUTE_GROUP_DOC = NO - -# The TAB_SIZE tag can be used to set the number of spaces in a tab. -# Doxygen uses this value to replace tabs by spaces in code fragments. - -TAB_SIZE = 8 - -# This tag can be used to specify a number of aliases that acts -# as commands in the documentation. An alias has the form "name=value". -# For example adding "sideeffect=\par Side Effects:\n" will allow you to -# put the command \sideeffect (or @sideeffect) in the documentation, which -# will result in a user-defined paragraph with heading "Side Effects:". -# You can put \n's in the value part of an alias to insert newlines. - -ALIASES = - -# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C sources -# only. Doxygen will then generate output that is more tailored for C. -# For instance, some of the names that are used will be different. The list -# of all members will be omitted, etc. - -OPTIMIZE_OUTPUT_FOR_C = YES - -# Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java sources -# only. Doxygen will then generate output that is more tailored for Java. -# For instance, namespaces will be presented as packages, qualified scopes -# will look different, etc. - -OPTIMIZE_OUTPUT_JAVA = NO - -# Set the SUBGROUPING tag to YES (the default) to allow class member groups of -# the same type (for instance a group of public functions) to be put as a -# subgroup of that type (e.g. under the Public Functions section). Set it to -# NO to prevent subgrouping. Alternatively, this can be done per class using -# the \nosubgrouping command. - -SUBGROUPING = NO - -#--------------------------------------------------------------------------- -# Build related configuration options -#--------------------------------------------------------------------------- - -# If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in -# documentation are documented, even if no documentation was available. -# Private class members and static file members will be hidden unless -# the EXTRACT_PRIVATE and EXTRACT_STATIC tags are set to YES - -EXTRACT_ALL = YES - -# If the EXTRACT_PRIVATE tag is set to YES all private members of a class -# will be included in the documentation. - -EXTRACT_PRIVATE = NO - -# If the EXTRACT_STATIC tag is set to YES all static members of a file -# will be included in the documentation. - -EXTRACT_STATIC = YES - -# If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs) -# defined locally in source files will be included in the documentation. -# If set to NO only classes defined in header files are included. - -EXTRACT_LOCAL_CLASSES = YES - -# This flag is only useful for Objective-C code. When set to YES local -# methods, which are defined in the implementation section but not in -# the interface are included in the documentation. -# If set to NO (the default) only methods in the interface are included. - -EXTRACT_LOCAL_METHODS = NO - -# If the HIDE_UNDOC_MEMBERS tag is set to YES, Doxygen will hide all -# undocumented members of documented classes, files or namespaces. -# If set to NO (the default) these members will be included in the -# various overviews, but no documentation section is generated. -# This option has no effect if EXTRACT_ALL is enabled. - -HIDE_UNDOC_MEMBERS = NO - -# If the HIDE_UNDOC_CLASSES tag is set to YES, Doxygen will hide all -# undocumented classes that are normally visible in the class hierarchy. -# If set to NO (the default) these classes will be included in the various -# overviews. This option has no effect if EXTRACT_ALL is enabled. - -HIDE_UNDOC_CLASSES = NO - -# If the HIDE_FRIEND_COMPOUNDS tag is set to YES, Doxygen will hide all -# friend (class|struct|union) declarations. -# If set to NO (the default) these declarations will be included in the -# documentation. - -HIDE_FRIEND_COMPOUNDS = NO - -# If the HIDE_IN_BODY_DOCS tag is set to YES, Doxygen will hide any -# documentation blocks found inside the body of a function. -# If set to NO (the default) these blocks will be appended to the -# function's detailed documentation block. - -HIDE_IN_BODY_DOCS = NO - -# The INTERNAL_DOCS tag determines if documentation -# that is typed after a \internal command is included. If the tag is set -# to NO (the default) then the documentation will be excluded. -# Set it to YES to include the internal documentation. - -INTERNAL_DOCS = NO - -# If the CASE_SENSE_NAMES tag is set to NO then Doxygen will only generate -# file names in lower-case letters. If set to YES upper-case letters are also -# allowed. This is useful if you have classes or files whose names only differ -# in case and if your file system supports case sensitive file names. Windows -# and Mac users are advised to set this option to NO. - -CASE_SENSE_NAMES = YES - -# If the HIDE_SCOPE_NAMES tag is set to NO (the default) then Doxygen -# will show members with their full class and namespace scopes in the -# documentation. If set to YES the scope will be hidden. - -HIDE_SCOPE_NAMES = NO - -# If the SHOW_INCLUDE_FILES tag is set to YES (the default) then Doxygen -# will put a list of the files that are included by a file in the documentation -# of that file. - -SHOW_INCLUDE_FILES = YES - -# If the INLINE_INFO tag is set to YES (the default) then a tag [inline] -# is inserted in the documentation for inline members. - -INLINE_INFO = YES - -# If the SORT_MEMBER_DOCS tag is set to YES (the default) then doxygen -# will sort the (detailed) documentation of file and class members -# alphabetically by member name. If set to NO the members will appear in -# declaration order. - -SORT_MEMBER_DOCS = YES - -# If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the -# brief documentation of file, namespace and class members alphabetically -# by member name. If set to NO (the default) the members will appear in -# declaration order. - -SORT_BRIEF_DOCS = NO - -# If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be -# sorted by fully-qualified names, including namespaces. If set to -# NO (the default), the class list will be sorted only by class name, -# not including the namespace part. -# Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES. -# Note: This option applies only to the class list, not to the -# alphabetical list. - -SORT_BY_SCOPE_NAME = NO - -# The GENERATE_TODOLIST tag can be used to enable (YES) or -# disable (NO) the todo list. This list is created by putting \todo -# commands in the documentation. - -GENERATE_TODOLIST = YES - -# The GENERATE_TESTLIST tag can be used to enable (YES) or -# disable (NO) the test list. This list is created by putting \test -# commands in the documentation. - -GENERATE_TESTLIST = YES - -# The GENERATE_BUGLIST tag can be used to enable (YES) or -# disable (NO) the bug list. This list is created by putting \bug -# commands in the documentation. - -GENERATE_BUGLIST = YES - -# The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or -# disable (NO) the deprecated list. This list is created by putting -# \deprecated commands in the documentation. - -GENERATE_DEPRECATEDLIST= YES - -# The ENABLED_SECTIONS tag can be used to enable conditional -# documentation sections, marked by \if sectionname ... \endif. - -ENABLED_SECTIONS = - -# The MAX_INITIALIZER_LINES tag determines the maximum number of lines -# the initial value of a variable or define consists of for it to appear in -# the documentation. If the initializer consists of more lines than specified -# here it will be hidden. Use a value of 0 to hide initializers completely. -# The appearance of the initializer of individual variables and defines in the -# documentation can be controlled using \showinitializer or \hideinitializer -# command in the documentation regardless of this setting. - -MAX_INITIALIZER_LINES = 30 - -# Set the SHOW_USED_FILES tag to NO to disable the list of files generated -# at the bottom of the documentation of classes and structs. If set to YES the -# list will mention the files that were used to generate the documentation. - -SHOW_USED_FILES = YES - -#--------------------------------------------------------------------------- -# configuration options related to warning and progress messages -#--------------------------------------------------------------------------- - -# The QUIET tag can be used to turn on/off the messages that are generated -# by doxygen. Possible values are YES and NO. If left blank NO is used. - -QUIET = NO - -# The WARNINGS tag can be used to turn on/off the warning messages that are -# generated by doxygen. Possible values are YES and NO. If left blank -# NO is used. - -WARNINGS = YES - -# If WARN_IF_UNDOCUMENTED is set to YES, then doxygen will generate warnings -# for undocumented members. If EXTRACT_ALL is set to YES then this flag will -# automatically be disabled. - -WARN_IF_UNDOCUMENTED = YES - -# If WARN_IF_DOC_ERROR is set to YES, doxygen will generate warnings for -# potential errors in the documentation, such as not documenting some -# parameters in a documented function, or documenting parameters that -# don't exist or using markup commands wrongly. - -WARN_IF_DOC_ERROR = YES - -# The WARN_FORMAT tag determines the format of the warning messages that -# doxygen can produce. The string should contain the $file, $line, and $text -# tags, which will be replaced by the file and line number from which the -# warning originated and the warning text. - -WARN_FORMAT = "$file:$line: $text" - -# The WARN_LOGFILE tag can be used to specify a file to which warning -# and error messages should be written. If left blank the output is written -# to stderr. - -WARN_LOGFILE = - -#--------------------------------------------------------------------------- -# configuration options related to the input files -#--------------------------------------------------------------------------- - -# The INPUT tag can be used to specify the files and/or directories that contain -# documented source files. You may enter file names like "myfile.cpp" or -# directories like "/usr/src/myproject". Separate the files or directories -# with spaces. - -INPUT = ./librtasevent_src - -# If the value of the INPUT tag contains directories, you can use the -# FILE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp -# and *.h) to filter out the source-files in the directories. If left -# blank the following patterns are tested: -# *.c *.cc *.cxx *.cpp *.c++ *.java *.ii *.ixx *.ipp *.i++ *.inl *.h *.hh *.hxx *.hpp -# *.h++ *.idl *.odl *.cs *.php *.php3 *.inc *.m *.mm - -FILE_PATTERNS = - -# The RECURSIVE tag can be used to turn specify whether or not subdirectories -# should be searched for input files as well. Possible values are YES and NO. -# If left blank NO is used. - -RECURSIVE = NO - -# The EXCLUDE tag can be used to specify files and/or directories that should -# excluded from the INPUT source files. This way you can easily exclude a -# subdirectory from a directory tree whose root is specified with the INPUT tag. - -EXCLUDE = - -# The EXCLUDE_SYMLINKS tag can be used select whether or not files or directories -# that are symbolic links (a Unix filesystem feature) are excluded from the input. - -EXCLUDE_SYMLINKS = NO - -# If the value of the INPUT tag contains directories, you can use the -# EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude -# certain files from those directories. - -EXCLUDE_PATTERNS = - -# The EXAMPLE_PATH tag can be used to specify one or more files or -# directories that contain example code fragments that are included (see -# the \include command). - -EXAMPLE_PATH = - -# If the value of the EXAMPLE_PATH tag contains directories, you can use the -# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp -# and *.h) to filter out the source-files in the directories. If left -# blank all files are included. - -EXAMPLE_PATTERNS = - -# If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be -# searched for input files to be used with the \include or \dontinclude -# commands irrespective of the value of the RECURSIVE tag. -# Possible values are YES and NO. If left blank NO is used. - -EXAMPLE_RECURSIVE = NO - -# The IMAGE_PATH tag can be used to specify one or more files or -# directories that contain image that are included in the documentation (see -# the \image command). - -IMAGE_PATH = - -# The INPUT_FILTER tag can be used to specify a program that doxygen should -# invoke to filter for each input file. Doxygen will invoke the filter program -# by executing (via popen()) the command , where -# is the value of the INPUT_FILTER tag, and is the name of an -# input file. Doxygen will then use the output that the filter program writes -# to standard output. If FILTER_PATTERNS is specified, this tag will be -# ignored. - -INPUT_FILTER = - -# The FILTER_PATTERNS tag can be used to specify filters on a per file pattern -# basis. Doxygen will compare the file name with each pattern and apply the -# filter if there is a match. The filters are a list of the form: -# pattern=filter (like *.cpp=my_cpp_filter). See INPUT_FILTER for further -# info on how filters are used. If FILTER_PATTERNS is empty, INPUT_FILTER -# is applied to all files. - -FILTER_PATTERNS = - -# If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using -# INPUT_FILTER) will be used to filter the input files when producing source -# files to browse (i.e. when SOURCE_BROWSER is set to YES). - -FILTER_SOURCE_FILES = NO - -#--------------------------------------------------------------------------- -# configuration options related to source browsing -#--------------------------------------------------------------------------- - -# If the SOURCE_BROWSER tag is set to YES then a list of source files will -# be generated. Documented entities will be cross-referenced with these sources. -# Note: To get rid of all source code in the generated output, make sure also -# VERBATIM_HEADERS is set to NO. - -SOURCE_BROWSER = NO - -# Setting the INLINE_SOURCES tag to YES will include the body -# of functions and classes directly in the documentation. - -INLINE_SOURCES = NO - -# Setting the STRIP_CODE_COMMENTS tag to YES (the default) will instruct -# doxygen to hide any special comment blocks from generated source code -# fragments. Normal C and C++ comments will always remain visible. - -STRIP_CODE_COMMENTS = YES - -# If the REFERENCED_BY_RELATION tag is set to YES (the default) -# then for each documented function all documented -# functions referencing it will be listed. - -REFERENCED_BY_RELATION = YES - -# If the REFERENCES_RELATION tag is set to YES (the default) -# then for each documented function all documented entities -# called/used by that function will be listed. - -REFERENCES_RELATION = YES - -# If the VERBATIM_HEADERS tag is set to YES (the default) then Doxygen -# will generate a verbatim copy of the header file for each class for -# which an include is specified. Set to NO to disable this. - -VERBATIM_HEADERS = YES - -#--------------------------------------------------------------------------- -# configuration options related to the alphabetical class index -#--------------------------------------------------------------------------- - -# If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index -# of all compounds will be generated. Enable this if the project -# contains a lot of classes, structs, unions or interfaces. - -ALPHABETICAL_INDEX = NO - -# If the alphabetical index is enabled (see ALPHABETICAL_INDEX) then -# the COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns -# in which this list will be split (can be a number in the range [1..20]) - -COLS_IN_ALPHA_INDEX = 5 - -# In case all classes in a project start with a common prefix, all -# classes will be put under the same header in the alphabetical index. -# The IGNORE_PREFIX tag can be used to specify one or more prefixes that -# should be ignored while generating the index headers. - -IGNORE_PREFIX = - -#--------------------------------------------------------------------------- -# configuration options related to the HTML output -#--------------------------------------------------------------------------- - -# If the GENERATE_HTML tag is set to YES (the default) Doxygen will -# generate HTML output. - -GENERATE_HTML = YES - -# The HTML_OUTPUT tag is used to specify where the HTML docs will be put. -# If a relative path is entered the value of OUTPUT_DIRECTORY will be -# put in front of it. If left blank `html' will be used as the default path. - -HTML_OUTPUT = html - -# The HTML_FILE_EXTENSION tag can be used to specify the file extension for -# each generated HTML page (for example: .htm,.php,.asp). If it is left blank -# doxygen will generate files with .html extension. - -HTML_FILE_EXTENSION = .html - -# The HTML_HEADER tag can be used to specify a personal HTML header for -# each generated HTML page. If it is left blank doxygen will generate a -# standard header. - -HTML_HEADER = - -# The HTML_FOOTER tag can be used to specify a personal HTML footer for -# each generated HTML page. If it is left blank doxygen will generate a -# standard footer. - -HTML_FOOTER = - -# The HTML_STYLESHEET tag can be used to specify a user-defined cascading -# style sheet that is used by each HTML page. It can be used to -# fine-tune the look of the HTML output. If the tag is left blank doxygen -# will generate a default style sheet. Note that doxygen will try to copy -# the style sheet file to the HTML output directory, so don't put your own -# stylesheet in the HTML output directory as well, or it will be erased! - -HTML_STYLESHEET = - -# If the HTML_ALIGN_MEMBERS tag is set to YES, the members of classes, -# files or namespaces will be aligned in HTML using tables. If set to -# NO a bullet list will be used. - -HTML_ALIGN_MEMBERS = YES - -# If the GENERATE_HTMLHELP tag is set to YES, additional index files -# will be generated that can be used as input for tools like the -# Microsoft HTML help workshop to generate a compressed HTML help file (.chm) -# of the generated HTML documentation. - -GENERATE_HTMLHELP = NO - -# If the GENERATE_HTMLHELP tag is set to YES, the CHM_FILE tag can -# be used to specify the file name of the resulting .chm file. You -# can add a path in front of the file if the result should not be -# written to the html output directory. - -CHM_FILE = - -# If the GENERATE_HTMLHELP tag is set to YES, the HHC_LOCATION tag can -# be used to specify the location (absolute path including file name) of -# the HTML help compiler (hhc.exe). If non-empty doxygen will try to run -# the HTML help compiler on the generated index.hhp. - -HHC_LOCATION = - -# If the GENERATE_HTMLHELP tag is set to YES, the GENERATE_CHI flag -# controls if a separate .chi index file is generated (YES) or that -# it should be included in the master .chm file (NO). - -GENERATE_CHI = NO - -# If the GENERATE_HTMLHELP tag is set to YES, the BINARY_TOC flag -# controls whether a binary table of contents is generated (YES) or a -# normal table of contents (NO) in the .chm file. - -BINARY_TOC = NO - -# The TOC_EXPAND flag can be set to YES to add extra items for group members -# to the contents of the HTML help documentation and to the tree view. - -TOC_EXPAND = NO - -# The DISABLE_INDEX tag can be used to turn on/off the condensed index at -# top of each HTML page. The value NO (the default) enables the index and -# the value YES disables it. - -DISABLE_INDEX = NO - -# This tag can be used to set the number of enum values (range [1..20]) -# that doxygen will group on one line in the generated HTML documentation. - -ENUM_VALUES_PER_LINE = 4 - -# If the GENERATE_TREEVIEW tag is set to YES, a side panel will be -# generated containing a tree-like index structure (just like the one that -# is generated for HTML Help). For this to work a browser that supports -# JavaScript, DHTML, CSS and frames is required (for instance Mozilla 1.0+, -# Netscape 6.0+, Internet explorer 5.0+, or Konqueror). Windows users are -# probably better off using the HTML help feature. - -GENERATE_TREEVIEW = NO - -# If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be -# used to set the initial width (in pixels) of the frame in which the tree -# is shown. - -TREEVIEW_WIDTH = 250 - -#--------------------------------------------------------------------------- -# configuration options related to the LaTeX output -#--------------------------------------------------------------------------- - -# If the GENERATE_LATEX tag is set to YES (the default) Doxygen will -# generate Latex output. - -GENERATE_LATEX = YES - -# The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put. -# If a relative path is entered the value of OUTPUT_DIRECTORY will be -# put in front of it. If left blank `latex' will be used as the default path. - -LATEX_OUTPUT = latex - -# The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be -# invoked. If left blank `latex' will be used as the default command name. - -LATEX_CMD_NAME = latex - -# The MAKEINDEX_CMD_NAME tag can be used to specify the command name to -# generate index for LaTeX. If left blank `makeindex' will be used as the -# default command name. - -MAKEINDEX_CMD_NAME = makeindex - -# If the COMPACT_LATEX tag is set to YES Doxygen generates more compact -# LaTeX documents. This may be useful for small projects and may help to -# save some trees in general. - -COMPACT_LATEX = NO - -# The PAPER_TYPE tag can be used to set the paper type that is used -# by the printer. Possible values are: a4, a4wide, letter, legal and -# executive. If left blank a4wide will be used. - -PAPER_TYPE = a4wide - -# The EXTRA_PACKAGES tag can be to specify one or more names of LaTeX -# packages that should be included in the LaTeX output. - -EXTRA_PACKAGES = - -# The LATEX_HEADER tag can be used to specify a personal LaTeX header for -# the generated latex document. The header should contain everything until -# the first chapter. If it is left blank doxygen will generate a -# standard header. Notice: only use this tag if you know what you are doing! - -LATEX_HEADER = - -# If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated -# is prepared for conversion to pdf (using ps2pdf). The pdf file will -# contain links (just like the HTML output) instead of page references -# This makes the output suitable for online browsing using a pdf viewer. - -PDF_HYPERLINKS = NO - -# If the USE_PDFLATEX tag is set to YES, pdflatex will be used instead of -# plain latex in the generated Makefile. Set this option to YES to get a -# higher quality PDF documentation. - -USE_PDFLATEX = NO - -# If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \\batchmode. -# command to the generated LaTeX files. This will instruct LaTeX to keep -# running if errors occur, instead of asking the user for help. -# This option is also used when generating formulas in HTML. - -LATEX_BATCHMODE = NO - -# If LATEX_HIDE_INDICES is set to YES then doxygen will not -# include the index chapters (such as File Index, Compound Index, etc.) -# in the output. - -LATEX_HIDE_INDICES = NO - -#--------------------------------------------------------------------------- -# configuration options related to the RTF output -#--------------------------------------------------------------------------- - -# If the GENERATE_RTF tag is set to YES Doxygen will generate RTF output -# The RTF output is optimized for Word 97 and may not look very pretty with -# other RTF readers or editors. - -GENERATE_RTF = NO - -# The RTF_OUTPUT tag is used to specify where the RTF docs will be put. -# If a relative path is entered the value of OUTPUT_DIRECTORY will be -# put in front of it. If left blank `rtf' will be used as the default path. - -RTF_OUTPUT = rtf - -# If the COMPACT_RTF tag is set to YES Doxygen generates more compact -# RTF documents. This may be useful for small projects and may help to -# save some trees in general. - -COMPACT_RTF = NO - -# If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated -# will contain hyperlink fields. The RTF file will -# contain links (just like the HTML output) instead of page references. -# This makes the output suitable for online browsing using WORD or other -# programs which support those fields. -# Note: wordpad (write) and others do not support links. - -RTF_HYPERLINKS = NO - -# Load stylesheet definitions from file. Syntax is similar to doxygen's -# config file, i.e. a series of assignments. You only have to provide -# replacements, missing definitions are set to their default value. - -RTF_STYLESHEET_FILE = - -# Set optional variables used in the generation of an rtf document. -# Syntax is similar to doxygen's config file. - -RTF_EXTENSIONS_FILE = - -#--------------------------------------------------------------------------- -# configuration options related to the man page output -#--------------------------------------------------------------------------- - -# If the GENERATE_MAN tag is set to YES (the default) Doxygen will -# generate man pages - -GENERATE_MAN = NO - -# The MAN_OUTPUT tag is used to specify where the man pages will be put. -# If a relative path is entered the value of OUTPUT_DIRECTORY will be -# put in front of it. If left blank `man' will be used as the default path. - -MAN_OUTPUT = man - -# The MAN_EXTENSION tag determines the extension that is added to -# the generated man pages (default is the subroutine's section .3) - -MAN_EXTENSION = .3 - -# If the MAN_LINKS tag is set to YES and Doxygen generates man output, -# then it will generate one additional man file for each entity -# documented in the real man page(s). These additional files -# only source the real man page, but without them the man command -# would be unable to find the correct page. The default is NO. - -MAN_LINKS = NO - -#--------------------------------------------------------------------------- -# configuration options related to the XML output -#--------------------------------------------------------------------------- - -# If the GENERATE_XML tag is set to YES Doxygen will -# generate an XML file that captures the structure of -# the code including all documentation. - -GENERATE_XML = NO - -# The XML_OUTPUT tag is used to specify where the XML pages will be put. -# If a relative path is entered the value of OUTPUT_DIRECTORY will be -# put in front of it. If left blank `xml' will be used as the default path. - -XML_OUTPUT = xml - -# The XML_SCHEMA tag can be used to specify an XML schema, -# which can be used by a validating XML parser to check the -# syntax of the XML files. - -XML_SCHEMA = - -# The XML_DTD tag can be used to specify an XML DTD, -# which can be used by a validating XML parser to check the -# syntax of the XML files. - -XML_DTD = - -# If the XML_PROGRAMLISTING tag is set to YES Doxygen will -# dump the program listings (including syntax highlighting -# and cross-referencing information) to the XML output. Note that -# enabling this will significantly increase the size of the XML output. - -XML_PROGRAMLISTING = YES - -#--------------------------------------------------------------------------- -# configuration options for the AutoGen Definitions output -#--------------------------------------------------------------------------- - -# If the GENERATE_AUTOGEN_DEF tag is set to YES Doxygen will -# generate an AutoGen Definitions (see autogen.sf.net) file -# that captures the structure of the code including all -# documentation. Note that this feature is still experimental -# and incomplete at the moment. - -GENERATE_AUTOGEN_DEF = NO - -#--------------------------------------------------------------------------- -# configuration options related to the Perl module output -#--------------------------------------------------------------------------- - -# If the GENERATE_PERLMOD tag is set to YES Doxygen will -# generate a Perl module file that captures the structure of -# the code including all documentation. Note that this -# feature is still experimental and incomplete at the -# moment. - -GENERATE_PERLMOD = NO - -# If the PERLMOD_LATEX tag is set to YES Doxygen will generate -# the necessary Makefile rules, Perl scripts and LaTeX code to be able -# to generate PDF and DVI output from the Perl module output. - -PERLMOD_LATEX = NO - -# If the PERLMOD_PRETTY tag is set to YES the Perl module output will be -# nicely formatted so it can be parsed by a human reader. This is useful -# if you want to understand what is going on. On the other hand, if this -# tag is set to NO the size of the Perl module output will be much smaller -# and Perl will parse it just the same. - -PERLMOD_PRETTY = YES - -# The names of the make variables in the generated doxyrules.make file -# are prefixed with the string contained in PERLMOD_MAKEVAR_PREFIX. -# This is useful so different doxyrules.make files included by the same -# Makefile don't overwrite each other's variables. - -PERLMOD_MAKEVAR_PREFIX = - -#--------------------------------------------------------------------------- -# Configuration options related to the preprocessor -#--------------------------------------------------------------------------- - -# If the ENABLE_PREPROCESSING tag is set to YES (the default) Doxygen will -# evaluate all C-preprocessor directives found in the sources and include -# files. - -ENABLE_PREPROCESSING = YES - -# If the MACRO_EXPANSION tag is set to YES Doxygen will expand all macro -# names in the source code. If set to NO (the default) only conditional -# compilation will be performed. Macro expansion can be done in a controlled -# way by setting EXPAND_ONLY_PREDEF to YES. - -MACRO_EXPANSION = NO - -# If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES -# then the macro expansion is limited to the macros specified with the -# PREDEFINED and EXPAND_AS_PREDEFINED tags. - -EXPAND_ONLY_PREDEF = NO - -# If the SEARCH_INCLUDES tag is set to YES (the default) the includes files -# in the INCLUDE_PATH (see below) will be search if a #include is found. - -SEARCH_INCLUDES = YES - -# The INCLUDE_PATH tag can be used to specify one or more directories that -# contain include files that are not input files but should be processed by -# the preprocessor. - -INCLUDE_PATH = - -# You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard -# patterns (like *.h and *.hpp) to filter out the header-files in the -# directories. If left blank, the patterns specified with FILE_PATTERNS will -# be used. - -INCLUDE_FILE_PATTERNS = - -# The PREDEFINED tag can be used to specify one or more macro names that -# are defined before the preprocessor is started (similar to the -D option of -# gcc). The argument of the tag is a list of macros of the form: name -# or name=definition (no spaces). If the definition and the = are -# omitted =1 is assumed. - -PREDEFINED = - -# If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then -# this tag can be used to specify a list of macro names that should be expanded. -# The macro definition that is found in the sources will be used. -# Use the PREDEFINED tag if you want to use a different macro definition. - -EXPAND_AS_DEFINED = - -# If the SKIP_FUNCTION_MACROS tag is set to YES (the default) then -# doxygen's preprocessor will remove all function-like macros that are alone -# on a line, have an all uppercase name, and do not end with a semicolon. Such -# function macros are typically used for boiler-plate code, and will confuse the -# parser if not removed. - -SKIP_FUNCTION_MACROS = YES - -#--------------------------------------------------------------------------- -# Configuration::additions related to external references -#--------------------------------------------------------------------------- - -# The TAGFILES option can be used to specify one or more tagfiles. -# Optionally an initial location of the external documentation -# can be added for each tagfile. The format of a tag file without -# this location is as follows: -# TAGFILES = file1 file2 ... -# Adding location for the tag files is done as follows: -# TAGFILES = file1=loc1 "file2 = loc2" ... -# where "loc1" and "loc2" can be relative or absolute paths or -# URLs. If a location is present for each tag, the installdox tool -# does not have to be run to correct the links. -# Note that each tag file must have a unique name -# (where the name does NOT include the path) -# If a tag file is not located in the directory in which doxygen -# is run, you must also specify the path to the tagfile here. - -TAGFILES = - -# When a file name is specified after GENERATE_TAGFILE, doxygen will create -# a tag file that is based on the input files it reads. - -GENERATE_TAGFILE = - -# If the ALLEXTERNALS tag is set to YES all external classes will be listed -# in the class index. If set to NO only the inherited external classes -# will be listed. - -ALLEXTERNALS = NO - -# If the EXTERNAL_GROUPS tag is set to YES all external groups will be listed -# in the modules index. If set to NO, only the current project's groups will -# be listed. - -EXTERNAL_GROUPS = YES - -# The PERL_PATH should be the absolute path and name of the perl script -# interpreter (i.e. the result of `which perl'). - -PERL_PATH = /usr/bin/perl - -#--------------------------------------------------------------------------- -# Configuration options related to the dot tool -#--------------------------------------------------------------------------- - -# If the CLASS_DIAGRAMS tag is set to YES (the default) Doxygen will -# generate a inheritance diagram (in HTML, RTF and LaTeX) for classes with base or -# super classes. Setting the tag to NO turns the diagrams off. Note that this -# option is superseded by the HAVE_DOT option below. This is only a fallback. It is -# recommended to install and use dot, since it yields more powerful graphs. - -CLASS_DIAGRAMS = YES - -# If set to YES, the inheritance and collaboration graphs will hide -# inheritance and usage relations if the target is undocumented -# or is not a class. - -HIDE_UNDOC_RELATIONS = YES - -# If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is -# available from the path. This tool is part of Graphviz, a graph visualization -# toolkit from AT&T and Lucent Bell Labs. The other options in this section -# have no effect if this option is set to NO (the default) - -HAVE_DOT = NO - -# If the CLASS_GRAPH and HAVE_DOT tags are set to YES then doxygen -# will generate a graph for each documented class showing the direct and -# indirect inheritance relations. Setting this tag to YES will force the -# the CLASS_DIAGRAMS tag to NO. - -CLASS_GRAPH = YES - -# If the COLLABORATION_GRAPH and HAVE_DOT tags are set to YES then doxygen -# will generate a graph for each documented class showing the direct and -# indirect implementation dependencies (inheritance, containment, and -# class references variables) of the class with other documented classes. - -COLLABORATION_GRAPH = YES - -# If the UML_LOOK tag is set to YES doxygen will generate inheritance and -# collaboration diagrams in a style similar to the OMG's Unified Modeling -# Language. - -UML_LOOK = NO - -# If set to YES, the inheritance and collaboration graphs will show the -# relations between templates and their instances. - -TEMPLATE_RELATIONS = NO - -# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDE_GRAPH, and HAVE_DOT -# tags are set to YES then doxygen will generate a graph for each documented -# file showing the direct and indirect include dependencies of the file with -# other documented files. - -INCLUDE_GRAPH = YES - -# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDED_BY_GRAPH, and -# HAVE_DOT tags are set to YES then doxygen will generate a graph for each -# documented header file showing the documented files that directly or -# indirectly include this file. - -INCLUDED_BY_GRAPH = YES - -# If the CALL_GRAPH and HAVE_DOT tags are set to YES then doxygen will -# generate a call dependency graph for every global function or class method. -# Note that enabling this option will significantly increase the time of a run. -# So in most cases it will be better to enable call graphs for selected -# functions only using the \callgraph command. - -CALL_GRAPH = NO - -# If the GRAPHICAL_HIERARCHY and HAVE_DOT tags are set to YES then doxygen -# will graphical hierarchy of all classes instead of a textual one. - -GRAPHICAL_HIERARCHY = YES - -# The DOT_IMAGE_FORMAT tag can be used to set the image format of the images -# generated by dot. Possible values are png, jpg, or gif -# If left blank png will be used. - -DOT_IMAGE_FORMAT = png - -# The tag DOT_PATH can be used to specify the path where the dot tool can be -# found. If left blank, it is assumed the dot tool can be found on the path. - -DOT_PATH = - -# The DOTFILE_DIRS tag can be used to specify one or more directories that -# contain dot files that are included in the documentation (see the -# \dotfile command). - -DOTFILE_DIRS = - -# The MAX_DOT_GRAPH_WIDTH tag can be used to set the maximum allowed width -# (in pixels) of the graphs generated by dot. If a graph becomes larger than -# this value, doxygen will try to truncate the graph, so that it fits within -# the specified constraint. Beware that most browsers cannot cope with very -# large images. - -MAX_DOT_GRAPH_WIDTH = 1024 - -# The MAX_DOT_GRAPH_HEIGHT tag can be used to set the maximum allows height -# (in pixels) of the graphs generated by dot. If a graph becomes larger than -# this value, doxygen will try to truncate the graph, so that it fits within -# the specified constraint. Beware that most browsers cannot cope with very -# large images. - -MAX_DOT_GRAPH_HEIGHT = 1024 - -# The MAX_DOT_GRAPH_DEPTH tag can be used to set the maximum depth of the -# graphs generated by dot. A depth value of 3 means that only nodes reachable -# from the root by following a path via at most 3 edges will be shown. Nodes that -# lay further from the root node will be omitted. Note that setting this option to -# 1 or 2 may greatly reduce the computation time needed for large code bases. Also -# note that a graph may be further truncated if the graph's image dimensions are -# not sufficient to fit the graph (see MAX_DOT_GRAPH_WIDTH and MAX_DOT_GRAPH_HEIGHT). -# If 0 is used for the depth value (the default), the graph is not depth-constrained. - -MAX_DOT_GRAPH_DEPTH = 0 - -# If the GENERATE_LEGEND tag is set to YES (the default) Doxygen will -# generate a legend page explaining the meaning of the various boxes and -# arrows in the dot generated graphs. - -GENERATE_LEGEND = YES - -# If the DOT_CLEANUP tag is set to YES (the default) Doxygen will -# remove the intermediate dot files that are used to generate -# the various graphs. - -DOT_CLEANUP = YES - -#--------------------------------------------------------------------------- -# Configuration::additions related to the search engine -#--------------------------------------------------------------------------- - -# The SEARCHENGINE tag specifies whether or not a search engine should be -# used. If set to NO the values of all tags below this one will be ignored. - -SEARCHENGINE = NO - diff -Nru librtas-1.3.13/libofdt_src/common.h librtas-2.0.0/libofdt_src/common.h --- librtas-1.3.13/libofdt_src/common.h 2014-10-23 02:23:41.000000000 +0000 +++ librtas-2.0.0/libofdt_src/common.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,60 +0,0 @@ -/** - * @file common.h - * - * Copyright (C) 2008/2009 IBM Corporation - * Common Public License Version 1.0 (see COPYRIGHT) - * - * @author Manish Ahuja mahuja@us.ibm.com - */ -#ifndef _COMMON_H_ -#define _COMMON_H_ - -#include "libofdt.h" - -#define DRC_STR_MAX 48 -#define OFDT_BASE "/proc/device-tree" - -struct delete_struct { - struct delete_struct *next; - struct node *dnode; - struct property *dprop; -}; - -struct dr_connector { - char name[DRC_STR_MAX]; - char type[DRC_STR_MAX]; - unsigned int index; - unsigned int powerdomain; - struct dr_connector *next; -}; - -struct of_list_prop { - char *_data; - char *val; - int n_entries; -}; - -struct drc_prop_grp { - struct of_list_prop drc_names; - struct of_list_prop drc_types; - struct of_list_prop drc_indexes; - struct of_list_prop drc_domains; -}; - -struct dr_connector *get_drc_info(const char *); -void free_drc_info(struct dr_connector *); -char *of_to_full_path(const char *); -struct dr_connector *find_drc_info(const char *); -int file_exists(const char *, const char *); -void create_drc_properties(struct node *, struct dr_connector *); -void add_property(struct node *, const char *, char *); - -static inline void *zalloc(int sz) { - void *tmp = malloc(sz); - if (tmp) - memset(tmp, 0, sz); - - return tmp; -} - -#endif /* COMMON_H_ */ diff -Nru librtas-1.3.13/libofdt_src/drc.c librtas-2.0.0/libofdt_src/drc.c --- librtas-1.3.13/libofdt_src/drc.c 2014-10-23 02:23:41.000000000 +0000 +++ librtas-2.0.0/libofdt_src/drc.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,339 +0,0 @@ -/** - * @file drc.c - * @brief Common routines for building DRC Info. - * @author Borrowed/Adapted code from drmgr authored by "Nathan Fontenont". - * @author Manish Ahuja mahuja@us.ibm.com - * - * Copyright (C) IBM Corporation 2009 - */ - -#include -#include -#include -#include -#include -#include -#include -#include "common.h" - -static inline unsigned int ofdt_swap_int(unsigned int data) -{ -#if __BYTE_ORDER == __LITTLE_ENDIAN - return bswap_32(data); -#else - return data; -#endif -} - -/** - * get_property - * @brief retrieve a device-tree property from /proc - * - * @param path path to the property to retrieve - * @param name name of the property to retrieve - * @param prop of_list_prop to retrieve property for - * @returns 0 on success, !0 otherwise - */ -static int get_property(const char *path, const char *property, - void *buf, int buf_sz) -{ - FILE *fp; - int rc; - char dir[OFDT_MAX_PATH]; - - if ((path == NULL) || (property == NULL)) - return -1; - - sprintf(dir, "%s/%s", path, property); - fp = fopen(dir, "r"); - if (fp == NULL) - return -1; - - rc = fread(buf, buf_sz, 1, fp); - - fclose(fp); - return 0; -} - -/** - * get_proprety_size - * @brief Retrieve the size of a device tree property - * - * @param path full path to property - * @param name property name - * @returns size of property - */ -static int get_property_size(const char *path, const char *name) -{ - char file_path[OFDT_MAX_PATH]; - struct stat sb; - int rc; - - sprintf(file_path, "%s/%s", path, name); - rc = stat(file_path, &sb); - - return sb.st_size; -} - -/** - * get_of_list_prop - * @breif retrieve the specified open firmware property list - * - * @param full_path - * @param prop_name - * @param prop - * @returns 0 on success, !0 otherwise - */ -static int get_of_list_prop(const char *full_path, char *prop_name, - struct of_list_prop *prop) -{ - int rc, size; - - size = get_property_size(full_path, prop_name); - prop->_data = zalloc(size); - if (prop->_data == NULL) - return -1; - - rc = get_property(full_path, prop_name, prop->_data, size); - if (rc) { - free(prop->_data); - return -1; - } - - prop->n_entries = ofdt_swap_int(*(uint *)prop->_data); - prop->val = prop->_data + sizeof(uint); - - return 0; -} - -/** - * get_drc_prop_grp - * - * @param full_path - * @param group - * @returns 0 on success, !0 otherwise - */ -static int get_drc_prop_grp(const char *full_path, struct drc_prop_grp *group) -{ - int rc; - - memset(group, 0, sizeof(*group)); - - rc = get_of_list_prop(full_path, "ibm,drc-names", &group->drc_names); - if (rc) - return rc; - - rc = get_of_list_prop(full_path, "ibm,drc-types", &group->drc_types); - if (rc) - return rc; - - rc = get_of_list_prop(full_path, "ibm,drc-indexes", - &group->drc_indexes); - if (rc) - return rc; - - rc = get_of_list_prop(full_path, "ibm,drc-power-domains", - &group->drc_domains); - if (rc) - return rc; - - return 0; -} - -/** - * free_drc_props - * @brief free the properties associated with a drc group - * - * @param group - */ -static void free_drc_props(struct drc_prop_grp *group) -{ - if (group->drc_names.val) - free(group->drc_names._data); - if (group->drc_types.val) - free(group->drc_types._data); - if (group->drc_indexes.val) - free(group->drc_indexes._data); - if (group->drc_domains.val) - free(group->drc_domains._data); -} - -/** - * build_connectors_group - * - * @param group - * @param n_entries - * @param list - * @returns 0 on success, !0 otherwise - */ -static int build_connectors_list(struct drc_prop_grp *group, int n_entries, - struct dr_connector *list) -{ - struct dr_connector *entry; - unsigned int *index_ptr; - unsigned int *domain_ptr; - char *name_ptr; - char *type_ptr; - int i; - - index_ptr = (unsigned int *)group->drc_indexes.val; - domain_ptr = (unsigned int *)group->drc_domains.val; - name_ptr = group->drc_names.val; - type_ptr = group->drc_types.val; - - for (i = 0; i < n_entries; i++) { - entry = &list[i]; - - entry->index = *(index_ptr++); - entry->powerdomain = *(domain_ptr++); - - strncpy(entry->name, name_ptr, DRC_STR_MAX); - name_ptr += strlen(name_ptr) + 1; - - strncpy(entry->type, type_ptr, DRC_STR_MAX); - type_ptr += strlen(type_ptr) + 1; - - if (i == (n_entries - 1)) - entry->next = NULL; - else - entry->next = &list[i+1]; - } - - return 0; -} - -/** - * get_dr_connectors - * - * NOTE:Callers of this function are expected to free drc_list themselves - * - * @param of_path - * @param drc_list - * @param n_drcs - * @returns 0 on success, !0 otherwise - */ -struct dr_connector *get_drc_info(const char *of_path) -{ - struct dr_connector *list = NULL; - struct of_list_prop *drc_names; - struct drc_prop_grp prop_grp; - int n_drcs; - int rc; - - rc = get_drc_prop_grp(of_path, &prop_grp); - if (rc) - return NULL; - - drc_names = &prop_grp.drc_names; - n_drcs = drc_names->n_entries; - - list = zalloc(n_drcs * sizeof(struct dr_connector)); - if (list) - rc = build_connectors_list(&prop_grp, n_drcs, list); - - free_drc_props(&prop_grp); - return list; -} - -/** - * free_drc_info - * - * @param drc_list - */ -void free_drc_info(struct dr_connector *drc_list) -{ - free(drc_list); -} - -/** - * file_exists - * - * @brief Function that checks whether ibm,my-drc-index exists. - * - * @param path - * @returns 0 on success, !0 otherwise - */ -int file_exists(const char *path, const char *fname) -{ - int rc; - struct stat sb; - char file_path[OFDT_MAX_PATH]; - - sprintf(file_path, "%s/%s", path, fname); - rc = stat(file_path, &sb); - - return !rc; -} - -/** - * create_drc_props - * - * @brief Function that creates drc,type/name/powerdomain. - * - * @param dr_connector - * @param parent node - * @param path - */ -void create_drc_properties(struct node *node, struct dr_connector *drc_list) -{ - char powerdomain[OFDT_MAX_NAME]; - struct dr_connector *drc; - int rc; - uint32_t drc_index; - - if (drc_list == NULL) - return; - - rc = get_property(node->path, "ibm,my-drc-index", &drc_index, - sizeof(drc_index)); - if (rc) - return; - drc_index = ofdt_swap_int(drc_index); - - for (drc = drc_list; drc; drc = drc->next) { - if (drc_index == drc->index) - break; - } - - if (!drc) - return - - add_property(node, "ibm,drc-name", drc->name); - add_property(node, "ibm,drc-type", drc->type); - - sprintf(powerdomain, "%u", drc->powerdomain); - add_property(node, "ibm,drc-powerdomain", powerdomain); -} - -/** - * find_drc_info - * - * @brief Function that parses prev sub-directories until it finds - * ibm,drc-index file - * - * @param path - * @returns dr_connector type. - */ -struct dr_connector *find_drc_info(const char *path) -{ - struct stat sb; - int rc; - char tmp_path[OFDT_MAX_PATH]; - char buf[OFDT_MAX_PATH]; - char *slash; - - sprintf(buf, "%s", path); - - do { - sprintf(tmp_path, "%s/%s", buf, "ibm,drc-indexes"); - rc = stat(buf, &sb); - if (rc == 0) - return get_drc_info(buf); - - slash = strrchr(buf, '/'); - if (slash) - *slash = '\0'; - } while (slash); - - return NULL; -} diff -Nru librtas-1.3.13/libofdt_src/dtree.c librtas-2.0.0/libofdt_src/dtree.c --- librtas-1.3.13/libofdt_src/dtree.c 2014-10-23 02:23:41.000000000 +0000 +++ librtas-2.0.0/libofdt_src/dtree.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,530 +0,0 @@ -/** - * @file dtree.c - * - * Copyright (C) 2008/2009 IBM Corporation - * Common Public License Version 1.0 (see COPYRIGHT) - * - * @author Manish Ahuja mahuja@us.ibm.com - */ - -#include "common.h" - -struct node *treehead = NULL; -struct delete_struct *delete_list = NULL; - -void __libofdt_fini() __attribute__((destructor)); - -/** - * allocate_property - * @brief allocates property - * - * @param name - * @param path - * @param value - * @param size - * @return property - */ -static struct property *allocate_property(const char *name, const char *path, - char *value) -{ - struct property *prop; - int rc; - - prop = zalloc(sizeof(*prop)); - if (!prop) - return NULL; - - if (!value) { - FILE *fp; - struct stat sb; - - rc = stat(path, &sb); - if (rc) - return NULL; - - prop->value = zalloc(sb.st_size + 1); - if (prop->value) { - free(prop); - return NULL; - } - - fp = fopen(path, "r"); - if (fp == NULL) { - free(prop); - return NULL; - } - - rc = fread(prop->value, 1, sb.st_size, fp); - fclose(fp); - } else { - int length = strlen(value); - - prop->value = zalloc(length + 1); - if (!prop->value) { - free(prop); - return NULL; - } - - strncpy(prop->value, value, length); - } - - /* struct alredy nulled out, not copying last null */ - strncpy(prop->path, path, strlen(path)); - strncpy(prop->name, name, strlen(name)); - - return prop; -} - -/** - * add_property - * @brief adds property to head of queue and then calls allocate_property - * - * @param name - * @param path - * @param value - * @param size - */ -void add_property(struct node *node, const char *name, char *value) -{ - struct property *prop; - - prop = allocate_property(name, node->path, value); - - prop->next = node->properties; - node->properties = prop; -} - -/** - * allocate_node - * @brief allocates the actual node. - * - * @param parent - * @param path - * @returns node - */ -static struct node *allocate_node(struct node *parent, const char* path) -{ - struct node *node; - - node = zalloc(sizeof(*node)); - if (node == NULL) - return NULL; - - strncpy(node->path, path, strlen(path)); - node->parent = parent; - - return node; -} - -/** - * build_node - * @brief the heart of this library, that builds and creates the whole tree. - * - * @param dirname - * @param parent_node - * @param parent_list - * @returns node - */ -static struct node *build_node(const char *path, - struct dr_connector *my_drc_info) -{ - int rc; - DIR *d; - struct dirent *de; - struct node *node; - char buf[OFDT_MAX_PATH]; - struct dr_connector *child_drc_info; - - /* Check to see if we need to create drc info for any child nodes */ - if (file_exists(path, "ibm,drc-indexes")) - child_drc_info = get_drc_info(path); - else - child_drc_info = my_drc_info; - - node = allocate_node(NULL, path); - if (!node) { - if (child_drc_info != my_drc_info) - free_drc_info(child_drc_info); - - return NULL; - } - - if (file_exists(path, "ibm,my-drc-index")) - create_drc_properties(node, my_drc_info); - - d = opendir(path); - if (!d) { - if (child_drc_info != my_drc_info) - free_drc_info(child_drc_info); - - return NULL; - } - - while((de = readdir(d)) != NULL ) { - struct stat sb; - - sprintf(buf, "%s/%s", path, de->d_name); - rc = stat(buf, &sb); - if (rc) - break; - - if (S_ISDIR(sb.st_mode)) { - struct node *child; - - child = build_node(buf, child_drc_info); - - child->sibling = node->child; - node->child = child; - } else if (S_ISREG(sb.st_mode)) { - add_property(node, de->d_name, NULL); - } - } - - closedir(d); - - if (child_drc_info != my_drc_info) - free_drc_info(child_drc_info); - - return node; -} - -/** - * add_node_to_dl - * @brief Adds nodes to delete list. - * - * @param node to add - */ -static void add_node_to_dl(struct node *to_add) -{ - struct delete_struct *new; - - new = zalloc(sizeof(*new)); - if (!new) - return; - - new->dnode = to_add; - new->next = delete_list; - delete_list = new; -} - -/** - * add_prop_to_dl - * @brief Adds property to delete list. - * - * @param prop to add - */ -static void add_prop_to_dl(struct property *to_add) -{ - struct delete_struct *new; - - new = zalloc(sizeof(*new)); - if (!new) - return; - - new->dprop = to_add; - new->next = delete_list; - delete_list = new; -} - -/** - * delete_properties - * @brief deletes chained properties. - * - * @param prop to add - */ -static void delete_properties(struct node *to_delete) -{ - struct property *tmp, *prop; - prop = to_delete->properties; - - while (prop != NULL) { - tmp = prop; - prop = prop->next; - free(tmp); - } -} - -/** - * remove_node - * @brief removes sub-nodes and nodes recursively. - * - * @param node head. - */ -static void remove_node(struct node *head) -{ - struct node *tmp; - - while ((head->child) || (head->sibling)) { - if (head->child) { - remove_node(head->child); - if (head->sibling == NULL && (head->properties)) { - delete_properties(head); - free(head); - break; - } - } - if (head->sibling) { - if (head->properties) - delete_properties(head); - tmp = head; - head = head->sibling; - free(tmp); - } - } -} - -/** - * delete_node_from_dl - * @brief removes-any nodes being asked to delete. - * - * @param delete_node - */ -static void delete_node_from_dl(struct node *to_delete) -{ - struct delete_struct *tmp, *prev; - - tmp = delete_list; - while (tmp) { - if (tmp->dnode == to_delete) { - remove_node(tmp->dnode); - - if (tmp == delete_list) - delete_list = tmp->next; - else - prev->next = tmp->next; - - free(tmp); - break; - } - - prev = tmp; - tmp = tmp->next; - } -} - -/** - * delete_prop_from_dl - * @brief removes-any properties being asked to delete. - * - * @param delete_prop - */ -static void delete_prop_from_dl(struct property *to_delete) -{ - struct delete_struct *tmp, *prev; - - tmp = delete_list; - while (tmp) { - if (tmp->dprop == to_delete) { - free(tmp->dprop); - - if (tmp == delete_list) - delete_list = tmp->next; - else - prev->next = tmp->next; - - free(tmp); - return; - } - - prev = tmp; - tmp = tmp->next; - } -} - -/** - * base_path - * @brief builds appropriate path and returns it. - * - * The path specified can be either a full path to a device tree, or - * a relative path to the real device tree at /proc/device-tree. NOTE - * that the relative path of NULL implies the base device tree at - * /proc/device-tree - * - * @param dir - */ -static int path_to_full_dtpath(const char *user_path, char *full_path) -{ - struct stat sb; - int rc; - - memset(full_path, 0, OFDT_MAX_PATH); - - if (!user_path) { - /* NULL implies /proc/device-tree */ - sprintf(full_path, "%s", OFDT_BASE); - return 0; - } - - rc = stat(user_path, &sb); - if (rc == 0) { - /* Valid path specified, copy to full path */ - snprintf(full_path, OFDT_MAX_PATH, "%s", user_path); - return 0; - } - - /* build OFDT_BASE/user_path and validate */ - snprintf(full_path, OFDT_MAX_PATH, "%s/%s", OFDT_BASE, user_path); - rc = stat(full_path, &sb); - - return rc; -} - -/** - * ofdt_get - * @brief builds the device tree from the given path. - * - * @param path - * @returns node - */ -struct node *ofdt_get(const char * path) -{ - char full_path[OFDT_MAX_PATH]; - struct dr_connector *drc_info; - struct node *head; - int rc; - - rc = path_to_full_dtpath(path, full_path); - if (rc) - return NULL; - - drc_info = find_drc_info(full_path); - head = build_node(full_path, drc_info); - if (head) - add_node_to_dl(head); - - free_drc_info(drc_info); - return head; -} - -/** - * ofdt_put - * @brief releases the device tree from the given node pointer. - * - * @param path - * @returns node - */ -void ofdt_put(struct node *delete) -{ - delete_node_from_dl(delete); -} - -/** - * ofdt_get_property - * @brief returns the appropriate property pointer from given tree. It takes - * path. - * - * @param node - * @param path - * @returns property - */ -struct property *ofdt_get_property(struct node *node, const char *name) -{ - struct property *prop; - int len = strlen(name); - - for (prop = node->properties; prop; prop = prop->next) { - if (strncmp(prop->name, name, len) == 0) - return prop; - } - - return NULL; -} - -/** - * ofdt_get_property_by_name - * @brief builds and returns the appropriate property pointer from given path. - * - * @param path - * @returns property - */ -struct property * ofdt_get_property_by_name(const char * dir) -{ - struct property *prop; - char *name; - char path[OFDT_MAX_PATH]; - int rc; - - rc = path_to_full_dtpath(dir, path); - if (rc) - return NULL; - - name = strrchr(path, '/'); - if (!name) - return NULL; - - /* move past the '/' character */ - name++; - - prop = allocate_property(name, path, NULL); - add_prop_to_dl(prop); - return prop; -} - -/** - * ofdt_property_put - * @brief Deletes properties from delete list. - * - * @param property - */ -void ofdt_property_put(struct property *to_delete) -{ - delete_prop_from_dl(to_delete); -} - -#ifdef DEBUG -/** - * traverse_devicetree - * @brief Debug function, that prints nodes and properties. - * - * @param node_head - */ -void traverse_devicetree(struct node *head) -{ - struct property *prop; - - while ((head->child) || (head->sibling)) { - if (head->child) { - traverse_devicetree(head->child); - if (head->sibling == NULL) { - printf("NODE name is %s\n", head->path); - for (prop = head->properties; prop != NULL; - prop = prop->next) { - printf("\tProp name is %s path is %s\n", - prop->name, prop->path); - } - break; - } - } - if (head->sibling) { - printf("NODE name is %s\n", head->path); - for (prop = head->properties; prop != NULL; - prop = prop->next) { - printf("\tProp name is %s path is %s\n", - prop->name, prop->path); - } - head = head->sibling; - } - } -} -#endif - -/** - * __libofdt_fini() - * @brief fini routine that cleans everything when library exits. - * - */ -void __libofdt_fini() -{ - struct delete_struct *tmp, *prev; - - tmp = delete_list; - while (tmp) { - prev = tmp; - if (tmp->dnode) - remove_node(tmp->dnode); - if (tmp->dprop) - free(tmp->dprop); - tmp = tmp->next; - free(prev); - } -} diff -Nru librtas-1.3.13/libofdt_src/libofdt.h librtas-2.0.0/libofdt_src/libofdt.h --- librtas-1.3.13/libofdt_src/libofdt.h 2014-10-23 02:23:41.000000000 +0000 +++ librtas-2.0.0/libofdt_src/libofdt.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,47 +0,0 @@ -/** - * @file libofdt.h - * - * Copyright (C) 2008/2009 IBM Corporation - * Common Public License Version 1.0 (see COPYRIGHT) - * - * @author Manish Ahuja mahuja@us.ibm.com - */ - -#ifndef _LIBOFDT_H_ -#define _LIBOFDT_H_ - -#include -#include -#include -#include -#include -#include - -#define OFDT_MAX_NAME 128 /* Max name length */ -#define OFDT_MAX_PATH 1024 /* Max Path length */ - -struct property { - char name[OFDT_MAX_NAME]; - char path[OFDT_MAX_PATH]; - char *value; - struct property *next; - struct node * parent; -}; - -struct node { - char name[OFDT_MAX_NAME]; - char path[OFDT_MAX_PATH]; - struct property *properties; - struct node *child; - struct node *parent; - struct node *sibling; -}; - -extern struct node *ofdt_get(const char *); -extern void ofdt_put(struct node *); - -extern struct property *ofdt_get_property(struct node *, const char *); -extern struct property *ofdt_get_property_by_name(const char *); -extern void ofdt_property_put(struct property *); - -#endif /* _LIBOFDT_H_ */ diff -Nru librtas-1.3.13/libofdt_src/Makefile librtas-2.0.0/libofdt_src/Makefile --- librtas-1.3.13/libofdt_src/Makefile 2014-10-23 02:23:41.000000000 +0000 +++ librtas-2.0.0/libofdt_src/Makefile 1970-01-01 00:00:00.000000000 +0000 @@ -1,38 +0,0 @@ - -# -# Makefile for libofdt -# -# Copyright (C) 2005 IBM Corporation -# Common Public License Version 1.0 (see COPYRIGHT) -# - -include ../rules.mk - -LIBOFDT_SONAME = libofdt.so -LIBOFDT = $(LIBOFDT_SONAME).$(VERSION) - -LIBOFDT_OBJS = dtree.o drc.o - -LIBOFDT_HDRS = libofdt.h common.h -LIBOFDT_SHIP_HDR = libofdt.h - -CFLAGS += -fPIC -DPIC -LDFLAGS += -shared -Wl,-soname -Wl,$(LIBOFDT_SONAME).$(MAJOR_NO) - -all: $(LIBOFDT_OBJS) $(LIBOFDT_HDRS) - @echo "LD $(WORK_DIR)/$(LIBOFDT)..." - @$(CC) $(LIBOFDT_OBJS) $(LDFLAGS) -o $(LIBOFDT) - -install: - @$(call install_lib,$(LIBOFDT),$(DESTDIR)) - @$(call install_inc,$(LIBOFDT_SHIP_HDR),$(DESTDIR)) - @ln -sf $(LIBOFDT) $(DESTDIR)/$(LIB_DIR)$(call is_lib64,$(LIBOFDT))/$(LIBOFDT_SONAME) - -uninstall: - @$(call uninstall_lib,$(LIBOFDT),$(DESTDIR)) - @$(call uninstall_inc,$(LIBOFDT_SHIP_HDR),$(DESTDIR)) - @rm -f $(DESTDIR)/$(LIB_DIR)$(call is_lib64,$(LIBOFDT))/$(LIBOFDT_SONAME) - -clean: - @echo "Cleaning up $(WORK_DIR) files..." - @rm -f $(LIBOFDT_OBJS) $(LIBOFDT) diff -Nru librtas-1.3.13/libofdt_src/README librtas-2.0.0/libofdt_src/README --- librtas-1.3.13/libofdt_src/README 2014-10-23 02:23:41.000000000 +0000 +++ librtas-2.0.0/libofdt_src/README 1970-01-01 00:00:00.000000000 +0000 @@ -1,57 +0,0 @@ - -In most linux systems, most of the hardware bindings and values are exported -through /proc/devic-tree. This needs to be accessed frequently to query values -to enable or disable many functions on the system. Here, We attempt to provide -an API to read values and parse data that maybe required for many utilities -to do commonly required operations. Please note that this API only reads -and parses values. It does not modify anything. - -The API is as follows: - -1: -void ofdt_get(const char *path) -This function accepts a relative path to the deivce-tree. It can also be -NULL. If the value is null, the base path to the device-tree -/proc/device-tree is assumed. If the value is non null, a relative path -is assumed and /proc/device-tree is added to the path to fully qualify it. - -This function builds a complete tree from the given path. It processes -sub-directories and will also parse ibm,indexes file and find appropriate -values for "ibm,drc-name", "ibm,drc-type" & "ibm,drc-powerdomain" for the -approprate "ibm,my-drc-index" files. It fills these out and sends back -a pointer to the the head of the tree. - -It is always nice to call ofdt_put after this function has been called -with the right head pointer. - - -2: -void ofdt_put(struct node *delete) - -This function takes a node pointer type, normally this is the head of -a tree structure that needs to be freed. It is normally a good idea -to free the stuff allocated. But just incase you forget, there is a -fini_routine that takes care of it. - -3: -struct property *ofdt_get_property(struct node *prop_node, - const char * name); - -This function takes a path to the property and a node pointer. The node -pointer is normally the head of a fully populated tree structure formed -by ofdt_get() with appropriate values. The function returns the requested -property from the given tree. - -4: -struct property * ofdt_get_property_by_name(const char * path); - -This function returns a structure of type property. It builds and -returns the property from the given path. It does not build a tree. -It will also not return any property that does not exist like -for eg: when a ibm,my-drc-index exists and other properties do not, it -will return a NULL pointer. - -5: -void ofdt_property_put(struct property * to_delete); - -This function frees all properties that are passed in to this function. diff -Nru librtas-1.3.13/librtasevent_src/get_rtas_event.c librtas-2.0.0/librtasevent_src/get_rtas_event.c --- librtas-1.3.13/librtasevent_src/get_rtas_event.c 2014-10-23 02:23:41.000000000 +0000 +++ librtas-2.0.0/librtasevent_src/get_rtas_event.c 2016-04-06 03:03:56.000000000 +0000 @@ -3,7 +3,20 @@ * @brief librtasevent routines to parse RTAS events * * Copyright (C) 2005 IBM Corporation - * Common Public License Version 1.0 (see COPYRIGHT) + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library 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 + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA * * @author Nathan Fontenot */ diff -Nru librtas-1.3.13/librtasevent_src/librtasevent.h librtas-2.0.0/librtasevent_src/librtasevent.h --- librtas-1.3.13/librtasevent_src/librtasevent.h 2014-10-23 02:23:41.000000000 +0000 +++ librtas-2.0.0/librtasevent_src/librtasevent.h 2016-04-06 03:03:56.000000000 +0000 @@ -26,7 +26,20 @@ * structuires associated with the RTAS event. * * Copyright (C) 2005 IBM Corporation - * Common Public License Version 1.0 (see COPYRIGHT) + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library 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 + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA * * @author Nathan Fontenot */ diff -Nru librtas-1.3.13/librtasevent_src/librtasevent_v4.h librtas-2.0.0/librtasevent_src/librtasevent_v4.h --- librtas-1.3.13/librtasevent_src/librtasevent_v4.h 2014-10-23 02:23:41.000000000 +0000 +++ librtas-2.0.0/librtasevent_src/librtasevent_v4.h 2016-04-06 03:03:56.000000000 +0000 @@ -3,7 +3,20 @@ * @brief Structure definitions for RTAS events pre-version 6 * * Copyright (C) IBM Corporation - * Common Public License Version 1.0 (see COPYRIGHT) + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library 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 + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA * * @author Nathan Fontenot */ diff -Nru librtas-1.3.13/librtasevent_src/librtasevent_v6.h librtas-2.0.0/librtasevent_src/librtasevent_v6.h --- librtas-1.3.13/librtasevent_src/librtasevent_v6.h 2014-10-23 02:23:41.000000000 +0000 +++ librtas-2.0.0/librtasevent_src/librtasevent_v6.h 2016-04-06 03:03:56.000000000 +0000 @@ -3,7 +3,20 @@ * @brief Structure definitions for RTAS event version 6 sections * * Copyright (C) 2005 IBM Corporation. - * Common Public License Version 1.0 (see COPYRIGHT) + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library 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 + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA * * @author Nathan Fontenot */ diff -Nru librtas-1.3.13/librtasevent_src/Makefile librtas-2.0.0/librtasevent_src/Makefile --- librtas-1.3.13/librtasevent_src/Makefile 2014-10-23 02:23:41.000000000 +0000 +++ librtas-2.0.0/librtasevent_src/Makefile 2016-04-06 03:03:56.000000000 +0000 @@ -2,12 +2,25 @@ # Makefile for librtasevent_src # # Copyright (C) 2005 IBM Corporation -# Common Public License Version 1.0 (see COPYRIGHT) # +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License, or (at your option) any later version. +# +# This library 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 +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA include ../rules.mk LIBRE_SONAME = librtasevent.so +LIBRE_STATIC = librtasevent.a LIBRE = $(LIBRE_SONAME).$(VERSION) LIBRE_OBJS = get_rtas_event.o print_rtas_event.o rtas_cpu.o rtas_dump.o \ @@ -20,22 +33,31 @@ CFLAGS += -fPIC -DPIC -I. LDFLAGS += -shared -Wl,-soname -Wl,$(LIBRE_SONAME).$(MAJOR_NO) -all: $(LIBRE_OBJS) $(HEADERS) +all: libre_shared libre_static + +libre_shared: $(LIBRE_OBJS) $(HEADERS) @echo "LD librtasevent_src/$(LIBRE)..." @$(CC) $(LIBRE_OBJS) $(LDFLAGS) -o $(LIBRE) +libre_static: $(LIBRE_OBJS) $(HEADERS) + @echo "AR $(LIBRE_STATIC)..." + @ar rcs $(LIBRE_STATIC) $(LIBRE_OBJS) + install: @$(call install_lib,$(LIBRE),$(DESTDIR)) + @$(call install_lib,$(LIBRE_STATIC),$(DESTDIR)) @$(call install_inc,$(LIBRE_HDRS),$(DESTDIR)) @ln -sf $(LIBRE) $(DESTDIR)/$(LIB_DIR)$(call is_lib64,$(LIBRE))/$(LIBRE_SONAME) - @ln -sf $(LIBRE) $(DESTDIR)/$(LIB_DIR)$(call is_lib64,$(LIBRE))/$(LIBRE_SONAME).1 + @ln -sf $(LIBRE) $(DESTDIR)/$(LIB_DIR)$(call is_lib64,$(LIBRE))/$(LIBRE_SONAME).$(MAJOR_NO) uninstall: @$(call uninstall_lib,$(LIBRE),$(DESTDIR)) + @$(call uninstall_lib,$(LIBRE_STATIC),$(DESTDIR)) @$(call uninstall_inc,$(LIBRE_HDRS),$(DESTDIR)) @rm -f $(DESTDIR)/$(LIB_DIR)$(call is_lib64,$(LIBRE))/$(LIBRE_SONAME) + @rm -f $(DESTDIR)/$(LIB_DIR)$(call is_lib64,$(LIBRE))/$(LIBRE_SONAME).$(MAJOR_NO) clean: @echo "Cleaning up $(WORK_DIR) files..." - @rm -f $(LIBRE_OBJS) $(LIBRE_SONAME) $(LIBRE) + @rm -f $(LIBRE_OBJS) $(LIBRE_SONAME) $(LIBRE) $(LIBRE_STATIC) diff -Nru librtas-1.3.13/librtasevent_src/print_rtas_event.c librtas-2.0.0/librtasevent_src/print_rtas_event.c --- librtas-1.3.13/librtasevent_src/print_rtas_event.c 2014-10-23 02:23:41.000000000 +0000 +++ librtas-2.0.0/librtasevent_src/print_rtas_event.c 2016-04-06 03:03:56.000000000 +0000 @@ -3,7 +3,20 @@ * @brief generic routines to handle printing RTAS event sections * * Copyriht (C) 2005 IBM Corporation - * Common Public License Version 1.0 (see COPYRIGHT) + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library 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 + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA * * @author Nathan Fontenot */ @@ -330,7 +343,7 @@ if (newline != NULL) { prnt_len = newline - &tmpbuf[offset] + 1; - snprintf(buf + buf_offset, prnt_len, &tmpbuf[offset]); + snprintf(buf + buf_offset, prnt_len, "%s",&tmpbuf[offset]); buf_offset = strlen(buf); buf_offset += snprintf(buf + buf_offset, sizeof(buf) - buf_offset, "\n"); @@ -350,7 +363,7 @@ } /* print up to the last brkpt */ - snprintf(buf + buf_offset, prnt_len, &tmpbuf[offset]); + snprintf(buf + buf_offset, prnt_len, "%s", &tmpbuf[offset]); buf_offset = strlen(buf); buf_offset += snprintf(buf + buf_offset, sizeof(buf) - buf_offset, "\n"); @@ -361,10 +374,10 @@ } prnt_len = snprintf(buf + buf_offset, sizeof(buf) - buf_offset, - &tmpbuf[offset]); + "%s", &tmpbuf[offset]); line_offset += prnt_len; - return fprintf(ostream, buf); + return fprintf(ostream, "%s", buf); } /** diff -Nru librtas-1.3.13/librtasevent_src/rtas_cpu.c librtas-2.0.0/librtasevent_src/rtas_cpu.c --- librtas-1.3.13/librtasevent_src/rtas_cpu.c 2014-10-23 02:23:41.000000000 +0000 +++ librtas-2.0.0/librtasevent_src/rtas_cpu.c 2016-04-06 03:03:56.000000000 +0000 @@ -7,7 +7,20 @@ * cpu-detected error log. * * Copyright (C) 2005 IBM Corporation - * Common Public License Version 1.0 (see COPYRIGHT) + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library 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 + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA * * @author Nathan Fontenot */ diff -Nru librtas-1.3.13/librtasevent_src/rtas_dump.c librtas-2.0.0/librtasevent_src/rtas_dump.c --- librtas-1.3.13/librtasevent_src/rtas_dump.c 2014-10-23 02:23:41.000000000 +0000 +++ librtas-2.0.0/librtasevent_src/rtas_dump.c 2016-04-06 03:03:56.000000000 +0000 @@ -3,7 +3,20 @@ * @brief RTAS version 6 Dump Locator section routines * * Copyright (C) 2005 IBM Corporation - * Common Public License Version 1.0 (see COPYRIGHT) + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library 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 + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA * * @author Nathan Fontenot */ diff -Nru librtas-1.3.13/librtasevent_src/rtas_epow.c librtas-2.0.0/librtasevent_src/rtas_epow.c --- librtas-1.3.13/librtasevent_src/rtas_epow.c 2014-10-23 02:23:41.000000000 +0000 +++ librtas-2.0.0/librtasevent_src/rtas_epow.c 2016-04-06 03:03:56.000000000 +0000 @@ -3,7 +3,20 @@ * @brief RTAS event EPOW section routines * * Copyright (C) 2005 IBM Corporation - * Common Public License Version 1.0 (see COPYRIGHT) + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library 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 + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA * * @author Nathan Fontenot * @author Jake Moilanen diff -Nru librtas-1.3.13/librtasevent_src/rtas_event.h librtas-2.0.0/librtasevent_src/rtas_event.h --- librtas-1.3.13/librtasevent_src/rtas_event.h 2014-10-23 02:23:41.000000000 +0000 +++ librtas-2.0.0/librtasevent_src/rtas_event.h 2016-04-06 03:03:56.000000000 +0000 @@ -2,7 +2,20 @@ * @file rtas_event.h * * Copyright (C) 2005 IBM Corporation - * Common Public License Version 1.0 (see COPYRIGHT) + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library 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 + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA * * @author Nathan Fontenot */ diff -Nru librtas-1.3.13/librtasevent_src/rtas_hotplug.c librtas-2.0.0/librtasevent_src/rtas_hotplug.c --- librtas-1.3.13/librtasevent_src/rtas_hotplug.c 2014-10-23 02:23:41.000000000 +0000 +++ librtas-2.0.0/librtasevent_src/rtas_hotplug.c 2016-04-06 03:03:56.000000000 +0000 @@ -3,7 +3,20 @@ * @brief RTAS version 6 Hotplug section routines * * Copyright (C) 2013 IBM Corporation - * Common Public License Version 1.0 (see COPYRIGHT) + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library 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 + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA * * @author Tyrel Datwyler */ diff -Nru librtas-1.3.13/librtasevent_src/rtas_io.c librtas-2.0.0/librtasevent_src/rtas_io.c --- librtas-1.3.13/librtasevent_src/rtas_io.c 2014-10-23 02:23:41.000000000 +0000 +++ librtas-2.0.0/librtasevent_src/rtas_io.c 2016-04-06 03:03:56.000000000 +0000 @@ -3,7 +3,20 @@ * @brief RTAS I/O event section routines * * Copyright (C) 2005 IBM Corporation - * Common Public License Version 1.0 (see COPYRIGHT) + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library 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 + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA * * @author Nathan Fontenot * @author Jake Moilanen diff -Nru librtas-1.3.13/librtasevent_src/rtas_lri.c librtas-2.0.0/librtasevent_src/rtas_lri.c --- librtas-1.3.13/librtasevent_src/rtas_lri.c 2014-10-23 02:23:41.000000000 +0000 +++ librtas-2.0.0/librtasevent_src/rtas_lri.c 2016-04-06 03:03:56.000000000 +0000 @@ -3,7 +3,20 @@ * @brief RTAS Logical Resource Identification (LRI) Data routines * * Copyright (C) 2005 IBM Corporation - * Common Public License Version 1.0 (see COPYRIGHT) + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library 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 + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA * * @author Nathan Fontenot */ diff -Nru librtas-1.3.13/librtasevent_src/rtas_mem.c librtas-2.0.0/librtasevent_src/rtas_mem.c --- librtas-1.3.13/librtasevent_src/rtas_mem.c 2014-10-23 02:23:41.000000000 +0000 +++ librtas-2.0.0/librtasevent_src/rtas_mem.c 2016-04-06 03:03:56.000000000 +0000 @@ -3,7 +3,20 @@ * @brief RTAS Memory Controller detected routines * * Copyright (C) 2005 IBM Corporation - * Common Public License Version 1.0 (see COPYRIGHT) + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library 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 + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA * * @author Nathan Fontenot * @author Jake Moilanen diff -Nru librtas-1.3.13/librtasevent_src/rtas_post.c librtas-2.0.0/librtasevent_src/rtas_post.c --- librtas-1.3.13/librtasevent_src/rtas_post.c 2014-10-23 02:23:41.000000000 +0000 +++ librtas-2.0.0/librtasevent_src/rtas_post.c 2016-04-06 03:03:56.000000000 +0000 @@ -3,7 +3,20 @@ * @brief RTAS Power-On Self Test (POST) section routines * * Copyright (C) 2005 IBM Corporation - * Common Public License Version 1.0 (see COPYRIGHT) + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library 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 + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA * * @author Nathan Fontenot * @author Jake Moilanen diff -Nru librtas-1.3.13/librtasevent_src/rtas_sp.c librtas-2.0.0/librtasevent_src/rtas_sp.c --- librtas-1.3.13/librtasevent_src/rtas_sp.c 2014-10-23 02:23:41.000000000 +0000 +++ librtas-2.0.0/librtasevent_src/rtas_sp.c 2016-04-06 03:03:56.000000000 +0000 @@ -3,7 +3,20 @@ * @brief RTAS Service Processor section routines * * Copyright (C) 2005 IBM Corporation - * Common Public License Version 1.0 (see COPYRIGHT) + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library 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 + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA * * @author Nathan Fontenot * @author Jake Moilanen diff -Nru librtas-1.3.13/librtasevent_src/rtas_src_codes.c librtas-2.0.0/librtasevent_src/rtas_src_codes.c --- librtas-1.3.13/librtasevent_src/rtas_src_codes.c 2014-10-23 02:23:41.000000000 +0000 +++ librtas-2.0.0/librtasevent_src/rtas_src_codes.c 2016-04-06 03:03:56.000000000 +0000 @@ -3,7 +3,20 @@ * @brief SRC Section Codes * * Copyright (C) 2004 IBM Corporation - * Common Public License Version 1.0 (see COPYRIGHT) + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library 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 + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA * * @author Nathan Fontenot */ diff -Nru librtas-1.3.13/librtasevent_src/rtas_srcfru.c librtas-2.0.0/librtasevent_src/rtas_srcfru.c --- librtas-1.3.13/librtasevent_src/rtas_srcfru.c 2014-10-23 02:23:41.000000000 +0000 +++ librtas-2.0.0/librtasevent_src/rtas_srcfru.c 2016-04-06 03:03:56.000000000 +0000 @@ -3,7 +3,20 @@ * @brief RTAS SRC/FRU sections routines * * Copyright (C) 2005 IBM Corporation - * Common Public License Version 1.0 (see COPYRIGHT) + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library 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 + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA * * @author Nathan Fontenot */ @@ -194,6 +207,7 @@ src_raw = malloc(sizeof(*src_raw)); if (src_raw == NULL) { + free(src); errno = ENOMEM; return 1; } diff -Nru librtas-1.3.13/librtasevent_src/rtas_v6_misc.c librtas-2.0.0/librtasevent_src/rtas_v6_misc.c --- librtas-1.3.13/librtasevent_src/rtas_v6_misc.c 2014-10-23 02:23:41.000000000 +0000 +++ librtas-2.0.0/librtasevent_src/rtas_v6_misc.c 2016-04-06 03:03:56.000000000 +0000 @@ -3,7 +3,20 @@ * @brief Routines to print out various RTAS version 6 event sections * * Copyright (C) 2004 IBM Corporation - * Common Public License Version 1.0 (see COPYRIGHT) + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library 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 + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA * * @author Nathan Fotenot */ @@ -640,6 +653,7 @@ uint32_t data_sz = gen->v6hdr.length - RTAS_V6_HDR_SIZE; gen->data = malloc(data_sz); if (gen->data == NULL) { + free(gen); errno = ENOMEM; return -1; } diff -Nru librtas-1.3.13/librtasevent_src/rtas_vend.c librtas-2.0.0/librtasevent_src/rtas_vend.c --- librtas-1.3.13/librtasevent_src/rtas_vend.c 2014-10-23 02:23:41.000000000 +0000 +++ librtas-2.0.0/librtasevent_src/rtas_vend.c 2016-04-06 03:03:56.000000000 +0000 @@ -3,7 +3,20 @@ * @brief RTAS error log detial for vendor specific extensions * * Copyright (C) IBM Corporation - * Common Public License Version 1.0 (see COPYRIGHT) + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library 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 + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA * * @author Nathan Fontenot */ diff -Nru librtas-1.3.13/librtas.spec.in librtas-2.0.0/librtas.spec.in --- librtas-1.3.13/librtas.spec.in 2014-10-23 02:23:41.000000000 +0000 +++ librtas-2.0.0/librtas.spec.in 2016-04-06 03:03:56.000000000 +0000 @@ -1,14 +1,16 @@ %define name librtas -%define version 1.3.13 +%define version 2.0.0 +%define sover 2 %define release 1 Summary: Libraries to provide access to RTAS calls and RTAS events. Name: %{name} Version: %{version} Release: %{release} -License: IBM Common Public License (CPL) v1.0 +License: GNU Lesser General Public License (LGPL) Source: %{name}-%{version}.tar.gz Group: System Environment/Libraries BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) +ExclusiveArch: ppc ppc64 ppc64le %description @@ -21,6 +23,23 @@ definitions and common routines useful in parsing and dumping the contents of RTAS events. +%package devel +Summary: C header files for development with librtas +Group: Development/Libraries +Requires: %{name}%{?_isa} = %{version}-%{release} + +%description devel +The librtas-devel package contains the header files necessary for +developing programs using librtas. + +%package static +Summary: Static verions of the librtas libraries +Group: Development/Libraries + +%description static +The librtas-static package contains the static libraries which +correspond to the librtas and librtas-devel packages. + %prep %setup -q @@ -31,39 +50,29 @@ %{__rm} -rf $RPM_BUILD_ROOT %{__make} install DESTDIR=$RPM_BUILD_ROOT +%post +ldconfig + +%postun +ldconfig %files %defattr(-, root, root) -%{_docdir}/%{name}/COPYRIGHT +%{_docdir}/%{name}/COPYING.LESSER %{_docdir}/%{name}/README -%{_includedir}/common.h -%{_includedir}/librtas.h +%{_libdir}/librtas.so.%{sover} %{_libdir}/librtas.so.%{version} -%{_libdir}/libofdt.so +%{_libdir}/librtasevent.so.%{version} +%{_libdir}/librtasevent.so.%{sover} + +%files devel %{_libdir}/librtas.so %{_libdir}/librtasevent.so -%{_libdir}/librtasevent.so.1 -%{_libdir}/librtasevent.so.%{version} +%{_includedir}/librtas.h %{_includedir}/librtasevent.h %{_includedir}/librtasevent_v4.h %{_includedir}/librtasevent_v6.h -%{_libdir}/libofdt.so.%{version} -%{_includedir}/libofdt.h - -%post -# Post-install script ------------------------------------------------- -ln -sf %{_libdir}/librtas.so.%{version} %{_libdir}/librtas.so -ln -sf %{_libdir}/librtas.so.%{version} %{_libdir}/librtas.so.1 -ln -sf %{_libdir}/librtasevent.so.%{version} %{_libdir}/librtasevent.so -ln -sf %{_libdir}/libofdt.so.%{version} %{_libdir}/libofdt.so -ldconfig - -%postun -# Post-uninstall script ----------------------------------------------- -if [ "$1" = "0" ] ; then # last uninstall - rm -f %{_libdir}/librtas.so - rm -f %{_libdir}/librtasevent.so - rm -f %{_libdir}/libofdt.so -fi -ldconfig +%files static +%{_libdir}/librtas.a +%{_libdir}/librtasevent.a diff -Nru librtas-1.3.13/librtas_src/common.c librtas-2.0.0/librtas_src/common.c --- librtas-1.3.13/librtas_src/common.c 2014-10-23 02:23:41.000000000 +0000 +++ librtas-2.0.0/librtas_src/common.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,751 +0,0 @@ -/** - * @file common.c - * - * Copyright (C) 2005 IBM Corporation - * Common Public License Version 1.0 (see COPYRIGHT) - * - * @author John Rose - */ - -#include -#include -#include -#include -#include "librtas.h" -#include "common.h" - -extern struct rtas_operations syscall_rtas_ops; -extern struct rtas_operations procfs_rtas_ops; - -struct librtas_config config = { NULL, 0ll, 0 }; - -#define SANITY_CHECKS(_name) \ - /* Check credentials */ \ - if (geteuid() != (uid_t) 0) \ - return RTAS_PERM; \ - \ - /* Check for any kernel RTAS interface */ \ - if (config.rtas_ops == NULL) \ - if (init_interface()) \ - return RTAS_KERNEL_INT; \ - \ - /* Check for kernel implementation of function */ \ - if (config.rtas_ops->_name == NULL) \ - return RTAS_KERNEL_IMP - -#define CALL_RTAS_METHOD(_name, _token, _args...) \ - SANITY_CHECKS(_name); \ - \ - /* Call interface-specific RTAS routine, \ - * passing in token */ \ - return config.rtas_ops->_name(_token, ##_args) - -#define CALL_HELPER_METHOD(_name, _args...) \ - SANITY_CHECKS(_name); \ - \ - /* Call interface-specific helper routine */ \ - return config.rtas_ops->_name(_args) \ - -#define MAX_PATH_LEN 80 - -/** - * open_proc_rtas_file - * @brief Open the proc rtas file - * - * @param name filename to open - * @param mode mode to open file in - * @return results of open() call - */ -int open_proc_rtas_file(const char *name, int mode) -{ - const char *proc_rtas_paths[] = { "/proc/ppc64/rtas", "/proc/rtas" }; - char full_name[MAX_PATH_LEN]; - int npaths; - int fd; - int i; - - npaths = sizeof(proc_rtas_paths) / sizeof(char *); - for (i = 0; i < npaths; i++) { - sprintf(full_name, "%s/%s", proc_rtas_paths[i], name); - fd = open(full_name, mode, S_IRUSR | S_IWUSR); - if (fd >= 0) - break; - } - - if (fd < 0) - dbg1("Failed to open %s\n", full_name); - - return fd; -} - -/** - * init_interface - * @brief Initialize the librtas interface to use - * - * @return 0 on sucess, 1 on failure - */ -static int init_interface() -{ - if (syscall_rtas_ops.interface_exists()) - config.rtas_ops = &syscall_rtas_ops; - else if (procfs_rtas_ops.interface_exists()) - config.rtas_ops = &procfs_rtas_ops; - else - return 1; - - return 0; -} - -/** - * rtas_activate_firmware - * @brief Interface for ibm,activate-firmware rtas call - * - * @return 0 on success, !0 on failure - */ -int rtas_activate_firmware() -{ - int token = rtas_token("ibm,activate-firmware"); - - if (token < 0) - return token; - - CALL_RTAS_METHOD(activate_firmware, token); -} - -/** - * rtas_cfg_connector - * @brief Interface for ibm,configure-connector rtas call - * - * @param workarea buffer containg args to ibm,configure-connector - * @return 0 on success, !0 on failure - */ -int rtas_cfg_connector(char *workarea) -{ - int token = rtas_token("ibm,configure-connector"); - - if (token < 0) - return token; - - CALL_RTAS_METHOD(cfg_connector, token, workarea); -} - -/** - * rtas_delay_timeout - * @brief Interface to retrieve the rtas timeout delay - * - * @param timeout_ms timeout in milli-seconds - * @return delay time - */ -int rtas_delay_timeout(uint64_t timeout_ms) -{ - CALL_HELPER_METHOD(delay_timeout, timeout_ms); -} - -/** - * rtas_diaply_char - * @brief Interface for display-character rtas call - * - * @param c character to display - * @return 0 on success, !0 otherwise - */ -int rtas_display_char(char c) -{ - int token = rtas_token("display-character"); - - if (token < 0) - return token; - - CALL_RTAS_METHOD(display_char, token, c); -} - -/** - * rtas_diaplay_msg - * @brief Interface for ibm,display-message rtas call - * - * @param buf message to display - * @return 0 on success, !0 otherwise - */ -int rtas_display_msg(char *buf) -{ - int token = rtas_token("ibm,display-message"); - - if (token < 0) - return token; - - CALL_RTAS_METHOD(display_msg, token, buf); -} - -/** - * rtas_errinjct - * @brief Interface to the ibm,errinjct rtas call - * - * @param etoken errinjct token - * @param otoken errinjct open token - * @param workarea additional args to ibm,errinjct - * @return 0 on success, !0 otherwise - */ -int rtas_errinjct(int etoken, int otoken, char *workarea) -{ - int token = rtas_token("ibm,errinjct"); - - if (token < 0) - return token; - - CALL_RTAS_METHOD(errinjct, token, etoken, otoken, workarea); -} - -/** - * rtas_errinjct_close - * @brief Inerface to close the ibm,errinjct facility - * - * @param otoken errinjct open token - * @return 0 on success, !0 otherwise - */ -int rtas_errinjct_close(int otoken) -{ - int token = rtas_token("ibm,close-errinjct"); - - if (token < 0) - return token; - - CALL_RTAS_METHOD(errinjct_close, token, otoken); -} - -/** - * rtas_errinjct_open - * @brief Interface to open the ibm,errinjct facility - * - * This call will set the value refrenced by otoken to the open token - * for the ibm,errinjct facility - * - * @param otoken pointer to open token - * @return 0 on success, !0 otherwise - */ -int rtas_errinjct_open(int *otoken) -{ - int token = rtas_token("ibm,open-errinjct"); - - if (token < 0) - return token; - - CALL_RTAS_METHOD(errinjct_open, token, otoken); -} - -/** - * rtas_free_rmp_buffer - * @brief free the rmo buffer used by librtas - * - * @param buf rmo buffer to free - * @param phys_addr physical address of the buffer - * @param size buf size - * @return 0 on success, !0 otherwise - */ -int rtas_free_rmo_buffer(void *buf, uint32_t phys_addr, size_t size) -{ - CALL_HELPER_METHOD(free_rmo_buffer, buf, phys_addr, size); -} - -/** - * rtas_get_config_addr_info2 - * @brief Interface to ibm,get-config-addr-info2 rtas call - * - * On successful completion the info value is returned. - * - * @param config_addr - * @param PHB_Unit_ID - * @param function - * @param info - * @return 0 on success, !0 otherwise - */ -int rtas_get_config_addr_info2(uint32_t config_addr, - uint64_t phb_id, uint32_t function, uint32_t *info) -{ - int token = rtas_token("ibm,get-config-addr-info2"); - - if (token < 0) - return token; - - CALL_RTAS_METHOD(get_config_addr_info2, token, config_addr, - phb_id, function, info); -} - -/** - * rtas_get_dynamic_sensor - * @brief Interface to ibm,get-dynamic-sensor-state rtas call - * - * On success the variable referenced by the state parameter will contain - * the state of the sensor - * - * @param sensor sensor to retrieve - * @param loc_code location code of the sensor - * @param state reference to state variable - * @return 0 on success, !0 otherwise - */ -int rtas_get_dynamic_sensor(int sensor, void *loc_code, int *state) -{ - int token = rtas_token("ibm,get-dynamic-sensor-state"); - - if (token < 0) - return token; - - CALL_RTAS_METHOD(get_dynamic_sensor, token, sensor, loc_code, state); -} - -/** - * rtas_get_indices - * @brief Interface to the ibm,get-indices rtas call - * - * @param is_sensor is this index a sensor? - * @param type - * @param workarea additional args to the rtas call - * @param size - * @param start - * @param next - * @return 0 on success, !0 otherwise - */ -int rtas_get_indices(int is_sensor, int type, char *workarea, size_t size, - int start, int *next) -{ - int token = rtas_token("ibm,get-indices"); - - if (token < 0) - return token; - - CALL_RTAS_METHOD(get_indices, token, is_sensor, type, workarea, size, - start, next); -} - -/** - * rtas_get_power_level - * @brief Interface to the get-power-level rtas call - * - * On success this routine will set the variable referenced by the level - * parameter to the power level - * - * @param powerdomain - * @param level reference to the power level variable - * @return 0 on success, !0 otherwise - */ -int rtas_get_power_level(int powerdomain, int *level) -{ - int token = rtas_token("get-power-level"); - - if (token < 0) - return token; - - CALL_RTAS_METHOD(get_power_level, token, powerdomain, level); -} - -/** - * rtas_get_rmo_buffer - * @brief Retrive the RMO buffer used by librtas - * - * On successful completion the buf parameter will reference an allocated - * area of RMO memory and the phys_addr parameter will refernce the - * physical address of the RMO buffer. - * - * @param size buffer size to retrieve - * @param buf reference to buffer pointer - * @param phys_addr reference to the phys_addr variable - * @return 0 on success, !0 otherwise - */ -int rtas_get_rmo_buffer(size_t size, void **buf, uint32_t * phys_addr) -{ - CALL_HELPER_METHOD(get_rmo_buffer, size, buf, phys_addr); -} - -/** - * rtas_get_sensor - * @brief Interface to the get-sensor-state rtas call - * - * On successful completion the state parameter will reference the current - * state of the sensor - * - * @param sensor - * @param index sensor index - * @param state reference to state variable - * @return 0 on success, !0 otherwise - */ -int rtas_get_sensor(int sensor, int index, int *state) -{ - int token = rtas_token("get-sensor-state"); - - if (token < 0) - return token; - - CALL_RTAS_METHOD(get_sensor, token, sensor, index, state); -} - -/** - * rtas_get_sysparm - * @brief Interface to the ibm,get-system-parameter rtas call - * - * On successful completion the data parameter will contain the system - * parameter results - * - * @param parameter system parameter to retrieve - * @param length data buffer length - * @param data reference to buffer to return parameter in - * @return 0 on success, !0 otherwise - */ -int rtas_get_sysparm(unsigned int parameter, unsigned int length, char *data) -{ - int token = rtas_token("ibm,get-system-parameter"); - - if (token < 0) - return token; - - CALL_RTAS_METHOD(get_sysparm, token, parameter, length, data); -} - -/** - * rtas_get_time - * @brief Interface to get-time-of-day rtas call - * - * On successful completion all of the parameters will be filled with - * their respective values for the current time of day. - * - * @param year - * @param month - * @param day - * @param hour - * @param min - * @param sec - * @param nsec - * @return 0 on success, !0 otherwise - */ -int rtas_get_time(uint32_t *year, uint32_t *month, uint32_t *day, - uint32_t *hour, uint32_t *min, uint32_t *sec, - uint32_t *nsec) -{ - int token = rtas_token("get-time-of-day"); - - if (token < 0) - return token; - - CALL_RTAS_METHOD(get_time, token, year, month, day, hour, min, sec, - nsec); -} - -/** - * rtas_get_vpd - * @brief Interface to the ibm,get-vpd rtas call - * - * @param loc_code location code - * @param workarea additional args to rtas call - * @param size - * @param sequence - * @param seq_next - * @param bytes_ret - * @return 0 on success, !0 otherwise - */ -int rtas_get_vpd(char *loc_code, char *workarea, size_t size, - unsigned int sequence, unsigned int *seq_next, - unsigned int *bytes_ret) -{ - int token = rtas_token("ibm,get-vpd"); - - if (token < 0) - return token; - - CALL_RTAS_METHOD(get_vpd, token, loc_code, workarea, size, sequence, - seq_next, bytes_ret); -} - -/** - * rtas_lpar_perftools - * @brief Interface to the ibm,lpa-perftools rtas call - * - * @param subfunc - * @param workarea additional args to the rtas call - * @param length - * @param sequence - * @param seq_next - * @return 0 on success, !0 otherwise - */ -int rtas_lpar_perftools(int subfunc, char *workarea, unsigned int length, - unsigned int sequence, unsigned int *seq_next) -{ - int token = rtas_token("ibm,lpar-perftools"); - - if (token < 0) - return token; - - CALL_RTAS_METHOD(lpar_perftools, token, subfunc, workarea, length, - sequence, seq_next); -} - -/** - * rtas_platform_dump - * Interface to the ibm,platform-dump rtas call - * - * @param dump_tag - * @param sequence - * @param buffer buffer to write dump to - * @param length buffer length - * @param next_seq - * @param bytes_ret - * @return 0 on success, !0 othwerwise - */ -int rtas_platform_dump(uint64_t dump_tag, uint64_t sequence, - void *buffer, size_t length, - uint64_t * next_seq, uint64_t * bytes_ret) -{ - int token = rtas_token("ibm,platform-dump"); - - if (token < 0) - return token; - - CALL_RTAS_METHOD(platform_dump, token, dump_tag, sequence, buffer, - length, next_seq, bytes_ret); -} - -/** - * rtas_read_slot_reset - * @brief Interface to the ibm,read-slot-reset-state rtas call - * - * @param cfg_addr configuration address of slot to read - * @param phbid PHB ID of the slot to read - * @param state reference to variable to return slot state in - * @param eeh - * @return 0 on success, !0 otherwise - */ -int rtas_read_slot_reset(uint32_t cfg_addr, uint64_t phbid, int *state, - int *eeh) -{ - int token = rtas_token("ibm,read-slot-reset-state"); - - if (token < 0) - return token; - - CALL_RTAS_METHOD(read_slot_reset, token, cfg_addr, phbid, state, eeh); -} - -/** - * rtas_scan_log_dump - * @brief Interface to the ibm,scan-log-dump rtas call - * - * @param buffer buffer to return scan log dump in - * @param length size of buffer - * @return 0 on success, !0 otherwise - */ -int rtas_scan_log_dump(void *buffer, size_t length) -{ - int token = rtas_token("ibm,scan-log-dump"); - - if (token < 0) - return token; - - CALL_RTAS_METHOD(scan_log_dump, token, buffer, length); -} - -/** - * rtas_set_debug - * @brief Interface to set librtas debug level - * - * @param level debug level to set to - * @return 0 on success, !0 otherwise - */ -int rtas_set_debug(int level) -{ - config.debug = level; - - return 0; -} -/** - * rtas_set_dynamic_indicator - * @brief Interface to the ibm,set-dynamic-indicator rtas call - * - * @param indicator indicator to set - * @param new_value value to set the indicator to - * @param loc_code - * @return 0 on success, !0 otherwise - */ -int rtas_set_dynamic_indicator(int indicator, int new_value, void *loc_code) -{ - int token = rtas_token("ibm,set-dynamic-indicator"); - - if (token < 0) - return token; - - CALL_RTAS_METHOD(set_dynamic_indicator, token, indicator, new_value, - loc_code); -} - -/** - * rtas_set_eeh_option - * @brief Inerface to the ibm,set-eeh-option rtas call - * - * @param cfg_addr configuration address for slot to set eeh option on - * @param phbid PHB ID for slot to set option on - * @param function - * @return 0 on success, !0 otherwise - */ -int rtas_set_eeh_option(uint32_t cfg_addr, uint64_t phbid, int function) -{ - int token = rtas_token("ibm,set-eeh-option"); - - if (token < 0) - return token; - - CALL_RTAS_METHOD(set_eeh_option, token, cfg_addr, phbid, function); -} - -/** - * rtas_set_indicator - * @brief Interface to the set-indicator rtas call - * - * @param indicator indicator to set - * @param index indicator index - * @param new_value value to set the indicator to - * @return 0 on success, !0 otherwise - */ -int rtas_set_indicator(int indicator, int index, int new_value) -{ - int token = rtas_token("set-indicator"); - - if (token < 0) - return token; - - CALL_RTAS_METHOD(set_indicator, token, indicator, index, new_value); -} - -/** - * rtas_set_power_level - * @brief Interface to the set-power-level rtas call - * - * @param powerdomain - * @param level power level to set to - * @param setlevel - * @return 0 on success, !0 otherwise - */ -int rtas_set_power_level(int powerdomain, int level, int *setlevel) -{ - int token = rtas_token("set-power-level"); - - if (token < 0) - return token; - - CALL_RTAS_METHOD(set_power_level, token, powerdomain, level, setlevel); -} - -/** - * rtas_set_poweron_time - * @brief interface to the set-time-for-power-on rtas call - * - * @param year year to power on - * @param month month to power on - * @param day day to power on - * @param hour hour to power on - * @param min minute to power on - * @param sec second to power on - * @param nsec nano-second top power on - * @return 0 on success, !0 otherwise - */ -int rtas_set_poweron_time(uint32_t year, uint32_t month, uint32_t day, - uint32_t hour, uint32_t min, uint32_t sec, - uint32_t nsec) -{ - int token = rtas_token("set-time-for-power-on"); - - if (token < 0) - return token; - - CALL_RTAS_METHOD(set_poweron_time, token, year, month, day, hour, min, - sec, nsec); -} - -/** - * rtas_set_sysparm - * @brief Interface to the ibm,set-system-parameter rtas call - * - * @param parameter - * @param data - * @return 0 on success, !0 otherwise - */ -int rtas_set_sysparm(unsigned int parameter, char *data) -{ - int token = rtas_token("ibm,set-system-parameter"); - - if (token < 0) - return token; - - CALL_RTAS_METHOD(set_sysparm, token, parameter, data); -} - -/** - * rtas_set_time - * @brief Interface to the set-time-of-day rtas call - * - * @param year year to set time to - * @param month month to set time to - * @param day day to set time to - * @param hour hour to set time to - * @param min minute to set time to - * @param sec second to set time to - * @param nsec nan-second to set time to - * @return 0 on success, !0 otherwise - */ -int rtas_set_time(uint32_t year, uint32_t month, uint32_t day, uint32_t hour, - uint32_t min, uint32_t sec, uint32_t nsec) -{ - int token = rtas_token("set-time-of-day"); - - if (token < 0) - return token; - - CALL_RTAS_METHOD(set_time, token, year, month, day, hour, min, sec, - nsec); -} - -/** - * rtas_suspend_me - * @brief Interface for ibm,suspend-me rtas call - * - * @return 0 on success, !0 on failure - */ -int rtas_suspend_me(uint64_t streamid) -{ - int token = rtas_token("ibm,suspend-me"); - - if (token < 0) - return token; - - CALL_RTAS_METHOD(suspend_me, token, streamid); -} - -/** - * rtas_update_nodes - * @brief Interface for ibm,update-nodes rtas call - * - * @param workarea input output work area for the rtas call - * @param scope of call - * @return 0 on success, !0 on failure - */ -int rtas_update_nodes(char *workarea, unsigned int scope ) -{ - int token = rtas_token("ibm,update-nodes"); - - if (token < 0) - return token; - - CALL_RTAS_METHOD(update_nodes, token, workarea, scope); -} - -/** - * rtas_update_properties - * @brief Interface for ibm,update-properties rtas call - * - * @param workarea input output work area for the rtas call - * @param scope of call - * @return 0 on success, !0 on failure - */ -int rtas_update_properties(char *workarea, unsigned int scope ) -{ - int token = rtas_token("ibm,update-properties"); - - if (token < 0) - return token; - - CALL_RTAS_METHOD(update_properties, token, workarea, scope); -} diff -Nru librtas-1.3.13/librtas_src/common.h librtas-2.0.0/librtas_src/common.h --- librtas-1.3.13/librtas_src/common.h 2014-10-23 02:23:41.000000000 +0000 +++ librtas-2.0.0/librtas_src/common.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,107 +0,0 @@ -/** - * @file common.h - * - * Copyright (C) 2005 IBM Corporation - * Common Public License Version 1.0 (see COPYRIGHT) - * - * @author John Rose - */ - -#ifndef _COMMON_H_ -#define _COMMON_H_ - -#include -#include - -#define RC_BUSY -2 -#define EXTENDED_DELAY_MIN 9900 -#define EXTENDED_DELAY_MAX 9905 - -#define PAGE_SIZE 4096 - -/* - * When adding an RTAS call, argument list below should - * consist of an int token followed by the call arguments - * defined in librtas.h - */ -struct rtas_operations { - int (*activate_firmware)(int token); - int (*cfg_connector)(int token, char *workarea); - int (*delay_timeout)(uint64_t timeout_ms); - int (*display_char)(int token, char c); - int (*display_msg)(int token, char *buf); - int (*errinjct)(int token, int etoken, int otoken, char *workarea); - int (*errinjct_close)(int token, int otoken); - int (*errinjct_open)(int token, int *otoken); - int (*free_rmo_buffer)(void *buf, uint32_t phys_addr, size_t size); - int (*get_config_addr_info2)(int token, uint32_t cfg_addr, - uint64_t phb_id, uint32_t func, uint32_t *info); - int (*get_dynamic_sensor)(int token, int sensor, void *loc_code, - int *state); - int (*get_indices)(int token, int is_sensor, int type, char *workarea, - size_t size, int start, int *next); - int (*get_power_level)(int token, int powerdomain, int *level); - int (*get_rmo_buffer)(size_t size, void **buf, uint32_t *phys_addr); - int (*get_sensor)(int token, int sensor, int index, int *state); - int (*get_sysparm)(int token, unsigned int parameter, - unsigned int length, char *data); - int (*get_time)(int token, uint32_t *year, uint32_t *month, - uint32_t *day, uint32_t *hour, uint32_t *min, - uint32_t *sec, uint32_t *nsec); - int (*get_vpd)(int token, char *loc_code, char *workarea, size_t size, - unsigned int sequence, unsigned int *seq_next, - unsigned int *bytes_ret); - int (*lpar_perftools)(int token, int subfunc, char *workarea, - unsigned int length, unsigned int sequence, - unsigned int *seq_next); - int (*platform_dump)(int token, uint64_t dump_tag, uint64_t sequence, - void *buffer, size_t length, - uint64_t *next_seq, uint64_t *bytes_ret); - int (*read_slot_reset)(int token, uint32_t cfg_addr, uint64_t phbid, - int *state, int *eeh); - int (*scan_log_dump)(int token, void *buffer, size_t length); - int (*set_dynamic_indicator)(int token, int indicator, int new_value, - void *loc_code); - int (*set_eeh_option)(int token, uint32_t cfg_addr, uint64_t phbid, - int function); - int (*set_indicator)(int token, int indicator, int index, - int new_value); - int (*set_power_level)(int token, int powerdomain, int level, - int *setlevel); - int (*set_poweron_time)(int token, uint32_t year, uint32_t month, - uint32_t day, uint32_t hour, uint32_t min, - uint32_t sec, uint32_t nsec); - int (*set_sysparm)(int token, unsigned int parameter, char *data); - int (*set_time)(int token, uint32_t year, uint32_t month, uint32_t day, - uint32_t hour, uint32_t min, uint32_t sec, - uint32_t nsec); - int (*suspend_me)(int token, uint64_t streamid); - int (*update_nodes)(int token, char *workarea, unsigned int scope); - int (*update_properties)(int token, char *workarea, unsigned int scope); - int (*interface_exists)(); -}; - -struct librtas_config { - struct rtas_operations *rtas_ops; - uint64_t rtas_timeout_ms; - int debug; -}; - -extern int open_proc_rtas_file(const char *name, int mode); -extern int rtas_token(const char *call_name); -extern int read_entire_file(int fd, char **buf, size_t *len); - -extern struct librtas_config config; - -#define dbg(_lvl, _fmt, _args...) \ - do { \ - if (config.debug >= _lvl) \ - printf("librtas %s(): " _fmt, __FUNCTION__, ##_args); \ - } while (0) - -#define dbg1(_fmt, _args...) \ - do { \ - dbg(1, _fmt, ##_args); \ - } while (0) \ - -#endif diff -Nru librtas-1.3.13/librtas_src/librtas.h librtas-2.0.0/librtas_src/librtas.h --- librtas-1.3.13/librtas_src/librtas.h 2014-10-23 02:23:41.000000000 +0000 +++ librtas-2.0.0/librtas_src/librtas.h 2016-04-06 03:03:56.000000000 +0000 @@ -2,7 +2,20 @@ * @file librtas.h * * Copyright (C) 2005 IBM Corporation - * Common Public License Version 1.0 (see COPYRIGHT) + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library 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 + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA * * @author John Rose */ @@ -10,6 +23,8 @@ #ifndef _LIBRTAS_H_ #define _LIBRTAS_H_ +#include +#include #include #include @@ -23,16 +38,16 @@ #define RTAS_IO_ASSERT -1098 /* Unexpected I/O Error */ #define RTAS_UNKNOWN_OP -1099 /* No Firmware Implementation of Function */ +#define RC_BUSY -2 +#define EXTENDED_DELAY_MIN 9900 +#define EXTENDED_DELAY_MAX 9905 + +#define PAGE_SIZE 4096 + /* Adding a new RTAS call requires the following: * 1) A function prototype in librtas.h (this file) that roughly matches * the RTAS call name. - * 2) An implementation of the new function in common.c. Use the existing - * ones as an example. - * 3) A function pointer definition in struct rtas_operations in common.h. - * Prepend a "token" argument to the argument list. - * 4) An implementation-specific version of the RTAS function, in - * syscall_calls.c and/or procfs_calls.c. Remember to add your new - * function to the rtas_operations struct at the top of the file. + * 2) An implementation of the RTAS function, in syscall_calls.c. */ #ifdef __cplusplus @@ -48,7 +63,8 @@ extern int rtas_errinjct_close(int otoken); extern int rtas_errinjct_open(int *otoken); extern int rtas_free_rmo_buffer(void *buf, uint32_t phys_addr, size_t size); -extern int rtas_get_config_addr_info2(uint32_t cfg_addr, uint64_t phb_id, uint32_t func, uint32_t *info); +extern int rtas_get_config_addr_info2(uint32_t cfg_addr, uint64_t phb_id, + uint32_t func, uint32_t *info); extern int rtas_get_dynamic_sensor(int sensor, void *loc_code, int *state); extern int rtas_get_indices(int is_sensor, int type, char *workarea, size_t size, int start, int *next); @@ -93,5 +109,5 @@ #ifdef __cplusplus } #endif - + #endif /* _LIBRTAS_H_ */ diff -Nru librtas-1.3.13/librtas_src/Makefile librtas-2.0.0/librtas_src/Makefile --- librtas-1.3.13/librtas_src/Makefile 2014-10-23 02:23:41.000000000 +0000 +++ librtas-2.0.0/librtas_src/Makefile 2016-04-06 03:03:56.000000000 +0000 @@ -2,8 +2,20 @@ # Makefile for librtas # # Copyright (C) 2005 IBM Corporation -# Common Public License Version 1.0 (see COPYRIGHT) # +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License, or (at your option) any later version. +# +# This library 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 +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA include ../rules.mk @@ -11,10 +23,10 @@ LIBRTAS_STATIC = librtas.a LIBRTAS = $(LIBRTAS_SONAME).$(VERSION) -LIBRTAS_OBJS = common.o ofdt.o syscall_calls.o syscall_rmo.o procfs_calls.o +LIBRTAS_OBJS = ofdt.o syscall_calls.o syscall_rmo.o LIBRTAS_HDR = librtas.h -HEADERS = $(LIBRTAS_HDR) common.h +HEADERS = $(LIBRTAS_HDR) CFLAGS += -fPIC -DPIC LDFLAGS += -shared -Wl,-soname -Wl,$(LIBRTAS_SONAME).$(MAJOR_NO) @@ -31,13 +43,17 @@ install: @$(call install_lib,$(LIBRTAS),$(DESTDIR)) + @$(call install_lib,$(LIBRTAS_STATIC),$(DESTDIR)) @$(call install_inc,$(HEADERS),$(DESTDIR)) @ln -sf $(LIBRTAS) $(DESTDIR)/$(LIB_DIR)$(call is_lib64,$(LIBRTAS))/$(LIBRTAS_SONAME) + @ln -sf $(LIBRTAS) $(DESTDIR)/$(LIB_DIR)$(call is_lib64,$(LIBRTAS))/$(LIBRTAS_SONAME).$(MAJOR_NO) uninstall: @$(call uninstall_lib,$(LIBRTAS),$(DESTDIR)) - @$(call uninstall_inc,$(LIBRTAS_HDR),$(DESTDIR)) + @$(call uninstall_lib,$(LIBRTAS_STATIC),$(DESTDIR)) + @$(call uninstall_inc,$(HEADERS),$(DESTDIR)) @rm -f $(DESTDIR)/$(LIB_DIR)$(call is_lib64,$(LIBRTAS))/$(LIBRTAS_SONAME) + @rm -f $(DESTDIR)/$(LIB_DIR)$(call is_lib64,$(LIBRTAS))/$(LIBRTAS_SONAME).$(MAJOR_NO) clean: @echo "Cleaning up $(WORK_DIR) files..." diff -Nru librtas-1.3.13/librtas_src/ofdt.c librtas-2.0.0/librtas_src/ofdt.c --- librtas-1.3.13/librtas_src/ofdt.c 2014-10-23 02:23:41.000000000 +0000 +++ librtas-2.0.0/librtas_src/ofdt.c 2016-04-06 03:03:56.000000000 +0000 @@ -2,20 +2,32 @@ * @file ofdt.c * * Copyright (C) 2005 IBM Corporation - * Common Public License Version 1.0 (see COPYRIGHT) + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library 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 + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA * * @author John Rose */ #include #include -#include #include #include #include #include #include "librtas.h" -#include "common.h" +#include "syscall.h" static const char *ofdt_rtas_path = "/proc/device-tree/rtas"; @@ -63,12 +75,10 @@ * @param prop_len * @return 0 on success, !0 otherwise */ -static int -get_property(const char *prop_path, const char *prop_name, char **prop_val, - size_t * prop_len) +static int get_property(const char *prop_path, const char *prop_name, + char **prop_val, size_t *prop_len) { - int fd; - int rc; + int rc, fd; rc = open_prop_file(prop_path, prop_name, &fd); if (rc) @@ -94,8 +104,12 @@ int rc; rc = get_property(ofdt_rtas_path, call_name, &prop_buf, &len); - if (rc < 0) + if (rc < 0) { + if (prop_buf) + free(prop_buf); + return RTAS_UNKNOWN_OP; + } #if __BYTE_ORDER == __LITTLE_ENDIAN rc = bswap_32(*(int *)prop_buf); @@ -139,10 +153,11 @@ rc = read(fd, *buf + off, BLOCK_SIZE); if (rc < 0) { - dbg1("read failed\n"); + dbg("read failed\n"); errno = EIO; return -1; } + off += rc; } while (rc == BLOCK_SIZE); diff -Nru librtas-1.3.13/librtas_src/procfs_calls.c librtas-2.0.0/librtas_src/procfs_calls.c --- librtas-1.3.13/librtas_src/procfs_calls.c 2014-10-23 02:23:41.000000000 +0000 +++ librtas-2.0.0/librtas_src/procfs_calls.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,262 +0,0 @@ -/** - * @file procfs_calls.c - * - * Copyright (C) 2005 IBM Corporation - * Common Public License Version 1.0 (see COPYRIGHT) - * - * @author John Rose - */ - -#include -#include -#include -#include "common.h" -#include "procfs.h" -#include "librtas.h" - -#define CFG_CONN_FILE "cfg_connector" -#define GET_POWER_FILE "get_power" -#define GET_SENSOR_FILE "get_sensor" -#define GET_SYSPARM_FILE "get_sysparm" -#define SET_INDICATOR_FILE "set_indicator" -#define SET_POWER_FILE "set_power" - -int pfs_cfg_connector(int token, char *workarea); -int pfs_get_power(int token, int domain, int *level); -int pfs_get_sensor(int token, int sensor, int index, int *state); -int pfs_get_sysparm(int token, unsigned int parameter, unsigned int length, - char *data); -int pfs_set_indicator(int token, int indicator, int index, int new_value); -int pfs_set_power(int token, int domain, int level, int *setlevel); - -int procfs_interface_exists(); - -struct rtas_operations procfs_rtas_ops = { - .cfg_connector = pfs_cfg_connector, - .get_power_level = pfs_get_power, - .get_sensor = pfs_get_sensor, - .get_sysparm = pfs_get_sysparm, - .set_indicator = pfs_set_indicator, - .set_power_level = pfs_set_power, - .interface_exists = procfs_interface_exists, -}; - -/** - * do_rtas_op - * @brief Perform the actual rtas call via the supplied procfs file - * - * @param proc_filename procfs filename for the rtas call - * @param buf buffer to read rtas call results into - * @param buf_size size of the buf - * @return 0 on success, !0 otherwise - */ -static int do_rtas_op(const char *proc_filename, void *buf, size_t buf_size) -{ - int rc; - int fd; - - /* Open /proc file */ - fd = open_proc_rtas_file(proc_filename, O_RDWR); - if (fd <= 0) - return RTAS_KERNEL_IMP; - - /* Write RTAS call args buf */ - rc = write(fd, buf, buf_size); - if (rc < (int)buf_size) { - fprintf(stderr, "Failed to write proc file %s\n", - proc_filename); - return RTAS_IO_ASSERT; - } - - /* Read results */ - rc = read(fd, buf, buf_size); - if (rc < (int)buf_size) { - fprintf(stderr, "Failed to read proc file %s\n", proc_filename); - return RTAS_IO_ASSERT; - } - - /* Close /proc file */ - close(fd); - - return 0; -} - -/** - * pfs_cfg_connector - * @brief Set up arguments for procfs cfg-connector rtas call - * - * @param token - * @param workarea - * @return 0 on success, !0 otherwise - */ -int pfs_cfg_connector(int token, char *workarea) -{ - struct rtas_cfg_connector args; - int rc; - - memcpy(&args.workarea[0], workarea, PAGE_SIZE); - rc = do_rtas_op(CFG_CONN_FILE, &args, - sizeof(struct rtas_cfg_connector)); - if (rc) - return rc; - - memcpy(workarea, &args.workarea[0], PAGE_SIZE); - - return args.status; -} - -/** - * pfs_get_power - * @brief Set up args for procfs get-power-level rtas call - * - * @param token - * @param domain - * @param level - * @return 0 on success, !0 otherwise - */ -int pfs_get_power(int token, int domain, int *level) -{ - struct rtas_get_power_level args; - int rc; - - args.powerdomain = domain; - - rc = do_rtas_op(GET_POWER_FILE, &args, - sizeof(struct rtas_get_power_level)); - if (rc) - return rc; - - *level = args.level; - - return args.status; -} - -/** - * pfs_get_sensor - * @brief Set up args for procfs get-sensor-state rtas call - * - * @param token - * @param sensor - * @param index - * @param state - * @return 0 on success, !0 otherwise - */ -int pfs_get_sensor(int token, int sensor, int index, int *state) -{ - struct rtas_get_sensor args; - int rc; - - args.sensor = sensor; - args.index = index; - - rc = do_rtas_op(GET_SENSOR_FILE, &args, sizeof(struct rtas_get_sensor)); - if (rc) - return rc; - - *state = args.state; - - return args.status; -} - -/** - * pfs_get_sysparm - * @brief Set up call to procfs get-system-parameter rtas call - * - * @param token - * @param parameter - * @param length - * @param data - * @return 0 on success, !0 otherwise - */ -int pfs_get_sysparm(int token, unsigned int parameter, unsigned int length, - char *data) -{ - struct rtas_get_sysparm args; - int rc; - - args.parameter = parameter; - args.length = length; - memcpy(&args.data[0], data, PAGE_SIZE); - - rc = do_rtas_op(GET_SYSPARM_FILE, &args, - sizeof(struct rtas_get_sysparm)); - - if (args.status == 0) - memcpy(data, &args.data[0], PAGE_SIZE); - - return args.status; -} - -/** - * pfs_set_indicator - * @brief Set up call to procfs set-indicator rtas call - * - * @param token - * @param indicator - * @param index - * @param new_value - * @return 0 on success, !0 otherwise - */ -int pfs_set_indicator(int token, int indicator, int index, int new_value) -{ - struct rtas_set_indicator args; - int rc; - - args.indicator = indicator; - args.index = index; - args.new_value = new_value; - - rc = do_rtas_op(SET_INDICATOR_FILE, &args, - sizeof(struct rtas_set_indicator)); - if (rc) - return rc; - - return args.status; -} - -/** - * pfs_set_power - * - * @param token - * @param domain - * @param level - * @param setlevel - * @return 0 on success, !0 otherwise - */ -int pfs_set_power(int token, int domain, int level, int *setlevel) -{ - struct rtas_set_power_level args; - int rc; - - args.powerdomain = domain; - args.level = level; - - rc = do_rtas_op(SET_POWER_FILE, &args, - sizeof(struct rtas_set_power_level)); - if (rc) - return rc; - - *setlevel = args.setlevel; - - return args.status; -} - -/** - * procfs_interfac_exists - * @brief VAlidate that the procfs interface to rtas exists - * - * @return 0 on success, !0 otherwise - */ -int procfs_interface_exists() -{ - int fd; - int exists; - - fd = open_proc_rtas_file("get_sensor", O_RDWR); - exists = (fd >= 0); - - if (exists) - close(fd); - - return exists; -} diff -Nru librtas-1.3.13/librtas_src/procfs.h librtas-2.0.0/librtas_src/procfs.h --- librtas-1.3.13/librtas_src/procfs.h 2014-10-23 02:23:41.000000000 +0000 +++ librtas-2.0.0/librtas_src/procfs.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,49 +0,0 @@ -/** - * @file procfs.h - * - * Copyright (C) 2005 IBM Corporation - * Common Public License Version 1.0 (see COPYRIGHT) - * - * @author John Rose - */ - -#ifndef _PROCFS_H_ -#define _PROCFS_H_ - -#define PFS_BUF_SIZE 4096 - -struct rtas_set_indicator { - int indicator; /* Indicator Token */ - int index; /* Indicator Index */ - int new_value; /* New value or State */ - int status; /* Returned status */ -}; -struct rtas_get_sensor { - int sensor; /* Sensor Token */ - int index; /* Sensor Index */ - int state; /* Returned State of the sensor */ - int status; /* Returned status */ -}; -struct rtas_cfg_connector { - char workarea[PFS_BUF_SIZE]; /* Config work area */ - int status; /* Returned status */ -}; -struct rtas_get_power_level { - int powerdomain; /* Power Domain Token */ - int level; /* Current Power Level */ - int status; /* Returned status */ -}; -struct rtas_set_power_level { - int powerdomain; /* Power Domain Token */ - int level; /* Power Level Token */ - int setlevel; /* Returned Set Power Level */ - int status; /* Returned status */ -}; -struct rtas_get_sysparm { - unsigned int parameter; /* System parameter value */ - char data[PFS_BUF_SIZE]; /* Parameter data */ - unsigned int length; /* Length of data buffer */ - int status; /* Returned status */ -}; - -#endif diff -Nru librtas-1.3.13/librtas_src/syscall_calls.c librtas-2.0.0/librtas_src/syscall_calls.c --- librtas-1.3.13/librtas_src/syscall_calls.c 2014-10-23 02:23:41.000000000 +0000 +++ librtas-2.0.0/librtas_src/syscall_calls.c 2016-04-06 03:03:56.000000000 +0000 @@ -4,7 +4,20 @@ * Provide user space rtas functions that go through the RTAS system call. * * Copyright (C) 2005 IBM Corporation - * Common Public License Version 1.0 (see COPYRIGHT) + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library 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 + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA * * @author John Rose */ @@ -12,97 +25,13 @@ #include #include #include +#include #include -#include #include #include -#include "common.h" #include "syscall.h" #include "librtas.h" -int sc_activate_firmware(int token); -int sc_cfg_connector(int token, char *workarea); -int sc_delay_timeout(uint64_t timeout_ms); -int sc_display_char(int token, char c); -int sc_display_msg(int token, char *buf); -int sc_errinjct(int token, int etoken, int otoken, char *workarea); -int sc_errinjct_close(int token, int otoken); -int sc_errinjct_open(int token, int *otoken); -int sc_get_dynamic_sensor(int token, int sensor, void *loc_code, int *state); -int sc_get_config_addr_info2(int token, uint32_t config_addr, uint64_t phb_id, uint32_t func, uint32_t *info); -int sc_get_indices(int token, int is_sensor, int type, char *workarea, - size_t size, int start, int *next); -int sc_get_power_level(int token, int powerdomain, int *level); -int sc_get_sensor(int token, int sensor, int index, int *state); -int sc_get_sysparm(int token, unsigned int parameter, unsigned int length, - char *data); -int sc_get_time(int token, uint32_t *year, uint32_t *month, uint32_t *day, - uint32_t *hour, uint32_t *min, uint32_t *sec, uint32_t *nsec); -int sc_get_vpd(int token, char *loc_code, char *workarea, size_t size, - unsigned int sequence, unsigned int *seq_next, - unsigned int *bytes_ret); -int sc_lpar_perftools(int token, int subfunc, char *workarea, - unsigned int length, unsigned int sequence, - unsigned int *seq_next); -int sc_platform_dump(int token, uint64_t dump_tag, uint64_t sequence, - void *buffer, size_t length, uint64_t * next_seq, - uint64_t * bytes_ret); -int sc_read_slot_reset(int token, uint32_t cfg_addr, uint64_t phbid, - int *state, int *eeh); -int sc_scan_log_dump(int token, void *buffer, size_t length); -int sc_set_dynamic_indicator(int token, int indicator, int new_value, - void *loc_code); -int sc_set_eeh_option(int token, uint32_t cfg_addr, uint64_t phbid, - int function); -int sc_set_indicator(int token, int indicator, int index, int new_value); -int sc_set_power_level(int token, int powerdomain, int level, int *setlevel); -int sc_set_poweron_time(int token, uint32_t year, uint32_t month, uint32_t day, - uint32_t hour, uint32_t min, uint32_t sec, - uint32_t nsec); -int sc_set_sysparm(int token, unsigned int parameter, char *data); -int sc_set_time(int token, uint32_t year, uint32_t month, uint32_t day, - uint32_t hour, uint32_t min, uint32_t sec, - uint32_t nsec); -int sc_suspend_me(int token, uint64_t streamid); -int sc_update_nodes(int token, char *workarea, unsigned int scope); -int sc_update_properties(int token, char *workarea, unsigned int scope); - -struct rtas_operations syscall_rtas_ops = { - .activate_firmware = sc_activate_firmware, - .cfg_connector = sc_cfg_connector, - .delay_timeout = sc_delay_timeout, - .display_char = sc_display_char, - .display_msg = sc_display_msg, - .errinjct = sc_errinjct, - .errinjct_close = sc_errinjct_close, - .errinjct_open = sc_errinjct_open, - .free_rmo_buffer = sc_free_rmo_buffer, - .get_config_addr_info2 = sc_get_config_addr_info2, - .get_dynamic_sensor = sc_get_dynamic_sensor, - .get_indices = sc_get_indices, - .get_sensor = sc_get_sensor, - .get_power_level = sc_get_power_level, - .get_rmo_buffer = sc_get_rmo_buffer, - .get_sysparm = sc_get_sysparm, - .get_time = sc_get_time, - .get_vpd = sc_get_vpd, - .lpar_perftools = sc_lpar_perftools, - .platform_dump = sc_platform_dump, - .read_slot_reset = sc_read_slot_reset, - .scan_log_dump = sc_scan_log_dump, - .set_dynamic_indicator = sc_set_dynamic_indicator, - .set_indicator = sc_set_indicator, - .set_eeh_option = sc_set_eeh_option, - .set_power_level = sc_set_power_level, - .set_poweron_time = sc_set_poweron_time, - .set_sysparm = sc_set_sysparm, - .set_time = sc_set_time, - .suspend_me = sc_suspend_me, - .update_nodes = sc_update_nodes, - .update_properties = sc_update_properties, - .interface_exists = sc_interface_exists, -}; - /* The original librtas used the _syscall1 interface to get to the rtas * system call. On recent versions of Linux though the _syscall1 * interface was removed from unistd.h so we have moved to using the @@ -115,6 +44,26 @@ #define CALL_AGAIN 1 +int dbg_lvl = 0; +static uint64_t rtas_timeout_ms; + +/** + * sanity_check + * @brief validate the caller credentials and rtas interface + * + * @return 0 for success, !o on failure + */ +int sanity_check(void) +{ + if (geteuid() != (uid_t)0) + return RTAS_PERM; + + if (!interface_exists()) + return RTAS_KERNEL_INT; + + return 0; +} + /** * handle_delay * @brief sleep for the specified delay time @@ -144,17 +93,17 @@ return 0; } - if (config.rtas_timeout_ms) { - if (*elapsed >= config.rtas_timeout_ms) + if (rtas_timeout_ms) { + if (*elapsed >= rtas_timeout_ms) return RTAS_TIMEOUT; - remaining = config.rtas_timeout_ms - *elapsed; + remaining = rtas_timeout_ms - *elapsed; if (ms > remaining) ms = remaining; } *elapsed += ms; - dbg1("Return status %d, delaying for %ld ms\n", status, ms); + dbg("Return status %d, delaying for %ld ms\n", status, ms); usleep(ms * 1000); return 1; } @@ -163,18 +112,18 @@ * display_rtas_buf * @brief Dump the contents of the rtas call buffer * - * @param args + * @param args * @param after */ static void display_rtas_buf(struct rtas_args *args, int after) { int i, ninputs, nret; - if (config.debug < 2) + if (dbg_lvl < 2) return; ninputs = be32toh(args->ninputs); - nret = be32toh(args->nret); + nret = be32toh(args->nret); /* It doesn't make sense to byte swap the input and return arguments * as we don't know here what they really mean (it could be a 64 bit @@ -196,10 +145,10 @@ } /** - * sc_rtas_call + * rtas_call * @brief Perform the actual system call for the rtas call - * - * Variable argument list consists of inputs followed by + * + * Variable argument list consists of inputs followed by * pointers to outputs. * * @param token @@ -207,74 +156,106 @@ * @param nret number of return variables * @return 0 on success, !0 otherwise */ -static int sc_rtas_call(int token, int ninputs, int nret, ...) +static int _rtas_call(int delay_handling, int token, int ninputs, + int nrets, va_list *ap) { struct rtas_args args; rtas_arg_t *rets[MAX_ARGS]; - va_list ap; - int rc; - int i; + uint64_t elapsed = 0; + int i, rc; args.token = htobe32(token); args.ninputs = htobe32(ninputs); - args.nret = htobe32(nret); + args.nret = htobe32(nrets); - va_start(ap, nret); for (i = 0; i < ninputs; i++) - args.args[i] = (rtas_arg_t) va_arg(ap, unsigned long); + args.args[i] = (rtas_arg_t) va_arg(*ap, unsigned long); - for (i = 0; i < nret; i++) - rets[i] = (rtas_arg_t *) va_arg(ap, unsigned long); - va_end(ap); + for (i = 0; i < nrets; i++) + rets[i] = (rtas_arg_t *) va_arg(*ap, unsigned long); display_rtas_buf(&args, 0); + do { #ifdef _syscall1 - rc = rtas(&args); + rc = rtas(&args); #else - rc = syscall(__NR_rtas, &args); + rc = syscall(__NR_rtas, &args); #endif + if (!delay_handling || (rc < 0)) + break; + + rc = handle_delay(be32toh(args.args[ninputs]), &elapsed); + } while (rc == CALL_AGAIN); if (rc != 0) { - dbg1("RTAS syscall failure, errno=%d\n", errno); + dbg("RTAS syscall failure, errno=%d\n", errno); return RTAS_IO_ASSERT; } + display_rtas_buf(&args, 1); /* Assign rets */ - if (nret) { + if (nrets) { /* All RTAS calls return a status in rets[0] */ *(rets[0]) = be32toh(args.args[ninputs]); - for (i = 1; i < nret; i++) + for (i = 1; i < nrets; i++) *(rets[i]) = args.args[ninputs + i]; } return 0; } +static int rtas_call_no_delay(const char *name, int ninputs, int nrets, ...) +{ + va_list ap; + int rc, token; + + token = rtas_token(name); + if (token < 0) + return token; + + va_start(ap, nrets); + rc = _rtas_call(0, token, ninputs, nrets, &ap); + va_end(ap); + + return rc; +} + +static int rtas_call(const char *name, int ninputs, int nrets, ...) +{ + va_list ap; + int rc, token; + + token = rtas_token(name); + if (token < 0) + return token; + + va_start(ap, nrets); + rc = _rtas_call(1, token, ninputs, nrets, &ap); + va_end(ap); + + return rc; +} + /** - * sc_activate_firmware - * @brief Set up the activate-firmware rtas system call + * rtas_activate_firmware + * @brief Interface for ibm,activate-firmware rtas call * - * @param token - * @return 0 on success, !0 otherwise + * @return 0 on success, !0 on failure */ -int sc_activate_firmware(int token) +int rtas_activate_firmware() { - uint64_t elapsed = 0; - int status; - int rc; + int rc, status; - do { - rc = sc_rtas_call(token, 0, 1, &status); - if (rc) - return rc; + rc = sanity_check(); + if (rc) + return rc; - rc = handle_delay(status, &elapsed); - } while (rc == CALL_AGAIN); + rc = rtas_call("ibm,activate-firmware", 0, 1, &status); - dbg1("() = %d\n", rc ? rc : status); + dbg("() = %d\n", rc ? rc : status); return rc ? rc : status; } @@ -282,39 +263,44 @@ #define CFG_RC_MEM 5 /** - * sc_cfg_connector - * @brief Set up the cfg-connector rtas system call + * rtas_cfg_connector + * @brief Interface for ibm,configure-connector rtas call * - * @param token - * @param workarea - * @return 0 on success, !0 otherwise + * @param workarea buffer containg args to ibm,configure-connector + * @return 0 on success, !0 on failure */ -int sc_cfg_connector(int token, char *workarea) +int rtas_cfg_connector(char *workarea) { uint32_t workarea_pa; uint32_t extent_pa = 0; uint64_t elapsed = 0; void *kernbuf; void *extent; - int status; - int rc; + int rc, status; - rc = sc_get_rmo_buffer(PAGE_SIZE, &kernbuf, &workarea_pa); + rc = sanity_check(); + if (rc) + return rc; + + rc = rtas_get_rmo_buffer(PAGE_SIZE, &kernbuf, &workarea_pa); if (rc) return rc; memcpy(kernbuf, workarea, PAGE_SIZE); do { - rc = sc_rtas_call(token, 2, 1, htobe32(workarea_pa), - htobe32(extent_pa), &status); + rc = rtas_call_no_delay("ibm,configure-connector", 2, 1, + htobe32(workarea_pa), + htobe32(extent_pa), &status); if (rc < 0) break; - + if ((rc == 0) && (status == CFG_RC_MEM)) { - rc = sc_get_rmo_buffer(PAGE_SIZE, &extent, &extent_pa); + rc = rtas_get_rmo_buffer(PAGE_SIZE, &extent, + &extent_pa); if (rc < 0) break; + continue; } @@ -324,440 +310,403 @@ if (rc == 0) memcpy(workarea, kernbuf, PAGE_SIZE); - (void)sc_free_rmo_buffer(kernbuf, workarea_pa, PAGE_SIZE); + (void)rtas_free_rmo_buffer(kernbuf, workarea_pa, PAGE_SIZE); if (extent_pa) - (void)sc_free_rmo_buffer(extent, extent_pa, PAGE_SIZE); + (void)rtas_free_rmo_buffer(extent, extent_pa, PAGE_SIZE); - dbg1("(%p) = %d\n", workarea, rc ? rc : status); + dbg("(%p) = %d\n", workarea, rc ? rc : status); return rc ? rc : status; } /** - * sc_delay_timeout - * @brief set the configured timeout value + * rtas_delay_timeout + * @brief Interface to retrieve the rtas timeout delay * - * @param timeout_ms new timeout in milliseconds - * @return 0 on success, !0 otherwise + * @param timeout_ms timeout in milli-seconds + * @return delay time */ -int sc_delay_timeout(uint64_t timeout_ms) +int rtas_delay_timeout(uint64_t timeout_ms) { - config.rtas_timeout_ms = timeout_ms; + int rc; + + rc = sanity_check(); + if (rc) + return rc; + + rtas_timeout_ms = timeout_ms; return 0; } /** - * sc_display_char - * @brief Set up display-char rtas system call - * - * @param token + * rtas_display_char + * @brief Interface for display-character rtas call + * * @param c character to display * @return 0 on success, !0 otherwise */ -int sc_display_char(int token, char c) +int rtas_display_char(char c) { - uint64_t elapsed = 0; - int status; - int rc; + int rc, status; - do { - rc = sc_rtas_call(token, 1, 1, c, &status); - if (rc) - return rc; + rc = sanity_check(); + if (rc) + return rc; - rc = handle_delay(status, &elapsed); - } while (rc == CALL_AGAIN); + rc = rtas_call("display-character", 1, 1, c, &status); - dbg1("(%d) = %d\n", c, rc ? rc : status); + dbg("(%d) = %d\n", c, rc ? rc : status); return rc ? rc : status; } /** - * sc_display_msg - * @brief Set up the display-message rtas system call + * rtas_display_msg + * @brief Interface for ibm,display-message rtas call * - * @param token * @param buf message to display * @return 0 on success, !0 otherwise */ -int sc_display_msg(int token, char *buf) +int rtas_display_msg(char *buf) { - uint64_t elapsed = 0; uint32_t kernbuf_pa; void *kernbuf; int str_len; - int status; - int rc; + int rc, status; + + rc = sanity_check(); + if (rc) + return rc; str_len = strlen(buf); - rc = sc_get_rmo_buffer(str_len, &kernbuf, &kernbuf_pa); + rc = rtas_get_rmo_buffer(str_len, &kernbuf, &kernbuf_pa); if (rc) return rc; strcpy(kernbuf, buf); - do { - rc = sc_rtas_call(token, 1, 1, htobe32(kernbuf_pa), &status); - if (rc < 0) - break; - - rc = handle_delay(status, &elapsed); - } while ((rc == CALL_AGAIN)); - - (void)sc_free_rmo_buffer(kernbuf, kernbuf_pa, str_len); + rc = rtas_call("ibm,display-message", 1, 1, htobe32(kernbuf_pa), + &status); + (void)rtas_free_rmo_buffer(kernbuf, kernbuf_pa, str_len); - dbg1("(%p) = %d\n", buf, rc ? rc : status); + dbg("(%p) = %d\n", buf, rc ? rc : status); return rc ? rc : status; } #define ERRINJCT_BUF_SIZE 1024 /** - * sc_errinjct - * @brief Set up the errinjct rtas system call + * rtas_errinjct + * @brief Interface to the ibm,errinjct rtas call * - * @param token - * @param etoken error injection token - * @param otoken error injection open token - * @param workarea additional args to rtas call + * @param etoken errinjct token + * @param otoken errinjct open token + * @param workarea additional args to ibm,errinjct * @return 0 on success, !0 otherwise */ -int sc_errinjct(int token, int etoken, int otoken, char *workarea) +int rtas_errinjct(int etoken, int otoken, char *workarea) { - uint64_t elapsed = 0; uint32_t kernbuf_pa; void *kernbuf; - int status=0; - int rc; + int rc, status; - rc = sc_get_rmo_buffer(ERRINJCT_BUF_SIZE, &kernbuf, &kernbuf_pa); + rc = sanity_check(); if (rc) return rc; - memcpy(kernbuf, workarea, ERRINJCT_BUF_SIZE); + rc = rtas_get_rmo_buffer(ERRINJCT_BUF_SIZE, &kernbuf, &kernbuf_pa); + if (rc) + return rc; - do { - rc = sc_rtas_call(token, 3, 1, htobe32(etoken), htobe32(otoken), - htobe32(kernbuf_pa), &status); - if (rc < 0 ) - break; + memcpy(kernbuf, workarea, ERRINJCT_BUF_SIZE); - rc = handle_delay(status, &elapsed); - } while (rc == CALL_AGAIN); + rc = rtas_call("ibm,errinjct", 3, 1, htobe32(etoken), htobe32(otoken), + htobe32(kernbuf_pa), &status); if (rc == 0) memcpy(workarea, kernbuf, ERRINJCT_BUF_SIZE); - (void)sc_free_rmo_buffer(kernbuf, kernbuf_pa, ERRINJCT_BUF_SIZE); + (void)rtas_free_rmo_buffer(kernbuf, kernbuf_pa, ERRINJCT_BUF_SIZE); - dbg1("(%d, %d, %p) = %d\n", etoken, otoken, workarea, rc ? rc : status); + dbg("(%d, %d, %p) = %d\n", etoken, otoken, workarea, rc ? rc : status); return rc ? rc : status; } /** - * sc_errinjct_close - * @brief Set up the errinjct close rtas system call + * rtas_errinjct_close + * @brief Inerface to close the ibm,errinjct facility * - * @param token * @param otoken errinjct open token * @return 0 on success, !0 otherwise */ -int sc_errinjct_close(int token, int otoken) +int rtas_errinjct_close(int otoken) { - uint64_t elapsed = 0; - int status; - int rc; + int rc, status; - do { - rc = sc_rtas_call(token, 1, 1, htobe32(otoken), &status); - if (rc) - return rc; + rc = sanity_check(); + if (rc) + return rc; - rc = handle_delay(status, &elapsed); - } while (rc == CALL_AGAIN); + rc = rtas_call("ibm,close-errinjct", 1, 1, htobe32(otoken), &status); - dbg1("(%d) = %d\n", otoken, rc ? rc : status); + dbg("(%d) = %d\n", otoken, rc ? rc : status); return rc ? rc : status; } /** - * sc_errinjct_open - * @brief Set up the errinjct open rtas system call + * rtas_errinjct_open + * @brief Interface to open the ibm,errinjct facility * - * @param token - * @param otoken + * This call will set the value refrenced by otoken to the open token + * for the ibm,errinjct facility + * + * @param otoken pointer to open token * @return 0 on success, !0 otherwise */ -int sc_errinjct_open(int token, int *otoken) +int rtas_errinjct_open(int *otoken) { - uint64_t elapsed = 0; __be32 be_otoken; - int status; - int rc; - - do { - rc = sc_rtas_call(token, 0, 2, &be_otoken, &status); - if (rc) - return rc; + int rc, status; - rc = handle_delay(status, &elapsed); - } while (rc == CALL_AGAIN); + rc = sanity_check(); + if (rc) + return rc; + rc = rtas_call("ibm,open-errinjct", 0, 2, &be_otoken, &status); *otoken = be32toh(be_otoken); - dbg1("(%p) = %d, %d\n", otoken, rc ? rc : status, *otoken); + dbg("(%p) = %d, %d\n", otoken, rc ? rc : status, *otoken); return rc ? rc : status; } /** - * sc_get_config_addr2 - * @brief get the pci slot config address + * rtas_get_config_addr_info2 + * @brief Interface to ibm,get-config-addr-info2 rtas call + * + * On successful completion the info value is returned. * - * @param token * @param config_addr * @param phb_unit_id * @param func * @param info * @return 0 on success, !0 otherwise */ -int sc_get_config_addr_info2(int token, uint32_t config_addr, - uint64_t phb_id, uint32_t func, uint32_t *info) +int rtas_get_config_addr_info2(uint32_t config_addr, uint64_t phb_id, + uint32_t func, uint32_t *info) { - uint64_t elapsed = 0; __be32 be_info; - int status; - int rc; + int rc, status; - do { - rc = sc_rtas_call(token, 4, 2, htobe32(config_addr), - htobe32(BITS32_HI(phb_id)), - htobe32(BITS32_LO(phb_id)), - htobe32(func), &status, &be_info); - if (rc) - break; + rc = sanity_check(); + if (rc) + return rc; - rc = handle_delay(status, &elapsed); - } while (rc == CALL_AGAIN); + rc = rtas_call("ibm,get-config-addr-info2", 4, 2, htobe32(config_addr), + htobe32(BITS32_HI(phb_id)), htobe32(BITS32_LO(phb_id)), + htobe32(func), &status, &be_info); *info = be32toh(be_info); - dbg1("(0x%x, 0x%llx, %d) = %d, 0x%x\n", config_addr, phb_id, func, - rc ? rc : status, *info); + dbg("(0x%x, 0x%lx, %d) = %d, 0x%x\n", config_addr, phb_id, func, + rc ? rc : status, *info); return rc ? rc : status; } /** - * sc_get_dynamic_sensor - * @brief Set up the get-dynamic-sensor rtas system call + * rtas_get_dynamic_sensor + * @brief Interface to ibm,get-dynamic-sensor-state rtas call * - * @param token - * @param sensor - * @param loc_code - * @param state + * On success the variable referenced by the state parameter will contain + * the state of the sensor + * + * @param sensor sensor to retrieve + * @param loc_code location code of the sensor + * @param state reference to state variable * @return 0 on success, !0 otherwise */ -int sc_get_dynamic_sensor(int token, int sensor, void *loc_code, int *state) +int rtas_get_dynamic_sensor(int sensor, void *loc_code, int *state) { uint32_t loc_pa = 0; - uint64_t elapsed = 0; void *locbuf; uint32_t size; __be32 be_state; - int status; - int rc; + int rc, status; + + rc = sanity_check(); + if (rc) + return rc; size = be32toh(*(uint32_t *)loc_code) + sizeof(uint32_t); - rc = sc_get_rmo_buffer(size, &locbuf, &loc_pa); + rc = rtas_get_rmo_buffer(size, &locbuf, &loc_pa); if (rc) return rc; memcpy(locbuf, loc_code, size); - do { - rc = sc_rtas_call(token, 2, 2, htobe32(sensor), htobe32(loc_pa), - &status, &be_state); - if (rc < 0) - break; - - rc = handle_delay(status, &elapsed); - } while (rc == CALL_AGAIN); + rc = rtas_call("ibm,get-dynamic-sensor-state", 2, 2, + htobe32(sensor), htobe32(loc_pa), &status, &be_state); - (void) sc_free_rmo_buffer(locbuf, loc_pa, size); + (void) rtas_free_rmo_buffer(locbuf, loc_pa, size); *state = be32toh(be_state); - dbg1("(%d, %s, %p) = %d, %d\n", sensor, (char *)loc_code, state, - rc ? rc : status, *state); + dbg("(%d, %s, %p) = %d, %d\n", sensor, (char *)loc_code, state, + rc ? rc : status, *state); return rc ? rc : status; } /** - * sc_get_indices - * @brief Set up the get-indices rtas system call + * rtas_get_indices + * @brief Interface to the ibm,get-indices rtas call * - * @param token - * @param is_sensor + * @param is_sensor is this index a sensor? * @param type - * @param workarea + * @param workarea additional args to the rtas call * @param size * @param start * @param next * @return 0 on success, !0 otherwise */ -int -sc_get_indices(int token, int is_sensor, int type, char *workarea, size_t size, - int start, int *next) +int rtas_get_indices(int is_sensor, int type, char *workarea, size_t size, + int start, int *next) { - uint64_t elapsed = 0; uint32_t kernbuf_pa; __be32 be_next; void *kernbuf; - int status; - int rc; + int rc, status; - rc = sc_get_rmo_buffer(size, &kernbuf, &kernbuf_pa); - if (rc) + rc = sanity_check(); + if (rc) return rc; - do { - rc = sc_rtas_call(token, 5, 2, htobe32(is_sensor), - htobe32(type), htobe32(kernbuf_pa), - htobe32(size), htobe32(start), - &status, &be_next); - if (rc < 0) - break; + rc = rtas_get_rmo_buffer(size, &kernbuf, &kernbuf_pa); + if (rc) + return rc; - rc = handle_delay(status, &elapsed); - } while (rc == CALL_AGAIN); + rc = rtas_call("ibm,get-indices", 5, 2, htobe32(is_sensor), + htobe32(type), htobe32(kernbuf_pa), htobe32(size), + htobe32(start), &status, &be_next); if (rc == 0) memcpy(workarea, kernbuf, size); - (void)sc_free_rmo_buffer(kernbuf, kernbuf_pa, size); + (void)rtas_free_rmo_buffer(kernbuf, kernbuf_pa, size); *next = be32toh(be_next); - dbg1("(%d, %d, %p, %d, %d, %p) = %d, %d\n", is_sensor, type, workarea, + dbg("(%d, %d, %p, %zd, %d, %p) = %d, %d\n", is_sensor, type, workarea, size, start, next, rc ? rc : status, *next); return rc ? rc : status; } /** - * sc_get_power_level - * @brief Set up the get-power-level rtas system call + * rtas_get_power_level + * @brief Interface to the get-power-level rtas call + * + * On success this routine will set the variable referenced by the level + * parameter to the power level * - * @param token * @param powerdomain - * @param level + * @param level reference to the power level variable * @return 0 on success, !0 otherwise */ -int sc_get_power_level(int token, int powerdomain, int *level) +int rtas_get_power_level(int powerdomain, int *level) { - uint64_t elapsed = 0; __be32 be_level; - int status; - int rc; + int rc, status; - do { - rc = sc_rtas_call(token, 1, 2, htobe32(powerdomain), - &status, &be_level); - if (rc) - return rc; + rc = sanity_check(); + if (rc) + return rc; - rc = handle_delay(status, &elapsed); - } while (rc == CALL_AGAIN); + rc = rtas_call("get-power-level", 1, 2, htobe32(powerdomain), + &status, &be_level); *level = be32toh(be_level); - dbg1("(%d, %p) = %d, %d\n", powerdomain, level, rc ? rc : status, - *level); + dbg("(%d, %p) = %d, %d\n", powerdomain, level, rc ? rc : status, + *level); return rc ? rc : status; } /** - * sc_get_sensor - * @brief Set up the get-sensor rtas system call + * rtas_get_sensor + * @brief Interface to the get-sensor-state rtas call + * + * On successful completion the state parameter will reference the current + * state of the sensor * - * @param token * @param sensor - * @param index - * @param state + * @param index sensor index + * @param state reference to state variable * @return 0 on success, !0 otherwise */ -int sc_get_sensor(int token, int sensor, int index, int *state) +int rtas_get_sensor(int sensor, int index, int *state) { - uint64_t elapsed = 0; __be32 be_state; - int status; - int rc; + int rc, status; - do { - rc = sc_rtas_call(token, 2, 2, htobe32(sensor), - htobe32(index), &status, &be_state); - if (rc) - return rc; + rc = sanity_check(); + if (rc) + return rc; - rc = handle_delay(status, &elapsed); - } while (rc == CALL_AGAIN); + rc = rtas_call("get-sensor-state", 2, 2, htobe32(sensor), + htobe32(index), &status, &be_state); *state = be32toh(be_state); - dbg1("(%d, %d, %p) = %d, %d\n", sensor, index, state, rc ? rc : status, - *state); + dbg("(%d, %d, %p) = %d, %d\n", sensor, index, state, rc ? rc : status, + *state); return rc ? rc : status; } /** - * sc_get_sysparm - * @brief Setup the get-system-parameter rtas system call + * rtas_get_sysparm + * @brief Interface to the ibm,get-system-parameter rtas call * - * @param token - * @param parameter - * @param length - * @param data + * On successful completion the data parameter will contain the system + * parameter results + * + * @param parameter system parameter to retrieve + * @param length data buffer length + * @param data reference to buffer to return parameter in * @return 0 on success, !0 otherwise */ -int -sc_get_sysparm(int token, unsigned int parameter, unsigned int length, - char *data) +int rtas_get_sysparm(unsigned int parameter, unsigned int length, char *data) { - uint64_t elapsed = 0; uint32_t kernbuf_pa; void *kernbuf; - int status; - int rc; + int rc, status; - rc = sc_get_rmo_buffer(length, &kernbuf, &kernbuf_pa); + rc = sanity_check(); if (rc) return rc; - do { - rc = sc_rtas_call(token, 3, 1, htobe32(parameter), - htobe32(kernbuf_pa), htobe32(length), - &status); - if (rc < 0) - break; + rc = rtas_get_rmo_buffer(length, &kernbuf, &kernbuf_pa); + if (rc) + return rc; - rc = handle_delay(status, &elapsed); - } while (rc == CALL_AGAIN); + rc = rtas_call("ibm,get-system-parameter", 3, 1, htobe32(parameter), + htobe32(kernbuf_pa), htobe32(length), &status); if (rc == 0) memcpy(data, kernbuf, length); - (void)sc_free_rmo_buffer(kernbuf, kernbuf_pa, length); + (void)rtas_free_rmo_buffer(kernbuf, kernbuf_pa, length); - dbg1("(%d, %d, %p) = %d\n", parameter, length, data, rc ? rc : status); + dbg("(%d, %d, %p) = %d\n", parameter, length, data, rc ? rc : status); return rc ? rc : status; } /** - * sc_get_time - * @brief Set up the get-time rtas system call + * rtas_get_time + * @brief Interface to get-time-of-day rtas call + * + * On successful completion all of the parameters will be filled with + * their respective values for the current time of day. * - * @param token * @param year * @param month * @param day @@ -767,21 +716,17 @@ * @param nsec * @return 0 on success, !0 otherwise */ -int sc_get_time(int token, uint32_t *year, uint32_t *month, uint32_t *day, - uint32_t *hour, uint32_t *min, uint32_t *sec, uint32_t *nsec) +int rtas_get_time(uint32_t *year, uint32_t *month, uint32_t *day, + uint32_t *hour, uint32_t *min, uint32_t *sec, uint32_t *nsec) { - uint64_t elapsed = 0; - int status; - int rc; + int rc, status; - do { - rc = sc_rtas_call(token, 0, 8, &status, year, month, day, hour, - min, sec, nsec); - if (rc) - return rc; + rc = sanity_check(); + if (rc) + return rc; - rc = handle_delay(status, &elapsed); - } while (rc == CALL_AGAIN); + rc = rtas_call("get-time-of-day", 0, 8, &status, year, month, day, + hour, min, sec, nsec); *year = be32toh(*year); *month = be32toh(*month); @@ -791,26 +736,26 @@ *sec = be32toh(*sec); *nsec = be32toh(*nsec); - dbg1("() = %d, %d, %d, %d, %d, %d, %d, %d\n", rc ? rc : status, *year, - *month, *day, *hour, *min, *sec, *nsec); + dbg("() = %d, %d, %d, %d, %d, %d, %d, %d\n", rc ? rc : status, *year, + *month, *day, *hour, *min, *sec, *nsec); return rc ? rc : status; } /** - * sc_get_vpd + * rtas_get_vpd + * @brief Interface to the ibm,get-vpd rtas call * - * @param token - * @param loc_code - * @param workarea + * @param loc_code location code + * @param workarea additional args to rtas call * @param size * @param sequence * @param seq_next * @param bytes_ret * @return 0 on success, !0 otherwise */ -int sc_get_vpd(int token, char *loc_code, char *workarea, size_t size, - unsigned int sequence, unsigned int *seq_next, - unsigned int *bytes_ret) +int rtas_get_vpd(char *loc_code, char *workarea, size_t size, + unsigned int sequence, unsigned int *seq_next, + unsigned int *bytes_ret) { uint32_t kernbuf_pa; uint32_t loc_pa = 0; @@ -819,12 +764,16 @@ void *kernbuf; void *rmobuf; void *locbuf; - int status; - int rc; - - rc = sc_get_rmo_buffer(size + PAGE_SIZE, &rmobuf, &rmo_pa); + int rc, status; + + rc = sanity_check(); if (rc) return rc; + + rc = rtas_get_rmo_buffer(size + PAGE_SIZE, &rmobuf, &rmo_pa); + if (rc) + return rc; + kernbuf = rmobuf + PAGE_SIZE; kernbuf_pa = rmo_pa + PAGE_SIZE; locbuf = rmobuf; @@ -832,55 +781,57 @@ /* If user didn't set loc_code, copy a NULL string */ strncpy(locbuf, loc_code ? loc_code : "", PAGE_SIZE); - + *seq_next = htobe32(sequence); do { sequence = *seq_next; - rc = sc_rtas_call(token, 4, 3, htobe32(loc_pa), + rc = rtas_call_no_delay("ibm,get-vpd", 4, 3, htobe32(loc_pa), htobe32(kernbuf_pa), htobe32(size), sequence, &status, seq_next, bytes_ret); if (rc < 0) break; - + rc = handle_delay(status, &elapsed); } while (rc == CALL_AGAIN); - + if (rc == 0) memcpy(workarea, kernbuf, size); - (void) sc_free_rmo_buffer(rmobuf, rmo_pa, size + PAGE_SIZE); - + (void) rtas_free_rmo_buffer(rmobuf, rmo_pa, size + PAGE_SIZE); + *seq_next = be32toh(*seq_next); *bytes_ret = be32toh(*bytes_ret); - dbg1("(%s, 0x%p, %d, %d) = %d, %d, %d", loc_code ? loc_code : "NULL", - workarea, size, sequence, status, *seq_next, *bytes_ret); - return rc ? rc : status; + dbg("(%s, 0x%p, %zd, %d) = %d, %d, %d", loc_code ? loc_code : "NULL", + workarea, size, sequence, status, *seq_next, *bytes_ret); + return rc ? rc : status; } /** - * sc_lpar_perftools + * rtas_lpar_perftools + * @brief Interface to the ibm,lpa-perftools rtas call * - * @param token * @param subfunc - * @param workarea + * @param workarea additional args to the rtas call * @param length * @param sequence * @param seq_next * @return 0 on success, !0 otherwise */ -int sc_lpar_perftools(int token, int subfunc, char *workarea, - unsigned int length, unsigned int sequence, - unsigned int *seq_next) +int rtas_lpar_perftools(int subfunc, char *workarea, unsigned int length, + unsigned int sequence, unsigned int *seq_next) { uint64_t elapsed = 0; uint32_t kernbuf_pa; void *kernbuf; - int status; - int rc; + int rc, status; + + rc = sanity_check(); + if (rc) + return rc; - rc = sc_get_rmo_buffer(length, &kernbuf, &kernbuf_pa); + rc = rtas_get_rmo_buffer(length, &kernbuf, &kernbuf_pa); if (rc) return rc; @@ -889,9 +840,10 @@ *seq_next = htobe32(sequence); do { sequence = *seq_next; - rc = sc_rtas_call(token, 5, 2, htobe32(subfunc), 0, - htobe32(kernbuf_pa), htobe32(length), - sequence, &status, seq_next); + rc = rtas_call_no_delay("ibm,lpar-perftools", 5, 2, + htobe32(subfunc), 0, + htobe32(kernbuf_pa), htobe32(length), + sequence, &status, seq_next); if (rc < 0) break; @@ -901,30 +853,28 @@ if (rc == 0) memcpy(workarea, kernbuf, length); - (void)sc_free_rmo_buffer(kernbuf, kernbuf_pa, length); + (void)rtas_free_rmo_buffer(kernbuf, kernbuf_pa, length); *seq_next = be32toh(*seq_next); - dbg1("(%d, %p, %d, %d, %p) = %d, %d\n", subfunc, workarea, - length, sequence, seq_next, rc ? rc : status, *seq_next); + dbg("(%d, %p, %d, %d, %p) = %d, %d\n", subfunc, workarea, + length, sequence, seq_next, rc ? rc : status, *seq_next); return rc ? rc : status; } - /** - * sc_platform_dump + * rtas_platform_dump + * Interface to the ibm,platform-dump rtas call * - * @param token * @param dump_tag * @param sequence - * @param buffer - * @param length - * @param seq_next + * @param buffer buffer to write dump to + * @param length buffer length + * @param next_seq * @param bytes_ret - * @return 0 on success, !0 otherwise + * @return 0 on success, !0 othwerwise */ -int -sc_platform_dump(int token, uint64_t dump_tag, uint64_t sequence, void *buffer, - size_t length, uint64_t * seq_next, uint64_t * bytes_ret) +int rtas_platform_dump(uint64_t dump_tag, uint64_t sequence, void *buffer, + size_t length, uint64_t *seq_next, uint64_t *bytes_ret) { uint64_t elapsed = 0; uint32_t kernbuf_pa = 0; @@ -932,16 +882,19 @@ uint32_t bytes_hi, bytes_lo; uint32_t dump_tag_hi, dump_tag_lo; void *kernbuf; - int status; - int rc; + int rc, status; + + rc = sanity_check(); + if (rc) + return rc; if (buffer) { - rc = sc_get_rmo_buffer(length, &kernbuf, &kernbuf_pa); + rc = rtas_get_rmo_buffer(length, &kernbuf, &kernbuf_pa); if (rc) return rc; } - /* - * Converting a 64bit host value to 32bit BE, _hi and _lo + + /* Converting a 64bit host value to 32bit BE, _hi and _lo * pair is tricky: we should convert the _hi and _lo 32bits * of the 64bit host value. */ @@ -952,472 +905,422 @@ next_lo = htobe32(BITS32_LO(sequence)); do { - rc = sc_rtas_call(token, 6, 5, dump_tag_hi, - dump_tag_lo, - next_hi, - next_lo, - htobe32(kernbuf_pa), htobe32(length), - &status, &next_hi, &next_lo, &bytes_hi, - &bytes_lo); + rc = rtas_call_no_delay("ibm,platform-dump", 6, 5, dump_tag_hi, + dump_tag_lo, next_hi, next_lo, + htobe32(kernbuf_pa), htobe32(length), + &status, &next_hi, &next_lo, + &bytes_hi, &bytes_lo); if (rc < 0) break; + sequence = BITS64(be32toh(next_hi), be32toh(next_lo)); - dbg1("%s: seq_next = 0x%llx\n", __FUNCTION__, sequence); + dbg("%s: seq_next = 0x%" PRIx64 "\n", __FUNCTION__, sequence); rc = handle_delay(status, &elapsed); } while (rc == CALL_AGAIN); if (buffer && (rc == 0)) memcpy(buffer, kernbuf, length); - + if (kernbuf) - (void)sc_free_rmo_buffer(kernbuf, kernbuf_pa, length); + (void)rtas_free_rmo_buffer(kernbuf, kernbuf_pa, length); *seq_next = sequence; bytes_hi = be32toh(bytes_hi); bytes_lo = be32toh(bytes_lo); *bytes_ret = BITS64(bytes_hi, bytes_lo); - dbg1("(0x%llx, 0x%llx, %p, %d, %p, %p) = %d, 0x%llx, 0x%llx\n", + dbg("(0x%lx, 0x%lx, %p, %zd, %p, %p) = %d, 0x%lx, 0x%lx\n", dump_tag, sequence, buffer, length, seq_next, bytes_ret, rc ? rc : status, *seq_next, *bytes_ret); return rc ? rc : status; } /** - * sc_read_slot_reset - * @brief Set up the read-slot-reset-state rtas system call + * rtas_read_slot_reset + * @brief Interface to the ibm,read-slot-reset-state rtas call * - * @param token * @param cfg_addr configuration address of slot to read - * @param phbid PHB ID of slot to read - * @param state + * @param phbid PHB ID of the slot to read + * @param state reference to variable to return slot state in * @param eeh * @return 0 on success, !0 otherwise */ -int -sc_read_slot_reset(int token, uint32_t cfg_addr, uint64_t phbid, int *state, - int *eeh) +int rtas_read_slot_reset(uint32_t cfg_addr, uint64_t phbid, int *state, + int *eeh) { - uint64_t elapsed = 0; - int status; - int rc; + int rc, status; - do { - rc = sc_rtas_call(token, 3, 3, htobe32(cfg_addr), - htobe32(BITS32_HI(phbid)), - htobe32(BITS32_LO(phbid)), &status, - state, eeh); - if (rc) - return rc; + rc = sanity_check(); + if (rc) + return rc; - rc = handle_delay(status, &elapsed); - } while (rc == CALL_AGAIN); + rc = rtas_call("ibm,read-slot-reset-state", 3, 3, htobe32(cfg_addr), + htobe32(BITS32_HI(phbid)), htobe32(BITS32_LO(phbid)), + &status, state, eeh); *state = be32toh(*state); *eeh = be32toh(*eeh); - dbg1("(0x%x, 0x%llx, %p, %p) = %d, %d, %d\n", cfg_addr, phbid, state, + dbg("(0x%x, 0x%lx, %p, %p) = %d, %d, %d\n", cfg_addr, phbid, state, eeh, rc ? rc : status, *state, *eeh); return rc ? rc : status; } /** - * sc_scan_log_dump + * rtas_scan_log_dump + * @brief Interface to the ibm,scan-log-dump rtas call * - * @param token - * @param buffer - * @param length + * @param buffer buffer to return scan log dump in + * @param length size of buffer * @return 0 on success, !0 otherwise */ -int sc_scan_log_dump(int token, void *buffer, size_t length) +int rtas_scan_log_dump(void *buffer, size_t length) { - uint64_t elapsed = 0; uint32_t kernbuf_pa; void *kernbuf; - int status; - int rc; + int rc, status; - rc = sc_get_rmo_buffer(length, &kernbuf, &kernbuf_pa); + rc = sanity_check(); if (rc) return rc; - memcpy(kernbuf, buffer, length); - do { - rc = sc_rtas_call(token, 2, 1, htobe32(kernbuf_pa), - htobe32(length), &status); - if (rc < 0) - break; + rc = rtas_get_rmo_buffer(length, &kernbuf, &kernbuf_pa); + if (rc) + return rc; - rc = handle_delay(status, &elapsed); - } while (rc == CALL_AGAIN); + memcpy(kernbuf, buffer, length); + rc = rtas_call("ibm,scan-log-dump", 2, 1, htobe32(kernbuf_pa), + htobe32(length), &status); if (rc == 0) memcpy(buffer, kernbuf, length); - (void)sc_free_rmo_buffer(kernbuf, kernbuf_pa, length); + (void)rtas_free_rmo_buffer(kernbuf, kernbuf_pa, length); - dbg1("(%p, %d) = %d\n", buffer, length, rc ? rc : status); + dbg("(%p, %zd) = %d\n", buffer, length, rc ? rc : status); return rc ? rc : status; } /** - * sc_set_dynamic_indicator + * rtas_set_debug + * @brief Interface to set librtas debug level * - * @param token - * @param indicator - * @param new_value + * @param level debug level to set to + * @return 0 on success, !0 otherwise + */ +int rtas_set_debug(int level) +{ + dbg_lvl = level; + return 0; +} + +/** + * rtas_set_dynamic_indicator + * @brief Interface to the ibm,set-dynamic-indicator rtas call + * + * @param indicator indicator to set + * @param new_value value to set the indicator to * @param loc_code * @return 0 on success, !0 otherwise */ -int sc_set_dynamic_indicator(int token, int indicator, int new_value, - void *loc_code) +int rtas_set_dynamic_indicator(int indicator, int new_value, void *loc_code) { uint32_t loc_pa = 0; - uint64_t elapsed = 0; void *locbuf; uint32_t size; - int status; - int rc; + int rc, status; + + rc = sanity_check(); + if (rc) + return rc; size = be32toh(*(uint32_t *)loc_code) + sizeof(uint32_t); - rc = sc_get_rmo_buffer(size, &locbuf, &loc_pa); + rc = rtas_get_rmo_buffer(size, &locbuf, &loc_pa); if (rc) return rc; memcpy(locbuf, loc_code, size); - do { - rc = sc_rtas_call(token, 3, 1, htobe32(indicator), - htobe32(new_value), htobe32(loc_pa), &status); - if (rc < 0) - break; - - rc = handle_delay(status, &elapsed); - } while (rc == CALL_AGAIN); + rc = rtas_call("ibm,set-dynamic-indicator", 3, 1, htobe32(indicator), + htobe32(new_value), htobe32(loc_pa), &status); + (void) rtas_free_rmo_buffer(locbuf, loc_pa, size); - (void) sc_free_rmo_buffer(locbuf, loc_pa, size); - - dbg1("(%d, %d, %s) = %d\n", indicator, new_value, (char *)loc_code, - rc ? rc : status); + dbg("(%d, %d, %s) = %d\n", indicator, new_value, (char *)loc_code, + rc ? rc : status); return rc ? rc : status; } /** - * sc_set_eeh_option + * rtas_set_eeh_option + * @brief Inerface to the ibm,set-eeh-option rtas call * - * @param token - * @param cfg_addr - * @param phbid + * @param cfg_addr configuration address for slot to set eeh option on + * @param phbid PHB ID for slot to set option on * @param function * @return 0 on success, !0 otherwise */ -int -sc_set_eeh_option(int token, uint32_t cfg_addr, uint64_t phbid, int function) +int rtas_set_eeh_option(uint32_t cfg_addr, uint64_t phbid, int function) { - uint64_t elapsed = 0; - int status; - int rc; + int rc, status; - do { - rc = sc_rtas_call(token, 4, 1, htobe32(cfg_addr), - htobe32(BITS32_HI(phbid)), - htobe32(BITS32_LO(phbid)), - htobe32(function), &status); - if (rc) - return rc; + rc = sanity_check(); + if (rc) + return rc; - rc = handle_delay(status, &elapsed); - } while (rc == CALL_AGAIN); + rc = rtas_call("ibm,set-eeh-option", 4, 1, htobe32(cfg_addr), + htobe32(BITS32_HI(phbid)), htobe32(BITS32_LO(phbid)), + htobe32(function), &status); - dbg1("(0x%x, 0x%llx, %d) = %d\n", cfg_addr, phbid, function, + dbg("(0x%x, 0x%lx, %d) = %d\n", cfg_addr, phbid, function, rc ? rc : status); return rc ? rc : status; } /** - * sc_set_indicator + * rtas_set_indicator + * @brief Interface to the set-indicator rtas call * - * @param token - * @param indicator - * @param index - * @param new_value + * @param indicator indicator to set + * @param index indicator index + * @param new_value value to set the indicator to * @return 0 on success, !0 otherwise */ -int sc_set_indicator(int token, int indicator, int index, int new_value) +int rtas_set_indicator(int indicator, int index, int new_value) { - uint64_t elapsed = 0; - int status; - int rc; + int rc, status; - do { - rc = sc_rtas_call(token, 3, 1, htobe32(indicator), - htobe32(index), htobe32(new_value), &status); - if (rc) - return rc; + rc = sanity_check(); + if (rc) + return rc; - rc = handle_delay(status, &elapsed); - } while (rc == CALL_AGAIN); + rc = rtas_call("set-indicator", 3, 1, htobe32(indicator), + htobe32(index), htobe32(new_value), &status); - dbg1("(%d, %d, %d) = %d\n", indicator, index, new_value, - rc ? rc : status); + dbg("(%d, %d, %d) = %d\n", indicator, index, new_value, + rc ? rc : status); return rc ? rc : status; } /** - * sc_set_power_level + * rtas_set_power_level + * @brief Interface to the set-power-level rtas call * - * @param token * @param powerdomain - * @param level + * @param level power level to set to * @param setlevel * @return 0 on success, !0 otherwise */ -int sc_set_power_level(int token, int powerdomain, int level, int *setlevel) +int rtas_set_power_level(int powerdomain, int level, int *setlevel) { - uint64_t elapsed = 0; __be32 be_setlevel; - int status; - int rc; + int rc, status; - do { - rc = sc_rtas_call(token, 2, 2, htobe32(powerdomain), - htobe32(level), &status, &be_setlevel); - if (rc) - return rc; + rc = sanity_check(); + if (rc) + return rc; - rc = handle_delay(status, &elapsed); - } while (rc == CALL_AGAIN); + rc = rtas_call("set-power-level", 2, 2, htobe32(powerdomain), + htobe32(level), &status, &be_setlevel); *setlevel = be32toh(be_setlevel); - dbg1("(%d, %d, %p) = %d, %d\n", powerdomain, level, setlevel, - rc ? rc : status, *setlevel); + dbg("(%d, %d, %p) = %d, %d\n", powerdomain, level, setlevel, + rc ? rc : status, *setlevel); return rc ? rc : status; } /** - * sc_set_poweron_time + * rtas_set_poweron_time + * @brief interface to the set-time-for-power-on rtas call * - * @param token - * @param year - * @param month - * @param day - * @param hour - * @param min - * @param sec - * @param nsec + * @param year year to power on + * @param month month to power on + * @param day day to power on + * @param hour hour to power on + * @param min minute to power on + * @param sec second to power on + * @param nsec nano-second top power on * @return 0 on success, !0 otherwise */ -int -sc_set_poweron_time(int token, uint32_t year, uint32_t month, uint32_t day, - uint32_t hour, uint32_t min, uint32_t sec, uint32_t nsec) +int rtas_set_poweron_time(uint32_t year, uint32_t month, uint32_t day, + uint32_t hour, uint32_t min, uint32_t sec, + uint32_t nsec) { - uint64_t elapsed = 0; - int status; - int rc; + int rc, status; - do { - rc = sc_rtas_call(token, 7, 1, htobe32(year), htobe32(month), - htobe32(day), htobe32(hour), htobe32(min), - htobe32(sec), htobe32(nsec), &status); - if (rc) - return rc; + rc = sanity_check(); + if (rc) + return rc; - rc = handle_delay(status, &elapsed); - } while (rc == CALL_AGAIN); + rc = rtas_call("set-time-for-power-on", 7, 1, htobe32(year), + htobe32(month), htobe32(day), htobe32(hour), + htobe32(min), htobe32(sec), htobe32(nsec), &status); - dbg1("(%d, %d, %d, %d, %d, %d, %d) = %d\n", year, month, day, hour, - min, sec, nsec, rc ? rc : status); + dbg("(%d, %d, %d, %d, %d, %d, %d) = %d\n", year, month, day, hour, + min, sec, nsec, rc ? rc : status); return rc ? rc : status; } /** - * sc_set_sysparm + * rtas_set_sysparm + * @brief Interface to the ibm,set-system-parameter rtas call * - * @param token * @param parameter * @param data * @return 0 on success, !0 otherwise */ -int sc_set_sysparm(int token, unsigned int parameter, char *data) +int rtas_set_sysparm(unsigned int parameter, char *data) { - uint64_t elapsed = 0; uint32_t kernbuf_pa; void *kernbuf; - int status; + int rc, status; short size; - int rc; + + rc = sanity_check(); + if (rc) + return rc; size = *(short *)data; - rc = sc_get_rmo_buffer(size + sizeof(short), &kernbuf, &kernbuf_pa); + rc = rtas_get_rmo_buffer(size + sizeof(short), &kernbuf, &kernbuf_pa); if (rc) return rc; memcpy(kernbuf, data, size + sizeof(short)); - do { - rc = sc_rtas_call(token, 2, 1, htobe32(parameter), - htobe32(kernbuf_pa), &status); - if (rc < 0) - break; - - rc = handle_delay(status, &elapsed); - } while (rc == CALL_AGAIN); + rc = rtas_call("ibm,set-system-parameter", 2, 1, htobe32(parameter), + htobe32(kernbuf_pa), &status); - (void)sc_free_rmo_buffer(kernbuf, kernbuf_pa, size + sizeof(short)); + (void)rtas_free_rmo_buffer(kernbuf, kernbuf_pa, size + sizeof(short)); - dbg1("(%d, %p) = %d\n", parameter, data, rc ? rc : status); + dbg("(%d, %p) = %d\n", parameter, data, rc ? rc : status); return rc ? rc : status; } /** - * sc_set_time + * rtas_set_time + * @brief Interface to the set-time-of-day rtas call * - * @param token - * @param year - * @param month - * @param day - * @param hour - * @param min - * @param sec - * @param nsec + * @param year year to set time to + * @param month month to set time to + * @param day day to set time to + * @param hour hour to set time to + * @param min minute to set time to + * @param sec second to set time to + * @param nsec nan-second to set time to * @return 0 on success, !0 otherwise */ -int sc_set_time(int token, uint32_t year, uint32_t month, uint32_t day, - uint32_t hour, uint32_t min, uint32_t sec, uint32_t nsec) +int rtas_set_time(uint32_t year, uint32_t month, uint32_t day, uint32_t hour, + uint32_t min, uint32_t sec, uint32_t nsec) { - uint64_t elapsed = 0; - int status; - int rc; + int rc, status; - do { - rc = sc_rtas_call(token, 7, 1, htobe32(year), htobe32(month), - htobe32(day), htobe32(hour), htobe32(min), - htobe32(sec), htobe32(nsec), &status); - if (rc) - return rc; + rc = sanity_check(); + if (rc) + return rc; - rc = handle_delay(status, &elapsed); - } while (rc == CALL_AGAIN); + rc = rtas_call("set-time-of-day", 7, 1, htobe32(year), htobe32(month), + htobe32(day), htobe32(hour), htobe32(min), + htobe32(sec), htobe32(nsec), &status); - dbg1("(%d, %d, %d, %d, %d, %d, %d) = %d\n", year, month, day, hour, - min, sec, nsec, rc ? rc : status); + dbg("(%d, %d, %d, %d, %d, %d, %d) = %d\n", year, month, day, hour, + min, sec, nsec, rc ? rc : status); return rc ? rc : status; } /** - * sc_suspend_me + * rtas_suspend_me + * @brief Interface for ibm,suspend-me rtas call * - * @param token - * @return 0 on success, !0 otherwise + * @return 0 on success, !0 on failure */ -int sc_suspend_me(int token, uint64_t streamid) +int rtas_suspend_me(uint64_t streamid) { - uint64_t elapsed = 0; - int status; - int rc; - - do { - rc = sc_rtas_call(token, 2, 1, htobe32(BITS32_HI(streamid)), - htobe32(BITS32_LO(streamid)), &status); - if (rc) - return rc; + int rc, status; - rc = handle_delay(status, &elapsed); - } while (rc == CALL_AGAIN); + rc = rtas_call("ibm,suspend-me", 2, 1, htobe32(BITS32_HI(streamid)), + htobe32(BITS32_LO(streamid)), &status); - dbg1("() = %d\n", rc ? rc : status); + dbg("() = %d\n", rc ? rc : status); return rc ? rc : status; } /** - * sc_update_nodes - * @brief Set up the ibm,update-nodes rtas system call + * rtas_update_nodes + * @brief Interface for ibm,update-nodes rtas call * - * @param token - * @param workarea - * @param scope - * @return 0 on success, !0 otherwise + * @param workarea input output work area for the rtas call + * @param scope of call + * @return 0 on success, !0 on failure * * Note that the PAPR defines the work area as 4096 bytes (as * opposed to a page), thus we use that rather than PAGE_SIZE below. */ -int sc_update_nodes(int token, char *workarea, unsigned int scope) +int rtas_update_nodes(char *workarea, unsigned int scope) { uint32_t workarea_pa; - uint64_t elapsed = 0; void *kernbuf; - int status; - int rc; + int rc, status; - rc = sc_get_rmo_buffer(4096, &kernbuf, &workarea_pa); + rc = sanity_check(); if (rc) return rc; - memcpy(kernbuf, workarea, 4096); + rc = rtas_get_rmo_buffer(4096, &kernbuf, &workarea_pa); + if (rc) + return rc; - do { - rc = sc_rtas_call(token, 2, 1, htobe32(workarea_pa), - htobe32(scope), &status); - if (rc < 0) - break; + memcpy(kernbuf, workarea, 4096); - rc = handle_delay(status, &elapsed); - } while (rc == CALL_AGAIN); + rc = rtas_call("ibm,update-nodes", 2, 1, htobe32(workarea_pa), + htobe32(scope), &status); if (rc == 0) memcpy(workarea, kernbuf, 4096); - (void)sc_free_rmo_buffer(kernbuf, workarea_pa, PAGE_SIZE); + (void)rtas_free_rmo_buffer(kernbuf, workarea_pa, PAGE_SIZE); - dbg1("(%p) %d = %d\n", workarea, scope, rc ? rc : status); + dbg("(%p) %d = %d\n", workarea, scope, rc ? rc : status); return rc ? rc : status; } -/** - * sc_update_properties - * @brief Set up the ibm,update-properties rtas system call + /** + * rtas_update_properties + * @brief Interface for ibm,update-properties rtas call * - * @param token - * @param workarea - * @param scope - * @return 0 on success, !0 otherwise + * @param workarea input output work area for the rtas call + * @param scope of call + * @return 0 on success, !0 on failure * * Note that the PAPR defines the work area as 4096 bytes (as * opposed to a page), thus we use that rather than PAGE_SIZE below. */ -int sc_update_properties(int token, char *workarea, unsigned int scope) +int rtas_update_properties(char *workarea, unsigned int scope) { uint32_t workarea_pa; - uint64_t elapsed = 0; void *kernbuf; - int status; - int rc; + int rc, status; - rc = sc_get_rmo_buffer(4096, &kernbuf, &workarea_pa); + rc = sanity_check(); if (rc) return rc; - memcpy(kernbuf, workarea, 4096); + rc = rtas_get_rmo_buffer(4096, &kernbuf, &workarea_pa); + if (rc) + return rc; - do { - rc = sc_rtas_call(token, 2, 1, htobe32(workarea_pa), - htobe32(scope), &status); - if (rc < 0) - break; + memcpy(kernbuf, workarea, 4096); - rc = handle_delay(status, &elapsed); - } while (rc == CALL_AGAIN); + rc = rtas_call("ibm,update-properties", 2, 1, htobe32(workarea_pa), + htobe32(scope), &status); if (rc == 0) memcpy(workarea, kernbuf, 4096); - (void)sc_free_rmo_buffer(kernbuf, workarea_pa, PAGE_SIZE); + (void)rtas_free_rmo_buffer(kernbuf, workarea_pa, PAGE_SIZE); - dbg1("(%p) %d = %d\n", workarea, scope, rc ? rc : status); + dbg("(%p) %d = %d\n", workarea, scope, rc ? rc : status); return rc ? rc : status; } -/* ========================= END OF FILE ================== */ diff -Nru librtas-1.3.13/librtas_src/syscall.h librtas-2.0.0/librtas_src/syscall.h --- librtas-1.3.13/librtas_src/syscall.h 2014-10-23 02:23:41.000000000 +0000 +++ librtas-2.0.0/librtas_src/syscall.h 2016-04-06 03:03:56.000000000 +0000 @@ -2,7 +2,20 @@ * @file syscall.h * * Copyright (C) 2005 IBM Corporation - * Common Public License Version 1.0 (see COPYRIGHT) + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library 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 + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA * * @author John Rose */ @@ -36,12 +49,23 @@ struct region *next; }; -extern int sc_get_rmo_buffer(size_t size, void **buf, uint32_t *phys_addr); -extern int sc_free_rmo_buffer(void *buf, uint32_t phys_addr, size_t size); -extern int sc_interface_exists(); +extern int rtas_get_rmo_buffer(size_t size, void **buf, uint32_t *phys_addr); +extern int rtas_free_rmo_buffer(void *buf, uint32_t phys_addr, size_t size); +extern int interface_exists(); +extern int read_entire_file(int fd, char **buf, size_t *len); +extern int rtas_token(const char *call_name); +extern int sanity_check(void); #define BITS32_LO(_num) (uint32_t) (_num & 0xffffffffll) #define BITS32_HI(_num) (uint32_t) (_num >> 32) #define BITS64(_high, _low) (uint64_t) (((uint64_t) _high << 32) | _low) +extern int dbg_lvl; + +#define dbg(_fmt, _args...) \ + do { \ + if (dbg_lvl > 0) \ + printf("librtas %s(): " _fmt, __func__, ##_args); \ + } while (0) + #endif diff -Nru librtas-1.3.13/librtas_src/syscall_rmo.c librtas-2.0.0/librtas_src/syscall_rmo.c --- librtas-1.3.13/librtas_src/syscall_rmo.c 2014-10-23 02:23:41.000000000 +0000 +++ librtas-2.0.0/librtas_src/syscall_rmo.c 2016-04-06 03:03:56.000000000 +0000 @@ -2,7 +2,20 @@ * @file syscall_rmo.c * * Copyright (C) 2005 IBM Corporation - * Common Public License Version 1.0 (see COPYRIGHT) + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library 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 + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA * * @author John Rose */ @@ -11,13 +24,13 @@ #include #include #include -#include #include -#include "common.h" +#include #include "syscall.h" #include "librtas.h" #define MAX_PAGES 64 +#define MAX_PATH_LEN 80 struct workarea_config { int init_done; @@ -37,6 +50,36 @@ }; /** + * open_proc_rtas_file + * @brief Open the proc rtas file + * + * @param name filename to open + * @param mode mode to open file in + * @return results of open() call + */ +static int open_proc_rtas_file(const char *name, int mode) +{ + const char *proc_rtas_paths[] = { "/proc/ppc64/rtas", "/proc/rtas" }; + char full_name[MAX_PATH_LEN]; + int npaths; + int fd; + int i; + + npaths = sizeof(proc_rtas_paths) / sizeof(char *); + for (i = 0; i < npaths; i++) { + sprintf(full_name, "%s/%s", proc_rtas_paths[i], name); + fd = open(full_name, mode, S_IRUSR | S_IWUSR); + if (fd >= 0) + break; + } + + if (fd < 0) + dbg("Failed to open %s\n", full_name); + + return fd; +} + +/** * read_kregion_bounds * @brief Read the kernel region bounds for RMO memory * @@ -51,7 +94,7 @@ fd = open_proc_rtas_file(rmo_filename, O_RDONLY); if (fd < 0) { - dbg1("Could not open workarea file\n"); + dbg("Could not open workarea file\n"); return RTAS_IO_ASSERT; } @@ -62,12 +105,12 @@ return rc; } - sscanf(buf, "%llx %x", &kregion->addr, &kregion->size); + sscanf(buf, "%" SCNx64 " %x", &kregion->addr, &kregion->size); free(buf); if (!(kregion->size && kregion->addr) || (kregion->size > (PAGE_SIZE * MAX_PAGES))) { - dbg1("Unexpected kregion bounds\n"); + dbg("Unexpected kregion bounds\n"); return RTAS_IO_ASSERT; } @@ -100,7 +143,7 @@ * @return 0 on success, !0 otherwise */ static inline void set_bits(short lobit, short hibit, uint64_t value, - uint64_t * mask) + uint64_t *mask) { short num_bits = hibit - lobit + 1; uint64_t ones_mask = (1ll << (num_bits)) - 1; @@ -111,7 +154,7 @@ /** * acquire_file_lock - * + * * @param start * @param size * @return 0 on success, !0 otherwise @@ -126,7 +169,7 @@ wa_config.lockfile_fd = open(lockfile_path, O_CREAT | O_RDWR, S_IRUSR | S_IWUSR); if (wa_config.lockfile_fd < 0) { - dbg1("could not open lockfile %s\n", lockfile_path); + dbg("could not open lockfile %s\n", lockfile_path); return RTAS_IO_ASSERT; } } @@ -140,7 +183,7 @@ rc = fcntl(wa_config.lockfile_fd, F_SETLKW, &flock); if (rc < 0) { /* Expected to fail for regions used by other processes */ - dbg1("fcntl failed for [0x%lx, 0x%x]\n", start, size); + dbg("fcntl failed for [0x%lx, 0x%zx]\n", start, size); return RTAS_IO_ASSERT; } @@ -167,7 +210,7 @@ rc = fcntl(wa_config.lockfile_fd, F_SETLK, &flock); if (rc < 0) { - dbg1("fcntl failed for [0x%lx, 0x%x]\n", start, size); + dbg("fcntl failed for [0x%lx, 0x%zx]\n", start, size); return RTAS_IO_ASSERT; } @@ -190,7 +233,7 @@ int i; if (size > kregion->size) { - dbg1("Invalid buffer size 0x%x requested\n", size); + dbg("Invalid buffer size 0x%zx requested\n", size); return RTAS_IO_ASSERT; } @@ -213,7 +256,7 @@ } if (!addr) { - dbg1("Could not find available workarea space\n"); + dbg("Could not find available workarea space\n"); return RTAS_IO_ASSERT; } @@ -237,17 +280,17 @@ int rc; if (size > kregion->size) { - dbg1("Invalid buffer size 0x%x requested\n", size); + dbg("Invalid buffer size 0x%zx requested\n", size); return RTAS_IO_ASSERT; } first_page = (phys_addr - kregion->addr) / PAGE_SIZE; n_pages = size / PAGE_SIZE; - bits = - get_bits(first_page, first_page + n_pages - 1, wa_config.pages_map); + bits = get_bits(first_page, first_page + n_pages - 1, + wa_config.pages_map); if (bits != ((1 << n_pages) - 1)) { - dbg1("Invalid region [0x%x, 0x%x]\n", phys_addr, size); + dbg("Invalid region [0x%x, 0x%zx]\n", phys_addr, size); return RTAS_IO_ASSERT; } @@ -260,7 +303,7 @@ /** * init_workarea_config - * + * * @return 0 on success, !0 otherwise */ static int init_workarea_config() @@ -292,7 +335,7 @@ fd = open(devmem_path, O_RDWR); if (fd < 0) { - dbg1("Failed to open %s\n", devmem_path); + dbg("Failed to open %s\n", devmem_path); return RTAS_IO_ASSERT; } @@ -301,7 +344,7 @@ close(fd); if (newbuf == MAP_FAILED) { - dbg1("mmap failed\n"); + dbg("mmap failed\n"); return RTAS_IO_ASSERT; } @@ -323,14 +366,14 @@ fd = open(devmem_path, O_RDWR); if (fd < 0) { - dbg1("Failed to open %s\n", devmem_path); + dbg("Failed to open %s\n", devmem_path); return RTAS_IO_ASSERT; } rc = munmap(buf, size); close(fd); if (rc < 0) { - dbg1("munmap failed\n"); + dbg("munmap failed\n"); return RTAS_IO_ASSERT; } @@ -338,11 +381,11 @@ } /** - * sc_interface_exists + * interface_exists * * @return 0 on success, !0 otherwise */ -int sc_interface_exists() +int interface_exists() { int fd = open_proc_rtas_file(rmo_filename, O_RDONLY); int exists; @@ -356,7 +399,8 @@ } /** - * sc_free_rmo_buffer + * rtas_free_rmo_buffer + * @brief free the rmo buffer used by librtas * * @param buf virtual address of mmap()'ed buffer * @param phys_addr physical address of low mem buffer @@ -365,11 +409,15 @@ * RTAS_FREE_ERR - Free called before get * RTAS_IO_ASSERT - Unexpected I/O Error */ -int sc_free_rmo_buffer(void *buf, uint32_t phys_addr, size_t size) +int rtas_free_rmo_buffer(void *buf, uint32_t phys_addr, size_t size) { int n_pages; int rc; + rc = sanity_check(); + if (rc) + return rc; + n_pages = size / PAGE_SIZE; /* Check for multiple of page size */ @@ -380,13 +428,15 @@ } if (!wa_config.init_done) { - dbg1("Attempting to free before calling get()\n"); + dbg("Attempting to free before calling get()\n"); return RTAS_FREE_ERR; } rc = munmap_dev_mem(buf, size); - if (rc) + if (rc) { + (void) release_phys_region(phys_addr, size); return rc; + } rc = release_phys_region(phys_addr, size); @@ -394,7 +444,12 @@ } /** - * sc_get_rmo_buffer + * rtas_get_rmo_buffer + * @brief Retrive the RMO buffer used by librtas + * + * On successful completion the buf parameter will reference an allocated + * area of RMO memory and the phys_addr parameter will refernce the + * physical address of the RMO buffer. * * @param size Size of requested region. Must be a multiple of 4096. * @param buf Assigned to mmap'ed buffer of acquired region @@ -404,13 +459,17 @@ * RTAS_NO_LOWMEM - Out of rmo memory * RTAS_IO_ASSERT - Unexpected I/O Error */ -int sc_get_rmo_buffer(size_t size, void **buf, uint32_t * phys_addr) +int rtas_get_rmo_buffer(size_t size, void **buf, uint32_t * phys_addr) { uint32_t addr; int n_pages; int rc; - dbg1("RMO buffer request, size: %d\n", size); + rc = sanity_check(); + if (rc) + return rc; + + dbg("RMO buffer request, size: %zd\n", size); n_pages = size / PAGE_SIZE; @@ -432,8 +491,10 @@ return rc; rc = mmap_dev_mem(addr, size, buf); - if (rc) + if (rc) { + (void) release_phys_region(addr, size); return rc; + } *phys_addr = addr; return 0; diff -Nru librtas-1.3.13/Makefile librtas-2.0.0/Makefile --- librtas-1.3.13/Makefile 2014-10-23 02:23:41.000000000 +0000 +++ librtas-2.0.0/Makefile 2016-04-06 03:03:56.000000000 +0000 @@ -6,8 +6,8 @@ .SILENT: -FILES = README COPYRIGHT -SUBDIRS = librtas_src librtasevent_src libofdt_src +FILES = README COPYING.LESSER +SUBDIRS = librtas_src librtasevent_src TARBALL_FILES += $(FILES) doc/doxygen.rtas doc/doxygen.rtasevent Changelog @@ -29,7 +29,6 @@ @export DESTDIR=$(SHIPDIR); $(MAKE) install @rm $(SHIPDIR)$(LIB_DIR)$(call is_lib64,librtas_src/librtas.so.$(VERSION))/librtas.so @rm $(SHIPDIR)$(LIB_DIR)$(call is_lib64,librtasevent_src/librtasevent.so.$(VERSION))/librtasevent.so - @rm $(SHIPDIR)$(LIB_DIR)$(call is_lib64,libofdt_src/libofdt.so.$(VERSION))/libofdt.so @$(RPM) -bb $(SPECFILE) @rm -rf $(SHIPDIR) diff -Nru librtas-1.3.13/README librtas-2.0.0/README --- librtas-1.3.13/README 2014-10-23 02:23:41.000000000 +0000 +++ librtas-2.0.0/README 2016-04-06 03:03:56.000000000 +0000 @@ -2,15 +2,8 @@ librtas ------------------------------------------------ -Technical contacts: - librtas.so - John Rose - librtasevent.so - Nathan Fontenot - -Admin contacts: - Micheal Strosaker - Nathan Fontenot - -May 2005 +Mailing List: + librtas-devel@googlegroups.com Librtas provides a set of libraries for user-space access to the Run-Time Abstraction Services (RTAS) on the ppc64 architecture.