Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[libc][docs] Add netinet/in header documentation by referring to POSIX standards #122411

Open
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

StarOne01
Copy link

@StarOne01 StarOne01 commented Jan 10, 2025

This pull request introduces the following changes to the project with reference to ( #122006 ):

  1. Documentation Update:
    • Added a new YAML file in.yaml to document network protocol and address macros.
    • The in.yaml file includes the following macros:
      • IPPROTO_IP
      • IPPROTO_IPV6
      • IPPROTO_ICMP
      • IPPROTO_RAW
      • IPPROTO_TCP
      • IPPROTO_UDP
      • INADDR_ANY
      • INADDR_BROADCAST
      • INET_ADDRSTRLEN
      • IPV6_JOIN_GROUP
      • IPV6_LEAVE_GROUP
      • IPV6_MULTICAST_HOPS
      • IPV6_MULTICAST_IF
      • IPV6_MULTICAST_LOOP
      • IPV6_UNICAST_HOPS
      • IPV6_V6ONLY
      • IN6_IS_ADDR_UNSPECIFIED
      • IN6_IS_ADDR_LOOPBACK
      • IN6_IS_ADDR_MULTICAST
      • IN6_IS_ADDR_LINKLOCAL
      • IN6_IS_ADDR_SITELOCAL
      • IN6_IS_ADDR_V4MAPPED
      • IN6_IS_ADDR_V4COMPAT
      • IN6_IS_ADDR_MC_NODELOCAL
      • IN6_IS_ADDR_MC_LINKLOCAL
      • IN6_IS_ADDR_MC_SITELOCAL
      • IN6_IS_ADDR_MC_ORGLOCAL
      • IN6_IS_ADDR_MC_GLOBAL

I believe, all these macros are necessary and should be documented.

  1. CMake Configuration Update:

    • Updated the CMakeLists.txt file to create the necessary directory for the netinet headers.
    • Included the netinet/in documentation in the Sphinx build configuration.
  2. Index Update:

    • Updated the index.rst file to include a reference to the newly added netinet/in documentation.

Purpose:

  • This pull request adds documentation for network protocol and address macros in the netinet/in header.
  • Updates the CMake configuration to support the new documentation.

Testing:

  • Verified that the new YAML file is correctly referenced in the index.rst.
  • Ensured that the documentation builds without errors and includes the new network interface documentation.

This pull request ensures that the netinet/in header macros are documented and included in the project's documentation, and updates the CMake configuration to support these changes.

…and include it in cmake and index.rst file for html page generation
Copy link

Thank you for submitting a Pull Request (PR) to the LLVM Project!

This PR will be automatically labeled and the relevant teams will be notified.

If you wish to, you can add reviewers by using the "Reviewers" section on this page.

If this is not working for you, it is probably because you do not have write permissions for the repository. In which case you can instead tag reviewers by name in a comment by using @ followed by their GitHub username.

If you have received no comments on your PR for a week, you can request a review by "ping"ing the PR by adding a comment “Ping”. The common courtesy "ping" rate is once a week. Please remember that you are asking for valuable time from other developers.

If you have further questions, they may be answered by the LLVM GitHub User Guide.

You can also ask questions in a comment on this PR, on the LLVM Discord or on the forums.

@llvmbot llvmbot added the libc label Jan 10, 2025
@llvmbot
Copy link
Member

llvmbot commented Jan 10, 2025

@llvm/pr-subscribers-libc

Author: Prashanth (StarOne01)

Changes

This pull request introduces the following changes to the project:

  1. Documentation Update:
    • Added a new YAML file in.yaml to document network protocol and address macros.
    • The in.yaml file includes the following macros:
      • IPPROTO_IP
      • IPPROTO_IPV6
      • IPPROTO_ICMP
      • IPPROTO_RAW
      • IPPROTO_TCP
      • IPPROTO_UDP
      • INADDR_ANY
      • INADDR_BROADCAST
      • INET_ADDRSTRLEN
      • IPV6_JOIN_GROUP
      • IPV6_LEAVE_GROUP
      • IPV6_MULTICAST_HOPS
      • IPV6_MULTICAST_IF
      • IPV6_MULTICAST_LOOP
      • IPV6_UNICAST_HOPS
      • IPV6_V6ONLY
      • IN6_IS_ADDR_UNSPECIFIED
      • IN6_IS_ADDR_LOOPBACK
      • IN6_IS_ADDR_MULTICAST
      • IN6_IS_ADDR_LINKLOCAL
      • IN6_IS_ADDR_SITELOCAL
      • IN6_IS_ADDR_V4MAPPED
      • IN6_IS_ADDR_V4COMPAT
      • IN6_IS_ADDR_MC_NODELOCAL
      • IN6_IS_ADDR_MC_LINKLOCAL
      • IN6_IS_ADDR_MC_SITELOCAL
      • IN6_IS_ADDR_MC_ORGLOCAL
      • IN6_IS_ADDR_MC_GLOBAL

I guess, all these macros are necessary and should be documented.

  1. CMake Configuration Update:

    • Updated the CMakeLists.txt file to create the necessary directory for the netinet headers.
    • Included the netinet/in documentation in the Sphinx build configuration.
  2. Index Update:

    • Updated the index.rst file to include a reference to the newly added netinet/in documentation.

Purpose:

  • This pull request adds documentation for network protocol and address macros in the netinet/in header.
  • Updates the CMake configuration to support the new documentation.

Testing:

  • Verified that the new YAML file is correctly referenced in the index.rst.
  • Ensured that the documentation builds without errors and includes the new network interface documentation.

This pull request ensures that the netinet/in header macros are documented and included in the project's documentation, and updates the CMake configuration to support these changes.


Full diff: https://github.com/llvm/llvm-project/pull/122411.diff

3 Files Affected:

  • (modified) libc/docs/CMakeLists.txt (+2)
  • (modified) libc/docs/headers/index.rst (+1)
  • (added) libc/utils/docgen/netinet/in.yaml (+57)
diff --git a/libc/docs/CMakeLists.txt b/libc/docs/CMakeLists.txt
index 5a3f8275bb932e..a3875fbe592606 100644
--- a/libc/docs/CMakeLists.txt
+++ b/libc/docs/CMakeLists.txt
@@ -18,6 +18,7 @@ if (SPHINX_FOUND)
     # shell.
     file(MAKE_DIRECTORY
       "${CMAKE_CURRENT_BINARY_DIR}/headers/arpa/"
+      "${CMAKE_CURRENT_BINARY_DIR}/headers/netinet/"
       "${CMAKE_CURRENT_BINARY_DIR}/headers/sys/"
     )
 
@@ -40,6 +41,7 @@ if (SPHINX_FOUND)
       float
       inttypes
       locale
+      netinet/in
       setjmp
       signal
       stdbit
diff --git a/libc/docs/headers/index.rst b/libc/docs/headers/index.rst
index 07ab6dd9b26742..6f49cc0aa80e1c 100644
--- a/libc/docs/headers/index.rst
+++ b/libc/docs/headers/index.rst
@@ -14,6 +14,7 @@ Implementation Status
    inttypes
    locale
    math/index.rst
+   netinet/in
    search
    setjmp
    signal
diff --git a/libc/utils/docgen/netinet/in.yaml b/libc/utils/docgen/netinet/in.yaml
new file mode 100644
index 00000000000000..2add3e2141b1be
--- /dev/null
+++ b/libc/utils/docgen/netinet/in.yaml
@@ -0,0 +1,57 @@
+macros:
+  IPPROTO_IP:
+    in-latest-posix: ''
+  IPPROTO_IPV6:
+    in-latest-posix: ''
+  IPPROTO_ICMP:
+    in-latest-posix: ''
+  IPPROTO_RAW:
+    in-latest-posix: ''
+  IPPROTO_TCP:
+    in-latest-posix: ''
+  IPPROTO_UDP:
+    in-latest-posix: ''
+  INADDR_ANY:
+    in-latest-posix: ''
+  INADDR_BROADCAST:
+    in-latest-posix: ''
+  INET_ADDRSTRLEN:
+    in-latest-posix: ''
+  IPV6_JOIN_GROUP:
+    in-latest-posix: ''
+  IPV6_LEAVE_GROUP:
+    in-latest-posix: ''
+  IPV6_MULTICAST_HOPS:
+    in-latest-posix: ''
+  IPV6_MULTICAST_IF:
+    in-latest-posix: ''
+  IPV6_MULTICAST_LOOP:
+    in-latest-posix: ''
+  IPV6_UNICAST_HOPS:
+    in-latest-posix: ''
+  IPV6_V6ONLY:
+    in-latest-posix: ''
+  IN6_IS_ADDR_UNSPECIFIED:
+    in-latest-posix: ''
+  IN6_IS_ADDR_LOOPBACK:
+    in-latest-posix: ''
+  IN6_IS_ADDR_MULTICAST:
+    in-latest-posix: ''
+  IN6_IS_ADDR_LINKLOCAL:
+    in-latest-posix: ''
+  IN6_IS_ADDR_SITELOCAL:
+    in-latest-posix: ''
+  IN6_IS_ADDR_V4MAPPED:
+    in-latest-posix: ''
+  IN6_IS_ADDR_V4COMPAT:
+    in-latest-posix: ''
+  IN6_IS_ADDR_MC_NODELOCAL:
+    in-latest-posix: ''
+  IN6_IS_ADDR_MC_LINKLOCAL:
+    in-latest-posix: ''
+  IN6_IS_ADDR_MC_SITELOCAL:
+    in-latest-posix: ''
+  IN6_IS_ADDR_MC_ORGLOCAL:
+    in-latest-posix: ''
+  IN6_IS_ADDR_MC_GLOBAL:
+    in-latest-posix: ''
\ No newline at end of file

@StarOne01 StarOne01 closed this Jan 10, 2025
@StarOne01 StarOne01 reopened this Jan 10, 2025
@StarOne01
Copy link
Author

Sorry, that was a mistouch.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants