Ignore:
Timestamp:
Mar 2, 2021, 1:58:12 PM (8 months ago)
Author:
Thierry Delisle <tdelisle@…>
Branches:
arm-eh, jacob/cs343-translation, master, new-ast-unique-expr
Children:
2cd784a
Parents:
6047b00
Message:

Changed io to use ring per kernel threads.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • libcfa/src/concurrency/io/types.hfa

    r6047b00 rdddb3dd0  
    3838                        volatile __u32 * head;   // one passed last index consumed by the kernel
    3939                        volatile __u32 * tail;   // one passed last index visible to the kernel
    40                         volatile __u32 ready;    // one passed last index added to array ()
    4140                        volatile __u32 released; // one passed last index released back to the free list
    4241
     
    9796
    9897        struct __attribute__((aligned(128))) $io_context {
    99                 inline Seqable;
    100 
    101                 volatile bool revoked;
     98                $io_arbiter * arbiter;
    10299                processor * proc;
    103 
    104                 $io_arbiter * arbiter;
    105100
    106101                struct {
     
    113108                __u32 ring_flags;
    114109                int fd;
    115                 int efd;
    116 
    117                 single_sem sem;
    118                 $thread self;
    119110        };
    120 
    121         void main( $io_context & this );
    122         static inline $thread  * get_thread ( $io_context & this ) __attribute__((const)) { return &this.self; }
    123         static inline $monitor * get_monitor( $io_context & this ) __attribute__((const)) { return &this.self.self_mon; }
    124         static inline $io_context *& Back( $io_context * n ) { return ($io_context *)Back( (Seqable *)n ); }
    125         static inline $io_context *& Next( $io_context * n ) { return ($io_context *)Next( (Colable *)n ); }
    126         void ^?{}( $io_context & mutex this );
    127111
    128112        monitor __attribute__((aligned(128))) $io_arbiter {
     
    132116                        volatile bool flag;
    133117                } pending;
    134 
    135                 Sequence($io_context) assigned;
    136 
    137                 Sequence($io_context) available;
    138118        };
    139119
     
    167147        #endif
    168148
    169         void __ioctx_prepare_block($io_context & ctx);
     149        // void __ioctx_prepare_block($io_context & ctx);
    170150#endif
    171151
Note: See TracChangeset for help on using the changeset viewer.