/usr/include/linux
NameSizeModeActions
android/-0755rm
byteorder/-0755rm
caif/-0755rm
can/-0755rm
cifs/-0755rm
dvb/-0755rm
genwqe/-0755rm
hdlc/-0755rm
hsi/-0755rm
iio/-0755rm
isdn/-0755rm
mmc/-0755rm
netfilter/-0755rm
netfilter_arp/-0755rm
netfilter_bridge/-0755rm
netfilter_ipv4/-0755rm
netfilter_ipv6/-0755rm
nfsd/-0755rm
raid/-0755rm
sched/-0755rm
spi/-0755rm
sunrpc/-0755rm
tc_act/-0755rm
tc_ematch/-0755rm
usb/-0755rm
wimax/-0755rm
a.out.h68920644editdlrm
acct.h37330644editdlrm
adb.h11400644editdlrm
adfs_fs.h9930644editdlrm
affs_hardblocks.h15780644editdlrm
agpgart.h39400644editdlrm
aio_abi.h33980644editdlrm
am437x-vpfe.h36810644editdlrm
apm_bios.h36830644editdlrm
arcfb.h2130644editdlrm
arm_sdei.h27510644editdlrm
aspeed-lpc-ctrl.h17800644editdlrm
aspeed-p2a-ctrl.h19060644editdlrm
atalk.h10230644editdlrm
atm.h78880644editdlrm
atmapi.h9520644editdlrm
atmarp.h12960644editdlrm
atmbr2684.h32710644editdlrm
atmclip.h5760644editdlrm
atmdev.h76770644editdlrm
atmioc.h16460644editdlrm
atmlec.h23810644editdlrm
atmmpc.h42260644editdlrm
atmppp.h6390644editdlrm
atmsap.h49700644editdlrm
atmsvc.h18530644editdlrm
atm_eni.h6480644editdlrm
atm_he.h4060644editdlrm
atm_idt77105.h9550644editdlrm
atm_nicstar.h12780644editdlrm
atm_tcp.h16220644editdlrm
atm_zatm.h15400644editdlrm
audit.h207600644editdlrm
aufs_type.h111590644editdlrm
auto_dev-ioctl.h49860644editdlrm
auto_fs.h64280644editdlrm
auto_fs4.h4510644editdlrm
auxvec.h14960644editdlrm
ax25.h28240644editdlrm
b1lli.h17170644editdlrm
batadv_packet.h203730644editdlrm
batman_adv.h163060644editdlrm
baycom.h8830644editdlrm
bcache.h84250644editdlrm
bcm933xx_hcs.h4190644editdlrm
bfs_fs.h19050644editdlrm
binfmts.h6280644editdlrm
blkpg.h16340644editdlrm
blktrace_api.h47010644editdlrm
blkzoned.h53930644editdlrm
bpf.h1385020644editdlrm
bpfilter.h4650644editdlrm
bpf_common.h13670644editdlrm
bpf_perf_event.h5290644editdlrm
bpqether.h9810644editdlrm
bsg.h24940644editdlrm
bt-bmc.h5720644editdlrm
btf.h46240644editdlrm
btrfs.h293090644editdlrm
btrfs_tree.h255070644editdlrm
can.h82130644editdlrm
capability.h117810644editdlrm
capi.h31240644editdlrm
cciss_defs.h32810644editdlrm
cciss_ioctl.h27610644editdlrm
cdrom.h288590644editdlrm
cec-funcs.h536250644editdlrm
cec.h364680644editdlrm
cgroupstats.h22190644editdlrm
chio.h53440644editdlrm
cm4000_cs.h18060644editdlrm
cn_proc.h34560644editdlrm
coda.h182160644editdlrm
coff.h125490644editdlrm
connector.h22530644editdlrm
const.h9910644editdlrm
coresight-stm.h7060644editdlrm
cramfs_fs.h35550644editdlrm
cryptouser.h53210644editdlrm
cuda.h9050644editdlrm
cyclades.h171080644editdlrm
cycx_cfm.h29900644editdlrm
dcbnl.h252910644editdlrm
dccp.h64360644editdlrm
devlink.h148600644editdlrm
dlm.h25530644editdlrm
dlmconstants.h50800644editdlrm
dlm_device.h25430644editdlrm
dlm_netlink.h11590644editdlrm
dlm_plock.h8940644editdlrm
dm-ioctl.h109880644editdlrm
dm-log-userspace.h151910644editdlrm
dma-buf.h17040644editdlrm
dns_resolver.h39490644editdlrm
dqblk_xfs.h89990644editdlrm
edd.h56040644editdlrm
efs_fs_sb.h22270644editdlrm
elf-em.h25860644editdlrm
elf-fdpic.h11240644editdlrm
elf.h136420644editdlrm
elfcore.h29950644editdlrm
errno.h230644editdlrm
errqueue.h15720644editdlrm
erspan.h10590644editdlrm
ethtool.h747840644editdlrm
eventpoll.h27430644editdlrm
fadvise.h8420644editdlrm
falloc.h35840644editdlrm
fanotify.h53690644editdlrm
fb.h164120644editdlrm
fcntl.h34380644editdlrm
fd.h116720644editdlrm
fdreg.h54200644editdlrm
fib_rules.h20360644editdlrm
fiemap.h27750644editdlrm
filter.h22160644editdlrm
firewire-cdev.h442420644editdlrm
firewire-constants.h32310644editdlrm
fou.h8940644editdlrm
fpga-dfl.h61030644editdlrm
fs.h122050644editdlrm
fscrypt.h61200644editdlrm
fsi.h22550644editdlrm
fsl_hypervisor.h73010644editdlrm
fsmap.h43930644editdlrm
fsverity.h9310644editdlrm
fuse.h204070644editdlrm
futex.h49930644editdlrm
gameport.h8970644editdlrm
genetlink.h19230644editdlrm
gen_stats.h15990644editdlrm
gfs2_ondisk.h146510644editdlrm
gigaset_dev.h14420644editdlrm
gpio.h57530644editdlrm
gsmmux.h11440644editdlrm
gtp.h6810644editdlrm
hash_info.h9710644editdlrm
hdlc.h6370644editdlrm
hdlcdrv.h29080644editdlrm
hdreg.h227030644editdlrm
hid.h19010644editdlrm
hiddev.h63450644editdlrm
hidraw.h15110644editdlrm
hpet.h7430644editdlrm
hsr_netlink.h10810644editdlrm
hw_breakpoint.h7420644editdlrm
hyperv.h105690644editdlrm
hysdn_if.h13820644editdlrm
i2c-dev.h26120644editdlrm
i2c.h71320644editdlrm
i2o-dev.h115550644editdlrm
i8k.h15280644editdlrm
icmp.h29750644editdlrm
icmpv6.h41120644editdlrm
if.h108130644editdlrm
ife.h3510644editdlrm
if_addr.h18860644editdlrm
if_addrlabel.h7210644editdlrm
if_alg.h15340644editdlrm
if_arcnet.h37170644editdlrm
if_arp.h65650644editdlrm
if_bonding.h48390644editdlrm
if_bridge.h72660644editdlrm
if_cablemodem.h9860644editdlrm
if_eql.h13490644editdlrm
if_ether.h82270644editdlrm
if_fc.h17380644editdlrm
if_fddi.h43720644editdlrm
if_frad.h30190644editdlrm
if_hippi.h42350644editdlrm
if_infiniband.h12450644editdlrm
if_link.h236750644editdlrm
if_ltalk.h2100644editdlrm
if_macsec.h58320644editdlrm
if_packet.h79550644editdlrm
if_phonet.h4240644editdlrm
if_plip.h6600644editdlrm
if_ppp.h290644editdlrm
if_pppol2tp.h32920644editdlrm
if_pppox.h48790644editdlrm
if_slip.h8720644editdlrm
if_team.h26000644editdlrm
if_tun.h40980644editdlrm
if_tunnel.h48350644editdlrm
if_vlan.h18310644editdlrm
if_x25.h8810644editdlrm
if_xdp.h28190644editdlrm
igmp.h30640644editdlrm
ila.h12460644editdlrm
in.h100750644editdlrm
in6.h75050644editdlrm
inet_diag.h45400644editdlrm
inotify.h32920644editdlrm
input-event-codes.h255680644editdlrm
input.h159850644editdlrm
in_route.h9360644editdlrm
ioctl.h1630644editdlrm
iommu.h45780644editdlrm
io_uring.h34780644editdlrm
ip.h47280644editdlrm
ip6_tunnel.h19530644editdlrm
ipc.h21010644editdlrm
ipmi.h150490644editdlrm
ipmi_bmc.h4880644editdlrm
ipmi_msgdefs.h33500644editdlrm
ipsec.h9470644editdlrm
ipv6.h39670644editdlrm
ipv6_route.h19080644editdlrm
ipx.h23470644editdlrm
ip_vs.h141350644editdlrm
irqnr.h1040644editdlrm
iso_fs.h64850644editdlrm
isst_if.h54080644editdlrm
ivtv.h30220644editdlrm
ivtvfb.h12070644editdlrm
jffs2.h68150644editdlrm
joystick.h34340644editdlrm
kcm.h8220644editdlrm
kcmp.h5220644editdlrm
kcov.h10990644editdlrm
kd.h62830644editdlrm
kdev_t.h3830644editdlrm
kernel-page-flags.h9000644editdlrm
kernel.h1940644editdlrm
kernelcapi.h10190644editdlrm
kexec.h18730644editdlrm
keyboard.h134590644editdlrm
keyctl.h58370644editdlrm
kfd_ioctl.h162630644editdlrm
kvm.h476200644editdlrm
kvm_para.h9680644editdlrm
l2tp.h56720644editdlrm
libc-compat.h82890644editdlrm
lightnvm.h50420644editdlrm
limits.h9370644editdlrm
lirc.h81020644editdlrm
llc.h31640644editdlrm
loop.h25200644editdlrm
lp.h41900644editdlrm
lwtunnel.h12730644editdlrm
magic.h36850644editdlrm
major.h47130644editdlrm
map_to_7segment.h72510644editdlrm
matroxfb.h14640644editdlrm
max2175.h10350644editdlrm
mdio.h156450644editdlrm
media-bus-format.h68220644editdlrm
media.h126410644editdlrm
mei.h19930644editdlrm
membarrier.h78990644editdlrm
memfd.h13240644editdlrm
mempolicy.h21540644editdlrm
meye.h25290644editdlrm
mic_common.h65190644editdlrm
mic_ioctl.h22520644editdlrm
mii.h82810644editdlrm
minix_fs.h21220644editdlrm
mman.h15080644editdlrm
mmtimer.h21170644editdlrm
module.h2550644editdlrm
mount.h45460644editdlrm
mpls.h23020644editdlrm
mpls_iptunnel.h7610644editdlrm
mqueue.h22010644editdlrm
mroute.h58810644editdlrm
mroute6.h49300644editdlrm
msdos_fs.h67310644editdlrm
msg.h33740644editdlrm
mtio.h81750644editdlrm
nbd-netlink.h23780644editdlrm
nbd.h30240644editdlrm
ncsi.h48280644editdlrm
ndctl.h67700644editdlrm
neighbour.h44060644editdlrm
net.h20850644editdlrm
netconf.h6140644editdlrm
netdevice.h22530644editdlrm
netfilter.h16740644editdlrm
netfilter_arp.h4450644editdlrm
netfilter_bridge.h11680644editdlrm
netfilter_ipv4.h14880644editdlrm
netfilter_ipv6.h13830644editdlrm
netlink.h78350644editdlrm
netlink_diag.h15240644editdlrm
netrom.h8070644editdlrm
net_dropmon.h28390644editdlrm
net_namespace.h7150644editdlrm
net_tstamp.h49140644editdlrm
nexthop.h15340644editdlrm
nfc.h112360644editdlrm
nfs.h45000644editdlrm
nfs2.h14680644editdlrm
nfs3.h23590644editdlrm
nfs4.h64320644editdlrm
nfs4_mount.h19320644editdlrm
nfsacl.h6680644editdlrm
nfs_fs.h16080644editdlrm
nfs_idmap.h22430644editdlrm
nfs_mount.h21420644editdlrm
nilfs2_api.h75890644editdlrm
nilfs2_ondisk.h180850644editdlrm
nl80211.h2807150644editdlrm
nsfs.h6390644editdlrm
nubus.h81910644editdlrm
nvme_ioctl.h16610644editdlrm
nvram.h5320644editdlrm
n_r3964.h24100644editdlrm
omap3isp.h208530644editdlrm
omapfb.h59180644editdlrm
oom.h5110644editdlrm
openvswitch.h376760644editdlrm
packet_diag.h16720644editdlrm
param.h1410644editdlrm
parport.h36440644editdlrm
patchkey.h8920644editdlrm
pci.h13800644editdlrm
pcitest.h7110644editdlrm
pci_regs.h572290644editdlrm
perf_event.h343570644editdlrm
personality.h20970644editdlrm
pfkeyv2.h105690644editdlrm
pg.h23940644editdlrm
phantom.h16540644editdlrm
phonet.h46770644editdlrm
pktcdvd.h26870644editdlrm
pkt_cls.h154410644editdlrm
pkt_sched.h276940644editdlrm
pmu.h54440644editdlrm
poll.h220644editdlrm
posix_acl.h12540644editdlrm
posix_acl_xattr.h11150644editdlrm
posix_types.h10980644editdlrm
ppdev.h32850644editdlrm
ppp-comp.h25270644editdlrm
ppp-ioctl.h54380644editdlrm
ppp_defs.h51070644editdlrm
pps.h47340644editdlrm
pr.h10730644editdlrm
prctl.h80730644editdlrm
psample.h7980644editdlrm
psci.h43280644editdlrm
psp-sev.h40360644editdlrm
ptp_clock.h67310644editdlrm
ptrace.h42350644editdlrm
qemu_fw_cfg.h24690644editdlrm
qnx4_fs.h23280644editdlrm
qnxtypes.h6240644editdlrm
qrtr.h8930644editdlrm
quota.h62910644editdlrm
radeonfb.h3600644editdlrm
random.h14150644editdlrm
raw.h3650644editdlrm
rds.h110810644editdlrm
reboot.h13430644editdlrm
reiserfs_fs.h7750644editdlrm
reiserfs_xattr.h5330644editdlrm
resource.h23730644editdlrm
rfkill.h36820644editdlrm
rio_cm_cdev.h32480644editdlrm
rio_mport_cdev.h93300644editdlrm
romfs_fs.h12380644editdlrm
rose.h22320644editdlrm
route.h23320644editdlrm
rpmsg.h5440644editdlrm
rseq.h49040644editdlrm
rtc.h40090644editdlrm
rtnetlink.h190550644editdlrm
rxrpc.h48970644editdlrm
scc.h45970644editdlrm
sched.h46470644editdlrm
scif_ioctl.h63820644editdlrm
screen_info.h24790644editdlrm
sctp.h347830644editdlrm
sdla.h28390644editdlrm
seccomp.h49380644editdlrm
securebits.h27040644editdlrm
sed-opal.h32970644editdlrm
seg6.h11700644editdlrm
seg6_genl.h5890644editdlrm
seg6_hmac.h4230644editdlrm
seg6_iptunnel.h9270644editdlrm
seg6_local.h20600644editdlrm
selinux_netlink.h11950644editdlrm
sem.h30430644editdlrm
serial.h38660644editdlrm
serial_core.h64360644editdlrm
serial_reg.h155520644editdlrm
serio.h20990644editdlrm
shm.h37850644editdlrm
signal.h3880644editdlrm
signalfd.h12330644editdlrm
smc.h7800644editdlrm
smc_diag.h28350644editdlrm
smiapp.h10580644editdlrm
snmp.h130140644editdlrm
socket.h8190644editdlrm
sockios.h68460644editdlrm
sock_diag.h7270644editdlrm
sonet.h22900644editdlrm
sonypi.h53090644editdlrm
sound.h12370644editdlrm
soundcard.h460380644editdlrm
stat.h61000644editdlrm
stddef.h6120644editdlrm
stm.h12750644editdlrm
string.h2380644editdlrm
suspend_ioctls.h14310644editdlrm
swab.h69460644editdlrm
switchtec_ioctl.h47680644editdlrm
synclink.h89850644editdlrm
sync_file.h28840644editdlrm
sysctl.h258870644editdlrm
sysinfo.h10490644editdlrm
target_core_user.h38990644editdlrm
taskstats.h71520644editdlrm
tcp.h112040644editdlrm
tcp_metrics.h15490644editdlrm
tee.h125810644editdlrm
termios.h5060644editdlrm
thermal.h9240644editdlrm
time.h17480644editdlrm
timerfd.h9360644editdlrm
times.h2780644editdlrm
timex.h78170644editdlrm
time_types.h9960644editdlrm
tiocl.h17290644editdlrm
tipc.h87300644editdlrm
tipc_config.h148480644editdlrm
tipc_netlink.h91560644editdlrm
tipc_sockets_diag.h4680644editdlrm
tls.h42880644editdlrm
toshiba.h19300644editdlrm
tty.h15850644editdlrm
tty_flags.h45270644editdlrm
types.h14760644editdlrm
udf_fs_i.h6970644editdlrm
udmabuf.h6430644editdlrm
udp.h16130644editdlrm
uhid.h46480644editdlrm
uinput.h92610644editdlrm
uio.h7320644editdlrm
uleds.h7980644editdlrm
ultrasound.h45620644editdlrm
un.h3840644editdlrm
unistd.h2200644editdlrm
unix_diag.h13280644editdlrm
usbdevice_fs.h83170644editdlrm
usbip.h6400644editdlrm
userfaultfd.h68110644editdlrm
userio.h15160644editdlrm
utime.h2150644editdlrm
utsname.h6690644editdlrm
uuid.h13560644editdlrm
uvcvideo.h25900644editdlrm
v4l2-common.h41770644editdlrm
v4l2-controls.h520610644editdlrm
v4l2-dv-timings.h315620644editdlrm
v4l2-mediabus.h51010644editdlrm
v4l2-subdev.h63390644editdlrm
vboxguest.h86990644editdlrm
vbox_err.h72570644editdlrm
vbox_vmmdev_types.h115090644editdlrm
version.h1170644editdlrm
veth.h2240644editdlrm
vfio.h341880644editdlrm
vfio_ccw.h8360644editdlrm
vhost.h50690644editdlrm
vhost_types.h31640644editdlrm
videodev2.h913370644editdlrm
virtio_9p.h20410644editdlrm
virtio_balloon.h50360644editdlrm
virtio_blk.h67970644editdlrm
virtio_config.h38360644editdlrm
virtio_console.h31360644editdlrm
virtio_crypto.h139330644editdlrm
virtio_fs.h4900644editdlrm
virtio_gpu.h85400644editdlrm
virtio_ids.h25920644editdlrm
virtio_input.h25060644editdlrm
virtio_iommu.h37830644editdlrm
virtio_mmio.h45860644editdlrm
virtio_net.h105490644editdlrm
virtio_pci.h70790644editdlrm
virtio_pmem.h6390644editdlrm
virtio_ring.h74300644editdlrm
virtio_rng.h2650644editdlrm
virtio_scsi.h60350644editdlrm
virtio_types.h21530644editdlrm
virtio_vsock.h30860644editdlrm
vmcore.h4550644editdlrm
vm_sockets.h53140644editdlrm
vm_sockets_diag.h9630644editdlrm
vsockmon.h18850644editdlrm
vt.h30590644editdlrm
vtpm_proxy.h17190644editdlrm
wait.h6820644editdlrm
watchdog.h23350644editdlrm
watch_queue.h17680644editdlrm
wimax.h83710644editdlrm
wireless.h427150644editdlrm
wmi.h17610644editdlrm
x25.h35620644editdlrm
xattr.h28600644editdlrm
xdp_diag.h12590644editdlrm
xfrm.h119940644editdlrm
xilinx-v4l2-controls.h29760644editdlrm
zorro.h32960644editdlrm
zorro_ids.h300650644editdlrm
Edit: /usr/include/linux/coda.h (18216B)
/* You may distribute this file under either of the two licenses that follow at your discretion. */ /* BLURB lgpl Coda File System Release 5 Copyright (c) 1987-1999 Carnegie Mellon University Additional copyrights listed below This code is distributed "AS IS" without warranty of any kind under the terms of the GNU Library General Public Licence Version 2, as shown in the file LICENSE, or under the license shown below. The technical and financial contributors to Coda are listed in the file CREDITS. Additional copyrights */ /* Coda: an Experimental Distributed File System Release 4.0 Copyright (c) 1987-1999 Carnegie Mellon University All Rights Reserved Permission to use, copy, modify and distribute this software and its documentation is hereby granted, provided that both the copyright notice and this permission notice appear in all copies of the software, derivative works or modified versions, and any portions thereof, and that both notices appear in supporting documentation, and that credit is given to Carnegie Mellon University in all documents and publicity pertaining to direct or indirect use of this code or its derivatives. CODA IS AN EXPERIMENTAL SOFTWARE SYSTEM AND IS KNOWN TO HAVE BUGS, SOME OF WHICH MAY HAVE SERIOUS CONSEQUENCES. CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS" CONDITION. CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR ANY DAMAGES WHATSOEVER RESULTING DIRECTLY OR INDIRECTLY FROM THE USE OF THIS SOFTWARE OR OF ANY DERIVATIVE WORK. Carnegie Mellon encourages users of this software to return any improvements or extensions that they make, and to grant Carnegie Mellon the rights to redistribute these changes without encumbrance. */ /* * * Based on cfs.h from Mach, but revamped for increased simplicity. * Linux modifications by * Peter Braam, Aug 1996 */ #ifndef _CODA_HEADER_ #define _CODA_HEADER_ /* Catch new _KERNEL defn for NetBSD and DJGPP/__CYGWIN32__ */ #if defined(__NetBSD__) || \ ((defined(DJGPP) || defined(__CYGWIN32__)) && !defined(KERNEL)) #include #endif #ifndef CODA_MAXSYMLINKS #define CODA_MAXSYMLINKS 10 #endif #if defined(DJGPP) || defined(__CYGWIN32__) #ifdef KERNEL typedef unsigned long u_long; typedef unsigned int u_int; typedef unsigned short u_short; typedef u_long ino_t; typedef u_long dev_t; typedef void * caddr_t; #ifdef DOS typedef unsigned __int64 u_quad_t; #else typedef unsigned long long u_quad_t; #endif #define __inline__ #else /* DJGPP but not KERNEL */ #include typedef unsigned long long u_quad_t; #endif /* !KERNEL */ #endif /* !DJGPP */ #if defined(__linux__) #include #define cdev_t u_quad_t #if !defined(_UQUAD_T_) && (!defined(__GLIBC__) || __GLIBC__ < 2) #define _UQUAD_T_ 1 typedef unsigned long long u_quad_t; #endif #else #define cdev_t dev_t #endif #ifndef __BIT_TYPES_DEFINED__ #define __BIT_TYPES_DEFINED__ typedef signed char int8_t; typedef unsigned char u_int8_t; typedef short int16_t; typedef unsigned short u_int16_t; typedef int int32_t; typedef unsigned int u_int32_t; #endif /* * Cfs constants */ #define CODA_MAXNAMLEN 255 #define CODA_MAXPATHLEN 1024 #define CODA_MAXSYMLINK 10 /* these are Coda's version of O_RDONLY etc combinations * to deal with VFS open modes */ #define C_O_READ 0x001 #define C_O_WRITE 0x002 #define C_O_TRUNC 0x010 #define C_O_EXCL 0x100 #define C_O_CREAT 0x200 /* these are to find mode bits in Venus */ #define C_M_READ 00400 #define C_M_WRITE 00200 /* for access Venus will use */ #define C_A_C_OK 8 /* Test for writing upon create. */ #define C_A_R_OK 4 /* Test for read permission. */ #define C_A_W_OK 2 /* Test for write permission. */ #define C_A_X_OK 1 /* Test for execute permission. */ #define C_A_F_OK 0 /* Test for existence. */ #ifndef _VENUS_DIRENT_T_ #define _VENUS_DIRENT_T_ 1 struct venus_dirent { u_int32_t d_fileno; /* file number of entry */ u_int16_t d_reclen; /* length of this record */ u_int8_t d_type; /* file type, see below */ u_int8_t d_namlen; /* length of string in d_name */ char d_name[CODA_MAXNAMLEN + 1];/* name must be no longer than this */ }; #undef DIRSIZ #define DIRSIZ(dp) ((sizeof (struct venus_dirent) - (CODA_MAXNAMLEN+1)) + \ (((dp)->d_namlen+1 + 3) &~ 3)) /* * File types */ #define CDT_UNKNOWN 0 #define CDT_FIFO 1 #define CDT_CHR 2 #define CDT_DIR 4 #define CDT_BLK 6 #define CDT_REG 8 #define CDT_LNK 10 #define CDT_SOCK 12 #define CDT_WHT 14 /* * Convert between stat structure types and directory types. */ #define IFTOCDT(mode) (((mode) & 0170000) >> 12) #define CDTTOIF(dirtype) ((dirtype) << 12) #endif #ifndef _VUID_T_ #define _VUID_T_ typedef u_int32_t vuid_t; typedef u_int32_t vgid_t; #endif /*_VUID_T_ */ struct CodaFid { u_int32_t opaque[4]; }; #define coda_f2i(fid)\ (fid ? (fid->opaque[3] ^ (fid->opaque[2]<<10) ^ (fid->opaque[1]<<20) ^ fid->opaque[0]) : 0) #ifndef _VENUS_VATTR_T_ #define _VENUS_VATTR_T_ /* * Vnode types. VNON means no type. */ enum coda_vtype { C_VNON, C_VREG, C_VDIR, C_VBLK, C_VCHR, C_VLNK, C_VSOCK, C_VFIFO, C_VBAD }; struct coda_timespec { int64_t tv_sec; /* seconds */ long tv_nsec; /* nanoseconds */ }; struct coda_vattr { long va_type; /* vnode type (for create) */ u_short va_mode; /* files access mode and type */ short va_nlink; /* number of references to file */ vuid_t va_uid; /* owner user id */ vgid_t va_gid; /* owner group id */ long va_fileid; /* file id */ u_quad_t va_size; /* file size in bytes */ long va_blocksize; /* blocksize preferred for i/o */ struct coda_timespec va_atime; /* time of last access */ struct coda_timespec va_mtime; /* time of last modification */ struct coda_timespec va_ctime; /* time file changed */ u_long va_gen; /* generation number of file */ u_long va_flags; /* flags defined for file */ cdev_t va_rdev; /* device special file represents */ u_quad_t va_bytes; /* bytes of disk space held by file */ u_quad_t va_filerev; /* file modification number */ }; #endif /* structure used by CODA_STATFS for getting cache information from venus */ struct coda_statfs { int32_t f_blocks; int32_t f_bfree; int32_t f_bavail; int32_t f_files; int32_t f_ffree; }; /* * Kernel <--> Venus communications. */ #define CODA_ROOT 2 #define CODA_OPEN_BY_FD 3 #define CODA_OPEN 4 #define CODA_CLOSE 5 #define CODA_IOCTL 6 #define CODA_GETATTR 7 #define CODA_SETATTR 8 #define CODA_ACCESS 9 #define CODA_LOOKUP 10 #define CODA_CREATE 11 #define CODA_REMOVE 12 #define CODA_LINK 13 #define CODA_RENAME 14 #define CODA_MKDIR 15 #define CODA_RMDIR 16 #define CODA_SYMLINK 18 #define CODA_READLINK 19 #define CODA_FSYNC 20 #define CODA_VGET 22 #define CODA_SIGNAL 23 #define CODA_REPLACE 24 /* DOWNCALL */ #define CODA_FLUSH 25 /* DOWNCALL */ #define CODA_PURGEUSER 26 /* DOWNCALL */ #define CODA_ZAPFILE 27 /* DOWNCALL */ #define CODA_ZAPDIR 28 /* DOWNCALL */ #define CODA_PURGEFID 30 /* DOWNCALL */ #define CODA_OPEN_BY_PATH 31 #define CODA_RESOLVE 32 #define CODA_REINTEGRATE 33 #define CODA_STATFS 34 #define CODA_STORE 35 #define CODA_RELEASE 36 #define CODA_ACCESS_INTENT 37 #define CODA_NCALLS 38 #define DOWNCALL(opcode) (opcode >= CODA_REPLACE && opcode <= CODA_PURGEFID) #define VC_MAXDATASIZE 8192 #define VC_MAXMSGSIZE sizeof(union inputArgs)+sizeof(union outputArgs) +\ VC_MAXDATASIZE #define CIOC_KERNEL_VERSION _IOWR('c', 10, size_t) // CODA_KERNEL_VERSION 0 /* don't care about kernel version number */ // CODA_KERNEL_VERSION 1 /* The old venus 4.6 compatible interface */ // CODA_KERNEL_VERSION 2 /* venus_lookup gets an extra parameter */ // CODA_KERNEL_VERSION 3 /* 128-bit file identifiers */ // CODA_KERNEL_VERSION 4 /* 64-bit timespec */ #define CODA_KERNEL_VERSION 5 /* access intent support */ /* * Venus <-> Coda RPC arguments */ struct coda_in_hdr { u_int32_t opcode; u_int32_t unique; /* Keep multiple outstanding msgs distinct */ __kernel_pid_t pid; __kernel_pid_t pgid; vuid_t uid; }; /* Really important that opcode and unique are 1st two fields! */ struct coda_out_hdr { u_int32_t opcode; u_int32_t unique; u_int32_t result; }; /* coda_root: NO_IN */ struct coda_root_out { struct coda_out_hdr oh; struct CodaFid VFid; }; struct coda_root_in { struct coda_in_hdr in; }; /* coda_open: */ struct coda_open_in { struct coda_in_hdr ih; struct CodaFid VFid; int flags; }; struct coda_open_out { struct coda_out_hdr oh; cdev_t dev; ino_t inode; }; /* coda_store: */ struct coda_store_in { struct coda_in_hdr ih; struct CodaFid VFid; int flags; }; struct coda_store_out { struct coda_out_hdr out; }; /* coda_release: */ struct coda_release_in { struct coda_in_hdr ih; struct CodaFid VFid; int flags; }; struct coda_release_out { struct coda_out_hdr out; }; /* coda_close: */ struct coda_close_in { struct coda_in_hdr ih; struct CodaFid VFid; int flags; }; struct coda_close_out { struct coda_out_hdr out; }; /* coda_ioctl: */ struct coda_ioctl_in { struct coda_in_hdr ih; struct CodaFid VFid; int cmd; int len; int rwflag; char *data; /* Place holder for data. */ }; struct coda_ioctl_out { struct coda_out_hdr oh; int len; caddr_t data; /* Place holder for data. */ }; /* coda_getattr: */ struct coda_getattr_in { struct coda_in_hdr ih; struct CodaFid VFid; }; struct coda_getattr_out { struct coda_out_hdr oh; struct coda_vattr attr; }; /* coda_setattr: NO_OUT */ struct coda_setattr_in { struct coda_in_hdr ih; struct CodaFid VFid; struct coda_vattr attr; }; struct coda_setattr_out { struct coda_out_hdr out; }; /* coda_access: NO_OUT */ struct coda_access_in { struct coda_in_hdr ih; struct CodaFid VFid; int flags; }; struct coda_access_out { struct coda_out_hdr out; }; /* lookup flags */ #define CLU_CASE_SENSITIVE 0x01 #define CLU_CASE_INSENSITIVE 0x02 /* coda_lookup: */ struct coda_lookup_in { struct coda_in_hdr ih; struct CodaFid VFid; int name; /* Place holder for data. */ int flags; }; struct coda_lookup_out { struct coda_out_hdr oh; struct CodaFid VFid; int vtype; }; /* coda_create: */ struct coda_create_in { struct coda_in_hdr ih; struct CodaFid VFid; struct coda_vattr attr; int excl; int mode; int name; /* Place holder for data. */ }; struct coda_create_out { struct coda_out_hdr oh; struct CodaFid VFid; struct coda_vattr attr; }; /* coda_remove: NO_OUT */ struct coda_remove_in { struct coda_in_hdr ih; struct CodaFid VFid; int name; /* Place holder for data. */ }; struct coda_remove_out { struct coda_out_hdr out; }; /* coda_link: NO_OUT */ struct coda_link_in { struct coda_in_hdr ih; struct CodaFid sourceFid; /* cnode to link *to* */ struct CodaFid destFid; /* Directory in which to place link */ int tname; /* Place holder for data. */ }; struct coda_link_out { struct coda_out_hdr out; }; /* coda_rename: NO_OUT */ struct coda_rename_in { struct coda_in_hdr ih; struct CodaFid sourceFid; int srcname; struct CodaFid destFid; int destname; }; struct coda_rename_out { struct coda_out_hdr out; }; /* coda_mkdir: */ struct coda_mkdir_in { struct coda_in_hdr ih; struct CodaFid VFid; struct coda_vattr attr; int name; /* Place holder for data. */ }; struct coda_mkdir_out { struct coda_out_hdr oh; struct CodaFid VFid; struct coda_vattr attr; }; /* coda_rmdir: NO_OUT */ struct coda_rmdir_in { struct coda_in_hdr ih; struct CodaFid VFid; int name; /* Place holder for data. */ }; struct coda_rmdir_out { struct coda_out_hdr out; }; /* coda_symlink: NO_OUT */ struct coda_symlink_in { struct coda_in_hdr ih; struct CodaFid VFid; /* Directory to put symlink in */ int srcname; struct coda_vattr attr; int tname; }; struct coda_symlink_out { struct coda_out_hdr out; }; /* coda_readlink: */ struct coda_readlink_in { struct coda_in_hdr ih; struct CodaFid VFid; }; struct coda_readlink_out { struct coda_out_hdr oh; int count; caddr_t data; /* Place holder for data. */ }; /* coda_fsync: NO_OUT */ struct coda_fsync_in { struct coda_in_hdr ih; struct CodaFid VFid; }; struct coda_fsync_out { struct coda_out_hdr out; }; /* coda_vget: */ struct coda_vget_in { struct coda_in_hdr ih; struct CodaFid VFid; }; struct coda_vget_out { struct coda_out_hdr oh; struct CodaFid VFid; int vtype; }; /* CODA_SIGNAL is out-of-band, doesn't need data. */ /* CODA_INVALIDATE is a venus->kernel call */ /* CODA_FLUSH is a venus->kernel call */ /* coda_purgeuser: */ /* CODA_PURGEUSER is a venus->kernel call */ struct coda_purgeuser_out { struct coda_out_hdr oh; vuid_t uid; }; /* coda_zapfile: */ /* CODA_ZAPFILE is a venus->kernel call */ struct coda_zapfile_out { struct coda_out_hdr oh; struct CodaFid CodaFid; }; /* coda_zapdir: */ /* CODA_ZAPDIR is a venus->kernel call */ struct coda_zapdir_out { struct coda_out_hdr oh; struct CodaFid CodaFid; }; /* coda_purgefid: */ /* CODA_PURGEFID is a venus->kernel call */ struct coda_purgefid_out { struct coda_out_hdr oh; struct CodaFid CodaFid; }; /* coda_replace: */ /* CODA_REPLACE is a venus->kernel call */ struct coda_replace_out { /* coda_replace is a venus->kernel call */ struct coda_out_hdr oh; struct CodaFid NewFid; struct CodaFid OldFid; }; /* coda_open_by_fd: */ struct coda_open_by_fd_in { struct coda_in_hdr ih; struct CodaFid VFid; int flags; }; struct coda_open_by_fd_out { struct coda_out_hdr oh; int fd; }; /* coda_open_by_path: */ struct coda_open_by_path_in { struct coda_in_hdr ih; struct CodaFid VFid; int flags; }; struct coda_open_by_path_out { struct coda_out_hdr oh; int path; }; /* coda_statfs: NO_IN */ struct coda_statfs_in { struct coda_in_hdr in; }; struct coda_statfs_out { struct coda_out_hdr oh; struct coda_statfs stat; }; #define CODA_ACCESS_TYPE_READ 1 #define CODA_ACCESS_TYPE_WRITE 2 #define CODA_ACCESS_TYPE_MMAP 3 #define CODA_ACCESS_TYPE_READ_FINISH 4 #define CODA_ACCESS_TYPE_WRITE_FINISH 5 /* coda_access_intent: NO_OUT */ struct coda_access_intent_in { struct coda_in_hdr ih; struct CodaFid VFid; int count; int pos; int type; }; struct coda_access_intent_out { struct coda_out_hdr out; }; /* * Occasionally, we don't cache the fid returned by CODA_LOOKUP. * For instance, if the fid is inconsistent. * This case is handled by setting the top bit of the type result parameter. */ #define CODA_NOCACHE 0x80000000 union inputArgs { struct coda_in_hdr ih; /* NB: every struct below begins with an ih */ struct coda_open_in coda_open; struct coda_store_in coda_store; struct coda_release_in coda_release; struct coda_close_in coda_close; struct coda_ioctl_in coda_ioctl; struct coda_getattr_in coda_getattr; struct coda_setattr_in coda_setattr; struct coda_access_in coda_access; struct coda_lookup_in coda_lookup; struct coda_create_in coda_create; struct coda_remove_in coda_remove; struct coda_link_in coda_link; struct coda_rename_in coda_rename; struct coda_mkdir_in coda_mkdir; struct coda_rmdir_in coda_rmdir; struct coda_symlink_in coda_symlink; struct coda_readlink_in coda_readlink; struct coda_fsync_in coda_fsync; struct coda_vget_in coda_vget; struct coda_open_by_fd_in coda_open_by_fd; struct coda_open_by_path_in coda_open_by_path; struct coda_statfs_in coda_statfs; struct coda_access_intent_in coda_access_intent; }; union outputArgs { struct coda_out_hdr oh; /* NB: every struct below begins with an oh */ struct coda_root_out coda_root; struct coda_open_out coda_open; struct coda_ioctl_out coda_ioctl; struct coda_getattr_out coda_getattr; struct coda_lookup_out coda_lookup; struct coda_create_out coda_create; struct coda_mkdir_out coda_mkdir; struct coda_readlink_out coda_readlink; struct coda_vget_out coda_vget; struct coda_purgeuser_out coda_purgeuser; struct coda_zapfile_out coda_zapfile; struct coda_zapdir_out coda_zapdir; struct coda_purgefid_out coda_purgefid; struct coda_replace_out coda_replace; struct coda_open_by_fd_out coda_open_by_fd; struct coda_open_by_path_out coda_open_by_path; struct coda_statfs_out coda_statfs; }; union coda_downcalls { /* CODA_INVALIDATE is a venus->kernel call */ /* CODA_FLUSH is a venus->kernel call */ struct coda_purgeuser_out purgeuser; struct coda_zapfile_out zapfile; struct coda_zapdir_out zapdir; struct coda_purgefid_out purgefid; struct coda_replace_out replace; }; /* * Used for identifying usage of "Control" and pioctls */ #define PIOCPARM_MASK 0x0000ffff struct ViceIoctl { void *in; /* Data to be transferred in */ void *out; /* Data to be transferred out */ u_short in_size; /* Size of input buffer <= 2K */ u_short out_size; /* Maximum size of output buffer, <= 2K */ }; struct PioctlData { const char *path; int follow; struct ViceIoctl vi; }; #define CODA_CONTROL ".CONTROL" #define CODA_CONTROLLEN 8 #define CTL_INO -1 /* Data passed to mount */ #define CODA_MOUNT_VERSION 1 struct coda_mount_data { int version; int fd; /* Opened device */ }; #endif /* _CODA_HEADER_ */