[
  {
    "evidence": "not evaluated",
    "function": "emb_context",
    "header": "context.h",
    "missing_parameters": [],
    "missing_tags": [],
    "tags": {
      "blocks": "no",
      "config": "",
      "ctx": "thread isr prekernel",
      "owns": "none",
      "req": "API-014 KRN-IRQ-034",
      "since": "0.2",
      "stable": "yes",
      "time": "O(1)"
    },
    "unresolved_requirement_ids": []
  },
  {
    "evidence": "not evaluated",
    "function": "emb_in_isr",
    "header": "context.h",
    "missing_parameters": [],
    "missing_tags": [],
    "tags": {
      "blocks": "no",
      "config": "",
      "ctx": "thread isr prekernel",
      "owns": "none",
      "req": "API-014 KRN-IRQ-002",
      "since": "0.2",
      "stable": "yes",
      "time": "O(1)"
    },
    "unresolved_requirement_ids": []
  },
  {
    "evidence": "not evaluated",
    "function": "emb_fault_set_hook",
    "header": "fault.h",
    "missing_parameters": [],
    "missing_tags": [],
    "tags": {
      "blocks": "no",
      "config": "",
      "ctx": "prekernel thread",
      "owns": "none",
      "req": "API-017",
      "since": "0.2",
      "stable": "yes",
      "time": "O(1)"
    },
    "unresolved_requirement_ids": []
  },
  {
    "evidence": "not evaluated",
    "function": "emb_fault",
    "header": "fault.h",
    "missing_parameters": [],
    "missing_tags": [],
    "tags": {
      "blocks": "no",
      "config": "",
      "ctx": "thread isr prekernel",
      "owns": "none",
      "req": "API-015 API-017",
      "since": "0.2",
      "stable": "yes",
      "time": "O(1) preparation plus trace/hook and the non-returning port action"
    },
    "unresolved_requirement_ids": []
  },
  {
    "evidence": "not evaluated",
    "function": "emb_irq_lock",
    "header": "irq.h",
    "missing_parameters": [],
    "missing_tags": [],
    "tags": {
      "blocks": "no",
      "config": "",
      "ctx": "thread isr prekernel",
      "owns": "none",
      "req": "KRN-IRQ-018 KRN-IRQ-033",
      "since": "0.2",
      "stable": "yes",
      "time": "O(1)"
    },
    "unresolved_requirement_ids": []
  },
  {
    "evidence": "not evaluated",
    "function": "emb_irq_unlock",
    "header": "irq.h",
    "missing_parameters": [],
    "missing_tags": [],
    "tags": {
      "blocks": "no",
      "config": "",
      "ctx": "thread isr prekernel",
      "owns": "none",
      "req": "KRN-IRQ-018 KRN-IRQ-033",
      "since": "0.2",
      "stable": "yes",
      "time": "O(1)"
    },
    "unresolved_requirement_ids": []
  },
  {
    "evidence": "not evaluated",
    "function": "emb_irq_is_locked",
    "header": "irq.h",
    "missing_parameters": [],
    "missing_tags": [],
    "tags": {
      "blocks": "no",
      "config": "",
      "ctx": "thread isr prekernel",
      "owns": "none",
      "req": "KRN-IRQ-018",
      "since": "0.2",
      "stable": "yes",
      "time": "O(1)"
    },
    "unresolved_requirement_ids": []
  },
  {
    "evidence": "not evaluated",
    "function": "emb_irq_nesting_depth",
    "header": "irq.h",
    "missing_parameters": [],
    "missing_tags": [],
    "tags": {
      "blocks": "no",
      "config": "",
      "ctx": "thread isr prekernel",
      "owns": "none",
      "req": "KRN-IRQ-012",
      "since": "0.2",
      "stable": "yes",
      "time": "O(1)"
    },
    "unresolved_requirement_ids": []
  },
  {
    "evidence": "not evaluated",
    "function": "emb_irq_enable",
    "header": "irq.h",
    "missing_parameters": [],
    "missing_tags": [],
    "tags": {
      "blocks": "no",
      "config": "",
      "ctx": "thread isr prekernel",
      "owns": "none",
      "req": "KRN-IRQ-029",
      "since": "0.2",
      "stable": "yes",
      "time": "O(1)"
    },
    "unresolved_requirement_ids": []
  },
  {
    "evidence": "not evaluated",
    "function": "emb_irq_disable",
    "header": "irq.h",
    "missing_parameters": [],
    "missing_tags": [],
    "tags": {
      "blocks": "no",
      "config": "",
      "ctx": "thread isr prekernel",
      "owns": "none",
      "req": "KRN-IRQ-029",
      "since": "0.2",
      "stable": "yes",
      "time": "O(1)"
    },
    "unresolved_requirement_ids": []
  },
  {
    "evidence": "not evaluated",
    "function": "emb_irq_is_enabled",
    "header": "irq.h",
    "missing_parameters": [],
    "missing_tags": [],
    "tags": {
      "blocks": "no",
      "config": "",
      "ctx": "thread isr prekernel",
      "owns": "none",
      "req": "KRN-IRQ-029",
      "since": "0.2",
      "stable": "yes",
      "time": "O(1)"
    },
    "unresolved_requirement_ids": []
  },
  {
    "evidence": "not evaluated",
    "function": "emb_irq_set_level",
    "header": "irq.h",
    "missing_parameters": [],
    "missing_tags": [],
    "tags": {
      "blocks": "no",
      "config": "",
      "ctx": "thread prekernel",
      "owns": "none",
      "req": "KRN-IRQ-028 KRN-IRQ-029",
      "since": "0.2",
      "stable": "yes",
      "time": "O(1)"
    },
    "unresolved_requirement_ids": []
  },
  {
    "evidence": "not evaluated",
    "function": "emb_irq_pend",
    "header": "irq.h",
    "missing_parameters": [],
    "missing_tags": [],
    "tags": {
      "blocks": "no",
      "config": "",
      "ctx": "thread isr prekernel",
      "owns": "none",
      "req": "KRN-IRQ-029",
      "since": "0.2",
      "stable": "yes",
      "time": "O(1)"
    },
    "unresolved_requirement_ids": []
  },
  {
    "evidence": "not evaluated",
    "function": "emb_irq_clear_pending",
    "header": "irq.h",
    "missing_parameters": [],
    "missing_tags": [],
    "tags": {
      "blocks": "no",
      "config": "",
      "ctx": "thread isr prekernel",
      "owns": "none",
      "req": "KRN-IRQ-029",
      "since": "0.2",
      "stable": "yes",
      "time": "O(1)"
    },
    "unresolved_requirement_ids": []
  },
  {
    "evidence": "not evaluated",
    "function": "emb_irq_connect",
    "header": "irq.h",
    "missing_parameters": [],
    "missing_tags": [],
    "tags": {
      "blocks": "no",
      "config": "CONFIG_EMB_IRQ_DYNAMIC",
      "ctx": "thread prekernel",
      "owns": "none",
      "req": "KRN-IRQ-029",
      "since": "0.2",
      "stable": "yes",
      "time": "O(1)"
    },
    "unresolved_requirement_ids": []
  },
  {
    "evidence": "not evaluated",
    "function": "emb_kernel_init",
    "header": "kernel.h",
    "missing_parameters": [],
    "missing_tags": [],
    "tags": {
      "blocks": "no",
      "config": "",
      "ctx": "prekernel",
      "owns": "none",
      "req": "KRN-OBJ-009 KRN-THR-007",
      "since": "0.2",
      "stable": "yes",
      "time": "O(init table)"
    },
    "unresolved_requirement_ids": []
  },
  {
    "evidence": "not evaluated",
    "function": "emb_kernel_start",
    "header": "kernel.h",
    "missing_parameters": [],
    "missing_tags": [],
    "tags": {
      "blocks": "no",
      "config": "",
      "ctx": "prekernel",
      "owns": "none",
      "req": "KRN-IRQ-023 KRN-THR-016",
      "since": "0.2",
      "stable": "yes",
      "time": "O(1)"
    },
    "unresolved_requirement_ids": []
  },
  {
    "evidence": "not evaluated",
    "function": "emb_check_status",
    "header": "kernel.h",
    "missing_parameters": [],
    "missing_tags": [],
    "tags": {
      "blocks": "no",
      "config": "CONFIG_EMB_CHECKED",
      "ctx": "thread isr prekernel",
      "owns": "none",
      "req": "API-015 API-017",
      "since": "0.2",
      "stable": "yes",
      "time": "O(1)"
    },
    "unresolved_requirement_ids": []
  },
  {
    "evidence": "not evaluated",
    "function": "emb_mutex_attr_default",
    "header": "mutex.h",
    "missing_parameters": [],
    "missing_tags": [],
    "tags": {
      "blocks": "no",
      "config": "CONFIG_EMB_MUTEX",
      "ctx": "thread isr prekernel",
      "owns": "none",
      "req": "API-020",
      "since": "0.2",
      "stable": "yes",
      "time": "O(1)"
    },
    "unresolved_requirement_ids": []
  },
  {
    "evidence": "not evaluated",
    "function": "emb_mutex_init",
    "header": "mutex.h",
    "missing_parameters": [],
    "missing_tags": [],
    "tags": {
      "blocks": "no",
      "config": "CONFIG_EMB_MUTEX",
      "ctx": "prekernel thread",
      "owns": "borrows:storage",
      "req": "API-020 API-021 KRN-OBJ-003 KRN-SYNC-003 KRN-SYNC-012",
      "since": "0.2",
      "stable": "yes",
      "time": "O(1)"
    },
    "unresolved_requirement_ids": []
  },
  {
    "evidence": "not evaluated",
    "function": "emb_mutex_destroy",
    "header": "mutex.h",
    "missing_parameters": [],
    "missing_tags": [],
    "tags": {
      "blocks": "no",
      "config": "CONFIG_EMB_MUTEX",
      "ctx": "thread",
      "owns": "gives:storage",
      "req": "KRN-OBJ-001 KRN-OBJ-010",
      "since": "0.2",
      "stable": "yes",
      "time": "O(waiters + owned + PI work), plus profile-specific timeout removals"
    },
    "unresolved_requirement_ids": []
  },
  {
    "evidence": "not evaluated",
    "function": "emb_mutex_lock",
    "header": "mutex.h",
    "missing_parameters": [],
    "missing_tags": [],
    "tags": {
      "blocks": "timeout",
      "config": "CONFIG_EMB_MUTEX",
      "ctx": "thread",
      "owns": "none",
      "req": "KRN-SYNC-003 KRN-SYNC-009 KRN-SYNC-020 KRN-SYNC-023 KRN-SYNC-024 KRN-SYNC-025",
      "since": "0.2",
      "stable": "yes",
      "time": "O(owned) acquisition; O(waiters + PI work + timeouts) finite contended wait"
    },
    "unresolved_requirement_ids": []
  },
  {
    "evidence": "not evaluated",
    "function": "emb_mutex_lock_until",
    "header": "mutex.h",
    "missing_parameters": [],
    "missing_tags": [],
    "tags": {
      "blocks": "timeout",
      "config": "CONFIG_EMB_MUTEX",
      "ctx": "thread",
      "owns": "none",
      "req": "API-024 KRN-TIM-011 KRN-SYNC-020",
      "since": "0.2",
      "stable": "yes",
      "time": "O(owned) acquisition; enqueue/PI/timeout costs as emb_mutex_lock()"
    },
    "unresolved_requirement_ids": []
  },
  {
    "evidence": "not evaluated",
    "function": "emb_mutex_unlock",
    "header": "mutex.h",
    "missing_parameters": [],
    "missing_tags": [],
    "tags": {
      "blocks": "no",
      "config": "CONFIG_EMB_MUTEX",
      "ctx": "thread",
      "owns": "none",
      "req": "KRN-SYNC-008 KRN-SYNC-010 KRN-SYNC-021 KRN-WAIT-012",
      "since": "0.2",
      "stable": "yes",
      "time": "O(owned + PI work), plus waiter hand-off and profile-specific timeout removal"
    },
    "unresolved_requirement_ids": []
  },
  {
    "evidence": "not evaluated",
    "function": "emb_mutex_is_owner",
    "header": "mutex.h",
    "missing_parameters": [],
    "missing_tags": [],
    "tags": {
      "blocks": "no",
      "config": "CONFIG_EMB_MUTEX",
      "ctx": "thread isr",
      "owns": "none",
      "req": "KRN-SYNC-002",
      "since": "0.2",
      "stable": "yes",
      "time": "O(1)"
    },
    "unresolved_requirement_ids": []
  },
  {
    "evidence": "not evaluated",
    "function": "emb_mutex_mark_consistent",
    "header": "mutex.h",
    "missing_parameters": [],
    "missing_tags": [],
    "tags": {
      "blocks": "no",
      "config": "CONFIG_EMB_MUTEX",
      "ctx": "thread",
      "owns": "none",
      "req": "KRN-SYNC-025",
      "since": "0.2",
      "stable": "yes",
      "time": "O(1)"
    },
    "unresolved_requirement_ids": []
  },
  {
    "evidence": "not evaluated",
    "function": "emb_notify_set",
    "header": "notify.h",
    "missing_parameters": [],
    "missing_tags": [],
    "tags": {
      "blocks": "no",
      "config": "CONFIG_EMB_NOTIFY",
      "ctx": "thread isr",
      "owns": "none",
      "req": "KRN-NOTIF-001 KRN-NOTIF-007 KRN-NOTIF-008",
      "since": "0.2",
      "stable": "yes",
      "time": "O(1) bit update, plus profile-specific timeout removal and scheduling"
    },
    "unresolved_requirement_ids": []
  },
  {
    "evidence": "not evaluated",
    "function": "emb_notify_wait",
    "header": "notify.h",
    "missing_parameters": [],
    "missing_tags": [],
    "tags": {
      "blocks": "timeout",
      "config": "CONFIG_EMB_NOTIFY",
      "ctx": "thread",
      "owns": "none",
      "req": "KRN-NOTIF-002 KRN-NOTIF-008",
      "since": "0.2",
      "stable": "yes",
      "time": "O(1) bit test; O(timeouts) finite timeout arm"
    },
    "unresolved_requirement_ids": []
  },
  {
    "evidence": "not evaluated",
    "function": "emb_notify_wait_until",
    "header": "notify.h",
    "missing_parameters": [],
    "missing_tags": [],
    "tags": {
      "blocks": "timeout",
      "config": "CONFIG_EMB_NOTIFY",
      "ctx": "thread",
      "owns": "none",
      "req": "KRN-NOTIF-002 KRN-NOTIF-008 KRN-TIM-011 API-024",
      "since": "0.2",
      "stable": "yes",
      "time": "O(1) bit test; O(timeouts) finite timeout arm"
    },
    "unresolved_requirement_ids": []
  },
  {
    "evidence": "not evaluated",
    "function": "emb_notify_get",
    "header": "notify.h",
    "missing_parameters": [],
    "missing_tags": [],
    "tags": {
      "blocks": "no",
      "config": "CONFIG_EMB_NOTIFY",
      "ctx": "thread",
      "owns": "none",
      "req": "KRN-NOTIF-001",
      "since": "0.2",
      "stable": "yes",
      "time": "O(1)"
    },
    "unresolved_requirement_ids": []
  },
  {
    "evidence": "not evaluated",
    "function": "emb_notify_clear",
    "header": "notify.h",
    "missing_parameters": [],
    "missing_tags": [],
    "tags": {
      "blocks": "no",
      "config": "CONFIG_EMB_NOTIFY",
      "ctx": "thread",
      "owns": "none",
      "req": "KRN-NOTIF-001",
      "since": "0.2",
      "stable": "yes",
      "time": "O(1)"
    },
    "unresolved_requirement_ids": []
  },
  {
    "evidence": "not evaluated",
    "function": "emb_sched_lock",
    "header": "sched.h",
    "missing_parameters": [],
    "missing_tags": [],
    "tags": {
      "blocks": "no",
      "config": "",
      "ctx": "thread",
      "owns": "none",
      "req": "KRN-IRQ-022",
      "since": "0.2",
      "stable": "yes",
      "time": "O(1)"
    },
    "unresolved_requirement_ids": []
  },
  {
    "evidence": "not evaluated",
    "function": "emb_sched_unlock",
    "header": "sched.h",
    "missing_parameters": [],
    "missing_tags": [],
    "tags": {
      "blocks": "no",
      "config": "",
      "ctx": "thread",
      "owns": "none",
      "req": "KRN-IRQ-022",
      "since": "0.2",
      "stable": "yes",
      "time": "O(1), plus one reschedule at depth 0"
    },
    "unresolved_requirement_ids": []
  },
  {
    "evidence": "not evaluated",
    "function": "emb_sched_lock_depth",
    "header": "sched.h",
    "missing_parameters": [],
    "missing_tags": [],
    "tags": {
      "blocks": "no",
      "config": "",
      "ctx": "thread isr",
      "owns": "none",
      "req": "KRN-IRQ-022",
      "since": "0.2",
      "stable": "yes",
      "time": "O(1)"
    },
    "unresolved_requirement_ids": []
  },
  {
    "evidence": "not evaluated",
    "function": "emb_sem_attr_default",
    "header": "sem.h",
    "missing_parameters": [],
    "missing_tags": [],
    "tags": {
      "blocks": "no",
      "config": "CONFIG_EMB_SEM",
      "ctx": "thread isr prekernel",
      "owns": "none",
      "req": "API-020 KRN-SYNC-028",
      "since": "0.2",
      "stable": "yes",
      "time": "O(1)"
    },
    "unresolved_requirement_ids": []
  },
  {
    "evidence": "not evaluated",
    "function": "emb_sem_attr_binary",
    "header": "sem.h",
    "missing_parameters": [],
    "missing_tags": [],
    "tags": {
      "blocks": "no",
      "config": "CONFIG_EMB_SEM",
      "ctx": "thread isr prekernel",
      "owns": "none",
      "req": "API-020 KRN-SYNC-028",
      "since": "0.2",
      "stable": "yes",
      "time": "O(1)"
    },
    "unresolved_requirement_ids": []
  },
  {
    "evidence": "not evaluated",
    "function": "emb_sem_init",
    "header": "sem.h",
    "missing_parameters": [],
    "missing_tags": [],
    "tags": {
      "blocks": "no",
      "config": "CONFIG_EMB_SEM",
      "ctx": "prekernel thread",
      "owns": "borrows:storage",
      "req": "API-021 KRN-SYNC-028 KRN-OBJ-003",
      "since": "0.2",
      "stable": "yes",
      "time": "O(1)"
    },
    "unresolved_requirement_ids": []
  },
  {
    "evidence": "not evaluated",
    "function": "emb_sem_destroy",
    "header": "sem.h",
    "missing_parameters": [],
    "missing_tags": [],
    "tags": {
      "blocks": "no",
      "config": "CONFIG_EMB_SEM",
      "ctx": "thread",
      "owns": "gives:storage",
      "req": "KRN-OBJ-001",
      "since": "0.2",
      "stable": "yes",
      "time": "O(waiters) with EMB_OBJ_ABORT_WAITERS"
    },
    "unresolved_requirement_ids": []
  },
  {
    "evidence": "not evaluated",
    "function": "emb_sem_take",
    "header": "sem.h",
    "missing_parameters": [],
    "missing_tags": [],
    "tags": {
      "blocks": "timeout",
      "config": "CONFIG_EMB_SEM",
      "ctx": "thread",
      "owns": "none",
      "req": "KRN-SYNC-028 KRN-WAIT-012",
      "since": "0.2",
      "stable": "yes",
      "time": "O(1) fast path; O(waiters + timeouts) finite wait enqueue"
    },
    "unresolved_requirement_ids": []
  },
  {
    "evidence": "not evaluated",
    "function": "emb_sem_take_until",
    "header": "sem.h",
    "missing_parameters": [],
    "missing_tags": [],
    "tags": {
      "blocks": "timeout",
      "config": "CONFIG_EMB_SEM",
      "ctx": "thread",
      "owns": "none",
      "req": "API-024 KRN-TIM-011 KRN-SYNC-028",
      "since": "0.2",
      "stable": "yes",
      "time": "O(1) fast path; O(waiters + timeouts) finite wait enqueue"
    },
    "unresolved_requirement_ids": []
  },
  {
    "evidence": "not evaluated",
    "function": "emb_sem_give",
    "header": "sem.h",
    "missing_parameters": [],
    "missing_tags": [],
    "tags": {
      "blocks": "no",
      "config": "CONFIG_EMB_SEM",
      "ctx": "thread isr",
      "owns": "none",
      "req": "KRN-SYNC-005 KRN-SYNC-028 KRN-IRQ-033",
      "since": "0.2",
      "stable": "yes",
      "time": "O(1) count/selection, plus profile-specific timeout removal and scheduling"
    },
    "unresolved_requirement_ids": []
  },
  {
    "evidence": "not evaluated",
    "function": "emb_sem_count",
    "header": "sem.h",
    "missing_parameters": [],
    "missing_tags": [],
    "tags": {
      "blocks": "no",
      "config": "CONFIG_EMB_SEM",
      "ctx": "thread isr",
      "owns": "none",
      "req": "KRN-SYNC-028",
      "since": "0.2",
      "stable": "yes",
      "time": "O(1)"
    },
    "unresolved_requirement_ids": []
  },
  {
    "evidence": "not evaluated",
    "function": "emb_sem_bind_notify",
    "header": "sem.h",
    "missing_parameters": [],
    "missing_tags": [],
    "tags": {
      "blocks": "no",
      "config": "CONFIG_EMB_SEM CONFIG_EMB_NOTIFY",
      "ctx": "prekernel thread",
      "owns": "none",
      "req": "KRN-SYNC-035 KRN-NOTIF-005 KRN-NOTIF-009",
      "since": "0.2",
      "stable": "yes",
      "time": "O(1)"
    },
    "unresolved_requirement_ids": []
  },
  {
    "evidence": "not evaluated",
    "function": "emb_status_name",
    "header": "status.h",
    "missing_parameters": [],
    "missing_tags": [],
    "tags": {
      "blocks": "no",
      "config": "CONFIG_EMB_STATUS_NAMES",
      "ctx": "thread isr prekernel",
      "owns": "none",
      "req": "API-011",
      "since": "0.2",
      "stable": "yes",
      "time": "O(1)"
    },
    "unresolved_requirement_ids": []
  },
  {
    "evidence": "not evaluated",
    "function": "emb_thread_attr_default",
    "header": "thread.h",
    "missing_parameters": [],
    "missing_tags": [],
    "tags": {
      "blocks": "no",
      "config": "",
      "ctx": "thread isr prekernel",
      "owns": "none",
      "req": "API-020",
      "since": "0.2",
      "stable": "yes",
      "time": "O(1)"
    },
    "unresolved_requirement_ids": []
  },
  {
    "evidence": "not evaluated",
    "function": "emb_thread_init",
    "header": "thread.h",
    "missing_parameters": [],
    "missing_tags": [],
    "tags": {
      "blocks": "no",
      "config": "",
      "ctx": "prekernel thread",
      "owns": "borrows:storage borrows:attr->stack",
      "req": "API-021 KRN-THR-004 KRN-THR-007 KRN-THR-015 KRN-THR-023",
      "since": "0.2",
      "stable": "yes",
      "time": "O(1) + stack fill in checked and statistics builds"
    },
    "unresolved_requirement_ids": []
  },
  {
    "evidence": "not evaluated",
    "function": "emb_thread_start",
    "header": "thread.h",
    "missing_parameters": [],
    "missing_tags": [],
    "tags": {
      "blocks": "no",
      "config": "",
      "ctx": "prekernel thread isr",
      "owns": "none",
      "req": "KRN-THR-016 KRN-THR-009",
      "since": "0.2",
      "stable": "yes",
      "time": "O(1)"
    },
    "unresolved_requirement_ids": []
  },
  {
    "evidence": "not evaluated",
    "function": "emb_thread_self",
    "header": "thread.h",
    "missing_parameters": [],
    "missing_tags": [],
    "tags": {
      "blocks": "no",
      "config": "",
      "ctx": "thread",
      "owns": "none",
      "req": "KRN-THR-008",
      "since": "0.2",
      "stable": "yes",
      "time": "O(1)"
    },
    "unresolved_requirement_ids": []
  },
  {
    "evidence": "not evaluated",
    "function": "emb_thread_exit",
    "header": "thread.h",
    "missing_parameters": [],
    "missing_tags": [],
    "tags": {
      "blocks": "no",
      "config": "",
      "ctx": "thread",
      "owns": "none",
      "req": "KRN-THR-005 KRN-THR-006 KRN-THR-017",
      "since": "0.2",
      "stable": "yes",
      "time": "O(owned mutexes)"
    },
    "unresolved_requirement_ids": []
  },
  {
    "evidence": "not evaluated",
    "function": "emb_thread_join",
    "header": "thread.h",
    "missing_parameters": [],
    "missing_tags": [],
    "tags": {
      "blocks": "timeout",
      "config": "",
      "ctx": "thread",
      "owns": "none",
      "req": "KRN-THR-006 KRN-THR-012 KRN-THR-018",
      "since": "0.2",
      "stable": "yes",
      "time": "O(1) state check; O(timeouts) finite timeout arm"
    },
    "unresolved_requirement_ids": []
  },
  {
    "evidence": "not evaluated",
    "function": "emb_thread_detach",
    "header": "thread.h",
    "missing_parameters": [],
    "missing_tags": [],
    "tags": {
      "blocks": "no",
      "config": "",
      "ctx": "thread isr",
      "owns": "none",
      "req": "KRN-THR-019",
      "since": "0.2",
      "stable": "yes",
      "time": "O(1)"
    },
    "unresolved_requirement_ids": []
  },
  {
    "evidence": "not evaluated",
    "function": "emb_thread_suspend",
    "header": "thread.h",
    "missing_parameters": [],
    "missing_tags": [],
    "tags": {
      "blocks": "no",
      "config": "",
      "ctx": "thread",
      "owns": "none",
      "req": "KRN-THR-010 KRN-THR-020",
      "since": "0.2",
      "stable": "yes",
      "time": "O(1)"
    },
    "unresolved_requirement_ids": []
  },
  {
    "evidence": "not evaluated",
    "function": "emb_thread_resume",
    "header": "thread.h",
    "missing_parameters": [],
    "missing_tags": [],
    "tags": {
      "blocks": "no",
      "config": "",
      "ctx": "thread isr",
      "owns": "none",
      "req": "KRN-THR-010 KRN-THR-020",
      "since": "0.2",
      "stable": "yes",
      "time": "O(1)"
    },
    "unresolved_requirement_ids": []
  },
  {
    "evidence": "not evaluated",
    "function": "emb_thread_cancel",
    "header": "thread.h",
    "missing_parameters": [],
    "missing_tags": [],
    "tags": {
      "blocks": "no",
      "config": "",
      "ctx": "thread isr",
      "owns": "none",
      "req": "KRN-THR-011 KRN-THR-021",
      "since": "0.2",
      "stable": "yes",
      "time": "O(1)"
    },
    "unresolved_requirement_ids": []
  },
  {
    "evidence": "not evaluated",
    "function": "emb_thread_cancel_point",
    "header": "thread.h",
    "missing_parameters": [],
    "missing_tags": [],
    "tags": {
      "blocks": "no",
      "config": "",
      "ctx": "thread",
      "owns": "none",
      "req": "KRN-THR-011 KRN-THR-021",
      "since": "0.2",
      "stable": "yes",
      "time": "O(1)"
    },
    "unresolved_requirement_ids": []
  },
  {
    "evidence": "not evaluated",
    "function": "emb_thread_cancel_disable",
    "header": "thread.h",
    "missing_parameters": [],
    "missing_tags": [],
    "tags": {
      "blocks": "no",
      "config": "",
      "ctx": "thread",
      "owns": "none",
      "req": "KRN-THR-021",
      "since": "0.2",
      "stable": "yes",
      "time": "O(1)"
    },
    "unresolved_requirement_ids": []
  },
  {
    "evidence": "not evaluated",
    "function": "emb_thread_cancel_enable",
    "header": "thread.h",
    "missing_parameters": [],
    "missing_tags": [],
    "tags": {
      "blocks": "no",
      "config": "",
      "ctx": "thread",
      "owns": "none",
      "req": "KRN-THR-021",
      "since": "0.2",
      "stable": "yes",
      "time": "O(1)"
    },
    "unresolved_requirement_ids": []
  },
  {
    "evidence": "not evaluated",
    "function": "emb_thread_set_priority",
    "header": "thread.h",
    "missing_parameters": [],
    "missing_tags": [],
    "tags": {
      "blocks": "no",
      "config": "",
      "ctx": "thread",
      "owns": "none",
      "req": "KRN-THR-022 KRN-SYNC-032",
      "since": "0.2",
      "stable": "yes",
      "time": "O(PI work), plus waiter requeue and profile-specific scheduling"
    },
    "unresolved_requirement_ids": []
  },
  {
    "evidence": "not evaluated",
    "function": "emb_thread_get_priority",
    "header": "thread.h",
    "missing_parameters": [],
    "missing_tags": [],
    "tags": {
      "blocks": "no",
      "config": "",
      "ctx": "thread isr",
      "owns": "none",
      "req": "KRN-THR-022",
      "since": "0.2",
      "stable": "yes",
      "time": "O(1)"
    },
    "unresolved_requirement_ids": []
  },
  {
    "evidence": "not evaluated",
    "function": "emb_thread_get_effective_priority",
    "header": "thread.h",
    "missing_parameters": [],
    "missing_tags": [],
    "tags": {
      "blocks": "no",
      "config": "",
      "ctx": "thread isr",
      "owns": "none",
      "req": "KRN-THR-022 KRN-SYNC-018",
      "since": "0.2",
      "stable": "yes",
      "time": "O(1)"
    },
    "unresolved_requirement_ids": []
  },
  {
    "evidence": "not evaluated",
    "function": "emb_thread_yield",
    "header": "thread.h",
    "missing_parameters": [],
    "missing_tags": [],
    "tags": {
      "blocks": "no",
      "config": "",
      "ctx": "thread",
      "owns": "none",
      "req": "KRN-TIM-024 KRN-IRQ-022",
      "since": "0.2",
      "stable": "yes",
      "time": "O(1)"
    },
    "unresolved_requirement_ids": []
  },
  {
    "evidence": "not evaluated",
    "function": "emb_thread_sleep",
    "header": "thread.h",
    "missing_parameters": [],
    "missing_tags": [],
    "tags": {
      "blocks": "timeout",
      "config": "",
      "ctx": "thread",
      "owns": "none",
      "req": "KRN-TIM-024",
      "since": "0.2",
      "stable": "yes",
      "time": "O(timeouts) arm"
    },
    "unresolved_requirement_ids": []
  },
  {
    "evidence": "not evaluated",
    "function": "emb_thread_sleep_until",
    "header": "thread.h",
    "missing_parameters": [],
    "missing_tags": [],
    "tags": {
      "blocks": "timeout",
      "config": "",
      "ctx": "thread",
      "owns": "none",
      "req": "KRN-TIM-011 KRN-TIM-022",
      "since": "0.2",
      "stable": "yes",
      "time": "O(timeouts) arm"
    },
    "unresolved_requirement_ids": []
  },
  {
    "evidence": "not evaluated",
    "function": "emb_thread_state",
    "header": "thread.h",
    "missing_parameters": [],
    "missing_tags": [],
    "tags": {
      "blocks": "no",
      "config": "",
      "ctx": "thread isr",
      "owns": "none",
      "req": "KRN-THR-025",
      "since": "0.2",
      "stable": "yes",
      "time": "O(1)"
    },
    "unresolved_requirement_ids": []
  },
  {
    "evidence": "not evaluated",
    "function": "emb_thread_name",
    "header": "thread.h",
    "missing_parameters": [],
    "missing_tags": [],
    "tags": {
      "blocks": "no",
      "config": "",
      "ctx": "thread isr",
      "owns": "none",
      "req": "KRN-THR-025",
      "since": "0.2",
      "stable": "yes",
      "time": "O(1)"
    },
    "unresolved_requirement_ids": []
  },
  {
    "evidence": "not evaluated",
    "function": "emb_thread_index",
    "header": "thread.h",
    "missing_parameters": [],
    "missing_tags": [],
    "tags": {
      "blocks": "no",
      "config": "",
      "ctx": "thread isr",
      "owns": "none",
      "req": "KRN-THR-025 KRN-THR-029",
      "since": "0.2",
      "stable": "yes",
      "time": "O(1)"
    },
    "unresolved_requirement_ids": []
  },
  {
    "evidence": "not evaluated",
    "function": "emb_thread_stack_info",
    "header": "thread.h",
    "missing_parameters": [],
    "missing_tags": [],
    "tags": {
      "blocks": "no",
      "config": "",
      "ctx": "thread",
      "owns": "none",
      "req": "KRN-THR-023 KRN-THR-025",
      "since": "0.2",
      "stable": "yes",
      "time": "O(stack) scan with statistics on"
    },
    "unresolved_requirement_ids": []
  },
  {
    "evidence": "not evaluated",
    "function": "emb_tls_set",
    "header": "thread.h",
    "missing_parameters": [],
    "missing_tags": [],
    "tags": {
      "blocks": "no",
      "config": "CONFIG_EMB_TLS_SLOTS",
      "ctx": "thread",
      "owns": "none",
      "req": "KRN-THR-013",
      "since": "0.2",
      "stable": "yes",
      "time": "O(1)"
    },
    "unresolved_requirement_ids": []
  },
  {
    "evidence": "not evaluated",
    "function": "emb_tls_get",
    "header": "thread.h",
    "missing_parameters": [],
    "missing_tags": [],
    "tags": {
      "blocks": "no",
      "config": "CONFIG_EMB_TLS_SLOTS",
      "ctx": "thread",
      "owns": "none",
      "req": "KRN-THR-013",
      "since": "0.2",
      "stable": "yes",
      "time": "O(1)"
    },
    "unresolved_requirement_ids": []
  },
  {
    "evidence": "not evaluated",
    "function": "emb_thread_foreach",
    "header": "thread.h",
    "missing_parameters": [],
    "missing_tags": [],
    "tags": {
      "blocks": "no",
      "config": "CONFIG_EMB_THREAD_LIST",
      "ctx": "thread",
      "owns": "none",
      "req": "KRN-THR-025",
      "since": "0.2",
      "stable": "yes",
      "time": "O(threads) plus callback costs and any reschedule at final unlock"
    },
    "unresolved_requirement_ids": []
  },
  {
    "evidence": "not evaluated",
    "function": "emb_thread_destroy",
    "header": "thread.h",
    "missing_parameters": [],
    "missing_tags": [],
    "tags": {
      "blocks": "no",
      "config": "",
      "ctx": "thread",
      "owns": "gives:storage",
      "req": "KRN-OBJ-001 KRN-THR-024",
      "since": "0.2",
      "stable": "yes",
      "time": "O(1)"
    },
    "unresolved_requirement_ids": []
  },
  {
    "evidence": "not evaluated",
    "function": "emb_mul_sat_u64",
    "header": "time.h",
    "missing_parameters": [],
    "missing_tags": [],
    "tags": {
      "blocks": "no",
      "config": "",
      "ctx": "thread isr prekernel",
      "owns": "none",
      "req": "API-023",
      "since": "0.2",
      "stable": "yes",
      "time": "O(1)"
    },
    "unresolved_requirement_ids": []
  },
  {
    "evidence": "not evaluated",
    "function": "emb_ns_to_ticks",
    "header": "time.h",
    "missing_parameters": [],
    "missing_tags": [],
    "tags": {
      "blocks": "no",
      "config": "",
      "ctx": "thread isr prekernel",
      "owns": "none",
      "req": "API-023 KRN-TIM-007",
      "since": "0.2",
      "stable": "yes",
      "time": "O(1)"
    },
    "unresolved_requirement_ids": []
  },
  {
    "evidence": "not evaluated",
    "function": "emb_time_now",
    "header": "time.h",
    "missing_parameters": [],
    "missing_tags": [],
    "tags": {
      "blocks": "no",
      "config": "",
      "ctx": "thread isr prekernel",
      "owns": "none",
      "req": "KRN-TIM-001 KRN-TIM-032",
      "since": "0.2",
      "stable": "yes",
      "time": "O(1)"
    },
    "unresolved_requirement_ids": []
  },
  {
    "evidence": "not evaluated",
    "function": "emb_timeout_from_duration",
    "header": "time.h",
    "missing_parameters": [],
    "missing_tags": [],
    "tags": {
      "blocks": "no",
      "config": "",
      "ctx": "thread isr prekernel",
      "owns": "none",
      "req": "API-023 KRN-TIM-022",
      "since": "0.2",
      "stable": "yes",
      "time": "O(1)"
    },
    "unresolved_requirement_ids": []
  },
  {
    "evidence": "not evaluated",
    "function": "emb_instant_add",
    "header": "time.h",
    "missing_parameters": [],
    "missing_tags": [],
    "tags": {
      "blocks": "no",
      "config": "",
      "ctx": "thread isr prekernel",
      "owns": "none",
      "req": "API-022 API-023 KRN-TIM-022",
      "since": "0.2",
      "stable": "yes",
      "time": "O(1)"
    },
    "unresolved_requirement_ids": []
  },
  {
    "evidence": "not evaluated",
    "function": "emb_instant_sub",
    "header": "time.h",
    "missing_parameters": [],
    "missing_tags": [],
    "tags": {
      "blocks": "no",
      "config": "",
      "ctx": "thread isr prekernel",
      "owns": "none",
      "req": "API-022 KRN-TIM-003",
      "since": "0.2",
      "stable": "yes",
      "time": "O(1)"
    },
    "unresolved_requirement_ids": []
  },
  {
    "evidence": "not evaluated",
    "function": "emb_instant_before",
    "header": "time.h",
    "missing_parameters": [],
    "missing_tags": [],
    "tags": {
      "blocks": "no",
      "config": "",
      "ctx": "thread isr prekernel",
      "owns": "none",
      "req": "API-022 KRN-TIM-003 KRN-TIM-022",
      "since": "0.2",
      "stable": "yes",
      "time": "O(1)"
    },
    "unresolved_requirement_ids": []
  },
  {
    "evidence": "not evaluated",
    "function": "emb_duration_to_ns",
    "header": "time.h",
    "missing_parameters": [],
    "missing_tags": [],
    "tags": {
      "blocks": "no",
      "config": "",
      "ctx": "thread isr prekernel",
      "owns": "none",
      "req": "API-023",
      "since": "0.2",
      "stable": "yes",
      "time": "O(1)"
    },
    "unresolved_requirement_ids": []
  },
  {
    "evidence": "not evaluated",
    "function": "emb_duration_is_saturated",
    "header": "time.h",
    "missing_parameters": [],
    "missing_tags": [],
    "tags": {
      "blocks": "no",
      "config": "",
      "ctx": "thread isr prekernel",
      "owns": "none",
      "req": "API-023",
      "since": "0.2",
      "stable": "yes",
      "time": "O(1)"
    },
    "unresolved_requirement_ids": []
  },
  {
    "evidence": "not evaluated",
    "function": "emb_trace_set_sink",
    "header": "trace.h",
    "missing_parameters": [],
    "missing_tags": [],
    "tags": {
      "blocks": "no",
      "config": "CONFIG_EMB_TRACE",
      "ctx": "prekernel thread",
      "owns": "none",
      "req": "OBS-014",
      "since": "0.2",
      "stable": "experimental",
      "time": "O(1)"
    },
    "unresolved_requirement_ids": []
  },
  {
    "evidence": "not evaluated",
    "function": "emb_version_string",
    "header": "version.h",
    "missing_parameters": [],
    "missing_tags": [],
    "tags": {
      "blocks": "no",
      "config": "",
      "ctx": "thread isr prekernel",
      "owns": "none",
      "req": "API-030",
      "since": "0.2",
      "stable": "yes",
      "time": "O(1)"
    },
    "unresolved_requirement_ids": []
  }
]
