aboutsummaryrefslogtreecommitdiff
path: root/lib/libedit/tokenizer.c
diff options
context:
space:
mode:
authorKonstantin Belousov <kib@FreeBSD.org>2012-07-19 19:09:12 +0000
committerKonstantin Belousov <kib@FreeBSD.org>2012-07-19 19:09:12 +0000
commit83b22b05e66e264f188800e34fdc1d4cc88cd287 (patch)
treebe675caf28ff4a939913574d8fc2b7e490e94fd0 /lib/libedit/tokenizer.c
parent78cf63fc10aeb1126523e7f63d388f50c81006e6 (diff)
Introduce curpcb magic variable, similar to curthread, which is MD
amd64. It is implemented as __pure2 inline with non-volatile asm read from pcpu, which allows a compiler to cache its results. Convert most PCPU_GET(pcb) and curthread->td_pcb accesses into curpcb. Note that __curthread() uses magic value 0 as an offsetof(struct pcpu, pc_curthread). It seems to be done this way due to machine/pcpu.h needs to be processed before sys/pcpu.h, because machine/pcpu.h contributes machine-depended fields to the struct pcpu definition. As result, machine/pcpu.h cannot use struct pcpu yet. The __curpcb() also uses a magic constant instead of offsetof(struct pcpu, pc_curpcb) for the same reason. The constants are now defined as symbols and CTASSERTs are added to ensure that future KBI changes do not break the code. Requested and reviewed by: bde MFC after: 3 weeks
Notes
Notes: svn path=/head/; revision=238623
Diffstat (limited to 'lib/libedit/tokenizer.c')
0 files changed, 0 insertions, 0 deletions