osfmk/kern/sched_prim.c (21 lines): - line 728: /* TODO: what about an interrupt that does a wake taken on a callout thread? */ - line 772: * TODO: In future, do not allow handoff if threads have different cluster - line 801: * TODO: This should return void - line 900: /* TODO: pass this through assert_wait instead, have - line 1153: /* TODO: This is invalid - it can get dequeued without thread lock, but not context switched. */ - line 1409: /* TODO: Can we instead assert TH_TERMINATE is not set? */ - line 1755: * other SMT-capable cores may be over-committed. TODO: some possible negatives: - line 1987: * TODO: What if a secondary core beat an idle primary to waking up from an IPI? - line 2019: * TODO: This should check if it's worth it to rebalance, i.e. 'are there any idle primary processors' - line 3090: * TODO: Can we state that redispatching our old thread is also - line 3886: /* TODO: Do we need to care about urgency (see rdar://problem/20136239)? */ - line 4257: * TODO: This should also make the same decisions - line 4260: * TODO: Keep track of the pending preemption priority - line 4641: * TODO: This should be based on sched_mode, not sched_pri - line 4748: * TODO: Should these set AST_REBALANCE? - line 4758: * TODO: Should this do the same check that thread_select does? i.e. - line 4827: * TODO: This doesn't notice QoS changes... - line 4956: /* TODO: only call this if current_perfctl_class changed */ - line 6090: * TODO: Is this the correct check for recommended == possible cores? - line 6091: * TODO: Validate the checks without the relevant lock are OK. - line 6153: * TODO: Consider weird states like boot, sleep, or debugger osfmk/kern/task_policy.c (15 lines): - line 132: * TODO: Move all cpu/wakes/io monitor code into a separate file - line 133: * TODO: Move all importance code over to importance subsystem - line 134: * TODO: Move all taskwatch code into a separate file - line 135: * TODO: Move all VM importance code into a separate file - line 386: /* TODO: Restrict this role to FCFS */ - line 1404: * TODO: Do we need to check task->active? - line 1473: * TODO: - line 1779: * TODO: Can this be made more compact, like an array lookup - line 1899: /* TODO: remove this variable when interactive daemon audit period is over */ - line 1906: * TODO: Make this function more table-driven instead of ad-hoc - line 1942: * TODO: remove this when the interactive daemon audit period is over. - line 2526: /* TODO: get rid of these */ - line 3287: /* TODO: Lower importance downstream before disconnect */ - line 3623: // released_pid = task_pid(release_imp_task); /* TODO: Need ref-safe way to get pid */ - line 3916: /* TODO: create/find a trace_two_LLs() for K32 systems */ osfmk/kern/thread_policy.c (10 lines): - line 613: * TODO: Store the absolute priority value instead - line 873: * TODO: Mitigate potential problems caused by moving thread to end of runq - line 887: * TODO: Instead of having saved mode, have 'user mode' and 'true mode'. - line 916: * TODO: Consider running a timer_update operation here to update it first. - line 920: * TODO: There should be a function for this in timer.c - line 1020: /* TODO: factor in renice priority here? */ - line 1118: * TODO: Do this inside the thread policy update routine in order to avoid double - line 1553: /* TODO: is it appropriate for this to limit a turnstile-boosted thread's QoS? */ - line 1716: /* TODO: Doesn't this only need to be done if the throttle went up? */ - line 2151: * TODO: I think we can get away with architecting this such that we don't need to look at the task ever. osfmk/vm/lz4.c (9 lines): - line 53: //DRKTODO: Can the 'C' "safety" decode be eliminated for 4/16K fixed-sized buffers? - line 162: //DRKTODO verify these modulos/divisions are optimally handled by clang - line 314: //DRKTODO: Evaluate unrolling further. 2xunrolling had some modest benefits - line 415: //DRKTODO either implement pattern4 or figure out optimal unroll - line 416: //DRKTODO: bizarrely, with plain O3 the compiler generates a single - line 417: //DRKTODO: scalar STP per loop iteration with the stock loop - line 418: //DRKTODO If hand unrolled, it switches to NEON store pairs - line 537: //DRKTODO: this causes an alignment increase warning (legitimate?) - line 538: //DRKTODO: cast of char * to uint16_t* osfmk/kern/sched_multiq.c (9 lines): - line 62: * TODO: make this explicit - bound threads should have a different enqueue fxn - line 82: * TODO: Future features: - line 527: /* TODO: May not be safe */ - line 996: * TODO: Need to figure out if passing options here is a good idea or not - line 1017: * TODO: Remove tracepoints - line 1069: * TODO: - line 1262: * TODO: Decide whether to keep a count of runnable threads in the pset - line 1277: * TODO: This one does need to go through all the runqueues, but it's only needed for - line 1386: * TODO: This iterates every group runq in its entirety for each entry it has in the runq, which is O(N^2) bsd/dev/dtrace/dtrace.c (9 lines): - line 481: /* FIXME: two function calls!! */ - line 490: /* FIXME: three function calls!!! */ - line 500: /* FIXME: two function calls!! */ - line 4203: /* FIXME: awaits lock/mutex work */ - line 4300: /* FIXME: awaits lock/mutex work */ - line 7718: /* FIXME: On Darwin the time spent leaving DTrace from this point to the rti is attributed - line 9398: dhpb.dthpb_base = dhp->dofhp_addr; /* FIXME: James, why? */ - line 19313: /* FIXME: track CPU configuration */ - line 19328: * FIXME: Warn if state is LAZY_OFF? It won't break anything, but bsd/kern/kern_exec.c (8 lines): - line 985: * TODO: More gracefully handle failures after vfork - line 1545: /* FIXME: Till vmspace inherit is fixed: */ - line 2016: /* TODO: Should an invalid value here fail the spawn? */ - line 2034: /* TODO: Should an invalid value here fail the spawn? */ - line 3046: * TODO: Expect to need __mac_posix_spawn() at some point... - line 4019: * TODO: Consider splitting this up into separate phases - line 4461: * TODO: Dynamic linker header address on stack is copied via suword() - line 4505: * TODO: Dynamic linker header address on stack is copied via suword() osfmk/kdp/processor_core.c (8 lines): - line 231: /* TODO: LC_NOTE */ 0 + sizeof(struct ident_command) + KERN_COREDUMP_VERSIONSTRINGMAXSIZE); - line 238: /* TODO: LC_NOTE */ 0 + sizeof(struct ident_command) + KERN_COREDUMP_VERSIONSTRINGMAXSIZE); - line 242: core_context->core_total_bytes = core_context->core_header_size + core_context->core_segment_byte_total + /* TODO: LC_NOTE */ 0; - line 243: core_context->core_file_length = round_page(core_context->core_header_size) + core_context->core_segment_byte_total + /* TODO: LC_NOTE */ 0; - line 246: numcmds = (uint32_t)(core_context->core_segment_count + core_context->core_thread_count + /* TODO: LC_NOTE */ 0 + - line 573: /* TODO: Add LC_NOTE command for miscellaneous data if requested */ - line 578: * TODO: Should this buffer be allocated at boot rather than on the stack? - line 626: /* TODO: Save the miscellaneous data if requested */ osfmk/kern/waitq.c (8 lines): - line 1438: * TODO: if in interrupt context, grab from a special - line 3002: * TODO: define this in a header - line 3692: /* else { TODO: notify kqueue subsystem? } */ - line 4147: * TODO: check for cycles! - line 4531: * TODO: - line 4597: * TODO: this could be more efficient than a linear search of - line 4867: /* else { TODO: notify kqueue subsystem? } */ - line 5351: * TODO: bsd/netinet6/in6_mcast.c (7 lines): - line 366: * XXX TODO: The scope ID, if present in src, is stripped before - line 585: * FIXME: Should reap. - line 1967: * FIXME: The KAME use of the unspecified address (::) - line 2088: * TODO: Validate embedded scope ID in source - line 2173: * XXX FIXME: This makes a naive assumption that - line 2453: * TODO: Validate embedded scope ID in source - line 2880: * TODO: Validate embedded scope ID in source iokit/Kernel/IOService.cpp (7 lines): - line 696: * TODO: Improve on this. Previous efforts to more lazily allocate this - line 734: * TODO: Improve on this. Previous efforts to more lazily allocate this - line 7965: * TODO: This is ugly (wrapping a lock around an allocation). I'm only - line 8005: * TODO: This even zeroes the memory it is about to overwrite. - line 8021: * TODO: Some statistics do in fact have common units (time); should this be - line 8034: * TODO: Currently, this does not add channels for disabled statistics. - line 8061: * TODO: Is this a good idea? Probably not; my assumption is it opts osfmk/kern/thread_call.c (7 lines): - line 935: * TODO: Give 'func' thread calls their own group, so this silliness doesn't - line 1392: * TODO: This seems less than useful - shouldn't it do the wait as well? - line 1920: * TODO: The next timer in the list could have a larger leeway - line 1931: * TODO: What if the next timer is not rate-limited? - line 2002: * TODO: keep a hint on the timer to tell whether its inputs changed, so we - line 2005: * TODO: Keep a separate queue of timers above the re-sort - line 2090: * TODO: Here is where we will add priority inheritance to the thread executing osfmk/kern/mach_node.c (7 lines): - line 106: mach_node_id_t node_id = 0; // TODO: Read from device tree? - line 114: } // TODO: else block until init is finished (init completion race) - line 211: // TODO: destroy send right to outgoing bs_port - line 222: // TODO: Signup for bootstrap port death notifications - line 248: // TODO: notify all active nodes we are bootstrapped - line 285: /* TODO: Support non-native byte order and data models */ - line 752: // TODO: Inform node name server (if registered) of termination osfmk/kern/ast.c (6 lines): - line 121: * TODO: the thread can cheese this with clear_wait() - line 129: /* TODO: Should we csw_check again to notice if conditions have changed? */ - line 156: /* TODO: Add more 'return to userspace' assertions here */ - line 169: /* TODO: Should we csw_check again to notice if conditions have changed? */ - line 197: * TODO: Why are AST_DTRACE and AST_KPERF not per-thread ASTs? - line 276: * TODO: SFI should be a per-thread AST osfmk/arm/pmap.c (6 lines): - line 4457: /* TODO: consider allowing maxproc limits to be scaled earlier so that - line 8008: * TODO: Run CS/Monitor checks here. - line 9531: /* TODO: Scan for vm page assigned to top level page tables with no reference */ - line 13283: /* ARMTODO -- an implementation that accounts for - line 13337: /* TODO: This will be faster if we increment ttep at each level. */ - line 14794: * TODO: Completely remove pmap_nesting_size_max() osfmk/kern/task.c (6 lines): - line 470: /* FIXME: On x86, the thread save state flavor can diverge from the - line 1611: /* TODO: there is no graceful failure path here... */ - line 1622: /* TODO: assert that new_task will be PID 1 (launchd) */ - line 7122: * TODO: This is super inefficient - it's an O(threads in task) list walk! - line 7318: * TODO: detect whether another thread is already reporting the violation. - line 7559: * TODO: detect whether another thread is already reporting the violation. bsd/dev/arm/dtrace_isa.c (5 lines): - line 311: /* XXX ARMTODO 64vs32 */ - line 535: /* XXX ARMTODO */ - line 584: /* XXX ARMTODO */ - line 596: /* XXX ARMTODO check copied from ppc/x86*/ - line 641: /* TODO There were some problems with flushing just the cache line that had been modified. iokit/Kernel/IOServicePM.cpp (5 lines): - line 2372: // TODO: review fOverrideMaxPowerState - line 5437: // TODO: aggreggate this - line 5834: // TODO: record message type if possible - line 5872: // TODO: identify the priority client that has not acked - line 6762: // TODO: populate the messageType argument osfmk/vm/vm_map.c (5 lines): - line 1682: /* TODO: Make backward lookup generic and support guard pages */ - line 1975: * TODO: - line 3285: * XXX TODO: we should rewire the - line 3924: * XXX TODO: we should rewire the - line 6082: * TODO: We don't seem to need this, pexpert/arm/pe_serial.c (5 lines): - line 175: /* ARM64_TODO */ - line 189: /* ARM64_TODO */ - line 201: /* ARM64_TODO */ - line 219: /* ARM64_TODO */ - line 267: /* TODO: get from device tree/target */ bsd/kern/kern_event.c (4 lines): - line 1313: * TODO: Add a way for absolute to be not forced one-shot - line 1395: * TODO: build a wall-time denominated timer_call queue - line 1740: * TODO: potential enhancements - tell the user about: - line 4096: * more handler threads (TODO: optimize based on more than bsd/dev/dtrace/lockstat.c (4 lines): - line 93: // TODO: This should not be a uint64_t ! - line 98: // TODO: This should NOT be a uint64_t - line 102: // TODO : This should NOT be a uint64_t - line 110: //TODO : Separate the probes for the hw_bit from the probe for the normal hw locks osfmk/vm/vm_resident.c (4 lines): - line 3652: * XXX FBDP TODO: also avoid refilling secluded queue - line 7129: /* XXX FBDP TODO: flush secluded queue */ - line 7776: /* XXX FBDP TODO: secluded queue */ - line 7979: /* XXX FBDP TODO: secluded queue */ libkern/c++/OSKext.cpp (4 lines): - line 1206: /* TODO: make this more efficient with MH_FILESET kexts */ - line 6969: /* TODO: we may need to hook this for the pageableKC */ - line 7004: /* TODO: Should this still allow protections for the first segment - line 9902: * TODO: Remove this once we use the new kext linker everywhere! tools/lldbmacros/scheduler.py (4 lines): - line 8: # TODO: write scheduler related macros here - line 349: TODO: on x86, if not in the debugger, then look at the scheduler - line 777: # TODO: Possibly output task header for each group - line 1147: # TODO: extract this out of the thread_call_flags_t enum bsd/vm/vm_unix.c (4 lines): - line 513: #if FIXME /* [ */ - line 518: #endif /* FIXME ] */ - line 524: #if FIXME /* [ */ - line 535: #endif /* FIXME ] */ osfmk/kern/zalloc.c (4 lines): - line 3539: /* TODO: #if this out */ - line 3749: * TODO: What about allocations that never get deallocated, - line 4083: * TODO: Determine how well distributed this is - line 5097: /* TODO: Extend this to check for the largest process in other zones as well. */ iokit/Kernel/IOPMrootDomain.cpp (4 lines): - line 3979: // TODO: remove this shim function and exported symbol - line 3986: // TODO: remove this shim function and exported symbol - line 4385: // TODO: can this else-block be removed? - line 11406: // FIXME: unused and also wrong bsd/kern/kern_memorystatus.c (4 lines): - line 4488: /* TODO - add a victim queue and push this into the main jetsam thread */ - line 6366: * TODO: allow a general async path - line 6718: * TODO: Enable this privilege check? - line 8158: * TODO: should this be an assert? osfmk/kern/tlock.c (4 lines): - line 53: /* TODO: proportional back-off based on desired-current ticket distance - line 56: * TODO: UP implementation. - line 60: * TODO: Evaluate a bias towards the performant clusters on - line 149: * TODO: determine specific micro-architectures osfmk/kern/work_interval.c (3 lines): - line 132: * TODO: groups need to have a 'is for WI' flag - line 137: * TODO: Enforce not having more than one non-group joinable work - line 153: * TODO: you'd think there would be a better way to do this osfmk/kern/debug.c (3 lines): - line 1041: * TODO: Consider moving to SavePanicInfo as this is part of the panic log. - line 1067: * TODO: Need to clear panic log when return from debugger - line 1243: * TODO: Should we do anything special for nested panics here? i.e. if we've trapped more than twice bsd/net/if_6lowpan.c (3 lines): - line 430: // TODO: ifnet_set_hdrlen(ifp, IEEE802154_ENCAP_LEN); - line 441: /* TODO: attach as IEEE 802.15.4 with no FCS */ - line 864: // TODO: Find ifp from the parent p bsd/dev/arm64/dtrace_isa.c (3 lines): - line 674: /* XXX ARMTODO */ - line 686: /* XXX ARMTODO check copied from ppc/x86*/ - line 700: /* TODO There were some problems with flushing just the cache line that had been modified. osfmk/kern/gzalloc.c (3 lines): - line 230: * TODO: Consider freeing up zone->gz.gzfc as well if it didn't come from the gzalloc_reserve pool. - line 577: // TODO: consider using physical reads to check for - line 586: // TODO: sysctl-ize for quick reference bsd/kern/kern_resource.c (3 lines): - line 583: /* TODO: Entitlement instead of uid check */ - line 770: /* TODO: EINVAL if priority != 0 */ - line 897: /* TODO: Fail if someone passes something besides 0 or PRIO_DARWIN_BG */ bsd/netinet6/nd6_rtr.c (3 lines): - line 339: * TODO: on-link bit on prefix information - line 340: * TODO: ND_RA_FLAG_{OTHER,MANAGED} processing - line 3749: * TODO: If the prefix route exists, we should really find it and bsd/kern/kern_exit.c (3 lines): - line 915: * TODO: what to audit here when jetsam calls exit and the uthread, - line 923: /* TODO: This should be done after becoming exit thread */ - line 2735: #endif /* FIXME */ osfmk/x86_64/pmap_pcid.c (3 lines): - line 108: /* DRKTODO: assert if features haven't been discovered yet. Redundant - line 206: * a given processor. DRKTODO: use larger loads and - line 420: /* TODO: separate large page invalidation check */ bsd/kern/sys_generic.c (3 lines): - line 1008: // FIXME (rdar://54898652) - line 1021: // FIXME (rdar://54898652) - line 1625: /* jca: TODO: osfmk/vm/vm_pageout.c (3 lines): - line 1817: * LD TODO: Other page targets should be calculated here too. - line 3031: * restart the loop (LD TODO: Track this better?). - line 3066: * LD TODO: Use a structure to hold all state variables for a single bsd/sys/kern_memorystatus.h (3 lines): - line 64: /* TODO - tune. This should probably be lower priority */ - line 238: /* TODO - deprecate; see */ - line 324: * TODO: Remove once they stop using these. osfmk/arm64/locore.s (3 lines): - line 349: // ARM64_TODO write optimized decrementer - line 1283: // TODO: switch to PPL_STACK earlier in gxf_ppl_entry_handler - line 1558: /* ARM64_TODO Is globals_asm.h needed? */ iokit/IOKit/IOKernelReporters.h (3 lines): - line 331: // FIXME: just put the function (inline-ish) here? - line 357: // FIXME: just put the function (inline-ish) here? - line 1485: * FIXME: need more explanation of the config bsd/net/pf.c (3 lines): - line 4913: * TODO: - line 7787: /* TODO */ - line 7848: /* TODO */ osfmk/arm64/status.c (3 lines): - line 772: /* ARM64 TODO: set fpsr and fpcr from state->fpscr */ - line 1060: /* ARM64_TODO subtle bcr/wcr semantic differences e.g. wcr and ARM_DBGBCR_TYPE_IVA */ - line 1230: /* ARM64 TODO: combine fpsr and fpcr into state->fpscr */ osfmk/ipc/ipc_voucher.c (3 lines): - line 230: /* TODO - switch to ipc_table method of allocation */ - line 745: * TODO: support chained values (for effective vouchers). - line 1205: /* TODO: value insertion from returned voucher */ bsd/dev/arm/systemcalls.c (3 lines): - line 508: * TODO: Is there a cleaner way to do this check? What we're actually - line 618: * ARM64_TODO: should we have a separate definition? - line 678: * ARM64_TODO: should we have a separate definition? osfmk/ipc/ipc_importance.c (3 lines): - line 626: /* TODO: Turn this back into a panic */ - line 1420: /* TODO: If count > 1, we should clear out as many external assertions as there are left. */ - line 1521: * TODO: Need tracepoints around this function... osfmk/mach/i386/vm_param.h (2 lines): - line 170: * XXX TODO: Obsolete? - line 250: /* FIXME - always leave like this? */ bsd/net/if.c (2 lines): - line 2192: // TODO: Use priv_check_cred() instead of root check - line 2200: // TODO: Use priv_check_cred() instead of root check osfmk/kern/timer_call.c (2 lines): - line 864: * TODO: if we keep a deadline ordered and soft-deadline ordered - line 975: /* TODO: don't need to dequeue before enqueue */ bsd/netinet6/ip6_input.c (2 lines): - line 646: * TODO: should we accept loopbacl - line 655: * TODO: should we also accept locally originated packets libkern/OSKextLib.cpp (2 lines): - line 78: // FIXME: Implementation of this function is hidden from the static analyzer. - line 122: // FIXME: Implementation of this function is hidden from the static analyzer. osfmk/arm/asm.h (2 lines): - line 223: /* TODO: Make this work with thumb .s files. */ - line 246: * TODO: Make this actually use a scratch register; this macro is convenient bsd/kern/uipc_socket.c (2 lines): - line 143: /* TODO: this should be in a header file somewhere */ - line 331: /* TODO: these should be in header file */ osfmk/vm/pmap.h (2 lines): - line 328: /* ARM64_TODO */ - line 650: /* TODO: Completely remove pmap_nesting_size_max() */ bsd/net/if_ipsec.c (2 lines): - line 712: // TODO: Don't lose mbuf - line 745: // TODO: Don't lose mbuf libkern/libkern/c++/intrusive_shared_ptr.h (2 lines): - line 34: // TODO: Consolidate these utilities with the ones used in other similar places. - line 129: // TODO: Add a check that `T` can be used with the `RefcountPolicy` osfmk/i386/fpu.c (2 lines): - line 1596: /* TODO: as an optimisation, copy up to the lesser of the - line 1605: /* TODO: determine more specifically which prefixes bsd/kern/mcache.c (2 lines): - line 391: /* TODO: dynamically create sysctl for stats */ - line 870: * TODO: We need to destroy the zone here, but cannot do it bsd/kern/kern_sig.c (2 lines): - line 2389: /* TODO: p_nice isn't hooked up to the scheduler... */ - line 2434: * TODO: p_nice isn't hooked up to the scheduler... iokit/Kernel/IOReporter.cpp (2 lines): - line 188: // FIXME: need to look up dynamically - line 285: // FIXME: Check if any channel is already present and return error bsd/kern/proc_info.c (2 lines): - line 114: * TODO: Replace the noinline attribute below. Currently, it serves - line 1787: * TODO: should extensions/plugins be allowed to use osfmk/vm/vm_compressor.c (2 lines): - line 1710: /* TODO: assert first emptyslot's c_size is actually 0 */ - line 3938: /* TODO: it may be worth requiring codecs to distinguish osfmk/vm/memory_object.c (2 lines): - line 1917: /* XXX FBDP TODO: flush pages from secluded queue? */ - line 1918: // printf("FBDP TODO: flush %d pages from %p from secluded queue\n", object->resident_page_count, object); bsd/miscfs/mockfs/mockfs_fsnode.h (2 lines): - line 42: * TODO: Should this include MOCKFS_SBIN? Right now we tell lookup that when looking in - line 66: /* TODO: Replace child_a/child_b with something more flexible */ bsd/miscfs/mockfs/mockfs_fsnode.c (2 lines): - line 198: * TODO: Get rid of this check if I ever get around to making the tree non-binary. - line 199: * TODO: Enforce that the parent cannot have two children of the same type (for the moment, this is osfmk/ipc/ipc_mqueue.c (2 lines): - line 1107: * TODO: differentiate between rights being moved and - line 1127: * TODO: previously, we would place this port at the osfmk/arm64/sleh.c (2 lines): - line 833: * ARM64_TODO: For now, we assume this is for undefined instruction exceptions. - line 1858: * ARM64_TODO: whether we're coming from userland is ignored right now. bsd/netinet/in_mcast.c (2 lines): - line 658: * FIXME: Should reap. - line 2255: * XXX FIXME: This makes a naive assumption that osfmk/arm64/cpu.c (2 lines): - line 364: * TODO: evaluate temporarily stretching the per-CPU event - line 388: /* TODO: worth refreshing pending interrupt status? */ bsd/kern/kern_credential.c (2 lines): - line 3149: /* TODO: */ - line 4654: // TODO: move to os_refcnt once the ABI issue is resolved bsd/dev/arm64/fasttrap_isa.c (2 lines): - line 219: /* ARM64_TODO - check for FASTTRAP_T_RET */ - line 265: /* TODO: This function isn't implemented yet. In debug mode, panic the system to bsd/kern/mach_loader.c (2 lines): - line 518: // TODO: Message Trace or log that this is happening - line 2391: #endif /* FIXME */ bsd/netinet6/nd6.c (2 lines): - line 3333: * XXX TODO: Needs to be done for RTI as well - line 3942: * XXX TODO: This should also be iterated over router list bsd/kern/uipc_mbuf.c (2 lines): - line 307: /* TODO: should be in header file */ - line 6164: * XXX TODO coalesce into the trailingspace of bsd/dev/arm/fasttrap_isa.c (2 lines): - line 325: /* TODO: This function isn't implemented yet. In debug mode, panic the system to - line 703: /* TODO Two issues that will eventually need to be resolved: bsd/kern/kern_mman.c (2 lines): - line 513: maxprot = VM_PROT_EXECUTE; /* TODO: Remove this and restrict maxprot? */ - line 737: * FIXME: if we're writing the file we need a way to bsd/dev/dtrace/dtrace_glue.c (2 lines): - line 260: return kauth_cred_issuser(cred); /* XXX TODO: How is this different from PRIV_POLICY_ONLY? */ - line 267: return kauth_cred_issuser(cr); /* XXX TODO: HAS_PRIVILEGE(cr, priv); */ bsd/kern/kern_persona.c (2 lines): - line 1127: /* TODO: clear the saved GID?! */ - line 1161: /* TODO: clear the saved UID/GID! */ bsd/i386/profile.h (2 lines): - line 50: #define MCOUNT_ENTER /* s = splhigh(); */ /* XXX TODO */ - line 51: #define MCOUNT_EXIT /* (void) splx(s); */ /* XXX TODO */ bsd/arm/profile.h (2 lines): - line 26: #define MCOUNT_ENTER /* s = splhigh(); */ /* XXX TODO */ - line 27: #define MCOUNT_EXIT /* (void) splx(s); */ /* XXX TODO */ osfmk/kern/locks.c (2 lines): - line 932: // TODO: consider weak (non-looping) atomic test-and-set - line 1191: * TODO: Come up with a more efficient way to handle same-priority promotions osfmk/x86_64/pmap.c (2 lines): - line 800: /* TODO: possible general optimisation...pre-allocate via zones commonly created - line 2940: /* TODO global generation count to osfmk/i386/pmap_x86_common.c (2 lines): - line 507: /* TODO: translate the PHYS_* bits to PTE bits, while they're - line 931: /* TODO: add opportunistic refmod collect */ bsd/kern/kern_authorization.c (2 lines): - line 806: * XXX TODO: wants a "umask ACL" from the process. - line 845: * XXX 3634665 TODO: if the initial ACL is not specfied by osfmk/i386/pmap.h (2 lines): - line 301: /* TODO: Compressed markers, potential conflict with protection keys? */ - line 306: /* TODO: these should be internal definitions */ osfmk/arm64/arm_vm_init.c (2 lines): - line 1805: * TODO: free bootstrap table memory back to allocator. - line 1996: * TODO: do these pages really need to come from RO memory? osfmk/kern/thread.c (2 lines): - line 524: * TODO: build timer_call_cancel_wait - line 2395: /* TODO: show task total runtime (via TASK_ABSOLUTETIME_INFO)? */ osfmk/kern/priority.c (2 lines): - line 123: * TODO: This fails to account for the time between when the timer was - line 364: * TODO: Add an 'update urgency' flag to avoid urgency callouts on every rwlock operation pexpert/gen/kcformat.c (2 lines): - line 39: // FIXME: should come from mach-o/fixup_chains.h - line 48: /* FIXME: This should be locked down during early boot */ osfmk/mach/dyld_kernel_fixups.h (1 line): - line 313: // FIXME: Implement this iokit/IOKit/pwr_mgt/IOPM.h (1 line): - line 509: * TODO: deprecate kIOPMAllowSleep and kIOPMPreventSleep osfmk/kdp/kdp_dyld.h (1 line): - line 60: // FIXME: dyld is in C++, and some of the fields in dyld_all_image_infos are C++ osfmk/kern/sched_traditional.c (1 line): - line 754: * TODO: in sched_traditional_use_pset_runqueue case, osfmk/kern/ast.h (1 line): - line 108: * TODO: Split the context switch and return-to-user AST namespaces bsd/vfs/vfs_bio.c (1 line): - line 2978: /* XXX FIXME -- Update the comment to reflect the UBC changes (please) -- */ iokit/Kernel/IOPerfControl.cpp (1 line): - line 20: // TODO: Remove this limit and implement dynamic table growth if workloads are found that exceed this bsd/kern/sys_coalition.c (1 line): - line 332: /* TODO: priv check? EPERM or ESRCH? */ bsd/net/if_bridge.c (1 line): - line 96: * TODO: bsd/net/necp.h (1 line): - line 420: * TODO: For now the extra metadata is an exact replica osfmk/kern/mk_timer.c (1 line): - line 236: /* TODO: this should be mach_port_mod_refs */ osfmk/arm64/pcb.c (1 line): - line 103: /* TODO: Should this be ordered? */ tools/lldbmacros/usertaskdebugging/userprocess.py (1 line): - line 85: #TODO for i386 osfmk/arm64/proc_reg.h (1 line): - line 233: * ARM64_TODO: unify with ARM? osfmk/kern/kcdata.h (1 line): - line 1003: /* FIXME some of these types aren't clean (fixed width, packed, and defined *here*) */ libsyscall/wrappers/select-base.c (1 line): - line 102: * TODO: remove when B&I move to xnu with native pselect() libsyscall/wrappers/spawn/posix_spawn.c (1 line): - line 1681: #if defined(POSIX_SPAWN_CLOEXEC_DEFAULT) // TODO: delete this check osfmk/i386/machine_routines.c (1 line): - line 448: * TODO: transition users of this to kernel_thread_start_priority osfmk/mach/arm/vm_param.h (1 line): - line 323: * TODO: We're hardcoding the expected virtual TEXT base here; osfmk/kern/coalition.c (1 line): - line 1237: /* TODO: This can be done with atomics. */ iokit/Kernel/IOStateReporter.cpp (1 line): - line 581: // FIXME: set a bit somewhere (reporter-wide?) that state_ids can no longer be bsd/netinet/raw_ip.c (1 line): - line 650: // TODO: PASS DOWN ROUTE RULE ID osfmk/i386/i386_init.c (1 line): - line 1118: /* TODO: Evaluate global PTEs for the double-mapped translations */ osfmk/x86_64/bzero.s (1 line): - line 71: /* TODO: add variants for use with non-cacheable ranges */ osfmk/x86_64/lz4_decode_x86_64.s (1 line): - line 49: #error TODO implement MSVC calling conventions for LZ4 x86_64 assembly osfmk/vm/bsd_vm.c (1 line): - line 165: /* TODO: Should be set dynamically by vnode_pager_init() */ bsd/netinet/igmp.c (1 line): - line 1347: * FIXME: Handling source lists larger than 1 mbuf requires that libkern/kxld/kxld_sect.c (1 line): - line 302: /* @TODO This assumes 64-bit symbols (which is valid at the bsd/vfs/vfs_xattr.c (1 line): - line 1775: * TODO: check the XATTR_CREATE and XATTR_REPLACE flags. osfmk/arm64/kpc.c (1 line): - line 180: /* TODO: allocate dynamically */ osfmk/arm/machine_routines.c (1 line): - line 539: * TODO: Should this just return a failure instead? A panic bsd/sys/kdebug.h (1 line): - line 766: /* TODO: Split up boost and task policy? */ iokit/Kernel/IOUserClient.cpp (1 line): - line 594: // FIXME: Implementation of these functions are hidden from the static analyzer. tools/lldbmacros/core/operating_system.py (1 line): - line 805: # FIXME remove legacy code bsd/kern/kern_descrip.c (1 line): - line 1071: // FIXME (rdar://54898652) osfmk/vm/vm_map_store.c (1 line): - line 111: /* TODO: Provide a RB implementation for this routine. */ libkern/libkern/c++/bounded_array_ref.h (1 line): - line 76: // TODO: find a better way to do that osfmk/kern/mach_node_link.h (1 line): - line 100: uint8_t qos; // 8b TODO: Doesn't do anything yet osfmk/vm/vm_fault.c (1 line): - line 5900: * TODO: could most of the done cases just use cleanup? osfmk/arm64/bsd_arm64.c (1 line): - line 168: /* ARM64_TODO: remove this. still TODO?*/ bsd/net/classq/classq_sfb.c (1 line): - line 367: * TODO adi@apple.com: use dq_avg to derive hinterval. tools/lldbmacros/xnu.py (1 line): - line 879: #FIXME forces us to do this twice bsd/dev/arm64/fbt_arm.c (1 line): - line 427: /* XXX FIXME ... extra jump table detection? */ osfmk/x86_64/start.s (1 line): - line 214: jnc Lnon_rdrand /* TODO: complain if DRBG fails at this stage */ osfmk/arm/cpu_common.c (1 line): - line 546: /* TODO: Should we care about the state of a core as far as squashing deferred IPIs goes? */ bsd/net/pfvar.h (1 line): - line 1417: /* XXX TODO: Change baddr and naddr to *saddr */ osfmk/kern/processor.h (1 line): - line 212: /* TODO: reorder struct for temporal cache locality */ bsd/kern/kern_core.c (1 line): - line 96: /* ARM64_TODO: VFP */ osfmk/kdp/kdp_protocol.h (1 line): - line 70: * FIXME: This is what the 68K guys use, but beats me how they chose it... libkern/libkern/c++/bounded_array.h (1 line): - line 43: // TODO: osfmk/arm/pcb.c (1 line): - line 89: /* TODO: Should this be ordered? */ libsyscall/wrappers/utimensat.c (1 line): - line 58: * TODO: Replace with nanosecond time when available bsd/nfs/nfs.h (1 line): - line 1096: #define SLP_WORKTODO 0x004e /* mask of all "work to do" flags */ tools/lldbmacros/macho.py (1 line): - line 258: # TODO add separator blocks if vmaddr is large from prev_block libkern/kxld/kxld_object.c (1 line): - line 378: /* FIXME: we need clang to provide a __x86_64h__ macro for the sub-type. Using osfmk/arm/arm_vm_init.c (1 line): - line 349: * FIXME: Any page table pages that arm_vm_page_granular_* created with ROX entries in the range osfmk/i386/pcb_native.c (1 line): - line 526: * TODO: perhaps only do this if switching bitness osfmk/console/serial_protos.h (1 line): - line 58: /* ARM64_TODO */ osfmk/kern/startup.c (1 line): - line 526: /* TODO: do a proper thread_start() (without the thread_setrun()) */ osfmk/kern/syscall_subr.c (1 line): - line 261: * TODO: SFI break out? osfmk/arm64/cswitch.s (1 line): - line 276: /* ARM64_TODO arm loads the kstack top instead of arg4. What should we use? */ osfmk/arm/rtclock.c (1 line): - line 420: * ARM64_TODO: consider this more carefully. bsd/kern/uipc_usrreq.c (1 line): - line 158: * TODO: bsd/kern/subr_log.c (1 line): - line 1359: * TODO: rewrite this needlessly convoluted routine. osfmk/kdp/kdp_core.c (1 line): - line 1508: core_config.kcc_coredump_init = NULL; /* TODO: consider doing mmu flush from an init function */ bsd/net/raw_cb.c (1 line): - line 76: * TODO: iokit/bsddev/DINetBootHook.cpp (1 line): - line 146: /* FIXME: removable should be replaced with a struct (so it could be easily libkern/crypto/corecrypto_sha1.c (1 line): - line 76: //TODO: What the hell ? bsd/kern/tty.c (1 line): - line 68: * TODO: san/kasan-arm64.c (1 line): - line 198: * TODO: mappings here can be reclaimed after kasan_init() osfmk/console/video_console.c (1 line): - line 2325: * TODO: Does lzss use too much stack? 4096 plus bytes... iokit/Kernel/IORegistryEntry.cpp (1 line): - line 1891: // FIXME: Implementation of this function is hidden from the static analyzer. bsd/dev/arm/km.c (1 line): - line 302: /* FIXME */ bsd/net/necp_client.c (1 line): - line 1675: // TODO: Defunct nexus flows that are blocked by policy bsd/kern/sys_persona.c (1 line): - line 85: /* TODO: in the future compare info_v to kinfo->persona_info_version */ osfmk/i386/locks_i386.c (1 line): - line 2306: * TODO: Figure out an algorithm for stopping a lock holder which is already at the right bsd/netinet6/ah_core.c (1 line): - line 65: /* TODO: have shared routines for hmac-* algorithms */ osfmk/arm64/loose_ends.c (1 line): - line 792: /* ARM64_TODO */ osfmk/i386/i386_vm_init.c (1 line): - line 297: * TODO: might be better to move this code to OSKext::initialize tools/lldbmacros/ktrace.py (1 line): - line 370: # TODO Yield a wrap event with the barrier_min timestamp. osfmk/vm/vm_user.c (1 line): - line 2994: /* XXX FBDP TODO: no longer needed? */ osfmk/kern/kern_monotonic.c (1 line): - line 379: /* FIXME these should only update the counter that is being accessed */ iokit/IOKit/IOInterruptAccountingPrivate.h (1 line): - line 146: * TODO: Should this be an OSObject? Or properly pull in its methods as member functions? osfmk/i386/bsd_i386_native.c (1 line): - line 109: * FIXME - should a user specified LDT, TSS and V86 info iokit/Kernel/arm/AppleARMSMP.cpp (1 line): - line 53: // FIXME: These are in but that file has other deps that aren't being resolved tools/lldbmacros/usertaskdebugging/interface.py (1 line): - line 37: #BUG TODO make this unblocking soon bsd/dev/arm64/cpu_in_cksum.s (1 line): - line 31: * with __arm64__ tagged ARM64_TODO . This code revision is optimized based osfmk/vm/vm_compressor_algorithms.c (1 line): - line 129: //TODO make atomic where needed, decompression paths libsyscall/wrappers/libproc/libproc.c (1 line): - line 820: * TODO: Return a 'non-boost' token instead. osfmk/mach/shared_region.h (1 line): - line 84: /* ARM64_TODO: move to higher memory */ osfmk/vm/vm_compressor_algorithms.h (1 line): - line 32: //DRKTODO: the decompression side stats should be either made optional or osfmk/arm/simple_lock.h (1 line): - line 88: * ARM64_TODO: this is quite a waste of space (and a bsd/netkey/key.c (1 line): - line 9159: /* TODO: if sadb_msg_seq is specified, send to specific pid */ tools/lldbmacros/usertaskdebugging/rsprotocol.py (1 line): - line 14: #TODO need to parse data and unescape bsd/kern/kern_lockf.c (1 line): - line 1676: * TODO: Support live inheritance on file locks. osfmk/kperf/action.c (1 line): - line 678: /* TODO: allow shrinking? */ osfmk/i386/bsd_i386.c (1 line): - line 254: * FIXME - thread_set_child bsd/sys/lctx.h (1 line): - line 2: * TODO: remove this file bsd/netinet/tcp_output.c (1 line): - line 2547: /* TODO: IPv6 IP6TOS_ECT bit on */ libkern/libkern/c++/safe_allocation.h (1 line): - line 41: // TODO: Deduplicate these utilities with other smart pointer utilities osfmk/ipc/ipc_port.c (1 line): - line 222: /* TODO: Live importance support in send-possible */ EXTERNAL_HEADERS/corecrypto/cc.h (1 line): - line 105: // FIXME this pragma is the wrong fix for VLA usage, but since this API is central to corecrypto it's difficult to remove VLAs. The macro is then used in many other projects who don't need to be warned about VLAs at the moment. It's therefore desirable to silence the diagnostic and let corecrypto deal with removing VLAs. osfmk/arm/bsd_arm.c (1 line): - line 56: return KERN_FAILURE; /* XXX TODO */ osfmk/arm/model_dep.c (1 line): - line 1179: /* TODO: decide what to do if no debugger config */ bsd/sys/persona.h (1 line): - line 69: /* TODO: MAC policies?! */ bsd/netinet/mptcp_timer.c (1 line): - line 121: /* TODO XXX */ bsd/sys/work_interval.h (1 line): - line 198: * TODO: Add a name parameter so that clients can name the work interval libkern/kxld/kxld_versionmin.c (1 line): - line 104: /* TODO: eventually we can just use struct build_version_command */ bsd/kern/kdebug.c (1 line): - line 2887: .timestamp = 0, /* FIXME rdar://problem/22053009 */ bsd/dev/dtrace/dtrace_ptss.c (1 line): - line 234: * TODO: Inline in dtrace_ptrace_exec_exit? libkdd/kcdata.h (1 line): - line 1003: /* FIXME some of these types aren't clean (fixed width, packed, and defined *here*) */ bsd/dev/arm/disassembler.c (1 line): - line 383: /* TODO will instrumenting these interfere with any kernel usage of these instructions? */ libkern/libkern/c++/bounded_ptr.h (1 line): - line 46: // TODO: Do we really need to re-implement this here? osfmk/kern/thread.h (1 line): - line 162: /* Taskwatch related. TODO: find this a better home */ osfmk/console/serial_console.c (1 line): - line 102: * TODO: IOLog should use asynchronous serial logging instead of the synchronous serial console. (26555148) iokit/Kernel/IODeviceTreeSupport.cpp (1 line): - line 95: // FIXME: Implementation of this function is hidden from the static analyzer. bsd/miscfs/mockfs/mockfs_vfsops.c (1 line): - line 75: * TODO: Validate that the device at least LOOKS like a mach-o (has a sane header); this would prevent us osfmk/arm/cpuid.c (1 line): - line 358: * TODO: Are there any special considerations for our unusual bsd/netinet6/ip6_output.c (1 line): - line 1462: * TODO: Need to save opt->ip6po_flags for reinjection iokit/Kernel/IOHistogramReporter.cpp (1 line): - line 223: // FIXME: Could use pow() but not sure how to include math.h bsd/netinet6/ip6protosw.h (1 line): - line 150: * TODO: libkern/os/trace.h (1 line): - line 870: // TODO: change this once we have compiler support tools/lldbmacros/usertaskdebugging/gdbserver.py (1 line): - line 153: #TODO should implement this sometime. Considering getThreadRegistersInfo is there san/kasan-fakestack.c (1 line): - line 230: /* TODO: check the magic? */ iokit/Kernel/IOStatistics.cpp (1 line): - line 1124: /* TODO: see if this can be more efficient */ osfmk/x86_64/idt64.s (1 line): - line 1947: /* TODO assert at all 'C' entry points that we're never operating on the fault stack's alias mapping */ osfmk/kdp/ml/x86_64/kdp_machdep.c (1 line): - line 324: kprintf("rp = TODO FIXME\n"); osfmk/arm/arm_init.c (1 line): - line 48: /* ARM64_TODO unify boot.h */