comp.lang.ada
 help / color / mirror / Atom feed
* Linux kernel module - memory allocation
@ 2015-05-18  8:27 q.kontinuum
  2015-05-18  8:56 ` Niklas Holsti
  2015-05-18 20:19 ` jan.de.kruyf
  0 siblings, 2 replies; 20+ messages in thread
From: q.kontinuum @ 2015-05-18  8:27 UTC (permalink / raw)


I'm new to this group, new to Ada programming, and a bit out of touch with
Linux driver development for some time. Since I want to learn Ada and want
to get back in touch with Linux I'm trying to implement a driver for my 
raspberry-pi, to access a DS18B20 temperature sensor via onewire protocol.

The steps I already took was to implement a small wrapper in C to link 
with a first Hello world module in Ada and to access the hr_timer of the 
Linux kernel (here I again used to wrapper and called it from Ada to avoid 
cloning the whole hrtimer struct from Linux kernel header files)

Where I'm getting stuck now is a function returning a String. I simplified 
the function to this:

   function UInt2String(I : Integer) return String is
   begin      
      return "";
   end;

As soon as this function is used somewhere, I can't load the module. 
Here is the kernel log output when I try to load the module:

May 18 10:19:39 localhost kernel: [87978.938801] wrapper: 
   Unknown symbol system__secondary_stack__ss_allocate (err 0)
May 18 10:19:39 localhost kernel: [87978.938812] wrapper: 
   Unknown symbol system__secondary_stack__ss_release (err 0)
May 18 10:19:39 localhost kernel: [87978.938819] wrapper: 
   Unknown symbol system__secondary_stack__ss_mark (err 0)
May 18 10:19:39 localhost kernel: wrapper: 
   Unknown symbol system__secondary_stack__ss_allocate (err 0)
May 18 10:19:39 localhost kernel: wrapper: 
   Unknown symbol system__secondary_stack__ss_release (err 0)
May 18 10:19:39 localhost kernel: wrapper: 
   Unknown symbol system__secondary_stack__ss_mark (err 0)

I will need to store a binary tree later on to store the addresses of the 
devices found on the onewire bus. In C, I'd probably use kmalloc and 
casts to allocate memory for a node of the tree. How should I do that in 
Ada?

Sorry if this is a stupid question. I'm entirely happy with a RTFM + link
to a good M on this topic.



^ permalink raw reply	[flat|nested] 20+ messages in thread

end of thread, other threads:[~2015-05-19 11:16 UTC | newest]

Thread overview: 20+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-05-18  8:27 Linux kernel module - memory allocation q.kontinuum
2015-05-18  8:56 ` Niklas Holsti
2015-05-18  9:19   ` q.kontinuum
2015-05-18 16:02     ` Niklas Holsti
2015-05-18 17:34       ` Simon Clubley
2015-05-18 19:25         ` jan.de.kruyf
2015-05-19  5:30           ` q.kontinuum
2015-05-19  7:18             ` jan.de.kruyf
2015-05-19  7:56               ` q.kontinuum
2015-05-19  8:06                 ` jan.de.kruyf
2015-05-19 10:20                   ` Mart van de Wege
2015-05-19 11:14                     ` jan.de.kruyf
2015-05-19 11:16                   ` G.B.
2015-05-19  9:52               ` Simon Wright
2015-05-19 11:11                 ` jan.de.kruyf
2015-05-18 19:48         ` q.kontinuum
2015-05-18 20:18           ` rrr.eee.27
2015-05-18 21:09             ` q.kontinuum
2015-05-18 19:35       ` q.kontinuum
2015-05-18 20:19 ` jan.de.kruyf

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox