Ignore:
Timestamp:
Nov 30, 2022, 10:36:25 PM (21 months ago)
Author:
Peter A. Buhr <pabuhr@…>
Branches:
ADT, ast-experimental, master
Children:
5657de9, c8238c0
Parents:
be1d00c
Message:

generalization of PRNG

File:
1 edited

Legend:

Unmodified
Added
Removed
  • libcfa/src/concurrency/kernel/startup.cfa

    rbe1d00c rdd46fd3  
    108108extern void __wake_proc(processor *);
    109109extern int cfa_main_returned;                                                   // from interpose.cfa
    110 PRNG_ARG_T __global_random_prime = 4_294_967_291u;
     110size_t __global_random_prime = 4_294_967_291u;
    111111bool __global_random_mask = false;
    112112
     
    135135// Global state
    136136__thread struct KernelThreadData __cfaabi_tls __attribute__ ((tls_model ( "initial-exec" ))) @= {
    137         NULL,                                                                                           // cannot use 0p
    138         NULL,
    139         false,
    140         { 1, false, false },
    141         0,
    142         { 0, 0 },
    143         NULL,
     137        .this_thread : NULL,                                                            // cannot use 0p
     138        .this_processor : NULL,
     139        .sched_lock : false,
     140        .preemption_state : { .disable_count : 1, .enabled : false, .in_progress : false },
     141        // random_state uninitialized
     142        .ready_rng : { .fwd_seed : 0, .bck_seed : 0 },
     143        .this_stats : NULL,
    144144        #ifdef __CFA_WITH_VERIFY__
    145                 false,
    146                 0,
     145                .in_sched_lock : false,
     146                .sched_id : 0,
    147147        #endif
    148148};
     
    521521        preferred = ready_queue_new_preferred();
    522522        last_proc = 0p;
    523         random_state = __global_random_mask ? __global_random_prime : __global_random_prime ^ rdtscl();
     523        PRNG_SET_SEED( random_state,  __global_random_mask ? __global_random_prime : __global_random_prime ^ rdtscl() );
    524524        #if defined( __CFA_WITH_VERIFY__ )
    525525                executing = 0p;
Note: See TracChangeset for help on using the changeset viewer.