diff options
| author | 2003-07-22 14:54:19 +0000 | |
|---|---|---|
| committer | 2003-07-22 14:54:19 +0000 | |
| commit | ec749d4a021095ff680a927d4a996b051468bc6a (patch) | |
| tree | ee8edab15a99bbcce8868da4d600609396209202 /src/arm.c | |
| parent | Patch from Dan Maas to add raw1394_iso_recv_flush() call to API, using the (diff) | |
Patch from Stephen Tiedemann to allow reentrancy in raw1394's usage of
raw1394_request's.
git-svn-id: svn://svn.linux1394.org/libraw1394/trunk@128 53a565d1-3bb7-0310-b661-cf11e63c67ab
Diffstat (limited to 'src/arm.c')
| -rw-r--r-- | src/arm.c | 38 |
1 files changed, 19 insertions, 19 deletions
@@ -50,25 +50,25 @@ int raw1394_arm_register(struct raw1394_handle *handle, nodeaddr_t start, arm_options_t client_transactions) { int retval=0; - struct raw1394_request *req = &(handle->req); + struct raw1394_request req; if (((start & ~(0xFFFFFFFFFFFF)) != 0) || (((start + length) & ~(0xFFFFFFFFFFFF)) != 0)) { errno = EINVAL; return (-1); } - CLEAR_REQ(req); - req->type = RAW1394_REQ_ARM_REGISTER; - req->generation = handle->generation; /* not necessary */ - req->address = start; - req->length = length; - req->tag = arm_tag; - req->recvb = ptr2int(handle->buffer); /* arm_handle on success */ - req->misc = ((client_transactions & 0x0f) << 8)|((notification_options & 0x0F) << 4)|(access_rights & 0x0F) + CLEAR_REQ(&req); + req.type = RAW1394_REQ_ARM_REGISTER; + req.generation = handle->generation; /* not necessary */ + req.address = start; + req.length = length; + req.tag = arm_tag; + req.recvb = ptr2int(handle->buffer); /* arm_handle on success */ + req.misc = ((client_transactions & 0x0f) << 8)|((notification_options & 0x0F) << 4)|(access_rights & 0x0F) |((ARM_REC_LENGTH & 0xFFFF) << 16); - req->sendb = ptr2int(initial_value); - retval = (int) write(handle->fd, req, sizeof(*req)); - return (retval == sizeof(*req)) ? 0:-1; + req.sendb = ptr2int(initial_value); + retval = (int) write(handle->fd, &req, sizeof(req)); + return (retval == sizeof(req)) ? 0:-1; } /* @@ -82,12 +82,12 @@ int raw1394_arm_register(struct raw1394_handle *handle, nodeaddr_t start, int raw1394_arm_unregister (struct raw1394_handle *handle, nodeaddr_t start) { int retval; - struct raw1394_request *req = &(handle->req); + struct raw1394_request req; - CLEAR_REQ(req); - req->type = RAW1394_REQ_ARM_UNREGISTER; - req->generation = handle->generation; /* not necessary */ - req->address = start; - retval = write(handle->fd, req, sizeof(*req)); - return (retval == sizeof(*req)) ? 0:-1; + CLEAR_REQ(&req); + req.type = RAW1394_REQ_ARM_UNREGISTER; + req.generation = handle->generation; /* not necessary */ + req.address = start; + retval = write(handle->fd, &req, sizeof(req)); + return (retval == sizeof(req)) ? 0:-1; } |
