Есть ли эквивалент для stdcall в GCC?
Я работаю над собственным ядром, используя GCC, и при вызове функций C из кода asm я должен сделать add esp,xx
сам. После некоторых поисков я нашел, что stdcall
является изобретением Microsoft и не может использовать его в GCC. Есть ли удобный способ сделать эту работу?
1 ответов
существует ли эквивалентность stdcall в linux?
мое ядро в среде linux
Подождите, это ваше собственное ядро или ядро Linux? Потому что если это ваше собственное ядро, то это уже не Linux.
Если вы работаете в Linux, вы захотите придерживаться регулярных соглашений о вызовах и написать свою сборку в соответствии.
-
Если вы работаете над собственным ядром, вы можете сделать все, что захочешь. GCC и Clang оба поддерживают
stdcall
соглашения о вызовах на процессорах ix86, например,#define stdcall __attribute__((stdcall))
посмотреть: атрибуты функции (руководство GCC)