anchor.diff:      end,
       {reply, Reply, State};
   
  +handle_call({call, i2c_init_name, Devname}, _From, State) ->
  +    Res = port_lib:sync_call_to_port(State, {i2c_init_name, Devname}),
  +    case Res of
  +	-1 ->
  +	    Reply = {error, i2c_initialization_error};
  +	Reply ->
  +	    ok
  +    end,
  +    {reply, Reply, State};
  +
   handle_call({call, i2c_write, Fd, Addr, Data, Len}, _From, State) ->
       case port_lib:sync_call_to_port(State, {i2c_write, Fd, Addr, Data, Len}) < 0 of
   	true ->
  
positive.code: -type addr() :: integer().
  -type data() :: tuple().
  -type len() :: integer().
  
  %%%===================================================================
  %%% API
  
negative.code: -spec(i2c_init() -> fd() | {error, error_type}).
  i2c_init() ->
      gen_server:call(?MODULE, {call, i2c_init}).
  
  %% @doc Initialise the i2c devname device.
  %% @end
  -spec(i2c_init_name(devname()) -> fd() | {error, error_type}).
  i2c_init_name(Devname) ->
      gen_server:call(?MODULE, {call, i2c_init_name, Devname}).
  
  %% @doc write data into an i2c slave device.
  %% @end
  -spec(i2c_write(fd(), addr(), data(), len()) -> ok | {error, error_type}).
  i2c_write(Fd, Addr, Data, Len) ->
      gen_server:call(?MODULE, {call, i2c_write, Fd, Addr, Data, Len}).
  