Add nosv_cond API events (nosv 3.1.0)
This commit is contained in:
		
							parent
							
								
									a4a5bf0d37
								
							
						
					
					
						commit
						b5fd438ce0
					
				| @ -10,6 +10,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 | ||||
| ### Added | ||||
| 
 | ||||
| - Introduce part model. | ||||
| - Support for `nosv_cond_wait`, `nosv_cond_signal` and `nosv_cond_broadcast` events VA{oOgGkK}. | ||||
| 
 | ||||
| ### Changed | ||||
| 
 | ||||
| @ -17,6 +18,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 | ||||
| - Update trace format to version 3. | ||||
| - The ovni.require metadata key is now mandatory. | ||||
| - Store process metadata in thread metadata. | ||||
| - nOS-V model version increased to 2.4.0. | ||||
| 
 | ||||
| ### Fixed | ||||
| 
 | ||||
|  | ||||
| @ -621,7 +621,7 @@ List of events for the model *tampi* with identifier **`T`** at version `1.0.0`: | ||||
| 
 | ||||
| ## Model nosv | ||||
| 
 | ||||
| List of events for the model *nosv* with identifier **`V`** at version `2.3.0`: | ||||
| List of events for the model *nosv* with identifier **`V`** at version `2.4.0`: | ||||
| <dl> | ||||
| <dt><a id="VTc" href="#VTc"><pre>VTc(u32 taskid, u32 typeid)</pre></a></dt> | ||||
| <dd>creates task %{taskid} with type %{typeid}</dd> | ||||
| @ -715,6 +715,18 @@ List of events for the model *nosv* with identifier **`V`** at version `2.3.0`: | ||||
| <dd>enters nosv_barrier_wait()</dd> | ||||
| <dt><a id="VAB" href="#VAB"><pre>VAB</pre></a></dt> | ||||
| <dd>leaves nosv_barrier_wait()</dd> | ||||
| <dt><a id="VAo" href="#VAo"><pre>VAo</pre></a></dt> | ||||
| <dd>enters nosv_cond_wait()</dd> | ||||
| <dt><a id="VAO" href="#VAO"><pre>VAO</pre></a></dt> | ||||
| <dd>leaves nosv_cond_wait()</dd> | ||||
| <dt><a id="VAg" href="#VAg"><pre>VAg</pre></a></dt> | ||||
| <dd>enters nosv_cond_signal()</dd> | ||||
| <dt><a id="VAG" href="#VAG"><pre>VAG</pre></a></dt> | ||||
| <dd>leaves nosv_cond_signal()</dd> | ||||
| <dt><a id="VAk" href="#VAk"><pre>VAk</pre></a></dt> | ||||
| <dd>enters nosv_cond_broadcast()</dd> | ||||
| <dt><a id="VAK" href="#VAK"><pre>VAK</pre></a></dt> | ||||
| <dd>leaves nosv_cond_broadcast()</dd> | ||||
| <dt><a id="VHa" href="#VHa"><pre>VHa</pre></a></dt> | ||||
| <dd>enters nosv_attach()</dd> | ||||
| <dt><a id="VHA" href="#VHA"><pre>VHA</pre></a></dt> | ||||
|  | ||||
| @ -41,6 +41,8 @@ Track changes in emulator model versions. | ||||
| 
 | ||||
| ## nOS-V | ||||
| 
 | ||||
| - nosv 2.4.0 | ||||
|     - Add support for `nosv_cond_wait`, `nosv_cond_signal` and `nosv_cond_broadcast` events VA{oOgGkK}. | ||||
| - nosv 2.3.0 | ||||
|     - Add `nosv.can_breakdown` attribute to metadata for breakdown checks. | ||||
| - nosv 2.2.0 | ||||
|  | ||||
| @ -67,6 +67,12 @@ static const int ss_table[256][256][3] = { | ||||
| 		['U'] = { CHSS, POP,  ST_API_MUTEX_UNLOCK }, | ||||
| 		['b'] = { CHSS, PUSH, ST_API_BARRIER_WAIT }, | ||||
| 		['B'] = { CHSS, POP,  ST_API_BARRIER_WAIT }, | ||||
| 		['o'] = { CHSS, PUSH, ST_API_COND_WAIT }, | ||||
| 		['O'] = { CHSS, POP,  ST_API_COND_WAIT }, | ||||
| 		['g'] = { CHSS, PUSH, ST_API_COND_SIGNAL }, | ||||
| 		['G'] = { CHSS, POP,  ST_API_COND_SIGNAL }, | ||||
| 		['k'] = { CHSS, PUSH, ST_API_COND_BCAST }, | ||||
| 		['K'] = { CHSS, POP,  ST_API_COND_BCAST }, | ||||
| 	}, | ||||
| 	/* FIXME: Move thread type to another channel, like nanos6 */ | ||||
| 	['H'] = { | ||||
|  | ||||
| @ -44,6 +44,9 @@ enum nosv_ss_values { | ||||
| 	ST_API_MUTEX_TRYLOCK, | ||||
| 	ST_API_MUTEX_UNLOCK, | ||||
| 	ST_API_BARRIER_WAIT, | ||||
| 	ST_API_COND_WAIT, | ||||
| 	ST_API_COND_SIGNAL, | ||||
| 	ST_API_COND_BCAST, | ||||
| 	ST_WORKER, | ||||
| 	ST_DELEGATE, | ||||
| 
 | ||||
|  | ||||
| @ -65,6 +65,9 @@ static struct ev_decl model_evlist[] = { | ||||
| 	PAIR_E("VAt", "VAT", "nosv_mutex_trylock()") | ||||
| 	PAIR_E("VAu", "VAU", "nosv_mutex_unlock()") | ||||
| 	PAIR_E("VAb", "VAB", "nosv_barrier_wait()") | ||||
| 	PAIR_E("VAo", "VAO", "nosv_cond_wait()") | ||||
| 	PAIR_E("VAg", "VAG", "nosv_cond_signal()") | ||||
| 	PAIR_E("VAk", "VAK", "nosv_cond_broadcast()") | ||||
| 
 | ||||
| 	/* FIXME: VHA and VHa are not subsystems */ | ||||
| 	{ "VHa", "enters nosv_attach()" }, | ||||
| @ -82,7 +85,7 @@ static struct ev_decl model_evlist[] = { | ||||
| 
 | ||||
| struct model_spec model_nosv = { | ||||
| 	.name    = model_name, | ||||
| 	.version = "2.3.0", | ||||
| 	.version = "2.4.0", | ||||
| 	.evlist  = model_evlist, | ||||
| 	.model   = model_id, | ||||
| 	.create  = model_nosv_create, | ||||
| @ -161,6 +164,9 @@ static const struct pcf_value_label nosv_ss_values[] = { | ||||
| 	{ ST_API_MUTEX_TRYLOCK,"API: Mutex trylock" }, | ||||
| 	{ ST_API_MUTEX_UNLOCK, "API: Mutex unlock" }, | ||||
| 	{ ST_API_BARRIER_WAIT, "API: Barrier wait" }, | ||||
| 	{ ST_API_COND_WAIT,    "API: Cond wait" }, | ||||
| 	{ ST_API_COND_SIGNAL,  "API: Cond signal" }, | ||||
| 	{ ST_API_COND_BCAST,   "API: Cond broadcast" }, | ||||
| 	{ ST_WORKER,           "Thread: Worker" }, | ||||
| 	{ ST_DELEGATE,         "Thread: Delegate" }, | ||||
| 	{ EV_SCHED_SEND,       "EV Scheduler: Send task" }, | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user