Hi,
Thank you for the help. I have successfully written the function: inline void jent_get_nstime(__u64 *out) for riscv also, and its working fine.
please have a look:
#ifndef _JITTERENTROPY_RISCV_BASE_GENODE_NSTIME_H_
#define _JITTERENTROPY_RISCV_BASE_GENODE_NSTIME_H_
static inline void jent_get_nstime(__u64 *out)
{
uint64_t t;
    asm volatile ("rdtime %0" : "=r" (t));
    *out = t;
}
#endif
This code reads the current time in cycles from the real-time clock (RTC) of the RISC-V processor and stores it in the t variable. The out pointer argument is dereferenced and the value of t is stored at the location it points to.

Thanks & regards,
Pranab

On Tue, Feb 28, 2023 at 4:29 PM Christian Helmuth <christian.helmuth@genode-labs.com> wrote:
Hello,

On Tue, Feb 28, 2023 at 11:24:18 CET, Pranab Kumar Rout cs21m045 wrote:
> Now, I need to write the hearder file (jitterentropy-base-genode-nstime.h)
> for risc-v that would do the same work.
> Can you please explain what this function ( *inline void
> jent_get_nstime(__u64 *out)* ) actually do ? So that I can write it for
> risc-v arch also.

Please refer to the jitterentropy library documentation [1] for the
specification of jent_get_nstime(). In general, the function shoud
return a "high-resolution time stamp" with minimal overhead, for
example a cycle counter like TSC on x86. Unfortunately, I don't know
about any RISC-V feature that could be used for this specific purpose
or if RISC-V in general provides sufficient CPU Execution Timing
Jitter for the jitterentropy library.

[1] http://www.chronox.de/jent.html

Regards
--
Christian Helmuth
Genode Labs

https://www.genode-labs.com/ · https://genode.org/
https://twitter.com/GenodeLabs · https://genodians.org/

Genode Labs GmbH · Amtsgericht Dresden · HRB 28424 · Sitz Dresden
Geschäftsführer: Dr.-Ing. Norman Feske, Christian Helmuth

_______________________________________________
Genode users mailing list
users@lists.genode.org
https://lists.genode.org/listinfo/users