| 1 | .\" Copyright (c) 2005-2008 David Carter <dcarter@arm4.org> and others. |
|---|
| 2 | .\" All rights reserved. This program and the accompanying materials |
|---|
| 3 | .\" are made available under the terms of the Eclipse Public License v1.0 |
|---|
| 4 | .\" which accompanies this distribution, and is available at |
|---|
| 5 | .\" http://www.eclipse.org/legal/epl-v10.html |
|---|
| 6 | .TH "arm_stop_transaction" 3 "August 2008" "arm4.org" "ARM 4 Programmer's Manual" |
|---|
| 7 | .SH NAME |
|---|
| 8 | arm_stop_transaction \- stop transaction |
|---|
| 9 | .SH SYNOPSIS |
|---|
| 10 | .B #include <arm4.h> |
|---|
| 11 | .sp |
|---|
| 12 | \fBarm_error_t |
|---|
| 13 | .br |
|---|
| 14 | arm_stop_transaction( |
|---|
| 15 | .br |
|---|
| 16 | const arm_tran_start_handle_t \fItran_handle\fB, |
|---|
| 17 | .br |
|---|
| 18 | const arm_tran_status_t \fItran_status\fB, |
|---|
| 19 | .br |
|---|
| 20 | const arm_int32_t \fIflags\fB, |
|---|
| 21 | .br |
|---|
| 22 | const arm_buffer4_t *\fIbuffer4\fB);\fR |
|---|
| 23 | .SH DESCRIPTION |
|---|
| 24 | \fBarm_stop_transaction()\fR signals the end of a transaction. |
|---|
| 25 | |
|---|
| 26 | Call \fBarm_stop_transaction()\fR just after a transaction completes. \fBarm_start_transaction()\fR signals |
|---|
| 27 | the ARM library to start timing the transaction response time. \fBarm_stop_transaction()\fR signals |
|---|
| 28 | the ARM library to stop timing the transaction response time. It can be called from any thread in |
|---|
| 29 | the process that executed the \fBarm_start_transaction()\fR. |
|---|
| 30 | |
|---|
| 31 | Implicit \fBarm_unbind_thread()\fR and \fBarm_unblock_transaction()\fR calls are made for any pending |
|---|
| 32 | \fBarm_bind_thread()\fR and \fBarm_block_transaction()\fR calls, respectively, that have not been |
|---|
| 33 | explicitly unbound or unblocked with \fBarm_unbind_thread()\fR and \fBarm_unblock_transaction()\fR. |
|---|
| 34 | |
|---|
| 35 | \fIbuffer4\fR is a pointer to the user data buffer, if any. If the pointer is null (\fBARM_BUF4_NONE\fR), |
|---|
| 36 | there is no buffer. The sub-buffers that may be used are |
|---|
| 37 | \fBarm_subbuffer_diag_detail_t\fR and \fBarm_subbuffer_metric_values_t\fR. |
|---|
| 38 | |
|---|
| 39 | \fIflags\fR contains 32-bit flags. No values are currently defined. The field should be zero |
|---|
| 40 | (\fBARM_FLAG_NONE\fR). |
|---|
| 41 | |
|---|
| 42 | \fItran_handle\fR is a handle returned in an out parameter from an \fBarm_start_transaction()\fR call in the |
|---|
| 43 | same process. |
|---|
| 44 | |
|---|
| 45 | \fItran_status\fR indicates the status of the transaction. The following values are allowed: |
|---|
| 46 | |
|---|
| 47 | .IP 0 |
|---|
| 48 | (\fBARM_STATUS_GOOD\fR) = transaction completed successfully |
|---|
| 49 | .IP 1 |
|---|
| 50 | (\fBARM_STATUS_ABORTED\fR) = transaction was aborted before it completed. For |
|---|
| 51 | example, the user might have pressed "Stop" or "Back" on a browser while a |
|---|
| 52 | transaction was in process, causing the transaction, as measured at the browser, to |
|---|
| 53 | be aborted. |
|---|
| 54 | .IP 2 |
|---|
| 55 | (\fBARM_STATUS_FAILED\fR) = transaction completed in error |
|---|
| 56 | .IP 3 |
|---|
| 57 | (\fBARM_STATUS_UNKNOWN\fR) = transaction completed but the status was |
|---|
| 58 | unknown. This would most likely occur if middleware or some other form of proxy |
|---|
| 59 | instrumentation measured the transaction. This instrumentation may know enough |
|---|
| 60 | to know when the transaction starts and stops, but does not understand the |
|---|
| 61 | application-specific semantics sufficiently well to know whether the transaction |
|---|
| 62 | was successful. |
|---|
| 63 | .SH "RETURN VALUE" |
|---|
| 64 | On success, the function returns \fBARM_SUCCESS\fR. A non-zero value indicates |
|---|
| 65 | an error. |
|---|
| 66 | .SH ERRORS |
|---|
| 67 | If the return code is negative, an error occurred. If the return code is not negative, an error may |
|---|
| 68 | or may not have occurred - the determination of what is an error and whether an error code is |
|---|
| 69 | returned is at the discretion of the ARM implementation. The application can test the return code |
|---|
| 70 | if it wants to provide its own error logging. |
|---|
| 71 | |
|---|
| 72 | The following errors are recognized by this implementation, but may not be portable to other implementations: |
|---|
| 73 | |
|---|
| 74 | .TP |
|---|
| 75 | .B ARM_FAILURE_INTERNAL_ERROR |
|---|
| 76 | An internal error has occurred that prevented the operation from completing. Check your |
|---|
| 77 | system log for more details. |
|---|
| 78 | .SH "CONFORMING TO" |
|---|
| 79 | ARM Issue 4.0 C Language Bindings, Version 2 |
|---|
| 80 | .SH EXAMPLE |
|---|
| 81 | None. |
|---|
| 82 | .SH "SEE ALSO" |
|---|
| 83 | .BR arm_bind_thread (3), |
|---|
| 84 | .BR arm_block_transaction (3), |
|---|
| 85 | .BR arm_start_transaction (3), |
|---|
| 86 | .BR arm_unbind_thread (3), |
|---|
| 87 | .BR arm_unblock_transaction (3) |
|---|