Folks,
I am thinking of changind some io API (not really changing, but extensions).
So, will it worth if we declare ports as  structures:
---------------------------------------------------------------------------------------
typedef union port {
  volatile unsigned char reg_p;
  volatile struct {
    unsigned __p0:1, __p1:1, __p2:1, __p3:1, __p4:1, __p5:1, __p6:1, __p7:1;
  } __pin;
} ioport_t;

#define pin0    __pin.__p0
#define pin1    __pin.__p1
#define pin2    __pin.__p2
#define pin3    __pin.__p3
#define pin4    __pin.__p4
#define pin5    __pin.__p5
#define pin6    __pin.__p6
#define pin7    __pin.__p7

typedef struct {
  ioport_t in, out,dir,ifg,ies,ie,sel;
} xport_t;

xport_t port0 asm("0x10");
/// and so on...
----------------------------------------------------------------------
So, user can write:
        port0.out.pin1 = 1;
        xxx = port0.in.pin2;
        port0.reg_p      = 0x7e;
or something.

Of course this will not discard existing declarations.

If we're going to add this declaration to header files, we need to choose a 
name for portX. Will 'port0 .. port6' be suitable for it? 

Or just forget about it?

~d


/********************************************************************
     ("`-''-/").___..--''"`-._     (\   Dimmy the Wild      UA1ACZ
      `6_ 6  )   `-.  (     ).`-.__.`)  Enterprise Information Sys 
      (_Y_.)'  ._   )  `._ `. ``-..-'   Nevsky prospekt,   20 / 44
    _..`--'_..-_/  /--'_.' ,'           Saint Petersburg,   Russia
   (il),-''  (li),'  ((!.-'             +7 (812)  3468202, 5585314
 ********************************************************************/


Reply via email to