Add notes
[kopensolaris-gnu/glibc.git] / TODO.opensolaris
1 The following headers are missing FSF headers:
2
3 More CHECK_1 and co. from bp-checks.h
4 Implement:
5     [sg]etres[ug]d
6         see ucred_getruid
7     sys_errlist
8     CLEAR, ECHO, etc...
9     dl-execstack.c
10     [gs]etsourcefilter (SIOCGMSFILTER / SIOCSMSFILTER)
11     [gs]etipv4sourcefilter (SIOCGIPMSFILTER / SIOCSIPMSFILTER)
12 See /usr/include/gnu/stubs-32.h
13
14 Check syscalls.list; change some p => s
15
16 ptrace details:
17   /proc/PID/{as,ctl,status,sigact,psinfo}
18   PTRACE_PEEK, PTRACE_PEEKDATA: pread(as)
19   PTRACE_PEEKUSR: user_t
20   PTRACE_POKETEXT, PTRACE_POKEDATA: pwrite(as)
21   PTRACE_POKEUSR: user_t
22   PTRACE_CONT:
23   PTRACE_KILL:
24
25   ctl is managed via PC* constants (e.g. PCSTRACE)
26     write command (long) followed by struct
27
28 These are solaris extensions that we should implement:
29   nlist, nlist.h
30   [gs]etrctl, rctl.h
31   door_*
32   port_*
33   pcsample (pcsample.h)
34   profil (unistd.h)
35   inst_sync
36   install_utrap, sparc_utrap_install
37   modctl
38   core_* (corectl)
39   _sharefs
40   pset_* (sys/pset.h)
41   _cladm (sys/cladm.h)
42   uadmin (sys/uadmin.h)
43   uucopy, uucopystr (strings.h)
44   acct (sys/acct.h)
45   acctctl (sys/acctctl.h)
46   getacct, putacct, wracct [SYS_exacctsys] (sys/exacct.h)
47   allocids, idmap_reg, idmap_unreg [SYS_sidsys] (sys/sid.h)
48   exportfs, nfs_getfh, nfssvc [SYS_nfssys] (sys/nfssec.h) [maybe not]
49   lgrpsys
50   gethomelgroup
51
52 Insert into headers:
53   resolvpath (unistd.h)
54   issetugid (unistd.h)
55   strlcpy, strlcat (strings.h)
56   getvmusage (sys/vm_usage.h)
57
58 Use pthread_cleanup_push/pthread_cleanup_pop
59
60 INVALID_NOT_TERMINATED_TD_P expects to succeed on terminated threads
61
62 getpriority and setpriority share common code - refactor
63
64 More __builtin_expect's
65
66 Use LIBC_CANCEL_HANDLED where needed
67
68 We should probably define _LP64 and _IP32 (sys/isa_defs.h)
69
70 The following are cancellation points (need to enable async cancellation):
71   pthread_cond_timedwait, pthread_cond_wait
72   sem_timedwait, sem_wait
73
74 pthread_rwlock_*lock are not cancellation points - but we call
75   pthread_cond_timedwait, which is a cancellation point. Hence
76   we need something like __pthread_cond_timedwait_no_cancel.
77
78 Since we now use an entirely libc-based rwlock implementation we should be able
79   to support PTHREAD_RWLOCK_PREFER_READER_NP, PTHREAD_RWLOCK_PREFER_WRITER_NP,
80   and PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP.