public long[] getAddressableSize()
	{
		long[] res;
		long span = 1;
		int stepSize = 1;
		String assVal = getParamValue("addressSpan");
		if(assVal!=null)
		{
			if((assVal.equalsIgnoreCase("18446744073709551616")) ||
				(assVal.equalsIgnoreCase("0x10000000000000000"))) {
				/* Make a special case for slave interfaces that span the
				 * entire 64bits spectrum.
				 */
				bi.setSecondaryWidth(3);
				return new long[]{ 1l, 0l, 0l };
			} else {
				span = Long.decode(assVal);
			}
		}
		assVal = getParamValue("addressAlignment");
		if((assVal!=null)&&(assVal.equals("NATIVE")))
		{
			assVal = getParamValue("addressUnits");
			if(assVal!=null)
			{
				if(assVal.equalsIgnoreCase("WORDS"))
				{
					stepSize = 4;
				} else {
					System.out.println("Unsupported AddressUnits: " + assVal + " reverting to bytes");
				}
			}			
		}
		switch(bi.getSecondaryWidth()) {
		case 1: {
			res = new long[1];
			res[0] = span*stepSize;
		} break;
		case 2: {
			res = new long[2];
			DTHelper.long2longArr(span * stepSize, res);
		} break;
		default: {
			Logger.logln("Unsupported cell-count: " + bi.getSecondaryWidth(), LogLevel.ERROR);
			res = new long[0];
		}
		}
		return res;
	}