[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] [PATCH v2 1/3] xen/domain_page: Convert map_domain_page_global() to using mfn_t



Jan Beulich writes ("Re: [Xen-devel] [PATCH v2 1/3] xen/domain_page: Convert 
map_domain_page_global() to using mfn_t"):
> On 07.07.15 at 12:07, <andrew.cooper3@xxxxxxxxxx> wrote:
> > Just like free(), these functions are not performing a read-only
> > operation on the destination pointer, therefore must not be performed on
> > an actual const pointer.
> 
> I disagree - from the caller's persepctive they don't modify the data
> being pointed to (that data is simply becoming undefined). An entity
> allocating memory, initializing it, and never modifying it again should
> be allowed to store the pointer in a variable pointing to a const
> modified type, and free/unmap it without needing any casts. I.e. in
> fact xfree() and free_xenheap_pages() should have their parameters
> constified.

Surely xfree() ought to have the same prototype as free() ?

free is declared in C99 (7.20.3.2 in my copy of TC2) as:

    void free(void *ptr);

That is, non-const.  AFAIAA this is not generally regarded as a bug.

I think the same reasoning and conclusion ought to apply to xfree, and
other freeing functions.

Ian.

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.