2N/A * GRUB -- GRand Unified Bootloader 2N/A * Copyright (C) 1999,2000,2001,2002,2003,2005,2006,2007,2008 Free Software Foundation, Inc. 2N/A * GRUB is free software: you can redistribute it and/or modify 2N/A * it under the terms of the GNU General Public License as published by 2N/A * the Free Software Foundation, either version 3 of the License, or 2N/A * (at your option) any later version. 2N/A * GRUB is distributed in the hope that it will be useful, 2N/A * but WITHOUT ANY WARRANTY; without even the implied warranty of 2N/A * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 2N/A * GNU General Public License for more details. 2N/A * You should have received a copy of the GNU General Public License 2N/A * Note: GRUB is compiled with the options -mrtd and -mregparm=3. 2N/A * So the first three arguments are passed in %eax, %edx, and %ecx, 2N/A * respectively, and if a function has a fixed number of arguments 2N/A * and the number if greater than three, the function must return 2N/A * with "ret $N" where N is ((the number of arguments) - 3) * 4.