View Issue Details

IDProjectCategoryView StatusLast Update
00007321003.1(2008)/Issue 7Base Definitions and Headerspublic2024-06-11 08:52
Reportershware_systems Assigned Toajosey  
PrioritynormalSeverityObjectionTypeEnhancement Request
Status ClosedResolutionAccepted As Marked 
NameMark Ziegast
OrganizationSHware Systems
User Reference
Sectionc082.pdf sys/stat.h
Page Number389
Line Number13067, 13083-13092
Interp Status---
Final Accepted Text0000732:0005928
Summary0000732: Change parameter description of S_IS_XXX macros?
DescriptionThe S_ISBLK, etc. macros specify that their parameter shall be from st_mode. However, all the symbolic flag values corresponding to valid inputs are marked XSI.
This implies it is only required of XSI systems that these bits be stored as part of st_mode, as the definition of mode_t in sys/types.h does not require this also.
A basic POSIX system might store type values in another implementation-specific field and not as part of st_mode, in other words, such as st_ftype that helps make its processing of type data more efficient.

As to line 13067 it doesn't have radix specified for Numeric Value header. Octal is implied by the leading zeros, and that is how they are labeled in
other parts, but it could be read as hex also just looking here, leaving hex 8
values as implied place to put an implementation-specific extra permissions bit
and keep it grouped with others. I'd hope no one reads them as decimal. :-)
Desired Action1) Shade the block 13083-13092 XSI.
or
2) Unshade the block starting at 13054.
or
3) Add language to the definition of mode_t type that it is required to hold as file attributes both file type and file permission bits as defined elsewhere.

or

4) Replace the paragraph at line 13083 with:
[CX] The implementation may define the identifier ST_FTYPE as a macro
that shall expand to the text of the identifier of a field of the stat
structure, as the implementation defines it, such that it may be used as
a ".ST_FTYPE" or "->ST_FTYPE" reference construct to generically represent
which stat field holds the bits representing file type as the parameter m
to the following test macros. [CX]
[XSI] On XSI conformant systems this macro, if defined, shall reference
the st_mode field, e.g.
#define ST_FTYPE st_mode
to be compatible with the type mask values defined above. [XSI]
[CX] A conforming application shall test for the presence of ST_FTYPE
via #if before it uses it with any of the following macros. If it is
not present they shall use a reference to the st_mode field directly
as the parameter m for backwards compatibility purposes. [CX]

The following macros shall be provided to test whether a file is of
the specified type. The macro shall evaluate to a non-zero value if
the test is true; 0 if the test is false. The parameter m supplied to
the macros is the value of the field from a stat structure within
which bit flags representing these file types are stored. [CX] The
ST_FTYPE macro, when defined, may be used to construct references to
this value. It is implementation-defined when XSI conformance is not
claimed whether type mask identifiers are provided. [CX]
======================================

I believe Option 4 is both backwards compatible while still leaving smaller
systems, and much larger, the option of using another field, and provides a
place an implementer can hook onto for supporting some extensions to the file
system and let current apps be forward compatible too. This allows a uchar to
hold type and a short int for attributes, rather than a long int that holds
both, at least for now.

5) Add "(Octal)", or "(In Hex)", to Numeric Value field, or "*" with "* All
values in octal." footnote below table.
Tagstc3-2008

Relationships

related to 0000834 Closed 1003.1(2013)/Issue7+TC1 definition of file mode is too restrictive 

Activities

geoffclare

2022-08-08 16:09

manager   bugnote:0005928

Change D2.1 line 13473 from:
The implementation may implement message queues, semaphores, or shared memory objects as distinct file types.
to:
The implementation may implement message queues, semaphores, or shared memory objects as distinct file types, in which case these file types need not be encoded in type mode_t.

Change D2.1 line 13482 from:
The implementation may implement typed memory objects as distinct file types, and the following macro shall test whether a file is of the specified type.
to:
The implementation may implement typed memory objects as a distinct file type, in which case this file type need not be encoded in type mode_t. The following macro shall test whether a file is of the specified type.

Issue History

Date Modified Username Field Change
2013-08-11 16:21 shware_systems New Issue
2013-08-11 16:21 shware_systems Status New => Under Review
2013-08-11 16:21 shware_systems Assigned To => ajosey
2013-08-11 16:21 shware_systems Name => Mark Ziegast
2013-08-11 16:21 shware_systems Organization => SHware Systems
2013-08-11 16:21 shware_systems Section => c082.pdf sys/stat.h
2013-08-11 16:21 shware_systems Page Number => 389
2013-08-11 16:21 shware_systems Line Number => 13067, 13083-13092
2013-08-15 14:43 geoffclare Project 2008-TC1 => 1003.1(2008)/Issue 7
2014-04-24 15:25 eblake Relationship added related to 0000834
2022-08-08 16:09 geoffclare Note Added: 0005928
2022-08-08 16:10 geoffclare Interp Status => ---
2022-08-08 16:10 geoffclare Final Accepted Text => 0000732:0005928
2022-08-08 16:10 geoffclare Status Under Review => Resolved
2022-08-08 16:10 geoffclare Resolution Open => Accepted As Marked
2022-08-08 16:10 geoffclare Tag Attached: tc3-2008
2022-09-27 15:28 geoffclare Status Resolved => Applied
2024-06-11 08:52 agadmin Status Applied => Closed