Header files with enums instead of defines?

Poul-Henning Kamp phk at phk.freebsd.dk
Wed Dec 22 09:45:18 PST 2004


In message <20041222010143.GS53357 at wantadilla.lemis.com>, "Greg 'groggy' Lehey"
 writes:

>Has anybody thought about replacing #defines with enums in header
>files?  It would make debugging a whole lot easier.  Foe example, I'm
>currently looking at a debug printout which contains:

I agree with others who have shot this down: compatibility would
not allow us to do something like that.

But that is not to say that the error reporting mechanism could not
be improved in other ways.

One of my pet peeves is that comples system calls have no way to
convey additional information about why the return a given
return value like EPERM.

I would almost advocate adding a char[X] to each thread and a
system call which could retrieve it.  Complex system calls like
mount/nmount, ioctl and similar could then stick an explanation
into that string which strerror(3) or err(3) and similar functions
could pull out and give the user.

There is a heck of a difference between getting:

	fdisk: permission denied

And

	fdisk: permission denied (partitions overlap)


-- 
Poul-Henning Kamp       | UNIX since Zilog Zeus 3.20
phk at FreeBSD.ORG         | TCP/IP since RFC 956
FreeBSD committer       | BSD since 4.3-tahoe    
Never attribute to malice what can adequately be explained by incompetence.


More information about the freebsd-arch mailing list