Update TODO.opensolaris
[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     [gs]etsourcefilter (SIOCGMSFILTER / SIOCSMSFILTER)
10     [gs]etipv4sourcefilter (SIOCGIPMSFILTER / SIOCSIPMSFILTER)
11 See /usr/include/gnu/stubs-32.h
12
13 Check syscalls.list; change some p => s
14
15 ptrace details:
16   /proc/PID/{as,ctl,status,sigact,psinfo}
17   PTRACE_PEEK, PTRACE_PEEKDATA: pread(as)
18   PTRACE_PEEKUSR: user_t
19   PTRACE_POKETEXT, PTRACE_POKEDATA: pwrite(as)
20   PTRACE_POKEUSR: user_t
21   PTRACE_CONT:
22   PTRACE_KILL:
23
24   ctl is managed via PC* constants (e.g. PCSTRACE)
25     write command (long) followed by struct
26
27 These are solaris extensions that we should implement:
28   [gs]etrctl, rctl.h
29   door_*
30   port_* (port.h)
31   modctl
32   _sharefs
33   _cladm (sys/cladm.h)
34   exportfs, nfs_getfh, nfssvc [SYS_nfssys] (sys/nfssec.h) [maybe not]
35   lgrpsys
36   gethomelgroup
37   atomic_*
38   membar_*
39   getzoneid
40
41 Insert into headers:
42   resolvpath (unistd.h)
43   issetugid (unistd.h)
44   strlcpy, strlcat (string.h or strings.h)
45   getvmusage (sys/vm_usage.h)
46   uucopy, uucopystr (string.h or strings.h)
47
48 INVALID_NOT_TERMINATED_TD_P expects to succeed on terminated threads
49
50 More __builtin_expect's
51
52 Use LIBC_CANCEL_HANDLED where needed
53
54 We should probably define _LP64 and _IP32 (sys/isa_defs.h)
55
56 The following are cancellation points (need to enable async cancellation):
57   pthread_cond_timedwait, pthread_cond_wait
58   sem_timedwait, sem_wait
59
60 pthread_rwlock_*lock are not cancellation points - but we call
61   pthread_cond_timedwait, which is a cancellation point. Hence
62   we need something like __pthread_cond_timedwait_no_cancel.
63
64 Since we now use an entirely libc-based rwlock implementation we should be able
65   to support PTHREAD_RWLOCK_PREFER_READER_NP, PTHREAD_RWLOCK_PREFER_WRITER_NP,
66   and PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP.
67
68 Use syscall instead of INLINE_SYSCALL; also create __syscall_errval
69
70 Get rid of all saved_errno usage
71
72 More clocks in pthread_condattr_setclock
73
74 List of CDDL headers needed to compile random stuff:
75   sys/dlpi.h [Should be LGPL'd]
76   sys/sysi86.h [Should be LGPL'd]
77   sys/ctf_api.h [libctf]
78   libctf.h [libctf]
79   sys/ctf.h [libctr[
80   libproc.h [libproc]
81   libelf.h [libelf]
82   gelf.h [libelf; need to add Elf64_Cap]
83
84 Use cond_t data field for broadcast seqence
85
86 Use timer_* syscalls
87
88 Instead of AT_SECURE we can use AF_SUN_SETUGID [AT_SUN_AUXFLAGS]
89
90 We can't _exit if the main thread goes away since we have daemon threaeds (THR_DAEMON)