delorie.com/archives/browse.cgi | search |
X-Authentication-Warning: | delorie.com: mail set sender to djgpp-bounces using -f |
From: | "Glaux" <glaux AT centrum DOT cz> |
Newsgroups: | comp.os.msdos.djgpp |
Subject: | Re: still no support/alternative to __attribute__((naked)) ? |
Date: | 2 Mar 2007 06:42:52 -0800 |
Organization: | http://groups.google.com |
Lines: | 29 |
Message-ID: | <1172846572.384653.223190@p10g2000cwp.googlegroups.com> |
References: | <1172695353 DOT 457041 DOT 104610 AT h3g2000cwc DOT googlegroups DOT com> |
<es64q6$atr$1 AT aioe DOT org> | |
<1172781205 DOT 878725 DOT 126010 AT 8g2000cwh DOT googlegroups DOT com> | |
NNTP-Posting-Host: | 212.158.158.242 |
Mime-Version: | 1.0 |
X-Trace: | posting.google.com 1172846578 14992 127.0.0.1 (2 Mar 2007 14:42:58 GMT) |
X-Complaints-To: | groups-abuse AT google DOT com |
NNTP-Posting-Date: | Fri, 2 Mar 2007 14:42:58 +0000 (UTC) |
In-Reply-To: | <1172781205.878725.126010@8g2000cwh.googlegroups.com> |
User-Agent: | G2/1.0 |
X-HTTP-UserAgent: | Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7.12) Gecko/20050915,gzip(gfe),gzip(gfe) |
Complaints-To: | groups-abuse AT google DOT com |
Injection-Info: | p10g2000cwp.googlegroups.com; posting-host=212.158.158.242; |
posting-account=79KgoA0AAADKuOLK3k0Y3qVqk-KGfm77 | |
To: | djgpp AT delorie DOT com |
DJ-Gateway: | from newsgroup comp.os.msdos.djgpp |
Reply-To: | djgpp AT delorie DOT com |
Errors-To: | nobody AT delorie DOT com |
X-Mailing-List: | djgpp AT delorie DOT com |
X-Unsubscribes-To: | listserv AT delorie DOT com |
Ha, finally found what I need. I use asm label to make a pointer, it works, something like this: void ring0_function(void) // need to be __attribute__ ((naked)) { asm("my_label:"); ...code asm("lret"); } and then use in main printf("f: %lX\n",(DWord)ring0_function+3); // function pointer behind prologue asm __volatile__ ("movl $my_label,%%eax" : "=a" (ring0_addr)); // naked function pointer made of label printf("PTR: %lXh\n",ring0_addr); it compiles to 00401380 push ebp 00401381 mov ebp,esp 00401383 ...code 00401385 retf 004013CD mov eax,401383h 004013D2 mov [00404010],eax
webmaster | delorie software privacy |
Copyright © 2019 by DJ Delorie | Updated Jul 2019 |