comp.lang.ada
 help / color / mirror / Atom feed
From: wrostek <wolfgang.rostek@gmx.de>
Subject: very fast procedure call
Date: Tue, 23 Jul 2013 01:49:12 -0700 (PDT)
Date: 2013-07-23T01:49:12-07:00	[thread overview]
Message-ID: <91af1dde-9a21-44cd-959e-dfa86bb0c1a3@googlegroups.com> (raw)

Hi all,

this question is related to my tracing work started here last week.
https://groups.google.com/forum/#!topic/comp.lang.ada/vSNunYeX6GY

For injecting a bunch of trace I'll need an ultimate fast store call.

Here my approach.

The trace call will only provide storing 4 and 8 byte values. Each
call should generate a pair of id/value. There is no tasking/threading
involved.

First looking at the package body behaviour I'll come to the interface
later.

The body will use an array storage area which will be copied to disk
at the end of each 20msec cycle. (this may even be done via shared
memory by a different process)

Filling the array should be really fast.

The interface should be somehow this kind (sorry using C style)

procedure put32u(id: in uint32; val: in uint32);
procedure put32s(id: in uint32; val: in sint32);
procedure put32f(id: in uint32; val: in float32);
procedure put64d(id: in uint32; val: in double64);

This should be sufficient for the caller (e.g. an emum must be converted
to use the first call).

I would like to make all inline, no range checking, no C-usage, etc.

Can you give me some ideas or a similar example?

thanks in advance
Wolfgang R.

             reply	other threads:[~2013-07-23  8:49 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-07-23  8:49 wrostek [this message]
2013-08-01 12:14 ` very fast procedure call Jacob Sparre Andersen
replies disabled

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