I'm working on my own kernel using GCC, and when calling C functions from asm code, I have to do add esp,xx myself. After some searching I found that stdcall is a Microsoft invention and can't use it in GCC. Is there any handy way to do this work?
Is there any equivalent for stdcall in GCC?
10.1k views Asked by babel92 At
1
There are 1 answers
Related Questions in GCC
- File refuses to compile std::erase() even if using -std=g++23
- the difference between two style of inline ASM
- Why veneer code generated by gcc for cortex-m0 seems 8-byte aligned?
- How to compile the Linux kernel with -O0 for more detailed debug?
- GMP Windows installation "configure: error: could not find a working compiler"
- Unable to run get .exe file from assembly NASM
- Problem with compiling c++ project that is running python code using Python.h -> undefined reference
- How to use a newer linker and glibc in a Kotlin/Native project?
- "Config.guess failed to determine the host type" when trying build binutils-2.7 with Cygwin
- Trying to compile GCC returns a bunch of errors
- Compiling with gcc fno-common option causes performance degradation
- On cygwin I get errors containing -lintl and -liconv when running gcc
- Constant function pointer optimization
- How to obtain mingw-w64 version 9.3.0 or older for MSYS2?
- How to fix this error in terminal while writing hello world code in VS Code on C?
Related Questions in ASSEMBLY
- Is there some way to use printf to print a horizontal list of decrementing hex digits in NASM assembly on Linux
- How to call a C language function from x86 assembly code?
- Binary Bomb Phase 2 - Decoding Assembly
- AVR Assembly Clock Cycle
- Understanding the differences between mov and lea instructions in x86 assembly
- ARM Assembly code is not executing in Vitis IDE
- Which version of ARM does the M1 chip run on?
- Why would %rbp not be equal to the value of %rsp, which is 0x28?
- Move immediate 8-bit value into RSI, RDI, RSP or RBP
- Unable to run get .exe file from assembly NASM
- DOSbox automatically freezes and crashes without any prompt warnings
- Load function written in amd64 assembly into memory and call it
- link.exe unresolved external symbol _mainCRTStartup
- x86 Wrote a boot loader that prints a message to the screen but the characters are completely different to what I expected
- running an imf file using dosbox in parallel to a game
Related Questions in KERNEL
- Simulate WeChat scanning short connection redirection, but the QQ display result is different from WeChat?
- Validating a client from kernel in Windows
- Yocto kernel patch fails with git am
- Nuke BlinkScript: Why does the convolution kernel scale down the image?
- EKS AMI kernel debug symbols
- Unexpected OS Shutdown
- create_ap wlan0: Could not connect to kernel driver
- QEMU i386 pmio addresses
- Simple programming of VGA cursor
- How to compile and install kernel modules with dependencies and device tree?
- android camera driver rotate 90°
- Is there any way to get the WiFi contention window (CW) min and max value in Linux 80211 subsystem?
- How to reduce cached memory used by Linux kernel on embedded linux platform
- How can I get current cpufreq in kernel code?
- Print Inode or file data, using path name
Related Questions in STDCALL
- Calling mangled non-managed C++ DLL function in C#
- Do I need `__stdcall` in `std::unique_ptr` deleter?
- Intel MKL: link to PARDISO
- Issues passing a C# callback pointer to a C library
- __stdcall in function paramater
- Correct calling convention for exporting windows DLL functions for Excel VBA without mangled names
- Missing leading underscore in exported stdcall functions with minGW
- Does stdcall use SSE registers? And does he restore them?
- vc++ stdcall function assign to cdecl function pointer worked, why?
- Stack overflow occurs if I call an assembler routine too many times
- DLL export __stdcall without DEF file and decorated function names with VS
- Call a StdCall Subroutine in Fortran
- Is passing a DLL function argument with "const" an equivalent to pointer?
- how to pass void function pointer as parameter
- Stack cleanup not working (__stdcall MASM function)
Popular Questions
- How do I undo the most recent local commits in Git?
- How can I remove a specific item from an array in JavaScript?
- How do I delete a Git branch locally and remotely?
- Find all files containing a specific text (string) on Linux?
- How do I revert a Git repository to a previous commit?
- How do I create an HTML button that acts like a link?
- How do I check out a remote Git branch?
- How do I force "git pull" to overwrite local files?
- How do I list all files of a directory?
- How to check whether a string contains a substring in JavaScript?
- How do I redirect to another webpage?
- How can I iterate over rows in a Pandas DataFrame?
- How do I convert a String to an int in Java?
- Does Python have a string 'contains' substring method?
- How do I check if a string contains a specific word?
Trending Questions
- UIImageView Frame Doesn't Reflect Constraints
- Is it possible to use adb commands to click on a view by finding its ID?
- How to create a new web character symbol recognizable by html/javascript?
- Why isn't my CSS3 animation smooth in Google Chrome (but very smooth on other browsers)?
- Heap Gives Page Fault
- Connect ffmpeg to Visual Studio 2008
- Both Object- and ValueAnimator jumps when Duration is set above API LvL 24
- How to avoid default initialization of objects in std::vector?
- second argument of the command line arguments in a format other than char** argv or char* argv[]
- How to improve efficiency of algorithm which generates next lexicographic permutation?
- Navigating to the another actvity app getting crash in android
- How to read the particular message format in android and store in sqlite database?
- Resetting inventory status after order is cancelled
- Efficiently compute powers of X in SSE/AVX
- Insert into an external database using ajax and php : POST 500 (Internal Server Error)
Wait, is this your own kernel, or the Linux kernel? Because if it's your own kernel, it's not Linux any more.
If you're working on Linux, you'll want to stick with regular calling conventions and write your assembly to match.
If you're working on your own kernel, you can do anything you want. GCC and Clang both support
stdcallcalling conventions on ix86 processors, e.g.,See: Function Attributes (GCC manual)