\c@sddlZddlZdZdZdZdZdZeedZdZxeD]Z ed e >BZq_We ej d kse e ej d dkrej jd ejjej dejd nej d Zejjd ZxveD]nZ ej d dkr;ed ee >BZq ej d dksaej d dkr ed ee >@Zq q Wej d dkreeneeZeeddZejeejgejeD]-Zejjejjeere^qZyej dWne!k r:nXyej dWne!k r_nXdZ"x+eD]#Z ee dZ#ee#ZdZxeD]Z$ed e$>BZqWxceD][Z$ej d dkred ee$>BZqej d dkred ee$>@ZqqWeeZy*ee#dZejeejWqme%k rZ&ej jde e e e&fd Z"qmXqmWeje"dS(iNs /proc/irq/cCs|jjd}g}d}xxtt|dddD]Z}t||d}x>|dkr|d@r|j|n|dL}|d7}qZWq>W|S(Nt,iiii(tstriptsplittrangetlentinttappend(tlinetfieldst bitmasklisttentrytitmask((s$/usr/libexec/tuned/defirqaffinity.pyR s#  cCsg}d}xX|rfd}|d@}|d|7}|rF|d7}nd}|dL}|j|qWd}xt|D]}||7}qzW|S(NitIs%xRii (Rtreversed(R tgroupstcommat cpumaskstrtmtstringR ((s$/usr/libexec/tuned/defirqaffinity.pyt get_cpumasks    cCsdtjdkrdSy2t|d}|j}WdQXt|SWntk r_dgSXdS(Nitr(tostgetuidtopentreadlineR tIOError(tfnametfR((s$/usr/libexec/tuned/defirqaffinity.pytparse_def_affinity(s cCsd}td}t|}x|D]}|d|>B}q#W||@rstjjd|||ftjdngtjtD]-}tjj tjj t|r|^q}y|j dWnt k rnXy|j dWnt k rnXx|D]}}d}t|d}t|}x|D]}|d|>B}q4W||@rtjjd|||ftjdqqWtjddS(Nitdefault_smp_affinityis@verify: failed: irqaffinity (%s) inplacemask=%x shouldbemask=%x t2t0s /smp_affinity( tirqpathRtsyststderrtwritetexitRtlistdirtpathtisdirtjointremovet ValueError(t shouldbemaskt inplacemaskRtcpulistR Rt interruptdirs((s$/usr/libexec/tuned/defirqaffinity.pytverify2s6    C      Riiiis%s: invalid arguments RtaddR*R0twbRR s /smp_affinitys*Failed to set smp_affinity for IRQ %s: %s ('RR"R!R RRR0R.R R RtargvtstrR#R$R'tbasenameR%RRRRRRRtfotcloseR&RR(R)R/R*R+tretRtjRte(((s$/usr/libexec/tuned/defirqaffinity.pytsp    % 4'  &    C        &