From 1c5988e42c242f0fcf843f94a322936b1aa99f15 Mon Sep 17 00:00:00 2001
From: Kostis Sagonas <kostis@cs.ntua.gr>
Date: Sat, 5 Mar 2011 20:11:27 +0200
Subject: Introduce types to avoid duplication in specs

---
 lib/kernel/src/erl_ddll.erl | 33 +++++++++++++++++++--------------
 1 file changed, 19 insertions(+), 14 deletions(-)

(limited to 'lib')

diff --git a/lib/kernel/src/erl_ddll.erl b/lib/kernel/src/erl_ddll.erl
index 88f91de24f..ce64589a29 100644
--- a/lib/kernel/src/erl_ddll.erl
+++ b/lib/kernel/src/erl_ddll.erl
@@ -1,19 +1,19 @@
 %%
 %% %CopyrightBegin%
-%% 
-%% Copyright Ericsson AB 1997-2009. All Rights Reserved.
-%% 
+%%
+%% Copyright Ericsson AB 1997-2011. All Rights Reserved.
+%%
 %% The contents of this file are subject to the Erlang Public License,
 %% Version 1.1, (the "License"); you may not use this file except in
 %% compliance with the License. You should have received a copy of the
 %% Erlang Public License along with this software. If not, it can be
 %% retrieved online at http://www.erlang.org/.
-%% 
+%%
 %% Software distributed under the License is distributed on an "AS IS"
 %% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
 %% the License for the specific language governing rights and limitations
 %% under the License.
-%% 
+%%
 %% %CopyrightEnd%
 %%
 %% Dynamic Driver Loader and Linker
@@ -29,6 +29,11 @@
 
 %%----------------------------------------------------------------------------
 
+-type path()   :: string() | atom().
+-type driver() :: string() | atom().
+
+%%----------------------------------------------------------------------------
+
 -spec start() -> {'error', {'already_started', 'undefined'}}.
 
 start() ->
@@ -39,13 +44,13 @@ start() ->
 stop() ->
     ok.
 
--spec load_driver(Path :: string() | atom(), Driver :: string() | atom()) ->
+-spec load_driver(Path :: path(), Driver :: driver()) ->
 	'ok' | {'error', any()}.
 
 load_driver(Path, Driver) ->
     do_load_driver(Path, Driver, [{driver_options,[kill_ports]}]).
 
--spec load(Path :: string() | atom(), Driver :: string() | atom()) ->
+-spec load(Path :: path(), Driver :: driver()) ->
 	'ok' | {'error', any()}.
 
 load(Path, Driver) ->
@@ -95,23 +100,23 @@ do_unload_driver(Driver,Flags) ->
 	    end
     end.
 
--spec unload_driver(Driver :: string() | atom()) -> 'ok' | {'error', any()}.
+-spec unload_driver(Driver :: driver()) -> 'ok' | {'error', any()}.
 
 unload_driver(Driver) ->
     do_unload_driver(Driver,[{monitor,pending_driver},kill_ports]).
 
--spec unload(Driver :: string() | atom()) -> 'ok' | {'error', any()}.
+-spec unload(Driver :: driver()) -> 'ok' | {'error', any()}.
 
 unload(Driver) ->
     do_unload_driver(Driver,[]).
 
--spec reload(Path :: string() | atom(), Driver :: string() | atom()) ->
+-spec reload(Path :: path(), Driver :: driver()) ->
 	'ok' | {'error', any()}.
 
 reload(Path,Driver) ->
     do_load_driver(Path, Driver, [{reload,pending_driver}]).
 
--spec reload_driver(Path :: string() | atom(), Driver :: string() | atom()) ->
+-spec reload_driver(Path :: path(), Driver :: driver()) ->
 	'ok' | {'error', any()}.
 
 reload_driver(Path,Driver) ->
@@ -122,15 +127,15 @@ reload_driver(Path,Driver) ->
 
 format_error(Code) ->
     case Code of
-	% This is the only error code returned only from erlang code...
-	% 'permanent' has a translation in the emulator, even though the erlang code uses it to...
+	%% This is the only error code returned only from erlang code...
+	%% 'permanent' has a translation in the emulator, even though the erlang code uses it to...
 	load_cancelled ->
 	    "Loading was cancelled from other process";
 	_ ->
 	    erl_ddll:format_error_int(Code)
     end.
 
--spec info(Driver :: string() | atom()) -> [{atom(), any()}].
+-spec info(Driver :: driver()) -> [{atom(), any()}, ...].
  
 info(Driver) ->
     [{processes, erl_ddll:info(Driver,processes)},
-- 
cgit v1.2.3