Added support for environments with 64 bit kernel and 32 bit userland.
git-svn-id: svn://svn.linux1394.org/libraw1394/trunk@26 53a565d1-3bb7-0310-b661-cf11e63c67ab
This commit is contained in:
parent
8dd13e5082
commit
8942a29ac1
|
@ -0,0 +1,13 @@
|
|||
|
||||
/* Define if kernel is 64 bit and userland is 32 bit */
|
||||
#undef KERNEL64_USER32
|
||||
|
||||
@BOTTOM@
|
||||
|
||||
#include <sys/types.h>
|
||||
|
||||
#ifdef KERNEL64_USER32
|
||||
typedef u_int64_t kptr_t;
|
||||
#else
|
||||
typedef void *kptr_t;
|
||||
#endif
|
14
configure.in
14
configure.in
|
@ -2,8 +2,22 @@
|
|||
|
||||
AC_INIT(Makefile.am)
|
||||
AM_INIT_AUTOMAKE(libraw1394, 0.6)
|
||||
AM_CONFIG_HEADER(config.h)
|
||||
|
||||
# AC_CANONICAL_HOST
|
||||
|
||||
AC_PROG_CC
|
||||
AM_PROG_LIBTOOL
|
||||
|
||||
|
||||
AC_ARG_ENABLE(32-64,
|
||||
[ --enable-32-64 support systems with 64 bit kernel and 32 bit userland],
|
||||
[
|
||||
case $enableval in
|
||||
yes) AC_DEFINE(KERNEL64_USER32) ;;
|
||||
no) ;;
|
||||
*) AC_MSG_ERROR([ Invalid arg for --enable-32-64 ])
|
||||
esac
|
||||
])
|
||||
|
||||
AC_OUTPUT([ Makefile src/Makefile debian/Makefile ])
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
|
||||
#include <config.h>
|
||||
#include <unistd.h>
|
||||
|
||||
#include "raw1394.h"
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
|
||||
#include <config.h>
|
||||
#include <errno.h>
|
||||
#include <unistd.h>
|
||||
|
||||
|
@ -18,7 +19,7 @@ static int do_fcp_listen(struct raw1394_handle *handle, int startstop)
|
|||
req->generation = handle->generation;
|
||||
req->misc = startstop;
|
||||
req->tag = (unsigned long)&rh;
|
||||
req->recvb = handle->buffer;
|
||||
req->recvb = (kptr_t)handle->buffer;
|
||||
req->length = 512;
|
||||
|
||||
err = write(handle->fd, req, sizeof(*req));
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
|
||||
#include <config.h>
|
||||
#include <errno.h>
|
||||
#include <unistd.h>
|
||||
|
||||
|
@ -19,7 +20,7 @@ static int do_iso_listen(struct raw1394_handle *handle, int channel)
|
|||
req->generation = handle->generation;
|
||||
req->misc = channel;
|
||||
req->tag = (unsigned long)&rh;
|
||||
req->recvb = handle->buffer;
|
||||
req->recvb = (kptr_t)handle->buffer;
|
||||
req->length = HBUF_SIZE;
|
||||
|
||||
err = write(handle->fd, req, sizeof(*req));
|
||||
|
|
|
@ -56,8 +56,14 @@ struct raw1394_request {
|
|||
unsigned long tag;
|
||||
|
||||
size_t length;
|
||||
|
||||
#ifdef __KERNEL__
|
||||
quadlet_t *sendb;
|
||||
quadlet_t *recvb;
|
||||
#else
|
||||
kptr_t sendb;
|
||||
kptr_t recvb;
|
||||
#endif
|
||||
};
|
||||
|
||||
struct raw1394_khost_list {
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
|
||||
#include <config.h>
|
||||
#include <errno.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
|
@ -134,7 +135,7 @@ int raw1394_get_port_info(struct raw1394_handle *handle,
|
|||
CLEAR_REQ(req);
|
||||
req->type = RAW1394_REQ_LIST_CARDS;
|
||||
req->generation = handle->generation;
|
||||
req->recvb = handle->buffer;
|
||||
req->recvb = (kptr_t)handle->buffer;
|
||||
req->length = HBUF_SIZE;
|
||||
|
||||
while (1) {
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
|
||||
#include <config.h>
|
||||
#include <unistd.h>
|
||||
#include <errno.h>
|
||||
|
||||
|
@ -21,7 +22,7 @@ int raw1394_start_read(struct raw1394_handle *handle, nodeid_t node,
|
|||
|
||||
req->address = ((u_int64_t)node << 48) | addr;
|
||||
req->length = length;
|
||||
req->recvb = buffer;
|
||||
req->recvb = (kptr_t)buffer;
|
||||
|
||||
return (int)write(handle->fd, req, sizeof(*req));
|
||||
}
|
||||
|
@ -40,7 +41,7 @@ int raw1394_start_write(struct raw1394_handle *handle, nodeid_t node,
|
|||
|
||||
req->address = ((u_int64_t)node << 48) | addr;
|
||||
req->length = length;
|
||||
req->sendb = data;
|
||||
req->sendb = (kptr_t)data;
|
||||
|
||||
return (int)write(handle->fd, req, sizeof(*req));
|
||||
}
|
||||
|
@ -64,8 +65,8 @@ int raw1394_start_lock(struct raw1394_handle *handle, nodeid_t node,
|
|||
req->tag = tag;
|
||||
|
||||
req->address = ((u_int64_t)node << 48) | addr;
|
||||
req->sendb = sendbuf;
|
||||
req->recvb = result;
|
||||
req->sendb = (kptr_t)sendbuf;
|
||||
req->recvb = (kptr_t)result;
|
||||
req->misc = extcode;
|
||||
|
||||
switch (extcode) {
|
||||
|
|
Reference in New Issue