Lines Matching refs:flags
178 if (!(vd->flags & VECDESC_FL_SHARED)) { in find_desc_for_source()
230 vd->flags = VECDESC_FL_SHARED; in esp_intr_mark_shared()
232 vd->flags |= VECDESC_FL_INIRAM; in esp_intr_mark_shared()
255 vd->flags = VECDESC_FL_RESERVED; in esp_intr_reserve()
271 static bool is_vect_desc_usable(struct vector_desc_t *vd, int flags, int cpu, int force) in is_vect_desc_usable() argument
279 if (intr_desc.flags & ESP_CPU_INTR_DESC_FLAG_RESVD) { in is_vect_desc_usable()
283 if (intr_desc.flags & ESP_CPU_INTR_DESC_FLAG_SPECIAL && force == -1) { in is_vect_desc_usable()
290 if (!(flags & (1 << intr_desc.priority))) { in is_vect_desc_usable()
295 if (((flags & ESP_INTR_FLAG_EDGE) && (intr_desc.type == ESP_CPU_INTR_TYPE_LEVEL)) || in is_vect_desc_usable()
296 (((!(flags & ESP_INTR_FLAG_EDGE)) && (intr_desc.type == ESP_CPU_INTR_TYPE_EDGE)))) { in is_vect_desc_usable()
303 if (vd->flags & VECDESC_FL_RESERVED) { in is_vect_desc_usable()
309 assert(!((vd->flags & VECDESC_FL_SHARED) && (vd->flags & VECDESC_FL_NONSHARED))); in is_vect_desc_usable()
311 if (vd->flags & VECDESC_FL_NONSHARED) { in is_vect_desc_usable()
316 if (vd->flags & VECDESC_FL_SHARED) { in is_vect_desc_usable()
317 if (flags & ESP_INTR_FLAG_SHARED) { in is_vect_desc_usable()
318 bool in_iram_flag = ((flags & ESP_INTR_FLAG_IRAM) != 0); in is_vect_desc_usable()
319 bool desc_in_iram_flag = ((vd->flags & VECDESC_FL_INIRAM) != 0); in is_vect_desc_usable()
324 if ((vd->flags & VECDESC_FL_SHARED) && in is_vect_desc_usable()
351 static int get_available_int(int flags, int cpu, int force, int source) in get_available_int() argument
363 if (!(flags & ESP_INTR_FLAG_LEVELMASK)) { in get_available_int()
364 flags |= ESP_INTR_FLAG_LOWMED; in get_available_int()
376 } else if (!is_vect_desc_usable(vd, flags, cpu, force)) { in get_available_int()
393 if (is_vect_desc_usable(vd, flags, cpu, force)) { in get_available_int()
416 x, intr_desc.flags & ESP_CPU_INTR_DESC_FLAG_RESVD, in get_available_int()
421 if (!is_vect_desc_usable(vd, flags, cpu, force)) { in get_available_int()
425 if (flags & ESP_INTR_FLAG_SHARED) { in get_available_int()
429 if (vd->flags & VECDESC_FL_SHARED) { in get_available_int()
514 int flags, in esp_intr_alloc_intrstatus() argument
526 if ((flags & ESP_INTR_FLAG_SHARED) && (flags & ESP_INTR_FLAG_EDGE)) { in esp_intr_alloc_intrstatus()
530 if ((flags & ESP_INTR_FLAG_HIGH) && (handler)) { in esp_intr_alloc_intrstatus()
534 if ((flags & ESP_INTR_FLAG_SHARED) && (!handler || source < 0)) { in esp_intr_alloc_intrstatus()
547 if ((flags & ESP_INTR_FLAG_IRAM) && handler && !esp_ptr_in_iram(handler) && in esp_intr_alloc_intrstatus()
556 if ((flags & ESP_INTR_FLAG_LEVELMASK) == 0) { in esp_intr_alloc_intrstatus()
557 if (flags & ESP_INTR_FLAG_SHARED) { in esp_intr_alloc_intrstatus()
558 flags |= ESP_INTR_FLAG_LEVEL1; in esp_intr_alloc_intrstatus()
560 flags |= ESP_INTR_FLAG_LOWMED; in esp_intr_alloc_intrstatus()
564 "Resulting flags 0x%X", __func__, esp_cpu_get_core_id(), flags); in esp_intr_alloc_intrstatus()
602 int intr = get_available_int(flags, cpu, force, source); in esp_intr_alloc_intrstatus()
620 if (flags & ESP_INTR_FLAG_SHARED) { in esp_intr_alloc_intrstatus()
638 vd->flags |= VECDESC_FL_SHARED; in esp_intr_alloc_intrstatus()
643 vd->flags = VECDESC_FL_NONSHARED; in esp_intr_alloc_intrstatus()
647 if (flags & ESP_INTR_FLAG_EDGE) { in esp_intr_alloc_intrstatus()
652 if (flags & ESP_INTR_FLAG_IRAM) { in esp_intr_alloc_intrstatus()
653 vd->flags |= VECDESC_FL_INIRAM; in esp_intr_alloc_intrstatus()
656 vd->flags &= ~VECDESC_FL_INIRAM; in esp_intr_alloc_intrstatus()
674 if (flags & ESP_INTR_FLAG_INTRDISABLED) { in esp_intr_alloc_intrstatus()
680 int level = esp_intr_flags_to_level(flags); in esp_intr_alloc_intrstatus()
684 if (flags & ESP_INTR_FLAG_EDGE) { in esp_intr_alloc_intrstatus()
705 int flags, in esp_intr_alloc() argument
715 return esp_intr_alloc_intrstatus(source, flags, 0, 0, handler, arg, ret_handle); in esp_intr_alloc()
725 if (vd->flags & VECDESC_FL_SHARED) { in esp_intr_set_in_iram()
732 vd->flags |= VECDESC_FL_INIRAM; in esp_intr_set_in_iram()
735 vd->flags &= ~VECDESC_FL_INIRAM; in esp_intr_set_in_iram()
752 if (handle->vector_desc->flags & VECDESC_FL_SHARED) { in esp_intr_free()
781 if ((handle->vector_desc->flags & VECDESC_FL_NONSHARED) || free_shared_vector) { in esp_intr_free()
792 handle->vector_desc->flags &= ~(VECDESC_FL_NONSHARED | in esp_intr_free()