> ## Documentation Index
> Fetch the complete documentation index at: https://dragonwingdocs-staging.qualcomm.com/llms.txt
> Use this file to discover all available pages before exploring further.

# The Object Operation being requested

> Defines helper macros for ObjectOp.

## Type Definitions

### `ObjectOp`

```cpp theme={null}
typedef uint32_t ObjectOp
```

## Macros

### `ObjectOp_METHOD_MASK`

Method mask for figuring out the type of Object operation and the Method ID.

```c theme={null}
#define ObjectOp_METHOD_MASK ((ObjectOp) 0x0000FFFFu)
```

### `ObjectOp_methodID`

Method ID bits are not modified by transport layers.

```c theme={null}
#define ObjectOp_methodID ((op) & ObjectOp_METHOD_MASK)
```

### `ObjectOp_METHOD_USERMAX`

User-defined method maximum ID range.

```c theme={null}
#define ObjectOp_METHOD_USERMAX ((ObjectOp) 0x00003FFF)
```

### `ObjectOp_MODIFIER_MASK`

```c theme={null}
#define ObjectOp_MODIFIER_MASK ((ObjectOp) 0xFFFF0000u)
```

### `ObjectOp_REMOTE_BUFS`

Set by transports when buffers may reside in untrusted memory and buffer alignment is untrusted.

```c theme={null}
#define ObjectOp_REMOTE_BUFS ((ObjectOp) 0x00010000u)
```

### `ObjectOp_LOCAL`

Local ops are not forwarded by transports.

```c theme={null}
#define ObjectOp_LOCAL ((ObjectOp) 0x00008000U)
```

### `ObjectOp_isLocal`

Check if the operation being invoked is local.

```c theme={null}
#define ObjectOp_isLocal (((op) & ObjectOp_LOCAL) != 0)
```

### `Object_OP_release`

An operation to release the object.

```c theme={null}
#define Object_OP_release (ObjectOp_METHOD_MASK - 0)
```

### `Object_OP_retain`

An operation to retain the object.

```c theme={null}
#define Object_OP_retain (ObjectOp_METHOD_MASK - 1)
```
