Talk About Network

Google


Register and Login
Nick
Password
Register create new account Sign up is FREE and you can post replies, new topics, bookmark posts and more!
Recover lost password


Programming > C > Re: Installing ...
Latest [ Topics | Posts ] Archive Post A New Topic Post a Reply
<< Topic < Post Post 17 of 17 Topic 26124 of 26972
Post > Topic >>

Re: Installing a C function into the IDT

by Owen Jacobson <angrybaldguy@[EMAIL PROTECTED] > May 8, 2008 at 10:01 PM

On May 8, 4:47=A0pm, The Prisoner <nos...@[EMAIL PROTECTED]
> wrote:
> Hey-
>
> I was reading about interrupts, and I got to thinking it would be a real
> neat thing to use interrupts for program-wide exception handling. What I
> haven't been able to find is a clear guide or example program for how to
> install a C function into the IDT. And what happens about passing
argument=
s?
>
> I'd like to have something like this:
>
> void malloc_failure();
>
> Say I install this as interrupt slot 42, then I can do:
>
> if(!(p=3D(int*)malloc(1000*4))) // array of 1000 ints
> =A0 =A0__asm__ ("int $0x42");

I'm impressed that nobody else has mentioned that casting the result
of malloc is a good way to hide bugs and a bad way to use malloc yet.
Or on your odd choice of int sizes.  These are fairly serious problems
with your code that you should understand and solve before trying
anything as tricky, hazardous, and arcane as writing your own ISRs.

The cast is dangerous because it hides a missing include; with the
missing include, the "implicit" declaration of malloc will have the
wrong signature.  This can and will lead to crashes.  See
http://c-faq.com/malloc/mallocnocast.html
.

The correct size of an int is sizeof (int), not 4.  Even better would
be

  p =3D malloc (1000 * sizeof (*p));

as it will stay in synch if you change the type of 'p' (say, to long)
in the future.

-o
 




 17 Posts in Topic:
Installing a C function into the IDT
The Prisoner <nospam@[  2008-05-08 21:47:34 
Re: Installing a C function into the IDT
jacob navia <jacob@[EM  2008-05-08 23:00:44 
Re: Installing a C function into the IDT
The Prisoner <nospam@[  2008-05-08 22:34:27 
Re: Installing a C function into the IDT
Ian Collins <ian-news@  2008-05-09 09:42:17 
Re: Installing a C function into the IDT
Keith Thompson <kst-u@  2008-05-08 15:17:31 
Re: Installing a C function into the IDT
Keith Thompson <kst-u@  2008-05-08 15:31:59 
Re: Installing a C function into the IDT
Ian Collins <ian-news@  2008-05-09 10:46:21 
Re: Installing a C function into the IDT
Erik Trulsson <ertr101  2008-05-08 23:58:43 
Re: Installing a C function into the IDT
jt@[EMAIL PROTECTED] (Je  2008-05-08 22:14:45 
Re: Installing a C function into the IDT
Keith Thompson <kst-u@  2008-05-08 15:23:50 
Re: Installing a C function into the IDT
The Prisoner <nospam@[  2008-05-08 23:29:32 
Re: Installing a C function into the IDT
Ian Collins <ian-news@  2008-05-09 10:51:44 
Re: Installing a C function into the IDT
jt@[EMAIL PROTECTED] (Je  2008-05-08 23:17:28 
Re: Installing a C function into the IDT
"cr88192" <c  2008-05-09 16:33:26 
Re: Installing a C function into the IDT
Antoninus Twink <nospa  2008-05-09 14:58:07 
Re: Installing a C function into the IDT
Ben Bacarisse <ben.use  2008-05-09 00:46:39 
Re: Installing a C function into the IDT
Owen Jacobson <angryba  2008-05-08 22:01:14 

Post A Reply:
  Go here to Signup

AddThis Feed Button


About - Advertising - Contact - Frequently Asked Questions - Privacy Policy - Terms of Use - Signup

Contact
tan12V112 Fri Jul 25 21:29:57 CDT 2008.