Update CDDL headers
[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   uucopy, uucopystr (strings.h)
43   acct (sys/acct.h)
44   acctctl (sys/acctctl.h)
45   getacct, putacct, wracct [SYS_exacctsys] (sys/exacct.h)
46   allocids, idmap_reg, idmap_unreg [SYS_sidsys] (sys/sid.h)
47   exportfs, nfs_getfh, nfssvc [SYS_nfssys] (sys/nfssec.h) [maybe not]
48   lgrpsys
49   gethomelgroup
50   atomic_*
51   membar_*
52
53 Insert into headers:
54   resolvpath (unistd.h)
55   issetugid (unistd.h)
56   strlcpy, strlcat (string.h or strings.h)
57   getvmusage (sys/vm_usage.h)
58   uucopy, uucopystr (string.h or strings.h)
59
60 INVALID_NOT_TERMINATED_TD_P expects to succeed on terminated threads
61
62 More __builtin_expect's
63
64 Use LIBC_CANCEL_HANDLED where needed
65
66 We should probably define _LP64 and _IP32 (sys/isa_defs.h)
67
68 The following are cancellation points (need to enable async cancellation):
69   pthread_cond_timedwait, pthread_cond_wait
70   sem_timedwait, sem_wait
71
72 pthread_rwlock_*lock are not cancellation points - but we call
73   pthread_cond_timedwait, which is a cancellation point. Hence
74   we need something like __pthread_cond_timedwait_no_cancel.
75
76 Since we now use an entirely libc-based rwlock implementation we should be able
77   to support PTHREAD_RWLOCK_PREFER_READER_NP, PTHREAD_RWLOCK_PREFER_WRITER_NP,
78   and PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP.
79
80 Use syscall instead of INLINE_SYSCALL; also create __syscall_errval
81
82 Get rid of all saved_errno usage
83
84 More clocks in pthread_condattr_setclock
85
86 List of CDDL headers needed to compile random stuff:
87   sys/dlpi.h [Should be LGPL'd]
88   sys/sysi86.h [Should be LGPL'd]
89   sys/ctf_api.h [libctf]
90   libctf.h [libctf]
91   sys/ctf.h [libctr[
92   libproc.h [libproc]
93   libelf.h [libelf]
94   gelf.h [libelf; need to add Elf64_Cap]
95
96 Use cond_t data field for broadcast seqence
97
98 Use timer_* syscalls
99
100 Instead of AT_SECURE we can use AF_SUN_SETUGID [AT_SUN_AUXFLAGS]