aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDean Roehrich <roehrich@sgi.com>2002-06-12 15:27:38 +0000
committerDean Roehrich <roehrich@sgi.com>2002-06-12 15:27:38 +0000
commit702ef6c7039071b1a3ad4460a358e6e8fdb206e2 (patch)
tree1bc975d35e31e13cc1d3e5f4eb6e6a2d37f1144e
parent44cf18cde66edc71d416ac9f6dbb2a64102c4f52 (diff)
downloaddmapi-dev-702ef6c7039071b1a3ad4460a358e6e8fdb206e2.tar.gz
No Message Supplied
-rw-r--r--VERSION2
-rw-r--r--build/rpm/dmapi.spec.in2
-rw-r--r--debian/changelog6
-rw-r--r--debian/control4
-rw-r--r--include/dmapi_kern.h11
-rw-r--r--libdm/Makefile3
-rw-r--r--libdm/dmapi_lib.c637
7 files changed, 341 insertions, 324 deletions
diff --git a/VERSION b/VERSION
index 6b81001..a5c287c 100644
--- a/VERSION
+++ b/VERSION
@@ -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);
}