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 | ### Added | ||||||
| 
 | 
 | ||||||
| - Introduce part model. | - Introduce part model. | ||||||
|  | - Support for `nosv_cond_wait`, `nosv_cond_signal` and `nosv_cond_broadcast` events VA{oOgGkK}. | ||||||
| 
 | 
 | ||||||
| ### Changed | ### 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. | - Update trace format to version 3. | ||||||
| - The ovni.require metadata key is now mandatory. | - The ovni.require metadata key is now mandatory. | ||||||
| - Store process metadata in thread metadata. | - Store process metadata in thread metadata. | ||||||
|  | - nOS-V model version increased to 2.4.0. | ||||||
| 
 | 
 | ||||||
| ### Fixed | ### Fixed | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -621,7 +621,7 @@ List of events for the model *tampi* with identifier **`T`** at version `1.0.0`: | |||||||
| 
 | 
 | ||||||
| ## Model nosv | ## 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> | <dl> | ||||||
| <dt><a id="VTc" href="#VTc"><pre>VTc(u32 taskid, u32 typeid)</pre></a></dt> | <dt><a id="VTc" href="#VTc"><pre>VTc(u32 taskid, u32 typeid)</pre></a></dt> | ||||||
| <dd>creates task %{taskid} with type %{typeid}</dd> | <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> | <dd>enters nosv_barrier_wait()</dd> | ||||||
| <dt><a id="VAB" href="#VAB"><pre>VAB</pre></a></dt> | <dt><a id="VAB" href="#VAB"><pre>VAB</pre></a></dt> | ||||||
| <dd>leaves nosv_barrier_wait()</dd> | <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> | <dt><a id="VHa" href="#VHa"><pre>VHa</pre></a></dt> | ||||||
| <dd>enters nosv_attach()</dd> | <dd>enters nosv_attach()</dd> | ||||||
| <dt><a id="VHA" href="#VHA"><pre>VHA</pre></a></dt> | <dt><a id="VHA" href="#VHA"><pre>VHA</pre></a></dt> | ||||||
|  | |||||||
| @ -41,6 +41,8 @@ Track changes in emulator model versions. | |||||||
| 
 | 
 | ||||||
| ## nOS-V | ## 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 | - nosv 2.3.0 | ||||||
|     - Add `nosv.can_breakdown` attribute to metadata for breakdown checks. |     - Add `nosv.can_breakdown` attribute to metadata for breakdown checks. | ||||||
| - nosv 2.2.0 | - nosv 2.2.0 | ||||||
|  | |||||||
| @ -67,6 +67,12 @@ static const int ss_table[256][256][3] = { | |||||||
| 		['U'] = { CHSS, POP,  ST_API_MUTEX_UNLOCK }, | 		['U'] = { CHSS, POP,  ST_API_MUTEX_UNLOCK }, | ||||||
| 		['b'] = { CHSS, PUSH, ST_API_BARRIER_WAIT }, | 		['b'] = { CHSS, PUSH, ST_API_BARRIER_WAIT }, | ||||||
| 		['B'] = { CHSS, POP,  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 */ | 	/* FIXME: Move thread type to another channel, like nanos6 */ | ||||||
| 	['H'] = { | 	['H'] = { | ||||||
|  | |||||||
| @ -44,6 +44,9 @@ enum nosv_ss_values { | |||||||
| 	ST_API_MUTEX_TRYLOCK, | 	ST_API_MUTEX_TRYLOCK, | ||||||
| 	ST_API_MUTEX_UNLOCK, | 	ST_API_MUTEX_UNLOCK, | ||||||
| 	ST_API_BARRIER_WAIT, | 	ST_API_BARRIER_WAIT, | ||||||
|  | 	ST_API_COND_WAIT, | ||||||
|  | 	ST_API_COND_SIGNAL, | ||||||
|  | 	ST_API_COND_BCAST, | ||||||
| 	ST_WORKER, | 	ST_WORKER, | ||||||
| 	ST_DELEGATE, | 	ST_DELEGATE, | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -65,6 +65,9 @@ static struct ev_decl model_evlist[] = { | |||||||
| 	PAIR_E("VAt", "VAT", "nosv_mutex_trylock()") | 	PAIR_E("VAt", "VAT", "nosv_mutex_trylock()") | ||||||
| 	PAIR_E("VAu", "VAU", "nosv_mutex_unlock()") | 	PAIR_E("VAu", "VAU", "nosv_mutex_unlock()") | ||||||
| 	PAIR_E("VAb", "VAB", "nosv_barrier_wait()") | 	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 */ | 	/* FIXME: VHA and VHa are not subsystems */ | ||||||
| 	{ "VHa", "enters nosv_attach()" }, | 	{ "VHa", "enters nosv_attach()" }, | ||||||
| @ -82,7 +85,7 @@ static struct ev_decl model_evlist[] = { | |||||||
| 
 | 
 | ||||||
| struct model_spec model_nosv = { | struct model_spec model_nosv = { | ||||||
| 	.name    = model_name, | 	.name    = model_name, | ||||||
| 	.version = "2.3.0", | 	.version = "2.4.0", | ||||||
| 	.evlist  = model_evlist, | 	.evlist  = model_evlist, | ||||||
| 	.model   = model_id, | 	.model   = model_id, | ||||||
| 	.create  = model_nosv_create, | 	.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_TRYLOCK,"API: Mutex trylock" }, | ||||||
| 	{ ST_API_MUTEX_UNLOCK, "API: Mutex unlock" }, | 	{ ST_API_MUTEX_UNLOCK, "API: Mutex unlock" }, | ||||||
| 	{ ST_API_BARRIER_WAIT, "API: Barrier wait" }, | 	{ 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_WORKER,           "Thread: Worker" }, | ||||||
| 	{ ST_DELEGATE,         "Thread: Delegate" }, | 	{ ST_DELEGATE,         "Thread: Delegate" }, | ||||||
| 	{ EV_SCHED_SEND,       "EV Scheduler: Send task" }, | 	{ EV_SCHED_SEND,       "EV Scheduler: Send task" }, | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user