Changeset 11054eb for libcfa/src/concurrency/io/types.hfa
- Timestamp:
- Mar 17, 2021, 4:52:22 PM (4 years ago)
- Branches:
- ADT, arm-eh, ast-experimental, enum, forall-pointer-decay, jacob/cs343-translation, master, new-ast-unique-expr, pthread-emulation, qualifiedEnum
- Children:
- 5c2b454
- Parents:
- c407434e
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
libcfa/src/concurrency/io/types.hfa
rc407434e r11054eb 22 22 23 23 #include "bits/locks.hfa" 24 #include "bits/queue.hfa" 24 25 #include "kernel/fwd.hfa" 25 26 … … 95 96 }; 96 97 98 struct __outstanding_io { 99 inline Colable; 100 single_sem sem; 101 }; 102 static inline __outstanding_io *& Next( __outstanding_io * n ) { return (__outstanding_io *)Next( (Colable *)n ); } 103 104 struct __outstanding_io_queue { 105 __spinlock_t lock; 106 Queue(__outstanding_io) queue; 107 volatile bool empty; 108 }; 109 110 struct __external_io { 111 inline __outstanding_io; 112 __u32 * idxs; 113 __u32 have; 114 bool lazy; 115 }; 116 117 97 118 struct __attribute__((aligned(128))) $io_context { 98 119 $io_arbiter * arbiter; 99 120 processor * proc; 100 121 101 struct { 102 volatile bool empty; 103 condition blocked; 104 } ext_sq; 122 __outstanding_io_queue ext_sq; 105 123 106 124 struct __sub_ring_t sq; … … 110 128 }; 111 129 112 monitor __attribute__((aligned(128))) $io_arbiter { 113 struct { 114 condition blocked; 115 $io_context * ctx; 116 volatile bool flag; 117 } pending; 130 struct __pending_alloc { 131 inline __outstanding_io; 132 __u32 * idxs; 133 __u32 want; 134 $io_context * ctx; 135 }; 136 137 struct __attribute__((aligned(128))) $io_arbiter { 138 __outstanding_io_queue pending; 118 139 }; 119 140
Note: See TracChangeset
for help on using the changeset viewer.