Re: timer function

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Monday 30. March 2009 11.49.18 nidhi mittal wrote:
> i have a module of mine
>
> in which i have a data strcuture
> struct my_data{
> .
> .
> .
> .
>
> }
>
> struct my_data m1;

could you write a bit cleaner code, like

struct my_data {
   int some_id;
};
static struct my_data m1;

>
> there is timer handling function
> handle_timer(data)
> {
>
>
>
> }

and (assuming you use hrtimers):

emum hrtimer_restart timer_handler(void *data)
{
     /* timer code handling */
     return HRTIMER_NORESTART;
}

static int __init init_module(void)
{
  /* init handling, including timer*/
  return 0;
}

> init_module
> {
> .
> .
> timer initialzed
>
> }

I'm not asking you to paste the entire code, but if you're adding code-
examples, make sure they actually make sense, and that they look somewhat 
sensible. This is just gibberish and only adds noise to the email.

And, before I venture on to actually answer the question - could you please 
write proper english? Not gramatically outstanding Queens-english, but at 
least write complete sentences and words? Please, I beg you on my knees!

> suppose i want to access the my_data global data struct m1
> in handle_timer function .....
>
> then my ques is
>
> will i be able to access m1 in handle_timer directly thinking m1 a global
> variable
> i know it can be passed thru data arg but lets say i dont do that ...

Yes. But, and look at this but as a big, bold, fat *but* - make sure to handle 
concurrent access. That will be the same for passing a pointer to a struct, 
but in general, global variables and concurrency is not the best of friends.


> or
>
> it will nt be accessible there as handle timer when it will be executed
> ...it'll be in interrupt context
> at that time some other process might be in execution ...
> then these global var m1 wont be in its access ....

Your struct is statically allocated and given a static address - it doesn't 
really matter from where in the kernel you call it, as long as the handler 
knows the address, you can call it.

> pl clarify which of the two thoughts is correct .

First option :-)


<rant>
Give this some thought: how many seconds did you save by writing 'pl' instead 
of 'please'? A full second? Half a second? 

Then think about this: I had to read your email 3 times before I understood 
all your questions, and even if I only had to read it twice, that took me an 
extra 30 seconds. Now multiply that with all the people reading the list.

I know that I sound grumpy, perhaps I am, and I do not mean to scare you off, 
on the contrary! I encourage you to continue learning and using Linux. I just 
want you to understand that you will get a lot more constructive feedback if 
you send off emails with a less 'sloppy' impression.

just my $0.02
</rant>

henrik

Attachment: signature.asc
Description: This is a digitally signed message part.


[Index of Archives]     [Newbies FAQ]     [Linux Kernel Mentors]     [Linux Kernel Development]     [IETF Annouce]     [Git]     [Networking]     [Security]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux SCSI]     [Linux ACPI]
  Powered by Linux