Add Linux-compatible {,fl}{get,set,list}xattr() system call interface
to the VFS extended attribute subsystem.
This commit is contained in:
thorpej 2005-07-10 22:05:24 +00:00
parent ccbebfaaf1
commit 9c6adeffa0
4 changed files with 185 additions and 35 deletions

View File

@ -1,14 +1,14 @@
/* $NetBSD: init_sysent.c,v 1.164 2005/05/29 21:11:30 christos Exp $ */
/* $NetBSD: init_sysent.c,v 1.165 2005/07/10 22:05:24 thorpej Exp $ */
/*
* System call switch table.
*
* DO NOT EDIT-- this file is automatically generated.
* created from NetBSD: syscalls.master,v 1.146 2005/05/29 21:07:49 christos Exp
* created from NetBSD: syscalls.master,v 1.147 2005/07/10 22:04:20 thorpej Exp
*/
#include <sys/cdefs.h>
__KERNEL_RCSID(0, "$NetBSD: init_sysent.c,v 1.164 2005/05/29 21:11:30 christos Exp $");
__KERNEL_RCSID(0, "$NetBSD: init_sysent.c,v 1.165 2005/07/10 22:05:24 thorpej Exp $");
#include "opt_ktrace.h"
#include "opt_nfsserver.h"
@ -994,30 +994,30 @@ struct sysent sysent[] = {
sys_pselect }, /* 373 = pselect */
{ 4, s(struct sys_pollts_args), 0,
sys_pollts }, /* 374 = pollts */
{ 0, 0, 0,
sys_nosys }, /* 375 = filler */
{ 0, 0, 0,
sys_nosys }, /* 376 = filler */
{ 0, 0, 0,
sys_nosys }, /* 377 = filler */
{ 0, 0, 0,
sys_nosys }, /* 378 = filler */
{ 0, 0, 0,
sys_nosys }, /* 379 = filler */
{ 0, 0, 0,
sys_nosys }, /* 380 = filler */
{ 0, 0, 0,
sys_nosys }, /* 381 = filler */
{ 0, 0, 0,
sys_nosys }, /* 382 = filler */
{ 0, 0, 0,
sys_nosys }, /* 383 = filler */
{ 0, 0, 0,
sys_nosys }, /* 384 = filler */
{ 0, 0, 0,
sys_nosys }, /* 385 = filler */
{ 0, 0, 0,
sys_nosys }, /* 386 = filler */
{ 5, s(struct sys_setxattr_args), 0,
sys_setxattr }, /* 375 = setxattr */
{ 5, s(struct sys_lsetxattr_args), 0,
sys_lsetxattr }, /* 376 = lsetxattr */
{ 5, s(struct sys_fsetxattr_args), 0,
sys_fsetxattr }, /* 377 = fsetxattr */
{ 4, s(struct sys_getxattr_args), 0,
sys_getxattr }, /* 378 = getxattr */
{ 4, s(struct sys_lgetxattr_args), 0,
sys_lgetxattr }, /* 379 = lgetxattr */
{ 4, s(struct sys_fgetxattr_args), 0,
sys_fgetxattr }, /* 380 = fgetxattr */
{ 3, s(struct sys_listxattr_args), 0,
sys_listxattr }, /* 381 = listxattr */
{ 3, s(struct sys_llistxattr_args), 0,
sys_llistxattr }, /* 382 = llistxattr */
{ 3, s(struct sys_flistxattr_args), 0,
sys_flistxattr }, /* 383 = flistxattr */
{ 2, s(struct sys_removexattr_args), 0,
sys_removexattr }, /* 384 = removexattr */
{ 2, s(struct sys_lremovexattr_args), 0,
sys_lremovexattr }, /* 385 = lremovexattr */
{ 2, s(struct sys_fremovexattr_args), 0,
sys_fremovexattr }, /* 386 = fremovexattr */
{ 0, 0, 0,
sys_nosys }, /* 387 = filler */
{ 0, 0, 0,

View File

@ -1,14 +1,14 @@
/* $NetBSD: syscalls.c,v 1.159 2005/05/29 21:11:30 christos Exp $ */
/* $NetBSD: syscalls.c,v 1.160 2005/07/10 22:05:24 thorpej Exp $ */
/*
* System call names.
*
* DO NOT EDIT-- this file is automatically generated.
* created from NetBSD: syscalls.master,v 1.146 2005/05/29 21:07:49 christos Exp
* created from NetBSD: syscalls.master,v 1.147 2005/07/10 22:04:20 thorpej Exp
*/
#include <sys/cdefs.h>
__KERNEL_RCSID(0, "$NetBSD: syscalls.c,v 1.159 2005/05/29 21:11:30 christos Exp $");
__KERNEL_RCSID(0, "$NetBSD: syscalls.c,v 1.160 2005/07/10 22:05:24 thorpej Exp $");
#if defined(_KERNEL_OPT)
#include "opt_ktrace.h"
@ -510,4 +510,16 @@ const char *const syscallnames[] = {
"extattr_list_link", /* 372 = extattr_list_link */
"pselect", /* 373 = pselect */
"pollts", /* 374 = pollts */
"setxattr", /* 375 = setxattr */
"lsetxattr", /* 376 = lsetxattr */
"fsetxattr", /* 377 = fsetxattr */
"getxattr", /* 378 = getxattr */
"lgetxattr", /* 379 = lgetxattr */
"fgetxattr", /* 380 = fgetxattr */
"listxattr", /* 381 = listxattr */
"llistxattr", /* 382 = llistxattr */
"flistxattr", /* 383 = flistxattr */
"removexattr", /* 384 = removexattr */
"lremovexattr", /* 385 = lremovexattr */
"fremovexattr", /* 386 = fremovexattr */
};

View File

@ -1,10 +1,10 @@
/* $NetBSD: syscall.h,v 1.157 2005/05/29 21:11:30 christos Exp $ */
/* $NetBSD: syscall.h,v 1.158 2005/07/10 22:05:24 thorpej Exp $ */
/*
* System call numbers.
*
* DO NOT EDIT-- this file is automatically generated.
* created from NetBSD: syscalls.master,v 1.146 2005/05/29 21:07:49 christos Exp
* created from NetBSD: syscalls.master,v 1.147 2005/07/10 22:04:20 thorpej Exp
*/
/* syscall: "syscall" ret: "int" args: "int" "..." */
@ -1025,5 +1025,41 @@
/* syscall: "pollts" ret: "int" args: "struct pollfd *" "u_int" "const struct timespec *" "const sigset_t *" */
#define SYS_pollts 374
#define SYS_MAXSYSCALL 375
/* syscall: "setxattr" ret: "int" args: "const char *" "const char *" "void *" "size_t" "int" */
#define SYS_setxattr 375
/* syscall: "lsetxattr" ret: "int" args: "const char *" "const char *" "void *" "size_t" "int" */
#define SYS_lsetxattr 376
/* syscall: "fsetxattr" ret: "int" args: "int" "const char *" "void *" "size_t" "int" */
#define SYS_fsetxattr 377
/* syscall: "getxattr" ret: "int" args: "const char *" "const char *" "void *" "size_t" */
#define SYS_getxattr 378
/* syscall: "lgetxattr" ret: "int" args: "const char *" "const char *" "void *" "size_t" */
#define SYS_lgetxattr 379
/* syscall: "fgetxattr" ret: "int" args: "int" "const char *" "void *" "size_t" */
#define SYS_fgetxattr 380
/* syscall: "listxattr" ret: "int" args: "const char *" "char *" "size_t" */
#define SYS_listxattr 381
/* syscall: "llistxattr" ret: "int" args: "const char *" "char *" "size_t" */
#define SYS_llistxattr 382
/* syscall: "flistxattr" ret: "int" args: "int" "char *" "size_t" */
#define SYS_flistxattr 383
/* syscall: "removexattr" ret: "int" args: "const char *" "const char *" */
#define SYS_removexattr 384
/* syscall: "lremovexattr" ret: "int" args: "const char *" "const char *" */
#define SYS_lremovexattr 385
/* syscall: "fremovexattr" ret: "int" args: "int" "const char *" */
#define SYS_fremovexattr 386
#define SYS_MAXSYSCALL 387
#define SYS_NSYSENT 512

View File

@ -1,10 +1,10 @@
/* $NetBSD: syscallargs.h,v 1.139 2005/05/29 21:11:30 christos Exp $ */
/* $NetBSD: syscallargs.h,v 1.140 2005/07/10 22:05:24 thorpej Exp $ */
/*
* System call argument lists.
*
* DO NOT EDIT-- this file is automatically generated.
* created from NetBSD: syscalls.master,v 1.146 2005/05/29 21:07:49 christos Exp
* created from NetBSD: syscalls.master,v 1.147 2005/07/10 22:04:20 thorpej Exp
*/
#ifndef _SYS__SYSCALLARGS_H_
@ -1588,6 +1588,84 @@ struct sys_pollts_args {
syscallarg(const sigset_t *) mask;
};
struct sys_setxattr_args {
syscallarg(const char *) path;
syscallarg(const char *) name;
syscallarg(void *) value;
syscallarg(size_t) size;
syscallarg(int) flags;
};
struct sys_lsetxattr_args {
syscallarg(const char *) path;
syscallarg(const char *) name;
syscallarg(void *) value;
syscallarg(size_t) size;
syscallarg(int) flags;
};
struct sys_fsetxattr_args {
syscallarg(int) fd;
syscallarg(const char *) name;
syscallarg(void *) value;
syscallarg(size_t) size;
syscallarg(int) flags;
};
struct sys_getxattr_args {
syscallarg(const char *) path;
syscallarg(const char *) name;
syscallarg(void *) value;
syscallarg(size_t) size;
};
struct sys_lgetxattr_args {
syscallarg(const char *) path;
syscallarg(const char *) name;
syscallarg(void *) value;
syscallarg(size_t) size;
};
struct sys_fgetxattr_args {
syscallarg(int) fd;
syscallarg(const char *) name;
syscallarg(void *) value;
syscallarg(size_t) size;
};
struct sys_listxattr_args {
syscallarg(const char *) path;
syscallarg(char *) list;
syscallarg(size_t) size;
};
struct sys_llistxattr_args {
syscallarg(const char *) path;
syscallarg(char *) list;
syscallarg(size_t) size;
};
struct sys_flistxattr_args {
syscallarg(int) fd;
syscallarg(char *) list;
syscallarg(size_t) size;
};
struct sys_removexattr_args {
syscallarg(const char *) path;
syscallarg(const char *) name;
};
struct sys_lremovexattr_args {
syscallarg(const char *) path;
syscallarg(const char *) name;
};
struct sys_fremovexattr_args {
syscallarg(int) fd;
syscallarg(const char *) name;
};
/*
* System call prototypes.
*/
@ -2251,4 +2329,28 @@ int sys_pselect(struct lwp *, void *, register_t *);
int sys_pollts(struct lwp *, void *, register_t *);
int sys_setxattr(struct lwp *, void *, register_t *);
int sys_lsetxattr(struct lwp *, void *, register_t *);
int sys_fsetxattr(struct lwp *, void *, register_t *);
int sys_getxattr(struct lwp *, void *, register_t *);
int sys_lgetxattr(struct lwp *, void *, register_t *);
int sys_fgetxattr(struct lwp *, void *, register_t *);
int sys_listxattr(struct lwp *, void *, register_t *);
int sys_llistxattr(struct lwp *, void *, register_t *);
int sys_flistxattr(struct lwp *, void *, register_t *);
int sys_removexattr(struct lwp *, void *, register_t *);
int sys_lremovexattr(struct lwp *, void *, register_t *);
int sys_fremovexattr(struct lwp *, void *, register_t *);
#endif /* _SYS__SYSCALLARGS_H_ */