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 best solutions below
Related Questions in GCC
- gcc static library compilation
- Different behavior of async with Visual Studio 2013(Windows8.1) and GCC 4.9(Ubuntu14.10)
- How to add directories to Cygwin gcc default search path
- Usage of #ifndef directive
- Failure to link a program with gcc -static
- Text as parameter in inline assembly (ARM)?
- Alternatives for strrspn and strfind functions(libgen functions in Solaris) in AIX?
- Incorrect format specifier with gcc compiler
- Why should I use a closing bracket in this?
- How can I compile *without* various instruction sets enabled?
- Automatically wrap C/C++ function at compile-time with annotation
- gcc compiled library: can successfully link with, how come it's "undefined symbol" when run the program?
- compiling caffe on Yosemite
- error - /usr/bin/ld: cannot find -lavutil in ubuntu 15.04
- Compatibility of libstdc++.so libgcc_s.so when upgrading GCC 4.1 to GCC 4.8.2
Related Questions in ASSEMBLY
- (x64 Nasm) Writeline function on Linux
- Is the compiler Xcode uses to produce Assembly code a bad compiler?
- Why do we need AX instead of MOV DS, data directly with a segment?
- Bootloader in Assembly with Linux kernel
- How should the byte sequence 0x40 0x55 be interpreted by an x86-64 emulator?
- C++ code into assembly
- Drawing circles of increasing radius
- Assembly print on screen using pop ecx
- Equivalent to asm volatile in Gfortran?
- Show 640x480 BMP image with inline ASM c++
- Keep track of numbers entered in by a user in assembly
- 8086 Assembly Arrays with I/O
- DB ASM variable in Inline ASM C++
- What does Jump to means in callgrind?
- How to convert binary into decimal in assembly x8086?
Related Questions in KERNEL
- Are Berkeley Packet Filter opcode values implementation defined?
- Raspberry PI Compute Module - SPI1
- Is there any way to get a lru list in Linux kernel?
- Android Studio - HAX kernel Module not installed
- How to determine system value for _POSIX_PATH_MAX
- Different privileges in kernel module execution
- Buildroot custom kernel under 1MB
- Add/remove process from kernel runqueue
- Is it possible to limit data traffic in kernel USB drivers?
- "Segmentation fault" when `rmmod` or `modprobe -r`
- Intercept ELF loader in linux kernel: fs/binfmt_elf.c file via loadable kernel module
- Best way to handle ERESTARTSYS in kthread?
- Purpose and usage of firmware packages on Linux
- In linux every process is given a 4GB of virtual address space considering a 32-bit architecture
- How to make a scanf() type function in a 32bit os in c?
Related Questions in STDCALL
- Call MASM function in StdCall convention
- Why isn't PInvoke crashing in case of violated calling convention (in .NET 3.5)?
- What is better to declare for calling convention of Windows program?
- Howto create C-Header for Delphi/Free Pascal/Lazarus DLL - data types
- Error converting void(__cdecl MyClass::*)() to void *
- Pattern of component with callback system with stdcall calling convention
- What is the correct callback signature for a function called using ctypes in python?
- compile errors log4cxx with __stdcall and Boost 1.47.0
- how to use assembly to get the result of a __stdcall function that returns float
- error C2143: syntax error : missing ';' before '__stdcall"
- C - DLL needs to be __stdcall and import __cdecl lib
- Is there any equivalent for stdcall in GCC?
- COM Server: ESP not saved across a function call when calling interface method
- Is passing a DLL function argument with "const" an equivalent to pointer?
- Creating an unmanaged DLL (in C++) which communicates with Windows Service?
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)
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?
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)