diff options
author | Dean Roehrich <roehrich@sgi.com> | 2002-06-12 15:27:38 +0000 |
---|---|---|
committer | Dean Roehrich <roehrich@sgi.com> | 2002-06-12 15:27:38 +0000 |
commit | 702ef6c7039071b1a3ad4460a358e6e8fdb206e2 (patch) | |
tree | 1bc975d35e31e13cc1d3e5f4eb6e6a2d37f1144e | |
parent | 44cf18cde66edc71d416ac9f6dbb2a64102c4f52 (diff) | |
download | dmapi-dev-702ef6c7039071b1a3ad4460a358e6e8fdb206e2.tar.gz |
No Message Supplied
-rw-r--r-- | VERSION | 2 | ||||
-rw-r--r-- | build/rpm/dmapi.spec.in | 2 | ||||
-rw-r--r-- | debian/changelog | 6 | ||||
-rw-r--r-- | debian/control | 4 | ||||
-rw-r--r-- | include/dmapi_kern.h | 11 | ||||
-rw-r--r-- | libdm/Makefile | 3 | ||||
-rw-r--r-- | libdm/dmapi_lib.c | 637 |
7 files changed, 341 insertions, 324 deletions
@@ -3,5 +3,5 @@ # PKG_MAJOR=2 PKG_MINOR=0 -PKG_REVISION=2 +PKG_REVISION=3 PKG_BUILD=0 diff --git a/build/rpm/dmapi.spec.in b/build/rpm/dmapi.spec.in index 2f61cd6..7e77006 100644 --- a/build/rpm/dmapi.spec.in +++ b/build/rpm/dmapi.spec.in @@ -23,7 +23,7 @@ by the libdm library. %package devel Summary: Data Management API static libraries and headers. Group: Development/Libraries -Requires: @pkg_name@ >= 2.0.0 +Requires: @pkg_name@ >= 2.0.3 %description devel dmapi-devel contains the libraries and header files needed to diff --git a/debian/changelog b/debian/changelog index 6884d00..f85b01f 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,9 @@ +dmapi (2.0.3-1) unstable; urgency=low + + * kernel-library interface is changed, now 64bit safe. + + -- Dean Roehrich <roehrich@sgi.com> Wed, 12 Jun 2002 09:44:06 + dmapi (2.0.2-1) unstable; urgency=low * New upstream release diff --git a/debian/control b/debian/control index a077c42..5cf5f88 100644 --- a/debian/control +++ b/debian/control @@ -19,8 +19,8 @@ Description: Data Management API runtime environment Package: dmapi-dev Section: devel Priority: extra -Depends: libc6-dev, dmapi (>= 2.0.0), xfslibs-dev (>= 2.0.0) -Conflicts: dmapi (<< 2.0.0), xfslibs-dev (<< 2.0.0) +Depends: libc6-dev, dmapi (>= 2.0.3), xfslibs-dev (>= 2.0.0) +Conflicts: dmapi (<< 2.0.3), xfslibs-dev (<< 2.0.0) Architecture: any Description: Data Management API static libraries and headers dmapi-dev contains the libraries and header files needed to diff --git a/include/dmapi_kern.h b/include/dmapi_kern.h index 63791c0..2f40faa 100644 --- a/include/dmapi_kern.h +++ b/include/dmapi_kern.h @@ -34,11 +34,20 @@ #define __DMAPI_KERN_H__ +union sys_dmapi_uarg { + void *p; + __u64 u; +}; +typedef union sys_dmapi_uarg sys_dmapi_u; + struct sys_dmapi_args { - long arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11; + sys_dmapi_u uarg1, uarg2, uarg3, uarg4, uarg5, uarg6, uarg7, uarg8, + uarg9, uarg10, uarg11; }; typedef struct sys_dmapi_args sys_dmapi_args_t; +#define DM_Uarg(uap,i) uap->uarg##i.u +#define DM_Parg(uap,i) uap->uarg##i.p #ifdef __KERNEL__ diff --git a/libdm/Makefile b/libdm/Makefile index 6a7d101..46a1a4b 100644 --- a/libdm/Makefile +++ b/libdm/Makefile @@ -34,9 +34,8 @@ TOPDIR = .. include $(TOPDIR)/include/builddefs LTLIBRARY = libdm.la -#LDLIBS = -lhandle LT_CURRENT = 0 -LT_REVISION = 2 +LT_REVISION = 3 LT_AGE = 0 HFILES = dmapi_lib.h diff --git a/libdm/dmapi_lib.c b/libdm/dmapi_lib.c index 2590dbc..b358628 100644 --- a/libdm/dmapi_lib.c +++ b/libdm/dmapi_lib.c @@ -36,19 +36,21 @@ #include <sys/stat.h> #include <sys/ioctl.h> #include <sys/errno.h> +#include <stdint.h> #include <dmapi.h> #include <dmapi_kern.h> #include "dmapi_lib.h" -#define ARG(y) (long)va_arg(ap,y) +#define Parg(y) (void*)va_arg(ap,y) +#define Uarg(y) (uint64_t)va_arg(ap,y) static int dmapi_fd = -1; int dmi_init_service( char *versionstr ) { - dmapi_fd = open( "/proc/fs/xfs_dmapi", O_RDWR ); + dmapi_fd = open( "/proc/fs/xfs_dmapi_v1", O_RDWR ); if( dmapi_fd == -1 ) return -1; return 0; @@ -59,7 +61,8 @@ int dmi( int opcode, ... ) { va_list ap; - sys_dmapi_args_t u; + sys_dmapi_args_t kargs; + sys_dmapi_args_t *u = &kargs; int ret = 0; if( dmapi_fd == -1 ){ @@ -74,443 +77,443 @@ dmi( int opcode, ... ) switch( opcode ){ /* dm_session */ case DM_CREATE_SESSION: - u.arg1 = ARG(dm_sessid_t); - u.arg2 = ARG(char*); - u.arg3 = ARG(dm_sessid_t*); + DM_Uarg(u,1) = Uarg(dm_sessid_t); + DM_Parg(u,2) = Parg(char*); + DM_Parg(u,3) = Parg(dm_sessid_t*); break; case DM_QUERY_SESSION: - u.arg1 = ARG(dm_sessid_t); - u.arg2 = ARG(size_t); - u.arg3 = ARG(void*); - u.arg4 = ARG(size_t*); + DM_Uarg(u,1) = Uarg(dm_sessid_t); + DM_Uarg(u,2) = Uarg(size_t); + DM_Parg(u,3) = Parg(void*); + DM_Parg(u,4) = Parg(size_t*); break; case DM_GETALL_SESSIONS: - u.arg1 = ARG(u_int); - u.arg2 = ARG(dm_sessid_t*); - u.arg3 = ARG(u_int*); + DM_Uarg(u,1) = Uarg(u_int); + DM_Parg(u,2) = Parg(dm_sessid_t*); + DM_Parg(u,3) = Parg(u_int*); break; case DM_DESTROY_SESSION: - u.arg1 = ARG(dm_sessid_t); + DM_Uarg(u,1) = Uarg(dm_sessid_t); break; case DM_GETALL_TOKENS: - u.arg1 = ARG(dm_sessid_t); - u.arg2 = ARG(u_int); - u.arg3 = ARG(dm_token_t*); - u.arg4 = ARG(u_int*); + DM_Uarg(u,1) = Uarg(dm_sessid_t); + DM_Uarg(u,2) = Uarg(u_int); + DM_Parg(u,3) = Parg(dm_token_t*); + DM_Parg(u,4) = Parg(u_int*); break; case DM_FIND_EVENTMSG: - u.arg1 = ARG(dm_sessid_t); - u.arg2 = ARG(dm_token_t); - u.arg3 = ARG(size_t); - u.arg4 = ARG(void*); - u.arg5 = ARG(size_t*); + DM_Uarg(u,1) = Uarg(dm_sessid_t); + DM_Uarg(u,2) = Uarg(dm_token_t); + DM_Uarg(u,3) = Uarg(size_t); + DM_Parg(u,4) = Parg(void*); + DM_Parg(u,5) = Parg(size_t*); break; /* dm_config */ case DM_GET_CONFIG: - u.arg1 = ARG(void*); - u.arg2 = ARG(size_t); - u.arg3 = ARG(dm_config_t); - u.arg4 = ARG(dm_size_t*); + DM_Parg(u,1) = Parg(void*); + DM_Uarg(u,2) = Uarg(size_t); + DM_Uarg(u,3) = Uarg(dm_config_t); + DM_Parg(u,4) = Parg(dm_size_t*); break; case DM_GET_CONFIG_EVENTS: - u.arg1 = ARG(void*); - u.arg2 = ARG(size_t); - u.arg3 = ARG(u_int); - u.arg4 = ARG(dm_eventset_t*); - u.arg5 = ARG(u_int*); + DM_Parg(u,1) = Parg(void*); + DM_Uarg(u,2) = Uarg(size_t); + DM_Uarg(u,3) = Uarg(u_int); + DM_Parg(u,4) = Parg(dm_eventset_t*); + DM_Parg(u,5) = Parg(u_int*); break; /* dm_attr */ case DM_GET_FILEATTR: - u.arg1 = ARG(dm_sessid_t); - u.arg2 = ARG(void*); - u.arg3 = ARG(size_t); - u.arg4 = ARG(dm_token_t); - u.arg5 = ARG(u_int); - u.arg6 = ARG(dm_stat_t*); + DM_Uarg(u,1) = Uarg(dm_sessid_t); + DM_Parg(u,2) = Parg(void*); + DM_Uarg(u,3) = Uarg(size_t); + DM_Uarg(u,4) = Uarg(dm_token_t); + DM_Uarg(u,5) = Uarg(u_int); + DM_Parg(u,6) = Parg(dm_stat_t*); break; case DM_SET_FILEATTR: - u.arg1 = ARG(dm_sessid_t); - u.arg2 = ARG(void*); - u.arg3 = ARG(size_t); - u.arg4 = ARG(dm_token_t); - u.arg5 = ARG(u_int); - u.arg6 = ARG(dm_fileattr_t*); + DM_Uarg(u,1) = Uarg(dm_sessid_t); + DM_Parg(u,2) = Parg(void*); + DM_Uarg(u,3) = Uarg(size_t); + DM_Uarg(u,4) = Uarg(dm_token_t); + DM_Uarg(u,5) = Uarg(u_int); + DM_Parg(u,6) = Parg(dm_fileattr_t*); break; /* dm_bulkattr */ case DM_INIT_ATTRLOC: - u.arg1 = ARG(dm_sessid_t); - u.arg2 = ARG(void*); - u.arg3 = ARG(size_t); - u.arg4 = ARG(dm_token_t); - u.arg5 = ARG(dm_attrloc_t*); + DM_Uarg(u,1) = Uarg(dm_sessid_t); + DM_Parg(u,2) = Parg(void*); + DM_Uarg(u,3) = Uarg(size_t); + DM_Uarg(u,4) = Uarg(dm_token_t); + DM_Parg(u,5) = Parg(dm_attrloc_t*); break; case DM_GET_BULKATTR: - u.arg1 = ARG(dm_sessid_t); - u.arg2 = ARG(void*); - u.arg3 = ARG(size_t); - u.arg4 = ARG(dm_token_t); - u.arg5 = ARG(u_int); - u.arg6 = ARG(dm_attrloc_t*); - u.arg7 = ARG(size_t); - u.arg8 = ARG(void*); - u.arg9 = ARG(size_t*); + DM_Uarg(u,1) = Uarg(dm_sessid_t); + DM_Parg(u,2) = Parg(void*); + DM_Uarg(u,3) = Uarg(size_t); + DM_Uarg(u,4) = Uarg(dm_token_t); + DM_Uarg(u,5) = Uarg(u_int); + DM_Parg(u,6) = Parg(dm_attrloc_t*); + DM_Uarg(u,7) = Uarg(size_t); + DM_Parg(u,8) = Parg(void*); + DM_Parg(u,9) = Parg(size_t*); break; case DM_GET_DIRATTRS: - u.arg1 = ARG(dm_sessid_t); - u.arg2 = ARG(void*); - u.arg3 = ARG(size_t); - u.arg4 = ARG(dm_token_t); - u.arg5 = ARG(u_int); - u.arg6 = ARG(dm_attrloc_t*); - u.arg7 = ARG(size_t); - u.arg8 = ARG(void*); - u.arg9 = ARG(size_t*); + DM_Uarg(u,1) = Uarg(dm_sessid_t); + DM_Parg(u,2) = Parg(void*); + DM_Uarg(u,3) = Uarg(size_t); + DM_Uarg(u,4) = Uarg(dm_token_t); + DM_Uarg(u,5) = Uarg(u_int); + DM_Parg(u,6) = Parg(dm_attrloc_t*); + DM_Uarg(u,7) = Uarg(size_t); + DM_Parg(u,8) = Parg(void*); + DM_Parg(u,9) = Parg(size_t*); break; case DM_GET_BULKALL: - u.arg1 = ARG(dm_sessid_t); - u.arg2 = ARG(void*); - u.arg3 = ARG(size_t); - u.arg4 = ARG(dm_token_t); - u.arg5 = ARG(u_int); - u.arg6 = ARG(dm_attrname_t*); - u.arg7 = ARG(dm_attrloc_t*); - u.arg8 = ARG(size_t); - u.arg9 = ARG(void*); - u.arg10 = ARG(size_t*); + DM_Uarg(u,1) = Uarg(dm_sessid_t); + DM_Parg(u,2) = Parg(void*); + DM_Uarg(u,3) = Uarg(size_t); + DM_Uarg(u,4) = Uarg(dm_token_t); + DM_Uarg(u,5) = Uarg(u_int); + DM_Parg(u,6) = Parg(dm_attrname_t*); + DM_Parg(u,7) = Parg(dm_attrloc_t*); + DM_Uarg(u,8) = Uarg(size_t); + DM_Parg(u,9) = Parg(void*); + DM_Parg(u,10) = Parg(size_t*); break; /* dm_dmattr */ case DM_CLEAR_INHERIT: - u.arg1 = ARG(dm_sessid_t); - u.arg2 = ARG(void*); - u.arg3 = ARG(size_t); - u.arg4 = ARG(dm_token_t); - u.arg5 = ARG(dm_attrname_t*); + DM_Uarg(u,1) = Uarg(dm_sessid_t); + DM_Parg(u,2) = Parg(void*); + DM_Uarg(u,3) = Uarg(size_t); + DM_Uarg(u,4) = Uarg(dm_token_t); + DM_Parg(u,5) = Parg(dm_attrname_t*); break; case DM_GET_DMATTR: - u.arg1 = ARG(dm_sessid_t); - u.arg2 = ARG(void*); - u.arg3 = ARG(size_t); - u.arg4 = ARG(dm_token_t); - u.arg5 = ARG(dm_attrname_t*); - u.arg6 = ARG(size_t); - u.arg7 = ARG(void*); - u.arg8 = ARG(size_t*); + DM_Uarg(u,1) = Uarg(dm_sessid_t); + DM_Parg(u,2) = Parg(void*); + DM_Uarg(u,3) = Uarg(size_t); + DM_Uarg(u,4) = Uarg(dm_token_t); + DM_Parg(u,5) = Parg(dm_attrname_t*); + DM_Uarg(u,6) = Uarg(size_t); + DM_Parg(u,7) = Parg(void*); + DM_Parg(u,8) = Parg(size_t*); break; case DM_GETALL_DMATTR: - u.arg1 = ARG(dm_sessid_t); - u.arg2 = ARG(void*); - u.arg3 = ARG(size_t); - u.arg4 = ARG(dm_token_t); - u.arg5 = ARG(size_t); - u.arg6 = ARG(void*); - u.arg7 = ARG(size_t*); + DM_Uarg(u,1) = Uarg(dm_sessid_t); + DM_Parg(u,2) = Parg(void*); + DM_Uarg(u,3) = Uarg(size_t); + DM_Uarg(u,4) = Uarg(dm_token_t); + DM_Uarg(u,5) = Uarg(size_t); + DM_Parg(u,6) = Parg(void*); + DM_Parg(u,7) = Parg(size_t*); break; case DM_GETALL_INHERIT: - u.arg1 = ARG(dm_sessid_t); - u.arg2 = ARG(void*); - u.arg3 = ARG(size_t); - u.arg4 = ARG(dm_token_t); - u.arg5 = ARG(u_int); - u.arg6 = ARG(dm_inherit_t*); - u.arg7 = ARG(u_int*); + DM_Uarg(u,1) = Uarg(dm_sessid_t); + DM_Parg(u,2) = Parg(void*); + DM_Uarg(u,3) = Uarg(size_t); + DM_Uarg(u,4) = Uarg(dm_token_t); + DM_Uarg(u,5) = Uarg(u_int); + DM_Parg(u,6) = Parg(dm_inherit_t*); + DM_Parg(u,7) = Parg(u_int*); break; case DM_REMOVE_DMATTR: - u.arg1 = ARG(dm_sessid_t); - u.arg2 = ARG(void*); - u.arg3 = ARG(size_t); - u.arg4 = ARG(dm_token_t); - u.arg5 = ARG(int); - u.arg6 = ARG(dm_attrname_t*); + DM_Uarg(u,1) = Uarg(dm_sessid_t); + DM_Parg(u,2) = Parg(void*); + DM_Uarg(u,3) = Uarg(size_t); + DM_Uarg(u,4) = Uarg(dm_token_t); + DM_Uarg(u,5) = Uarg(int); + DM_Parg(u,6) = Parg(dm_attrname_t*); break; case DM_SET_DMATTR: - u.arg1 = ARG(dm_sessid_t); - u.arg2 = ARG(void*); - u.arg3 = ARG(size_t); - u.arg4 = ARG(dm_token_t); - u.arg5 = ARG(dm_attrname_t*); - u.arg6 = ARG(int); - u.arg7 = ARG(size_t); - u.arg8 = ARG(void*); + DM_Uarg(u,1) = Uarg(dm_sessid_t); + DM_Parg(u,2) = Parg(void*); + DM_Uarg(u,3) = Uarg(size_t); + DM_Uarg(u,4) = Uarg(dm_token_t); + DM_Parg(u,5) = Parg(dm_attrname_t*); + DM_Uarg(u,6) = Uarg(int); + DM_Uarg(u,7) = Uarg(size_t); + DM_Parg(u,8) = Parg(void*); break; case DM_SET_INHERIT: - u.arg1 = ARG(dm_sessid_t); - u.arg2 = ARG(void*); - u.arg3 = ARG(size_t); - u.arg4 = ARG(dm_token_t); - u.arg5 = ARG(dm_attrname_t*); - u.arg6 = ARG(mode_t); + DM_Uarg(u,1) = Uarg(dm_sessid_t); + DM_Parg(u,2) = Parg(void*); + DM_Uarg(u,3) = Uarg(size_t); + DM_Uarg(u,4) = Uarg(dm_token_t); + DM_Parg(u,5) = Parg(dm_attrname_t*); + DM_Uarg(u,6) = Uarg(mode_t); break; case DM_SET_RETURN_ON_DESTROY: - u.arg1 = ARG(dm_sessid_t); - u.arg2 = ARG(void*); - u.arg3 = ARG(size_t); - u.arg4 = ARG(dm_token_t); - u.arg5 = ARG(dm_attrname_t*); - u.arg6 = ARG(dm_boolean_t); + DM_Uarg(u,1) = Uarg(dm_sessid_t); + DM_Parg(u,2) = Parg(void*); + DM_Uarg(u,3) = Uarg(size_t); + DM_Uarg(u,4) = Uarg(dm_token_t); + DM_Parg(u,5) = Parg(dm_attrname_t*); + DM_Uarg(u,6) = Uarg(dm_boolean_t); break; /* dm_event */ case DM_GET_EVENTS: - u.arg1 = ARG(dm_sessid_t); - u.arg2 = ARG(u_int); - u.arg3 = ARG(u_int); - u.arg4 = ARG(size_t); - u.arg5 = ARG(void*); - u.arg6 = ARG(size_t*); + DM_Uarg(u,1) = Uarg(dm_sessid_t); + DM_Uarg(u,2) = Uarg(u_int); + DM_Uarg(u,3) = Uarg(u_int); + DM_Uarg(u,4) = Uarg(size_t); + DM_Parg(u,5) = Parg(void*); + DM_Parg(u,6) = Parg(size_t*); break; case DM_RESPOND_EVENT: - u.arg1 = ARG(dm_sessid_t); - u.arg2 = ARG(dm_token_t); - u.arg3 = ARG(dm_response_t); - u.arg4 = ARG(int); - u.arg5 = ARG(size_t); - u.arg6 = ARG(void*); + DM_Uarg(u,1) = Uarg(dm_sessid_t); + DM_Uarg(u,2) = Uarg(dm_token_t); + DM_Uarg(u,3) = Uarg(dm_response_t); + DM_Uarg(u,4) = Uarg(int); + DM_Uarg(u,5) = Uarg(size_t); + DM_Parg(u,6) = Parg(void*); break; case DM_GET_EVENTLIST: - u.arg1 = ARG(dm_sessid_t); - u.arg2 = ARG(void*); - u.arg3 = ARG(size_t); - u.arg4 = ARG(dm_token_t); - u.arg5 = ARG(u_int); - u.arg6 = ARG(dm_eventset_t*); - u.arg7 = ARG(u_int*); + DM_Uarg(u,1) = Uarg(dm_sessid_t); + DM_Parg(u,2) = Parg(void*); + DM_Uarg(u,3) = Uarg(size_t); + DM_Uarg(u,4) = Uarg(dm_token_t); + DM_Uarg(u,5) = Uarg(u_int); + DM_Parg(u,6) = Parg(dm_eventset_t*); + DM_Parg(u,7) = Parg(u_int*); break; case DM_SET_EVENTLIST: - u.arg1 = ARG(dm_sessid_t); - u.arg2 = ARG(void*); - u.arg3 = ARG(size_t); - u.arg4 = ARG(dm_token_t); - u.arg5 = ARG(dm_eventset_t*); - u.arg6 = ARG(u_int); + DM_Uarg(u,1) = Uarg(dm_sessid_t); + DM_Parg(u,2) = Parg(void*); + DM_Uarg(u,3) = Uarg(size_t); + DM_Uarg(u,4) = Uarg(dm_token_t); + DM_Parg(u,5) = Parg(dm_eventset_t*); + DM_Uarg(u,6) = Uarg(u_int); break; case DM_SET_DISP: - u.arg1 = ARG(dm_sessid_t); - u.arg2 = ARG(void*); - u.arg3 = ARG(size_t); - u.arg4 = ARG(dm_token_t); - u.arg5 = ARG(dm_eventset_t*); - u.arg6 = ARG(u_int); + DM_Uarg(u,1) = Uarg(dm_sessid_t); + DM_Parg(u,2) = Parg(void*); + DM_Uarg(u,3) = Uarg(size_t); + DM_Uarg(u,4) = Uarg(dm_token_t); + DM_Parg(u,5) = Parg(dm_eventset_t*); + DM_Uarg(u,6) = Uarg(u_int); break; case DM_CREATE_USEREVENT: - u.arg1 = ARG(dm_sessid_t); - u.arg2 = ARG(size_t); - u.arg3 = ARG(void*); - u.arg4 = ARG(dm_token_t*); + DM_Uarg(u,1) = Uarg(dm_sessid_t); + DM_Uarg(u,2) = Uarg(size_t); + DM_Parg(u,3) = Parg(void*); + DM_Parg(u,4) = Parg(dm_token_t*); break; case DM_SEND_MSG: - u.arg1 = ARG(dm_sessid_t); - u.arg2 = ARG(dm_msgtype_t); - u.arg3 = ARG(size_t); - u.arg4 = ARG(void*); + DM_Uarg(u,1) = Uarg(dm_sessid_t); + DM_Uarg(u,2) = Uarg(dm_msgtype_t); + DM_Uarg(u,3) = Uarg(size_t); + DM_Parg(u,4) = Parg(void*); break; case DM_MOVE_EVENT: - u.arg1 = ARG(dm_sessid_t); - u.arg2 = ARG(dm_token_t); - u.arg3 = ARG(dm_sessid_t); - u.arg4 = ARG(dm_token_t*); + DM_Uarg(u,1) = Uarg(dm_sessid_t); + DM_Uarg(u,2) = Uarg(dm_token_t); + DM_Uarg(u,3) = Uarg(dm_sessid_t); + DM_Parg(u,4) = Parg(dm_token_t*); break; case DM_PENDING: - u.arg1 = ARG(dm_sessid_t); - u.arg2 = ARG(dm_token_t); - u.arg3 = ARG(dm_timestruct_t*); + DM_Uarg(u,1) = Uarg(dm_sessid_t); + DM_Uarg(u,2) = Uarg(dm_token_t); + DM_Parg(u,3) = Parg(dm_timestruct_t*); break; case DM_GETALL_DISP: - u.arg1 = ARG(dm_sessid_t); - u.arg2 = ARG(size_t); - u.arg3 = ARG(void*); - u.arg4 = ARG(size_t*); + DM_Uarg(u,1) = Uarg(dm_sessid_t); + DM_Uarg(u,2) = Uarg(size_t); + DM_Parg(u,3) = Parg(void*); + DM_Parg(u,4) = Parg(size_t*); break; /* dm_handle */ case DM_PATH_TO_HANDLE: - u.arg1 = ARG(char*); - u.arg2 = ARG(char*); - u.arg3 = ARG(size_t*); + DM_Parg(u,1) = Parg(char*); + DM_Parg(u,2) = Parg(char*); + DM_Parg(u,3) = Parg(size_t*); break; case DM_PATH_TO_FSHANDLE: - u.arg1 = ARG(char*); - u.arg2 = ARG(char*); - u.arg3 = ARG(size_t*); + DM_Parg(u,1) = Parg(char*); + DM_Parg(u,2) = Parg(char*); + DM_Parg(u,3) = Parg(size_t*); break; case DM_FD_TO_HANDLE: - u.arg1 = ARG(int); - u.arg2 = ARG(char*); - u.arg3 = ARG(size_t*); + DM_Uarg(u,1) = Uarg(int); + DM_Parg(u,2) = Parg(char*); + DM_Parg(u,3) = Parg(size_t*); break; case DM_CREATE_BY_HANDLE: - u.arg1 = ARG(dm_sessid_t); - u.arg2 = ARG(void*); - u.arg3 = ARG(size_t); - u.arg4 = ARG(dm_token_t); - u.arg5 = ARG(void*); - u.arg6 = ARG(size_t); - u.arg7 = ARG(char*); + DM_Uarg(u,1) = Uarg(dm_sessid_t); + DM_Parg(u,2) = Parg(void*); + DM_Uarg(u,3) = Uarg(size_t); + DM_Uarg(u,4) = Uarg(dm_token_t); + DM_Parg(u,5) = Parg(void*); + DM_Uarg(u,6) = Uarg(size_t); + DM_Parg(u,7) = Parg(char*); break; case DM_MKDIR_BY_HANDLE: - u.arg1 = ARG(dm_sessid_t); - u.arg2 = ARG(void*); - u.arg3 = ARG(size_t); - u.arg4 = ARG(dm_token_t); - u.arg5 = ARG(void*); - u.arg6 = ARG(size_t); - u.arg7 = ARG(char*); + DM_Uarg(u,1) = Uarg(dm_sessid_t); + DM_Parg(u,2) = Parg(void*); + DM_Uarg(u,3) = Uarg(size_t); + DM_Uarg(u,4) = Uarg(dm_token_t); + DM_Parg(u,5) = Parg(void*); + DM_Uarg(u,6) = Uarg(size_t); + DM_Parg(u,7) = Parg(char*); break; case DM_SYMLINK_BY_HANDLE: - u.arg1 = ARG(dm_sessid_t); - u.arg2 = ARG(void*); - u.arg3 = ARG(size_t); - u.arg4 = ARG(dm_token_t); - u.arg5 = ARG(void*); - u.arg6 = ARG(size_t); - u.arg7 = ARG(char*); - u.arg8 = ARG(char*); + DM_Uarg(u,1) = Uarg(dm_sessid_t); + DM_Parg(u,2) = Parg(void*); + DM_Uarg(u,3) = Uarg(size_t); + DM_Uarg(u,4) = Uarg(dm_token_t); + DM_Parg(u,5) = Parg(void*); + DM_Uarg(u,6) = Uarg(size_t); + DM_Parg(u,7) = Parg(char*); + DM_Parg(u,8) = Parg(char*); break; /* dm_handle2path */ case DM_OPEN_BY_HANDLE: - u.arg1 = ARG(void*); - u.arg2 = ARG(size_t); - u.arg3 = ARG(int); + DM_Parg(u,1) = Parg(void*); + DM_Uarg(u,2) = Uarg(size_t); + DM_Uarg(u,3) = Uarg(int); break; /* dm_hole */ case DM_GET_ALLOCINFO: - u.arg1 = ARG(dm_sessid_t); - u.arg2 = ARG(void*); - u.arg3 = ARG(size_t); - u.arg4 = ARG(dm_token_t); - u.arg5 = ARG(dm_off_t*); - u.arg6 = ARG(u_int); - u.arg7 = ARG(dm_extent_t*); - u.arg8 = ARG(u_int*); + DM_Uarg(u,1) = Uarg(dm_sessid_t); + DM_Parg(u,2) = Parg(void*); + DM_Uarg(u,3) = Uarg(size_t); + DM_Uarg(u,4) = Uarg(dm_token_t); + DM_Parg(u,5) = Parg(dm_off_t*); + DM_Uarg(u,6) = Uarg(u_int); + DM_Parg(u,7) = Parg(dm_extent_t*); + DM_Parg(u,8) = Parg(u_int*); break; case DM_PROBE_HOLE: - u.arg1 = ARG(dm_sessid_t); - u.arg2 = ARG(void*); - u.arg3 = ARG(size_t); - u.arg4 = ARG(dm_token_t); - u.arg5 = ARG(dm_off_t); - u.arg6 = ARG(dm_size_t); - u.arg7 = ARG(dm_off_t*); - u.arg8 = ARG(dm_size_t*); + DM_Uarg(u,1) = Uarg(dm_sessid_t); + DM_Parg(u,2) = Parg(void*); + DM_Uarg(u,3) = Uarg(size_t); + DM_Uarg(u,4) = Uarg(dm_token_t); + DM_Uarg(u,5) = Uarg(dm_off_t); + DM_Uarg(u,6) = Uarg(dm_size_t); + DM_Parg(u,7) = Parg(dm_off_t*); + DM_Parg(u,8) = Parg(dm_size_t*); break; case DM_PUNCH_HOLE: - u.arg1 = ARG(dm_sessid_t); - u.arg2 = ARG(void*); - u.arg3 = ARG(size_t); - u.arg4 = ARG(dm_token_t); - u.arg5 = ARG(dm_off_t); - u.arg6 = ARG(dm_size_t); + DM_Uarg(u,1) = Uarg(dm_sessid_t); + DM_Parg(u,2) = Parg(void*); + DM_Uarg(u,3) = Uarg(size_t); + DM_Uarg(u,4) = Uarg(dm_token_t); + DM_Uarg(u,5) = Uarg(dm_off_t); + DM_Uarg(u,6) = Uarg(dm_size_t); break; /* dm_mountinfo */ case DM_GET_MOUNTINFO: - u.arg1 = ARG(dm_sessid_t); - u.arg2 = ARG(void*); - u.arg3 = ARG(size_t); - u.arg4 = ARG(dm_token_t); - u.arg5 = ARG(size_t); - u.arg6 = ARG(void*); - u.arg7 = ARG(size_t*); + DM_Uarg(u,1) = Uarg(dm_sessid_t); + DM_Parg(u,2) = Parg(void*); + DM_Uarg(u,3) = Uarg(size_t); + DM_Uarg(u,4) = Uarg(dm_token_t); + DM_Uarg(u,5) = Uarg(size_t); + DM_Parg(u,6) = Parg(void*); + DM_Parg(u,7) = Parg(size_t*); break; /* dm_rdwr */ case DM_READ_INVIS: - u.arg1 = ARG(dm_sessid_t); - u.arg2 = ARG(void*); - u.arg3 = ARG(size_t); - u.arg4 = ARG(dm_token_t); - u.arg5 = ARG(dm_off_t); - u.arg6 = ARG(dm_size_t); - u.arg7 = ARG(void*); + DM_Uarg(u,1) = Uarg(dm_sessid_t); + DM_Parg(u,2) = Parg(void*); + DM_Uarg(u,3) = Uarg(size_t); + DM_Uarg(u,4) = Uarg(dm_token_t); + DM_Uarg(u,5) = Uarg(dm_off_t); + DM_Uarg(u,6) = Uarg(dm_size_t); + DM_Parg(u,7) = Parg(void*); break; case DM_WRITE_INVIS: - u.arg1 = ARG(dm_sessid_t); - u.arg2 = ARG(void*); - u.arg3 = ARG(size_t); - u.arg4 = ARG(dm_token_t); - u.arg5 = ARG(int); - u.arg6 = ARG(dm_off_t); - u.arg7 = ARG(dm_size_t); - u.arg8 = ARG(void*); + DM_Uarg(u,1) = Uarg(dm_sessid_t); + DM_Parg(u,2) = Parg(void*); + DM_Uarg(u,3) = Uarg(size_t); + DM_Uarg(u,4) = Uarg(dm_token_t); + DM_Uarg(u,5) = Uarg(int); + DM_Uarg(u,6) = Uarg(dm_off_t); + DM_Uarg(u,7) = Uarg(dm_size_t); + DM_Parg(u,8) = Parg(void*); break; case DM_SYNC_BY_HANDLE: - u.arg1 = ARG(dm_sessid_t); - u.arg2 = ARG(void*); - u.arg3 = ARG(size_t); - u.arg4 = ARG(dm_token_t); + DM_Uarg(u,1) = Uarg(dm_sessid_t); + DM_Parg(u,2) = Parg(void*); + DM_Uarg(u,3) = Uarg(size_t); + DM_Uarg(u,4) = Uarg(dm_token_t); break; case DM_GET_DIOINFO: - u.arg1 = ARG(dm_sessid_t); - u.arg2 = ARG(void*); - u.arg3 = ARG(size_t); - u.arg4 = ARG(dm_token_t); - u.arg5 = ARG(dm_dioinfo_t*); + DM_Uarg(u,1) = Uarg(dm_sessid_t); + DM_Parg(u,2) = Parg(void*); + DM_Uarg(u,3) = Uarg(size_t); + DM_Uarg(u,4) = Uarg(dm_token_t); + DM_Parg(u,5) = Parg(dm_dioinfo_t*); break; /* dm_region */ case DM_GET_REGION: - u.arg1 = ARG(dm_sessid_t); - u.arg2 = ARG(void*); - u.arg3 = ARG(size_t); - u.arg4 = ARG(dm_token_t); - u.arg5 = ARG(u_int); - u.arg6 = ARG(dm_region_t*); - u.arg7 = ARG(u_int*); + DM_Uarg(u,1) = Uarg(dm_sessid_t); + DM_Parg(u,2) = Parg(void*); + DM_Uarg(u,3) = Uarg(size_t); + DM_Uarg(u,4) = Uarg(dm_token_t); + DM_Uarg(u,5) = Uarg(u_int); + DM_Parg(u,6) = Parg(dm_region_t*); + DM_Parg(u,7) = Parg(u_int*); break; case DM_SET_REGION: - u.arg1 = ARG(dm_sessid_t); - u.arg2 = ARG(void*); - u.arg3 = ARG(size_t); - u.arg4 = ARG(dm_token_t); - u.arg5 = ARG(u_int); - u.arg6 = ARG(dm_region_t*); - u.arg7 = ARG(dm_boolean_t*); + DM_Uarg(u,1) = Uarg(dm_sessid_t); + DM_Parg(u,2) = Parg(void*); + DM_Uarg(u,3) = Uarg(size_t); + DM_Uarg(u,4) = Uarg(dm_token_t); + DM_Uarg(u,5) = Uarg(u_int); + DM_Parg(u,6) = Parg(dm_region_t*); + DM_Parg(u,7) = Parg(dm_boolean_t*); break; /* dm_right */ case DM_DOWNGRADE_RIGHT: - u.arg1 = ARG(dm_sessid_t); - u.arg2 = ARG(void*); - u.arg3 = ARG(size_t); - u.arg4 = ARG(dm_token_t); + DM_Uarg(u,1) = Uarg(dm_sessid_t); + DM_Parg(u,2) = Parg(void*); + DM_Uarg(u,3) = Uarg(size_t); + DM_Uarg(u,4) = Uarg(dm_token_t); break; case DM_OBJ_REF_HOLD: - u.arg1 = ARG(dm_sessid_t); - u.arg2 = ARG(dm_token_t); - u.arg3 = ARG(void*); - u.arg4 = ARG(size_t); + DM_Uarg(u,1) = Uarg(dm_sessid_t); + DM_Uarg(u,2) = Uarg(dm_token_t); + DM_Parg(u,3) = Parg(void*); + DM_Uarg(u,4) = Uarg(size_t); break; case DM_OBJ_REF_QUERY: - u.arg1 = ARG(dm_sessid_t); - u.arg2 = ARG(dm_token_t); - u.arg3 = ARG(void*); - u.arg4 = ARG(size_t); + DM_Uarg(u,1) = Uarg(dm_sessid_t); + DM_Uarg(u,2) = Uarg(dm_token_t); + DM_Parg(u,3) = Parg(void*); + DM_Uarg(u,4) = Uarg(size_t); break; case DM_OBJ_REF_RELE: - u.arg1 = ARG(dm_sessid_t); - u.arg2 = ARG(dm_token_t); - u.arg3 = ARG(void*); - u.arg4 = ARG(size_t); + DM_Uarg(u,1) = Uarg(dm_sessid_t); + DM_Uarg(u,2) = Uarg(dm_token_t); + DM_Parg(u,3) = Parg(void*); + DM_Uarg(u,4) = Uarg(size_t); break; case DM_QUERY_RIGHT: - u.arg1 = ARG(dm_sessid_t); - u.arg2 = ARG(void*); - u.arg3 = ARG(size_t); - u.arg4 = ARG(dm_token_t); - u.arg5 = ARG(dm_right_t*); + DM_Uarg(u,1) = Uarg(dm_sessid_t); + DM_Parg(u,2) = Parg(void*); + DM_Uarg(u,3) = Uarg(size_t); + DM_Uarg(u,4) = Uarg(dm_token_t); + DM_Parg(u,5) = Parg(dm_right_t*); break; case DM_RELEASE_RIGHT: - u.arg1 = ARG(dm_sessid_t); - u.arg2 = ARG(void*); - u.arg3 = ARG(size_t); - u.arg4 = ARG(dm_token_t); + DM_Uarg(u,1) = Uarg(dm_sessid_t); + DM_Parg(u,2) = Parg(void*); + DM_Uarg(u,3) = Uarg(size_t); + DM_Uarg(u,4) = Uarg(dm_token_t); break; case DM_REQUEST_RIGHT: - u.arg1 = ARG(dm_sessid_t); - u.arg2 = ARG(void*); - u.arg3 = ARG(size_t); - u.arg4 = ARG(dm_token_t); - u.arg5 = ARG(u_int); - u.arg6 = ARG(dm_right_t); + DM_Uarg(u,1) = Uarg(dm_sessid_t); + DM_Parg(u,2) = Parg(void*); + DM_Uarg(u,3) = Uarg(size_t); + DM_Uarg(u,4) = Uarg(dm_token_t); + DM_Uarg(u,5) = Uarg(u_int); + DM_Uarg(u,6) = Uarg(dm_right_t); break; case DM_UPGRADE_RIGHT: - u.arg1 = ARG(dm_sessid_t); - u.arg2 = ARG(void*); - u.arg3 = ARG(size_t); - u.arg4 = ARG(dm_token_t); + DM_Uarg(u,1) = Uarg(dm_sessid_t); + DM_Parg(u,2) = Parg(void*); + DM_Uarg(u,3) = Uarg(size_t); + DM_Uarg(u,4) = Uarg(dm_token_t); break; default: errno = ENOSYS; @@ -520,7 +523,7 @@ dmi( int opcode, ... ) va_end(ap); if( ret != -1 ) - ret = ioctl( dmapi_fd, opcode, &u ); + ret = ioctl( dmapi_fd, opcode, &kargs ); return(ret); } |