Example #1
0
vm_map_t *vm_map_new(void) {
  vm_map_t *map = kmalloc(M_VMMAP, sizeof(vm_map_t), M_ZERO);

  vm_map_setup(map);
  *((pmap_t **)&map->pmap) = pmap_new();
  return map;
}
Example #2
0
void remote_ui_init(void)
{
  connected_uis = pmap_new(uint64_t)();
  // Add handler for "attach_ui"
  String method = cstr_as_string("ui_attach");
  MsgpackRpcRequestHandler handler = {.fn = remote_ui_attach, .defer = false};
  msgpack_rpc_add_method_handler(method, handler);
  method = cstr_as_string("ui_detach");
  handler.fn = remote_ui_detach;
  msgpack_rpc_add_method_handler(method, handler);
  method = cstr_as_string("ui_try_resize");
  handler.fn = remote_ui_try_resize;
  msgpack_rpc_add_method_handler(method, handler);
}

void remote_ui_disconnect(uint64_t channel_id)
{
  UI *ui = pmap_get(uint64_t)(connected_uis, channel_id);
  if (!ui) {
    return;
  }
  UIData *data = ui->data;
  // destroy pending screen updates
  api_free_array(data->buffer);
  pmap_del(uint64_t)(connected_uis, channel_id);
  xfree(ui->data);
  ui_detach(ui);
  xfree(ui);
}
Example #3
0
/// Convert a vim object to an `Object` instance, recursively expanding
/// Arrays/Dictionaries.
///
/// @param obj The source object
/// @return The converted value
Object vim_to_object(typval_T *obj)
{
  Object rv;
  // We use a lookup table to break out of cyclic references
  PMap(ptr_t) *lookup = pmap_new(ptr_t)();
  rv = vim_to_object_rec(obj, lookup);
  // Free the table
  pmap_free(ptr_t)(lookup);
  return rv;
}
Example #4
0
/// Initializes the module
void server_init(void)
{
  servers = pmap_new(cstr_t)();

  if (!os_getenv(LISTEN_ADDRESS_ENV_VAR)) {
    char *listen_address = (char *)vim_tempname();
    os_setenv(LISTEN_ADDRESS_ENV_VAR, listen_address, 1);
    free(listen_address);
  }

  server_start((char *)os_getenv(LISTEN_ADDRESS_ENV_VAR));
}
Example #5
0
void server_init()
{
    servers = pmap_new(cstr_t)();

    if (!os_getenv("NEOVIM_LISTEN_ADDRESS")) {
        char *listen_address = (char *)vim_tempname('s');
        os_setenv("NEOVIM_LISTEN_ADDRESS", listen_address, 1);
        free(listen_address);
    }

    server_start((char *)os_getenv("NEOVIM_LISTEN_ADDRESS"));
}
Example #6
0
void provider_init(void)
{
  registered_providers = pmap_new(cstr_t)();
}