All of lore.kernel.org
 help / color / mirror / Atom feed
* Why does dump_stack need asmlinkage?
@ 2021-04-14 14:54 Lv Ying
  0 siblings, 0 replies; only message in thread
From: Lv Ying @ 2021-04-14 14:54 UTC (permalink / raw)
  To: kernelnewbies

Hi all:

asmlinkage is only defined in arch ia64 and x86_32:
1. arch/x86/include/asm/linkage.h:
#ifdef CONFIG_X86_32
#define asmlinkage CPP_ASMLINKAGE __attribute__((regparm(0)))
#endif /* CONFIG_X86_32 */

2. arch/ia64/include/asm/linkage.h:
#define asmlinkage CPP_ASMLINKAGE __attribute__((syscall_linkage))

3. arch independent include/linux/linkage.h:
#ifdef __cplusplus
#define CPP_ASMLINKAGE extern "C"
#else
#define CPP_ASMLINKAGE
#endif

#ifndef asmlinkage
#define asmlinkage CPP_ASMLINKAGE
#endif

As kernelnewbies FAQ(https://kernelnewbies.org/FAQ/asmlinkage) said, in short, asmlinkage tells your compiler to look on the CPU stack for the function parameters, instead of registers.

So, there are two questions:
1. asmlinkage is only defined in x86_32 and ia64, what about other archs? How do they achieve the same effect as mentioned above?
2. "asmlinkage __visible void dump_stack(void)", dump_stack does not have any parameter, so why do it need asmlinkage?

Thanks!
Lv Ying

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

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2021-04-14 14:56 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-04-14 14:54 Why does dump_stack need asmlinkage? Lv Ying

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.