Searched refs:hwt (Results 1 - 8 of 8) sorted by relevance

/linux-4.1.27/arch/tile/kernel/
H A Dhardwall.c162 #define mtspr_XDN(hwt, name, val) \
163 do { (void)(hwt); __insn_mtspr(SPR_UDN_##name, (val)); } while (0)
164 #define mtspr_MPL_XDN(hwt, name, val) \
165 do { (void)(hwt); __insn_mtspr(SPR_MPL_UDN_##name, (val)); } while (0)
166 #define mfspr_XDN(hwt, name) \
167 ((void)(hwt), __insn_mfspr(SPR_UDN_##name))
169 #define mtspr_XDN(hwt, name, val) \
171 if ((hwt)->is_idn) \
176 #define mtspr_MPL_XDN(hwt, name, val) \
178 if ((hwt)->is_idn) \
183 #define mfspr_XDN(hwt, name) \
184 ((hwt)->is_idn ? __insn_mfspr(SPR_IDN_##name) : __insn_mfspr(SPR_UDN_##name))
250 static inline int xdn_which_interrupt(struct hardwall_type *hwt) xdn_which_interrupt() argument
253 if (hwt->is_idn) xdn_which_interrupt()
259 static void enable_firewall_interrupts(struct hardwall_type *hwt) enable_firewall_interrupts() argument
261 arch_local_irq_unmask_now(xdn_which_interrupt(hwt)); enable_firewall_interrupts()
264 static void disable_firewall_interrupts(struct hardwall_type *hwt) disable_firewall_interrupts() argument
266 arch_local_irq_mask_now(xdn_which_interrupt(hwt)); disable_firewall_interrupts()
273 struct hardwall_type *hwt = r->type; hardwall_setup_func() local
288 mtspr_XDN(hwt, DIRECTION_PROTECT, bits); hardwall_setup_func()
289 enable_firewall_interrupts(hwt); hardwall_setup_func()
324 struct hardwall_type *hwt; do_hardwall_trap() local
337 hwt = &hardwall_types[HARDWALL_IDN]; do_hardwall_trap()
341 hwt = &hardwall_types[HARDWALL_UDN]; do_hardwall_trap()
346 BUG_ON(hwt->disabled); do_hardwall_trap()
349 spin_lock(&hwt->lock); do_hardwall_trap()
350 list_for_each_entry(rect, &hwt->list, list) { do_hardwall_trap()
360 BUG_ON(&rect->list == &hwt->list); do_hardwall_trap()
369 cpu, hwt->name, do_hardwall_trap()
370 (long)mfspr_XDN(hwt, DIRECTION_PROTECT)); do_hardwall_trap()
385 cpu, hwt->name, (long)mfspr_XDN(hwt, DIRECTION_PROTECT)); do_hardwall_trap()
391 thread.hardwall[hwt->index].list) { do_hardwall_trap()
392 BUG_ON(p->thread.hardwall[hwt->index].info != rect); do_hardwall_trap()
403 spin_unlock(&hwt->lock); do_hardwall_trap()
412 disable_firewall_interrupts(hwt); do_hardwall_trap()
419 void grant_hardwall_mpls(struct hardwall_type *hwt) grant_hardwall_mpls() argument
422 if (!hwt->is_xdn) { grant_hardwall_mpls()
427 mtspr_MPL_XDN(hwt, ACCESS_SET_0, 1); grant_hardwall_mpls()
428 mtspr_MPL_XDN(hwt, AVAIL_SET_0, 1); grant_hardwall_mpls()
429 mtspr_MPL_XDN(hwt, COMPLETE_SET_0, 1); grant_hardwall_mpls()
430 mtspr_MPL_XDN(hwt, TIMER_SET_0, 1); grant_hardwall_mpls()
432 mtspr_MPL_XDN(hwt, REFILL_SET_0, 1); grant_hardwall_mpls()
433 mtspr_MPL_XDN(hwt, CA_SET_0, 1); grant_hardwall_mpls()
438 void restrict_hardwall_mpls(struct hardwall_type *hwt) restrict_hardwall_mpls() argument
441 if (!hwt->is_xdn) { restrict_hardwall_mpls()
446 mtspr_MPL_XDN(hwt, ACCESS_SET_1, 1); restrict_hardwall_mpls()
447 mtspr_MPL_XDN(hwt, AVAIL_SET_1, 1); restrict_hardwall_mpls()
448 mtspr_MPL_XDN(hwt, COMPLETE_SET_1, 1); restrict_hardwall_mpls()
449 mtspr_MPL_XDN(hwt, TIMER_SET_1, 1); restrict_hardwall_mpls()
451 mtspr_MPL_XDN(hwt, REFILL_SET_1, 1); restrict_hardwall_mpls()
452 mtspr_MPL_XDN(hwt, CA_SET_1, 1); restrict_hardwall_mpls()
488 static struct hardwall_info *hardwall_create(struct hardwall_type *hwt, hardwall_create() argument
529 info->type = hwt; hardwall_create()
534 if (hwt->is_xdn) { hardwall_create()
551 spin_lock_irqsave(&hwt->lock, flags); hardwall_create()
552 list_for_each_entry(iter, &hwt->list, list) { hardwall_create()
554 spin_unlock_irqrestore(&hwt->lock, flags); hardwall_create()
559 list_add_tail(&info->list, &hwt->list); hardwall_create()
560 spin_unlock_irqrestore(&hwt->lock, flags); hardwall_create()
563 if (hwt->is_xdn) hardwall_create()
579 struct hardwall_type *hwt; hardwall_activate() local
603 hwt = info->type; hardwall_activate()
604 if (ts->hardwall[hwt->index].info) { hardwall_activate()
605 BUG_ON(ts->hardwall[hwt->index].info != info); hardwall_activate()
610 ts->hardwall[hwt->index].info = info; hardwall_activate()
611 spin_lock_irqsave(&hwt->lock, flags); hardwall_activate()
612 list_add(&ts->hardwall[hwt->index].list, &info->task_head); hardwall_activate()
613 spin_unlock_irqrestore(&hwt->lock, flags); hardwall_activate()
614 grant_hardwall_mpls(hwt); hardwall_activate()
616 p->pid, p->comm, hwt->name, cpu); hardwall_activate()
626 static void _hardwall_deactivate(struct hardwall_type *hwt, _hardwall_deactivate() argument
633 task->pid, task->comm, hwt->name, _hardwall_deactivate()
638 BUG_ON(ts->hardwall[hwt->index].info == NULL); _hardwall_deactivate()
639 ts->hardwall[hwt->index].info = NULL; _hardwall_deactivate()
640 list_del(&ts->hardwall[hwt->index].list); _hardwall_deactivate()
642 restrict_hardwall_mpls(hwt); _hardwall_deactivate()
646 static int hardwall_deactivate(struct hardwall_type *hwt, hardwall_deactivate() argument
652 spin_lock_irqsave(&hwt->lock, flags); hardwall_deactivate()
653 activated = (task->thread.hardwall[hwt->index].info != NULL); hardwall_deactivate()
655 _hardwall_deactivate(hwt, task); hardwall_deactivate()
656 spin_unlock_irqrestore(&hwt->lock, flags); hardwall_deactivate()
662 task->pid, task->comm, hwt->name, raw_smp_processor_id()); hardwall_deactivate()
695 struct hardwall_type *hwt = arg; stop_xdn_switch()
696 unsigned long protect = mfspr_XDN(hwt, DIRECTION_PROTECT); stop_xdn_switch()
697 mtspr_XDN(hwt, DIRECTION_PROTECT, (protect | C_PROTECT) << 5); stop_xdn_switch()
701 static void empty_xdn_demuxes(struct hardwall_type *hwt) empty_xdn_demuxes() argument
704 if (hwt->is_idn) { empty_xdn_demuxes()
726 struct hardwall_type *hwt = info->type; drain_xdn_switch() local
736 int pending = mfspr_XDN(hwt, PENDING); drain_xdn_switch()
738 empty_xdn_demuxes(hwt); drain_xdn_switch()
739 if (hwt->is_idn) drain_xdn_switch()
746 empty_xdn_demuxes(hwt); drain_xdn_switch()
767 empty_xdn_demuxes(hwt); drain_xdn_switch()
790 static void reset_xdn_network_state(struct hardwall_type *hwt) reset_xdn_network_state() argument
792 if (hwt->disabled) reset_xdn_network_state()
796 mtspr_XDN(hwt, DIRECTION_PROTECT, 0); reset_xdn_network_state()
797 mtspr_XDN(hwt, AVAIL_EN, 0); reset_xdn_network_state()
798 mtspr_XDN(hwt, DEADLOCK_TIMEOUT, 0); reset_xdn_network_state()
837 struct hardwall_type *hwt = arg; restart_xdn_switch() local
841 empty_xdn_demuxes(hwt); restart_xdn_switch()
844 reset_xdn_network_state(hwt); restart_xdn_switch()
847 disable_firewall_interrupts(hwt); restart_xdn_switch()
854 struct hardwall_type *hwt; hardwall_destroy() local
868 hwt = info->type; hardwall_destroy()
870 spin_lock_irqsave(&hwt->lock, flags); hardwall_destroy()
872 thread.hardwall[hwt->index].list) hardwall_destroy()
873 _hardwall_deactivate(hwt, task); hardwall_destroy()
874 spin_unlock_irqrestore(&hwt->lock, flags); hardwall_destroy()
876 if (hwt->is_xdn) { hardwall_destroy()
880 hwt->name, info->width, info->height, hardwall_destroy()
882 on_each_cpu_mask(&info->cpumask, stop_xdn_switch, hwt, 1); hardwall_destroy()
894 on_each_cpu_mask(&info->cpumask, restart_xdn_switch, hwt, 1); hardwall_destroy()
901 spin_lock_irqsave(&hwt->lock, flags); hardwall_destroy()
904 spin_unlock_irqrestore(&hwt->lock, flags); hardwall_destroy()
962 struct hardwall_type *hwt = &hardwall_types[i]; proc_tile_hardwall_init() local
963 if (hwt->disabled) proc_tile_hardwall_init()
967 hwt->proc_dir = proc_mkdir(hwt->name, hardwall_proc_dir); proc_tile_hardwall_init()
980 struct hardwall_type* hwt; hardwall_ioctl() local
991 hwt = &hardwall_types[minor]; hardwall_ioctl()
992 WARN_ON(info && hwt != info->type); hardwall_ioctl()
996 if (hwt->disabled) hardwall_ioctl()
1000 info = hardwall_create(hwt, _IOC_SIZE(a), hardwall_ioctl()
1011 if (current->thread.hardwall[hwt->index].info != info) hardwall_ioctl()
1013 return hardwall_deactivate(hwt, current); hardwall_ioctl()
1049 struct hardwall_type *hwt = info->type; hardwall_flush() local
1050 spin_lock_irqsave(&hwt->lock, flags); hardwall_flush()
1052 thread.hardwall[hwt->index].list) { hardwall_flush()
1054 _hardwall_deactivate(hwt, task); hardwall_flush()
1056 spin_unlock_irqrestore(&hwt->lock, flags); hardwall_flush()
/linux-4.1.27/drivers/net/fddi/skfp/
H A DMakefile9 smtdef.o smtinit.o smttimer.o srf.o hwt.o \
H A Dhwt.c35 static const char ID_sccs[] = "@(#)hwt.c 1.13 97/04/23 (C) SK " ;
/linux-4.1.27/arch/mips/include/asm/netlogic/xlr/
H A Dpic.h241 nlm_pic_send_ipi(uint64_t base, int hwt, int irq, int nmi) nlm_pic_send_ipi() argument
245 tid = hwt & 0x3; nlm_pic_send_ipi()
246 pid = (hwt >> 2) & 0x07; nlm_pic_send_ipi()
258 nlm_pic_init_irt(uint64_t base, int irt, int irq, int hwt, int en) nlm_pic_init_irt() argument
260 nlm_write_reg(base, PIC_IRT_0(irt), (1u << hwt)); nlm_pic_init_irt()
/linux-4.1.27/arch/mips/include/asm/netlogic/xlp-hal/
H A Dpic.h333 nlm_pic_send_ipi(uint64_t base, int hwt, int irq, int nmi) nlm_pic_send_ipi() argument
339 (0/*mcm*/ << 20) | (0/*ptr*/ << 16) | hwt; nlm_pic_send_ipi()
342 ((hwt >> 4) << 16) | (1 << (hwt & 0xf)); nlm_pic_send_ipi()
358 nlm_pic_init_irt(uint64_t base, int irt, int irq, int hwt, int en) nlm_pic_init_irt() argument
360 nlm_pic_write_irt_direct(base, irt, en, 0, 0, irq, hwt); nlm_pic_init_irt()
/linux-4.1.27/drivers/net/fddi/skfp/h/
H A Dtargethw.h100 * hwt.c
H A Dcmtdef.h483 void hwt_restart(struct s_smc *smc); /* hwt.c */
/linux-4.1.27/arch/mips/oprofile/
H A Dop_model_mipsxx.c44 * Skip CPUs with non-zero hardware thread id (4 hwt per core)

Completed in 211 milliseconds