this is how NVIDIA do their regs
#define NV_PFIFO_RAMHT
0x00002210 /* RW-4R */
#define NV_PFIFO_RAMHT_BASE_ADDRESS
8:4 /* RWIUF */
#define NV_PFIFO_RAMHT_BASE_ADDRESS_10000
0x00000010 /* RWI-V */
#define NV_PFIFO_RAMHT_SIZE
17:16 /* RWIUF */
#define NV_PFIFO_RAMHT_SIZE_4K
0x00000000 /* RWI-V */
#define NV_PFIFO_RAMHT_SIZE_8K
0x00000001 /* RW--V */
#define NV_PFIFO_RAMHT_SIZE_16K
0x00000002 /* RW--V */
#define NV_PFIFO_RAMHT_SIZE_32K
0x00000003 /* RW--V */
#define NV_PFIFO_RAMHT_SEARCH
25:24 /* RWIUF */
#define NV_PFIFO_RAMHT_SEARCH_16
0x00000000 /* RWI-V */
#define NV_PFIFO_RAMHT_SEARCH_32
0x00000001 /* RW--V */
#define NV_PFIFO_RAMHT_SEARCH_64
0x00000002 /* RW--V */
#define NV_PFIFO_RAMHT_SEARCH_128
0x00000003 /* RW--V */
this can be used like setreg( NV_PFIFO_RAMHT , htbase << (
0 ? NV_PFIFO_RAMHT_BASE_ADDRESS)) ;
but i wont to make it better so i tried it this way
#define NV_PFIFO_RAMHT_BASE_ADDRESS 0x00002210:8:4:3 /* address
: high bit : low bit : mode 3 = rw
this seemed much better all on one line so you can do setreg(NV_PFIFO_RAMHT_BASE_ADDRESS
, htbase) ;
but ( 2 ? 1:2:3 ) dose not work
and NV_PFIFO_RAMHT_BASE_ADDRESS 0x00002210,8,4,3 dose not work
as setreg(a,h,l,m) thinks this is
all one agr
the other would be to have it as a big struct
but then compiler can not optimize it ( i think )
if i can use #define 's the it quicker and setreg can be an inline
asm marco
how would it work if i used 64 bit like this
bits 32 - 63 reg address
bits 24 - 31 high bit
bits 16 - 23 low bit
bits 0 - 7 mode
#define NV_PFIFO_RAMHT_BASE_ADDRESS 0x0000221008040003
so if i sent this to the setreg(unsigned long long , data) asm macro
it would be in EAX:EDX (64 bit)
can the kernel use (long long) and (unsigned long long) (
64 bit ints)
that 64 bit way look good but is it ?
( opps i wold need an extr 32 bits for value but can have 64:32 i think
)
has anyone got any help they can give me on this !please email me
thank you!
as i am stuck
also is there a down loadable book on c++ as i am just learning
from others ppl code and really
need a book to do it right
thank you david rundle <[EMAIL PROTECTED]>