diff options
Diffstat (limited to 'src/vlibmemory/memclnt.api')
-rw-r--r-- | src/vlibmemory/memclnt.api | 91 |
1 files changed, 91 insertions, 0 deletions
diff --git a/src/vlibmemory/memclnt.api b/src/vlibmemory/memclnt.api new file mode 100644 index 00000000000..2f654caf2c1 --- /dev/null +++ b/src/vlibmemory/memclnt.api @@ -0,0 +1,91 @@ +/* Hey Emacs use -*- mode: C -*- */ +/* + * Copyright (c) 2015 Cisco and/or its affiliates. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at: + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/* + * Create a client registration + */ +manual_print +define memclnt_create { + i32 ctx_quota; /* requested punt context quota */ + u32 context; /* opaque value to be returned in the reply */ + u64 input_queue; /* client's queue */ + u8 name[64]; /* for show, find by name, whatever */ + u32 api_versions[8]; /* client-server pairs use as desired */ +}; + +define memclnt_create_reply { + i32 response; /* Non-negative = success */ + u64 handle; /* handle by which vlib knows this client */ + u32 index; /* index, used e.g. by API trace replay */ + u32 context; /* opaque value from the create request */ + u64 message_table; /* serialized message table in shmem */ +}; + +/* + * Delete a client registration + */ +manual_print +define memclnt_delete { + u32 index; /* index, used e.g. by API trace replay */ + u64 handle; /* handle by which vlib knows this client */ +}; + +define memclnt_delete_reply { + i32 response; /* Non-negative = success */ + u64 handle; /* in case the client wonders */ +}; + +/* + * Client RX thread exit + */ + +define rx_thread_exit { + u8 dummy; +}; + +/* + * RPC + */ +define rpc_call { + u32 client_index; + u32 context; + u64 function; + u8 multicast; + u8 need_barrier_sync; + u8 send_reply; + u8 data[0]; +}; + +define rpc_reply { + i32 retval; + u32 context; +}; + +/* + * Lookup message-ID base by name + */ +define get_first_msg_id { + u32 client_index; + u32 context; + u8 name[64]; +}; + +define get_first_msg_id_reply { + u32 client_index; + u32 context; + i32 retval; + u16 first_msg_id; +}; |