entry.S 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. /*++
  2. Copyright (c) 2013 Minoca Corp.
  3. This file is licensed under the terms of the GNU General Public License
  4. version 3. Alternative licensing terms are available. Contact
  5. info@minocacorp.com for details. See the LICENSE file at the root of this
  6. project for complete licensing information.
  7. Module Name:
  8. entry.S
  9. Abstract:
  10. This module implements the entry point for the loader.
  11. Author:
  12. Evan Green 18-Aug-2013
  13. Environment:
  14. Kernel mode
  15. --*/
  16. ##
  17. ## ------------------------------------------------------------------ Includes
  18. ##
  19. #include <minoca/kernel/x86.inc>
  20. ##
  21. ## ---------------------------------------------------------------------- Code
  22. ##
  23. ##
  24. ## .text specifies that this code belongs in the executable section.
  25. ##
  26. ## .code32 specifies that this is 32-bit protected mode code.
  27. ##
  28. .text
  29. .code32
  30. ##
  31. ## .globl allows this label to be visible to the linker.
  32. ##
  33. .globl _start
  34. ##
  35. ## void
  36. ## start (
  37. ## )
  38. ##
  39. /*++
  40. Routine Description:
  41. This routine implements the entry point for the firmware. It jumps to the
  42. main C routine. It is called by the file system specific boot code.
  43. Arguments:
  44. None.
  45. Return Value:
  46. TRUE if interrupts are enabled in the processor.
  47. FALSE if interrupts are globally disabled.
  48. --*/
  49. _start:
  50. jmp EfiBiosMain # Just do it.
  51. ##
  52. ## --------------------------------------------------------- Internal Functions
  53. ##