Re: question about boot_params global variables

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tue, Aug 16, 2022 at 05:55:33PM +0800, shiyu chou wrote:
> In arch x86 directory I found two global variables with the same
> name(master branch):
> 1.arch/x86/boot/main.c
> near line 18: struct boot_params boot_params __attribute__((aligned(16)));
> 2.arch/x86/kernel/setup.c
> near line 75: struct boot_params boot_params;
> Is that wrong to define two global variables with the same name? And when
> use extern to reference the variable,which one did it reference?

Same name would be a problem if these two variables end up in the same
binary program. However, as the comment in arch/x86/boot/main.c suggests:

/*
 * Main module for the real-mode kernel code
 */

first variable is part of a small real-mode kernel that runs first. It
finishes running by switching to the protected mode kernel that contains
the second variable:

        protected_mode_jump(boot_params.hdr.code32_start,
	                            (u32)&boot_params + (ds() << 4));

For more details see https://www.kernel.org/doc/html/latest/x86/boot.html

-- 
Valentin

_______________________________________________
Kernelnewbies mailing list
Kernelnewbies@xxxxxxxxxxxxxxxxx
https://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies



[Index of Archives]     [Newbies FAQ]     [Linux Kernel Mentors]     [Linux Kernel Development]     [IETF Annouce]     [Git]     [Networking]     [Security]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux SCSI]     [Linux ACPI]

  Powered by Linux