Annotation of src/sys/arch/amd64/amd64/genassym.cf, Revision 1.77
1.77 ! maxv 1: # $NetBSD: genassym.cf,v 1.76 2019/05/29 16:54:41 maxv Exp $
1.1 fvdl 2:
3: #
1.28 ad 4: # Copyright (c) 1998, 2006, 2007, 2008 The NetBSD Foundation, Inc.
1.1 fvdl 5: # All rights reserved.
6: #
7: # This code is derived from software contributed to The NetBSD Foundation
1.19 ad 8: # by Charles M. Hannum, and by Andrew Doran.
1.1 fvdl 9: #
10: # Redistribution and use in source and binary forms, with or without
11: # modification, are permitted provided that the following conditions
12: # are met:
13: # 1. Redistributions of source code must retain the above copyright
14: # notice, this list of conditions and the following disclaimer.
15: # 2. Redistributions in binary form must reproduce the above copyright
16: # notice, this list of conditions and the following disclaimer in the
17: # documentation and/or other materials provided with the distribution.
18: #
19: # THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
20: # ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
21: # TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
22: # PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
23: # BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
24: # CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
25: # SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
26: # INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
27: # CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
28: # ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
29: # POSSIBILITY OF SUCH DAMAGE.
30: #
31:
32: #
33: # Copyright (c) 1982, 1990 The Regents of the University of California.
34: # All rights reserved.
35: #
36: # This code is derived from software contributed to Berkeley by
37: # William Jolitz.
38: #
39: # Redistribution and use in source and binary forms, with or without
40: # modification, are permitted provided that the following conditions
41: # are met:
42: # 1. Redistributions of source code must retain the above copyright
43: # notice, this list of conditions and the following disclaimer.
44: # 2. Redistributions in binary form must reproduce the above copyright
45: # notice, this list of conditions and the following disclaimer in the
46: # documentation and/or other materials provided with the distribution.
1.37 tsutsui 47: # 3. Neither the name of the University nor the names of its contributors
1.1 fvdl 48: # may be used to endorse or promote products derived from this software
49: # without specific prior written permission.
50: #
51: # THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
52: # ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
53: # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
54: # ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
55: # FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
56: # DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
57: # OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
58: # HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
59: # LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
60: # OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
61: # SUCH DAMAGE.
62: #
63: # @(#)genassym.c 5.11 (Berkeley) 5/10/91
64: #
65:
66: if defined(_KERNEL_OPT)
67: include "opt_compat_netbsd32.h"
1.5 manu 68: include "opt_compat_linux32.h"
1.18 bouyer 69: include "opt_xen.h"
1.1 fvdl 70: endif
71:
1.6 ad 72: quote #define __MUTEX_PRIVATE
73: quote #define __RWLOCK_PRIVATE
74:
1.1 fvdl 75: include <sys/param.h>
76: include <sys/proc.h>
77: include <sys/resourcevar.h>
78: include <sys/device.h>
79: include <sys/mbuf.h>
1.6 ad 80: include <sys/mutex.h>
81: include <sys/rwlock.h>
82: include <sys/cpu_data.h>
1.10 ad 83: include <sys/evcnt.h>
1.39 ad 84: include <sys/cpu.h>
1.6 ad 85:
1.1 fvdl 86: include <netinet/in.h>
87: include <netinet/in_systm.h>
88: include <netinet/ip.h>
89: include <netinet/ip_var.h>
90:
91: include <uvm/uvm.h>
92:
93: include <machine/trap.h>
94: include <machine/pmap.h>
95: include <machine/vmparam.h>
96: include <machine/intr.h>
97: include <machine/types.h>
1.12 ad 98: include <machine/cpufunc.h>
1.1 fvdl 99:
100: if defined(COMPAT_NETBSD32)
101: include <machine/netbsd32_machdep.h>
102: endif
103:
1.5 manu 104: if defined(COMPAT_LINUX32)
105: include <machine/linux32_machdep.h>
106: endif
107:
1.40 pooka 108: if defined(_KERNEL) && defined(_KERNEL_OPT)
1.1 fvdl 109: include "isa.h"
110: include "ioapic.h"
111: endif
112: if NISA > 0
113: include <machine/isa_machdep.h>
114: endif
115:
116: if NIOAPIC > 0
1.2 fvdl 117: include <machine/i82093reg.h>
1.1 fvdl 118: include <machine/i82093var.h>
119: endif
120:
1.18 bouyer 121: ifdef XEN
1.72 cherry 122: include <xen/include/public/xen.h>
1.18 bouyer 123: endif
124:
1.48 dyoung 125: include <sys/bus.h>
1.12 ad 126:
1.1 fvdl 127: define LSRUN LSRUN
128: define LSONPROC LSONPROC
129:
1.14 yamt 130: define UPAGES UPAGES
131: define USPACE USPACE
132:
133: define KERNBASE_LO KERNBASE_LO
134: define KERNBASE_HI KERNBASE_HI
135: define KERNBASE KERNBASE
136: define KERNTEXTOFF_LO KERNTEXTOFF_LO
137: define KERNTEXTOFF KERNTEXTOFF
138:
139: define NBPG NBPG
140:
141: define L4_SLOT_KERNBASE L4_SLOT_KERNBASE
1.1 fvdl 142: define L3_SLOT_KERNBASE pl3_pi(KERNBASE)
143: define L2_SLOT_KERNBASE pl2_pi(KERNBASE)
144: define L1_SLOT_KERNBASE pl1_pi(KERNBASE)
145:
1.60 maxv 146: define PDE_SIZE sizeof(pd_entry_t)
147:
1.1 fvdl 148: define VM_MAXUSER_ADDRESS (unsigned long long)VM_MAXUSER_ADDRESS
149:
1.43 rmind 150: define L_PCB offsetof(struct lwp, l_addr)
1.9 yamt 151: define L_FLAG offsetof(struct lwp, l_flag)
1.6 ad 152: define L_PROC offsetof(struct lwp, l_proc)
1.19 ad 153: define L_CTXSWTCH offsetof(struct lwp, l_ctxswtch)
1.24 ad 154: define L_NCSW offsetof(struct lwp, l_ncsw)
1.28 ad 155: define L_NOPREEMPT offsetof(struct lwp, l_nopreempt)
156: define L_DOPREEMPT offsetof(struct lwp, l_dopreempt)
1.24 ad 157: define L_CPU offsetof(struct lwp, l_cpu)
1.39 ad 158: define L_KPRIORITY offsetof(struct lwp, l_kpriority)
1.6 ad 159: define L_MD_REGS offsetof(struct lwp, l_md.md_regs)
160: define L_MD_FLAGS offsetof(struct lwp, l_md.md_flags)
161: define L_MD_ASTPENDING offsetof(struct lwp, l_md.md_astpending)
1.1 fvdl 162:
1.6 ad 163: define PAGE_SIZE PAGE_SIZE
1.1 fvdl 164:
1.52 dsl 165: define MDL_IRET MDL_IRET
166: define MDL_COMPAT32 MDL_COMPAT32
1.77 ! maxv 167: define MDL_FPU_IN_CPU MDL_FPU_IN_CPU
1.1 fvdl 168:
169: define P_FLAG offsetof(struct proc, p_flag)
1.3 dsl 170: define P_RASLIST offsetof(struct proc, p_raslist)
1.1 fvdl 171: define P_MD_SYSCALL offsetof(struct proc, p_md.md_syscall)
172:
1.9 yamt 173: define LW_SYSTEM LW_SYSTEM
174:
1.1 fvdl 175: define M_DATA offsetof(struct mbuf, m_data)
176: define M_LEN offsetof(struct mbuf, m_len)
177: define M_NEXT offsetof(struct mbuf, m_next)
178:
179: define IP_SRC offsetof(struct ip, ip_src)
180: define IP_DST offsetof(struct ip, ip_dst)
181:
182: define PCB_CR3 offsetof(struct pcb, pcb_cr3)
183: define PCB_RBP offsetof(struct pcb, pcb_rbp)
184: define PCB_RSP offsetof(struct pcb, pcb_rsp)
1.23 yamt 185: define PCB_RSP0 offsetof(struct pcb, pcb_rsp0)
1.1 fvdl 186: define PCB_CR0 offsetof(struct pcb, pcb_cr0)
187: define PCB_ONFAULT offsetof(struct pcb, pcb_onfault)
1.45 chs 188: define PCB_FLAGS offsetof(struct pcb, pcb_flags)
189: define PCB_COMPAT32 PCB_COMPAT32
190: define PCB_FS offsetof(struct pcb, pcb_fs)
191: define PCB_GS offsetof(struct pcb, pcb_gs)
1.77 ! maxv 192: define PCB_SAVEFPU offsetof(struct pcb, pcb_savefpu)
1.1 fvdl 193:
194: define TF_RDI offsetof(struct trapframe, tf_rdi)
195: define TF_RSI offsetof(struct trapframe, tf_rsi)
196: define TF_RDX offsetof(struct trapframe, tf_rdx)
197: define TF_RCX offsetof(struct trapframe, tf_rcx)
198: define TF_R8 offsetof(struct trapframe, tf_r8)
199: define TF_R9 offsetof(struct trapframe, tf_r9)
200: define TF_R10 offsetof(struct trapframe, tf_r10)
201: define TF_R11 offsetof(struct trapframe, tf_r11)
202: define TF_R12 offsetof(struct trapframe, tf_r12)
203: define TF_R13 offsetof(struct trapframe, tf_r13)
204: define TF_R14 offsetof(struct trapframe, tf_r14)
205: define TF_R15 offsetof(struct trapframe, tf_r15)
206: define TF_RBP offsetof(struct trapframe, tf_rbp)
207: define TF_RBX offsetof(struct trapframe, tf_rbx)
208: define TF_RAX offsetof(struct trapframe, tf_rax)
209: define TF_GS offsetof(struct trapframe, tf_gs)
210: define TF_FS offsetof(struct trapframe, tf_fs)
211: define TF_ES offsetof(struct trapframe, tf_es)
212: define TF_DS offsetof(struct trapframe, tf_ds)
213: define TF_TRAPNO offsetof(struct trapframe, tf_trapno)
214: define TF_ERR offsetof(struct trapframe, tf_err)
215: define TF_RIP offsetof(struct trapframe, tf_rip)
216: define TF_CS offsetof(struct trapframe, tf_cs)
217: define TF_RFLAGS offsetof(struct trapframe, tf_rflags)
218: define TF_RSP offsetof(struct trapframe, tf_rsp)
219: define TF_SS offsetof(struct trapframe, tf_ss)
220:
1.21 dsl 221: # Size of stack area needed for saving registers
222: define TF_REGSIZE offsetof(struct trapframe, tf_trapno)
1.57 kamil 223: # Total size includes registers pushed by hardware
1.1 fvdl 224: define FRAMESIZE sizeof(struct trapframe)
225:
1.64 maxv 226: define TSS_RSP0 offsetof(struct cpu_tss, tss.tss_rsp0)
227:
1.1 fvdl 228: define CPU_INFO_SCRATCH offsetof(struct cpu_info, ci_scratch)
1.14 yamt 229: define CPU_INFO_SELF offsetof(struct cpu_info, ci_self)
230: define CPU_INFO_RESCHED offsetof(struct cpu_info, ci_want_resched)
231: define CPU_INFO_WANT_PMAPLOAD offsetof(struct cpu_info, ci_want_pmapload)
232: define CPU_INFO_TLBSTATE offsetof(struct cpu_info, ci_tlbstate)
233: define TLBSTATE_VALID TLBSTATE_VALID
234: define CPU_INFO_CURLWP offsetof(struct cpu_info, ci_curlwp)
1.33 ad 235: define CPU_INFO_CURLDT offsetof(struct cpu_info, ci_curldt)
1.14 yamt 236: define CPU_INFO_IDLELWP offsetof(struct cpu_info, ci_data.cpu_idlelwp)
237: define CPU_INFO_PMAP offsetof(struct cpu_info, ci_pmap)
1.64 maxv 238: define CPU_INFO_TSS offsetof(struct cpu_info, ci_tss)
1.66 christos 239: ifdef SVS
1.65 maxv 240: define CPU_INFO_UPDIRPA offsetof(struct cpu_info, ci_svs_updirpa)
1.67 maxv 241: define CPU_INFO_RSP0 offsetof(struct cpu_info, ci_svs_rsp0)
242: define CPU_INFO_URSP0 offsetof(struct cpu_info, ci_svs_ursp0)
243: define CPU_INFO_KRSP0 offsetof(struct cpu_info, ci_svs_krsp0)
1.66 christos 244: endif
1.25 ad 245: define CPU_INFO_NSYSCALL offsetof(struct cpu_info, ci_data.cpu_nsyscall)
1.34 ad 246: define CPU_INFO_NTRAP offsetof(struct cpu_info, ci_data.cpu_ntrap)
1.46 matt 247: define CPU_INFO_NINTR offsetof(struct cpu_info, ci_data.cpu_nintr)
1.30 ad 248: define CPU_INFO_CURPRIORITY offsetof(struct cpu_info, ci_schedstate.spc_curpriority)
1.14 yamt 249:
250: define CPU_INFO_GDT offsetof(struct cpu_info, ci_gdt)
1.71 cherry 251: define CPU_INFO_ILEVEL offsetof(struct cpu_info, ci_ilevel)
252: define CPU_INFO_IDEPTH offsetof(struct cpu_info, ci_idepth)
1.73 cherry 253: if !defined(XENPV)
1.14 yamt 254: define CPU_INFO_IPENDING offsetof(struct cpu_info, ci_ipending)
255: define CPU_INFO_IMASK offsetof(struct cpu_info, ci_imask)
256: define CPU_INFO_IUNMASK offsetof(struct cpu_info, ci_iunmask)
257: define CPU_INFO_ISOURCES offsetof(struct cpu_info, ci_isources)
1.71 cherry 258: endif
1.6 ad 259: define CPU_INFO_MTX_COUNT offsetof(struct cpu_info, ci_mtx_count)
260: define CPU_INFO_MTX_OLDSPL offsetof(struct cpu_info, ci_mtx_oldspl)
1.18 bouyer 261: define CPU_INFO_CPUID offsetof(struct cpu_info, ci_cpuid)
1.14 yamt 262: define CPU_INFO_ISTATE offsetof(struct cpu_info, ci_istate)
1.31 ad 263: define CPU_INFO_CC_SKEW offsetof(struct cpu_info, ci_data.cpu_cc_skew)
1.24 ad 264:
1.32 ad 265: define ACPI_SUSPEND_GDT offsetof(struct cpu_info, ci_suspend_gdt)
266: define ACPI_SUSPEND_IDT offsetof(struct cpu_info, ci_suspend_idt)
267: define ACPI_SUSPEND_TR offsetof(struct cpu_info, ci_suspend_tr)
268: define ACPI_SUSPEND_LDT offsetof(struct cpu_info, ci_suspend_ldt)
269: define ACPI_SUSPEND_FS offsetof(struct cpu_info, ci_suspend_fs)
270: define ACPI_SUSPEND_GS offsetof(struct cpu_info, ci_suspend_gs)
271: define ACPI_SUSPEND_KGS offsetof(struct cpu_info, ci_suspend_kgs)
272: define ACPI_SUSPEND_EFER offsetof(struct cpu_info, ci_suspend_efer)
273: define ACPI_SUSPEND_REG offsetof(struct cpu_info, ci_suspend_reg)
274: define ACPI_SUSPEND_CR0 offsetof(struct cpu_info, ci_suspend_cr0)
275: define ACPI_SUSPEND_CR2 offsetof(struct cpu_info, ci_suspend_cr2)
276: define ACPI_SUSPEND_CR3 offsetof(struct cpu_info, ci_suspend_cr3)
277: define ACPI_SUSPEND_CR4 offsetof(struct cpu_info, ci_suspend_cr4)
278: define ACPI_SUSPEND_CR8 offsetof(struct cpu_info, ci_suspend_cr8)
1.20 joerg 279:
1.76 maxv 280: define INVPCID_ADDRESS INVPCID_ADDRESS
281: define INVPCID_CONTEXT INVPCID_CONTEXT
282: define INVPCID_ALL INVPCID_ALL
283: define INVPCID_ALL_NONGLOBAL INVPCID_ALL_NONGLOBAL
284:
285: define PMAP_PCID_USER PMAP_PCID_USER
286: define PMAP_PCID_KERN PMAP_PCID_KERN
287:
1.2 fvdl 288: if NIOAPIC > 0
1.36 drochner 289: define PIC_IOAPIC offsetof(struct pic, pic_ioapic)
1.2 fvdl 290: define IOAPIC_SC_REG offsetof(struct ioapic_softc, sc_reg)
291: define IOAPIC_SC_DATA offsetof(struct ioapic_softc, sc_data)
292: define PIC_LOCK offsetof(struct pic, pic_lock)
293: endif
1.1 fvdl 294:
295: define IH_FUN offsetof(struct intrhand, ih_fun)
296: define IH_ARG offsetof(struct intrhand, ih_arg)
1.18 bouyer 297: define IH_LEVEL offsetof(struct intrhand, ih_level)
1.1 fvdl 298: define IH_NEXT offsetof(struct intrhand, ih_next)
299:
300: ifdef COMPAT_NETBSD32
301: define SC_FS32 offsetof(struct netbsd32_sigcontext, sc_fs)
302: define SC_GS32 offsetof(struct netbsd32_sigcontext, sc_gs)
303: endif
304:
1.5 manu 305: ifdef COMPAT_LINUX32
306: define LINUX32_SF_HANDLER offsetof(struct linux32_sigframe, sf_handler)
307: define LINUX32_SF_SC offsetof(struct linux32_sigframe, sf_sc)
308: define LINUX32_RT_SF_HANDLER offsetof(struct linux32_rt_sigframe, sf_handler)
309: define LINUX32_RT_SF_UC offsetof(struct linux32_rt_sigframe, sf_uc)
310: define LINUX32_SYS_rt_sigreturn LINUX32_SYS_rt_sigreturn
311: define LINUX32_SYS_sigreturn LINUX32_SYS_sigreturn
1.45 chs 312: define LINUX32_SYS_exit LINUX32_SYS_exit
1.5 manu 313: endif
314:
1.18 bouyer 315: define IS_RECURSE offsetof(struct intrsource, is_recurse)
316: define IS_RESUME offsetof(struct intrsource, is_resume)
317: define IS_EVCNT offsetof(struct intrsource, is_evcnt.ev_count)
318: define IS_HANDLERS offsetof(struct intrsource, is_handlers)
319: define IS_PIC offsetof(struct intrsource, is_pic)
320: define IS_FLAGS offsetof(struct intrsource, is_flags)
321: define IS_PIN offsetof(struct intrsource, is_pin)
322: define IS_TYPE offsetof(struct intrsource, is_type)
323: define IS_MAXLEVEL offsetof(struct intrsource, is_maxlevel)
1.19 ad 324: define IS_LWP offsetof(struct intrsource, is_lwp)
1.14 yamt 325:
326: define IPL_NONE IPL_NONE
1.30 ad 327: define IPL_PREEMPT IPL_PREEMPT
1.74 nonaka 328: define IPL_NET IPL_NET
1.14 yamt 329: define IPL_CLOCK IPL_CLOCK
1.16 ad 330: define IPL_HIGH IPL_HIGH
1.14 yamt 331:
332: define LIR_IPI LIR_IPI
333: define LIR_TIMER LIR_TIMER
1.74 nonaka 334: define LIR_HV LIR_HV
1.14 yamt 335:
336: define SIR_NET SIR_NET
337: define SIR_CLOCK SIR_CLOCK
338: define SIR_SERIAL SIR_SERIAL
339:
340: define IREENT_MAGIC IREENT_MAGIC
341:
342: define PSL_MBO PSL_MBO
1.6 ad 343:
344: define MTX_IPL offsetof(struct kmutex, u.s.mtxs_ipl)
345: define MTX_LOCK offsetof(struct kmutex, u.s.mtxs_lock)
346: define MTX_OWNER offsetof(struct kmutex, u.mtxa_owner)
347:
1.14 yamt 348: define RW_OWNER offsetof(struct krwlock, rw_owner)
349: define RW_WRITE_LOCKED RW_WRITE_LOCKED
350: define RW_WRITE_WANTED RW_WRITE_WANTED
351: define RW_READ_INCR RW_READ_INCR
352: define RW_HAS_WAITERS RW_HAS_WAITERS
353: define RW_THREAD RW_THREAD
354: define RW_READER RW_READER
355: define RW_WRITER RW_WRITER
1.10 ad 356:
357: define EV_COUNT offsetof(struct evcnt, ev_count)
1.12 ad 358:
359: define OPTERON_MSR_PASSCODE OPTERON_MSR_PASSCODE
360:
361: define X86_BUS_SPACE_IO X86_BUS_SPACE_IO
1.14 yamt 362:
1.44 dyoung 363: define BST_TYPE offsetof(struct bus_space_tag, bst_type)
364:
1.18 bouyer 365: ifdef XEN
1.27 cegger 366: define CPU_INFO_VCPU offsetof(struct cpu_info, ci_vcpu)
1.71 cherry 367: define CPU_INFO_XPENDING offsetof(struct cpu_info, ci_xpending)
368: define CPU_INFO_XMASK offsetof(struct cpu_info, ci_xmask)
369: define CPU_INFO_XUNMASK offsetof(struct cpu_info, ci_xunmask)
370: define CPU_INFO_XSOURCES offsetof(struct cpu_info, ci_xsources)
1.18 bouyer 371: define EVTCHN_UPCALL_MASK offsetof(struct vcpu_info, evtchn_upcall_mask)
1.73 cherry 372: ifdef XENPV
1.18 bouyer 373: define XEN_PT_BASE offsetof(struct start_info, pt_base)
374: define XEN_NR_PT_FRAMES offsetof(struct start_info, nr_pt_frames)
375: define __HYPERVISOR_iret __HYPERVISOR_iret
1.73 cherry 376: endif /* XENPV */
1.18 bouyer 377: endif
378:
1.14 yamt 379: define NKL4_KIMG_ENTRIES NKL4_KIMG_ENTRIES
380: define NKL3_KIMG_ENTRIES NKL3_KIMG_ENTRIES
381: define NKL2_KIMG_ENTRIES NKL2_KIMG_ENTRIES
382:
383: define PGOFSET PGOFSET
384: define PGSHIFT PGSHIFT
1.22 yamt 385:
1.69 maxv 386: define VM_SPACE_SEP_HIGH32 (0xFFFF800000000000 >> 32)
1.39 ad 387:
388: define RESCHED_KPREEMPT RESCHED_KPREEMPT
1.51 chs 389:
390: define SEL_RPL_MASK SEL_RPL
CVSweb <webmaster@jp.NetBSD.org>