> > > typedef struct _agp_allocate {
> > >         size_t pg_count;        /* number of pages              */
> > >           [Is this really "number of pages", or is it actually
> > >             "amount of memory"? If really "number of pages",
> > >             then WHY ISNT IT AN INT?!!]
> > 
> > 
> >  From what is in the code, AFAI understand, this *is* 
> really the number 
> > of pages. And 'size_t' is nothing but an 'unsigned int' ...
> 
> Whether it really is an int underneath, is not the point.
> "size_t" should be used for "sizes".
> Mostly for BYTE counts of buffers. 
> eg: read(char *,size_t)
>     write(char *,size_t)
>     bcopy (const void *, void *, size_t)
> 
> "number of pages" is not a "size". It's a count. Hence it should be
> declared as a plain int. Similarly with the other ones in agpgart.
> Declaring it as size_t makes it seem like it is the bytecount 
> of all the
> pages, rather than a number of pages.

possibly i am thinking a bit more practical:
- the number of pages should never go negative, so why do we need the sign?
- there is no reason why the number of pages should get limited to i.e.
2 GB instead of 4 GB on 32 bit machines.
- you are right in trying to distinguish number_of_bytes and
number_of_elements
  by meance of different type defines for them.
- i am not aware of a better type define - you might want to suggest a new
one.

Suggestion:
        typedef unsigned int    elcount_t;
or 
        #define elcount_t               unsigned int

But to proove you the opposite:
    void *calloc(size_t nmemb, size_t size);
nmemb => number_of_elements
size => number_of_bytes (per element of course)

so the usage is already a bit puzzled for other central areas.
don't blame the agpgart programmers for introducing this...

_______________________________________________
Dri-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/dri-devel

Reply via email to